about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xdev-shell12
-rw-r--r--doc/manual/hacking.xml41
-rw-r--r--doc/manual/manual.xml1
3 files changed, 54 insertions, 0 deletions
diff --git a/dev-shell b/dev-shell
new file mode 100755
index 000000000000..8579939a7b54
--- /dev/null
+++ b/dev-shell
@@ -0,0 +1,12 @@
+#! /bin/sh
+s=$(type -p nix-shell)
+exec $s release.nix -A tarball --command "
+    export NIX_REMOTE=daemon
+    export NIX_PATH='$NIX_PATH'
+    export NIX_BUILD_SHELL=$(type -p bash)
+    export c=\$configureFlags
+    exec $s release.nix -A build.x86_64-linux --exclude tarball --command '
+        configureFlags+=\" \$c --prefix=$(pwd)/inst --sysconfdir=$(pwd)/inst/etc\"
+        return
+    '" \
+    "$@"
diff --git a/doc/manual/hacking.xml b/doc/manual/hacking.xml
new file mode 100644
index 000000000000..f8478c9093e6
--- /dev/null
+++ b/doc/manual/hacking.xml
@@ -0,0 +1,41 @@
+<appendix xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xml:id="chap-hacking">
+
+<title>Hacking</title>
+
+<para>This section provides some notes on how to hack on Nix.  To get
+the latest version of Nix from GitHub:
+<screen>
+$ git clone git://github.com/NixOS/nix.git
+$ cd hydra
+</screen>
+</para>
+
+<para>To build it and its dependencies:
+<screen>
+$ nix-build release.nix -A build.x86_64-linux
+</screen>
+</para>
+
+<para>To build all dependencies and start a shell in which all
+environment variables are set up so that those dependencies can be
+found:
+<screen>
+$ ./dev-shell
+</screen>
+To build Nix itself in this shell:
+<screen>
+[nix-shell]$ ./bootstrap
+[nix-shell]$ configurePhase
+[nix-shell]$ make
+</screen>
+To test it:
+<screen>
+[nix-shell]$ make install
+[nix-shell]$ make installcheck
+</screen>
+
+</para>
+
+</appendix>
diff --git a/doc/manual/manual.xml b/doc/manual/manual.xml
index 6abff02d9ef4..671ca9d65c1a 100644
--- a/doc/manual/manual.xml
+++ b/doc/manual/manual.xml
@@ -73,6 +73,7 @@
   <xi:include href="troubleshooting.xml" />
   <!-- <xi:include href="bugs.xml" /> -->
   <xi:include href="glossary.xml" />
+  <xi:include href="hacking.xml" />
 
   <appendix>
     <title>Nix Release Notes</title>