@@ -66,6 +66,7 @@ Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference manual}).
@menu
* Scheme tutorials:: Meet your new favorite language!
+* Building from Git:: Hack Guix itself
* Packaging:: Packaging tutorials
* System Configuration:: Customizing the GNU System
* Advanced package management:: Power to the users!
@@ -301,7 +302,81 @@ You'll find more books, tutorials and other resources at
@url{https://schemers.org/}.
+@c *********************************************************************
+@node Building from Git
+@chapter Building from Git
+
+Build Guix from Git and start hacking. TLDR version of:
+@pxref{Building from Git,,, guix, GNU Guix reference manual}
+
+@node Context
+@section Context
+
+@itemize
+@item
+Guix is installed using binary installation.
+@item
+Git is installed
+@end itemize
+
+@node Source
+@section Source
+
+@example
+mkdir ~/src; cd ~/src
+git clone https://git.savannah.gnu.org/git/guix.git
+@end example
+
+@node Authentication
+@section Authentication
+
+@example
+git fetch origin keyring:keyring
+guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \
+ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
+@end example
+
+@node Development environment
+@section Development environment
+
+The @code{localstatedir} value is the prefix of @code{/guix/db}. For
+example, if:
+
+@example
+$ find / -type d -path "*/guix/db" 2>/dev/null
+/var/guix/db
+@end example
+
+then the value of @code{localstatedir} is @code{/var}.
+
+@example
+guix shell --pure -D guix
+./bootstrap
+./configure --localstatedir=/var
+@end example
+
+@node Compile
+@section Compile
+
+@example
+make
+make check
+exit
+@end example
+
+@node Test
+@section Test
+
+@code{./pre-inst-env} lets you distinguish between this installation of
+Guix and any other.
+
+@example
+cd ~/src/guix
+guix shell --pure -D guix
+./pre-inst-env guix build hello
+@end example
+
+
@c *********************************************************************
@node Packaging
@chapter Packaging
--