summary refs log tree commit diff
path: root/nixos/doc/manual/development/sources.xml
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/doc/manual/development/sources.xml')
-rw-r--r--nixos/doc/manual/development/sources.xml113
1 files changed, 48 insertions, 65 deletions
diff --git a/nixos/doc/manual/development/sources.xml b/nixos/doc/manual/development/sources.xml
index a2896cd7a135..c7b64cb84beb 100644
--- a/nixos/doc/manual/development/sources.xml
+++ b/nixos/doc/manual/development/sources.xml
@@ -3,101 +3,84 @@
         xmlns:xi="http://www.w3.org/2001/XInclude"
         version="5.0"
         xml:id="sec-getting-sources">
-
-<title>Getting the Sources</title>
-
-<para>By default, NixOS’s <command>nixos-rebuild</command> command
-uses the NixOS and Nixpkgs sources provided by the
-<literal>nixos</literal> channel (kept in
-<filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>).
-To modify NixOS, however, you should check out the latest sources from
-Git.  This is as follows:
-
+ <title>Getting the Sources</title>
+ <para>
+  By default, NixOS’s <command>nixos-rebuild</command> command uses the NixOS
+  and Nixpkgs sources provided by the <literal>nixos</literal> channel (kept in
+  <filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>). To
+  modify NixOS, however, you should check out the latest sources from Git. This
+  is as follows:
 <screen>
 $ git clone git://github.com/NixOS/nixpkgs.git
 $ cd nixpkgs
 $ git remote add channels git://github.com/NixOS/nixpkgs-channels.git
 $ git remote update channels
 </screen>
-
-This will check out the latest Nixpkgs sources to
-<filename>./nixpkgs</filename> the NixOS sources to
-<filename>./nixpkgs/nixos</filename>. (The NixOS source tree lives in
-a subdirectory of the Nixpkgs repository.) The remote
-<literal>channels</literal> refers to a read-only repository that
-tracks the Nixpkgs/NixOS channels (see <xref linkend="sec-upgrading"/>
-for more information about channels). Thus, the Git branch
-<literal>channels/nixos-17.03</literal> will contain the latest built
-and tested version available in the <literal>nixos-17.03</literal>
-channel.</para>
-
-<para>It’s often inconvenient to develop directly on the master
-branch, since if somebody has just committed (say) a change to GCC,
-then the binary cache may not have caught up yet and you’ll have to
-rebuild everything from source. So you may want to create a local
-branch based on your current NixOS version:
-
+  This will check out the latest Nixpkgs sources to
+  <filename>./nixpkgs</filename> the NixOS sources to
+  <filename>./nixpkgs/nixos</filename>. (The NixOS source tree lives in a
+  subdirectory of the Nixpkgs repository.) The remote
+  <literal>channels</literal> refers to a read-only repository that tracks the
+  Nixpkgs/NixOS channels (see <xref linkend="sec-upgrading"/> for more
+  information about channels). Thus, the Git branch
+  <literal>channels/nixos-17.03</literal> will contain the latest built and
+  tested version available in the <literal>nixos-17.03</literal> channel.
+ </para>
+ <para>
+  It’s often inconvenient to develop directly on the master branch, since if
+  somebody has just committed (say) a change to GCC, then the binary cache may
+  not have caught up yet and you’ll have to rebuild everything from source.
+  So you may want to create a local branch based on your current NixOS version:
 <screen>
 $ nixos-version
 17.09pre104379.6e0b727 (Hummingbird)
 
 $ git checkout -b local 6e0b727
 </screen>
-
-Or, to base your local branch on the latest version available in a
-NixOS channel:
-
+  Or, to base your local branch on the latest version available in a NixOS
+  channel:
 <screen>
 $ git remote update channels
 $ git checkout -b local channels/nixos-17.03
 </screen>
-
-(Replace <literal>nixos-17.03</literal> with the name of the channel
-you want to use.) You can use <command>git merge</command> or
-<command>git rebase</command> to keep your local branch in sync with
-the channel, e.g.
-
+  (Replace <literal>nixos-17.03</literal> with the name of the channel you want
+  to use.) You can use <command>git merge</command> or <command>git
+  rebase</command> to keep your local branch in sync with the channel, e.g.
 <screen>
 $ git remote update channels
 $ git merge channels/nixos-17.03
 </screen>
-
-You can use <command>git cherry-pick</command> to copy commits from
-your local branch to the upstream branch.</para>
-
-<para>If you want to rebuild your system using your (modified)
-sources, you need to tell <command>nixos-rebuild</command> about them
-using the <option>-I</option> flag:
-
+  You can use <command>git cherry-pick</command> to copy commits from your
+  local branch to the upstream branch.
+ </para>
+ <para>
+  If you want to rebuild your system using your (modified) sources, you need to
+  tell <command>nixos-rebuild</command> about them using the
+  <option>-I</option> flag:
 <screen>
 # nixos-rebuild switch -I nixpkgs=<replaceable>/my/sources</replaceable>/nixpkgs
 </screen>
-
-</para>
-
-<para>If you want <command>nix-env</command> to use the expressions in
-<replaceable>/my/sources</replaceable>, use <command>nix-env -f
-<replaceable>/my/sources</replaceable>/nixpkgs</command>, or change
-the default by adding a symlink in
-<filename>~/.nix-defexpr</filename>:
-
+ </para>
+ <para>
+  If you want <command>nix-env</command> to use the expressions in
+  <replaceable>/my/sources</replaceable>, use <command>nix-env -f
+  <replaceable>/my/sources</replaceable>/nixpkgs</command>, or change the
+  default by adding a symlink in <filename>~/.nix-defexpr</filename>:
 <screen>
 $ ln -s <replaceable>/my/sources</replaceable>/nixpkgs ~/.nix-defexpr/nixpkgs
 </screen>
-
-You may want to delete the symlink
-<filename>~/.nix-defexpr/channels_root</filename> to prevent root’s
-NixOS channel from clashing with your own tree (this may break the
-command-not-found utility though). If you want to go back to the default
-state, you may just remove the <filename>~/.nix-defexpr</filename>
-directory completely, log out and log in again and it should have been
-recreated with a link to the root channels.</para>
-
+  You may want to delete the symlink
+  <filename>~/.nix-defexpr/channels_root</filename> to prevent root’s NixOS
+  channel from clashing with your own tree (this may break the
+  command-not-found utility though). If you want to go back to the default
+  state, you may just remove the <filename>~/.nix-defexpr</filename> directory
+  completely, log out and log in again and it should have been recreated with a
+  link to the root channels.
+ </para>
 <!-- FIXME: not sure what this means.
 <para>You should not pass the base directory
 <filename><replaceable>/my/sources</replaceable></filename>
 to <command>nix-env</command>, as it will break after interpreting expressions
 in <filename>nixos/</filename> as packages.</para>
 -->
-
 </chapter>