summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HACKING80
-rw-r--r--doc/guix.texi15
2 files changed, 62 insertions, 33 deletions
diff --git a/HACKING b/HACKING
index 05ba8324b3d..413ba737d92 100644
--- a/HACKING
+++ b/HACKING
@@ -14,7 +14,7 @@ Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
14Command-line tools can be used even if you have not run "make install". 14Command-line tools can be used even if you have not run "make install".
15To do that, prefix each command with ‘./pre-inst-env’, as in: 15To do that, prefix each command with ‘./pre-inst-env’, as in:
16 16
17 ./pre-inst-env guix-build --help 17 ./pre-inst-env guix build --help
18 18
19Similarly, for a Guile session using the Guix modules: 19Similarly, for a Guile session using the Guix modules:
20 20
@@ -40,6 +40,16 @@ addition to that, you must not miss [[http://www.emacswiki.org/emacs/ParEdit][Pa
40directly operate on the syntax tree, such as raising an s-expression or 40directly operate on the syntax tree, such as raising an s-expression or
41wrapping it, swallowing or rejecting the following s-expression, etc. 41wrapping it, swallowing or rejecting the following s-expression, etc.
42 42
43* Packaging Guidelines
44
45The GNU distribution is about respecting the freedom of users. Consequently,
46it contains only free software as defined at
47http://www.gnu.org/philosophy/free-sw.html .
48
49In addition, we follow the [[http://www.gnu.org/distros/free-system-distribution-guidelines.html][free software distribution guidelines]]. Among other
50things, this means that the distribution tries hard not to steer users towards
51obtaining information about non-free software.
52
43* Adding new packages 53* Adding new packages
44 54
45Package recipes in Guix look like this: 55Package recipes in Guix look like this:
@@ -68,22 +78,55 @@ Package recipes in Guix look like this:
68#+END_SRC 78#+END_SRC
69 79
70Such a recipe can be written by hand, and then tested by running 80Such a recipe can be written by hand, and then tested by running
71‘./pre-inst-env guix-build nettle’. 81‘./pre-inst-env guix build nettle’.
72 82
73When writing the recipe, the base32-encoded SHA256 hash of the source 83When writing the recipe, the base32-encoded SHA256 hash of the source
74code tarball, which can be seen in the example above, can be obtained by 84code tarball, which can be seen in the example above, can be obtained by
75running: 85running:
76 86
77 guix-download http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz 87 guix download http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz
78 88
79Alternatively, it is possible to semi-automatically import recipes from 89Alternatively, it is possible to semi-automatically import recipes from
80the [[http://nixos.org/nixpkgs/][Nixpkgs]] software distribution using this command: 90the [[http://nixos.org/nixpkgs/][Nixpkgs]] software distribution using this command:
81 91
82 guix-import /path/to/nixpkgs/checkout nettle 92 guix import /path/to/nixpkgs/checkout nettle
83 93
84The command automatically fetches and converts to Guix the “Nix 94The command automatically fetches and converts to Guix the “Nix
85expression” of Nettle. 95expression” of Nettle.
86 96
97* Submitting Patches
98
99Development is done using the Git distributed version control system. Thus,
100access to the repository is not strictly necessary. We welcome contributions
101in the form of patches as produced by ‘git format-patch’ sent to
102bug-guix@gnu.org. Please write commit logs in the [[http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs][GNU ChangeLog format]].
103
104As you become a regular contributor, you may find it convenient to have write
105access to the repository (see below.)
106
107* Commit Access
108
109For frequent contributors, having write access to the repository is
110convenient. When you deem it necessary, feel free to ask for it on the
111mailing list. When you get commit access, please make sure to follow the
112policy below (discussions of the policy can take place on bug-guix@gnu.org.)
113
114Non-trivial patches should always be posted to bug-guix@gnu.org (trivial
115patches include fixing typos, etc.)
116
117For patches that just add a new package, and a simple one, it’s OK to commit,
118if you’re confident (which means you successfully built it in a chroot setup.)
119Likewise for package upgrades. We have a mailing list for commit
120notifications (guix-commits@gnu.org), so people can notice. Before pushing
121your changes, make sure to run ‘git pull --rebase’.
122
123For anything else, please post to bug-guix@gnu.org and leave time for a
124review, without committing anything. If you didn’t receive any reply
125after two weeks, and if you’re confident, it’s OK to commit.
126
127That last part is subject to being adjusted, allowing individuals to commit
128directly on non-controversial changes on parts they’re familiar with.
129
87* Porting the Guix distro on a new platform 130* Porting the Guix distro on a new platform
88 131
89** Introduction 132** Introduction
@@ -137,7 +180,7 @@ GCC, libc, etc. need to be built. To that end, run the following
137commands: 180commands:
138 181
139#+BEGIN_SRC sh 182#+BEGIN_SRC sh
140 ./pre-inst-env guix-build -K \ 183 ./pre-inst-env guix build -K \
141 -e '(@ (gnu packages make-bootstrap) %bootstrap-tarballs)' \ 184 -e '(@ (gnu packages make-bootstrap) %bootstrap-tarballs)' \
142 --system=i686-linux 185 --system=i686-linux
143 186
@@ -174,30 +217,3 @@ shown above. For example, all the binaries (except for glibc) must be
174statically-linked; the bootstrap Guile must be relocatable (see patch in 217statically-linked; the bootstrap Guile must be relocatable (see patch in
175the Guix distro); the static-binaries tarball must contain the same 218the Guix distro); the static-binaries tarball must contain the same
176programs (Coreutils, Grep, sed, Awk, etc.); and so on. 219programs (Coreutils, Grep, sed, Awk, etc.); and so on.
177
178* Commit Access
179
180Development is done using the Git distributed version control system. Thus,
181access to the repository is not strictly necessary. We welcome contributions
182in the form of patches as produced by ‘git format-patch’ sent to
183bug-guix@gnu.org.
184
185However, for frequent contributors, having write access to the repository is
186convenient. When you get commit access, please make sure to follow the policy
187below (discussions of the policy can take place on bug-guix@gnu.org.)
188
189Non-trivial patches should always be posted to bug-guix@gnu.org (trivial
190patches include fixing typos, etc.)
191
192For patches that just add a new package, and a simple one, it’s OK to commit,
193if you’re confident (which means you successfully built it in a chroot setup.)
194Likewise for package upgrades. We have a mailing list for commit
195notifications (guix-commits@gnu.org), so people can notice. Before pushing
196your changes, make sure to run ‘git pull --rebase’.
197
198For anything else, please post to bug-guix@gnu.org and leave time for a
199review, without committing anything. If you didn’t receive any reply
200after two weeks, and if you’re confident, it’s OK to commit.
201
202That last part is subject to being adjusted, allowing individuals to commit
203directly on non-controversial changes on parts they’re familiar with.
diff --git a/doc/guix.texi b/doc/guix.texi
index 68d45d2a5f2..02fb9982c14 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -82,6 +82,7 @@ Documentation License.''
82* Programming Interface:: Using Guix in Scheme. 82* Programming Interface:: Using Guix in Scheme.
83* Utilities:: Package management commands. 83* Utilities:: Package management commands.
84* GNU Distribution:: Software for your friendly GNU system. 84* GNU Distribution:: Software for your friendly GNU system.
85* Contributing:: Your help needed!
85 86
86* Acknowledgments:: Thanks! 87* Acknowledgments:: Thanks!
87* GNU Free Documentation License:: The license of this manual. 88* GNU Free Documentation License:: The license of this manual.
@@ -1439,10 +1440,22 @@ tight integration of GNU components, and an emphasis on programs and
1439tools that help users exert that freedom. 1440tools that help users exert that freedom.
1440 1441
1441Building this distribution is a cooperative effort, and you are invited 1442Building this distribution is a cooperative effort, and you are invited
1442to join! Please get in touch with us on @email{bug-guix@@gnu.org}. We 1443to join! @ref{Contributing}, for information about how you can help.
1444
1445@c *********************************************************************
1446@node Contributing
1447@chapter Contributing
1448
1449This project is a cooperative effort, and we need your help to make it
1450grow! Please get in touch with us on @email{bug-guix@@gnu.org}. We
1443welcome ideas, bug reports, patches, and anything that may be helpful to 1451welcome ideas, bug reports, patches, and anything that may be helpful to
1444the project. 1452the project.
1445 1453
1454Please see the
1455@url{http://git.savannah.gnu.org/cgit/guix.git/tree/HACKING,
1456@file{HACKING} file} that comes with the Guix source code for practical
1457details about contributions.
1458
1446 1459
1447@c ********************************************************************* 1460@c *********************************************************************
1448@node Acknowledgments 1461@node Acknowledgments