aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-07-19 16:51:31 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-07-19 16:51:31 +0200
commit7b09e9f2c49aba7ced0e7fbac3994f6686b6a303 (patch)
tree6209444ab09b46a6b7f0b4ca26f9d075d8945ab9
parent15e5ac80393f3b0a1be264e8cdaa8f048375b27d (diff)
Add hacking notes plus a script for running nix-shell
-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 000000000..8579939a7
--- /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 000000000..f8478c909
--- /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 6abff02d9..671ca9d65 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>