Compare commits

...

2687 Commits
v0.0 ... v0.6

Author SHA1 Message Date
Ludovic Courtès
4ec91959f2 Update 'NEWS'. 2014-04-09 14:37:01 +02:00
Ludovic Courtès
defa1b9bee vm: Add #:memory-size parameter for 'expression->derivation-in-linux-vm'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
  #:memory-size parameter, defaulting to 256 (QEMU defaults to 128.)
2014-04-09 14:01:31 +02:00
Ludovic Courtès
4d9a80ba75 gnu: linux-initrd: Default initrd has no network mounts.
* gnu/system/linux-initrd.scm (gnu-system-initrd): Add #:mounts
  argument.
2014-04-09 14:01:31 +02:00
Ludovic Courtès
f200b03e06 vm: 'expression->derivation-in-linux-vm' uses QEMU virtfs/9p.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:qemu
  to default to QEMU-HEADLESS.  Use "-net nic,model=virtio".  Remove
  "-net user,smb=..." and add "-virtfs" options.  Change default initrd
  to include two 9p mounts.
2014-04-09 14:01:31 +02:00
Ludovic Courtès
e1f88ff0ab gnu: qemu: Upgrade to 1.7.1; add virtfs support.
* gnu/packages/qemu.scm (qemu-headless): Upgrade to 1.7.1.
  [source]: Remove 'patches' field.
  [arguments]: Add --enable-virtfs configure flag.
  [inputs]: Add libcap and attr.
* gnu/packages/patches/qemu-make-4.0.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2014-04-09 14:01:31 +02:00
Eric Bavier
57e544e8f7 gnu: lapack: Augment library rpath
* gnu/packages/maths.scm (lapack) [arguments]: New post-installation
  phase to augment the rpath of installed libraries.
2014-04-08 23:10:42 -05:00
David Thompson
cb3da2339a gnu: Move help2man package to (gnu packages man) module.
* gnu/packages/man.scm (help2man): New variable.
* gnu/packages/help2man.scm: Delete it.
* gnu/packages/cdrom.scm: Import (gnu packages man).
* gnu/packages/zile.scm: Import (gnu packages man).
* gnu-system.am (GNU_SYSTEM_MODULES): Delete 'gnu/packages/help2man.scm'.
2014-04-08 20:42:08 -04:00
David Thompson
67ca0a01bb gnu: Add man-db.
* gnu/packages.man.scm (man-db): New variable.
2014-04-09 00:40:09 +00:00
David Thompson
cd2e0b64f2 gnu: Add libpipeline.
* gnu/packages/man.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-04-09 00:40:09 +00:00
Ludovic Courtès
2e7b5cea8c guix system: Add 'vm-image' action and '--image-size' option.
* guix/scripts/system.scm (%options): Add --image-size.
  (%default-options): Add 'image-size'.
  (guix-system)[parse-options]: Handle the 'vm-image' action.
  Honor them.
  (show-help): Update accordingly.
* doc/guix.texi (Invoking guix system): Add 'vm-image'.
2014-04-09 01:20:19 +02:00
Ludovic Courtès
1d6243cf70 ui: Add 'size->number'.
* guix/scripts/gc.scm (size->number): Remove.
* guix/ui.scm (size->number): New procedure.
* tests/ui.scm ("size->number, bytes",
  "size->number, MiB", "size->number, GiB", "size->number, 1.2GiB",
  "size->number, invalid unit"): New tests.
2014-04-08 22:01:44 +02:00
Ludovic Courtès
c397e502ca gnu: dvdisaster: Build sequentially.
* gnu/packages/cdrom.scm (dvdisaster)[arguments]: Add #:parallel-build? #f.
2014-04-08 14:07:53 +02:00
Ludovic Courtès
c950141495 offload: Remove all the GC roots in case of multiple-output derivations.
* guix/scripts/offload.scm (remove-gc-root): Rename to...
  (remove-gc-roots): ... this.
  [builder]: Use 'scandir' and remove all the files starting with
  %GC-ROOT-FILE.
  (transfer-and-offload): Adjust to renaming; remove
  'false-if-exception' wraps.
2014-04-08 13:48:30 +02:00
Ludovic Courtès
5d2933aecc gnu: openssl: Upgrade to 1.0.1g (CVE-2014-0160).
* gnu/packages/openssl.scm (openssl): Upgrade to 1.0.1g (for
  CVE-2014-0160, <http://www.openssl.org/news/secadv_20140407.txt>.)
2014-04-08 10:09:27 +02:00
Ludovic Courtès
a4b42825a1 offload: Bail out when failing to register a GC root on the build machine.
* guix/scripts/offload.scm (register-gc-root): Call 'leave' when
  'close-pipe' returns non-zero.
2014-04-08 10:09:27 +02:00
Eric Bavier
8a9d928f57 gnu: Add patchutils and quilt
* gnu/packages/patchutils.scm: New file
* gnu/packages/patches/patchutils-xfail-gendiff-tests.patch: New patch
* gnu-system.am (GNU_SYSTEM_MODULES): Add patchutils.
  (dist_patch_DATA): Add patch.
2014-04-07 20:41:25 -05:00
Cyril Roelandt
ce0849cc25 gnu: Python: disable failing tests on MIPS64.
* gnu/packages/patches/python-fix-tests.patch: disable two failing tests on
  MIPS64.
2014-04-07 20:05:32 -04:00
Mark H Weaver
32d5c72952 gnu: python: Apply mips n32 fix to bundled libffi.
* gnu/packages/patches/python-libffi-mips-n32-fix.patch: New file.
* gnu/packages/python.scm (python-2, python): Add it.
* gnu-system.am (dist_patch_DATA): Add it.
2014-04-07 17:41:48 -04:00
Ludovic Courtès
d013fe50ba gnu: linux-libre: Upgrade to 3.13.7.
* gnu/packages/linux.scm (linux-libre): Update to 3.13.7.
2014-04-07 23:39:31 +02:00
Ludovic Courtès
717003e3ee gnu: python: Upgrade to 3.3.5.
* gnu/packages/python.scm (python): Upgrade to 3.3.5.
2014-04-07 23:39:30 +02:00
Cyril Roelandt
c9fccced4e gnu: Python: disable test_wait_result() as it fails on some setups
* gnu/packages/patches/python-fix-tests.patch: disable a failing test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-04-07 23:39:30 +02:00
Ludovic Courtès
b0f981f06e Update 'NEWS' for 0.6. 2014-04-07 23:39:30 +02:00
Eric Bavier
8de3a57821 gnu: lapack: Build shared libraries
* gnu/packages/maths.scm (lapack) [arguments]: Add -DBUILD_SHARED_LIBS to
  #:configure-flags
2014-04-07 14:44:57 -05:00
Eric Bavier
2068f65cc4 gnu: fltk: Build shared libraries
* gnu/packages/fltk.scm (fltk) [arguments]: Add to --enable-shared to
  #:configure-flags
2014-04-07 14:44:57 -05:00
Ludovic Courtès
af4535c58c utils: Make 'errno' procedure more robust.
Partially fixes <http://bugs.gnu.org/17212>.

* guix/utils.scm (errno): Move definition of 'bv' outside of the
  procedure.  Use 'bytevector-s32-native-ref' or
  'bytevector-s64-native-ref' instead of 'bytevector-sint-ref'.
2014-04-07 18:16:59 +02:00
Ludovic Courtès
68ec0450d1 tests: Avoid buffering in 'fcntl-flock' tests.
Partially fixes <http://bugs.gnu.org/17212>.

* tests/utils.scm ("fcntl-flock wait", "fcntl-flock non-blocking"): Open
  files in binary mode, with no buffering.
2014-04-07 18:16:58 +02:00
Ludovic Courtès
1d000ae73b gnu: shadow: Make source file timestamps deterministic.
* gnu/packages/admin.scm (shadow)[arguments]: Add 'reset-timestamps'
  phase.
2014-04-07 18:16:58 +02:00
Ludovic Courtès
6c1108330d build: Add 'hydra.gnu.org.pub' to the distribution.
* Makefile.am (pkgdata_DATA): Rename to...
  (dist_pkgdata_DATA): ... this.
2014-04-07 18:16:58 +02:00
Cyprien Nicolas
14e72a181e scheme/bigloo: Fix package description to reflect actual situation
* gnu/packages/scheme.scm (bigloo): Description: Remove the part about the C#
  connection which has been removed since release 3.8a.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-04-07 18:16:58 +02:00
Cyprien Nicolas
72a0c95013 Add missing space between funcall and string argument
* gnu/packages/scheme.scm (hop): Add missing space.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-04-07 18:16:58 +02:00
Mark H Weaver
d2d8779b21 Work around behavior of old 'scandir' in Guile 2.0.5.
Problem reported by John Darrington <john@darrington.wattle.id.au>.

* guix/nar.scm (write-file): Filter out "." and ".." from the result of
  'scandir'.  Previously we did this by passing a suitable predicate.
2014-04-07 04:20:30 -04:00
Alírio Eyng
030daf7133 gnu: icecat: Remove duplicated line.
* gnu/packages/gnuzilla.scm (icecat): Remove duplicate PYTHON-2 input,
  and extraneous 'native-inputs' field.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-04-07 09:52:08 +02:00
Ludovic Courtès
9e4eddb4fc services: slim: Use a system-wide xinitrc that defaults to wmaker.
* gnu/services/xorg.scm (xinitrc): New procedure.
  (slim-service)[slim.cfg]: Use it as the 'login_cmd'.
2014-04-06 23:31:58 +02:00
Ludovic Courtès
a0b25016eb Add Alírio to 'AUTHORS'. 2014-04-06 21:48:39 +02:00
Alírio Eyng
c0888b3fe4 gnu: linux-libre: Make configuration more robust.
* gnu/packages/linux.scm (linux-libre): Append all configuration instead of
  replacing.  Order configuration like "make oldconfig" output.  Remove
  useless output.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-04-06 21:45:20 +02:00
Ludovic Courtès
574e86f9cf gnu: Synchronize synopses and descriptions with the Womb.
* gnu/packages/gnunet.scm (gnunet): Synchronize description and synopsis
  with upstream.
* gnu/packages/maths.scm (units): Likewise.
* gnu/packages/grub.scm (grub): Likewise.
* gnu/packages/pretty-print.scm (enscript): Likewise.
2014-04-06 21:18:13 +02:00
Ludovic Courtès
0ec6237b2e hydra: qemu-jobs: Return a derivation file name, not a derivation.
* build-aux/hydra/gnu-system.scm (qemu-jobs)[->alist]: Return the
  derivation file name, not the derivation.
2014-04-06 21:18:13 +02:00
Mark H Weaver
1660514094 gnu: imagemagick: Upgrade to 6.8.8-10.
* gnu/packages/imagemagick.scm (imagemagick): Upgrade to 6.8.8-10.
2014-04-06 00:56:51 -04:00
Mark H Weaver
eb8cc6458d gnu: mailutils: Build against Readline 6.2.
* gnu/packages/mail.scm (mailutils): Use Readline 6.2.
2014-04-06 00:27:58 -04:00
Mark H Weaver
9ec7b6abc4 gnu: sqlite: Upgrade to 3.8.4.3.
* gnu/packages/sqlite.scm (sqlite): Upgrade to 3.8.4.3.
2014-04-05 23:47:18 -04:00
Ludovic Courtès
1b282ea849 hydra: Change 'qemu-jobs' to return name/thunk pairs.
* build-aux/hydra/gnu-system.scm (qemu-jobs)[->job]: Change the cdr to a
  thunk.
2014-04-05 22:57:06 +02:00
Ludovic Courtès
731b996255 hydra: Add 'qemu-image' job.
* build-aux/hydra/demo-os.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
* build-aux/hydra/gnu-system.scm (qemu-jobs): New procedure.
  (hydra-jobs): Use it.
* guix/scripts/system.scm (read-operating-system): Export.
2014-04-05 22:40:16 +02:00
Ludovic Courtès
512314d738 guix package: Fix indentation of packages to remove.
* guix/scripts/package.scm (show-what-to-remove/install): Add space when
  showing packages to remove.
2014-04-05 21:04:17 +02:00
Ludovic Courtès
a28ef66e04 gnu: Add 'gcc-toolchain'.
* gnu/packages/base.scm (gcc-toolchain): New procedure.
  (gcc-toolchain-4.8): New variable.
2014-04-05 21:04:13 +02:00
Ludovic Courtès
7458bd0a4a doc: Add "Build Systems" section.
* doc/guix.texi (Defining Packages): Add 'arguments' field in the
  example; update 'synopsis' and 'description'.  Remove most of the
  description of 'build-system', and instead reference to the "Build
  Systems" node.  Briefly describe 'arguments' field, and remove more
  elaborate description.  Add cross-reference to "Packaging Guidelines".
  (Build Systems): New node.
  (Packaging Guidelines): Mention '--log-file'.
2014-04-05 17:02:21 +02:00
Ludovic Courtès
59f21ee34a gnu: qemu: Change multiple-SMB-share patch to /gnu/store.
* gnu/packages/patches/qemu-multiple-smb-shares.patch: Change
  "/nix/store" to "/gnu/store".
2014-04-05 17:02:21 +02:00
Eric Bavier
87216303c1 gnu: Add clusterssh
* gnu/packages/admin.scm (clusterssh): New variable
2014-04-04 15:30:55 -05:00
Eric Bavier
6c4727410b gnu: Add perl-x11-protocol
* gnu/packages/xorg.scm (perl-x11-protocol): New variable
2014-04-04 15:30:55 -05:00
Eric Bavier
de0c31412e gnu: Add perl-tk
* gnu/packages/tcl.scm (perl-tk): New variable
2014-04-04 15:30:54 -05:00
Ludovic Courtès
34af3684d5 gnu: net-base: Upgrade to 5.2.
* gnu/packages/admin.scm (net-base): Upgrade to 5.2; use
  'mirror://debian'.
2014-04-04 22:21:49 +02:00
Ludovic Courtès
aaff68eed3 gnu: shadow: Take the source from Git.
* gnu/packages/admin.scm (shadow)[source]: Use the git repo.
2014-04-04 22:04:44 +02:00
Ludovic Courtès
9c333da6f1 gnu: guile-ssh: Use libssh 0.5.5 patched for CVE-2014-0017.
* gnu/packages/patches/libssh-CVE-2014-0017.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/ssh.scm (libssh-0.5): New variable.
  (guile-ssh): Use it.
2014-04-04 22:04:44 +02:00
Ludovic Courtès
bde8c0e6d9 ui: Improve reporting of 'system-error' exceptions.
* guix/ui.scm (call-with-error-handling): Change 'system-error' handler
  to display the error message as it was raised.
2014-04-04 22:04:43 +02:00
Ludovic Courtès
2a58b1b024 gnu: xpdf: Build sequentially.
* gnu/packages/pdf.scm (xpdf)[arguments]: Add #:parallel-build? #f.
2014-04-04 22:04:43 +02:00
Ludovic Courtès
0da01f4040 gnu: lsh: Build with Readline 6.2.
* gnu/packages/lsh.scm (lsh): Use READLINE-6.2 instead of READLINE.
2014-04-04 22:04:43 +02:00
Mark H Weaver
f3b04737f7 gnu: gdb: Disable tests.
* gnu/packages/gdb.scm (gdb): Disable tests.
2014-04-04 12:47:42 -04:00
Ludovic Courtès
c3ae3e7a57 gnu: valgrind: Adjust patch for glibc 2.19.
* gnu/packages/patches/valgrind-glibc.patch: s/2.18/2.19/.
2014-04-04 16:16:26 +02:00
Mark H Weaver
6a0b30f36c union: Ensure that the output is always a directory.
Fixes the creation of single-package profiles, reported by Ludovic Courtès.

* guix/build/union.scm (union-build): Add new internal procedure
  'union-of-directories' that always creates a directory, containing the code
  previously used only to merge multiple directories.  Call it from the
  multiple-directory case in 'union' and from the top-level 'union-build'.
2014-04-03 18:35:16 -04:00
Ludovic Courtès
ded1012f3c pki: Introduce 'write-acl', and fix wrong conversion in 'ensure-acl'.
* guix/pki.scm (write-acl): New procedure.
  (ensure-acl): Use it.  Fixes a regression introduced in 39831f1,
  whereby 'ensure-acl' would yield a wrong-type-arg error.
* guix/scripts/archive.scm (authorize-key): Use 'write-acl'.
2014-04-04 00:23:17 +02:00
Ludovic Courtès
7864504feb build: Remove now useless Boost headers.
* daemon.am (libformat_headers): Remove 6 nix/boost files that were
  removed in Nix commit 1c2550a2ae826c422cf6d34f1c5c3e687474929d.
2014-04-04 00:05:08 +02:00
Ludovic Courtès
06ea5c8f6f Update 'nix-upstream' sub-module.
* nix-upstream: Update.
* daemon.am (AM_CXXFLAGS): Add -std=c++0x.
2014-04-03 23:55:51 +02:00
Ludovic Courtès
4743a4da9b doc: Update description of the chroot contents.
* doc/guix.texi (Build Environment Setup): Adjust description of /dev
  and /proc; remove footnote about /dev/shm, now obsolete.
2014-04-03 23:55:51 +02:00
Ludovic Courtès
4b00f3434e offload: Prevent the '.drv' and build result from being GC'd.
Before that, there was a small time window during which the GC could
wipe the .drv (before 'guix build' has been called), or the build
result (before 'retrieve-files' has started.)

* guix/scripts/offload.scm (remote-pipe): Add #:quote? parameter and
  honor it.
  (%gc-root-file): New variable.
  (register-gc-root, remove-gc-root): New procedures.
  (offload): Adjust comment.  Run 'guix build' with '-r %GC-ROOT-FILE'.
  (transfer-and-offload): Call 'register-gc-root' before
  sending (derivation-file-name DRV).  Call 'remove-gc-root' after the
  call to 'offload' or 'retrieve-files'.
  (send-files): Call 'remote-pipe' with #:quote? #f.
  (retrieve-files): Likewise.
2014-04-03 23:55:51 +02:00
Ludovic Courtès
50322c847d gnu: parted: Build against Readline 6.2.
* gnu/packages/readline.scm (readline-6.2): New variable.
* gnu/packages/parted.scm (parted): Use it instead of READLINE.
2014-04-03 23:55:51 +02:00
Ludovic Courtès
ef0383eeca gnu: inkscape: Use libgc 7.2.
* gnu/packages/inkscape.scm (inkscape): Use LIBGC-7.2 instead of LIBGC.
2014-04-03 23:55:51 +02:00
Eric Bavier
bb184d9884 gnu: python: Use /nix/.../sh in popen2 module
* gnu/packages/python.scm (python-2): patch Lib/popen2.py to use /nix/.../sh.
2014-04-03 15:52:23 -05:00
Andreas Enge
6e407e44a2 gnu: global: Upgrade to 6.2.12.
* gnu/packages/global.scm (global): Upgrade to 6.2.12.
2014-04-03 22:28:29 +02:00
Andreas Enge
31e7909b4f gnu: apl: Upgrade to 1.3.
* gnu/packages/apl.scm (apl): Upgrade to 1.3.
2014-04-03 22:23:18 +02:00
Andreas Enge
92b144d422 gnu: xorriso: Upgrade to 1.3.6.pl01.
* gnu/packages/cdrom.scm (xorriso): Upgrade to 1.3.6.pl01.
2014-04-03 22:02:25 +02:00
Andreas Enge
adbd7bd64f gnu: gxmessage: Upgrade to 2.20.1.
* gnu/packages/gxmessage.scm (gxmessage): Upgrade to 2.20.1.
2014-04-03 21:35:13 +02:00
Andreas Enge
4f102a1d78 gnu: help2man: Upgrade to 1.45.1.
* gnu/packages/help2man.scm (help2man): Upgrade to 1.45.1.
2014-04-03 21:26:02 +02:00
Andreas Enge
b93ab68a31 gnu: zile: Upgrade to 2.4.11.
* gnu/packages/zile.scm (zile): Upgrade to 2.4.11.
2014-04-03 21:09:13 +02:00
Andreas Enge
983815c8b9 gnu: units: Upgrade to 2.11.
* gnu/packages/maths.scm (units): Upgrade to 2.11.
2014-04-03 20:54:16 +02:00
Andreas Enge
1c0dbf9ef1 gnu: freeipmi: Upgrade to 1.4.1.
* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.4.1.
2014-04-03 20:44:40 +02:00
Andreas Enge
29c45e950b gnu: parallel: Upgrade to 20140322.
* gnu/packages/parallel.scm (parallel): Upgrade to 20140322.
2014-04-03 20:37:24 +02:00
Andreas Enge
4a24c21434 gnu: xnee: Upgrade to 3.18.
* gnu/packages/xnee.scm (xnee): Upgrade to 3.18.
2014-04-03 20:22:03 +02:00
Andreas Enge
1f1c0aff26 gnu: glpk: Upgrade to 4.54.
* gnu/packages/maths.scm (glpk): Upgrade to 4.54.
2014-04-03 20:18:25 +02:00
Mark H Weaver
67880c8e2b gnu: texlive: Fix bug recently introduced in d4bf49b.
Fixes bug introduced in d4bf49b140.

* gnu/packages/texlive.scm (texlive): Change 'alist-replace' to
  'alist-cons-before'.
2014-04-03 01:40:33 -04:00
Ludovic Courtès
a53a9aed93 tests: Add 'union-build' test for <http://bugs.gnu.org/17083>.
* tests/union.scm ("union-build with symlink to directory"): New test.
2014-04-02 23:08:44 +02:00
Mark H Weaver
1212999868 union: Rewrite to be faster; handle symlink/directory conflicts.
* guix/build/union.scm: Rewrite; only 'file=?' remains unchanged.  Remove
  'tree-union' and 'delete-duplicate-leaves' exports.  Merge inputs in a
  breadth-first fashion.  Follow symlinks for purposes of making decisions
  about the merge.

* tests/union.scm: Remove tests of 'tree-union' and 'delete-duplicate-leaves'.
2014-04-02 15:31:46 -04:00
Mark H Weaver
8ead71b4b0 gnu: sqlite: Fix sqlite on systems with page size larger than 32K.
Based on a patch by Dan Kennedy <danielk1977@gmail.com>.

* gnu/packages/patches/sqlite-large-page-size-fix.patch: New file.
* gnu/packages/sqlite.scm (sqlite): Add it.
* gnu-system.am (dist_patch_DATA): Add it.
2014-04-02 15:31:28 -04:00
Mark H Weaver
d6a601816f gnu: sqlite: Upgrade to 3.8.4.2.
* gnu/packages/sqlite.scm (sqlite): Upgrade to 3.8.4.2.
2014-04-02 15:31:21 -04:00
Mark H Weaver
835281829a gnu: sqlite: Compute source URL from version number.
* gnu/packages/sqlite.scm (sqlite): Compute the numeric-version from the
  traditional version string, and use it to compute the source URL.
2014-04-02 15:31:12 -04:00
Mark H Weaver
fb9c3acc6c gnu: mutt: Upgrade to 1.5.23.
* gnu/packages/mail.scm (mutt): Upgrade to 1.5.23.  Add bitbucket
  source URL and try it first.
2014-04-02 11:28:34 -04:00
Mark H Weaver
3b9af0f37b gnu: bazaar: Install man pages in share/man.
* gnu/packages/version-control.scm (bazaar): Add a phase that
  fixes setup.py to install man pages in share/man.
2014-04-02 11:28:26 -04:00
Mark H Weaver
56fab253e3 gnu: ocaml: Install man pages in share/man.
* gnu/packages/ocaml.scm (ocaml): Pass -mandir to configure.
2014-04-02 11:28:10 -04:00
Mark H Weaver
223ed921f2 gnu: pth: Install man pages in share/man.
* gnu/packages/pth.scm (pth): Add --mandir to configure flags.
2014-04-02 11:28:01 -04:00
Mark H Weaver
988cecfd4f gnu: expect: Install man pages in share/man.
* gnu/packages/tcl.scm (expect): Add --mandir configure flag.
  Use 'let' to simplify configure flags generation.
2014-04-02 11:27:52 -04:00
Mark H Weaver
7575778969 gnu: zip: Improve build process and install man pages in share/man.
* gnu/packages/zip.scm (zip): Eliminate custom configure phase which copied
  and patched the Makefile.  Instead add "-f" and "prefix" to make-flags, as
  well as "MANDIR".  Remove "generic_gcc" from the make-flags, so that it will
  not be passed during other phases involving 'make'.  Instead replace the
  'build' phase with one that specifies the "generic_gcc" target.
2014-04-02 11:27:38 -04:00
Mark H Weaver
a2c03fb1af gnu: lua: Install man pages in share/man.
* gnu/packages/lua.scm (lua): Use 'system*' instead of 'system'.
  Add INSTALL_MAN argument to 'make'.
2014-04-02 11:27:21 -04:00
Mark H Weaver
0ad2f2e6e9 gnu: indent: Install docs in share/doc.
* gnu/packages/indent.scm (indent): Add a phase to fix the docdir
  setting in doc/Makefile.in.
2014-04-02 11:27:04 -04:00
Ludovic Courtès
27c68457d9 guix package: 'search-path-environment-variables' traverses module tree once.
* guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]:
  Use 'find-best-packages-by-name' instead of 'find-packages-by-name'.
  On a profile with 140 packages, this reduces execution time of this
  procedure from 5.8 seconds to 2.9 seconds (50% improvement.)
2014-04-02 16:07:40 +02:00
Ludovic Courtès
d2952326ae guix package: Register non-default profiles as GC roots.
* guix/scripts/package.scm (maybe-register-gc-root): New procedure.
* tests/guix-package.sh (profile): Grep the output of "guix gc
  --list-live" in a couple of places.
2014-04-02 16:07:40 +02:00
Mark H Weaver
0d55c3563c gnu: net-tools: Install man pages and locales in share, not usr/share.
* gnu/packages/linux.scm (net-tools): Add 'INSTALLNLSDIR' and 'mandir'
  variables to make flags.
2014-04-02 01:55:40 -04:00
Mark H Weaver
c27d859707 gnu: libssh: Upgrade to 0.6.3.
* gnu/packages/ssh.scm (libssh): Upgrade to 0.6.3.
2014-04-02 01:54:55 -04:00
Mark H Weaver
b036491119 gnu: pulseaudio: Increase timeouts for tests.
* gnu/packages/pulseaudio.scm: Set the 'CK_DEFAULT_TIMEOUT' environment
  variable to 120 in the 'pre-check' phase.  Suggested by Ludovic Courtès.
2014-04-02 01:54:35 -04:00
Mark H Weaver
02c108bd1d gnu: file: Upgrade to 5.18.
* gnu/packages/file.scm (file): Upgrade to 5.18.
2014-04-02 01:53:47 -04:00
Ludovic Courtès
bf6fcf5477 gnu: guile-json: Install under .../site/2.0.
* gnu/packages/guile.scm (guile-json)[source]: Add 'snippet'.
2014-04-01 23:57:44 +02:00
Ludovic Courtès
39831f1663 pki: Keep ACL in native sexp format to speed up 'authorized-key?'.
* guix/pki.scm (acl-entry-sexp, acl-sexp): Remove.
  (public-keys->acl, current-acl): Return a native sexp.
  (acl->public-keys, authorized-key?): Expect ACL to be a native sexp.
* guix/scripts/archive.scm (authorize-key): Convert ACL to
  canonical-sexp when writing it.
2014-04-01 23:47:51 +02:00
Ludovic Courtès
57832f2ce7 substitute-binary: Avoid consing 'regexp-exec' arguments.
* guix/scripts/substitute-binary.scm (regexp-exec): Change formals
  to (rx str . rest).
2014-04-01 23:47:51 +02:00
Ludovic Courtès
c6e9485924 substitute-binary: Avoid reloading the ACL repeatedly.
* guix/scripts/substitute-binary.scm (guix-substitute-binary) <--query>:
  Cache the result of (current-acl); pass it to 'valid-narinfo?' calls.
  This saves 12% wall-clock time for "guix build emacs -n".
2014-04-01 23:47:51 +02:00
Ludovic Courtès
a7e59c50d2 gnu: Add Bogofilter.
* gnu/packages/mail.scm (bogofilter): New variable.
2014-04-01 23:47:51 +02:00
Cyril Roelandt
6050a1fb30 gnu: Add guile-json.
* gnu/packages/guile.scm (guile-json): New variable.
2014-04-01 00:48:25 +02:00
Ludovic Courtès
e4687a5e68 Use 'signature-case' in (guix nar) and 'substitute-binary'.
* guix/nar.scm (restore-file-set)[assert-valid-signature]: Rewrite in
  terms of 'signature-case'.
* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
  Call 'leave' instead of 'raise' when SIGNATURE is invalid.
  (&nar-signature-error, &nar-invalid-hash-error): Remove.
  (assert-valid-signature): Add 'narinfo' parameter; remove 'port'.
  Rewrite in terms of 'signature-case' and 'leave'.  Mention NARINFO's
  URI in error messages.  Adjust caller.
  (narinfo-sha256): New procedure.
  (assert-valid-narinfo): Use it.
  (valid-narinfo?): Rewrite using 'narinfo-sha256' and
  'signature-case'.
* tests/substitute-binary.scm (assert-valid-signature,
  test-error-condition): Remove.
  ("corrupt signature data", "unauthorized public key", "invalid
  signature"): Remove.
2014-03-31 23:47:02 +02:00
Ludovic Courtès
81deef270d pki: Add 'signature-case' macro.
* guix/pki.scm (%signature-status): New procedure.
  (signature-case): New macro.
* tests/pki.scm (%secret-key, %alternate-secret-key): New variables.
  ("signature-case valid-signature", "signature-case invalid-signature",
  "signature-case hash-mismatch", "signature-case unauthorized-key",
  "signature-case corrupt-signature"): New tests.
2014-03-31 23:34:20 +02:00
Ludovic Courtès
8146fdb334 substitute-binary: Notify of valid signatures.
* guix/scripts/substitute-binary.scm (assert-valid-narinfo): Add
  #:verbose? parameter; when true, write "found valid signature".
  (valid-narinfo?): Pass #:verbose? #f.
2014-03-31 21:59:14 +02:00
Ludovic Courtès
de28fefd77 guix archive: Make sure $sysconfdir/guix exists in '--authorize'.
* guix/scripts/archive.scm (authorize-key): Add 'mkdir-p' call.
  Reported by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.
2014-03-31 21:59:14 +02:00
Alex Sassmannshausen
ef27aa9c8c doc: fix typo.
* doc/guix.texi (Substitutes): add a missing 's'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-03-31 21:59:14 +02:00
Eric Bavier
d4bf49b140 gnu: Remove unused lambda arguments and prefer separate phases over
augmented phases.

* gnu/packages/compression.scm (sharutils) [arguments]: Remove unused
  lambda args.
* gnu/packages/gl.scm (mesa) [arguments]: Same
* gnu/packages/fltk.scm [arguments]: Same.  Substitute const check
  phase with #:tests? #f.  Add pre-configure phase.
* gnu/packages/ghostscript.scm (ghostscript) [arguments]: Put makefile
  patches in separate phase.  Put so steps oinseparate phases.
* gnu/packages/glib.scm (gobject-introspection) [arguments]: Remove
  unused lambda args.  Put patches in pre-configure phase.
* gnu/packages/gnupg.scm (gnupg) [arguments]: Put patch in
  pre-configure phase.
  (pius) [arguments]: Delete const #t configure and build phases.
  (signing-party) [arguments]: Factor patches into post-unpack phase.
  (paperkey) [arguments]: Remove unused lambda args.  Factor out
  patches into pre-check phase.
* gnu/packages/icu4c.scm [arguments]: Change source dir after standard
  unpack phase.  Factor configure patches into pre-configure phase.
* gnu/packages/lsof.scm [arguments]: Remove unused lambda args.
  Remove unnecessary apply.
* gnu/packages/lvm.scm (lvm2) [arguments]: Factor out patches into
  pre-configure phase.
* gnu/packages/libtiff.scm [arguments]: Same
* gnu/packages/maths.scm (hdf5) [arguments]: Same
* gnu/packages/gtk.scm (gtk+-2) [arguments]: Same
* gnu/packages/mp3.scm (libmad) [arguments]: Same
  (id3lib) [arguments]: Same
* gnu/packages/python.scm (python-2) [arguments]: Same
* gnu/packages/texlive.scm (texlive) [arguments]: Same
* gnu/packages/pretty-print.scm (a2ps) [arguments]: Same
  (trueprint) [arguments]: Same
  (source-highlight) [arguments]: Same.  Remove unused lambda args.
* gnu/packages/netpbm.scm [arguments]: Remove unused lambda args.
  Factor out test patches into pre-check phase.  Condense calls to
  substitute*
* gnu/packages/openldap.scm [arguments]: Factor out libtool copy into
  post-configure phases. [synopsis] Remove package name.
* gnu/packages/ssh.scm (openssh) [arguments]: Factor out patches into
  separate phases.
* gnu/packages/tcsh.scm [arguments]: Factor out test patches into
  pre-check phase.
* gnu/packages/version-control.scm (git) [arguments]: Factor out
  patches into post-configure phase.
* gnu/packages/vim.scm [arguments]: Same. [synopsis] Remove package
  name.
* gnu/packages/vpn.scm (openconnect) [arguments]: Put configure flags
  in #:configure-flags
2014-03-31 10:34:17 -05:00
Ludovic Courtès
36b5851df6 offload: Exit with code 100 upon build failures.
* guix/scripts/offload.scm (transfer-and-offload): Exit with code 100
  upon build failure.
2014-03-31 10:57:28 +02:00
Ludovic Courtès
c4202d60b2 doc: Document substitutes.
* doc/guix.texi (Invoking guix-daemon): Add cross-reference to
  "Substitutes".
  (Features): Remove footnote about unauthenticated substitutes.  Link
  to "Substitutes".
  (Substitutes): New node.
  (Invoking guix build): Link to "Substitutes".
  (Packaging Guidelines): Likewise.
2014-03-30 23:37:46 +02:00
Ludovic Courtès
bf59c06d36 Add hydra.gnu.org's narinfo signing public key.
* hydra.gnu.org.pub: New file.
* Makefile.am (pkgdata_DATA): New variable.
2014-03-30 23:36:00 +02:00
Ludovic Courtès
f84f859093 tests: Test the error output of 'substitute-binary'.
* tests/substitute-binary.scm (test-error*): Rename to...
  (test-quit): ... this.  Add 'error-rx' parameter and honor it.
  ("not a number", "wrong version number", "substitute, no signature",
  "substitute, invalid hash", "substitute, unauthorized key"): Adjust
  accordingly.
2014-03-30 22:32:16 +02:00
Ludovic Courtès
e903b7c1a8 tests: Add more signed substitute tests.
* tests/substitute-binary.scm (%narinfo): Set 'URL', 'Compression', and
  'NarHash'.
  (call-with-narinfo): Create 'example.out' and 'example.nar'.
  ("query narinfo without signature", "substitute, no signature",
  "substitute, authorized key"): New tests.
2014-03-30 22:32:16 +02:00
Ludovic Courtès
52f80dfc8a tests: Simplify 'substitute-binary' tests; reduce use of global variables.
* tests/substitute-binary.scm (signature-body): Change 'str' parameter
  to 'bv', and expect it to be a bytevector.
  (%signature-body, %wrong-signature, %acl): Remove.
  (signature): Rename to...
  (signature-field): ... this.  Add 'bv-or-str' parameter.  Change 'str'
  parameter to #:version.  Add #:public-key parameter.  Call
  'signature-body' directly.  Change domain part of the signature to
  'example.gnu.org'.
  ("not a number", "wrong version number", "valid
  narinfo-signature->canonical-sexp"): Use 'signature-field' instead of
  'signature' or %SIGNATURE.
  (test-error-condition): Add 'message-rx' parameter and honor it.
  ("corrupt signature data", "unauthorized public key", "invalid
  signature"): Adjust accordingly.
  (narinfo, %signed-narinfo): Remove.
  ("query narinfo with invalid hash"): Use '%narinfo' and
  'signature-field' instead of 'narinfo' and '%signature'.
  ("query narinfo signed with authorized key", "query narinfo signed
  with unauthorized key", "substitute, invalid hash", "substitute,
  unauthorized key"): Likewise.
2014-03-30 22:32:16 +02:00
Ludovic Courtès
491e6de7d6 tests: Make sure the daemon reports substitute hash mismatches.
* tests/store.scm ("substitute, corrupt output hash"): New test.
2014-03-30 22:32:16 +02:00
Ludovic Courtès
cdea30e061 substitute-binary: Defer narinfo authentication and authorization checks.
* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
  Catch 'gcry-error' around 'string->canonical-sexp' call, and re-raise
  as a SRFI-35 &message and &nar-signature-error.
  (narinfo-maker): Handle when SIGNATURE is #f or an invalid canonical
  sexp.
  (&nar-signature-error, &nar-invalid-hash-error): New variables.
  (assert-valid-signature): Use them.  Expect 'signature' to be a
  canonical sexp.
  (read-narinfo): Remove authentication and authorization checks.
  (%signature-line-rx): New variable.
  (assert-valid-narinfo, valid-narinfo?): New procedures.
  (guix-substitute-binary): Wrap body in 'with-error-handling'.
  [valid?]: New procedure.
  <--query>: Show only store items of narinfos that match
  'valid-narinfo?'.
  <--substitute>: Call 'assert-valid-narinfo'.
* tests/substitute-binary.scm (test-error*): Use 'test-equal'.
  (%keypair): Remove.
  (%public-key, %private-key): Load from signing-key.{pub,sec}.
  (signature-body): Add #:public-key parameter.
  (call-with-narinfo): New procedure.
  (with-narinfo): New macro.
  ("corrupt signature data", "unauthorized public key", "invalid
  signature"): Make the first argument to 'assert-valid-signature' a
  canonical sexp.
  ("invalid hash", "valid read-narinfo", "valid write-narinfo"):
  Remove.
  ("query narinfo with invalid hash", "query narinfo signed with
  authorized key", "query narinfo signed with unauthorized key",
  "substitute, invalid hash", "substitute, unauthorized key"): New
  tests.
2014-03-30 22:32:11 +02:00
Ludovic Courtès
00230df107 substitute-binary: Store the cache's URI in the local cached narinfo.
* guix/scripts/substitute-binary.scm (<narinfo>)[uri-base]: New field.
  (narinfo-maker): Pass CACHE-URL as the 'uri-base' value.
  (string->narinfo): Add 'cache-uri' parameter.
  (lookup-narinfo)[cache-entry]: Switch to version 1.  Add 'cache-uri'
  field.  Adjust body accordingly.
  (remove-expired-cached-narinfos): Switch to version 1 by default.
2014-03-30 12:02:10 +02:00
Nikita Karetnikov
e9c6c58418 substitute-binary: Support the Signature field of a narinfo file.
* guix/scripts/substitute-binary.scm (<narinfo>): Add the 'signature'
  and 'contents' fields.
  (narinfo-signature->canonical-sexp): New function.
  (narinfo-maker): Add the 'signature' argument and use it.
  (assert-valid-signature): New function.
  (read-narinfo): Support the Signature field.
  (write-narinfo): Use 'narinfo-contents'.
  (%allow-unauthenticated-substitutes?): New variable.
* guix/base64.scm, tests/base64.scm, tests/substitute-binary.scm: New files.
* Makefile.am (SCM_TESTS): Add tests/base64.scm and
  tests/substitute-binary.scm.
  (MODULES): Add guix/base64.scm.
* test-env.in: Set 'GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES'.
2014-03-30 12:02:10 +02:00
Nikita Karetnikov
24194b6b54 nar: Clarify that 'assert-valid-signature' accepts a string.
* guix/nar.scm (assert-valid-signature): Improve the wording.
2014-03-30 12:02:10 +02:00
Ludovic Courtès
3f5497ee10 gnu: ed: Upgrade to 1.10.
* gnu/packages/ed.scm (ed): Upgrade to 1.10.  Use '.tar.lz' file, and
  add 'native-inputs' field.
2014-03-29 23:15:27 +01:00
Ludovic Courtès
18fae7b939 gnu: ocrad: Upgrade to 0.23.
* gnu/packages/ocrad.scm (ocrad): Upgrade to 0.23.
2014-03-29 23:14:37 +01:00
Ludovic Courtès
e4629ef43b tests: Make sure 'guix archive --import' succeeds.
* tests/guix-archive.sh: Check the exit value of 'guix archive
  --import'.
2014-03-29 22:59:46 +01:00
Ludovic Courtès
c9e2b0b16e daemon: Add tests for substitutes and --no-substitutes.
* tests/guix-daemon.sh: Add substituter tests.
2014-03-27 23:56:47 +01:00
Ludovic Courtès
968e84a6cf daemon: Clear $NIX_SUBSTITUTERS when passed '--no-substitutes'.
* nix/nix-daemon/guix-daemon.cc (main): When --no-substitutes is used,
  clear NIX_SUBSTITUTERS.  Before that, and after
  89faa5c75c, '--no-substitutes' would
  lead to attempts to use 'download-using-manifests.pl', which in
  practice would gracelessly fail.
2014-03-27 23:56:47 +01:00
Ludovic Courtès
ad0ab74eef daemon: Change some options via 'settings.set'.
* nix/nix-daemon/guix-daemon.cc (parse_opt): Use 'settings.set' instead
  of direct field access for 'buildCores', 'maxBuildJobs', and
  'useSubstitutes'.
  (main): Call 'settings.update' after 'argp_parse'.
2014-03-27 23:56:47 +01:00
Mark H Weaver
15f682f4a3 gnu: tcl: Install man pages in share/man.
* gnu/packages/tcl.scm (tcl): Add --mandir configure flag.
2014-03-26 21:33:36 -04:00
Sree Harsha Totakura
b3acf3656e Add (guix svn-download).
* guix/svn-download.scm, guix/build/svn.scm: New files.
* Makefile.am (MODULES): Add them.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-03-27 00:21:44 +01:00
Andreas Enge
8bae41a4ce gnu: gnu-pw-mgr: Fix download location.
* gnu/packages/gnu-pw-mgr.scm (gnu-pw-mgr): Fix download location.
2014-03-26 21:35:54 +01:00
Eric Bavier
5da64c7d5d gnu: Add mc
* gnu/packages/mc.scm: New file
* gnu/packages/patches/mc-fix-ncurses-build.patch: New patch
* gnu-system.am (GNU_SYSTEM_MODULES): Add mc.scm.
(dist_patch_DATA): Add patch
2014-03-26 10:50:01 -05:00
Eric Bavier
e9c14f37a8 gnu: libssh2: Fix use with libssh2.pc
* gnu/packages/ssh.scm (libssh2): Pass --with-libgcrypt configure flag and
  propagate inputs.
2014-03-26 10:50:00 -05:00
Ludovic Courtès
4979ee04f0 Merge branch 'core-updates' 2014-03-26 16:31:57 +01:00
Ludovic Courtès
07fb21b231 offload: Remove erroneous 'close-pipe' call.
* guix/scripts/offload.scm (send-files): Remove 'close-pipe' call from
  'guard' handler ('pipe' here referred to Guile's 'pipe' procedure.)
2014-03-26 16:27:46 +01:00
Ludovic Courtès
6c41cce0be offload: Wait for the processes involved in 'guix archive --missing'.
* guix/scripts/offload.scm (send-files): Keep the second return value of
  'filtered-port'.  Call 'waitpid' on it.
2014-03-26 16:27:46 +01:00
Andreas Enge
c67ccedd9e gnu: gp2c: Upgrade to 0.0.8pl1.
* gnu/packages/algebra.scm (gp2c): Upgrade to 0.0.8pl1, add native input perl.
2014-03-26 15:50:25 +01:00
Ludovic Courtès
236e66481d offload: Allow one transfer in each direction simultaneously.
* guix/scripts/offload.scm (transfer-and-offload): Use 'upload' lock
  instead of 'bandwidth' around 'send-files' calls, and 'download' lock
  around 'retrieve-files' call.
2014-03-26 15:06:52 +01:00
Ludovic Courtès
3dfd8af534 offload: Disable SSH-level compression.
* guix/scripts/offload.scm (remote-pipe): Remove '-z' lsh command line
  argument.  This makes transfers almost an order of magnitude slower.
  OpenSSH's ssh(1) man page notes: "Compression is desirable on modem lines
  and other slow connections, but will only slow down things on fast
  networks."  See also
  <http://www.spikelab.org/blog/transfer-largedata-scp-tarssh-tarnc-compared.html>.
2014-03-26 15:06:52 +01:00
Andreas Enge
ee172b1a06 gnu: pari-gp: Upgrade to 2.7.0.
* gnu/packages/algebra.scm (pari-gp): Upgrade to 2.7.0.
2014-03-26 13:48:49 +01:00
Eric Bavier
7216a04158 gnu: gnu-pw-mgr: Upgrade to 1.2
* gnu/packages/gnu-pw-mgr.scm: Upgrade to 1.2
2014-03-25 17:09:48 -05:00
Ludovic Courtès
eafee15b3c check-available-binaries: Make sure substitutes are enabled.
* build-aux/check-available-binaries.scm: Add call to
  'set-build-options'.
2014-03-25 20:45:13 +01:00
Ludovic Courtès
1971737f2b hydra: Hard-code target systems.
* build-aux/hydra/gnu-system.scm (hydra-jobs)[systems]: Define locally,
  independently of ARGUMENTS.  This matches the new Hydra convention,
  where using a 'system' input is deprecated.
2014-03-25 18:57:07 +01:00
Ludovic Courtès
afde8da3f2 gnu: guile-ssh: Upgrade to 0.6.0.
* gnu/packages/ssh.scm (guile-ssh): Upgrade to 0.6.0.
  [arguments]: Remove #:tests? #f; add #:parallel-build? #f.
2014-03-25 18:54:53 +01:00
Ludovic Courtès
b8c291fc88 gnu: recutils: Upgrade to 1.7.
* gnu/packages/recutils.scm (recutils): Upgrade to 1.7.
  Add 'arguments' field.
2014-03-25 18:54:53 +01:00
Ludovic Courtès
212ece42b0 download: Don't use 'http-get*' on Guile 2.0.10+.
* guix/build/download.scm (http-fetch)[post-2.0.7?]: Use
  'string->number' and numeric comparison.  This fixes version
  comparison with "2.0.10" and subsequent 2.0 releases.
2014-03-25 18:54:52 +01:00
Eric Bavier
505b1aa88f gnu: Add cursynth
* gnu/packages/cursynth.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add it
2014-03-25 11:41:01 -05:00
Cyril Roelandt
9214f9bc0a gnu: remove python-fix-dbm.patch
* gnu/packages/patches/python-fix-dbm.patch: remove file. It is not needed
  anymore, and is probably a left-over of a failed merge.
* gnu-system.am: remove gnu/packages/patches/python-fix-dbm.patch
2014-03-25 14:41:32 +01:00
Cyril Roelandt
9a9a3adf66 gnu: Enable tests in Python 3.
* gnu/packages/python.scm: enable tests for Python 3
* gnu/packages/python-fix-tests.patch: New file.
* gnu/packages/gnu-system.am (dist_patch_DATA): add it.
2014-03-25 14:41:32 +01:00
Cyril Roelandt
70318b4672 gnu: Python: use /nix/.../sh instead of /bin/sh in the subprocess module
* gnu/packages/python.scm (python-2): patch Lib/subprocess.py to use
  /nix/.../sh.
2014-03-25 14:41:32 +01:00
Cyril Roelandt
b10ab7230f gnu: Enable the 'ctypes' module in Python.
* gnu/packages/python.scm (python-2): add libffi to the inputs and use it to
  build the ctypes module.
2014-03-25 14:41:32 +01:00
Ludovic Courtès
d452b595f9 hydra: Fix typo in core package list.
* build-aux/hydra/gnu-system.scm: Use (gnu packages gcc).
  (%core-packages): Remove nonexistent 'gcc'; add GCC-4.8 and GCC-4.7.
2014-03-25 13:57:51 +01:00
Ludovic Courtès
e795890212 hydra: Remove cross-builds from i686-linux to mips64el-linux-gnuabi64.
* build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs]: Define
  'from-32-to-64?'.  Filter out %CROSS-TARGETS that match.
2014-03-25 13:55:56 +01:00
Ludovic Courtès
707c8b2ca7 hydra: Build GCC and glibc, not their '-final' variant.
* build-aux/hydra/gnu-system.scm (%core-packages): Replace GCC-FINAL and
  GLIBC-FINAL with GCC and GLIBC.
2014-03-25 13:40:27 +01:00
Manolis Ragkousis
c6e9628078 gnu: autotools: Add Autoconf 2.68; turn 'autoconf-wrapper' into a procedure.
* gnu/packages/autotools.scm (autoconf-2.68): New variable.
  (autoconf-wrapper): Turn into a procedure.  Turn comment into a
  docstring.
  (automake): Adjust accordingly.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-03-24 23:57:38 +01:00
Ludovic Courtès
8b7af63754 offload: Compress files being sent/retrieved.
* guix/scripts/offload.scm (send-files): Add "xz -dc |" to the remote
  pipe command.  Pass PIPE through 'call-with-compressed-output-port'.
  Remove 'close-pipe' call.
  (retrieve-files): Add "| xz -c" to the remote pipe command.  Pass PIPE
  through 'call-with-decompressed-port'.  Remove 'close-pipe' call.
2014-03-24 22:20:54 +01:00
Ludovic Courtès
01ac19dca4 utils: Add 'call-with-decompressed-port' and 'call-with-compressed-output-port'.
* guix/utils.scm (call-with-decompressed-port,
  call-with-compressed-output-port): New procedures.
* tests/utils.scm ("compressed-output-port + decompressed-port"):
  Rewrite to use them.
2014-03-24 22:15:29 +01:00
Ludovic Courtès
80dea563a3 utils: Add 'filtered-output-port' and 'compressed-output-port'.
* guix/utils.scm (filtered-output-port, compressed-output-port): New
  procedures.
* tests/utils.scm ("compressed-output-port + decompressed-port"): New
  test.
2014-03-24 21:09:15 +01:00
Ludovic Courtès
2ed6aa9e39 gnu: glibc: Patch mtrace.pl to avoid retaining a reference to Perl.
* gnu/packages/base.scm (glibc)[argument] <pre-configure phase>: Patch
  malloc/mtrace.pl.
2014-03-24 01:10:17 +01:00
Mark H Weaver
6ef91c8fc0 gnu: tor: Upgrade to 0.2.4.21.
* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.21.
2014-03-23 04:36:03 -04:00
Ludovic Courtès
1950bf56d0 tests: Make sure substitutes are usable when we need them.
* tests/derivations.scm ("derivation-prerequisites-to-build and
  substitutes"): Add call to 'set-build-options'.
2014-03-22 22:57:10 +01:00
Ludovic Courtès
9b0a2233db authenticate: Support reading the hash or key from stdin.
* guix/scripts/authenticate.scm (guix-authenticate): Add clauses
  for ("rsautl" "-sign" "-inkey" key) and ("rsautl" "-verify" "-inkey" _
  "-pubin").
* tests/guix-authenticate.sh (hash): Add test using -sign and -verify in
  a pipeline.
2014-03-22 22:57:10 +01:00
Ludovic Courtès
9dbe6e43ea authenticate: Move actual work to separate procedures.
* guix/scripts/authenticate.scm (read-canonical-sexp): Change to expect
  a port instead of a file name.
  (read-hash-data): Likewise.
  (sign-with-key, validate-signature): New procedures.
  (guix-authenticate): Rewrite in terms of these two procedures.
2014-03-22 22:57:10 +01:00
Ludovic Courtès
ed1aff038a Update 'nix-upstream' sub-module.
* nix-upstream: Update.
2014-03-22 22:57:10 +01:00
Ludovic Courtès
7a8024a33a utils: Add 'decompressed-port' and 'compressed-port'.
* guix/utils.scm (decompressed-port, compressed-port): New procedures.
* guix/scripts/substitute-binary.scm (decompressed-port): Remove.
  (guix-substitute-binary): Pass a symbol or #f as the first argument to
  'decompress-port'.
* tests/utils.scm ("compressed-port, decompressed-port, non-file"): New
  test.
2014-03-22 22:57:09 +01:00
Ludovic Courtès
443eb4e950 utils: 'filtered-port' doesn't leave dangling processes behind.
* guix/utils.scm (filtered-port): Make sure the 'execl' child process
  always exits, and does (primitive-_exit 1) upon execution failure.
  Use 'primitive-_exit' in the 'dump-port' child process.
* tests/utils.scm ("filtered-port, does not exist"): New test.
2014-03-22 22:57:09 +01:00
Yakkala Yagnesh Raghava
ca534666aa licenses: Fix Nixpkgs license URL.
* guix/licenses.scm: Fix Nixpkgs URL in comment.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-03-22 22:57:09 +01:00
Eric Bavier
7569c5cb35 gnu: Provide single-precision fftw library for pulseaudio
* gnu/packages/algebra.scm (fftwf): New variable
* gnu/packages/pulseaudio.scm (pulseaudio): Use it
2014-03-22 13:03:15 -05:00
Mark H Weaver
1eefbb2693 Merge branch 'master' into core-updates 2014-03-22 11:19:19 -04:00
Mark H Weaver
b1a01474ac gnu: guile: Upgrade to 2.0.11.
* gnu/packages/guile.scm (guile): Upgrade to 2.0.11.
2014-03-22 11:14:29 -04:00
Mark H Weaver
6212b8e5d3 gnu: cmake: Install man pages and docs in share/{man,doc}.
* gnu/packages/cmake.scm (cmake): Pass --mandir and --docdir to configure.
  Rewrite the code that selects the first two components of the version.
2014-03-22 10:34:21 -04:00
Mark H Weaver
c9a010db8a gnu: flac: Install man pages in share/man.
* gnu/packages/xiph.scm (flac): Add --mandir configure flag.
2014-03-22 10:34:14 -04:00
Eric Bavier
f0cfe3c4d5 gnu: libvorbis: disable parallel tests
* gnu/packages/xiph.scm (libvorbis): disable parallel tests
2014-03-21 15:12:47 -05:00
Mark H Weaver
9a03b893cc gnu: openssh: Upgrade to 6.6p1.
* gnu/packages/ssh.scm (openssh): Upgrade to 6.6p1.
2014-03-21 12:16:35 -04:00
Ludovic Courtès
89faa5c75c daemon: Really override the substituters setting.
Reported by Andreas Enge <andreas@enge.fr>:
<https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00211.html>.

* nix/nix-daemon/guix-daemon.cc (main): Set the 'NIX_SUBSTITUTERS'
  env. var.  Leave 'settings.substituters' unchanged.
2014-03-20 23:06:48 +01:00
Ludovic Courtès
1fda6840a8 pk-crypto: Don't use Ed25519 when libgcrypt is older than 1.6.0.
* guix/pk-crypto.scm (gcrypt-version): New procedure.
* guix/scripts/archive.scm (%key-generation-parameters): New variable.
  (%options) <generate-key>: Use it.
* tests/pk-crypto.scm ("sign + verify, Ed25519"): Skip if using gcrypt < 1.6.0.
2014-03-20 23:06:47 +01:00
Mark H Weaver
2f66e64c53 gnu: tzdata: Upgrade to 2014a. 2014-03-20 16:31:02 -04:00
Mark H Weaver
5f32ba88c4 gnu: lynx: Upgrade to 2.8.8rel.2.
* gnu/packages/lynx.scm (lynx): Upgrade to 2.8.8rel.2.
2014-03-20 16:21:33 -04:00
Mark H Weaver
12fa800d7e gnu: util-macros: Install .pc file in lib/pkgconfig; remove INSTALL file.
* gnu/packages/xorg.scm (util-macros): Substitute "$(libdir)/pkgconfig"
  for "$(datadir)/pkgconfig" in Makefile.in.  After install, remove
  share/util-macros/INSTALL and share/util-macros.
2014-03-20 05:08:23 -04:00
Mark H Weaver
e2ca23c584 gnu: bc: Install docs in share/man and share/info.
* gnu/packages/algebra.scm (bc): Pass --mandir and --infodir to configure.
2014-03-20 05:07:42 -04:00
Mark H Weaver
809e9b52bb gnu: unzip: Install man pages in share/man.
* gnu/packages/zip.scm (unzip): Substitute /share/man/ for /man/ in Makefile.
2014-03-20 05:07:35 -04:00
Mark H Weaver
f6b272fa18 gnu: screen: Install docs in share/man and share/info.
* gnu/packages/screen.scm (screen): Add --mandir and --infodir
  configure flags.
2014-03-20 05:07:26 -04:00
Mark H Weaver
0e4e89c28c gnu: netcat: Install docs in share/man and share/info.
* gnu/packages/admin.scm (netcat): Add --mandir and --infodir
  configure flags.
2014-03-20 05:07:18 -04:00
Ludovic Courtès
f6d47eb6d5 gnu: readline: Fix cross-compilation.
* gnu/packages/readline.scm (readline)[arguments]: Add
  "bash_cv_wcwidth_broken=no" to #:configure-flags
  when (%current-target-system) is true.
2014-03-19 23:21:34 +01:00
Ludovic Courtès
d81195bffd offload: Send build logs to file descriptor 4.
* guix/scripts/offload.scm (with-error-to-port): New macro.
  (remote-pipe): Add #:error-port parameter.  Use 'with-error-to-port'
  around 'open-pipe*' call.
  (build-log-port): New procedure.
  (offload): Change #:log-port to default to (build-log-port).  Call
  'remote-pipe' with #:error-port LOG-PORT.
2014-03-19 23:12:06 +01:00
Ludovic Courtès
19ee8c7dc5 substitute-binary: Quietly handle 404s when fetching narinfos.
* guix/scripts/substitute-binary.scm (fetch): Add #:quiet-404?
  parameter.  Upon &http-get-error, re-raise C if the QUIET-404? is
  true and the code is 404.
  (fetch-narinfo): Pass #:quiet-404? #t.
2014-03-19 22:26:08 +01:00
Ludovic Courtès
4a06f0ef2b gnu: xterm: Upgrade to 303.
* gnu/packages/xorg.scm (xterm): Upgrade to 303.
2014-03-19 22:22:36 +01:00
Ludovic Courtès
32a1eb8025 pk-crypto: Use RFC6979 when signing with an ECC or DSA key.
* guix/pk-crypto.scm (bytevector->hash-data): Add #:key-type parameter.
  Use the 'pkcs1' flag when KEY-TYPE is 'rsa', and 'rfc6979' when
  KEY-TYPE is 'ecc' or 'dsa'.
  (key-type): New procedure.
* guix/scripts/authenticate.scm (read-hash-data): Add 'key-type'
  parameter.  Pass it to 'bytevector->hash-data'.  Adjust caller
  accordingly.
* tests/pk-crypto.scm (%ecc-key-pair): New variable.
  ("key-type"): New test.
  ("sign + verify"): Pass #:key-type to 'bytevector->hash-data'.
  ("sign + verify, Ed25519"): New test.
2014-03-19 21:40:10 +01:00
Ludovic Courtès
0f4139e97e gnu: imagemagick: Upgrade to 6.8.8-8.
* gnu/packages/imagemagick.scm (imagemagick): Upgrade to 6.8.8-8.
2014-03-19 19:12:04 +01:00
Mark H Weaver
afd1cff148 gnu: bzip2: Install man pages to share/man/man1, not share/man1.
* gnu/packages/compression.scm (bzip2)[fix-man-dir]: Rename "man"
  to "share/man", not "share".
2014-03-19 12:06:55 -04:00
Mark H Weaver
b1d5f5da84 gnu: ncurses: Install man pages in share/man/man*, not man/man*.
* gnu/packages/ncurses.scm (ncurses): Add --mandir configure flag.
2014-03-19 12:05:49 -04:00
Ludovic Courtès
d7a9ed37c3 gnu: Add Window Maker.
* gnu/packages/gnustep.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-03-19 00:18:04 +01:00
Ludovic Courtès
e297d8fc56 tests: Test recovery from 'valid-path?' RPCs with an invalid parameter.
* tests/store.scm ("valid-path? live", "valid-path? false", "valid-path?
  error", "valid-path? recovery"): New tests.
2014-03-19 00:00:29 +01:00
Ludovic Courtès
dc19a986d4 Update 'nix-upstream' sub-module.
* nix-upstream: Update.
2014-03-18 23:44:22 +01:00
Ludovic Courtès
7305f2f1e5 gnu: libxft: Propagate Freetype and Fontconfig.
* gnu/packages/xorg.scm (libxft): Move Freetype and Fontconfig from
  'inputs' to 'propagated-inputs'.
2014-03-18 18:13:15 +01:00
Ludovic Courtès
39b71fc89b gnu: guile: Upgrade to 2.0.10.
* gnu/packages/guile.scm (guile-2.0): Upgrade to 2.0.10.
2014-03-18 15:17:50 +01:00
Ludovic Courtès
bda1bc6c51 gnu: Make libgc 7.4 the default.
* gnu/packages/bdw-gc.scm (libgc): Rename to...
  (libgc-7.2): ... this.
  (libgc-7.4): Rename to...
  (libgc): ... this.
* gnu/packages/guile.scm (guile-2.0): Switch to LIBGC.
  (guile-2.0/fixed): Alias GUILE-2.0.
2014-03-18 15:14:02 +01:00
Ludovic Courtès
1cbfce1669 guix archive: Generate curve Ed25519 keys by default.
* guix/scripts/archive.scm (%options) <generate-key>: Default to curve
  Ed25519.  Suggested by Christian Grothoff <grothoff@in.tum.de>.
2014-03-17 23:49:35 +01:00
Ludovic Courtès
d0a850698a guix archive: Improve '--generate-key' error reporting.
* guix/scripts/archive.scm (%options) <generate-key>: Report the error
  source and string when 'string->canonical-sexp' fails.
2014-03-17 23:47:18 +01:00
Ludovic Courtès
aa2480e50d build: Fix test failures due to the nix -> guix directory name change.
Reported by Nikita Karetnikov <nikita@karetnikov.org>
and Pierre-Antoine Rault <par@rigelk.eu>.

* test-env.in: Change 'NIX_LOG_DIR' in accordance with f5768af.
* tests/guix-register.sh: Likewise for 'NIX_LOG_DIR' and 'NIX_DB_DIR'.
2014-03-17 23:30:42 +01:00
Raimon Grau
32beec1cd9 gnu: luajit: Update to 2.0.3.
* gnu/packages/lua.scm (luajit): Update to 2.0.3.
2014-03-17 19:04:33 +01:00
Ludovic Courtès
0562dbe5d3 Merge branch 'master' into core-updates 2014-03-17 18:26:46 +01:00
Ludovic Courtès
9b43a0ffa3 gnu: python: Change URL to https.
* gnu/packages/python.scm (python-2, python)[source]: Change URL to
  https.  This makes sure GnuTLS is available in the derivation that
  downloads the source, which is required since http URLs get redirected
  to https anyway.  Reported by Manolis Ragkousis <manolis837@gmail.com>.
2014-03-17 18:24:13 +01:00
Ludovic Courtès
7c516af641 gnu: pulseaudio: Upgrade to 5.0.
* gnu/packages/pulseaudio.scm (pulseaudio): Upgrade to 5.0.
  Remove patches.
* gnu/packages/patches/pulseaudio-test-timeouts.patch,
  gnu/packages/patches/pulseaudio-volume-test.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2014-03-17 18:13:06 +01:00
Ludovic Courtès
b148bd714e gnu: fuse: Refer to the right 'mount' and 'umount' commands.
* gnu/packages/linux.scm (fuse)[inputs]: Change to...
  [native-inputs]: ... this.
  [arguments]: Add #:phases argument.
2014-03-16 23:18:36 +01:00
Ludovic Courtès
11e7a6cf46 store: Add 'hash-part->path'.
* guix/store.scm (hash-part->path): New procedure.
* tests/store.scm ("hash-part->path"): New test.
2014-03-14 17:16:10 +01:00
Ludovic Courtès
1a8ea0a188 offload: Fix 'choose-build-machine' for several machines.
* guix/scripts/offload.scm (choose-build-machine)[undecorate]: Turn into
  a two-argument procedure.
2014-03-13 22:57:21 +01:00
Ludovic Courtès
3c0e6e6080 offload: Convert the port number to a string when invoking lsh.
* guix/scripts/offload.scm (remote-pipe, send-files): Pass the result of
  'build-machine-port' to 'number->string'.
2014-03-13 22:46:32 +01:00
Ludovic Courtès
cecd72d55a offload: Allow build machines to specify a port number.
* guix/scripts/offload.scm (<build-machine>): Add 'port' field.
  (remote-pipe, send-files): Use lsh's '-p' option when invoking it.
2014-03-13 21:58:04 +01:00
Ludovic Courtès
257b93412a guix build: Support '--with-source' along with '-e'.
* guix/scripts/build.scm (derivation-from-expression): Remove.
  (options->derivations): Handle pairs of the form
  "('argument . (? derivation?))".
  (options/resolve-packages): Add 'store' parameter; update caller.  Add
  'system' variable.  Add case for 'expression pairs.
* guix/scripts/archive.scm (derivation-from-expression): New procedure.
2014-03-13 19:21:49 +01:00
Ludovic Courtès
9037ea2c12 gnu: guile-xcb: Upgrade to 1.3.
* gnu/packages/guile-wm.scm (guile-xcb): Upgrade to 1.3.
  [arguments] Pass --with-guile-site-dir= instead of --datadir=,
  and pass --with-guile-site-ccache-dir=.  Remove #:phases.
2014-03-13 00:04:07 +01:00
Ludovic Courtès
68276f164f gnu: linux-libre: Build the FUSE module.
* gnu/packages/linux.scm (linux-libre): Set CONFIG_FUSE_FS=m.
2014-03-12 22:55:48 +01:00
Ludovic Courtès
ed7485886e gnu: unionfs-fuse: Add statically-linked variant.
* gnu/packages/linux.scm (unionfs-fuse/static): New variable.
2014-03-12 15:11:30 +01:00
Ludovic Courtès
7f3673f21d guix build: Add '--with-source'.
* guix/scripts/build.scm (package-with-source): New procedure.
  (show-help): Add '--with-source'.
  (%options): Likewise.
  (options->derivations): Call 'options/with-source' and
  'options/resolve-packages'.
  (options/resolve-packages, options/with-source): New procedures.
* doc/guix.texi (Invoking guix build): Document '--with-source'.
2014-03-12 00:22:41 +01:00
Ludovic Courtès
d91a879121 download: 'download-to-store' accepts plain file names.
* guix/download.scm (download-to-store): When URI is #f, assume that URL
  is a file name, and handle it.
2014-03-11 22:09:42 +01:00
Mark H Weaver
bfb6b1c7b7 gnu: libgc: Upgrade to 7.2e.
* gnu/packages/bdw-gc.scm (libgc): Upgrade to 7.2e.
2014-03-10 23:47:40 -04:00
Ludovic Courtès
6f58d58243 More /gnu/store replacements.
* gnu/packages/gcc.scm (gcc-4.7): Change /nix/store in comment.
* gnu/system/vm.scm (operating-system-default-contents):
  Use (%store-prefix) instead of "/nix/store".
* guix/derivations.scm (derivation-path->output-path,
  derivation-path->output-paths): Change to /gnu/store in docstring.
2014-03-10 23:58:40 +01:00
Ludovic Courtès
8be3b8a39b Change default store values from /nix/store to /gnu/store.
* gnu/packages/ld-wrapper.scm (%store-directory): Change the default to
  /gnu/store.
* guix/build/utils.scm (%store-directory): New procedure.
  (remove-store-references): Use it for the default value of 'store'.
* guix/packages.scm (patch-and-repack)[builder]: Change default store to
  /gnu/store.
2014-03-10 23:54:27 +01:00
Ludovic Courtès
e06f7865e2 Merge branch 'master' into core-updates 2014-03-10 23:54:17 +01:00
Ludovic Courtès
c9c88118a1 gnu: linux-initrd: Make the pseudo-tty device nodes.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Create
  /dev/ptmx and /dev/pts.
* gnu/system/vm.scm (qemu-image): Umount /fs/dev/pts before /fs.
2014-03-10 23:43:31 +01:00
Ludovic Courtès
58cbbe4b55 tests: 'topologically-sorted' test handles different references orders.
* tests/store.scm ("topologically-sorted, more difficult"): Arrange to
  handle a different ordering of (references %store y).
2014-03-10 23:43:31 +01:00
Ludovic Courtès
220193ad03 gnu: Add UnionFS-FUSE.
* gnu/packages/linux.scm (unionfs-fuse): New variable.
2014-03-10 23:43:31 +01:00
Pierre-Antoine Rault
5ff3c4b820 doc: Update packaging guidelines.
* HACKING (Submitting Patches): Mention 'git send-mail'.
* doc/guix.texi (Packaging Guidelines): More details on how to prepare a
  package module.
  (Contributing): Add reference to #guix channel on Freenode.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-03-10 23:43:31 +01:00
Eric Bavier
8a1f6a7e02 gnu: pretty-print: Fix boost reference
* gnu/packages/pretty-print.scm (source-highlight): Change "boost-1.54" input
  to "boost"
2014-03-10 13:41:40 -05:00
Ludovic Courtès
714084e6c0 offload: Honor absolute build timeouts.
* guix/scripts/offload.scm (offload): Remove default value for
  'build-timeout'.  Pass '--timeout' to the remote 'guix build'
  process.
  (transfer-and-offload, process-request): Remove default value for
  'build-timeout'.
2014-03-09 23:15:09 +01:00
Ludovic Courtès
002622b65b guix build: Add '--timeout' to the common build options.
* guix/scripts/build.scm (show-build-options-help): Document
  '--timeout'.
  (set-build-options-from-command-line): Pass #:timeout to
  'set-build-options'.
  (%standard-build-options): Add '--timeout'.
* doc/guix.texi (Invoking guix build): Document it.
2014-03-09 23:09:18 +01:00
Ludovic Courtès
6c20d1d0c3 store: Add #:timeout build option.
* guix/serialization.scm (write-string-pairs): New procedure.
* guix/store.scm (write-arg): Add 'string-pairs' case.
  (set-build-options): Add 'timeout' keyword parameter.  Honor it.
* tests/derivations.scm ("build-expression->derivation and timeout"):
  New test.
2014-03-09 23:01:18 +01:00
Ludovic Courtès
02c86a5e36 gnu: Add libpcap and jnettop.
* gnu/packages/admin.scm (libpcap, jnettop): New variables.
2014-03-09 22:36:48 +01:00
Ludovic Courtès
f5768afa33 build: Change state and log directories to $localstatedir/.../guix.
* daemon.am (libstore_a_CPPFLAGS): Change /nix to /guix.
* guix/config.scm.in (%state-directory): Likewise.
* guix/store.scm (log-file): Likewise.
2014-03-09 22:10:01 +01:00
Ludovic Courtès
834129e0e2 Change the default store file name to /gnu/store.
* configure.ac: Change the default 'storedir' to /gnu/store.  Print
  $storedir.
* doc/guix.texi: Replace "/nix/store" by "/gnu/store", except where
  describing Nix compatibility.
* Makefile.am: Likewise.
2014-03-09 22:09:58 +01:00
Ludovic Courtès
59f704dff6 offload: Move macro definitions before use.
* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock,
  with-machine-lock, machine-slot-file, acquire-build-slot,
  release-build-slot): Move definitions above their first use.
2014-03-09 18:08:38 +01:00
Andreas Enge
2a51db7d8d gnu: soprano: Add input raptor2.
* gnu/packages/rdf.scm (soprano): Add input raptor2.
2014-03-09 15:02:46 +01:00
Ludovic Courtès
88da0b6888 offload: Distinguish between 'decline' and 'postpone'.
* guix/scripts/offload.scm (transfer-and-offload): New procedure, with
  core formerly in 'process-request'.
  (choose-build-machine): Remove 'requirements' parameter.
  (process-request): Reply 'decline' when none of MACHINES matches the
  requirements, and 'postpone' when MACHINES are busy.
2014-03-09 14:06:35 +01:00
Andreas Enge
0e6260a493 gnu: raptor2: Disable parallel tests.
* gnu/packages/rdf.scm (raptor2): Disable parallel tests since it makes
    tests fail.
2014-03-09 11:42:37 +01:00
Ludovic Courtès
5cc569dc73 offload: Prevent locked files from being GC'd.
* guix/scripts/offload.scm (%slots): New variable.
  (choose-build-machine): Add SLOT to '%slots'.
2014-03-08 21:23:12 +01:00
Ludovic Courtès
7df3ade112 offload: Fix thinko.
* guix/scripts/offload.scm (choose-build-machine)[machine+slots]: Use
  'filter-map', not 'filter'.
2014-03-08 12:22:49 +01:00
Ludovic Courtès
d652b85137 offload: Make 'parallel-builds' a hard limit.
* guix/scripts/offload.scm (machine-choice-lock-file,
  machine-slot-file, acquire-build-slot, release-build-slot): New
  procedures.
  (choose-build-machine): Operate with (machine-choice-lock-file)
  taken.  Acquire a build slot for each of MACHINES.  Release those not
  used.
2014-03-08 12:16:06 +01:00
Ludovic Courtès
4bf1eb4f88 offload: Further generalize lock files.
* guix/scripts/offload.scm (lock-machine, unlock-machine): Remove.
  (lock-file, unlock-file): New procedures.
  (with-file-lock): New macro.
  (with-machine-lock): Rewrite in terms of 'with-file-lock'.
2014-03-08 12:07:57 +01:00
Ludovic Courtès
178f5828eb offload: Generalize the machine lock mechanism.
* guix/scripts/offload.scm (lock-machine): Add 'hint' parameter.
  (unlock-machine): Remove 'machine' parameter.
  (with-machine-lock): Add 'hint' parameter, and pass it down.
  (process-request): Adjust uses of 'with-machine-lock' to pass the
  'bandwidth hint.
2014-03-08 11:29:52 +01:00
Ludovic Courtès
c7445833eb utils: Add a non-blocking option for 'fcntl-flock'.
* guix/utils.scm (F_SETLK): New variable.
  (fcntl-flock): Add 'wait?' keyword parameter; honor it.
* tests/utils.scm ("fcntl-flock non-blocking"): New test.
2014-03-08 00:18:22 +01:00
Ludovic Courtès
e7f34eb0dc doc: Explain what's special about the (gnu packages ...) name space.
* doc/guix.texi (Invoking guix package): Explain where packages are
  searched for and link to "Package Modules".
  (Defining Packages) <example>: Use 'define-module' clause instead of
  'use-modules'.  Explain why and link to "Package Modules".
  (Invoking guix build): Explain where packages aer searched for and
  link to "Package Modules".
  (Package Modules): Explain that (gnu packages ...) is scanned.
2014-03-08 00:18:21 +01:00
Eric Bavier
583103416d gnu: Add a2ps, trueprint, enscript, and source-highlight
* gnu/packages/pretty-print.scm: New file
* gnu/packages/patches/source-highlight-regexrange-test.patch: New file
* gnu-system.am (dist_patch_DATA): Add patch.
(GNU_SYSTEM_MODULES): Add pretty-print.scm
2014-03-07 10:11:12 -06:00
Cyril Roelandt
ff3c0c1b80 coreutils: fix test suite
* gnu/packages/patches/coreutils-skip-nohup.patch: patch taken from the git
  repository of coreutils, that makes sure tests/misc/nohup.sh does not fail
  when /dev/tty does not exist.
* gnu/packages/base.scm (coreutils): use it.
* gnu-system.am (dist_patch_DATA): add it.
2014-03-07 00:45:51 +01:00
Ludovic Courtès
cafb92d853 store: 'export-paths' doesn't export references of the given files.
This fixes a regression introduced in
99fbddf9a6 ("store: Change 'export-paths'
to always export in topological order.")

* guix/store.scm (export-paths): Define 'ordered' variable.  Iterate
  over it.
* tests/store.scm ("export/import paths, ensure topological order"): Add
  'file0'.  Adjust accordingly.
2014-03-07 00:19:03 +01:00
David Thompson
4d01bd3c1c gnu: Add ncmpc.
* gnu/packages/mpd.scm (ncmpc): New variable.
2014-03-06 16:51:16 -05:00
Ludovic Courtès
9ea3ef2655 utils: 'fcntl-flock' passes an errno when throwing an exception.
* guix/utils.scm (%libc-errno-pointer, errno): New procedures.
  (fcntl-flock): Use it as the exception's argument.
2014-03-06 21:42:24 +01:00
Ludovic Courtès
f326fef8a8 offload: Serialize file transfers to build machines.
* guix/scripts/offload.scm (machine-lock-file, lock-machine,
  unlock-machine): New procedures.
  (with-machine-lock): New macro.
  (process-request): Wrap 'send-files' and 'retrieve-files' calls in
  'with-machine-lock'.
2014-03-06 21:42:24 +01:00
Ludovic Courtès
827d556311 tests: Rewrite 'fcntl-lock' test.
* tests/utils.scm (temp-file): New variable.
  ("fcntl-flock"): Rewrite to actually test whether the child process
  waits for the lock to be released.  The previous test was wrong
  because (1) it expected F_SETLK semantics, not F_SETLKW, and (2) it
  got EBADF because of a mismatch between the open mode and the lock
  style.
2014-03-06 21:42:24 +01:00
Ludovic Courtès
56c72822a8 download: Perform derivations locally.
* guix/download.scm (url-fetch): Pass #:local-build? #t to
  'build-expression->derivation'.
* guix/git-download.scm (git-fetch): Likewise.
2014-03-06 21:42:24 +01:00
Mark H Weaver
8b3099cf03 gnu: Add bitlbee.
* gnu/packages/messaging.scm (bitlbee): New variable.
* gnu/packages/patches/bitlbee-fix-tests.patch: New file.
* gnu/packages/patches/bitlbee-memset-fix.patch: New file.
* gnu-system.am (dist_patch_DATA): Add patches.
2014-03-06 10:23:45 -05:00
Mark H Weaver
7c706558f5 gnu: Add libotr.
* gnu/packages/messaging.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-03-06 10:23:37 -05:00
Mark H Weaver
5249045cd4 gnu: gnupg: Add support for version 1.4.16.
* gnu/packages/gnupg.scm (gnupg-1): New variable.
2014-03-06 10:23:21 -05:00
Mark H Weaver
ece2624616 gnu: Add lynx.
* gnu/packages/lynx.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-03-05 13:55:06 -05:00
Mark H Weaver
9b521a678b gnu: gnutls: Upgrade to 3.2.12.
* gnu/packages/gnutls.scm (gnutls): Upgrade to 3.2.12.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2014-03-05 00:09:42 +01:00
Ludovic Courtès
8deeda0c35 gnu: Add ElementTree and pybugz.
* gnu/packages/python.scm (python2-element-tree, python2-pybugz): New
  variables.
2014-03-03 00:22:46 +01:00
Ludovic Courtès
70ee564299 doc: Factorize documentation of common build options.
* doc/guix.texi (Invoking guix package): Remove documentation for
  --dry-run, --fallback, --no-substitutes, and --max-silent-time.  Add a
  cross-ref to "Invoking guix build".
  (Invoking guix archive): Add "common build options" as the cross-ref
  topic for "Invoking guix build".
  (Invoking guix build): Move common build options separately.  Add a
  paragraph to explain.
2014-03-03 00:22:46 +01:00
Andreas Enge
ebb7aeff80 gnu: subversion: Update to 1.7.14.
* gnu/packages/version-control.scm (subversion): Update to 1.7.14.
2014-03-02 15:09:59 +01:00
Andreas Enge
98b79d361c gnu: subversion: Enable http checkouts.
* gnu/packages/version-control.scm (subversion): Add input neon-0.29.6 to
    enable http and https checkouts.
2014-03-02 14:12:40 +01:00
Andreas Enge
d56052bd80 gnu: Add neon-0.29.6.
* gnu/packages/version-control.scm (neon-0.29.6): New variable.
2014-03-02 14:03:00 +01:00
Andreas Enge
fc1e45160e gnu: Add neon.
* gnu/packages/version-control.scm (neon): New variable.
2014-03-02 13:48:28 +01:00
Manolis Ragkousis
dc91c10f2b gnu: hurd: Add Hurd headers.
* gnu/packages/hurd.scm (hurd-headers): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-03-01 18:59:34 +01:00
Ludovic Courtès
dd67b429e1 guix package: Use the common build options from (guix scripts build).
* guix/scripts/build.scm (%standard-build-options): Change option
  handlers to support multiple seeds.
* guix/scripts/package.scm (show-help): Remove --dry-run, --fallback,
  --no-substitutes, and --max-silent-time.
  (%options): Likewise, and add %STANDARD-BUILD-OPTIONS.
  (%default-options): Add 'verbosity'.
  (guix-package): Call 'set-build-options-from-command-line' instead of
  'set-build-options'.
2014-03-01 18:29:29 +01:00
Ludovic Courtès
00ee3a712f gnu: guile-ssh: Upgrade to 0.5.0.
* gnu/packages/ssh.scm (guile-ssh): Upgrade to 0.5.0.
  [arguments]: Adjust 'autoreconf' phase.  Add #:parallel-tests? #f and
  #:tests? #f.
  [native-inputs]: Add TEXINFO.
2014-03-01 15:41:18 +01:00
Ludovic Courtès
706e9e575d substitute-binary: Gracefully handle HTTP GET errors.
* guix/http-client.scm (&http-get-error): New condition type.
  (http-fetch): Raise it instead of using 'error'.
* guix/scripts/substitute-binary.scm (fetch) <http>: Wrap body into
  'guard' form; gracefully handle 'http-get-error?' conditions.
2014-03-01 15:38:11 +01:00
Ludovic Courtès
1f7fd80032 offload: Comment out attempt to set up an lsh gateway.
* guix/scripts/offload.scm (open-ssh-gateway): Comment out.
  (process-request): Remove call to 'open-ssh-gateway' and to 'kill'.
2014-03-01 12:24:39 +01:00
Ludovic Courtès
aedbf9b873 offload: 'remote-pipe' uses the right SSH key.
* guix/scripts/offload.scm (remote-pipe): Pass -i when invoking
  %LSHG-COMMAND.
2014-03-01 12:15:47 +01:00
Ludovic Courtès
165f4b2add offload: Take the target machine load into account.
* guix/scripts/offload.scm (machine-load, machine-less-loaded?,
  machine-less-loaded-or-faster?): New procedures.
  (choose-build-machine): Use 'machine-less-loaded-or-faster?' when
  sorting.  Return the head of MACHINES unless it's loaded is >= 2.
2014-03-01 01:31:18 +01:00
Ludovic Courtès
36b56f081b guix archive: Change '--help' to show '--authorize'.
* guix/scripts/archive.scm (show-help): Add '--authorize'.
2014-02-28 22:31:16 +01:00
Ludovic Courtès
62b76320b4 gnu: libgc: Change URLs to point to hboehm.info.
* gnu/packages/bdw-gc.scm (libgc)[source, home-page, license]: Update
  URL.
  (libatomic-ops)[source, home-page]: Likewise.
  (libgc-7.4)[source]: Likewise.
2014-02-28 18:14:49 +01:00
Ludovic Courtès
1faca892a3 Partly revert "gnu: Remove now unneeded 'modules' fields from 'origin' specifications."
This partly reverts commit a3a1417dc7.

* gnu/packages/base.scm (glibc)[source]: Re-add 'modules' clause.
* gnu/packages/lsh.scm (lsh)[source]: Remove 'use-modules' form from
  'snippet'.  Add 'modules' field.
2014-02-28 12:22:14 +01:00
Ludovic Courtès
664b031031 gnu: coreutils: Patch 'Makefile.in', not 'local.mk'.
* gnu/packages/patches/coreutils-dummy-man.patch: Patch 'Makefile.in',
  not 'local.mk'; the latter otherwise requires Automake to regenerate
  the build system.
2014-02-28 10:56:45 +01:00
Ludovic Courtès
a3a1417dc7 gnu: Remove now unneeded 'modules' fields from 'origin' specifications.
The previous commit has made (guix build utils) imported by default, so
no need to specify it.

* gnu/packages/base.scm (glibc)[source]: Remove 'modules' and
  'imported-modules' fields.
* gnu/packages/lsh.scm (lsh)[source]: Likewise.
2014-02-28 10:49:07 +01:00
Ludovic Courtès
3ca00bb51e packages: Support 'patches' and 'snippets' for sources that are directories.
* guix/packages.scm (patch-and-repack)[numeric-extension?, tarxz-name]:
  New procedures.
  [builder]: Adjust to deal with SOURCE when it's a directory.
  <body>: Use 'tarxz-name'.  Always add (guix build utils) to
  IMPORTED-MODULES.
2014-02-28 10:42:09 +01:00
Ludovic Courtès
a74da6b015 gnu-maintenance: Adjust 'latest-release' to filter Bash's patch directories.
* guix/gnu-maintenance.scm (latest-release)[patch-directory-name?]: New
  procedure.
  <subdirs>: Use it to filter out Bash-like patch directories.
2014-02-28 00:01:53 +01:00
Ludovic Courtès
284c004613 gnu: bash, readline: Upgrade.
* gnu/packages/readline.scm (readline): Upgrade to 6.3.
* gnu/packages/bash.scm (bash): Upgrade to 4.3.
2014-02-27 23:59:55 +01:00
Ludovic Courtès
829ecd002e Merge branch 'master' into core-updates
Conflicts:
	gnu/packages/libwebsockets.scm
2014-02-27 23:49:30 +01:00
Ludovic Courtès
65f7c35d02 hydra: Set the default absolute build timeout to 20h.
* build-aux/hydra/gnu-system.scm (package->alist): Add 'timeout' item.
2014-02-27 22:24:02 +01:00
Ludovic Courtès
833efa0d3e gnu: Move libwebsockets to (gnu packages web).
* gnu/packages/libwebsockets.scm: Remove.  Move libwebsockets package
  definition to...
* gnu/packages/web.scm (libwebsockets): ... here.
* gnu-system.am (GNU_SYSTEM_MODULES): Remove libwebsockets.scm.
2014-02-27 22:24:02 +01:00
Ludovic Courtès
371e87d286 store: Use 'when' instead of 'if' in effectful context.
* guix/store.scm (set-build-options): Use 'when' instead of 'if'.
2014-02-27 22:24:02 +01:00
David Thompson
7dc68701da gnu: Add mpd.
* gnu/packages/mpd.scm (mpd): New variable.
2014-02-25 17:27:43 -05:00
David Thompson
892d8a818b gnu: Add libmpdclient.
* gnu/packages/mpd.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-02-25 17:27:28 -05:00
Eric Bavier
d79ffe0ece gnu: zile: Upgrade to 2.4.10
* gnu/packages/zile.scm (zile): Upgrade to 2.4.10
2014-02-25 13:59:50 -06:00
Eric Bavier
87e398bdc5 gnu: parallel: Upgrade to 20140222
* gnu/packages/parallel.scm (parallel): Upgrade to 20140222
2014-02-25 12:02:53 -06:00
Mark H Weaver
41109e60b7 gnu: ffmpeg: Upgrade to 2.1.4
* gnu/packages/video.scm (ffmpeg): Upgrade to 2.1.4.
2014-02-25 06:02:51 -05:00
Sree Harsha Totakura
6a6b8ffc97 gnu: libmicrohttpd: Update to 0.9.34.
* gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.34.
2014-02-24 23:10:31 -05:00
Mark H Weaver
8fade76f5d Update SRFI-64 to the latest upstream version.
* srfi/srfi-64.scm: Export 'test-group'.  Call 'cond-expand-provide'.
* srfi/srfi-64.upstream.scm: Update to the latest upstream version.
2014-02-24 16:30:08 -05:00
Sree Harsha Totakura
c4dc4466d6 gnu: Add miniupnpc.
* gnu/packages/upnp.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-24 22:06:58 +01:00
Ludovic Courtès
3bb33e24bb gnu: coreutils: Attempt to really fix cross-compilation.
* gnu/packages/patches/coreutils-dummy-man.patch: Directly take the
  patch from <http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.
2014-02-22 00:43:50 +01:00
Ludovic Courtès
b7db387be3 gnu: grep: Upgrade to 2.18.
* gnu/packages/base.scm (grep): Upgrade to 2.18.
2014-02-22 00:37:58 +01:00
Ludovic Courtès
17919a5801 build-system/gnu: Allow the source to be a directory.
* guix/build/gnu-build-system.scm (unpack): Check if SOURCE is a
  directory, and copy it locally if it is.
* gnu/packages/libwebsockets.scm (libwebsockets)[arguments]: Remove
  'unpack' phase.
2014-02-22 00:34:49 +01:00
Ludovic Courtès
b2bfa32d25 Merge branch 'master' into core-updates
Conflicts:
	gnu-system.am
2014-02-22 00:27:57 +01:00
Ludovic Courtès
2096ef47aa derivations: Remove unused 'derivation' parameter.
* guix/derivations.scm (derivation): Remove unused #:hash-mode parameter.
* doc/guix.texi (Derivations): Adjust accordingly.
2014-02-21 23:49:53 +01:00
Ludovic Courtès
93cc13aabb gnu: Add libwebsockets.
* gnu/packages/libwebsockets.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-02-21 23:49:53 +01:00
Ludovic Courtès
9b5b5c1740 Add (guix git-download).
* guix/git-download.scm, guix/build/git.scm: New files.
* Makefile.am (MODULES): Add them.
* guix/packages.scm (<origin>): Fix comment for 'method' field.
2014-02-21 23:49:53 +01:00
Ludovic Courtès
0dbd88db39 doc: More on what's special about the archive format.
* doc/guix.texi (Invoking guix archive): Expound on what sets the Nar
  format apart.
2014-02-21 23:49:53 +01:00
Ludovic Courtès
96c7448f37 nar: Produce archives with files sorted in C collation order.
* guix/nar.scm (write-file) <directory>: Pass 'string<?' as the second
  argument to 'scandir'.
* tests/nar.scm ("write-file puts file in C locale collation order"):
  New test.
2014-02-21 23:49:53 +01:00
Ludovic Courtès
36bbbbd150 derivations: Add support for recursive fixed-output derivations.
* guix/derivations.scm (<derivation-output>): Add 'recursive?' field.
  Adjust 'make-derivation-output' callers.
  (%read-derivation) <fixed-output>: When HASH-ALGO starts with 'r:',
  set the 'recursive?' field and drop 'r:' from the hash algo name.
  (write-derivation)[write-output]: Write the algo as 'r:HASH-ALGO' when
  the RECURSIVE? field is set.
  (derivation-hash) <fixed-output>: Prepend "r:" when RECURSIVE? is set.
  (fixed-output-path): New procedure.
  (derivation): Add #:recursive? parameter.  Use 'fixed-output-path' to
  compute the output file name of a fixed output derivation.
  (build-expression->derivation): Add #:recursive? parameter.  Pass it
  to 'derivation'.
* tests/derivations.scm ("fixed-output derivation, recursive",
  "build-expression->derivation produces recursive fixed-output",
  "build-expression->derivation uses recursive fixed-output"): New
  tests.
* doc/guix.texi (Derivations): Document #:recursive? for 'derivation'.
  Add #:recursive? for 'build-expression->derivation'.
2014-02-21 23:49:52 +01:00
Ludovic Courtès
3140f2df42 guix hash: Add '--recursive'.
* guix/scripts/hash.scm (show-help): Add --recursive.
  (%options): Likewise.
  (guix-hash)[file-hash]: New procedure.  Honor --recursive.
  Use it.
* guix/nar.scm (write-file): Add missing field to the &nar-error
  condition raised upon unsupported file type; change its message to be
  more descriptive.
* tests/guix-hash.sh: Add tests with -r.
* doc/guix.texi (Invoking guix hash): Document --recursive.
2014-02-21 23:49:52 +01:00
Ludovic Courtès
c1d52c71aa ui: Handle SRFI-35 '&message' conditions.
* guix/ui.scm (call-with-error-handling): Add case for
  'message-condition?'.
* po/Makevars: Fix typo in comment.
2014-02-21 23:49:52 +01:00
Ludovic Courtès
a93e91ff48 nar: 'write-file' can write to non-file ports.
* guix/nar.scm (write-contents): Use 'sendfile' only when P is a file
  port.
* tests/nar.scm ("write-file supports non-file output ports"): New test.
2014-02-21 23:49:52 +01:00
Ludovic Courtès
86d07a5514 gnu: mpc123: Add patch that fixes a segfault.
* gnu/packages/patches/mpc123-initialize-ao.patch: New file.
* gnu/packages/mp3.scm (mpc123): Use it.
* gnu-system.am (dist_patch_DATA): Add it.
2014-02-21 23:49:52 +01:00
Mark H Weaver
504a83af42 gnu: emacs: Add more inputs: giflib, libice, libsm, alsa-lib.
* gnu/packages/emacs.scm (emacs): Add 'giflib', 'libice', 'libsm', and
  'alsa-lib' inputs.  Remove "--with-gif=no" from configure arguments.
2014-02-21 10:49:55 -05:00
Mark H Weaver
8ec773a8b8 gnu: Add giflib.
* gnu/packages/giflib.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-02-21 10:49:46 -05:00
Andreas Enge
7563004301 gnu: gmime: Use gnome mirror for download.
* gnu/packages/mail.scm (gmime): Use gnome mirror, fixes download problems
    with automatic https redirection.
2014-02-21 12:04:48 +01:00
Manolis Ragkousis
396b3c8b55 gnu: hurd: Add MiG.
* gnu/packages/hurd.scm (mig): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-20 23:18:08 +01:00
Ludovic Courtès
c6d37be951 guix hash: Don't load the whole file in memory.
* guix/scripts/hash.scm (guix-hash)[eof->null]: Remove.
  (guix-hash): Use 'port-sha256' to compute the hash instead of
  'get-bytevector-all' and co.
2014-02-20 23:18:08 +01:00
Mark H Weaver
62d4575de2 gnu: tor: Upgrade to 0.2.4.20.
* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.20.
2014-02-19 22:27:32 -05:00
Mark H Weaver
681a6588b2 gnu: Add gmime.
* gnu/packages/mail.scm (gmime): New variable.
2014-02-19 22:27:25 -05:00
Mark H Weaver
68640c3c09 gnu: gpgme: Make 'libgpg-error' a propagated input.
* gnu/packages/gnupg.scm (gpgme): Make 'libgpg-error' a propagated input.
2014-02-19 22:21:37 -05:00
Mark H Weaver
6ee5a658f7 gnu: shishi: Add more inputs for libidn and PAM support.
* gnu/packages/shishi.scm (shishi): Add 'pkg-config' native-input.
  Add 'libidn' and 'linux-pam' inputs.
2014-02-19 22:16:35 -05:00
Eric Bavier
a438d540b1 gnu: calcurse: New module
* gnu/packages/calcurse.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add it

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-19 23:27:01 +01:00
Ludovic Courtès
9038298cbf gnu: Add /etc/shells.
* gnu/system.scm (etc-directory): Add /etc/shells.
2014-02-19 21:30:16 +01:00
Ludovic Courtès
0b14d1d7e3 gnu: vm: Remove '%demo-operating-system'.
* gnu/system/vm.scm (%demo-operating-system): Remove.
  (system-qemu-image, system-qemu-image/shared-store,
  system-qemu-image/shared-store-script): Adjust accordingly.
2014-02-19 21:10:12 +01:00
Ludovic Courtès
8b198abecd gnu: Define '%base-services'.
* gnu/services/base.scm (%base-services): New variable.
* gnu/system.scm (<operating-system>)[services]: Change the default
  value to %BASE-SERVICES.
* doc/guix.texi (Using the Configuration System): Change
  '%standard-services' to '%base-services'.
2014-02-19 21:08:28 +01:00
Ludovic Courtès
db4fdc04cc gnu: Introduce the (gnu services ...) modules.
* gnu/system/dmd.scm: Remove file.  Move contents to...
* gnu/services.scm, gnu/services/base.scm, gnu/services/dmd.scm,
  gnu/services/networking.scm, gnu/services/xorg.scm: ... here.  New
  files.
* gnu/system.scm, gnu/system/vm.scm: Adjust accordingly.
* guix/scripts/system.scm (%user-module): Likewise.
* doc/guix.texi (Using the Configuration System): Likewise.
  (Defining Services): Likewise.
2014-02-19 20:58:24 +01:00
Ludovic Courtès
7fe492e8d9 gnu: bigloo: Upgrade to 4.1a.
* gnu/packages/scheme.scm (bigloo): Upgrade to 4.1a.
2014-02-19 16:43:25 +01:00
Ludovic Courtès
75475ff728 gnu: qemu: Disable debug info.
* gnu/packages/qemu.scm (qemu-headless): Add '--disable-debug-info' as a
  'configure' flag.
2014-02-18 23:47:50 +01:00
Ludovic Courtès
523e48969b Add 'guix system'.
* guix/scripts/system.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Likewise.
* doc/guix.texi (Using the Configuration System): Link to "Invoking guix
  system".
  (Invoking guix system): New node.
2014-02-18 23:47:49 +01:00
Sree Harsha Totakura
c0e57fb876 gnu: curl: Fix tests.
* gnu/packages/curl.scm (curl): Add a new phase and python-2 to native-inputs.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-18 23:32:08 +01:00
Sree Harsha Totakura
2977b307ef gnu: curl: Update to 7.35.0.
* gnu/packages/curl.scm (curl): Update to 7.35.0.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-18 23:00:25 +01:00
Sree Harsha Totakura
67543125f3 gnu: gnurl: Do not disable testcase 1022.
* gnu/packages/gnunet.scm (gnurl): Do not disable testcase 1022.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-18 22:54:31 +01:00
Sree Harsha Totakura
7c869effd4 gnu: ncdc: Update to 1.19.
* gnu/packages/dc (ncdc): Update to 1.19.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-18 22:19:33 +01:00
Mark H Weaver
d93627e4a9 gnu: gnutls: Upgrade to 3.2.11.
* gnu/packages/gnutls.scm (gnutls): Upgrade to 3.2.11.  Improve URI
  computation.
2014-02-18 10:27:04 -05:00
Mark H Weaver
625bd40806 gnu: icu4c: Upgrade to 52.1.
* gnu/packages/icu4c.scm (icu4c): Upgrade to 52.1.
2014-02-17 18:47:23 -05:00
Mark H Weaver
0841dcf7dd gnu: patchelf: Fix platform page size determination.
* gnu/packages/patches/patchelf-page-size.patch: New file.
* gnu/packages/elf.scm (patchelf): Add the patch.
* gnu-system.am (dist_patch_DATA): Add the patch.
2014-02-17 18:47:22 -05:00
Ludovic Courtès
e7fc17b592 guix build: Factorize common options.
* guix/scripts/build.scm (show-build-options-help,
  set-build-options-from-command-line): New procedures.
  (show-help): Remove description of --dry-run,
  --fallback, --no-substitutes, --max-silent-time, and --cores.  Call
  'show-build-options-help'.
  (%standard-build-options): New variable.
  (%options): Remove --dry-run, --fallback, --no-substitutes,
  --verbosity, --max-silent-time, and --cores.  Add
  %STANDARD-BUILD-OPTIONS.
  (guix-build): Use 'set-build-options-from-command-line' instead of
  'set-build-options'.
* guix/scripts/archive.scm (show-help): Remove description of --dry-run,
  --fallback, --no-substitutes, --max-silent-time, and --cores.  Call
  'show-build-options-help'.
  (%options): Remove --dry-run, --fallback, --no-substitutes,
  --verbosity, --max-silent-time, and --cores.  Add
  %STANDARD-BUILD-OPTIONS.
  (export-from-store): Call 'set-build-options-from-command-line'
  instead of 'set-build-options.
2014-02-18 00:13:24 +01:00
Mark H Weaver
98e7fc9b02 gnu: Add xapian.
* gnu/packages/search.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-02-17 15:07:15 -05:00
Sree Harsha Totakura
d850e5b913 gnu: gnurl: Update to 7.35.0.
* gnu/packages/gnunet.scm (gnurl): Update to 7.35.0.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-16 23:35:38 +01:00
John Darrington
7ee3f1a208 gnu: Add hdf5.
* gnu/packages/maths.scm (hdf5): New variable.
* gnu/packages/maths.scm (octave): New input hdf5.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-16 23:35:37 +01:00
Mark H Weaver
436c95d9a7 gnu: dmd: Sleep longer in tests, for slower machines.
* gnu/packages/patches/dmd-tests-longer-sleeps.patch: New file.
* gnu/packages/admin.scm (dmd): Add the patch.
* gnu-system.am (dist_patch_DATA): Add it.
2014-02-16 16:40:21 -05:00
Mark H Weaver
72f210eafa gnu: Add ttf-dejavu.
* gnu/packages/fonts.scm (ttf-dejavu): New variable.
2014-02-16 16:40:15 -05:00
Mark H Weaver
aaab995948 Update .gitignore for Guile 2.0.9 bootstrap binaries.
* .gitignore: Change version number in ignored Guile bootstrap
  binaries from 2.0.7 to 2.0.9.
2014-02-16 16:40:08 -05:00
Mark H Weaver
445c5abad8 gnu: ratpoison: Patch to use $SHELL instead of /bin/sh.
* gnu/packages/patches/ratpoison-shell.patch: New file.
* gnu/packages/ratpoison.scm (ratpoison): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2014-02-16 16:39:37 -05:00
Ludovic Courtès
686e637ed2 Add Manolis to 'AUTHORS'. 2014-02-16 19:53:59 +01:00
Manolis Ragkousis
0193c00432 gnu: Add GNU Mach headers.
* gnu/packages/hurd.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add hurd.scm

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-16 19:52:59 +01:00
Sree Harsha Totakura
7af52bd58c gnu: gnunet: Fix failing testcases.
* gnu/packages/gnunet.scm (gnurl): Add pkg-config.
* gnu/packages/patches/gnunet-fix-tests.patch: Append fix for integration testcases.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-12 18:36:46 +01:00
Ludovic Courtès
bdff90a16a guix build: Move 'set-build-options' call earlier.
* guix/scripts/build.scm (guix-build): Move 'set-build-options' call
  before 'show-what-to-build'.
2014-02-12 00:03:20 +01:00
Ludovic Courtès
d66b704b51 store: Add comments for the stracer.
* guix/store.scm (%worker-magic-1, %worker-magic-2): Add comments.
2014-02-12 00:03:20 +01:00
Mark H Weaver
9e5ace9d1d gnu: isc-dhcp: Upgrade to 4.3.0.
* gnu/packages/admin.scm (isc-dhcp): Upgrade to 4.3.0.
2014-02-11 15:57:06 -05:00
Sree Harsha Totakura
b6b29c7737 gnu: curl, gnurl: Fix failing testcase 172.
* gnu/packages/patches/curl-fix-test172.patch: New file.
* gnu-system.am (dist_patch_DATA): Add the patch file.
* gnu/packages/gnunet.scm (gnurl): Apply the patch file.
* gnu/packages/curl.scm (curl): Apply the patch file.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-11 19:44:48 +01:00
Andreas Enge
1680df13a8 gnu: gnunet: Correct typo.
* gnu/packages/gnunet.scm (gnunet): Correct typo.
2014-02-11 10:22:01 +01:00
Mark H Weaver
bbafef3ff1 gnu: texinfo: Make version 4.13a available.
* gnu/packages/texinfo.scm (texinfo-4): New variable.
2014-02-10 19:21:08 -05:00
Andreas Enge
05e8a0b005 gnu: gnunet: Add input libmicrohttpd.
* gnu/packages/gnunet.scm (gnunet): Add input libmicrohttpd and improve
    formatting.
2014-02-10 23:44:57 +01:00
Ludovic Courtès
99fbddf9a6 store: Change 'export-paths' to always export in topological order.
* guix/store.scm (export-paths): Pass PATHS through
  'topologically-sorted' before iterating.
* tests/store.scm ("export/import paths, ensure topological order"): New
  test.
2014-02-10 23:36:42 +01:00
John Darrington
829b1b253e gnu: lout: Change docdir from "doc" to "share/doc"
* gnu/packages/lout.scm (lout):
  Change docdir from "doc" to "share/doc".

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-10 23:36:42 +01:00
Sree Harsha Totakura
266b39fc26 gnu: Add GNUnet.
* gnunet/packages/gnunet.scm (gnunet): New variable.
* gnu/package/patches/gnunet-fix-scheduler.patch: New file.
* gnu/package/patches/gnunet-fix-tests.patch: New file.
* gnu-system.am (dist_patch_DATA): Add the above two patch files.

Co-authored-by: Andreas Enge <andreas@enge.fr>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-10 23:36:42 +01:00
Ludovic Courtès
93bfe3e27c gnu: gstreamer 1.0.10: Temporarily disable tests.
* gnu/packages/gstreamer.scm (gstreamer): Add 'arguments' field.
2014-02-10 23:36:42 +01:00
Ludovic Courtès
99662b8dbf gnu: glibc: Upgrade to 2.19.
* gnu/packages/base.scm (glibc): Upgrade to 2.19.  Remove
  'glibc-make-4.0.patch'.
* gnu/packages/patches/glibc-make-4.0.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2014-02-10 22:37:08 +01:00
John Darrington
c2e6516721 build-system/gnu: Set the docdir to "share/doc"
* guix/build/gnu-build-system.scm (configure):
  Change docdir directory from "doc" to "share/doc".

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-10 22:22:53 +01:00
Ludovic Courtès
7f31c71cb8 gnu: coreutils: Fix cross-compilation issue with 'dummy-man'.
This should work around the bug described at
<http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.

* gnu/packages/base.scm (coreutils)[patches]: Add
  'coreutils-dummy-man.patch'.
  [native-inputs]: Don't pass PERL when (%current-target-system) is
  true.
* gnu/packages/patches/coreutils-dummy-man.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
2014-02-10 18:27:42 +01:00
Mark H Weaver
fc0a973d70 gnu: openssh: Upgrade to 6.5p1.
* gnu/packages/ssh.scm (openssh): Upgrade to 6.5p1.
2014-02-09 22:27:41 -05:00
Mark H Weaver
18095a4ae0 gnu: openssl: Upgrade to 1.0.1f.
* gnu/packages/openssl.scm (openssl): Upgrade to 1.0.1f.
2014-02-09 22:27:40 -05:00
Ludovic Courtès
6ede17ca69 union: Do not compare directories upon collision.
* guix/build/union.scm (file=?): Return #f if FILE1 and FILE2 are not
  regular files.  Fixes a bug whereby collisions among directories would
  lead to the invocation of 'file=?' and thus 'call-with-input-file' on
  directories.  Reported by Mark H. Weaver <mhw@netris.org>.
2014-02-10 00:05:39 +01:00
Ludovic Courtès
2de227af4b download: Provide a 'User-Agent' field in HTTP requests.
Fixes <http://bugs.gnu.org/16703>.
Reported by Raimon Grau <raimonster@gmail.com>.

* guix/build/download.scm (http-fetch)[headers]: New variable.
  Pass it as #:headers or #:extra-headers to 'http-get' and
  'http-get*'.
2014-02-10 00:03:34 +01:00
Ludovic Courtès
06d275f67f gnu: dmd: Add SLiM service.
* gnu/system/dmd.scm (xorg-service): Remove.
  (xorg-start-command, slim-service): New procedure.
2014-02-09 23:46:28 +01:00
Ludovic Courtès
f3d4af173a gnu: dmd: Fix X font directory name in X service.
* gnu/system/dmd.scm (xorg-service)[xserver.conf]: Fix directory name in
  'FontPath' entry for FONT-ADOBE75DPI.
2014-02-09 23:30:49 +01:00
Ludovic Courtès
26fc862a61 gnu: linux-initrd: When booting, chdir to the new root before calling 'chroot'.
* guix/build/linux-initrd.scm (boot-system): Add 'chdir' call right
  before 'chroot'.
2014-02-09 23:28:18 +01:00
Ludovic Courtès
f9ec07a985 gnu: slim: Work around flaky synchronization with the X server.
* gnu/packages/patches/slim-sigusr1.patch: New file.
* gnu/packages/slim.scm (slim): Use it.
* gnu-system.am (dist_patch_DATA): Add it.
2014-02-09 23:20:42 +01:00
Raimon Grau
4cccb3617e gnu: Add stalonetray
* gnu/packages/stalonetray.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add stalonetray.scm

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-09 22:06:15 +01:00
Eric Bavier
350b9b9933 gnu: moe: New module
* gnu/packages/moe.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add moe.scm

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-08 18:00:25 +01:00
Ludovic Courtès
e30835e247 gnu: Add FUSE.
* gnu/packages/linux.scm (fuse): New variable.
2014-02-08 16:07:02 +01:00
Ludovic Courtès
ea0e9ce2e6 gnu: Move root's home directory to /root.
* gnu/system.scm (operating-system-derivation): Change root's
  'home-directory' to "/root".
* gnu/system/vm.scm (operating-system-default-contents): Add /root.
2014-02-08 00:18:25 +01:00
Ludovic Courtès
7a03af707c gnu: python-pysqlite: Point to the latest release tarball.
* gnu/packages/python.scm (python2-pysqlite): Change 'version' to
  "2.6.3a".  Change 'uri' to point to pypi.python.org.
  Reported by Mark H Weaver <mhw@netris.org> and others.
  Update 'home-page' and 'synopsis'.
2014-02-07 23:57:48 +01:00
Eric Bavier
4380a7b4b8 gnu: Add paperkey.
* gnu/packages/gnupg.scm (paperkey): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-07 23:33:30 +01:00
Ludovic Courtès
b93afd5b53 gnu: gdb: Upgrade to 7.7.
* gnu/packages/gdb.scm (gdb): Upgrade to 7.7.  Remove
  'gdb-loongson-madd-fix.patch', no longer needed.
* gnu/packages/patches/gdb-loongson-madd-fix.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2014-02-06 22:09:52 +01:00
Ludovic Courtès
6e37066e76 daemon: Add '--gc-keep-outputs' and '--gc-keep-derivations'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_GC_KEEP_OUTPUTS,
  GUIX_OPT_GC_KEEP_DERIVATIONS): New macros.
  (options): Add 'gc-keep-outputs' and 'gc-keep-derivations'.
  (string_to_bool): New function.
  (parse_opt): Honor GUIX_OPT_GC_KEEP_DERIVATIONS and
  GUIX_OPT_GC_KEEP_OUTPUTS.
* doc/guix.texi (Invoking guix-daemon): Document --gc-keep-outputs and
  --gc-keep-derivations.
2014-02-06 21:49:47 +01:00
Ludovic Courtès
c37b2b2aa5 Add Raimon to 'AUTHORS'. 2014-02-06 19:07:10 +01:00
Raimon Grau
924cd63116 gnu: Add luajit
* gnu/packages/lua.scm (luajit): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-06 19:04:02 +01:00
John Darrington
3600420e3e gnu: Add Glade.
* gnu/packages/gnome.scm (glade): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-06 19:01:52 +01:00
Ludovic Courtès
cc0a128226 gnu: binutils: Build with --enable-deterministic-archives.
* gnu/packages/base.scm (binutils): Add
  '--enable-deterministic-archives' to #:configure-flags.
  Suggestion from Lunar's 2014 FOSDEM talk on reproducible builds.
2014-02-06 14:06:28 +01:00
Ludovic Courtès
2c1dea853d gnu: coreutils: Move Perl to 'native-inputs'.
* gnu/packages/base.scm (coreutils): Add 'native-inputs' field.
  This should allow cross builds to have man pages, and work around this
  'dummy-man' bug:
  <http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.
2014-02-06 12:17:16 +01:00
Andreas Enge
c6ebb77cb7 gnu: imagemagick: Upgrade to 6.8.8-4.
* gnu/packages/imagemagick.scm (imagemagick): Upgrade to 6.8.8-4.
2014-02-06 09:32:12 +01:00
Eric Bavier
8254b48066 gnu: gnu-pw-mgr: Upgrade to 1.1.
* gnu/packages/gnu-pw-mgr.scm (gnu-pw-mgr): Upgrade to 1.1.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2014-02-06 09:13:43 +01:00
Ludovic Courtès
c36b22281e gnu: guile-wm: Upgrade to 1.0.
* gnu/packages/guile-wm.scm (guile-wm): Upgrade to 1.0.
2014-02-05 23:21:24 +01:00
Ludovic Courtès
7aec36830f gnu: system: Build /etc/localtime.
* gnu/system.scm (etc-directory)[bashrc]: Use 'text-file*' instead of
  'text-file'.  Adjust users accordingly.
  [files]: Add the /etc/localtime file for TIMEZONE.
  Add TZDATA to the 'file-union' inputs.
  (operating-system-derivation): Pass 'etc-directory' PROFILE-DRV
  instead of PROFILE.
2014-02-05 22:22:51 +01:00
Ludovic Courtès
16686a9022 gnu: slim: Upgrade to 1.3.6; allow the choice of a config file at run time.
* gnu/packages/slim.scm (slim): Upgrade to 1.3.6.  Add patches.  Comment
  out systemd-related stuff from CMakeLists.txt.  Add
  "-DBUILD_SHARED_LIBS=OFF" and "-DCMAKE_SKIP_BUILD_RPATH=ON" to
  #:configure-flags.  Adjust 'home-page' field.
* gnu/packages/patches/slim-config.patch,
  gnu/packages/patches/slim-session.patch: New files.
* gnu-system.am (dist_patch_DATA): Add them.
2014-02-05 22:18:14 +01:00
John Darrington
1d07e9316a gnu: inkscape: New module
* gnu/packages/inkscape.scm,
  gnu/packages/patches/inkscape-stray-comma.patch: New files.
* gnu-system.am (GNU_SYSTEM_MODULES): Add inkscape.scm.
  (dist_patch_DATA): Add inkscape-stray-comma.patch.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-05 00:02:17 +01:00
John Darrington
2a72eeeea1 gnu: Add Boost.
* gnu/packages/boost.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add boost.scm

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-04 21:50:42 +01:00
John Darrington
99b030c705 gnu: gxmessage: New module
* gnu/packages/gxmessage.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add gxmessage.scm

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-04 21:41:46 +01:00
Ludovic Courtès
7c9325a9ec gnu: dmd: Use 'text-file*' when building Xorg's config file.
* gnu/system/dmd.scm (xorg-service)[xserver.conf]: Change to use
  'text-file*' instead of 'text-file'.
  Adjust body accordingly.  Remove now extraneous packages from the
  service's 'inputs' field.
2014-02-03 23:37:09 +01:00
Ludovic Courtès
45adbd624f monads: Add 'text-file*'.
* guix/monads.scm (text-file*): New procedure.
* tests/monads.scm ("text-file*"): New test.
* doc/guix.texi (The Store Monad): Change example since the previous one
  would erroneously fail to retain a reference to Coreutils.  Document
  'text-file*'.
2014-02-03 23:20:49 +01:00
John Darrington
67995f4bea gnu: file: Upgrade to 5.16.
* gnu/packages/file.scm (file): Upgrade to 5.16.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-03 22:21:47 +01:00
John Darrington
9c08644340 gnu: gtkmm-2 New variable
* gnu/packages/gtk.scm (gtkmm-2): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-02-03 22:11:32 +01:00
Ludovic Courtès
682b6599d7 gnu: vm: Create all the user directories.
* gnu/system/vm.scm (operating-system-default-contents)[user-directories]:
  New procedure.  Use it to create each user's home and GC root
  directories.
2014-02-02 20:41:53 +01:00
Ludovic Courtès
ba6f8e423e gnu: Add xterm.
* gnu/packages/xorg.scm (xterm): New variable.
2014-02-02 20:38:03 +01:00
Ludovic Courtès
f6a9d0484c gnu: vm: Add /run/current-system and /bin/sh.
* gnu/system/vm.scm (operating-system-default-contents): Populate
  /run/current-system and create /bin/sh.
* gnu/system.scm (operating-system-profile-derivation,
  operating-system-profile-directory): New procedures.
  (operating-system-derivation): Use it.
2014-02-02 01:34:33 +01:00
Ludovic Courtès
92cb2e2888 offload: Have 'build-machines' honor its argument.
* guix/scripts/offload.scm (build-machines): Honor FILE.
2014-02-02 01:32:50 +01:00
Ludovic Courtès
1c2215108b gnu: linux-initrd: Build /dev/input devices.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
  dev/input devices.
2014-02-01 02:22:23 +01:00
Ludovic Courtès
53bd729e8c gnu: Add preliminary Xorg service.
* gnu/system/dmd.scm (xorg-service): New procedure.
2014-02-01 01:58:37 +01:00
Ludovic Courtès
c04c6ff64c gnu: linux-initrd: Make /dev/{mem,kmem}.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
  dev/{mem,kmem}.
2014-02-01 01:07:14 +01:00
Ludovic Courtès
e420308f29 gnu: xorg-server: Use /var as $localstatedir.
* gnu/packages/xorg.scm (xorg-server): Pass --localstatedir=/var.  In
  'configure' phase, patch 'hw/xfree86/Makefile.in'.
2014-01-31 18:22:04 +01:00
Ludovic Courtès
fd3bfc44ff gnu: vm: Add support for running a VM that shares its store with the host.
* gnu/system/vm.scm (qemu-image): Check whether GUIX is #f.
  (operating-system-build-gid, operating-system-default-contents): New
  procedures.
  (system-qemu-image): Use 'operating-system-build-gid'.
  (system-qemu-image/shared-store,
  system-qemu-image/shared-store-script): New procedures.
* gnu/system.scm: Add missing exports.
2014-01-31 14:36:48 +01:00
Ludovic Courtès
44ddf33ed5 gnu: linux-initrd: Allow the root file system to be volatile.
* gnu/system/linux-initrd.scm (qemu-initrd): Add 'volatile-root?'
  parameter.
* guix/build/linux-initrd.scm (boot-system): Likewise.  Honor it.
2014-01-31 14:26:30 +01:00
Ludovic Courtès
70b33d81cf gnu: linux: Really build 9p/virtio modules.
* gnu/packages/linux.scm (linux-libre): Add CONFIG_NET_9P and
  CONFIG_9P_FS.
2014-01-31 14:23:54 +01:00
Ludovic Courtès
4919d68432 gnu: linux-initrd: Recognize 9p file systems.
* gnu/system/linux-initrd.scm (qemu-initrd)[virtio-9p-modules]: New
  variable.
  [linux-modules]: Append VIRTIO-9P-MODULES when a 9p file system is in
  MOUNTS.
* guix/build/linux-initrd.scm (mount-qemu-9p): New procedure.
  (boot-system): Recognize '9p' in MOUNTS, and use 'mount-qemu-9p'.
2014-01-31 12:52:13 +01:00
Ludovic Courtès
217b862f0e gnu: linux-initrd: Match kernel module file names exactly.
* gnu/system/linux-initrd.scm (expression->initrd)[string->regexp]: New
  procedure.  Use it in the call to 'find-files'.
2014-01-31 12:01:23 +01:00
Ludovic Courtès
fc4bc4b6de gnu: linux-initrd: Properly distinguish between /dev/sda* and /dev/vda*.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Rename
  devices with major = 8 to /dev/sda*.  Make /dev/vda* devices.
* gnu/system/vm.scm (qemu-image): Change '/dev/vda' to '/dev/sda'.
* gnu/system.scm (operating-system-derivation): Likewise.
2014-01-31 01:43:16 +01:00
Ludovic Courtès
83b9e6a185 gnu: linux-initrd: Start a REPL when the root could not be mounted.
* guix/build/linux-initrd.scm (boot-system): Catch errors when mounting
  ROOT and call 'start-repl' upon error.
2014-01-31 01:40:02 +01:00
Ludovic Courtès
882f034fa8 gnu: linux-libre: Build more virtio modules.
* gnu/packages/linux.scm (linux-libre): Append CONFIG_NET_9P_VIRTIO and
  CONFIG_VIRTIO_{NET,BLK,BALLOON} to '.config'.
2014-01-31 01:15:38 +01:00
Ludovic Courtès
a7d46f12ac gnu: vm: Run QEMU with '-enable-kvm'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass QEMU
  '-enable-kvm'.
2014-01-30 23:32:22 +01:00
John Darrington
668c06acfc gnu: Add GNU Octave.
* gnu/packages/maths.scm (octave): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-30 22:00:55 +01:00
Ludovic Courtès
f914963e47 gnu: linux-libre: Build virtio modules.
* gnu/packages/linux.scm (linux-libre): Build modules matching
  CONFIG.*VIRTIO.
2014-01-29 23:42:36 +01:00
Ludovic Courtès
7b99ba4acd gnu: linux-libre: Upgrade to 3.13.
* gnu/packages/linux.scm (linux-libre): Upgrade to 3.13.
2014-01-29 23:34:47 +01:00
Sree Harsha Totakura
a85cb48643 gnu: gnunet: Add gnurl 7.34.0.
* gnu/packages/gnunet.scm (gnurl): New variable. Thanks to Zerwas for
  the initial recipe.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-29 23:08:37 +01:00
Ludovic Courtès
610b5cd8a1 gnu: libgcrypt: Upgrade to 1.6.1.
* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.6.1.
2014-01-29 22:37:53 +01:00
Ludovic Courtès
d425471182 gnu: linux-initrd: Factorize boot code.
* guix/build/linux-initrd.scm (boot-system): New procedure.
* gnu/system/linux-initrd.scm (qemu-initrd): Add keyword parameters
  'guile-modules-in-chroot?' and 'mounts'.  Change builder to simply
  call 'boot-system'.
  (gnu-system-initrd): Change to a simple call to 'qemu-initrd'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Call
  'qemu-initrd' with #:guile-modules-in-chroot?.
2014-01-29 21:57:56 +01:00
Ludovic Courtès
735c6dd7fa gnu: Lower initrd makers from packages to monadic procedures.
* gnu/packages/linux-initrd.scm: Remove.
* gnu/system/linux-initrd.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/system.scm (<operating-system>): Change default 'initrd' value
  to (gnu-system-initrd).
  (operating-system-derivation): Bind 'operating-system-initrd'.  Pass
  'menu-entry' an initrd file name instead of a package.
* gnu/system/grub.scm (grub-configuration-file): Expect 'initrd' to be
  file name.
2014-01-29 16:50:02 +01:00
Ludovic Courtès
413d5351aa monads: Add 'imported-modules' and 'compiled-modules'.
* guix/monads.scm (package-file): Fix typo.
  (imported-modules, compiled-modules): New procedures.
2014-01-29 13:05:42 +01:00
Ludovic Courtès
b0dd47a8d0 gnu: qemu-initrd: Adjust to allow booting with a non-empty /root.
* gnu/packages/linux-initrd.scm (qemu-initrd): Use 'mkdir-p' instead of
  'mkdir' for /root/xchg and /root/{share,lib}.  When TO-LOAD is a
  symlink, resolve it.
  (gnu-system-initrd): Fix typo in message.
2014-01-28 23:38:19 +01:00
Ludovic Courtès
49a8b80da6 Revert "build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com."
This reverts commit 65529e49ff.
2014-01-28 08:57:37 +01:00
Ludovic Courtès
65529e49ff build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com.
Suggested by John Darrington <john@darrington.wattle.id.au>
and Mark H Weaver <mhw@netris.org>.

* guix/build/gnu-build-system.scm (configure): Pass --localstatedir=/var
  --sharedstatedir=/com.
* gnu/packages/admin.scm (dmd): Remove 'arguments' field.
* gnu/packages/avahi.scm (avahi): Remove --localstatedir flag.
* gnu/packages/glib.scm (dbus): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/pulseaudio.scm (pulseaudio): Likewise.
2014-01-27 23:45:59 +01:00
Ludovic Courtès
f06afd4da2 download: Add archive.apache.org to the Apache mirrors.
* guix/download.scm (%mirrors)[apache]: Add archive.apache.org as a last
  resort.
2014-01-27 23:31:28 +01:00
Ludovic Courtès
a76611c435 offload: Do not try to retrieve anything upon build failure.
* guix/scripts/offload.scm (offload): Add 'log-port' keyword parameter.
  Handle log display here.  Return the result of (close-pipe pipe).
  (process-request): Adjust 'offload' call site accordingly.  Call
  'retrieve-files' only when 'offload' returns zero; exit when 'offload'
  returns non-zero.
2014-01-27 21:32:59 +01:00
Ludovic Courtès
35cebf0166 gnu: iotop: Fix typos.
* gnu/packages/linux.scm (iotop): Fix typos introduced by myself.
2014-01-27 19:02:59 +01:00
Sree Harsha Totakura
7c0dbe780a gnu: linux: Add iotop-0.6.
* gnu/packages/linux.scm (iotop): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-27 18:59:22 +01:00
Ludovic Courtès
d43547f12d gnu: libffi: Leave a copy of headers where libffi.pc expects them.
Suggested by Sree Harsha Totakura <sreeharsha@totakura.in>.

* gnu/packages/libffi.scm (libffi): Symlink header files instead of
  moving them.
2014-01-27 15:30:35 +01:00
Ludovic Courtès
5d80dd0823 gnu: Add asciidoc.
* gnu/packages/asciidoc.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-01-26 23:52:59 +01:00
Ludovic Courtès
829c095dae gnu: qemu: Add note about 9p.
* gnu/packages/qemu.scm (qemu/smb-shares): Add comment.
2014-01-26 23:25:55 +01:00
John Darrington
73fed4f868 gnu: Add gnuplot
* gnu/packages/maths.scm (gnuplot): New variable

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-26 21:16:55 +01:00
Ludovic Courtès
70d1ce9afc build: Set 'NIX_LIBEXEC_DIR' in 'pre-inst-env'.
Reported by Nikita Karetnikov <nikita@karetnikov.org>.

* test-env.in: Move 'NIX_LIBEXEC_DIR' setting to...
* pre-inst-env.in: ... here.
2014-01-26 15:53:56 +01:00
Andreas Enge
566146abba gnu: lapack: Update to 3.5.0.
* gnu/packages/maths.scm (lapack): Update to 3.5.0.
2014-01-26 13:04:03 +01:00
Ludovic Courtès
22f33e6112 gnu: sdl: Explicitly link against libXext.
* gnu/packages/sdl.scm (sdl): Add #:configure-flags to 'arguments'.
  Move PKG-CONFIG to 'native-inputs'.
2014-01-25 23:07:35 +01:00
Andreas Enge
1ca03c048b gnu: apl: Update to 1.2.
* gnu/packages/apl.scm (apl): Update to 1.2.
2014-01-25 19:08:13 +01:00
Andreas Enge
daaa00c82a gnu: global: Update to 6.2.10.
* gnu/packages/global.scm (global): Update to 6.2.10.
2014-01-25 19:06:02 +01:00
Andreas Enge
fe9aeab9dd gnu: lightning: Update to 2.0.3.
* gnu/packages/lightning.scm (lightning): Update to 2.0.3.
2014-01-25 19:01:23 +01:00
Ludovic Courtès
ecb1b610d2 tests: Adjust to recent Binutils change.
* tests/guix-package.sh: Refer to 'glibc:debug' instead of
  'binutils:lib' since the latter no longer exists.
2014-01-25 17:23:23 +01:00
Ludovic Courtès
6ce206cb92 Prefer local builds for "small" derivations.
* gnu/system.scm (union, file-union, links): Pass #:local-build? #t to
  'derivation-expression'.
* guix/derivations.scm (imported-files, compiled-modules): Likewise.
* guix/profiles.scm (profile-derivation): Likewise.
2014-01-25 17:22:53 +01:00
Andreas Enge
5ae7b708bb gnu: parallel: Update to 20140122.
* gnu/packages/parallel.scm (parallel): Update to 20140122.
2014-01-25 17:18:06 +01:00
Ludovic Courtès
200a97e64f Merge branch 'master' into core-updates 2014-01-25 17:07:21 +01:00
Ludovic Courtès
1909431c5b derivations: Add #:local-build? parameter for derivations.
* guix/derivations.scm (derivation): Add #:local-build? parameter and
  honor it.
  (build-expression->derivation): Likewise.
* doc/guix.texi (Derivations): Update documentation of these
  procedures.
2014-01-25 17:04:35 +01:00
John Darrington
b6cbb314d9 gnu: fltk: New module
* gnu/packages/fltk.scm: New file
* gnu-system.am: New file fltk.scm

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-25 16:39:03 +01:00
John Darrington
3c9aa5c12d gnu: libxft: Propagate input.
* gnu/packages/xorg.scm (libxft): Propagate input libxrender.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-25 16:37:51 +01:00
John Darrington
4f3a10d59d gnu: ncdu: New module
* gnu/packages/ncdu.scm: New file
* gnu-system.am: New file ncdu.scm

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-25 16:20:24 +01:00
Sree Harsha Totakura
513e1950fb gnu: Add Corkscrew 2.0.
* gnu/packages/ssh.scm (corkscrew): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-25 16:20:23 +01:00
Sree Harsha Totakura
28fb9101d9 gnu: Add ncdc-1.18.1.
* gnu/packages/dc.scm : New module.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-25 16:20:23 +01:00
Ludovic Courtès
9e55f04a4b profiles: Remove misleading message.
Fixes <http://bugs.gnu.org/16484>.
Reported by Andreas Enge <andreas@enge.fr>.

* guix/profiles.scm (profile-derivation)[builder]: Remove "building
  profile '~a' with ~a packages" message.
2014-01-25 16:20:23 +01:00
Ludovic Courtès
4ec2e92ddb doc: More about offloading.
* doc/guix.texi (Daemon Offload Setup): Start with "When desired".  Say
  more on what can go in 'machines.scm', and mention Guile-Avahi.
  (Invoking guix-daemon): Document '--no-build-hook'.
  (Invoking guix build): Add xref to "Daemon Offload Setup".
2014-01-25 16:20:23 +01:00
Ludovic Courtès
b5d4a81133 wget: Upgrade to 1.15.
* gnu/packages/wget.scm (wget): Upgrade to 1.15.  Remove Gettext from
  'inputs'.  Move Perl to 'native-inputs'.
2014-01-25 16:20:23 +01:00
Andreas Enge
93e48d19c7 gnu: ffmpeg: Update to 2.1.3.
* gnu/packages/video.scm (ffmpeg): Update to 2.1.3.
2014-01-24 22:40:44 +01:00
Andreas Enge
e816b34878 gnu: ffmpeg: Add input opus.
* gnu/packages/video.scm (ffmpeg): Add input opus.
2014-01-24 22:22:42 +01:00
Ludovic Courtès
70f228cd86 Add Sree to 'AUTHORS'. 2014-01-24 14:03:12 +01:00
Sree Harsha Totakura
a7f904fd63 gnu: Add Opus 1.1.
* gnu/packages/xiph.scm (opus): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-24 14:01:38 +01:00
Ludovic Courtès
49e6291a7a Add 'guix offload' as a daemon build hook.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_BUILD_HOOK): New macro.
  (options): Add '--no-build-hook'.
  (parse_opt): Handle it.
  (main)[HAVE_DAEMON_OFFLOAD_HOOK]: Set 'useBuildHook' by default.
  Set $NIX_BUILD_HOOK to our offload hook unless otherwise specified.
  [!HAVE_DAEMON_OFFLOAD_HOOK]: Clear 'useBuildHook'.
* pre-inst-env.in: Set and export NIX_BUILD_HOOK.
* nix/scripts/offload.in, guix/scripts/offload.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add "offload".
* config-daemon.ac: Call 'GUIX_CHECK_UNBUFFERED_CBIP'.
  Instantiate 'nix/scripts/offload'.  Set 'BUILD_DAEMON_OFFLOAD'
  conditional, and optionally define 'HAVE_DEAMON_OFFLOAD_HOOK' cpp
  macro.
* daemon.am (nodist_pkglibexec_SCRIPTS)[BUILD_DAEMON_OFFLOAD]: Add it.
* Makefile.am (MODULES)[BUILD_DAEMON_OFFLOAD]: Add
  'guix/scripts/offload.scm'.
  (EXTRA_DIST)[!BUILD_DAEMON_OFFLOAD]: Likewise.
* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): New macro.
* doc/guix.texi (Setting Up the Daemon): Move most of the body to...
  (Build Environment Setup): ... this.  New subsection.
  (Daemon Offload Setup): New subsection.
2014-01-24 00:01:50 +01:00
Ludovic Courtès
50add47748 store: Add 'topologically-sorted'.
* guix/store.scm (topologically-sorted): New procedure.
* tests/store.scm ("topologically-sorted, one item",
  "topologically-sorted, several items", "topologically-sorted, more
  difficult"): New tests.
2014-01-24 00:01:50 +01:00
Ludovic Courtès
cd4027fa47 nar: Add 'restore-file-set', for use by build hooks.
* guix/nar.scm (&nar-invalid-hash-error, &nar-signature-error): New
  condition types.
  (&nar-error): Add 'file' and 'port' fields.
  (&nar-read-error): Remove 'port' and 'file' fields.
  (lock-store-file, unlock-store-file, finalize-store-file,
  temporary-store-directory, restore-file-set): New procedures.
* tests/nar.scm (%seed): New variable.
  (random-text): New procedure.
  ("restore-file-set (signed, valid)", "restore-file-set (missing
  signature)", "restore-file-set (corrupt)"): New tests.
* po/Makevars (XGETTEXT_OPTIONS): Add '--keyword=message'.nar fixes
* po/POTFILES.in: Add guix/nar.scm.
2014-01-24 00:01:50 +01:00
Ludovic Courtès
ce4a482983 store: Add 'with-store' convenience macro.
* guix/store.scm (with-store): New macro.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
045111e10c hash: Add 'open-sha256-input-port', for Guile > 2.0.9.
* guix/hash.scm (open-sha256-input-port): New procedure.
* tests/hash.scm (supports-unbuffered-cbip?): New procedure.
  ("open-sha256-input-port, empty", "open-sha256-input-port, hello",
  "open-sha256-input-port, hello, one two",
  "open-sha256-input-port, hello, read from wrapped port"): New tests.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
d28684b5a5 pki: Factorize signature manipulation procedures.
* guix/pki.scm (signature-subject, signature-signed-data,
  valid-signature?): New procedures.
* guix/scripts/authenticate.scm (guix-authenticate): Adjust to use
  them.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
2cd5c0380e utils: Add 'fcntl-flock'.
* guix/utils.scm (%struct-flock, F_SETLKW, F_xxLCK): New variables.
  (fcntl-flock): New procedure.
* tests/utils.scm ("fcntl-flock"): New test.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
6bfec3edf5 store: Add 'register-path' procedure.
* guix/store.scm (register-path): New procedure.
* tests/store.scm ("register-path"): New test.
* guix/config.scm.in (%guix-register-program): New variable.
* configure.ac: Compute and substitute 'guix_sbindir'.  Compute
  'guix_prefix'.
* pre-inst-env.in: Define 'GUIX_REGISTER'.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
349fd3b11f guix-register: Support registration in the current store, without '--prefix'.
* nix/guix-register/guix-register.cc (register_validity): Leave
  'info.path' unmodified when PREFIX is empty.
  (main): Call 'settings.processEnvironment' early on.
  Leave 'settings.nixStore' unmodified when PREFIX is empty.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
5674a3fdb6 store: Add comments for the %stderr constants.
* guix/store.scm (process-stderr): Add comments for the various
  constants, to help when stracing.
2014-01-24 00:01:49 +01:00
Ludovic Courtès
59f734f351 ui: Filter out internal commands from '--help'.
* guix/ui.scm (show-guix-help)[internal?]: New procedure.
  Use it to filter out internal commands reported by '--help'.
2014-01-24 00:01:49 +01:00
Andreas Enge
54ff0b7dd7 gnu: Rename (gnu packages oggvorbis) to (gnu packages xiph).
* gnu/packages/oggvorbis.scm: Rename this ...
* gnu/packages/xiph.scm: ... to this. Adjust module name accordingly.
* gnu-system.am (GNU_SYSTEM_MODULES): Update.
* gnu/packages/{gnunet.scm, libcanberra.scm, mp3.scm, pulseaudio.scm, sdl.scm,
    video.scm}: Use new module name.
2014-01-23 19:05:09 +01:00
Sree Harsha Totakura
997ef1df51 gnu: sqlite: Upgrade to 3.8.2.
* gnu/packages/sqlite.scm (sqlite): Upgrade to 3.8.2.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-23 00:03:02 +01:00
Ludovic Courtès
32795fcffb gnu: guile-2.0: Switch to libgc 7.4.0.
* gnu/packages/guile.scm (guile-2.0): Use LIBGC-7.4.
  (guile-2.0/fixed): Keep using LIBGC.
2014-01-22 23:45:44 +01:00
Ludovic Courtès
ad7583f6f5 gnu: Add libatomic_ops 7.4.0 and libgc 7.4.0.
* gnu/packages/bdw-gc.scm (libatomic-ops, libgc-7.4): New variables.
2014-01-22 23:44:20 +01:00
Ludovic Courtès
6596ac3987 gnu: libgc: Explicitly mark license as 'x11-style'.
* gnu/packages/bdw-gc.scm (libgc)[license]: Use 'x11-style'.
2014-01-22 23:15:07 +01:00
Ludovic Courtès
463d6dac7d gnu: isc-dhcp: Fix license.
* gnu/packages/admin.scm (isc-dhcp): Change license to ISC.
2014-01-22 00:25:43 +01:00
Ludovic Courtès
e67f555161 gnu: gnubik: Synchornize synopsis and description.
* gnu/packages/games.scm (gnubik): Synchornize synopsis and description.
2014-01-22 00:22:16 +01:00
Ludovic Courtès
a869565b98 gnu: Add GNU V.E.R.A.
* gnu/packages/dictionaries.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-01-22 00:21:19 +01:00
Ludovic Courtès
66ea671393 licenses: Add GNU FDL 1.3+.
* guix/licenses.scm (fdl1.3+): New variable.
2014-01-22 00:20:40 +01:00
Ludovic Courtès
00585a5582 gnu: glib: Upgrade to 2.39.1.
* gnu/packages/glib.scm (glib): Upgrade to 2.39.1.  Run tests
  sequentially.
* gnu/packages/patches/glib-tests-desktop.patch: Adjust for 2.39.1.  Add
  hunk for gsettings.c.
2014-01-20 01:06:22 +01:00
Ludovic Courtès
6dc99317fb doc: List what's in the chroot.
* doc/guix.texi (Setting Up the Daemon): List what's in the chroot.
2014-01-18 22:32:51 +01:00
Ludovic Courtès
d43eb499a6 Update 'nix-upstream' sub-module; adjust build system, doc, and substituter.
* nix-upstream: Update sub-module.
* daemon.am (libutil_a_SOURCES): Add affinity.cc.
  (libutil_headers): Add affinity.hh.
  (libexec_PROGRAMS, nix_setuid_helper_SOURCES,
  nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): Remove.
* doc/guix.texi (Setting Up the Daemon): Remove paragraph about
  'nix-setuid-helper'.
* guix/scripts/substitute-binary.scm (guix-substitute-binary): Exit 0 when
  %CACHE-URL has an HTTP scheme and looking up its host fails.
  Always print a newline to stdout when starting.
2014-01-18 22:32:50 +01:00
Ludovic Courtès
b97c95eb3c linux-initrd: Make /dev/{null,zero} world-writable.
Reported by zerwas on #guix.

* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
  /dev/null and /dev/zero world-writable.
2014-01-18 22:32:50 +01:00
Andreas Enge
8bb1699bd5 gnu: mesa: Propagate input.
* gnu/packages/gl.scm (mesa): Propagate input libx11.
2014-01-18 17:53:43 +01:00
Ludovic Courtès
a8bcd6eb6f hydra: Add debugging for the Guix job set.
* build-aux/hydra/guix.scm: Set '%load-verbosely'.
2014-01-18 14:41:58 +01:00
Andreas Enge
10b4d0f6ff gnu: gl: Correct copyright notice.
* gnu/packages/gl.scm: Add copyright notice for mesa, moved here from
    module xorg in commit 200726e.
2014-01-18 14:15:39 +01:00
Ludovic Courtès
c915b404b2 gnu: Add DocBook DTD and XSL style sheets.
* gnu/packages/docbook.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-01-17 23:47:31 +01:00
Ludovic Courtès
7e17f65d95 doc: Distinguish between (gnu packages ...) and "GNU packages".
* doc/guix.texi (Package Modules): Add a footnote stating that (gnu
  packages ...) has nothing to do with "GNU packages."
2014-01-17 22:52:10 +01:00
Ludovic Courtès
c5e0eb2884 ui: Update copyright year in '--version' output.
* guix/ui.scm (show-version-and-exit): Increment copyright year.
2014-01-17 22:49:42 +01:00
Ludovic Courtès
9208d0c1a0 gnu: Add libexif, libgphoto2, and gphoto2.
* gnu/packages/photo.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-01-15 22:47:55 +01:00
John Darrington
e7d6f7bfa0 gnu: pspp: Upgrade to 0.8.2
* gnu/packages/maths.scm (pspp): Update to 0.8.2.
* gnu/packages/patches/pspp-tests.patch: Deleted.
* gnu-system.am: Removed pspp-tests.patch from the manifest.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2014-01-15 21:27:41 +01:00
Andreas Enge
fcaa7523d4 gnu: mpc: Update to 1.0.2.
* gnu/packages/multiprecision.scm (mpc): Update to 1.0.2.
2014-01-15 16:37:54 +01:00
Ludovic Courtès
2a5e15c6e1 gnu: git: 'git-submodule' works even if Perl is not in $PATH.
* gnu/packages/version-control.scm (git): Add 'native-inputs' field;
  move Gettext there from 'inputs'.  In 'split' phase, wrap the
  'git-submodule' script.
2014-01-15 15:39:47 +01:00
Andreas Enge
da923d11d2 gnu: valgrind: Update to 2.9.0.
* gnu/packages/valgrind.scm (valgrind): Update to 2.9.0.
2014-01-15 15:11:57 +01:00
Ludovic Courtès
f7ad76e06d Update 'sr.po'. 2014-01-15 00:24:46 +01:00
Ludovic Courtès
16f68e4840 gnu: Add Taylor UUCP.
* gnu/packages/uucp.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-01-15 00:15:55 +01:00
Ludovic Courtès
9927622f3f gnu: inetutils: Upgrade to 1.9.2.
* gnu/packages/admin.scm (inetutils): Upgrade to 1.9.2.  Add Readline
  as an input.
2014-01-14 09:11:13 +01:00
Ludovic Courtès
4eaad71db6 doc: Fix another reference to (gnu packages admin).
* doc/guix.texi (Using the Configuration System): Change module name
  to (gnu packages admin).
2014-01-14 09:00:29 +01:00
Ludovic Courtès
8f0fd238d4 gnu: Add mpc123.
* gnu/packages/mp3.scm (libmpcdec, mpc123): New variables.
2014-01-14 00:14:12 +01:00
Ludovic Courtès
9de46ffb1c gnu: Changes references to (gnu packages admin).
* gnu/packages/version-control.scm, gnu/packages/vim.scm,
  gnu/system.scm, gnu/system/dmd.scm, gnu/system/shadow.scm,
  gnu/system/vm.scm: Change references to (gnu packages system) to (gnu
  packages admin).
  This is a followup to commit 4aeea89.
2014-01-13 23:21:47 +01:00
Ludovic Courtès
4aeea896f8 gnu: Rename (gnu packages system) to (gnu packages admin).
* gnu/packages/system.scm: Rename to...
* gnu/packages/admin.scm: ... this.  Adjust module name accordingly.
* gnu-system.am (GNU_SYSTEM_MODULES): Update.
2014-01-13 21:32:39 +01:00
Ludovic Courtès
c73d4c9276 gnu: Add ISC's DHCP implementation.
* gnu/packages/system.scm (isc-dhcp): New variable.
2014-01-13 21:27:57 +01:00
Ludovic Courtès
3e424f2541 gnu: Add libtirpc.
* gnu/packages/onc-rpc.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2014-01-13 18:53:26 +01:00
Ludovic Courtès
eb9a9feefd guix package: Gracefully handle EPIPE on '--search'.
* guix/scripts/package.scm (guix-package): Wrap body of 'search' in
  'leave-on-EPIPE'.
2014-01-13 18:51:07 +01:00
Ludovic Courtès
8fa3e6b338 ui: Don't use hyphens in 'package->recutils' output.
* guix/ui.scm (package->recutils): Rename recutils field from
  'home-page' to 'homepage'.
2014-01-13 18:49:26 +01:00
Ludovic Courtès
6869e5c90c gnu: Add aumix.
* gnu/packages/linux.scm (aumix): New variable.
2014-01-13 18:47:59 +01:00
Ludovic Courtès
40d806afae gnu: Add GnuPG's pinentry.
* gnu/packages/gnupg.scm (pinentry): New variable.
2014-01-13 18:47:31 +01:00
Ludovic Courtès
d50f242d50 gnu: guile-ssh: Remove now unneeded cruft.
* gnu/packages/ssh.scm (guile-ssh): Remove libssh version hack from
  'autoreconf' phase.
2014-01-13 00:37:16 +01:00
Ludovic Courtès
15756a7a12 gnu: Add Aspell dictionaries.
* gnu/packages/aspell.scm (aspell-dictionary): New procedure.
  (aspell-dict-en, aspell-dict-eo, aspell-dict-es, aspell-dict-fr): New
  variables.
2014-01-12 22:47:48 +01:00
Ludovic Courtès
1731596792 hydra: Add GCC, Binutils, and libc to the core package set.
* build-aux/hydra/gnu-system.scm (%core-packages): Add GCC-FINAL,
  GLIBC-FINAL, and BINUTILS.
2014-01-11 11:47:38 +01:00
Ludovic Courtès
8e92b6b5b5 gnu: grep, coreutils: Upgrade.
* gnu/packages/base.scm (grep): Upgrade to 2.16.
  (coreutils): Upgrade to 8.22.
2014-01-08 22:32:20 +01:00
Ludovic Courtès
2a48cd9915 gnu: gettext: Upgrade to 0.18.3.2.
* gnu/packages/gettext.scm (gnu-gettext): Upgrade to 0.18.3.2.
2014-01-08 22:30:57 +01:00
Ludovic Courtès
6c95f363d5 gnu: binutils: Upgrade to 2.24.
* gnu/packages/patches/binutils-loongson-madd-fix.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
* gnu/packages/base.scm (binutils): Upgrade to 2.24.  Remove
  'binutils-loongson-madd-fix.patch'.  Remove 'outputs' field.  Pass
  '--enable-install-libbfd'.
2014-01-08 22:30:33 +01:00
Ludovic Courtès
2f265602ff Merge branch 'master' into core-updates 2014-01-08 22:06:54 +01:00
Ludovic Courtès
1d6816f98c config: '%store-directory' always honors $NIX_STORE_DIR.
* guix/config.scm.in (%store-directory): Honor $NIX_STORE_DIR.
* guix/store.scm (%store-prefix): Use %store-directory directly.
2014-01-08 21:37:06 +01:00
Ludovic Courtès
80d0447c95 config: '%state-directory' always honors $NIX_STATE_DIR.
* guix/config.scm.in (%state-directory): Honor $NIX_STATE_DIR.
* guix/scripts/package.scm (%profile-directory): Use %state-directory
  directly.
* guix/store.scm (%default-socket-path, log-file): Likewise.
2014-01-08 21:12:55 +01:00
Ludovic Courtès
021a201f29 store: Fix 'log-file' to support uncompressed logs.
* guix/store.scm (log-file): Report the file without '.bz2' if it
  exists.
2014-01-08 19:23:33 +01:00
Ludovic Courtès
aa6b0d6bf0 gnu: make: Build with Guile support.
* gnu/packages/base.scm (gnu-make, gnu-make-boot0): Add 'native-inputs'
  field.
2014-01-07 18:10:01 +01:00
Ludovic Courtès
8fd6487e1c gnu: glibc: Build the Info pages.
* gnu/packages/base.scm (glibc): Add 'native-inputs' field.
  (perl-boot0): New variable.
  (linux-libre-headers-boot0): Use it.
  (texinfo-boot0): New variable.
  (glibc-final-with-bootstrap-bash): Add 'native-inputs' field.
2014-01-07 18:08:51 +01:00
Ludovic Courtès
87236aed77 archive: Add '--missing'.
* guix/scripts/archive.scm (show-help, %options): Add '--missing'.
  (guix-archive)[lines]: New procedure.
  Use it to honor '--missing'.
* tests/guix-archive.sh: Add tests.
* doc/guix.texi (Invoking guix archive): Document '--missing'.
2014-01-06 22:25:29 +01:00
Ludovic Courtès
b846126052 gnu: lsh: Move generic patching to 'snippet'.
* gnu/packages/lsh.scm (lsh): Move generic patching to the 'snippet'
  field of 'origin'.
2014-01-05 23:46:45 +01:00
Ludovic Courtès
590e4154b6 archive: Make sure $sysconfdir/guix exists.
* guix/pki.scm (ensure-acl): Make sure the directory of %ACL-FILE
  exists.
* guix/scripts/archive.scm (generate-key-pair): Likewise for
  %PUBLIC-KEY-FILE.
2014-01-05 23:40:06 +01:00
Ludovic Courtès
425b0bfc2e guix build: Add '--no-build-hook'.
* guix/scripts/build.scm (%default-options): Add 'build-hook?' pair.
  (show-help, %options): Add --no-build-hook.
  (guix-build): Pass the 'build-hook?' value to 'set-build-options'.
* doc/guix.texi (Invoking guix build): Document '--no-build-hook'.
2014-01-05 22:58:32 +01:00
Ludovic Courtès
1a43e4dc57 guix package: Gracefully deal with EPIPE on stdout for --list-*.
* guix/scripts/package.scm (leave-on-EPIPE): New macro.
  (guix-package): Use it for 'list-installed', 'list-available', and
  '--list-generations'.
* tests/guix-package.sh: Add test.
2014-01-04 22:45:33 +01:00
Ludovic Courtès
aebaeaee33 gnu: lsh: Fix the absolute file name of 'sexp-conv'.
* gnu/packages/lsh.scm (lsh): Rename 'fix-test-suite' phase to
  'pre-configure'.  Set PATH_SEXP_CONV in environ.h.in.
2014-01-04 17:27:41 +01:00
Ludovic Courtès
64cc58b249 gnu: nettle: Set the RUNPATH on 'sexp-conv' and other programs.
* gnu/packages/nettle.scm (nettle): Rename 'inputs' to 'native-inputs'.
  Add 'arguments' field.
2014-01-04 16:59:46 +01:00
Ludovic Courtès
cb58dd3479 gnu: lsh: Distinguish between native inputs and target inputs.
* gnu/packages/lsh.scm (lsh): Move M4, Guile, gperf, and psmisc to
  'native-inputs'.  Use GUILE-2.0 instead of GUILE-FINAL.
2014-01-04 16:46:01 +01:00
Ludovic Courtès
48ad99db25 doc: Update 'ROADMAP'.
* ROADMAP: Add link to the updated road map, and the a note on release
  history.
2014-01-03 18:19:58 +01:00
Ludovic Courtès
7c49bbe466 Thank Niels. 2014-01-03 16:51:30 +01:00
Ludovic Courtès
f5ac2352e9 gnu: pulseaudio: Add patch for 'volume-test'; re-enable tests.
* gnu/packages/patches/pulseaudio-volume-test.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/pulseaudio.scm (pulseaudio): Use it.  Remove
  #:tests? #t.
2014-01-03 16:47:19 +01:00
John Darrington
bf0018cd87 gnu: games: Add new package gnubg
* gnu/packages/games.scm (gnubg): New variable

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-30 23:33:56 +01:00
Ludovic Courtès
40fed2d836 gnu: libgcrypt: Add "debug" output.
* gnu/packages/gnupg.scm (libgcrypt): Add 'outputs' field.
2013-12-30 23:22:08 +01:00
Ludovic Courtès
f82cc5fdbe archive: Add '--authorize'.
* guix/scripts/archive.scm (authorize-key): New procedure.
  (guix-archive): Call it when OPTS contains 'authorize-key'.
* tests/guix-archive.sh: Add test with invalid public key.
* guix/pki.scm: Export '%acl-file'.
* doc/guix.texi (Invoking guix archive): Make it clear that '--import'
  works only with authorized keys.  Document '--authorize'.
2013-12-30 23:18:52 +01:00
Ludovic Courtès
554f26ece3 archive: Add '--generate-key'.
* guix/pk-crypto.scm (error-source, error-string): New procedures.
* guix/pki.scm (%private-key-file): New variable.
* guix/scripts/archive.scm (show-help): Document '--generate-key'.
  (%options): Add "generate-key".
  (generate-key-pair): New procedure.
  (guix-archive): Call 'generate-key' when OPTS contains a
  'generate-key' pair.
* doc/guix.texi (Setting Up the Daemon): Suggest generating a key pair.
  (Invoking guix archive): Document '--generate-key'.
2013-12-30 22:57:37 +01:00
Ludovic Courtès
dedb5d947e pk-crypto: Fix 'canonical-sexp->sexp' for atoms.
* guix/pk-crypto.scm (canonical-sexp->sexp): Add hack to extract an
  atom's buffer.
* tests/pk-crypto.scm ("sexp->canonical-sexp->sexp"): Add sample.
2013-12-30 22:29:12 +01:00
Ludovic Courtès
36341854df pk-crypto: Work around Libgcrypt bug <https://bugs.g10code.com/gnupg/issue1594>.
* guix/pk-crypto.scm (canonical-sexp-fold): Call 'nth-data' before
  'nth' to work around <https://bugs.g10code.com/gnupg/issue1594>.
* tests/pk-crypto.scm ("https://bugs.g10code.com/gnupg/issue1594"): New
  test.
2013-12-30 22:19:19 +01:00
Ludovic Courtès
c909dab269 authenticate: Consistently use 'leave' for fatal error reporting.
* guix/scripts/authenticate.scm (guix-authenticate): Replace all uses of
  'format' + 'exit' with 'leave'.
2013-12-30 18:23:44 +01:00
Ludovic Courtès
6fc04984d2 Thank Kete. 2013-12-30 16:57:05 +01:00
John Darrington
200726ed09 gnu: mesa: Move out of xorg.scm and into gl.scm
* gnu/packages/xorg.scm (mesa): Move to...
* gnu/packages/gl.scm (mesa): ... here.  New variable.
* gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm,
  gnu/packages/qemu.scm, gnu/packages/qt.scm: Adjust accordingly.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-30 16:53:30 +01:00
Ludovic Courtès
4d1a2b50a6 doc: Invoke 'useradd' with '--system'.
Reported by Kete <kete@ninthfloor.org>.
Fixes <http://bugs.gnu.org/16289>.

* doc/guix.texi (Setting Up the Daemon): Add '--system' to the 'useradd'
  command line.  Suggested by Kete <kete@ninthfloor.org>.
2013-12-30 16:47:32 +01:00
Ludovic Courtès
4b155fea74 gnu: automake: Upgrade to 1.14.1.
* gnu/packages/autotools.scm (automake): Upgrade to 1.14.1.
2013-12-29 22:44:23 +01:00
Ludovic Courtès
57ed6ab792 gnu: gdbm: Upgrade to 1.11.
* gnu/packages/gdbm.scm (gdbm): Upgrade to 1.11.
2013-12-29 22:22:09 +01:00
Ludovic Courtès
bb0a70e1f1 build: Improve documentation of Nix-related options.
* configure.ac: Add documentation for --with-nix and --with-nixpkgs.
2013-12-29 19:53:05 +01:00
John Darrington
490c6528ed gnu: games: New module
* gnu/packages/games.scm (gnubik): New variable

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-29 19:50:23 +01:00
John Darrington
ed19903d56 gnu: gnome: Add new package gtkglext
* gnu/packages/gnome.scm (gtkglext): New variable.
* gnu/packages/patches/gtkglext-disable-disable-deprecated.patch,
  gnu/packages/patches/gtkglext-remove-pangox-dependency.patch: New
  files.
* gnu-system.am (dist_patch_DATA): Add them.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-29 18:53:25 +01:00
Ludovic Courtès
96e5085c81 authenticate: Disallow imports signed with unauthorized keys.
* guix/scripts/authenticate.scm (signature-sexp): Remove.
  (guix-authenticate): Upon '-verify', check whether the signature's
  public key passes 'authorized-key?'.
2013-12-29 15:57:24 +01:00
Ludovic Courtès
8b420f74e4 Add (guix pki).
* guix/pki.scm, tests/pki.scm: New files.
* Makefile.am (MODULES): Add 'guix/pki.scm'.
  (SCM_TESTS): Add 'tests/pki.scm'.
2013-12-29 15:57:24 +01:00
Ludovic Courtès
3f40cfdece config: Export '%config-directory'.
* configure.ac: Define and substitute 'guix_sysconfdir'.
* guix/config.scm.in (%config-directory): New variable.
2013-12-29 15:57:24 +01:00
Ludovic Courtès
04d4c8a439 Move 'with-atomic-file-output' to (guix utils).
* guix/scripts/substitute-binary.scm (with-atomic-file-output): Move to...
* guix/utils.scm (with-atomic-file-output): ... here.
2013-12-29 15:57:24 +01:00
Ludovic Courtès
9501d7745e pk-crypto: Add canonical-sexp to sexp conversion procedures.
* guix/pk-crypto.scm (canonical-sexp-fold, canonical-sexp->sexp,
  sexp->canonical-sexp): New procedures.
* tests/pk-crypto.scm ("canonical-sexp->sexp",
  "sexp->canonical-sexp->sexp"): New tests.
2013-12-29 15:57:24 +01:00
Ludovic Courtès
363ae1da82 pk-crypto: Add 'canonical-sexp-length' and related procedures.
* guix/pk-crypto.scm (canonical-sexp-length, canonical-sexp-null?,
  canonical-sexp-list?): New procedures.
* tests/pk-crypto.scm ("canonical-sexp-length", "canonical-sexp-list?"):
  New tests.
2013-12-29 15:57:24 +01:00
Ludovic Courtès
a2cbbb743d pk-crypto: 'canonical-sexp-nth-data' returns a symbol for "tokens".
* guix/pk-crypto.scm (token-string?): New procedure.
  (canonical-sexp-nth-data): Return a symbol when the element is a
  "token", and a bytevector otherwise.
  (latin1-string->bytevector): Remove.
  (hash-data->bytevector): Adjust accordingly.
* tests/pk-crypto.scm ("canonical-sexp-nth"): Adjust accordingly.  Add
  octet string example.
2013-12-29 15:57:23 +01:00
Ludovic Courtès
6df1fb8991 authenticate: Store the public key as part of the signature.
* guix/scripts/authenticate.scm (signature-sexp): New procedure.
  (guix-authenticate): Use it to produce the signature.  Adjust
  verification code accordingly.
* tests/store.scm ("import corrupt path"): Adjust test accordingly.
2013-12-29 15:57:23 +01:00
Ludovic Courtès
b0a33ac157 pk-crypto: Rename 'gcry-sexp' to 'canonical-sexp'.
* guix/pk-crypto.scm: Rename procedures, variables, etc. from
  'gcry-sexp' to 'canonical-sexp'.  Add comment with references.
* guix/scripts/authenticate.scm, tests/pk-crypto.scm: Adjust
  accordingly.
2013-12-29 15:57:23 +01:00
Andreas Enge
557813760d gnu: python: Update to 3.3.3.
* gnu/packages/python.scm (python): Update to 3.3.3.
2013-12-28 15:41:01 +01:00
Andreas Enge
ee2b510929 gnu: python-2: Update to 2.7.6.
* gnu/packages/python.scm (python-2): Update to 2.7.6.
2013-12-28 15:24:08 +01:00
Andreas Enge
81bb10ad17 gnu: parallel: Update to 20131122.
* gnu/packages/parallel.scm (parallel): Update to 20131122.
2013-12-28 14:59:15 +01:00
Andreas Enge
f6727409c2 gnu: xorriso: Update to 1.3.4.
* gnu/packages/cdrom.scm (xorriso): Update to 1.3.4.
2013-12-28 14:53:07 +01:00
Andreas Enge
d0c2cf7d54 gnu: libcdio: Update to 0.92.
* gnu/packages/cdrom.scm (libcdio): Update to 0.92.
2013-12-28 14:42:04 +01:00
Andreas Enge
579b249683 gnu: libextractor: Update to 1.3.
* gnu/packages/gnunet.scm (libextractor): Update to 1.3.
2013-12-28 09:01:15 +01:00
Andreas Enge
d3f1333693 gnu: vim: Update to 7.4.
* gnu/packages/vim.scm (vim): Update to 7.4.
2013-12-22 23:23:11 +01:00
Ludovic Courtès
d6b5e4bbbd Update 'TODO'. 2013-12-22 01:11:12 +01:00
Ludovic Courtès
760c60d684 Add 'guix archive'.
* guix/scripts/archive.scm, tests/guix-archive.sh: New files.
* Makefile.am (MODULES): Add 'archive.scm'.
  (SH_TESTS): Add 'guix-archive.sh'.
* doc/guix.texi (Invoking guix archive): New section.
* guix/scripts/build.scm: Export 'derivation-from-expression'.
* guix/scripts/package.scm: Export 'specification->package+output'.
2013-12-22 01:08:21 +01:00
Ludovic Courtès
7edccf4d62 build: Install 'guix-authenticate'.
* daemon.am (nodist_libexec_SCRIPTS): New variable.
2013-12-22 00:02:39 +01:00
Ludovic Courtès
81fa80b245 guix build: Improve procedural decomposition.
* guix/scripts/build.scm (%store): Remove.
  (derivation-from-expression): Add 'store' parameter.  Adjust caller
  accordingly.
  (register-root): New procedure, formerly within 'guix-build'.
  (options->derivations): New procedure, formerly inline within
  'guix-build'.
  (guix-build): Adjust accordingly.
2013-12-21 22:53:58 +01:00
Ludovic Courtès
3f26bfc18a Factorize package search between 'guix package' and 'guix build'.
* guix/scripts/package.scm (newest-available-packages): Remove.
  (find-best-packages-by-name): Move to...
* gnu/packages.scm (find-best-packages-by-name): ... here.
  (find-newest-available-packages): Memoize.
* guix/scripts/build.scm (specification->package): New procedure,
  formerly called 'find-package' within 'guix-build'.
  (guix-build): Adjust accordingly.
2013-12-21 22:36:32 +01:00
Ludovic Courtès
0820098d1c authenticate: Add test.
* tests/guix-authenticate.sh: New file.
* Makefile.am (SH_TESTS): Add it.
2013-12-21 21:47:17 +01:00
Ludovic Courtès
0a66781eee build: Adjust pk-crypto tests to Libgcrypt 1.5.3.
Reported by Andreas Enge <andreas@enge.fr>.

* tests/pk-crypto.scm ("string->gcry-sexp->string"): Remove "#C0FFEE#"
  from SEXPS.
  ("gcry-sexp-nth"): Start at index 1.
2013-12-21 00:10:09 +01:00
Ludovic Courtès
526382ff92 daemon: Implement signed archive import/export.
* guix/scripts/authenticate.scm, nix/scripts/guix-authenticate.in,
  tests/signing-key.pub, tests/signing-key.sec: New files.
* po/POTFILES.in: Add 'guix/scripts/authenticate.scm'.
* guix/store.scm (dump-port): New procedure.
  (process-stderr): Add 'user-port' optional parameter.  Handle
  the %STDERR-WRITE and %STDERR-READ cases as expected.
  (import-paths, export-path, export-paths): New procedures.
* tests/store.scm ("export/import several paths", "import corrupt
  path"): New tests.
* Makefile.am (MODULES): Add 'guix/scripts/authenticate.scm'.
  (EXTRA_DIST): Add 'tests/signing-key.{pub,sec}'.
* daemon.am (libstore_a_CPPFLAGS)[-DNIX_CONF_DIR]: Change 'NIX_CONF_DIR'
  to .../guix.  Change 'OPENSSL_PATH' to 'guix-authenticate'.
* config-daemon.ac: Instantiate 'nix/scripts/guix-authenticate'.
* nix/nix-daemon/guix-daemon.cc (main): Augment $PATH to include
  'settings.nixLibexecDir'.
* test-env.in: Export 'NIX_CONF_DIR' and 'NIX_LIBEXEC_DIR'.  Populate
  $NIX_CONF_DIR.
2013-12-20 17:17:42 +01:00
Ludovic Courtès
ce507041f7 pk-crypto: Add a few sexp utility procedures.
* guix/pk-crypto.scm (gcry-sexp-car, gcry-sexp-cdr, gcry-sexp-nth,
  gcry-sexp-nth-data, dereference-size_t, latin1-string->bytevector,
  hash-data->bytevector): New procedures.
* tests/pk-crypto.scm ("gcry-sexp-car + cdr", "gcry-sexp-nth",
  "gcry-sexp-nth-data", "bytevector->hash-data->bytevector"): New tests.
2013-12-20 15:22:15 +01:00
Ludovic Courtès
971cb56dd0 Update 'TODO'. 2013-12-20 00:37:41 +01:00
Ludovic Courtès
3476ded934 Add (guix pk-crypto).
* guix/pk-crypto.scm, tests/pk-crypto.scm: New files.
* Makefile.am (MODULES, SCM_TESTS): Add them.
2013-12-20 00:36:26 +01:00
Ludovic Courtès
b1aa25be00 sync-with-upstream: Work around limitation of dash.
Reported by Andreas Enge <andreas@enge.fr>.

* nix/sync-with-upstream: Expand use of {cc,hh}, to placate dash.
2013-12-19 00:42:35 +01:00
Ludovic Courtès
0c5028faea daemon: Fix 'HashSink::currentHash()'.
Before that, calls to 'HashSink::currentHash()' would eventually lead to
a segfault because the underlying gcrypt handle has been closed.  (Note
that this method is only used via 'importPaths' and 'exportPath', though.)

* nix/libutil/gcrypt-hash.hh (struct guix_hash_context): Add a
  constructor and a copy constructor; move out of 'extern "C"'.
* nix/libutil/gcrypt-hash.cc (guix_hash_final): Clear 'md_handle' upon
  exit.
* nix/sync-with-upstream (top_srcdir): Change hash.{cc,hh} to read
  'struct Ctx' instead of 'union Ctx'.
2013-12-19 00:02:49 +01:00
Ludovic Courtès
37dd969c2e daemon: Add libgcrypt call to state that the initialization is over.
* nix/nix-daemon/guix-daemon.cc (main): Add 'gcry_control' call.
2013-12-19 00:02:49 +01:00
Andreas Enge
7eb71d7a3d gnu: xf86-video-vmware: Add input xorg-server.
* gnu/packages/xorg.scm (xf86-video-vmware): Add input xorg-server.
2013-12-18 19:58:40 +01:00
Andreas Enge
217a67c020 gnu: iso-codes: Update to 3.49.
* gnu/packages/iso-codes.scm (iso-codes): Update to 3.49.
2013-12-18 15:49:57 +01:00
Andreas Enge
e148203588 gnu: shishi: Use libgcrypt-1.5.
* gnu/packages/shishi.scm (shishi): Use input libgcrypt-1.5 instead of 1.6.
2013-12-18 14:24:34 +01:00
Andreas Enge
a53421fdda gnu: libgcrypt: Make old version 1.5.3 public.
* gnu/packages/gnupg.scm (libgcrypt-1.5): New variable.
* gnu/packages/ssh.scm (libssh): Use libgcrypt-1.5 instead of defining it
    ad-hoc.
2013-12-18 14:11:01 +01:00
Ludovic Courtès
d44da8b092 gnu: libssh: Upgrade to 0.5.5.
* gnu/packages/ssh.scm (libssh): Upgrade to 0.5.5.
2013-12-17 22:02:07 +01:00
Ludovic Courtès
678110b949 gnu: libssh: Build against an older libgcrypt.
* gnu/packages/ssh.scm (libssh): Use libgcrypt 1.5.3 as an input.
2013-12-17 22:01:42 +01:00
John Darrington
db6190899e gnu: gnu-build-system: Add CC_FOR_BUILD to configure flags.
* guix/build/gnu-build-system.scm: Add new configure flag: CC_FOR_BUILD=gcc

* gnu/packages/gnupg.scm, gnu/packages/guile.scm, gnu/packages/make-bootstrap.scm:
  remove CC_FOR_BUILD from these package descriptions.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-17 21:28:07 +01:00
Andreas Enge
f22e0e264e gnu: ffmpeg: Modify runpath of binaries to include output library path.
* gnu/packages/video.scm (ffmpeg): Patch binaries to add output library path
    to runpath.
2013-12-17 21:19:41 +01:00
Ludovic Courtès
f733c4c838 gnu: tor: Upgrade to 0.2.4.19.
* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.19.
2013-12-16 23:57:24 +01:00
Ludovic Courtès
ec9a25612e gnu: freeipmi: Upgrade to 1.3.4.
* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.3.4.
2013-12-16 23:45:21 +01:00
Ludovic Courtès
375c6297c6 gnu: libgcrypt: Upgrade to 1.6.0.
* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.6.0.
2013-12-16 23:44:58 +01:00
Ludovic Courtès
3dbeecd2ff pull: Move build code to (guix build pull).
* guix/build/pull.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/pull.scm (unpack): Use it.
2013-12-16 23:26:48 +01:00
Cyril Roelandt
9cc98f8aa6 gnu: Add gnome-desktop.
* gnu/packages/gnome.scm (gnome-desktop): New variable.
2013-12-16 02:21:09 +01:00
Cyril Roelandt
2748062080 gnu: Add iso-codes.
* gnu/packages/iso-codes.scm: New file.
* gnu-system.am: Add it.
2013-12-15 23:39:43 +01:00
Cyril Roelandt
7a8605ceb5 gnu: Add libpeas.
* gnu/packages/gnome.scm (libpeas): New variable.
2013-12-15 23:39:43 +01:00
Cyril Roelandt
af949e8ee7 gnu: gtk+: enable introspection.
* gnu/packages/gtk.scm (atk, gdk-pixbuf, gtk+, pango): enable introspection
* guix/build/gnome.scm: New file.
2013-12-15 23:39:43 +01:00
Cyril Roelandt
503c5f6d5d gnu: gobject-introspection: look for 'gcc' when no compiler seems available.
* gnu/packages/patches/gobject-introspection.patch: New file.
2013-12-15 23:37:22 +01:00
Ludovic Courtès
3e778ad3af gnu: Move libelf and patchelf to (gnu packages elf).
* gnu/packages/patchelf.scm (patchelf): Move to...
* gnu/packages/elf.scm (patchelf): ... here.
* gnu/packages/patchelf.scm: Remove.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/packages/gcc.scm (libelf): Move to...
* gnu/packages/elf.scm (libelf): ... here.
* gnu/packages/cdrom.scm, gnu/packages/icu4c.scm,
  gnu/packages/samba.scm, gnu/packages/scheme.scm, gnu/packages/ssh.scm:
  Adjust references to (gnu packages patchelf).
2013-12-15 23:27:56 +01:00
Ludovic Courtès
2ed5b0f42c gnu: Add elfutils.
* gnu/packages/elf.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-12-15 23:19:44 +01:00
John Darrington
c4c4cc0597 gnu: Move numerous "inputs" which should be "native-inputs".
* gnu/packages/avahi.scm, gnu/packages/cdrom.scm, gnu/packages/cryptsetup.scm,
  gnu/packages/curl.scm, gnu/packages/emacs.scm, gnu/packages/fontutils.scm,
  gnu/packages/gdb.scm, gnu/packages/geeqie.scm, gnu/packages/ghostscript.scm,
  gnu/packages/glib.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm,
  gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/graphviz.scm,
  gnu/packages/groff.scm, gnu/packages/gstreamer.scm, gnu/packages/gtk.scm,
  gnu/packages/gv.scm, gnu/packages/imagemagick.scm, gnu/packages/irssi.scm,
  gnu/packages/kde.scm, gnu/packages/libcanberra.scm, gnu/packages/libtiff.scm,
  gnu/packages/linux.scm, gnu/packages/lvm.scm, gnu/packages/mp3.scm,
  gnu/packages/netpbm.scm, gnu/packages/parted.scm, gnu/packages/pdf.scm,
  gnu/packages/pulseaudio.scm, gnu/packages/qemu.scm, gnu/packages/qt.scm,
  gnu/packages/ratpoison.scm, gnu/packages/rdf.scm, gnu/packages/slim.scm,
  gnu/packages/texlive.scm, gnu/packages/version-control.scm,
  gnu/packages/video.scm, gnu/packages/vpn.scm, gnu/packages/w3m.scm,
  gnu/packages/xml.scm, gnu/packages/xnee.scm, gnu/packages/xorg.scm,
  gnu/packages/zip.scm:  Move some build-time dependencies from `inputs' to
  `native-inputs'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-15 22:31:19 +01:00
John Darrington
e766f699be gnu: gnupg: Fix cross-compile issues.
* gnu/packages/gnupg.scm (libgpg-error): Add gcc as a native input,
  and set the CC_FOR_BUILD variable.

* gnu/packages/gnupg.scm (libgcrypt): Add libgpg-error as a native input and
  set the --with-gpg-error-prefix configure option.

* gnu/packages/gnupg.scm (libksba): Add libgpg-error as a native input and
  set the --with-gpg-error-prefix configure option.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-15 22:31:18 +01:00
John Darrington
94e450812b gnu: openssl: Fix cross-compile issues.
* gnu/packages/openssl.scm (openssl): Move perl from inputs to
  native-inputs.
  Replace reference to target bash with the native bash or target bash as
  appropriate.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-15 22:31:18 +01:00
Andreas Enge
9b937137fb gnu: imagemagick: Add inputs.
* gnu/packages/imagemagick.scm (imagemagick): Add inputs fftw and lcms.
2013-12-15 01:15:49 +01:00
Andreas Enge
d694a44cef gnu: imagemagick: Update to 6.8.7-9.
* gnu/packages/imagemagick.scm (imagemagick): Update to 6.8.7-9.
2013-12-15 00:19:09 +01:00
Andreas Enge
f198ffd097 gnu: qt: Update to 5.2.0.
* gnu/packages/qt.scm (qt): Update to 5.2.0.
2013-12-14 23:49:27 +01:00
Mark H Weaver
6447738c01 guix package: allow multiple arguments after -i, -r, and -u.
* guix/scripts/package.scm (%options): Adapt option processors to accept and
  return a second seed value: 'arg-handler', which handles bare arguments (if
  not false).  The install, remove, and upgrade option processors return an
  arg-handler that repeat the same operation.  All other option processors
  return #f as the arg-handler.  Make the arguments to install and remove
  optional.  The upgrade option processor deletes (upgrade . #f) from the
  alist before adding a new entry.
  (guix-package): Procedures passed to 'args-fold*' accept the new seed value
  'arg-handler'.  The 'operand-proc' uses 'arg-handler' (if not false).

* doc/guix.texi (Invoking guix package): Update docs.

* tests/guix-package.sh: Add test.
2013-12-14 16:25:02 -05:00
John Darrington
5839958a8f gnu: libxml2: Fixed cross-compilation.
* gnu/packages/xml.scm (libxml2): assign "cross-libc"
  to the variable glibc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-14 22:12:08 +01:00
Ludovic Courtès
c94d01bab2 gnu: tzdata: Fix cross-compilation.
Reported by John Darrington <john@darrington.wattle.id.au>.

* gnu/packages/base.scm (tzdata): Use the 'source' keyword argument in
  phases rather than the "source" input.  This fixes cross-compilation.
2013-12-14 19:23:29 +01:00
Ludovic Courtès
52a79f1e73 pull: Compile guix/ files before gnu/ files.
* guix/scripts/pull.scm (unpack)[builder]: Build files under guix/
  before files under gnu/.
2013-12-14 16:48:38 +01:00
Ludovic Courtès
ca6c4fa190 pull: Compile files in parallel.
* guix/scripts/pull.scm (unpack)[builder](compile-file*): Remove.
  (call-with-process, p-for-each): New procedures.  Use them to compile
  files in parallel.
2013-12-14 16:32:42 +01:00
Ludovic Courtès
0c2e1dd45d pull: Limit memory usage when compiling.
Reported by Arne Babenhauserheide <arne.babenhauserheide@kit.edu>.

* guix/scripts/pull.scm (unpack)[builder](compile-file*): Change to run
  'compile-file' in a child process.  This limits memory usage; before
  that memory usage was proportional to the number of files to compile.
2013-12-14 16:32:42 +01:00
Andreas Enge
98a046cd25 gnu: icecat: Further analyse the failure of using system libpng and libjpeg.
* gnu/packages/gnuzilla.scm (icecat): Add comments.
2013-12-14 13:51:54 +01:00
John Darrington
e93c24df09 gnu: file: Fixed cross-compilation.
* gnu/packages/file.scm (file): [(eq? (%current-target-system) #f)] Add native-inputs.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-13 23:36:57 +01:00
Ludovic Courtès
1ae6df81db gnu: icecat: Build without debugging symbols; use some of the system libs.
* gnu/packages/gnuzilla.scm (icecat): Add 'native-inputs'.  Add bzip2,
  libevent, libffi, and zlib as inputs.  Add #:configure-flags.  Change
  'configure' phase to honor it.
2013-12-13 18:09:01 +01:00
Ludovic Courtès
2e5728318b gnu: idutils: Add Emacs as an input so idutils.el gets compiled and installed.
* gnu/packages/idutils.scm (idutils): Add Emacs to 'native-inputs'.
2013-12-13 18:09:01 +01:00
Ludovic Courtès
9ed1ba8ae2 gnu: global: Install the elisp file under $out/share/emacs/site-lisp.
* gnu/packages/global.scm (global)[arguments]: Add #:phases.
2013-12-13 18:09:01 +01:00
Andreas Enge
31f9322e6f gnu: ffmpeg: Check via "make fate".
* gnu/packages/patches/ffmpeg-check.patch: Drop patch.
* gnu-system.am (dist_patch_DATA): Unregister patch.
* gnu/packages/video.scm (ffmpeg): Drop patch and use "fate" as test target
    as recommended at http://trac.ffmpeg.org/ticket/3177#comment:11 .
* gnu/packages/video.scm
2013-12-13 11:32:25 +01:00
Ludovic Courtès
a31f4d3557 gnu: libtasn1: Upgrade to 3.4.
* gnu/packages/gnutls.scm (libtasn1): Upgrade to 3.4.  Add
  'native-inputs' field.
2013-12-11 23:05:12 +01:00
Ludovic Courtès
b29f947d22 build: Skip one 'package-source-derivation' test when networking is missing.
* tests/packages.scm ("package-source-derivation, snippet"): Skip when
  networking is missing.
2013-12-11 13:55:49 +01:00
Ludovic Courtès
8a43ff101e gnu: guix: Upgrade to 0.5.
* gnu/packages/package-management.scm (guix): Upgrade to 0.5.  Update
  the bootstrap binaries; add mips64el; add
  'guix-test-networking.patch'.
2013-12-11 13:55:17 +01:00
Ludovic Courtès
e71998cd93 build: Bump to version 0.6.
* configure.ac: Switch to 0.6.
2013-12-11 13:53:03 +01:00
Ludovic Courtès
5d6dbd299e Update 'NEWS'. 2013-12-11 13:06:19 +01:00
Ludovic Courtès
d862bf0fe9 build: Remove '..' from srcdir/builddir in 'pre-inst-env'.
* pre-inst-env.in (abs_top_srcdir, abs_top_builddir): New variables.
  Use them instead of @abs_top_srcdir@ and @abs_top_builddir@.
  This fixes the "package-field-location, relative file name" test in
  'make distcheck'.
2013-12-11 11:58:54 +01:00
Ludovic Courtès
68ad877c6b doc: Slightly improve the "System Configuration" node.
* doc/guix.texi (System Configuration): Add paragraph on upgrades and
  rollback, moved from "Using the Configuration System".
  (Using the Configuration System): Change variable name to
  'komputilo'.  Add xref to "Package Modules".
2013-12-11 10:47:55 +01:00
Ludovic Courtès
9afb63bb7f gnu: gdb: Upgrade to 7.6.2.
* gnu/packages/gdb.scm (gdb): Update to 7.6.2.
2013-12-11 01:25:39 +01:00
Ludovic Courtès
22dd04383d gnu: vm: Increase size of VM image.
* gnu/system/vm.scm (system-qemu-image): Add 'disk-image-size'
  parameter; increase it.
2013-12-11 01:10:41 +01:00
Ludovic Courtès
5c0f184536 store: Optimize 'store-path-package-name' and 'store-path-hash-part'.
* guix/store.scm (store-regexp*): New procedure.
  (store-path-package-name, store-path-hash-part): Use it.
2013-12-11 00:19:27 +01:00
Ludovic Courtès
c61a5b4a6d store: Add tests for 'store-path-package-name'.
* tests/store.scm ("store-path-package-name", "store-path-package-name
  #f"): New tests.
2013-12-11 00:18:14 +01:00
Ludovic Courtès
0b7e8e9d49 Update '.po' files. 2013-12-10 23:06:29 +01:00
Andreas Enge
4a8c5617f9 NEWS: Small changes.
NEWS: Typos and very minor changes.
2013-12-10 22:14:23 +01:00
Ludovic Courtès
a043ac04d9 Update 'NEWS'. 2013-12-10 21:53:59 +01:00
Ludovic Courtès
3141a8bdb3 gnu: Honor the operating system's locale and timezone.
* gnu/system.scm (etc-directory): Add 'locale' and 'timezone'
  parameters.  Set 'LC_ALL', 'TZ', and 'TZDIR' in /etc/profile.
  (operating-system-derivation): Adjust call accordingly.
* gnu/system/vm.scm (%demo-operating-system): Change locale to
  'en_US.UTF-8'.  Add TZDATA to 'packages'.
2013-12-10 21:46:59 +01:00
Ludovic Courtès
dfb74e50b7 hydra: Add zlib, gzip, and xz to the core package set.
* build-aux/hydra/gnu-system.scm (%core-packages): Add zlib, gzip, and xz.
2013-12-10 13:56:26 +01:00
John Darrington
e67253dbe2 gnu: compression: Fix cross-compilation of zlib.
* gnu/packages/compression.scm : Zlib uses a non-standard
  way of configuring for cross-compilation.  Thanks to Ludovic
  for showing me the correct way to fix this.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-10 13:55:35 +01:00
Ludovic Courtès
4af2447e37 doc: First stab at documenting whole-system configuration.
* doc/guix.texi (Features): Add xref to "Using the Configuration
  System".
  (System Configuration, Using the Configuration System, Defining
  Services): New nodes.
2013-12-10 00:24:02 +01:00
Ludovic Courtès
4f62d8d6c7 gnu: Allow a plain list of packages in 'operating-system'.
* gnu/system.scm (union): Allow (PACKAGE OUTPUT), (PACKAGE), and
  PACKAGE.
  (<operating-system>)[packages]: Make the default a list of package?
  objects.
* gnu/system/vm.scm (%demo-operating-system): Likewise.  Add a few
  packages.
2013-12-10 00:24:02 +01:00
Ludovic Courtès
78ed003811 gnu: Add 'inputs' field to <user-account>; make 'shell' a monadic value.
* gnu/system/shadow.scm (<user-account>)[inputs]: New field.
  (passwd-file): Bind the 'shell' field of each account.
* gnu/system/vm.scm (%demo-operating-system): Remove 'shell' field.
* gnu/system/dmd.scm (guix-build-accounts): Store a monadic value in
  'shell'.  Add 'inputs' field.
* gnu/system.scm (operating-system-derivation): Remove 'shell' field for
  'root' account.  Add all the 'user-account-inputs' to EXTRAS.
2013-12-10 00:24:02 +01:00
Ludovic Courtès
13ce0e3aa7 gnu: dmd: Avoid "already exists" error on startup.
* gnu/system/dmd.scm (dmd-configuration-file)[config]: Remove
  "/var/nix/gcroots/etc-directory" before trying to recreate it.
2013-12-10 00:24:02 +01:00
Ludovic Courtès
033adfe7e0 gnu: Add (gnu system).
* gnu/system/vm.scm (lower-inputs): Move to monads.scm.
  (qemu-image): Don't add GRUB-CONFIGURATION to the INPUTS-TO-COPY.
  (union, file-union, etc-directory): Move to gnu/system.scm.
  (%demo-operating-system): New variable.
  (system-qemu-image): Add 'os' parameter.  Rewrite in terms of
  'operating-system-derivation'.
* guix/monads.scm (lower-inputs): New procedure.
* gnu/system/grub.scm (grub-configuration-file): Change 'entries' to be
  a plain list instead of a list of monadic values.
* gnu/system.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-12-10 00:24:02 +01:00
Ludovic Courtès
593c3fe600 monads: Fix 'anym'.
* guix/monads.scm (anym): Fix successful case.
* tests/monads.scm ("anym"): New test.
2013-12-10 00:24:01 +01:00
Andreas Enge
f7faff88b7 gnu: perl-xml-dom: Propagate inputs.
* gnu/packages/xml.scm (perl-xml-dom): Drop inputs that are obtained through
    propagation, propagate the other inputs.
2013-12-10 00:17:04 +01:00
Andreas Enge
7b81406a4f gnu: perl-libxml: Propagate input.
* gnu/packages/xml.scm (perl-libxml): Propagate input perl-xml-parser.
2013-12-10 00:13:08 +01:00
Andreas Enge
f852114ed6 gnu: perl-http-message: Propagate input perl-http-date.
* gnu/packages/web.scm (perl-http-message): Propagate input perl-http-date.
* gnu/packages/web.scm (perl-http-cookies, perl-http-daemon): Drop input perl-http-date.
2013-12-10 00:06:02 +01:00
Andreas Enge
d42daec07b gnu: perl-libwww: Propagate all inputs.
* gnu/packages/web.scm (perl-libwww): Drop inputs that appear through
    propagation, and propagate all others.
2013-12-09 23:59:11 +01:00
Andreas Enge
846972ebe5 gnu: perl-file-listing: Propagate input.
* gnu/packages/web.scm (perl-file-listing): Propagate input perl-http-date.
2013-12-09 23:49:22 +01:00
Andreas Enge
3adf588805 gnu: perl-www-robotrules: Propagate input.
* gnu/packages/web.scm (perl-www-robotrules): Propagate input perl-uri.
2013-12-09 23:47:00 +01:00
Andreas Enge
d0bb5f77e9 gnu: perl-http-negotiate: Propagate input.
* gnu/packages/web.scm (perl-http-negotiate): Propagate input
    perl-http-message, drop input perl-uri (propagated by perl-http-message).
2013-12-09 23:45:02 +01:00
Andreas Enge
6e8cf5c9e0 gnu: perl-http-daemon: Propagate inputs.
* gnu/packages/web.scm (perl-http-daemon): Propagate inputs perl-http-date,
    perl-http-message and perl-lwp-mediatypes; drop input perl-uri
    (propagated by perl-http-message).
2013-12-09 23:42:25 +01:00
Andreas Enge
800de8da3b gnu: perl-http-cookies: Propagate inputs.
* gnu/packages/web.scm (perl-http-cookies): Propagate inputs perl-http-date
    and perl-http-message; drop input perl-uri (itself propagated from
    perl-http-message).
2013-12-09 23:38:10 +01:00
Andreas Enge
daee66fc2e gnu: perl-http-message: Propagate input perl-uri.
* gnu/packages/web.scm (perl-http-message): Propagate input perl-uri,
    since "perl -MHTTP::Message" complains that it is missing.
2013-12-09 23:34:18 +01:00
Andreas Enge
ad871fc600 gnu: Add perl-xml-dom.
* gnu/packages/xml.scm (perl-xml-dom): New variable.
2013-12-09 22:37:28 +01:00
Andreas Enge
374a9a8520 gnu: Add perl-libwww.
* gnu/packages/web.scm (perl-libwww): New variable.
2013-12-09 22:23:47 +01:00
Andreas Enge
09a8778f73 gnu: Add perl-encode-locale.
* gnu/packages/web.scm (perl-encode-locale): New variable.
2013-12-09 22:21:27 +01:00
Andreas Enge
56aa03b0c2 gnu: Add perl-file-listing.
* gnu/packages/web.scm (perl-file-listing): New variable.
2013-12-09 22:16:30 +01:00
Andreas Enge
15974e6358 gnu: Add perl-file-list.
* gnu/packages/perl.scm (perl-file-list): New variable.
2013-12-09 15:45:25 +01:00
Andreas Enge
9200c11009 build-system/perl: Honour phases argument in perl build system.
* guix/build-system/perl.scm (perl-build): Propagate phases argument to
    builder.
2013-12-09 13:50:58 +01:00
Andreas Enge
97ac64284d gnu: rcs: Update to 5.9.2.
* gnu/packages/version-control.scm (rcs): Update to 5.9.2.
2013-12-08 23:04:42 +01:00
Andreas Enge
201180e481 gnu: parallel: Update to 20131122.
* gnu/packages/parallel.scm (parallel): Update to 20131122.
2013-12-08 22:58:25 +01:00
Ludovic Courtès
9b0ac80258 gnu: Populate /etc upon startup.
* gnu/packages/patches/dmd-getpw.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/system.scm (dmd): Use it.
* gnu/system/vm.scm (system-qemu-image): Don't explicitly populate /etc;
  don't add ETC to the GC roots.
* gnu/system/dmd.scm (dmd-configuration-file): Add 'etc' parameter.
  [config]: Populate /etc from there.
2013-12-08 22:43:56 +01:00
Andreas Enge
677078b48f gnu: Add perl-net-http.
* gnu/packages/web.scm (perl-net-http): New variable.
2013-12-08 22:24:21 +01:00
Andreas Enge
a3eb919fb4 gnu: Add perl-www-robotrules.
* gnu/packages/web.scm (perl-www-robotrules): New variable.
2013-12-08 22:18:58 +01:00
Andreas Enge
e7444ee273 gnu: Add perl-http-negotiate.
* gnu/packages/web.scm (perl-http-negotiate): New variable.
2013-12-08 22:03:50 +01:00
Andreas Enge
77874f970e gnu: bison: Update to 3.0.2.
* gnu/packages/bison.scm (bison): Update to 3.0.2.
2013-12-08 21:54:49 +01:00
Andreas Enge
3f41e6b310 gnu: Add perl-http-daemon.
* gnu/packages/web.scm (perl-http-daemon): New variable.
2013-12-08 21:53:12 +01:00
Andreas Enge
b3d18aff2f gnu: Add perl-http-cookies.
* gnu/packages/web.scm (perl-http-cookies): New variable.
2013-12-07 22:52:29 +01:00
Andreas Enge
91318a9e19 gnu: Add perl-http-message.
* gnu/packages/web.scm (perl-http-message): New variable.
2013-12-07 22:49:07 +01:00
Andreas Enge
e426106bd1 gnu: Add perl-io-html.
* gnu/packages/web.scm (perl-io-html): New variable.
2013-12-07 22:47:40 +01:00
Andreas Enge
24b3c0533d gnu: Add perl-lwp-mediatypes.
* gnu/packages/web.scm (perl-lwp-mediatypes): New variable.
2013-12-07 22:42:18 +01:00
Andreas Enge
fea5ebb106 gnu: Add perl-uri.
* gnu/packages/web.scm (perl-uri): New variable.
2013-12-07 22:36:02 +01:00
Andreas Enge
ae2aa18dba gnu: Add perl-http-date.
* gnu/packages/web.scm (perl-http-date): New variable.
2013-12-07 22:24:53 +01:00
Andreas Enge
8ec0d3fbcf gnu: Add perl-html-parser.
* gnu/packages/web.scm (perl-html-parser): New variable.
2013-12-07 22:20:53 +01:00
Andreas Enge
c9ea41ffd2 gnu: Add perl-html-tagset.
* gnu/packages/web.scm (perl-html-tagset): New variable.
2013-12-07 22:16:05 +01:00
Andreas Enge
7339fbe279 gnu: Rename perl-xml-parser-perlsax to perl-libxml.
* gnu/packages/xml.scm (perl-libxml): Rename from perl-xml-parser-perlsax.
2013-12-07 21:28:54 +01:00
Ludovic Courtès
f7d6fafaa2 gnu: dmd: Add 'pam-services' field to <service>.
* gnu/system/dmd.scm (<service>)[pam-services]: New field.
  (mingetty-service): Add #:motd and #:allow-empty-passwords?
  parameters.  Add MOTD to 'inputs' field; add 'pam-services' field.
* gnu/system/vm.scm (system-qemu-image): Aggregate PAM entries from
  SERVICES.
2013-12-07 16:18:51 +01:00
Ludovic Courtès
f0387dd167 gnu: vm: Fix inputs in 'file-union'.
* gnu/system/vm.scm (file-union): Filter out members of FILES that are
  outputs of INPUTS.
2013-12-07 16:16:01 +01:00
Ludovic Courtès
18fb40e414 gnu: dmd: Add 'user-accounts' and 'user-groups' fields to <service>.
* gnu/system/shadow.scm (guix-build-accounts): Move to...
* gnu/system/dmd.scm (guix-build-accounts): ... here.
  (<service>)[user-accounts, user-groups]: New fields.
  (guix-service): New #:build-user-id and #:build-accounts parameters.
  Use 'guix-build-accounts' and set the 'user-accounts' and
  'user-groups' fields accordingly.
* gnu/system/vm.scm (system-qemu-image): Remove use of
  'guix-build-accounts'.  Augment ACCOUNTS and GROUPS from what SERVICES
  demand.
2013-12-07 15:01:40 +01:00
Ludovic Courtès
25ed6edb6c doc: Adjust "Building from Git" instructions.
* HACKING (Building from Git): As a follow-up to ff1cbb9, update the
  error reported when pkg.m4 is missing.  Suggested by
  John Darrington <john@darrington.wattle.id.au>.
2013-12-07 12:12:41 +01:00
Ludovic Courtès
a348b09ea9 gnu: Move /etc/resolv.conf handling to the networking service.
* gnu/system/vm.scm (etc-directory): Remove 'resolv.conf'.
  (system-qemu-image): Use 'static-networking-service' with
  #:name-servers.  Don't populate the image with /etc/resolv.conf.
* gnu/system/dmd.scm (static-networking-service): Add #:name-servers
  parameter.  Use it to populate /etc/resolv.conf.
2013-12-07 00:01:06 +01:00
Ludovic Courtès
0b8a376b68 gnu: vm: Factorize /etc creation.
* gnu/system/vm.scm (expression->derivation-in-linux-vm)[lower-inputs]:
  Move to top-level...
  (lower-inputs): ... here.  New variable.
  (file-union, etc-directory): New procedures.
  (system-qemu-image): Use 'etc-directory'; remove redundant code, and
  register the result of 'etc-directory' as a GC root.
2013-12-07 00:01:06 +01:00
Andreas Enge
dc47b181da gnu: pulseaudio: Disable tests on mips64el.
* gnu/packages/pulseaudio.scm (pulseaudio): Drop tests also on mips64el.
2013-12-06 23:17:40 +01:00
Andreas Enge
a2e520afbf gnu: Add perl-xml-regexp.
* gnu/packages/xml.scm (perl-xml-regexp): New variable.
2013-12-06 22:54:44 +01:00
Andreas Enge
1385ba4fd1 gnu: Add perl-xml-parser-perlsax.
* gnu/packages/xml.scm (perl-xml-parser-perlsax): New variable.
2013-12-06 22:50:12 +01:00
Andreas Enge
703d18e252 gnu: libmicrohttpd: Upgrade to 0.9.32.
* gnu/packages/gnunet.scm (libmicrohttpd): Upgrade to 0.9.32.
2013-12-06 00:29:53 +01:00
Andreas Enge
5642cecdde gnu: soprano: Add input raptor2.
* gnu/packages/rdf.scm (soprano): Add input raptor2.
2013-12-06 00:07:59 +01:00
Andreas Enge
2c4e4d2597 gnu: Add raptor2.
* gnu/packages/rdf.scm (raptor2): New variable.
2013-12-06 00:05:13 +01:00
Ludovic Courtès
c01f767843 gnu: pulseaudio: Fix typo introduced in 76dcc99.
* gnu/packages/pulseaudio.scm (pulseaudio): Disable tests on i686.
  (pavucontrol): Remove 'arguments'.
2013-12-05 23:07:23 +01:00
Ludovic Courtès
14f550c31c monads: Remove erroneous comment.
* guix/monads.scm (sequence): Remove erroneous comment.
2013-12-05 23:05:13 +01:00
Ludovic Courtès
76dcc993f7 gnu: pulseaudio: Disable tests on i686.
* gnu/packages/pulseaudio.scm (pavucontrol): New 'arguments' field.
2013-12-05 22:50:38 +01:00
Ludovic Courtès
de1355f186 build: Work around build problem on systems that lack (gnutls).
Reported at <https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00002.html>.

* Makefile.am (MODULES): Shuffle modules to work around build failure
  on systems that lack the (gnutls) module.
2013-12-05 22:50:38 +01:00
Andreas Enge
e7de5ac0d5 gnu: ffmpeg: Enable tests.
* gnu/packages/video.scm (ffmpeg): Add upstream patch and re-enable tests.
* gnu/packages/patches/ffmpeg-check.patch: New file.
* gnu-system.am (dist_patch_DATA): Register patch.
2013-12-05 21:43:41 +01:00
Ludovic Courtès
49d294e5c8 gnu: Move 'guile-ssh' to (gnu packages ssh).
Reported by John Darrington <john@darrington.wattle.id.au>.

* gnu/packages/guile.scm (guile-ssh): Move to...
* gnu/packages/ssh.scm (guile-ssh): ... here.  New variable.
  This fixes a circular dependency issue, as reported at
  <https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00024.html>.
2013-12-04 22:24:28 +01:00
Ludovic Courtès
f4badde3fa build-system/gnu: Fix reference to Gettext in 'dist-package'.
* guix/build-system/gnu.scm (dist-package): Change 'gettext' to
  'gnu-gettext'.
2013-12-04 21:43:55 +01:00
Ludovic Courtès
dd1a5a152c derivations: Use more keyword parameters for 'build-expression->derivation'.
* guix/derivations.scm (build-expression->derivation): Turn 'system' and
  'inputs' into keyword parameters.
  Adjust callers accordingly.
* gnu/system/linux.scm, gnu/system/vm.scm, guix/build-system/cmake.scm,
  guix/build-system/gnu.scm, guix/build-system/perl.scm,
  guix/build-system/python.scm, guix/build-system/trivial.scm,
  guix/download.scm, guix/packages.scm, guix/profiles.scm,
  guix/scripts/pull.scm, tests/derivations.scm, tests/guix-build.sh,
  tests/monads.scm, tests/store.scm, tests/union.scm: Adjust users of
  'build-expression->derivation' and 'derivation-expression'
  accordingly.
* doc/guix.texi (Derivations): Adjust 'build-expression->derivation'
  documentation accordingly.
  (The Store Monad): Likewise for 'derivation-expression'.
2013-12-04 16:07:53 +01:00
Ludovic Courtès
7b63fa8d15 Augment 'gitignore'. 2013-12-04 16:07:53 +01:00
Ludovic Courtès
279fef2e45 nls: Add Vietnamese translation.
* po/vi.po: New file.
* po/LINGUAS: Add 'vi'.
2013-12-04 16:07:53 +01:00
Ludovic Courtès
e060ec3eb0 Update 'eo.po'. 2013-12-04 16:07:53 +01:00
Andreas Enge
b0a552e30b gnu: ffmpeg: Disable tests.
* gnu/packages/video.scm (ffmpeg): Disable tests, see
    https://trac.ffmpeg.org/ticket/3177 .
2013-12-04 08:15:31 +01:00
Ludovic Courtès
595801e2f4 gnu: Add Guile-SSH.
* gnu/packages/guile.scm (guile-ssh): New variable.
2013-12-04 00:30:08 +01:00
Ludovic Courtès
deed349b4a gnu: libssh: Add $libdir to RUNPATH of libssh_threads.so.
* gnu/packages/ssh.scm (libssh)[arguments]: Add #:phases, #:modules, and
  #:imported-modules.
  [native-inputs]: New field.
2013-12-04 00:29:19 +01:00
Ludovic Courtès
799dcdc48f gnu: Improve synopses in vpn.scm.
* gnu/packages/vpn.scm (vpnc): Shorten synopsis, and fix spelling.
  (openconnect): Fix synopsis spelling.
2013-12-04 00:00:19 +01:00
Ludovic Courtès
4095b41308 gnu: Add missing copyright line.
* gnu/packages/vpn.scm: Add copyright line lost in commit 7af8a9b.
2013-12-03 23:59:22 +01:00
Ludovic Courtès
136b008fe7 gnu: patchelf: Shorten synopsis.
* gnu/packages/patchelf.scm (patchelf): Shorten synopsis.
2013-12-03 23:57:48 +01:00
Eric Bavier
97aed46fa3 Add GNU Serveez
* gnu/packages/serveez.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add it

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-03 23:47:32 +01:00
John Darrington
addfc3fc02 gnu: Add mtools.
* gnu/packages/mtools.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-03 23:33:00 +01:00
Eric Bavier
889a87f08c gnu: Add gnu-pw-mgr
* gnu/packages/gnu-pw-mgr.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add it

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-03 22:07:23 +01:00
Ludovic Courtès
7af8a9b7ba gnu: Move GVPE to vpn.scm.
* gnu/packages/vpn.scm (gvpe): New variable, moved from...
* gnu/packages/gvpe.scm: ... here.  Remove.
* gnu-system.am (GNU_SYSTEM_MODULES): Remove 'gvpe.scm'.
2013-12-03 22:07:00 +01:00
Ludovic Courtès
901eee2c4c gnu: Add Guile-WM.
* gnu/packages/guile-wm.scm (guile-wm): New variable.
2013-12-03 22:05:13 +01:00
Ludovic Courtès
4d5f0bae3e gnu-maintenance: Ignore "redirect" blurbs.
* guix/gnu-maintenance.scm (official-gnu-packages)[official-description]:
  Return #f for blurbs that start with "redirect ".
2013-12-03 21:33:55 +01:00
Ludovic Courtès
f5a345adeb gnu: dmd: Update start/stop of standard service definitions.
* gnu/system/dmd.scm (mingetty-service): Add 'stop' field.
  (nscd-service): Run with '--foreground'.  Change 'stop' to use
  'make-kill-destructor'.
  (syslog-service): Run with '--no-detach'; change 'stop' similarly.
  (guix-service): Likewise for 'stop'.
  (static-networking-service): Remove 'sleep' call from 'start'.  Change
  'stop' to return #f when networking was actually stopped.
2013-12-02 23:38:49 +01:00
Ludovic Courtès
2941448ea8 gnu: dmd: Upgrade to 0.1.
* gnu/packages/system.scm (dmd): Upgrade to 0.1.  Move PKG-CONFIG to
  'native-inputs'.
2013-12-02 23:35:12 +01:00
Ludovic Courtès
0af626ff0f gnu: Add Guile-XCB.
* gnu/packages/guile-wm.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-12-02 23:25:59 +01:00
John Darrington
e6a5ce8e67 gnu: pspp: Enabled build of the gui
* gnu/packages/math.scm (pspp): Removed the --without-gui flag
and added the necessary inputs to build it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-02 13:51:02 +01:00
John Darrington
95d439b24c gnu: Add GtkSourceView.
* gnu/packages/gtk.scm (gtksourceview): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-02 13:50:43 +01:00
Ludovic Courtès
79c311b81c gnu: Synchronize descriptions with 'gnumaint'. 2013-12-01 22:33:23 +01:00
gzg
e6a9aa366e Update references from Guy's old name 2013-11-29 14:21:36 +01:00
Ludovic Courtès
1681cd4a24 gnu: Add libssh.
* gnu/packages/ssh.scm (libssh): New variable.
2013-11-28 00:15:07 +01:00
Ludovic Courtès
977f03ffd3 build-system/cmake: Build out of source tree by default.
* guix/build-system/cmake.scm (cmake-build): Change 'out-of-source?' to
  default to #t.
* guix/build/cmake-build-system.scm (configure): Add 'out-of-source?'
  keyword parameter and honor it.
2013-11-28 00:15:07 +01:00
Ludovic Courtès
b4f0bb1771 gnu: dmd: Add service documentation.
* gnu/system/dmd.scm (<service>): Add 'documentation' field.
  (host-name-service, mingetty-service, nscd-service, syslog-service,
  static-networking-service): Provide a 'documentation' value.
  (dmd-configuration-file): Use it.
2013-11-28 00:15:07 +01:00
Ludovic Courtès
b455a11868 gnu: qemu/smb-shares: Keep the original patches.
* gnu/packages/qemu.scm (qemu/smb-shares): Keep the patches from
  QEMU-HEADLESS.
2013-11-28 00:15:07 +01:00
Andreas Enge
c1897890ea gnu: luit: Accomodate stricter warnings of gcc-4.8.
* gnu/packages/patches/luit-posix.patch: New file.
* gnu-system.am (dist_patch_DATA): Register patch.
* gnu/packages/xorg.scm (luit): Apply patch.
2013-11-27 22:52:42 +01:00
Andreas Enge
d02196a7b3 gnu: ffmpeg: Update to 2.1.1.
* gnu/packages/video.scm (ffmpeg): Update to 2.1.1.
2013-11-27 22:37:29 +01:00
Ludovic Courtès
079fd3ec63 gnu: qemu: Upgrade to 1.6.1.
* gnu/packages/patches/qemu-make-4.0.patch: New file.
* gnu/packages/qemu.scm (qemu-headless): Use it.  Upgrade to 1.6.1.
* gnu-system.am (dist_patch_DATA): Add it.
2013-11-26 23:55:04 +01:00
Ludovic Courtès
df8a09c708 gnu: mit-krb5: Build with GCC 4.7.
* gnu/packages/mit-krb5.scm (mit-krb5): Make BISON and PERL native
  inputs.  Add GCC-4.7 as a native input.
2013-11-26 22:31:22 +01:00
Ludovic Courtès
de6792699e substitute-binary: Work around Guile 2.0.5's broken 'n-par-map'.
* guix/scripts/substitute-binary.scm (n-par-map*): New procedure.
  (guix-substitute-binary): Use it instead of 'n-par-map'.
  Reported by Nikita Karetnikov and Eric Bavier.
2013-11-26 22:20:39 +01:00
Ludovic Courtès
0edfdb8924 Add Guy to 'AUTHORS'. 2013-11-26 22:12:43 +01:00
Ludovic Courtès
a8300ef9fd gnu: xmodmap: Add patch to allow builds with GCC 4.8.
* gnu/packages/patches/xmodmap-asprintf.patch: New file.
* gnu/packages/xorg.scm (xmodmap): Use it.
* gnu-system.am (dist_patch_DATA): Add it.
2013-11-26 00:20:58 +01:00
Andreas Enge
07cec9a5b9 gnu: Correct typo in previous commit.
* gnu/packages/rdf.scm: Name module rdf.
2013-11-25 23:14:07 +01:00
Andreas Enge
c079848873 gnu: Add soprano.
* gnu/packages/rdf.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-11-25 23:10:30 +01:00
gzg
4aa0891cd2 gnu: Add SLiM.
* gnu/packages/slim.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-11-25 22:54:32 +01:00
Ludovic Courtès
5fd7f3e015 gnu: iproute2: Upgrade to 3.12.0.
* gnu/packages/linux.scm (iproute): Upgrade to 3.12.0.
2013-11-25 18:51:24 +01:00
Ludovic Courtès
2e1f5bcac1 gnu: {binutils,bash,gnu-make}-final are private.
* gnu/packages/base.scm (binutils-final, bash-final, gnu-make-final):
  Use 'define', not 'define-public'.
2013-11-24 23:01:33 +01:00
Ludovic Courtès
aad560a56f list-packages: Make 'snippet-link' more tolerant.
* build-aux/list-packages.scm (package->sxml)[snippet-link]: If
  'package-field-location' returns #f, use 'package-location.
2013-11-24 22:57:06 +01:00
Ludovic Courtès
840f71cdfc Add John to 'AUTHORS'. 2013-11-24 18:32:55 +01:00
John Darrington
0ed873f3f6 gnu: pixman: Upgrade to 0.32.4.
* gnu/packages/xorg.scm (pixman): Upgrade to 0.32.4.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-11-24 18:32:05 +01:00
Ludovic Courtès
b874f305e5 guix package: Honor the current output when upgrading.
* guix/scripts/package.scm (specification->package+output): Pass OUTPUT
  to 'package-specification->name+version+output'.
2013-11-24 15:30:06 +01:00
Ludovic Courtès
53c85e97dc Merge branch 'core-updates'
Conflicts:
	gnu/packages/gnunet.scm
2013-11-23 22:30:10 +01:00
Ludovic Courtès
c320011da5 doc: List the supported platforms.
* doc/guix.texi (GNU Distribution): List the supported platforms.
2013-11-23 22:26:13 +01:00
Ludovic Courtès
cd143df018 gnu: net-tools: Adjust to removal of the 'patch' phase.
* gnu/packages/linux.scm (net-tools): Adjust to removal of the 'patch'
  phase.  Reported by Mark H. Weaver <mhw@netris.org>.
2013-11-23 22:17:48 +01:00
Andreas Enge
2e838890ff gnu: libextractor: Add input.
* gnu/packages/gnunet.scm (libextractor): Add input exiv2.
2013-11-23 18:30:07 +01:00
Ludovic Courtès
4942d42a94 gnu: qemu: Add GUI version.
* gnu/packages/qemu.scm (qemu): Rename to...
  (qemu-headless): ... this.
  (qemu/smb-shares): Inherit from it.
  (qemu): New variable.
* gnu/packages/grub.scm (qemu-for-tests): Inherit from QEMU-HEADLESS.
2013-11-23 18:21:44 +01:00
Ludovic Courtès
558a5122fa gnu: sdl: Propagate libx11.
* gnu/packages/sdl.scm (sdl): Propagate LIBX11.
  (sdl-gfx, sdl-ttf): Remove LIBX11 from 'inputs'.
2013-11-23 18:21:44 +01:00
Ludovic Courtès
ff1cbb9538 build: Make sure pkg.m4 is present.
Suggested by John Darrington <john@darrington.wattle.id.au>.

* configure.ac: Forbid occurrences of 'PKG_CHECK_MODULES' in the
  output.
2013-11-23 18:21:44 +01:00
Andreas Enge
248c06454e gnu: libextractor: Add optional inputs.
* gnu/packages/gnunet.scm (libextractor): Add inputs ffmpeg and gstreamer.
2013-11-23 18:16:03 +01:00
Ludovic Courtès
0ece707470 gnu: make-bootstrap: Add missing inputs for Canadian cross of '%gcc-static'.
* gnu/packages/make-bootstrap.scm (%gcc-static): Add 'native-inputs'
  field.
2013-11-23 16:07:29 +01:00
David Thompson
5cf3bcd4fb gnu: Add SDL extension libraries.
* gnu/packages/sdl.scm (sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf): New
  variables.
2013-11-23 08:50:30 -05:00
Ludovic Courtès
023fef7d94 gnu: Add PowerTOP.
* gnu/packages/linux.scm (powertop): New variable.
2013-11-22 22:55:06 +01:00
Ludovic Courtès
3cc2067523 gnu: Add libnl.
* gnu/packages/linux.scm (libnl): New variable.
2013-11-22 22:50:17 +01:00
Ludovic Courtès
d321bf4c27 gnu: apl: Adjust to gettext renaming.
* gnu/packages/apl.scm (apl): Use GNU-GETTEXT.
2013-11-21 00:21:12 +01:00
Ludovic Courtès
a2b154d7cb hydra: Adjust to gettext package rename.
* build-aux/hydra/gnu-system.scm (%core-packages): Change 'gettext' to
  'gnu-gettext'.
2013-11-20 23:55:38 +01:00
Ludovic Courtès
edae5b3d50 Merge branch 'master' into core-updates
Conflicts:
	guix/packages.scm
2013-11-20 23:51:26 +01:00
Ludovic Courtès
1dba64079c gnu: gettext: Rename binding to 'gnu-gettext'.
* gnu/packages/gettext.scm (gettext): Rename to...
  (gnu-gettext): ... this.  This is used to work around the circular
  dependency introduced in commit c42a4b7, which users with a #:renamer
  cannot cope with.
* gnu/packages/acl.scm, gnu/packages/attr.scm, gnu/packages/cdrom.scm,
  gnu/packages/fdisk.scm, gnu/packages/gkrellm.scm, gnu/packages/glib.scm,
  gnu/packages/gnunet.scm, gnu/packages/grub.scm, gnu/packages/linux.scm,
  gnu/packages/maths.scm, gnu/packages/nano.scm, gnu/packages/parted.scm,
  gnu/packages/system.scm, gnu/packages/version-control.scm,
  gnu/packages/vpn.scm, gnu/packages/w3m.scm, gnu/packages/wget.scm:
  Adjust accordingly.
2013-11-20 22:12:49 +01:00
Eric Bavier
e3aaefe71b gnu: Add GNU Parallel.
* gnu/packages/parallel.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-11-20 19:03:46 +01:00
Ludovic Courtès
5dfd5b82c2 build-system/python: Add #:test-target parameter.
* guix/build-system/python.scm (python-build): Add #:test-target
  parameter.  Reported by Eric Bavier <ericbavier@gmail.com>.
2013-11-20 19:03:26 +01:00
Ludovic Courtès
953ab5030f gnu: make-bootstrap: Simplify '%gcc-static'.
* gnu/packages/make-bootstrap.scm (%gcc-static): Add a bunch of
  --disable configure flags.  Remove useless 'inputs' field.
2013-11-20 19:01:27 +01:00
David Thompson
8bf8d7c78f gnu: Add SDL and SDL2.
* gnu/packages/sdl.scm (sdl, sdl2): New variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-11-20 12:08:34 +01:00
Ludovic Courtès
8d9865df14 gnu: autogen: Upgrade to 5.18.2.
* gnu/packages/autogen.scm (autogen): Upgrade to 5.18.2.
2013-11-19 23:47:04 +01:00
Ludovic Courtès
4cec7feeee gnu: bison: Upgrade to 3.0.1.
* gnu/packages/bison.scm (bison): Upgrade to 3.0.1.
2013-11-19 23:46:35 +01:00
Ludovic Courtès
c3af0bf243 gnu: hello: Upgrade to 2.9.
* gnu/packages/base.scm (hello): Upgrade to 2.9.  Remove 'arguments' and
  'inputs' fields, which were never needed.
2013-11-19 23:25:35 +01:00
Ludovic Courtès
1635658d69 gnu: libextractor: Upgrade to 1.2.
* gnu/packages/gnunet.scm (libextractor): Upgrade to 1.2.
2013-11-19 23:24:40 +01:00
Ludovic Courtès
6f0856ba80 gnu: freeipmi: Upgrade to 1.3.3.
* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.3.3.
2013-11-19 23:23:12 +01:00
Ludovic Courtès
740c24dffc gnu: rcs: Upgrade to 5.9.1.
* gnu/packages/version-control.scm (rcs): Upgrade to 5.9.1.  Add ed as
  an input.
2013-11-19 23:22:03 +01:00
Ludovic Courtès
5ab48b08f0 gnu: lightning: Upgrade to 2.0.2.
* gnu/packages/lightning.scm (lightning): Upgrade to 2.0.2.
2013-11-19 23:20:26 +01:00
Ludovic Courtès
257f56017e gnu: linux-libre: Upgrade to 3.12.
* gnu/packages/linux.scm (linux-libre): Upgrade to 3.12.
2013-11-19 22:39:12 +01:00
Ludovic Courtès
30e457501d gnu: vm: Really create a QCOW2-format image.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass "-f
  qcow2" to 'qemu-img create'.
2013-11-19 00:03:29 +01:00
Ludovic Courtès
d03bb6532c doc: Link to package-list.html.
* doc/guix.texi (GNU Distribution): Add link to package-list.html.
2013-11-19 00:02:41 +01:00
Ludovic Courtès
a2543006f8 list-packages: Produce link to the origin snippet, if any.
* build-aux/list-packages.scm (package->sxml)[patches](snippet-link):
  New procedure.
  Use it to produce a link to the 'origin-snippet', if any.
2013-11-19 00:01:46 +01:00
Ludovic Courtès
0b8749b7bd packages: 'package-field-location' returns a relative file name.
* guix/packages.scm (package-field-location): Set
  %FILE-PORT-NAME-CANONICALIZATION.
* tests/packages.scm ("package-field-location, relative file name"): New
  test.
2013-11-18 23:56:07 +01:00
Ludovic Courtès
ac5de156ae guix build: '-e' can be passed a monadic thunk.
* guix/ui.scm (read/eval): New procedure.
  (read/eval-package-expression): Use it.
* guix/scripts/build.scm (derivations-from-package-expressions): Rename to...
  (derivation-from-expression): ... this.  Accept procedures, under the
  assumption that they are monadic thunk.
  (show-help): Adjust accordingly.
  (guix-build): Ditto.
* tests/guix-build.sh: Add test.
* doc/guix.texi (Invoking guix build): Augment description of '-e'.
2013-11-18 23:08:20 +01:00
Ludovic Courtès
e900c5031f doc: Mention Linux containers; emphasize reproducible builds.
* doc/guix.texi (Introduction): Use "containers" instead of "chroots".
  (Invoking guix-daemon): Add @cindex entries.  Mention the Linux
  container features.
  (Features): Add sentence on build reproducibility.
2013-11-18 22:07:29 +01:00
Andreas Enge
f392980041 gnu: pspp: Add input cairo.
* gnu/packages/maths.scm (pspp): Add cairo and further necessary inputs.
* gnu/packages/patches/pspp-tests.patch: New file, thanks to
  John Darrington <john@darrington.wattle.id.au>.
* gnu-system.am (dist_patch_DATA): Register patch.
2013-11-18 21:12:27 +01:00
Andreas Enge
c42a4b76c4 gnu: gettext: Enable "xgettext --language=glade".
* gnu/packages/gettext.scm (gettext): Add input expat, explicitly link with it.
2013-11-18 21:11:49 +01:00
Ludovic Courtès
a7bf595fff gnu: gcc: Really always link against libgcc_s.so.
* gnu/packages/gcc.scm (gcc-4.7): Add snippet to add -lgcc_s to the
  "lib" spec.  Remove --as-needed trick from 65d3b7c: it had no effect
  in cases where we have !static-libgcc && !shared-libgcc.
2013-11-18 14:06:47 +01:00
Ludovic Courtès
0129c94832 gnu: gettext: Upgrade to 0.18.3.1.
* gnu/packages/gettext.scm (gettext): Upgrade to 0.18.3.1.
2013-11-18 00:20:56 +01:00
Ludovic Courtès
65d3b7c31d gnu: gcc: Always link against libgcc_s.so.
* gnu/packages/gcc.scm (gcc-4.7)[pre-configure]: Add snippet to #undef
  USE_LD_AS_NEEDED.
2013-11-18 00:09:45 +01:00
Ludovic Courtès
9ca8b5ac55 gnu: tar: Upgrade to 1.27.1.
* gnu/packages/base.scm (tar): Upgrade to 1.27.1.
2013-11-18 00:07:35 +01:00
Ludovic Courtès
13990c7343 gnu: glibc: Really disable 'ldconfig' and /etc/ld.so.cache.
* gnu/packages/base.scm (glibc): Add 'snippet' to set use_ldconfig=no.
  Remove "glibc-no-ld-so-cache.patch"; that patch would still build
  'ldconfig', and ld.so would still contain ld.so.cache-related code,
  and would look for info in /etc/etc/ld.so.cache (sic).
* gnu/packages/patches/glibc-no-ld-so-cache.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2013-11-16 23:14:28 +01:00
Ludovic Courtès
127ed6a9dd tests: Adjust to bootstrap tarball updates.
Reported by Mark H. Weaver <mhw@netris.org>.

* tests/packages.scm ("package-source-derivation, snippet"): Change to
  "guile-2.0.9.tar.xz".
* tests/union.scm ("union-build"): Check or include/c++ being a symlink.
2013-11-16 22:10:03 +01:00
Ludovic Courtès
8db351e338 doc: Improve "Installing Guix from Guix" section.
Reported by Mark H. Weaver <mhw@netris.org>.

* README (Installing Guix from Guix): Explicitly mention $PATH
  separately.  Mention $ACLOCAL_PATH, not $ACLOCAL.  Give the exact
  command to install the dependencies.  Remove mention of
  $GUIX_LD_WRAPPER_ALLOW_IMPURITIES, which is no longer needed.
2013-11-16 21:56:44 +01:00
Ludovic Courtès
c6061db21e gnu: cflow: Install Emacs mode.
* gnu/packages/cflow.scm (cflow): Add Emacs as an input.
2013-11-16 21:56:41 +01:00
Ludovic Courtès
0621349858 gnu: Switch to GCC 4.8 as the default compiler.
* build-aux/download.scm (file-name->uri): Update URL to /20131110.
* gnu-system.am (nodist_bootstrap_x86_64_linux_DATA,
  nodist_bootstrap_i686_linux_DATA): Change base name to
  'guile-2.0.9.tar.xz'.
  (gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz,
  gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz): New targets.
  (gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
  gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Remove.
  (gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz): Update
  hash.
* gnu/packages/base.scm (gcc-boot0): Base upon GCC-4.8.  Enable C++, and
  add a few --disable flags.  Remove MPFR workaround.
  (cross-gcc-wrapper): Base upon GCC-4.8.  Wrap both 'gcc' and 'g++'.
  (libstdc++): New variable.
  (gcc-final): Add it as an input; pass corresponding -I and -L flags.
* gnu/packages/bootstrap.scm (%bootstrap-guile): Always use
  "guile-2.0.9.tar.xz.
  (%bootstrap-coreutils&co): Update hashes.
  (%bootstrap-binutils): Update URL and hashes.
  (%bootstrap-glibc): Likewise.
  (%bootstrap-gcc): Likewise.
* gnu/packages/gcc.scm (gcc-4.7): Add LDFLAGS.
  Add --disable-libstdcxx-pch.
  Modify the GNU_USER*_SPEC macros from gnu-user*.h instead of the raw
  _SPEC macros.
2013-11-16 00:48:31 +01:00
Ludovic Courtès
c509bf8c87 substitute-binary: Adjust timeout handling for Guile > 2.0.9.
* guix/scripts/substitute-binary.scm (with-timeout): Update comment to
  mention the fix's commit ID.
  (fetch): In the 'with-timeout' handler, close PORT only one Guile
  versions < 2.0.9.39.  Before that, on Guile >= 2.0.9.39, the HTTP
  client would end up trying to read from a closed file descriptor.
2013-11-14 01:09:07 +01:00
Ludovic Courtès
a716e36de9 derivations: Allow 'map-derivations' to replace sources.
* guix/derivations.scm (map-derivation)[input->output-paths]: Allow
  non-derivation inputs.
  Allow replacements to be store files.  Replace in SOURCES too.
* tests/derivations.scm ("map-derivation, sources"): New test.
2013-11-13 11:22:07 +01:00
Ludovic Courtès
f80594cc41 packages: Suitably cope with indirect store paths as package sources.
* guix/packages.scm (package-source-derivation): Don't let indirect
  store paths pass through.
* tests/packages.scm ("package-source-derivation, indirect store path"):
  New test.
2013-11-13 00:29:05 +01:00
Ludovic Courtès
9336e5b5e7 store: Make 'direct-store-path?' public.
* guix/store.scm (direct-store-path?): New procedure.
* guix/derivations.scm (derivation)[direct-store-path?]: Remove.
* tests/store.scm ("direct-store-path?"): New test.
2013-11-13 00:29:05 +01:00
Ludovic Courtès
e387ab7c10 derivations: Add 'map-derivation'.
* guix/derivations.scm (map-derivation): New procedure.
* tests/derivations.scm ("map-derivation"): New test.
2013-11-13 00:29:05 +01:00
Ludovic Courtès
56b943de6e utils: Add 'string-replace-substring'.
* guix/utils.scm (string-replace-substring): New procedure.  Based on
  code by Mark H. Weaver.
* tests/utils.scm ("string-replace-substring"): New test.
2013-11-13 00:29:05 +01:00
Andreas Enge
be0f611208 gnu: Add IceCat.
* gnu/packages/gnuzilla.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-11-12 22:17:45 +01:00
Nikita Karetnikov
f3463cafce gnu: Add GNU APL.
* gnu/packages/apl.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-11-12 01:30:07 +00:00
Ludovic Courtès
bf4211523b guix build: Add '--log-file'.
* guix/scripts/build.scm (show-help): Add '--log-file'.
  (%options): Likewise.
  (guix-build): Set %FILE-PORT-NAME-CANONICALIZATION.  Honor '--log-file'.
* tests/guix-build.sh: Add '--log-file' tests.
* doc/guix.texi (Invoking guix build): Document '--log-file'.
2013-11-12 01:06:45 +01:00
Ludovic Courtès
eddd4077a5 store: Add 'log-file' procedure.
* guix/store.scm (log-file): New procedure.
* tests/store.scm ("log-file, derivation", "log-file, output file
  name"): New tests.
2013-11-12 01:06:45 +01:00
Andreas Enge
08184ebf16 gnu: Add phonon.
* gnu/packages/kde.scm (phonon): New variable.
2013-11-11 21:56:07 +01:00
Andreas Enge
206a52089a gnu: qt: Enable SIMD instructions available on x86_64.
* gnu/packages/qt.scm (qt, qt-4): Enable mmx, 3dnow, sse and sse2 on x86_64.
2013-11-11 19:16:03 +01:00
Ludovic Courtès
a6c116c703 gnu: Add GVPE.
* gnu/packages/gvpe.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-11-11 01:28:10 +01:00
Ludovic Courtès
d277bdeab9 gnu: Add GNU complexity.
* gnu/packages/complexity.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-11-11 00:29:09 +01:00
Ludovic Courtès
9ed08d1fd4 nls: Add Serbian translation.
* po/sr.po: New file.
* po/LINGUAS: Add 'sr'.
2013-11-09 18:00:03 +01:00
Ludovic Courtès
50dc48922c substitute-binary: Increase lookup concurrency to reduce latency.
* guix/scripts/substitute-binary.scm (%lookup-threads): New variable.
  (guix-substitute-binary): Use 'n-par-map' instead of 'par-map' for
  batch 'lookup-narinfo' calls.
2013-11-08 22:47:02 +01:00
Ludovic Courtès
7db9608d52 Merge branch 'master' into core-updates
Conflicts:
	guix/packages.scm
2013-11-08 21:58:09 +01:00
Ludovic Courtès
6a9957545c gnu: lapack: Use origin snippet to remove the non-free files.
* gnu/packages/maths.scm (lapack): Add 'snippet' field with contents of
  former 'remove-non-free-files' phase; remove that phase.
2013-11-07 23:07:45 +01:00
Ludovic Courtès
f9cc897105 packages: Add a 'snippet' field to <origin>.
* guix/packages.scm (<origin>): Add 'snippet', 'modules', and
  'imported-modules' fields.
  (patch-and-repack): Make 'inputs' a keyword parameter.  Add 'snippet',
  'modules', and 'imported-modules' parameters.  Accept SOURCE as a raw
  file name.  Insert SNIPPET in BUILDER.  Pass IMPORTED-MODULES to
  'build-expression->derivation'.
  (package-source-derivation): Pass the extra arguments to
  'patch-and-repack'.
* tests/packages.scm ("package-source-derivation, snippet"): New test.
* doc/guix.texi (Defining Packages): Mention the 'patches' and 'snippet'
  fields.
  (Invoking guix build): Tell that --source has patches and snippets
  applied.
  (Software Freedom): Mention packages that contain non-free code.
2013-11-07 22:57:30 +01:00
Ludovic Courtès
18f2887bff doc: Document current security issue with substitutes.
Suggested by Mark H. Weaver <mhw@netris.org>.

* doc/guix.texi (Features): Add note about unauthenticated binaries.
2013-11-07 22:18:24 +01:00
Ludovic Courtès
b5385b528c doc: Improve documentation of '--no-substitutes'.
Suggested by Mark H. Weaver <mhw@netris.org>.

* doc/guix.texi (Invoking guix package): Spell out the --no-substitutes
  documentation.
  (Invoking guix build): Use the more complete --no-substitutes
  documentation.
  (Invoking guix-daemon): Explain the interaction with what clients ask
  for.
2013-11-07 22:17:15 +01:00
Nikita Karetnikov
da95c8170a gnu: Add LAPACK.
* gnu/packages/maths.scm (lapack): New variable.
2013-11-07 08:20:11 +00:00
Ludovic Courtès
35ef363300 Add indentation rule for 'origin'. 2013-11-07 00:18:20 +01:00
Ludovic Courtès
01e82af55f tests: Fix max-silent-time test.
* tests/derivations.scm ("build-expression->derivation and
  max-silent-time"): Use STORE instead of %STORE.  Change BUILDER to
  succeed by default.  Return #f when no exception is raised.
2013-11-04 23:41:33 +01:00
Ludovic Courtès
bde2d9cf8d tests: Add the builder as an input to raw derivations.
* tests/derivations.scm ("build derivation with 1 source",
  "derivation with local file as input",
  "derivation with a fixed-output input",
  "multiple-output derivation",
  "multiple-output derivation, non-alphabetic order",
  "user of multiple-output derivation"): Add %BASH as an input, needed
  in chroot builds.
2013-11-04 23:06:13 +01:00
Mark H Weaver
7a78cc7af2 gnu: mit-krb5: don't assume arguments are evaluated right-to-left.
* gnu/packages/patches/mit-krb5-init-fix.patch: New file.
* gnu/packages/mit-krb5.scm (mit-krb5): Apply patch at the end of the custom
  unpack phase.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-04 13:38:06 -05:00
Mark H Weaver
2ebab8e909 Add mips64el-linux to the list of supported systems.
* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): Add mips64el-linux to the list of
  supported systems.
2013-11-03 23:26:58 -05:00
Mark H Weaver
f57ff219ad gnu: add bootstrap support for mips64el-linux using the MIPS N32 ABI.
* .gitignore: Add entry for bootstrap/mips64el-linux/guile-2.0.9.tar.xz.

* gnu-system.am (bootstrap_mips64el_linuxdir,
  dist_bootstrap_mips64el_linux_DATA, nodist_bootstrap_mips64el_linux_DATA):
  New variables.
  (DISTCLEANFILES): Add $(nodist_bootstrap_mips64el_linux_DATA).
  (gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz): New target.

* build-aux/download.scm (file-name->uri): Adapt to the newer mips64el-linux
  bootstrap tarballs.

* gnu/packages/bootstrap.scm (%bootstrap-guile, %bootstrap-coreutils&co,
  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Adapt to the newer
  mips64el-linux bootstrap tarballs.

* gnu/packages/bootstrap/mips64el-linux/bash:
* gnu/packages/bootstrap/mips64el-linux/mkdir:
* gnu/packages/bootstrap/mips64el-linux/tar:
* gnu/packages/bootstrap/mips64el-linux/xz: New files.
2013-11-03 23:26:53 -05:00
Mark H Weaver
c5916538fd gnu: liboop: fix deplibs check method for mips64.
* gnu/packages/patches/liboop-mips64-deplibs-fix.patch: New file.
* gnu/packages/lsh.scm (liboop): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:42 -05:00
Mark H Weaver
fdbd19ea6b gnu: gd: fix deplibs check method for mips64.
* gnu/packages/patches/gd-mips64-deplibs-fix.patch: New file.
* gnu/packages/gd.scm (gd): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:37 -05:00
Mark H Weaver
dd863f1f39 gnu: libmad: Fix MIPS assembler code to work with new GCC.
* gnu/packages/patches/libmad-mips-newgcc.patch: New file.
* gnu/packages/mp3.scm (libmad): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:32 -05:00
Mark H Weaver
46acd05401 gnu: libtheora: patch ancient config.guess to support mips64.
* gnu/packages/patches/libtheora-config-guess.patch: New file.
* gnu/packages/oggvorbis.scm (libtheora): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:27 -05:00
Mark H Weaver
bcd94e192a gnu: alsa-lib: fix atomic op declarations for MIPS.
* gnu/packages/patches/alsa-lib-mips-atomic-fix.patch: New file.
* gnu/packages/linux.scm (alsa-lib): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:22 -05:00
Mark H Weaver
1475a351f6 gnu: gdb: patch-makefile-SHELL for all Makefile.in files.
* gnu/packages/gdb.scm (gdb): patch-makefile-SHELL for all Makefile.in files
  after configure.
2013-11-03 23:26:17 -05:00
Mark H Weaver
b20441f228 gnu: gdb: Fix opcode table for Loongson fused multiply-add.
* gnu/packages/patches/gdb-loongson-madd-fix.patch: New file.
* gnu/packages/gdb.scm (gdb): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:12 -05:00
Mark H Weaver
1602fcea18 gnu: libffi: fix handling of uint32_t arguments on MIPS N32.
* gnu/packages/patches/libffi-mips-n32-fix.patch: New file.
* gnu/packages/libffi.scm (libffi): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:26:04 -05:00
Mark H Weaver
bf2cc1e5d1 gnu: libtool: skip a test that fails on MIPS N32.
* gnu/packages/patches/libtool-skip-tests-for-mips.patch: New file.
* gnu/packages/autotools.scm (libtool): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-03 23:25:59 -05:00
Mark H Weaver
2c1ceeacdf gnu: binutils: apply fixes and workarounds for Loongson 2F CPUs.
* gnu/packages/patches/binutils-loongson-madd-fix.patch: New file.
* gnu/packages/patches/binutils-loongson-workaround.patch: New file.
* gnu/packages/base.scm (binutils): Add patches.
* gnu-system.am (dist_patch_DATA): Add patches.
2013-11-03 23:25:54 -05:00
Ludovic Courtès
b8c3527828 gnu: recutils: Upgrade to 1.6.
* gnu/packages/recutils.scm (recutils): Upgrade to 1.6.  Add cURL and
  libgcrypt as inputs.
2013-11-03 23:24:16 +01:00
Ludovic Courtès
64a967cc9c ui: Make '--version' output GCS-compliant.
* guix/ui.scm (show-version-and-exit): Display copyright year, license,
  and LACK OF WARRANTY.
2013-11-03 23:09:30 +01:00
Ludovic Courtès
69f777d14c gnu: make-bootstrap: Build libc and Guile without a .gnu_debuglink.
* gnu/packages/make-bootstrap.scm (glibc-for-bootstrap, %guile-static):
  Add 'outputs' field.
2013-11-03 22:35:17 +01:00
Ludovic Courtès
c9323eac74 gnu: make-bootstrap: Allow bit-reproducibility for 'glibc-stripped'.
* gnu/packages/make-bootstrap.scm (%glibc-stripped): Remove '.install'
  and '..install.cmd' files.
2013-11-02 22:28:30 +01:00
Cyril Roelandt
a18e58336c gnu: cmake: Bump to 2.8.12
* gnu/packages/cmake.scm: bump to 2.8.12
2013-11-02 22:17:08 +01:00
Ludovic Courtès
55a5674f21 gnu: make-bootstrap: Add C++ header files to the bootstrap GCC.
* gnu/packages/make-bootstrap.scm (%gcc-stripped): Add $gcc/include/c++.
2013-11-02 15:17:08 +01:00
Ludovic Courtès
08928e5752 gnu: cross-gcc: Fix build of 'gcc-cross-sans-libc'.
* gnu/packages/cross-base.scm (cross-gcc): Add "--disable-libatomic".
2013-11-02 12:58:52 +01:00
Ludovic Courtès
13ed095c50 doc: Document the syntax of the '--remove' argument.
* doc/guix.texi (Invoking guix package): Document the syntax of
  '--remove' patterns.
2013-11-02 00:01:35 +01:00
Ludovic Courtès
45b418d634 guix package: Show the output name of what's being removed.
* guix/scripts/package.scm (show-what-to-remove/install): Show the
  output name of packages being removed.
2013-11-01 23:59:25 +01:00
Ludovic Courtès
1b5ba6b1e9 guix package: Fix indentation of "will be removed" messages.
* guix/scripts/package.scm (show-what-to-remove/install): Remove extra
  indentation from the removal sentences.
2013-11-01 23:21:01 +01:00
Ludovic Courtès
a20787706c guix package: Allow removal of a specific package output.
Fixes <http://bugs.gnu.org/15756>.

* guix/profiles.scm (<manifest-pattern>): New record type.
  (remove-manifest-entry): Remove.
  (entry-predicate, manifest-matching-entries): New procedures.
  (manifest-remove): Accept a list of <manifest-pattern>.
  (manifest-installed?): Replace 'name' parameter by 'pattern', a
  <manifest-pattern>.
* guix/scripts/package.scm (options->removable): Return a list of
  <manifest-pattern>.
  (guix-package)[process-action]: Use 'manifest-matching-entries' to
  compute the list of packages to remove.
* tests/profiles.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2013-11-01 23:21:01 +01:00
Ludovic Courtès
537630c5a7 guix package: Separate '--remove' option processing.
* guix/scripts/package.scm (options->removable): New procedure.
  (guix-package)[process-actions]: Use it.  Rename 'remove*' to 'remove'
  and 'install*' to 'install'.
2013-11-01 23:21:00 +01:00
Ludovic Courtès
2876b98925 ui: Factorize package specification parsing.
* guix/ui.scm (package-specification->name+version+output): New
  procedure.
* guix/scripts/package.scm (specification->package+output): Use it.
* tests/ui.scm ("package-specification->name+version+output"): New test.
2013-11-01 23:21:00 +01:00
Ludovic Courtès
cc4ecc2d88 Add (guix profiles).
* guix/scripts/package.scm (show-what-to-remove/install): New procedure,
  moved from...
  (guix-package): ... here.
  (<manifest>, make-manifest, <manifest-entry>,
  profile-manifest, manifest->sexp, sexp->manifest, read-manifest,
  write-manifest, remove-manifest-entry, manifest-remove,
  manifest-installed?, manifest=?, profile-regexp, generation-numbers,
  previous-generation-number, profile-derivation, generation-number,
  generation-file-name, generation-time, lower-input): Move to...
* guix/profiles.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2013-11-01 23:21:00 +01:00
Nikita Karetnikov
fdd6c72683 gnu: Add GCC front ends for Fortran, Go, Objective C, and Objective C++.
* gnu/packages/gcc.scm (custom-gcc, gfortran-4.8, gccgo-4.8)
  (gcc-objc-4.8, gcc-objc++-4.8): New variables.
2013-11-01 20:50:02 +00:00
Andreas Enge
798e4f42b3 gnu: ffmpeg: Fix typo in configure flags.
* gnu/packages/video.scm (ffmpeg): Add "d" in "3d" in configure flags.
2013-11-01 21:08:26 +01:00
Ludovic Courtès
1670c70a03 gnu: Revert to GCC 4.7 as the default compiler.
GCC 4.8 relies on C++ headers (<cstring>, <iosfwd>, etc.) that are
missing from the current bootstrap GCC.

* gnu/packages/base.scm (gcc-boot0, cross-gcc-wrapper, gcc-final): Base
  on GCC-4.7.  This reverts part of commit 9ae7cee.
2013-11-01 15:31:16 +01:00
Andreas Enge
39efcc9b3a gnu: Add ffmpeg.
* gnu/packages/video.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-11-01 14:01:05 +01:00
Ludovic Courtès
9ae7cee342 gnu: Switch to GCC 4.8 as the default compiler.
* gnu/packages/base.scm (gcc-boot0, cross-gcc-wrapper, gcc-final): Base
  on GCC-4.8.
* gnu/packages/cross-base.scm (cross-gcc): Likewise.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc,
  %gcc-static, %gcc-stripped): Likewise.
2013-11-01 13:04:38 +01:00
Ludovic Courtès
67f6491bce gnu: grep: Update to 2.15.
* gnu/packages/base.scm (grep): Update to 2.15.
2013-11-01 13:01:20 +01:00
Ludovic Courtès
ff8061b591 Merge branch 'master' into core-updates 2013-11-01 12:59:31 +01:00
Mark H Weaver
b645425f71 gnu: pulseaudio: increase timeout of thread test.
* gnu/packages/patches/pulseaudio-test-timeouts.patch: New file.
* gnu/packages/pulseaudio.scm (pulseaudio): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-11-01 12:48:25 +01:00
Ludovic Courtès
cdbca518ca union: Do not warn when identical files collide.
* guix/build/union.scm (file=?): New procedure.
  (union-build)[resolve-collision]: Do not warn when identical files
  collide.
2013-10-31 23:38:58 +01:00
Ludovic Courtès
215b643150 gnu: Add bridge-utils.
* gnu/packages/linux.scm (bridge-utils): New variable.
2013-10-31 23:38:58 +01:00
Andreas Enge
dce1722739 gnu: libmicrohttpd: Update to 0.9.31.
* gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.31,
    synchronise the description with GNU SRC.
2013-10-30 23:12:45 +01:00
Andreas Enge
4e9b38ebf7 gnu: Add gst-plugins-base-0.10.
* gnu/packages/gstreamer.scm (gst-plugins-base-0.10): New variable.
2013-10-30 22:58:39 +01:00
Andreas Enge
cedf081abb gnu: gstreamer-0.10: Propagate input libxml2.
* gnu/packages/gstreamer.scm (gstreamer-0.10): Propagate input libxml2.
2013-10-30 22:57:52 +01:00
Ludovic Courtès
477d30d0d8 guix package: Factorize generation file name computation.
* guix/scripts/package.scm (generation-file-name): New procedure.
  Change all occurrences of (format #f "~a-~a-link" profile number) to
  use it.
2013-10-30 22:09:33 +01:00
Ludovic Courtès
1fcc3ba309 guix package: Specify inputs for each manifest entry.
* guix/scripts/package.scm (<manifest-entry>): Add 'inputs' field.
  (manifest=?, lower-input): New procedure.
  (profile-derivation)[builder]: Add #:log-port argument to
  'union-build'.
  [ensure-valid-input]: Remove.
  Add each entry's inputs to the input list.
  (options->installable): Return just the list of entries.
  [package->manifest-entry]: Set 'inputs' field.
  [canonicalize-deps]: Rename to...
  [deduplicate]: ... this.  Remove input fiddling.
  (guix-package)[process-actions]: Use 'manifest=?' to compare the new
  and old manifests.  Pass directly PROF-DRV to 'show-what-to-build'.
  Pass #:print-build-trace #f to 'set-build-options'.
2013-10-30 22:09:33 +01:00
Ludovic Courtès
c065c443a0 union: Make the log port a parameter.
* guix/build/union.scm (union-build): Add 'log-port' keyword parameter;
  use it.
2013-10-30 22:09:32 +01:00
Ludovic Courtès
d0dc4907d6 derivations: 'derivation-path->output-path' honors the 'output' parameter.
* guix/derivations.scm (derivation-path->output-path): Pass OUTPUT.
* tests/derivations.scm ("multiple-output derivation,
  derivation-path->output-path"): New test.
2013-10-30 22:09:32 +01:00
Ludovic Courtès
d595e456c1 guix package: Always use the term "profile", not "user environment".
* guix/scripts/package.scm (%user-environment-directory): Rename to...
  (%user-profile-directory): ... this.  Update users accordingly.
  (profile-derivation): Use the term "profile" instead of "user
  environment", and use "profile" as the derivation name.
2013-10-30 22:09:32 +01:00
Ludovic Courtès
f067fc3e77 guix package: Introduce <manifest> and <manifest-entry> types.
* guix/scripts/package.scm (<manifest>, <manifest-entry>): New record
  types.
  (make-manifest, read-manifest, manifest->sexp, sexp->manifest,
  read-manifest, write-manifest, remove-manifest-entry, manifest-remove,
  manifest-installed?): New procedures.
  (profile-derivation): Take a manifest as the second parameter.  Use
  'manifest->sexp'.  Expect <manifest-entry> objects instead of
  "tuples".  Adjust callers accordingly.
  (search-path-environment-variables): Changes 'packages' parameter to
  'entries'.  Rename 'package-in-manifest->package' to
  'manifest-entry->package'; expect <manifest-entry> objects.
  (display-search-paths): Rename 'packages' to 'entries'.
  (options->installable): Change 'installed' to 'manifest'.  Have
  'canonicalize-deps' return name/path tuples instead of raw packages.
  Rename 'package->tuple' to 'package->manifest-entry'.  Use
  <manifest-entry> objects instead of tuples.
  (guix-package)[process-actions]: Likewise.  Rename 'packages' to
  'entries'.
  [process-query]: Use 'manifest-entries' instead of
  'manifest-packages'.
2013-10-30 22:09:32 +01:00
Ludovic Courtès
edac884624 guix package: Better separate option processing.
* guix/scripts/package.scm (find-package): Rename to...
  (specification->package+output): ... this.  Rename 'name' parmameter
  to 'spec'.  Return a package and output name instead of a tuple.
  (options->installable): New procedure
  (guix-package)[process-actions]: Use it, and remove corresponding
  code.
2013-10-30 22:09:32 +01:00
Andreas Enge
f506ed920c gnu: Add gstreamer-0.10.
* gnu/packages/gstreamer.scm (gstreamer-0.10): New variable.
* gnu/packages/patches/gstreamer-0.10-bison3.patch,
  gnu/packages/patches/gstreamer-0.10-silly-test.patch: New files.
* gnu-system.am (dist_patch_DATA): Add patches.
2013-10-30 22:06:57 +01:00
Andreas Enge
94f48f98f0 gnu: mit-krb5: Update to 1.11.3.
* gnu/packages/mit-krb5.scm (mit-krb5): Update to 1.11.3.
2013-10-29 23:46:10 +01:00
Ludovic Courtès
d46d8794a1 guix package: Declutter the entry point.
* guix/scripts/package.scm (newest-available-packages,
  find-best-packages-by-name, find-package, upgradeable?): New
  procedures, moved from...
  (guix-package): ... here.
2013-10-29 22:03:02 +01:00
Mark H Weaver
2a8417ac44 Change indentation rule for 'package' for the common case.
* .dir-locals.el: Change the indentation rule for 'package' to do the right
  thing for packages without an inherit clause.
2013-10-29 12:19:44 -04:00
Ludovic Courtès
cb558fcd9c list-runtime-roots: List files referenced by environment variables.
Inspired by <772b70952f...4ddd077bfa>.

* nix/scripts/list-runtime-roots.in (%store-directory): New variable.
  (proc-environ-roots): New procedure.
  (<top-level>): Use it.
2013-10-29 00:08:44 +01:00
Ludovic Courtès
72e25e35a5 doc: Augment the "Porting" section.
Reported by Andreas Enge <andreas@enge.fr>.

* doc/guix.texi (Porting): Document needed changes to (gnu packages
  bootstrap) and (gnu packages linux).
2013-10-29 00:08:44 +01:00
Ludovic Courtès
011b18c332 gnu: Add python2-empy.
* gnu/packages/python.scm (python2-empy): New variable.
2013-10-29 00:08:44 +01:00
Ludovic Courtès
7587041028 build-system/{cmake,perl}: Don't use (guix build gnu-build-system).
Previously references to '%standard-phases' in builder-side code would
refer to the wrong one.

* guix/build-system/cmake.scm (cmake-build): Remove (guix build
  gnu-build-system) from the default MODULES value.
* guix/build-system/perl.scm (perl-build): Likewise.
2013-10-29 00:08:44 +01:00
Nikita Karetnikov
3220c2f41e gnu: gcc-4.8: Upgrade to 4.8.2.
* gnu/packages/gcc.scm (gcc-4.8): Upgrade to 4.8.2.
2013-10-28 18:42:09 +00:00
Andreas Enge
fdf3cb4cc0 gnu: mesa: Update URI.
* gnu/packages/xorg.scm (mesa): Update URI.
2013-10-26 15:09:42 +02:00
Andreas Enge
5f6265298e gnu: lzip: Update to 1.15.
* gnu/packages/compression.scm (lzip): Update to 1.15.
2013-10-26 15:03:27 +02:00
David Thompson
c3c516ea00 gnu: Add libmikmod.
* gnu/packages/sdl.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2013-10-26 14:15:45 +02:00
Eric Bavier
fa58ca4376 gnu: Add Pem.
* gnu/packages/pem.scm: New file.
 * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2013-10-26 01:23:00 +02:00
Andreas Enge
b357faace7 gnu: Add sharutils.
* gnu/packages/compression.scm (sharutils): New variable.
2013-10-26 00:28:32 +02:00
Andreas Enge
13fbda90d9 gnu: rsync: Update to 3.1.0.
* gnu/packages/rsync.scm (rsync): Update to 3.1.0.
2013-10-25 22:44:51 +02:00
Andreas Enge
e50805251a gnu: gmp: Update to 5.1.3.
* gnu/packages/multiprecision.scm (gmp): Update to 5.1.3.
2013-10-24 17:54:16 +02:00
Andreas Enge
89059aa193 gnu: qt: Correct source uri.
* gnu/packages/qt.scm (qt-4): Correct source uri (reported by
    Cyril Roelandt <tipecaml@gmail.com>).
2013-10-23 23:33:36 +02:00
Andreas Enge
b92eee75b1 gnu: Add GLPK.
* gnu/packages/maths.scm (glpk): New variable.
2013-10-22 20:24:33 +02:00
Ludovic Courtès
d038cac12a gnu: Add GNU Alive.
* gnu/packages/system.scm (alive): New variable.
2013-10-19 00:07:28 +02:00
Ludovic Courtès
02c72d1671 build: Build the bootstrap-graph.{png,eps,pdf} under $(top_srcdir).
Fixes <http://bugs.gnu.org/15640>.
Reported by Eric Bavier <ericbavier@gmail.com>.

* doc.am (EXTRA_DIST): Add doc/images/bootstrap-graph.pdf to the
  distribution.
  (pdf-local, info-local, ps-local): Prepend $(top_srcdir) to the image
  file names.
2013-10-18 22:05:39 +02:00
Ludovic Courtès
a433c52593 gnu: dfc: Add missing input.
* gnu/packages/system.scm (dfc): Add 'native-inputs' field.
2013-10-18 00:25:06 +02:00
Ludovic Courtès
93a3d8f609 gnu: glib: Work around test failure in 'gio/tests/network-address.c'.
* gnu/packages/patches/glib-tests-newnet.patch: New file.
* gnu/packages/glib.scm (glib): Use it.
* gnu-system.am (dist_patch_DATA): Add it.
2013-10-17 23:50:32 +02:00
Ludovic Courtès
96e424672a gnu: evince: Set search path for MIME info.
* gnu/packages/gnome.scm (evince): Add #:phases argument.  Remove "perl"
  and "perl-xml-parser" inputs since they are not directly needed; move
  "intltool" to 'native-inputs'.
2013-10-17 23:50:31 +02:00
Ludovic Courtès
9167f8e6f9 gnu: Add shared-mime-info.
* gnu/packages/gnome.scm (shared-mime-info): New variable.
2013-10-17 23:50:31 +02:00
Ludovic Courtès
515e68782f gnu: Add SCons.
* gnu/packages/python.scm (scons): New variable.
2013-10-17 23:50:31 +02:00
Nikita Karetnikov
7df7a74e23 doc: Improve the copyright notice. 2013-10-17 13:21:10 +00:00
Ludovic Courtès
ed41d48ef1 gnu: make: Update to 4.0, with Guile support.
* gnu/packages/base.scm (gnu-make): Update to 4.0.  Add Guile as an input.
  (gnu-make-boot0): Patch 'build.sh' so it does not attempt to build 'guile.c'.
  (gnu-make-final): New variable.
  (%final-inputs): Use it.
  (glibc): Add 'glibc-make-4.0.patch'.
* gnu/packages/patches/glibc-make-4.0.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
2013-10-16 17:36:19 +02:00
Ludovic Courtès
63760b5bab gnu: base: Fix circular dependency between %final-outputs and <origin> inputs.
* gnu/packages/base.scm (%final-inputs): Add
  'package-with-bootstrap-guile' to 'finalize'.
2013-10-16 16:15:07 +02:00
Ludovic Courtès
f1352766fa utils: 'find-files' always returns a proper list.
Reported at <http://bugs.gnu.org/15608>.

* guix/build/utils.scm (find-files): Change the 'error' procedure to
  return RESULT.  Before we would end up with an improper list.
2013-10-16 15:53:59 +02:00
Ludovic Courtès
8f557fc8b7 gnu: readline: Turn 'patches' into a list.
* gnu/packages/readline.scm (readline): Turn 'patches' into a list.
2013-10-16 15:51:43 +02:00
Andreas Enge
418e82b507 gnu: harfbuzz: Update to 0.9.22.
* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.22; should solve the test
    problems on i686.
2013-10-16 10:44:56 +02:00
Ludovic Courtès
eeb70957e8 Update 'AUTHORS'. 2013-10-16 00:13:40 +02:00
Eric Bavier
d911258976 gnu: Add autogen package
* gnu/package/autogen.scm: New file
* gnu-system.am: Add it

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-10-16 00:12:27 +02:00
Ludovic Courtès
dfb52abbd6 Remove weirdnesses caused by 'letrec*' behavior of record field initializers.
* gnu/packages/bootstrap.scm (package-from-tarball): Remove '*' from
  parameter names.  Adjust accordingly.
* gnu/packages/linux-initrd.scm (expression->initrd): Use 'name'
  directly, removing the 'name*' alias.
* gnu/packages/linux.scm (linux-libre-headers, linux-libre): Rename
  'version*' to 'version'.
2013-10-15 23:42:58 +02:00
Ludovic Courtès
59fbeb8cae records: define-record-type*: Field bindings are bound with 'let*'.
* guix/records.scm (define-record-type*): Wrap field bindings in a
  'let*', not in a 'letrec*', which turned out to be pointlessly
  inconvenient.
* tests/records.scm: Adjust test names accordingly.
2013-10-15 23:31:22 +02:00
Ludovic Courtès
70a9c72028 build: Add 'clean-go' target.
* Makefile.am (clean-go): New phony target.
2013-10-15 23:25:08 +02:00
Ludovic Courtès
b2ba65c897 guix package: '--search' matches against package names.
* guix/scripts/package.scm (find-packages-by-description): Return
  packages whose name matches RX.
2013-10-15 22:59:50 +02:00
Ludovic Courtès
3c1d9799b8 Thank Jeffrin and David. 2013-10-14 23:18:54 +02:00
David Thompson
15e82fb2c0 gnu: Add libtheora.
* gnu/packages/oggvorbis.scm (libtheora): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-10-14 23:17:38 +02:00
Ludovic Courtès
749b90a519 gnu: subversion, cmake: Clean up descriptions.
* gnu/packages/cmake.scm (cmake): Simplify the synopsis.
* gnu/packages/version-control.scm (subversion): Remove "open-source"
  from the description.
2013-10-14 09:48:52 +02:00
Ludovic Courtès
c1354b90e9 gnu: Add libgnome-keyring and Evince.
* gnu/packages/gnome.scm (libgnome-keyring, evince): New variables.
2013-10-13 22:50:11 +02:00
Ludovic Courtès
8db824ba31 gnu: poppler: Build the poppler-glib bindings.
* gnu/packages/pdf.scm (poppler): Add Cairo and GLib as inputs.
2013-10-13 22:50:11 +02:00
Ludovic Courtès
cc20a22a09 gnu: Add dogtail.
* gnu/packages/python.scm (python2-dogtail): New variable.
2013-10-13 22:50:11 +02:00
Ludovic Courtès
178f77b2d2 pull: Compile modules correctly regardless of the compilation order.
* guix/scripts/pull.scm (unpack)[builder]: Work around
  <http://bugs.gnu.org/15602>.
2013-10-13 22:50:11 +02:00
Andreas Enge
973d9f1d1c gnu: kde: Add module and automoc4 package.
* gnu/packages/kde.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-10-13 18:18:57 +02:00
Andreas Enge
e78fd4ca63 guix: Make cmake build system aware of usual paths.
*  guix/build/cmake-build-system.scm (configure): Set CMAKE_LIBRARY_PATH to
     LIBRARY_PATH and CMAKE_INCLUDE_PATH to CPATH.
2013-10-13 18:02:49 +02:00
Andreas Enge
6eac909b45 gnu: cmake: Update patch to work with new system.
* gnu/packages/patches/cmake-fix-tests.patch: Update to work with -p1.
* gnu/packages/cmake.scm (cmake): Drop patch flag -p0.
2013-10-13 17:00:18 +02:00
Andreas Enge
487da56570 gnu: gsl: Update to 1.16.
* gnu/packages/maths.scm (gsl): Update to 1.16, disable parallel tests
    leading to a failure in vector.
2013-10-13 16:26:12 +02:00
Andreas Enge
a58a7c926b gnu: gtk+: Update to 3.10.1.
* gnu/packages/gtk.scm (gtk+): Update to 3.10.1, drop no longer needed
    configure flag.
2013-10-13 13:03:09 +02:00
Ludovic Courtès
52af657aee pull: Simplify the builder.
* guix/scripts/pull.scm (unpack)[builder]: Use 'copy-recursively' and
  'copy-file' instead of 'file-system-fold'.
2013-10-13 01:14:21 +02:00
Ludovic Courtès
ab5d72ad2b doc: Document "guix pull --url".
* doc/guix.texi (Invoking guix pull): Add --url.
2013-10-13 01:14:21 +02:00
Andreas Enge
8ab00475fb gnu: qt: Add patch to distribution.
* gnu-system.am (dist_patch_DATA): Add qt patch.
2013-10-12 23:34:22 +02:00
Ludovic Courtès
b646c3dd37 gnu: qemu-with-multiple-smb-shares: Fix typo.
* gnu/packages/qemu.scm (qemu/smb-shares): Turn 'patches' into a list.
2013-10-12 22:29:32 +02:00
Ludovic Courtès
b421cebd6a build-system/perl: Lazily resolve (gnu packages perl).
* guix/build-system/perl.scm (default-perl): New procedure.
  (perl-build): Use it.
2013-10-12 22:29:32 +02:00
Ludovic Courtès
0ad7da1e90 pull: Add '--url' option.
* guix/scripts/pull.scm (%default-options): Add 'tarball-url' pair.
  (%options, show-help): Add '--url'.
  (guix-pull): Honor it.
2013-10-12 22:29:32 +02:00
Ludovic Courtès
d8907ac43f download: Support 'file://' URLs.
* guix/download.scm (download-to-store): When URL has a 'file' scheme or
  no scheme, use 'add-to-store' directly.
2013-10-12 22:29:31 +02:00
Ludovic Courtès
39e9f95d05 guix: Add missing call to 'bindtextdomain'.
* scripts/guix.in (config-lookup): Add "localedir" entry.
  (run-guix-main): Add call to 'bindtextdomain'.
* guix/ui.scm (initialize-guix): Use %GETTEXT-DOMAIN instead of a
  literal.
2013-10-12 22:29:31 +02:00
Andreas Enge
f854a8c133 gnu: Add gp2c.
* gnu/packages/algebra.scm (gp2c): New variable.
2013-10-12 19:46:14 +02:00
Andreas Enge
1e9ed0e3dc gnu: Add Qt 4.8.5.
* gnu/packages/qt.scm (qt-4): New variable.
* gnu/packages/patches/qt4-tests.patch: New file, patch dropping tests
    requiring a running X server.
2013-10-12 14:50:14 +02:00
Arne Babenhauserheide
5151c2e1f4 gnu: Add Mercurial.
* gnu/packages/version-control.scm (mercurial): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-10-11 22:18:47 +02:00
Ludovic Courtès
1a75f8d939 gnu-maintenance: Adjust URL of package description file.
* guix/gnu-maintenance.scm (%package-description-url): Adjust to the
  new URL.
2013-10-11 22:18:47 +02:00
Nikita Karetnikov
f349fa02de gnu: Add GNU acct.
* gnu/packages/acct.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-10-11 12:18:28 +00:00
Cyril Roelandt
9fb0bc1572 gnu: Valgrind: make it work with glibc 2.18.
* gnu/packages/patches/valgrind-glibc.patch: update it.
2013-10-11 00:22:57 +02:00
Ludovic Courtès
7e2b10a53f build-system/{gnu,cmake}: Remove #:patches and #:patch-flags parameters.
* guix/build/gnu-build-system.scm (patch): Remove.
  (%standard-phases): Remove 'patch'.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Remove
  #:patches and #:patch-flags parameters.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/python.scm (package-with-explicit-python): Update
  comment.
2013-10-10 23:15:57 +02:00
Ludovic Courtès
de80b5045b gnu: Use the 'patches' field of <origin>.
* gnu/packages/autotools.scm (libtool): Add 'patches' field to the
  origin.  Remove 'inputs' field.
* gnu/packages/base.scm (findutils, gnu-make, binutils, glibc):
  Likewise.
* gnu/packages/m4.scm (m4): Likewise.
* gnu/packages/perl.scm (perl): Likewise.
* gnu/packages/readline.scm (readline): Likewise.
2013-10-10 23:05:28 +02:00
Ludovic Courtès
5fbeb4e6e1 gnu: bootstrap: Use the bootstrap tools for <origin> patching.
* gnu/packages/bootstrap.scm (bootstrap-origin): Override the
  'patch-guile' and 'patch-inputs' fields of SOURCE.
2013-10-10 23:02:33 +02:00
Ludovic Courtès
1d9bc45925 packages: The 'patch-guile' field of <origin> is now a package.
* guix/packages.scm (default-guile): Return a package instead of a
  derivation.
  (package-source-derivation): Adjust accordingly.
2013-10-10 23:00:47 +02:00
Ludovic Courtès
cdecf77501 gnu: tar: Update to 1.17.
* gnu/packages/base.scm (tar): Update to 1.17.  Remove 'arguments' and
  'inputs'.
* gnu/packages/patches/tar-gets-undeclared.patch: Remove.
* gnu-system.am (dist_patch_DATA): Remove 'tar-gets-undeclared.patch'.
2013-10-10 22:16:58 +02:00
Ludovic Courtès
fb6c2fa82e gnu: linux-libre-headers: Support cross-compilation.
* gnu/packages/linux.scm (linux-libre-headers):
  When (%current-target-system) is true, pass it as the argument to
  'build-phase'.  This fixes cross-compilation.
  Reported by Mark H. Weaver <mhw@netris.org>.
2013-10-10 21:43:14 +02:00
Ludovic Courtès
b49632e793 daemon: Set the umask to 022 when starting.
* nix/nix-daemon/guix-daemon.cc (main): Add 'umask' call.
* test-env.in: Remove use of 'umask'.
2013-10-10 21:43:14 +02:00
Ludovic Courtès
66fb2d23a3 gnu: Add pavucontrol.
* gnu/packages/pulseaudio.scm (pavucontrol): New variable.
2013-10-10 21:43:14 +02:00
Andreas Enge
ef0cf53e3f gnu: qt: Propagate input mesa.
* gnu/packages/qt.scm (qt): Propagate input mesa.
2013-10-10 20:54:25 +02:00
Andreas Enge
1ea44d1128 gnu: qt: Do not use special SSE etc. instructions.
* gnu/packages/qt.scm (qt): Add configure flags to disable machine specific
    instructions.
2013-10-10 20:04:53 +02:00
Andreas Enge
39fa8f6c73 gnu: qt: Add input pulseaudio.
* gnu/packages/qt.scm (qt): Add input pulseaudio.
2013-10-10 14:35:55 +02:00
Ludovic Courtès
c5cc50061f gnu: Add Pangomm, ATKmm, and GTKmm.
* gnu/packages/gtk.scm (atk)[synopsis]: Fix typo.
  (pangomm, atkmm, gtkmm): New variables.
2013-10-09 23:32:27 +02:00
Ludovic Courtès
d4f1ce4da0 list-packages: Show a list of patches for each package.
* build-aux/list-packages.scm (list-join): New procedure.
  (package->sxml)[patch-url]: New procedure.
  Use it.
2013-10-09 21:52:22 +02:00
Ludovic Courtès
4e45e35266 snix: Prefer descriptions from the Womb rather than from Nixpkgs.
* guix/snix.scm (snix-derivation->guix-package): Use
  'gnu-package-doc-description' as the description for GNU packages.
2013-10-09 16:18:23 +02:00
Ludovic Courtès
a22dc0c49a Synchronize package descriptions with the Womb.
* gnu/packages/algebra.scm,
  gnu/packages/aspell.scm,
  gnu/packages/autotools.scm,
  gnu/packages/base.scm,
  gnu/packages/bash.scm,
  gnu/packages/bison.scm,
  gnu/packages/cdrom.scm,
  gnu/packages/cflow.scm,
  gnu/packages/compression.scm,
  gnu/packages/cpio.scm,
  gnu/packages/cppi.scm,
  gnu/packages/ddrescue.scm,
  gnu/packages/dejagnu.scm,
  gnu/packages/ed.scm,
  gnu/packages/emacs.scm,
  gnu/packages/fdisk.scm,
  gnu/packages/freeipmi.scm,
  gnu/packages/gawk.scm,
  gnu/packages/gcal.scm,
  gnu/packages/gcc.scm,
  gnu/packages/gdb.scm,
  gnu/packages/gdbm.scm,
  gnu/packages/gettext.scm,
  gnu/packages/ghostscript.scm,
  gnu/packages/global.scm,
  gnu/packages/gnunet.scm,
  gnu/packages/gnupg.scm,
  gnu/packages/gnutls.scm,
  gnu/packages/gperf.scm,
  gnu/packages/gprolog.scm,
  gnu/packages/groff.scm,
  gnu/packages/grub.scm,
  gnu/packages/gsasl.scm,
  gnu/packages/guile.scm,
  gnu/packages/gv.scm,
  gnu/packages/help2man.scm,
  gnu/packages/idutils.scm,
  gnu/packages/indent.scm,
  gnu/packages/less.scm,
  gnu/packages/libidn.scm,
  gnu/packages/libsigsegv.scm,
  gnu/packages/libunistring.scm,
  gnu/packages/lightning.scm,
  gnu/packages/linux.scm,
  gnu/packages/lsh.scm,
  gnu/packages/m4.scm,
  gnu/packages/mail.scm,
  gnu/packages/maths.scm,
  gnu/packages/multiprecision.scm,
  gnu/packages/nano.scm,
  gnu/packages/ncurses.scm,
  gnu/packages/nettle.scm,
  gnu/packages/ocrad.scm,
  gnu/packages/oggvorbis.scm,
  gnu/packages/parted.scm,
  gnu/packages/plotutils.scm,
  gnu/packages/pth.scm,
  gnu/packages/readline.scm,
  gnu/packages/recutils.scm,
  gnu/packages/rush.scm,
  gnu/packages/scheme.scm,
  gnu/packages/screen.scm,
  gnu/packages/shishi.scm,
  gnu/packages/smalltalk.scm,
  gnu/packages/system.scm,
  gnu/packages/texinfo.scm,
  gnu/packages/time.scm,
  gnu/packages/unrtf.scm,
  gnu/packages/version-control.scm,
  gnu/packages/wdiff.scm,
  gnu/packages/wget.scm,
  gnu/packages/which.scm,
  gnu/packages/xnee.scm,
  gnu/packages/zile.scm: Change value of the 'description' field to that
  of the Womb.
2013-10-09 16:14:23 +02:00
Ludovic Courtès
668d48a684 build: 'sync-descriptions' now compares GNU package descriptions.
* build-aux/sync-synopses.scm: Rename to...
* build-aux/sync-descriptions.scm: ... this.  Compare the value of
  'gnu-package-doc-description' and 'package-description' and report any
  mismatch.
* Makefile.am (EXTRA_DIST): Adjust accordingly.
  (sync-synopses): Rename to...
  (sync-descriptions): ... this.
2013-10-09 16:13:02 +02:00
Ludovic Courtès
129f9e1173 gnu-maintenance: Get descriptions from 'gnumaint/pkgdescr.txt'.
* guix/gnu-maintenance.scm (%gnumaint-base-url): New variable.
  (%package-list-url): Use it.
  (%gsrc-package-list-url): Remove.
  (%package-description-url): New variable.
  (official-gnu-packages): Change to use %PACKAGE-DESCRIPTION-URL
  instead of %GSRC-PACKAGE-LIST-URL.  Adjust recutils field names
  accordingly.
2013-10-09 13:00:00 +02:00
Ludovic Courtès
470d08ffcc Update 'TODO'. 2013-10-09 00:12:46 +02:00
Ludovic Courtès
01eafd38fb gnu: Use the 'patches' field of <origin>.
* gnu/packages/apr.scm,
  gnu/packages/autotools.scm,
  gnu/packages/avahi.scm,
  gnu/packages/cdrom.scm,
  gnu/packages/cmake.scm,
  gnu/packages/cpio.scm,
  gnu/packages/cross-base.scm,
  gnu/packages/emacs.scm,
  gnu/packages/flex.scm,
  gnu/packages/fontutils.scm,
  gnu/packages/glib.scm,
  gnu/packages/grub.scm,
  gnu/packages/guile.scm,
  gnu/packages/idutils.scm,
  gnu/packages/libevent.scm,
  gnu/packages/linux.scm,
  gnu/packages/mail.scm,
  gnu/packages/make-bootstrap.scm,
  gnu/packages/mp3.scm,
  gnu/packages/oggvorbis.scm,
  gnu/packages/pdf.scm,
  gnu/packages/plotutils.scm,
  gnu/packages/qemu.scm,
  gnu/packages/recutils.scm,
  gnu/packages/rush.scm,
  gnu/packages/scheme.scm,
  gnu/packages/system.scm,
  gnu/packages/tcsh.scm,
  gnu/packages/valgrind.scm,
  gnu/packages/vpn.scm,
  gnu/packages/w3m: Use the 'patches' field of <origin> instead of
  adding a patch as input plus using #:patches.
2013-10-09 00:11:34 +02:00
Ludovic Courtès
ac10e0e17e packages: Add 'patches' and related fields to <origin>.
See <https://lists.gnu.org/archive/html/guix-devel/2013-09/msg00137.html>
for the rationale.

* guix/packages.scm (<origin>)[patches, patch-flags, patch-inputs,
  patch-guile]: New fields.
  (%standard-patch-inputs, default-guile, patch-and-repack): New
  procedures.
  (package-source-derivation): When 'patches' is non-empty, call
  'patch-and-repack'.
* guix/utils.scm (file-sans-extension): New procedure.
2013-10-09 00:11:34 +02:00
Andreas Enge
b332e3664e gnu: Add Qt 5.1.1.
* gnu/packages/qt.scm (qt): New variable.
2013-10-08 20:49:58 +02:00
Ludovic Courtès
6666350320 gnu: Add Cairomm.
* gnu/packages/gtk.scm (cairomm): New variable.
2013-10-07 23:45:55 +02:00
Ludovic Courtès
dd8abc295f Update 'AUTHORS'.
* AUTHORS: Add Alex, Joshua, and Aljosha.
2013-10-06 22:57:06 +02:00
Ludovic Courtès
5d388c7c3f Augment 'TODO'. 2013-10-06 22:55:36 +02:00
Ludovic Courtès
17b293a09c gnu: Add alsa-utils.
* gnu/packages/linux.scm (alsa-utils): New variable.
2013-10-06 22:36:43 +02:00
Ludovic Courtès
ae0c12023d gnu: xmlto: Keep references to libxml2, libxslt, and util-linux programs.
* gnu/packages/xml.scm (xmlto): Add 'arguments' field.
  [inputs]: Add libxml2 and libxslt.
2013-10-06 22:36:43 +02:00
Ludovic Courtès
74067e1aeb gnu: Gracefully handle circular dependencies between 'base' and 'linux'.
* gnu/packages/base.scm (linux-libre-headers-boot0): Turn into a thunk.
  User updated.
2013-10-06 22:36:43 +02:00
Andreas Enge
9a6a9dae6f gnu: pari-gp: Update to 2.5.5.
* gnu/packages/algebra.scm (pari-gp): Update to 2.5.5.
2013-10-06 15:40:37 +02:00
Andreas Enge
524e1df65d gnu: mutt: Add input gpgme.
* gnu/packages/mail.scm (mutt): Add input gpgme.
2013-10-06 13:31:02 +02:00
Andreas Enge
09d5c1661c gnu: Add gpgme.
* gnu/packages/gnupg.scm (gpgme): New variable.
2013-10-06 12:16:30 +02:00
Andreas Enge
a2270ce260 gnu: icu4c: Patch RUNPATH of libraries.
* gnu/packages/icu4c.scm (icu4c): Elf-patch RUNPATH of libraries, for instance
    of libicuuc.so.
2013-10-06 11:54:46 +02:00
Andreas Enge
43824910f2 gnu: cdparanoia: Fix links of internal libraries into binary.
* gnu/packages/cdrom.scm (cdparanoia): Use patchelf to link internal libraries
    into binary.
2013-10-06 10:01:02 +02:00
Ludovic Courtès
a5a7d374a1 gnu: Add libsigc++ and glibmm.
* gnu/packages/glib.scm (libsigc++, glibmm): New variable.
2013-10-06 00:24:06 +02:00
Ludovic Courtès
6ac6a6b99e gnu: gobject-introspection: Export via #:export.
* gnu/packages/glib.scm: Export 'gobject-instrospection' via the
  #:export clause.
2013-10-05 23:45:35 +02:00
Joshua S. Grant
daca86660f gnu: Add freeglut, glu, and FTGL.
* gnu/packages/gl.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-10-05 23:21:57 +02:00
Ludovic Courtès
5ccca0044e gnu: ao: Build PulseAudio back-end.
* gnu/packages/oggvorbis.scm (ao): Add PulseAudio as an input.
2013-10-05 17:14:29 +02:00
Ludovic Courtès
cfc8261c72 gnu: oggvorbis: Use #:export clause.
* gnu/packages/oggvorbis.scm: Use #:export clause instead of
  'define-public'.
2013-10-05 17:03:48 +02:00
Ludovic Courtès
09767fb5d3 gnu: pulseaudio: Add dependency on libcap.
* gnu/packages/pulseaudio.scm (pulseaudio): Add dependency on libcap.
2013-10-05 16:52:20 +02:00
Ludovic Courtès
c762e82e5d gnu: Add libcap.
* gnu/packages/linux.scm (libcap): New variable.
2013-10-05 16:47:12 +02:00
Ludovic Courtès
e0029b745a download: Add Debian mirrors.
* guix/download.scm (%mirrors)[debian]: New set of mirrors.
2013-10-05 16:45:39 +02:00
Ludovic Courtès
de73a8781e gnu: gnupg: Upgrade to 2.0.22.
* gnu/packages/gnupg.scm (gnupg): Update to 2.0.22. This release fixes
  security issue CVE-2013-4402 in the OpenPGP packet parser.
2013-10-05 16:02:09 +02:00
Ludovic Courtès
37bfb4488d gnu: Add PulseAudio and related libraries.
* gnu/packages/pulseaudio.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-10-04 22:46:09 +02:00
Ludovic Courtès
37e6cdcdd7 gnu: Add FFTW.
* gnu/packages/algebra.scm (fftw): New variable.
2013-10-04 22:46:09 +02:00
Andreas Enge
bd677c2dba gnu: Add libxkbcommon.
* gnu/packages/qt.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-10-04 19:10:29 +02:00
Andreas Enge
1fd96c6a94 gnu: xorg: Add xcb-util-renderutil.
* gnu/packages/xorg.scm (xcb-util-renderutil): New variable.
2013-10-04 00:36:50 +02:00
Andreas Enge
f5bf403c72 gnu: xorg: Add xcb-util-keysyms.
* gnu/packages/xorg.scm (xcb-util-keysyms): New variable.
2013-10-04 00:17:07 +02:00
Andreas Enge
dfba405510 gnu: xorg: Add xcb-util-image.
* gnu/packages/xorg.scm (xcb-util-image): New variable.
2013-10-04 00:11:06 +02:00
Andreas Enge
458b2a7658 gnu: xorg: Add xcb-util.
* gnu/packages/xorg.scm (xcb-util): New variable.
* gnu/packages/xorg.scm (xcb-util-wm): Expand the description.
2013-10-04 00:02:02 +02:00
Andreas Enge
6ff104d537 gnu: xorg: Add xcb-util-wm.
* gnu/packages/xorg.scm (xcb-util-wm): New variable.
2013-10-03 23:25:04 +02:00
Ludovic Courtès
94c4a58a0a gnu: Add Netcat.
* gnu/packages/system.scm (netcat): New variable.
2013-10-03 23:12:20 +02:00
Ludovic Courtès
aeb7ec5c9a monads: Allow resolution of a monad's bind/return at expansion time.
* guix/monads.scm (<monad>): Turn in a raw SRFI-9 record type.
  (define-monad): New macro.
  (with-monad): Add a case for when MONAD is a macro.
  (identity-return, identity-bind, store-return, store-bind): Inline.
  (%identity-monad, %store-monad): Use 'define-monad'.
* tests/monads.scm ("monad?"): New test.
2013-10-03 23:12:20 +02:00
Ludovic Courtès
d9f0a23704 gnu: vm: Rewrite helper functions as monadic functions.
* gnu/system/dmd.scm (host-name-service, nscd-service, mingetty-service,
  syslog-service, guix-service, static-networking-service): Rewrite as
  monadic functions.
  (dmd-configuration-file): Use 'text-file' instead of
  'add-text-to-store'.
* gnu/system/grub.scm (grub-configuration-file): Rewrite as a monadic
  function.
* gnu/system/linux.scm (pam-services->directory): Likewise.
* gnu/system/shadow.scm (group-file, passwd-file, guix-build-accounts):
  Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm, qemu-image,
  union, system-qemu-image): Likewise.
2013-10-03 23:12:20 +02:00
Ludovic Courtès
b860f38244 Add (guix monads).
* guix/monads.scm: New file.
* tests/monads.scm: New file.
* Makefile.am (MODULES): Add guix/monads.scm.
  (SCM_TESTS): Add tests/monads.scm.
* doc/guix.texi (The Store Monad): New node.
  (The Store): Reference it.
2013-10-03 23:12:20 +02:00
Andreas Enge
c8957c77d6 gnu: libxcb: Enable xcb-xkb.
* gnu/packages/xorg.scm (libxcb): Add configure flag "--enable-xkb".
2013-10-03 22:46:54 +02:00
Andreas Enge
85f5dc1952 gnu: gnome: Add brasero.
* gnu/packages/gnome.scm (brasero): New variable; not totally usable due to
    lacking inputs.
2013-10-03 14:51:49 +02:00
Andreas Enge
bef4dd92e4 gnu: Add hicolor-icon-theme.
* gnu/packages/gnome.scm (hicolor-icon-theme): New variable.
2013-10-02 22:44:02 +02:00
Andreas Enge
7d3f36518d gnu: gnome: Add gnome-icon-theme.
* gnu/packages/gnome.scm (gnome-icon-theme): New variable.
2013-10-02 22:22:21 +02:00
Andreas Enge
27477d2de0 gnu: Add icon-naming-utils.
* gnu/packages/gnome.scm (icon-naming-utils): New variable.
2013-10-02 22:15:00 +02:00
Andreas Enge
535dc6cf95 gnu: Add perl-xml-simple.
* gnu/packages/xml.scm (perl-xml-simple): New variable.
2013-10-02 21:46:44 +02:00
Andreas Enge
22e32e6938 gnu: gnome: Add gsettings-desktop-schemas.
* gnu/packages/gnome.scm (gsettings-desktop-schemas): New variable.
2013-10-02 19:44:55 +02:00
Andreas Enge
1369442be9 gnu: xnee: Drop input gtk+.
* gnu/packages/xnee.scm (xnee): Drop unused input gtk+.
2013-10-02 15:21:17 +02:00
Andreas Enge
f922fc4280 gnu: itstool: Really push the modification announced in 9000d556.
* gnu/packages/glib.scm (itstool): Do as announced in 9000d556.
2013-10-02 14:33:48 +02:00
Andreas Enge
9000d5567c gnu: itstool: Add propagated inputs python-2 and libxml2.
* gnu/packages/glib.scm (itstool): Add propagated input python-2; it is needed
    to rewrite the shebang in the output python script and must be propagated
    so that PYTHONPATH gets set when using itstool; and libxml2, imported as a
    module by the script.
2013-10-02 14:19:44 +02:00
Andreas Enge
90ed6291df gnu: Add libcanberra.
* gnu/packages/libcanberra.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-10-02 13:39:17 +02:00
Andreas Enge
bad312e37d gnu: libvorbis: Propagate input libogg.
* gnu/packages/oggvorbis.scm (libvorbis): Propagate input libogg, as
    stipulated by the pkg-config files.
2013-10-02 13:34:03 +02:00
Andreas Enge
d9c1a22b12 gnu: gnome: Add libnotify.
* gnu/packages/gnome.scm (libnotify): New variable.
2013-10-02 13:19:21 +02:00
Andreas Enge
afc75310d7 gnu: racket: Revert input from gtk+-3 to gtk+-2.
* gnu/packages/scheme.scm (racket): Revert input from gtk+-3 to gtk+-2.
2013-10-02 13:03:29 +02:00
Andreas Enge
0e11254000 gnu: gtk+: Propagate inputs.
* gnu/packages/gtk.scm (gtk+): Propagate inputs at-spi2-atk, libxi and
    libxinerama.
2013-10-01 23:00:03 +02:00
Andreas Enge
8b0275b644 gnu: Revert inputs from gtk+-3 to gtk+-2.
* gnu/packages/cdrom.scm (dvdisaster): Replace input gtk+ by gtk+-2.
* gnu/packages/emacs.scm (emacs): Replace input gtk+ by gtk+-2.
* gnu/packages/geeqie.scm (geeqie): Replace input gtk+ by gtk+-2.
* gnu/packages/gkrellm.scm (gkrellm): Replace input gtk+ by gtk+-2.
* gnu/packages/mp3.scm (ripperx): Replace input gtk+ by gtk+-2.
* gnu/packages/scheme.scm: Drop duplicate inclusion of module gtk.
2013-10-01 21:27:26 +02:00
Andreas Enge
1c8362a89e gnu: gtk+-2: Update to 2.24.21.
* gnu/packages/gtk.scm (gtk+-2): Update to 2.24.21, add inputs perl and
    python.
2013-10-01 20:25:30 +02:00
Andreas Enge
8b79a5472d gnu: Add Gtk+ 3.
* gnu/packages/gtk.scm (gtk+): Switch to version 3.10.0.
* gnu/packages/gtk.scm (gtk+-2): New name for version 2.24.20.
2013-10-01 19:46:45 +02:00
Andreas Enge
fca300c8ea gnu: Drop gtk+-3, erroneously pushed in the previous commit.
* gnu/packages/gtk.scm (gtk+-3): Delete variable.
2013-10-01 00:29:42 +02:00
Andreas Enge
5fda4784f8 gnu: Add at-spi2-atk.
* gnu/packages/gtk.scm (at-spi2-atk): New variable.
2013-10-01 00:26:54 +02:00
Andreas Enge
3b8e434794 gnu: atk: Update to 2.10.0.
* gnu/packages/gtk.scm (atk): Update to 2.10.0.
2013-10-01 00:23:43 +02:00
Andreas Enge
f3fb92e555 gnu: Add at-spi2-core.
* gnu/packages/gtk.scm (at-spi2-core): New variable.
2013-10-01 00:08:45 +02:00
Andreas Enge
a459697e0e gnu: libxi: Propagate inputs inputproto and libx11.
* gnu/packages/xorg.scm (libxi): Propagate inputs inputproto and libx11,
    as stipulated by xi.pc.
2013-09-30 23:35:01 +02:00
Andreas Enge
d274f499a3 gnu: glib: Update to 2.38.0.
* gnu/packages/glib.scm (glib): Update to 2.38.0 and drop rewriting of GTESTER.
* gnu/packages/patches/glib-tests-homedir.patch: Update patch for 2.38.0.
* gnu/packages/patches/glib-tests-desktop.patch: Update patch for 2.38.0 and
    drop test dbus-appinfo.
2013-09-30 22:19:35 +02:00
Cyril Roelandt
9ceb630c58 gnu: Add gobject-introspection.
* gnu/packages/glib.scm (gobject-introspection): New variable.
2013-09-29 23:22:42 +02:00
Ludovic Courtès
ecfb69938a gnu: git: Add graphical tools to the "gui" output.
* gnu/packages/version-control.scm (git): Add "gui" output.  Add Tcl/Tk
  as inputs.  Add #:configure-flags.  Augment 'split' phase to handle
  graphical user interfaces.
2013-09-29 21:55:41 +02:00
Ludovic Courtès
0a5a1db2d4 gnu: git: Do not retain reference from "out" to Subversion.
* gnu/packages/version-control.scm (git): Wrap 'git-svn', not 'git', for
  PERL5LIB and LD_LIBRARY_PATH.
2013-09-29 21:18:53 +02:00
Aljosha Papsch
29a2ccd384 Add httpd
* gnu/packages/web.scm (httpd): New variable
* gnu-system.am (GNU_SYSTEM_MODULES): Add it

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-09-29 21:04:59 +02:00
Ludovic Courtès
ab4fab1938 gnu: bzip2: Allow cross-compilation.
Reported by Nikita Karetnikov <nikita@karetnikov.org>.

* gnu/packages/compression.scm (bzip2): Add 'set-cross-environment'
  phase for cross-compilation.
2013-09-29 17:30:48 +02:00
Ludovic Courtès
ed5f49ff0c gnu: git: Add "svn" output for 'git-svn'.
* gnu/packages/version-control.scm (git): Add SUBVERSION as an input.
  Add 'split' phase.
2013-09-29 17:30:41 +02:00
Ludovic Courtès
8b2fe7853d gnu: subversion: Install Perl bindings.
* gnu/packages/version-control.scm (subversion): Add
  'install-perl-bindings' phase.
2013-09-29 17:30:30 +02:00
Ludovic Courtès
832e64bdda gnu: Add SWIG.
* gnu/packages/swig.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-09-29 17:30:24 +02:00
Ludovic Courtès
7dac2f2e3e gnu: libmicrohttpd: Update to 0.9.30.
* gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.30.
2013-09-29 14:46:20 +02:00
Ludovic Courtès
2aa76ee14a gnu: flex: Use Bison 2.7 for tests.
* gnu/packages/bison.scm (bison): Move FLEX to 'inputs', and remove the
  hack that turned off its test suite.
* gnu/packages/flex.scm (flex): Add 'bison-for-tests' in 'inputs', and
  use that to run the tests.
2013-09-29 12:44:25 +02:00
Ludovic Courtès
9546640ecc Update 'pt_BR.po'. 2013-09-29 11:29:27 +02:00
Ludovic Courtès
02d8d9c887 gnu: Add Skribilo.
* gnu/packages/skribilo.scm (skribilo): New variable.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-09-28 22:43:48 +02:00
Ludovic Courtès
8e70e6d276 gnu: Add Guile-Cairo.
* gnu/packages/gtk.scm (guile-cairo): New variable.
2013-09-28 21:42:02 +02:00
Ludovic Courtès
e0d2d05284 gnu: xorriso: Update to 1.3.2.
* gnu/packages/cdrom.scm (xorriso): Update to 1.3.2.
2013-09-28 16:36:39 +02:00
Ludovic Courtès
34d02e6d11 gnu: lightning: Update to 2.0.1.
* gnu/packages/lightning.scm (lightning): Update to 2.0.1.
2013-09-28 16:35:11 +02:00
Ludovic Courtès
8c9a63f1ad gnu: freeipmi: Update to 1.3.2.
* gnu/packages/freeipmi.scm (freeipmi): Update to 1.3.2.
2013-09-28 16:30:20 +02:00
Ludovic Courtès
dc26f0c9ce gnu: gdb: Update to 7.6.1.
* gnu/packages/gdb.scm (gdb): Update to 7.6.1.
2013-09-28 16:29:52 +02:00
Ludovic Courtès
55f0336630 gnu: bison: Update to 3.0.
* gnu/packages/bison.scm (bison): Update to 3.0.  Make Perl a native
  input.  Add a variant of Flex as a native input.  Use #:export instead
  of 'define-public'.
* gnu/packages/flex.scm (flex): Use #:export instead of 'define-public'.
2013-09-27 22:06:38 +02:00
Ludovic Courtès
d6f10ca3fe gnu: units: Update to 2.02.
* gnu/packages/maths.scm (units): Update to 2.02.
2013-09-27 22:05:08 +02:00
Ludovic Courtès
b16b7a0666 gnu: texinfo: Update to 5.2.
* gnu/packages/texinfo.scm (texinfo): Update to 5.2.
2013-09-27 22:02:50 +02:00
Ludovic Courtès
09d80ed583 gnu: global: Update to 6.2.9.
* gnu/packages/global.scm (global): Update to 6.2.9.
2013-09-27 22:00:30 +02:00
Ludovic Courtès
07ef14afc9 build: Bump version to 0.5.
* configure.ac: Switch to 0.5.
2013-09-27 21:10:20 +02:00
Ludovic Courtès
f887601ac8 gnu: guix: Update to 0.4.
* gnu/packages/package-management.scm (guix): Update to 0.4.
  (guix-0.4): Remove.
* gnu/system/vm.scm (qemu-image, system-qemu-image): Use GUIX instead of
  GUIX-0.4.
2013-09-27 21:09:02 +02:00
Ludovic Courtès
867e3c5553 gnu: vm: Remove erroneous store reference.
* gnu/system/vm.scm (system-qemu-image): Remove reference from BOOT to
  MINGETTY since MINGETTY may not be valid yet.
2013-09-27 21:06:35 +02:00
Ludovic Courtès
81bb9b6665 Update '.po' files. 2013-09-27 14:32:16 +02:00
Ludovic Courtès
9f84f12fde gnu: vm: Add more packages to the profile.
* gnu/system/vm.scm (system-qemu-image): Add grep, sed, and Findutils to
  the profile.
2013-09-27 13:50:15 +02:00
Nikita Karetnikov
ba7ea5ce33 doc: Fix typos.
* doc/guix.texi: Fix typos.
2013-09-27 08:22:02 +00:00
Ludovic Courtès
bb5f01c55d Update 'NEWS'. 2013-09-27 08:44:55 +02:00
Ludovic Courtès
5c413a9cbc gnu: module-init-tools: Remove reference to unavailable man page tarball.
Fixes <http://bugs.gnu.org/15187>.
Reported by Mark H. Weaver <mhw@netris.org>.

* gnu/packages/linux.scm (module-init-tools): Remove reference to
  Gentoo's pre-built man pages and 'unpack-man-pages' phase.  Add
  'fake-docbook' phases.
2013-09-27 08:41:19 +02:00
Ludovic Courtès
6bf3e5f72d Update 'NEWS'. 2013-09-27 01:50:59 +02:00
Ludovic Courtès
f312d5430e gnu: guix: Remove warning about 0.4 hack.
* gnu/packages/package-management.scm (guix-0.4): Remove warning.
2013-09-27 01:39:52 +02:00
Ludovic Courtès
2442257f2d Merge branch 'core-updates' 2013-09-27 01:30:57 +02:00
Ludovic Courtès
1bb9900a2a doc: Link from "guix gc" to '--delete-generations'.
* doc/guix.texi (Invoking guix package): Mention that deleting
  generations prevents roll-back.
  (Invoking guix gc): Link to '--delete-generations'.
2013-09-27 01:26:26 +02:00
Ludovic Courtès
d7ddb257c9 guix package: '--delete-generations' deletes generations older than specified.
* guix/scripts/package.scm (matching-generations): Add
  'duration-relation' keyword parameter.
  (guix-package)[process-action](delete-generations): Pass
  #:duration-relation >.
* tests/guix-package.sh: Add test.
* doc/guix.texi (Invoking guix package): Clarify the meaning of
  durations for '--list-durations' and '--delete-durations'.
2013-09-27 01:23:59 +02:00
Ludovic Courtès
03f4ef28b1 tests: Fix typo.
* tests/guix-package.sh: Add missing "-p" option.
2013-09-27 01:07:37 +02:00
Ludovic Courtès
5b16ff0985 gnu: vm: Add a few packages to the default profile.
* gnu/system/vm.scm (system-qemu-image): Add procps, psmisc, and Zile to
  the default profile.  Increase the image size to 550 MiB.
2013-09-27 00:46:18 +02:00
Ludovic Courtès
87eb734d38 gnu: dmd: Make the 'networking' service slightly more robust.
* gnu/system/dmd.scm (static-networking-service)[start]: Sleep before
  running 'route', to leave time for the interface to come up.
  [stop]: Run "route del -net default".
2013-09-27 00:46:18 +02:00
Ludovic Courtès
17886b3022 gnu: vm: Set the right permissions and ownership on directories.
* gnu/system/vm.scm (qemu-image): Change the store's mode to #o1775.
  Support 'populate' clauses that specify a UID and GID.
  (system-qemu-image): Make sure /nix/store has owner 'root' and group
  'guixbuild'.  Set the right owner for /home/guest.  Create
  /var/nix/profiles/per-user/{root,guest}.
2013-09-27 00:46:18 +02:00
Ludovic Courtès
fbd1c3e95b gnu: linux-initrd: Mount /tmp as a tmpfs.
* gnu/packages/linux-initrd.scm (gnu-system-initrd): Make sure /root/tmp
  exists; mount it as a tmpfs.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
d0c66871b1 gnu: vm: Add build users.
* gnu/system/shadow.scm (guix-build-accounts): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.  Add the "guixbuild"
  group.
* gnu/system/dmd.scm (guix-service): Add 'builder-group' parameter.
  Pass 'guix-daemon' the '--build-users-group' option.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
3abf9b440b gnu: vm: Add /etc/{services,protocols,rpc} to the image.
* gnu/system/vm.scm (system-qemu-image): Link
  /etc/{services,protocols,rpc}.  Add net-base as an input.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
dadee6cd6e Run 'guix' with '--no-auto-compile'.
* scripts/guix.in: Change '-s' to '--no-auto-compile'.  This avoids
  annoying messages about auto-compilation, and avoids permission denied
  issues when running without write access in the usual places.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
8bc755c08c gnu: vm: Add a 'guest' account.
* gnu/system/vm.scm (system-qemu-image): Add a "guest" user and a
  "users" user group.  Make /home/guest.  Add /etc/group.  Update
  /etc/issue to mention it.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
16a0e9dc34 gnu: shadow: Add record type for user groups.
* gnu/system/shadow.scm (<user-group>): New record type.
  (group-file): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
bacadb026c gnu: shadow: Add record type for user accounts.
* gnu/system/shadow.scm (<user-account>): New record type.
  (passwd-file): Use it.
* gnu/system/vm.scm (system-qemu-image): Adjust accordingly.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
c773aba870 gnu: Add net-base.
* gnu/packages/system.scm (net-base): New variable.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
03761a4465 build-system/trivial: Take the 'source' field into account.
* guix/build-system/trivial.scm (trivial-build): When SOURCE is true,
  add it to INPUTS.
  (trivial-cross-build): Likewise.
* tests/packages.scm ("trivial with source"): New test.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
59c5c4dee1 gnu: vm: Set the default networking route.
* gnu/system/dmd.scm (static-networking-service): Add #:gateway
  parameter and honor it.
* gnu/system/vm.scm (system-qemu-image): Pass #:gateway to
  'static-networking-service'.
2013-09-27 00:46:17 +02:00
Ludovic Courtès
85e0dc6a6b gnu: Add net-tools.
* gnu/packages/linux.scm (net-tools): New variable.
2013-09-27 00:46:16 +02:00
Ludovic Courtès
d08213980c gnu: dmd: Download from alpha.gnu.org.
* gnu/packages/system.scm (dmd): Use the alpha.gnu.org URL.
2013-09-27 00:46:16 +02:00
Andreas Enge
b2f0005aad gnu: harfbuzz: Update to 0.9.21.
* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.21.
2013-09-26 18:44:31 +02:00
Andreas Enge
c1cab15a54 gnu: Add dvdisaster.
* gnu/packages/cdrom.scm (dvdisaster): New variable.
2013-09-26 18:26:44 +02:00
Nikita Karetnikov
b7884ca3ca guix package: Add '--delete-generations'.
* guix/scripts/package.scm (switch-to-previous-generation): New function.
  (roll-back): Use the new function instead of 'switch-link'.
  (show-help): Add '--delete-generations'.
  (%options): Likewise.
  (guix-package)[process-actions]: Add 'current-generation-number',
  'display-and-delete', and 'delete-generation'.  Add support for
  '--delete-generations', and reindent the code.
* tests/guix-package.sh: Test '--delete-generations'.
* doc/guix.texi (Invoking guix-package): Document '--delete-generations'.
2013-09-26 15:41:43 +00:00
Nikita Karetnikov
64d2e973fb guix package: Add 'link-to-empty-profile'.
* guix/scripts/package.scm (link-to-empty-profile): New function.
  (roll-back): Use it.
2013-09-26 15:41:43 +00:00
Nikita Karetnikov
4658b2c47b guix package: Exit with 0 when there is nothing to list.
* guix/scripts/package.scm (guix-package)[process-query]: Exit with 0
  when there are no generations containing packages or no profiles.
2013-09-26 15:41:43 +00:00
Andreas Enge
c9cb0825c9 gnu: xf86-input-joystick: Fix installation path.
* gnu/packages/xorg.scm (xf86-input-joystick): Fix installation path.
2013-09-26 17:33:33 +02:00
Andreas Enge
36c0d43000 gnu: xf86-input-vmmouse: Fix installation path.
* gnu/packages/xorg.scm (xf86-input-vmmouse): Fix installation path.
2013-09-26 16:29:28 +02:00
Andreas Enge
de9c504697 gnu: xf86-input-synaptics: Fix installation paths.
* gnu/packages/xorg.scm (xf86-input-synaptics): Fix installation paths.
2013-09-26 16:23:36 +02:00
Ludovic Courtès
7facbf2b58 Merge branch 'master' into core-updates 2013-09-26 00:20:11 +02:00
Ludovic Courtès
834b5c8076 gnu: zile: Fix references to /bin/sh.
* gnu/packages/zile.scm (zile): Add 'patch-/bin/sh' phase.  Move Perl
  and help2man to 'native-inputs'.
2013-09-26 00:15:51 +02:00
Ludovic Courtès
349746dfcd gnu: vm: Add nscd service.
* gnu/system/dmd.scm (nscd-service): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.  Make /var/run/nscd.
2013-09-26 00:07:42 +02:00
Ludovic Courtès
de8bcdaeb5 packages: Make the 'output' parameter of 'package-output' optional.
* guix/packages.scm (package-output): Make the 'output' parameter
  optional.
2013-09-25 23:26:42 +02:00
Ludovic Courtès
f83e943fe7 gnu: vm: Add 'networking' service.
* gnu/system/vm.scm (system-qemu-image): Use
  'static-networking-service'.  Add /etc/resolv.conf.  Add Inetutils to
  the profile.
* gnu/system/dmd.scm (static-networking-service): New procedure.
2013-09-25 23:26:08 +02:00
Ludovic Courtès
27cab84c6d gnu: vm: Register the profile as a GC root.
* gnu/system/vm.scm (system-qemu-image): Register PROFILE as a GC root.
2013-09-25 23:05:33 +02:00
Ludovic Courtès
ba47851fac gnu: vm: Add 'host-name' service.
* gnu/system/dmd.scm (host-name-service): New procedure.
  (mingetty-service): Require the 'host-name' service.
* gnu/system/vm.scm (system-qemu-image): Add the 'host-name' service.
  Set PS1 in /etc/bashrc to something sensible.
2013-09-25 21:49:22 +02:00
Ludovic Courtès
43a2779876 gnu: vm: Add /etc/issue and a motd.
* gnu/system/vm.scm (system-qemu-image): Build a 'motd' and an 'issue'
  file.  Pass 'unix-pam-service' that motd.  Have /etc/issue point to
  the 'issue' file.
2013-09-25 21:47:10 +02:00
Ludovic Courtès
d09cb44967 Update 'eo.po'. 2013-09-25 21:25:47 +02:00
Ludovic Courtès
d5d0f286a2 gnu: vm: Change #:populate to a list of directives.
* gnu/system/vm.scm (qemu-image): Change 'populate' parameter to be a
  list of directives.
  (system-qemu-image): Adjust accordingly.
2013-09-25 18:58:25 +02:00
Ludovic Courtès
25eb16bf3b gnu: vm: Add more ttys.
* gnu/system/vm.scm (system-qemu-image): Add more ttys.
2013-09-25 18:58:25 +02:00
Ludovic Courtès
65d195e140 gnu: vm: Change GRUB label.
* gnu/system/vm.scm (system-qemu-image): Change GRUB label.
2013-09-25 18:58:25 +02:00
Ludovic Courtès
0b86a82dc7 gnu: vm: Make a union of the visible packages; add /etc/profile.
* gnu/system/vm.scm (qemu-image): Add Guix as an input when
  INITIALIZE-STORE?.
  (union): New procedure.
  (system-qemu-image): Use it.  Build /etc/profile.  Pass PROFILE among
  #:inputs-to-copy instead of listing all the individual profiles.
  Remove explicit 'build-derivations' call.
2013-09-25 18:58:25 +02:00
Ludovic Courtès
37c58656eb gnu: vm: Support derivation objects as inputs.
* gnu/system/vm.scm (expression->derivation-in-linux-vm)[input-alist]:
  Add case for derivation? objects.
  Same for #:inputs values.
  (qemu-image)[input->name+derivation]: Likewise.
2013-09-25 18:58:25 +02:00
Ludovic Courtès
8f37bf6200 Update 'NEWS'. 2013-09-25 18:58:25 +02:00
Nikita Karetnikov
9ac9360d6e guix package: Show which generation is the current one.
* guix/scripts/package.scm (guix-package)[process-query]: Show that a
  generation is the current one if the profile points to it.
* tests/guix-package.sh: Test it.
2013-09-25 16:10:40 +00:00
Nikita Karetnikov
aad5af9f40 tests: Use 'test -z' to check that a string equals zero. 2013-09-25 16:09:50 +00:00
Nikita Karetnikov
4b2bc804d8 guix package: Do not list the zeroth generation.
* guix/scripts/package.scm (guix-package)[process-query]: Change
  'list-generation' to not list the zeroth generation.
* tests/guix-package.sh: Test it.
* doc/guix.texi (Invoking guix package): Document it, and use the
  right term when talking about generations.
2013-09-25 16:08:39 +00:00
Nikita Karetnikov
0ab212b946 guix package: Exit with 1 when a generation cannot be listed.
* guix/scripts/package.scm (guix-package)[process-query]: Exit with 1
  when a generation does not exist or the profile points to the zeroth
  generation.
* tests/guix-package.sh: Test the former case.
2013-09-25 16:07:50 +00:00
Andreas Enge
98fbd7ceeb gnu: libksba: Update to 1.3.0.
* gnu/packages/gnupg.scm (libksba): Update to 1.3.0.
2013-09-25 13:46:34 +02:00
Andreas Enge
24f3e788d0 gnu: libgcrypt: Update to 1.5.3
* gnu/packages/gnupg.scm (libgcrypt): Update to 1.5.3.
2013-09-25 13:43:20 +02:00
Andreas Enge
f1be806183 gnu: gnupg: Update to 2.0.21.
* gnu/packages/gnupg.scm (gnupg): Update to 2.0.21.
2013-09-25 11:52:33 +02:00
Andreas Enge
78c7e3449f gnu: pspp: Update to 0.8.1.
* gnu/packages/maths.scm (pspp): Update to 0.8.1.
2013-09-25 11:08:16 +02:00
Andreas Enge
b972db7275 gnu: fontconfig: Add and register gs-fonts.
* gnu/packages/fontutils.scm (fontconfig): Add gs-fonts as an input and
    register it in the configuration file; so any porgram using fontconfig
    should at least have the gs-fonts at its disposal.
2013-09-25 09:48:13 +02:00
Ludovic Courtès
1fa49a2c46 gnu: m4: Upgrade to 1.4.17.
* gnu/packages/m4.scm (m4): Upgrade to 1.4.17.  Remove
  'm4-s_isdir.patch' and 'm4-gets-undeclared.patch'.
* gnu/packages/patches/m4-s_isdir.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2013-09-25 00:39:19 +02:00
Ludovic Courtès
f1dfb7c47c gnu: guix: Rework 0.4 hack to gracefully handle lack of tarball.
* gnu/packages/package-management.scm (guix-0.4): Fall back to the
  source of GIUX when the tarball doesn't exist.
2013-09-25 00:13:06 +02:00
Ludovic Courtès
9fcc355529 gnu: vm: Add a service for the Guix daemon.
* gnu/system/dmd.scm (guix-service): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.
2013-09-24 23:40:50 +02:00
Ludovic Courtès
30f25b033c gnu: vm: Initialize the image's store.
* gnu/system/vm.scm (qemu-image): Add 'initialize-store?' keyword
  parameter.  Use 'guix-register' when INITIALIZE-STORE? is true.
  (system-qemu-image): Pass #:initialize-store? #t.
2013-09-24 23:40:50 +02:00
Ludovic Courtès
2d195e6775 gnu: guix: Set $localstatedir; add gzip as input.
* gnu/packages/package-management.scm (guix): Add "--localstatedir=/var".
  Add GZIP as an explicit input, to avoid referring to the final gzip.
2013-09-24 23:40:50 +02:00
Ludovic Courtès
923206f79b guix-register: Allow the initial directory creation to proceed.
This fixes a bug whereby 'guix-register' would bail out when trying to
create NIX_STORE_DIR/.links when NIX_STORE_DIR is read-only.

* nix/guix-register/guix-register.cc (parse_opt): Initialize
  'settings.nixStore' to PREFIX + NIX_STORE_DIR.
  (main): Change 'settings.nixStore' once the 'LocalStore' has been
  instantiated.
2013-09-24 23:40:49 +02:00
Ludovic Courtès
9d3c4daed3 gnu: racket: Add dependency on GTK+.
* gnu/packages/scheme.scm (racket): Add dependency on GTK+ and
  gdk-pixbuf.
2013-09-24 23:40:49 +02:00
Andreas Enge
2365338b18 gnu: xorg: Fix xorg-server.
* gnu/packages/xorg.scm (xkbcomp-intermediate): New variable, serves as
    input to xkeyboard-config.
* gnu/packages/xorg.scm (xkeyboard-config): Add input xkbcomp-intermediate.
* gnu/packages/xorg.scm (xkbcomp): Add input xkeyboard-config.
* gnu/packages/xorg.scm (xorg-server): Adapt xkb paths and replace references
    to /bin/sh (with Ludovic Courtès <ludo@gnu.org>).
2013-09-24 21:56:33 +02:00
Ludovic Courtès
caf96debc2 guix-register: Expect closures to refer to the original store.
* nix/guix-register/guix-register.cc (prefix): New variable.
  (parse_opt): Use it.
  (register_validity): Change 'info.path' to the final store name.
  Hash the final under its real path.
* tests/guix-register.sh: Adjust the contents of $closure accordingly.
  Rename 'NIX_LOCALSTATE_DIR' to 'NIX_STATE_DIR'.  Don't try to call
  'valid-path?'.  Add test using 'sqlite3'.
2013-09-23 23:56:35 +02:00
Alex Sassmannshausen
a4141d6d53 list-packages: Progressive Enhancement approach to JS.
* build-aux/list-packages.scm (package->sxml): Add parameters previous,
  description-ids and remaining, update docstring accordingly. Introduce logic
  for fold-values process.
  (insert-tr): Moved sxml package table-row generation to new function; remove
  <a> elements and JS function calls. These are created through JS
  (prep_pkg_descs). Add insert-js-call for every 15th package, and the last.
  (insert-js-call): New function.
  (packages->sxml): Change map to fold values; add init params.
  (insert-js): show_hide: add compatibility check, introduce, use thingLink
               prep: new JS function.
               bulk_show_hide: new JS function.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-09-23 17:49:39 +02:00
Andreas Enge
4fd6bf5337 gnu: mutt: Add SASL for authenticated SMTP.
* gnu/packages/mail.scm (mutt): Add input cyrus-sasl.
2013-09-23 12:50:59 +02:00
Ludovic Courtès
5608847c6f Merge branch 'master' into core-updates 2013-09-23 00:35:17 +02:00
Ludovic Courtès
f59e9eaac8 build: check-available-binaries: Adjust to derivation API change.
* build-aux/check-available-binaries.scm: Use 'derivation->output-path'
  instead of 'derivation-path->output-path'.
2013-09-23 00:33:50 +02:00
Ludovic Courtès
48e488eb2c nar: Fix file descriptor leak when writing a Nar.
* guix/nar.scm (write-contents)[call-with-binary-input-file]: Always
  close PORT.
2013-09-23 00:33:50 +02:00
Ludovic Courtès
f566d765a1 doc: Document '--list-generations' among the query options.
* doc/guix.texi (Invoking guix package): Move '--list-generations' below
  "In addition to these actions".
2013-09-23 00:33:50 +02:00
Ludovic Courtès
bd9bde1cba guix package: Show most recently installed packages last.
Suggested by Andreas Enge <andreas@enge.fr>.

* guix/scripts/package.scm (guix-package)[list-generations,
  list-installed]: Reverse the result of 'manifest-packages'.
* doc/guix.texi (Invoking guix package): Document the order of packages
  for '--list-generations' and '--list-installed'.
2013-09-23 00:33:50 +02:00
Ludovic Courtès
a7a4e6a4f7 Add 'guix-register'.
* nix/guix-register/guix-register.cc, tests/guix-register.sh: New
  files.
* Makefile.am (SH_TESTS)[BUILD_DAEMON]: Add tests/guix-register.sh.
* daemon.am (sbin_PROGRAMS, guix_register_SOURCES,
  guix_register_CPPFLAGS, guix_register_LDADD): New variables.
* test-env.in: Export 'storedir', 'prefix', 'datarootdir', 'datadir',
  and 'localstatedir'.
2013-09-23 00:33:50 +02:00
Ludovic Courtès
996ed6acd5 build: Build the daemon with -Wall.
* daemon.am (AM_CXXFLAGS): New variable.
2013-09-23 00:33:50 +02:00
Andreas Enge
13f04f48d0 gnu: Add mutt.
* gnu/packages/mail.scm (mutt): New variable.
2013-09-22 22:30:18 +02:00
Andreas Enge
d983a14f81 gnu: Add fetchmail.
* gnu/packages/mail.scm (fetchmail): New variable.
2013-09-22 21:56:36 +02:00
Andreas Enge
1fdd3ee2a6 gnu: Rename module mailutils to mail.
* gnu/packages/mail.scm: Rename from gnu/packages/mailutils.scm.
* gnu-system.am: Rename the module.
2013-09-22 21:01:40 +02:00
Andreas Enge
995b726131 gnu: Add gnome-doc-utils.
* gnu/packages/gnome.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-09-22 17:53:01 +02:00
Andreas Enge
477c91ce73 gnu: Add gst-plugins-base.
* gnu/packages/gstreamer.scm (gst-plugins-base): New variable.
2013-09-22 17:25:12 +02:00
Andreas Enge
144f9f251d gnu: gstreamer: Depend on python-wrapper.
* gnu/packages/gstreamer.scm (gstreamer): Replace input python by
    python-wrapper.
2013-09-22 16:41:29 +02:00
Andreas Enge
22885fb845 gnu: Add gstreamer.
* gnu/packages/gstreamer.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-09-22 16:22:00 +02:00
Andreas Enge
93be8dc4c9 gnu: xcursor-themes: Install data into package output directory.
* gnu/packages/xorg.scm (xcursor-themes): Install icons into output directory
    instead of libxcursor.
2013-09-22 11:16:08 +02:00
Andreas Enge
421a80a2b2 gnu: Add python2-pyicu.
* gnu/packages/python.scm (python2-pyicu): New variable.
2013-09-22 09:44:49 +02:00
Ludovic Courtès
99882c613c guix package: Sort the list of generation numbers in '--list-generations'.
* guix/scripts/package.scm (generation-numbers): Sort the result.
2013-09-21 22:35:14 +02:00
Ludovic Courtès
4d497632ce guix package: Internationalize "Generation" string.
* guix/scripts/package.scm (guix-package): Internationalize generation
  listing.
2013-09-21 22:32:20 +02:00
Ludovic Courtès
35aee909f7 Thank Cyrill. 2013-09-21 22:16:26 +02:00
Ludovic Courtès
3b627eac48 pull: Adjust to 'derivation' API change.
Fixes <http://bugs.gnu.org/15428>.
Reported by Cyrill Schenkel <cyrill.schenkel@gmail.com>.

* guix/scripts/pull.scm (guix-pull): 'unpack' returns a single value.
2013-09-21 22:16:26 +02:00
Andreas Enge
0352532e6a gnu: Add python-simplejson, python2-simplejson.
* gnu/packages/python.scm (python-simplejson, python2-simplejson):
    New variables.
2013-09-21 21:14:19 +02:00
Ludovic Courtès
ed0cdf837d gnu: python2-pysqlite: Fix 'license'.
* gnu/packages/python.scm (python2-pysqlite): Refer to (@ (guix
  licenses) zlib), not to the same-named package.
2013-09-21 01:59:46 +02:00
Ludovic Courtès
4646e30a7a gnu: QEMU images boots into dmd.
* gnu/system/dmd.scm: New file.
* gnu/system/vm.scm (system-qemu-image): Define dmd services.
  [populate]: Make var/log and etc/group.
  [boot]: Execute dmd directly.
  Add dmd and etc-group as inputs; add the inputs of dmd services.
* gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/system/dmd.scm.
2013-09-21 01:09:06 +02:00
Ludovic Courtès
f15164e791 gnu: Add GNU dmd.
* gnu/packages/system.scm (dmd): New variable.
2013-09-21 01:09:06 +02:00
Nikita Karetnikov
2cd09108c9 guix package: Add '--list-generations'.
* guix/scripts/package.scm: Import (srfi srfi-19).
  (generation-time, matching-generations): New functions.
  (show-help): Add '--list-generations'.
  (%options): Likewise.
  (guix-package)[process-query]: Add support for '--list-generations'.
* guix/ui.scm: Import (srfi srfi-19) and (ice-9 regex).
  (string->generations, string->duration): New functions.
* tests/guix-package.sh: Test '--list-generations'.
* tests/ui.scm: Import (srfi srfi-19).
  Test 'string->generations' and 'string->duration'.
* doc/guix.texi (Invoking guix-package): Document '--list-generations'.
2013-09-19 11:22:31 +00:00
Andreas Enge
0c456db45b gnu: isl: Update urls.
* gnu/packages/gcc.scm (isl): Update source and home page url.
2013-09-19 09:14:23 +02:00
Ludovic Courtès
72d9148fbf hydra: Pass the directory name of the Nix checkout.
* build-aux/hydra/guix.scm (hydra-jobs): Extract the 'file-name' item
  from NIX-CHECKOUT, and pass that to 'tarball-package'.
2013-09-18 23:07:45 +02:00
Ludovic Courtès
1210c32ecc hydra: Fix typo.
* build-aux/hydra/guix.scm (tarball-package): Unquote 'nix-checkout'.
2013-09-18 20:58:49 +02:00
Ludovic Courtès
97d010b7f8 hydra: Add missing import.
* build-aux/hydra/gnu-system.scm, build-aux/hydra/guix.scm: Use (guix
  derivations).
2013-09-18 20:49:47 +02:00
Ludovic Courtès
3301f17970 hydra: Return the .drv file names, not the <derivation> objects.
* build-aux/hydra/gnu-system.scm (package->alist): Call
  'derivation-file-name' on the result of 'package-derivation'.
* build-aux/hydra/guix.scm (package->alist): Likewise.
2013-09-18 19:37:50 +02:00
Ludovic Courtès
37c0ce3d27 hydra: Point the Git submodule to our local copy.
* build-aux/hydra/guix.scm (tarball-package): Add 'nix-checkout'
  parameter.  Replace 'patch-bootstrap-script' phase by
  'set-nix-module'.
  (hydra-jobs): Get the 'nix' value from ARGUMENTS, and pass it to
  'tarball-package'.
2013-09-18 19:00:13 +02:00
Ludovic Courtès
59688fc4b5 derivations: 'derivation' and related procedures return a single value.
* guix/derivations.scm (derivation->output-path,
  derivation->output-paths): New procedures.
  (derivation-path->output-path): Use 'derivation->output-path'.
  (derivation-path->output-paths): Use 'derivation->output-paths'.
  (derivation): Accept 'derivation?' objects as inputs.  Return a single
  value.
  (build-derivations): New procedure.
  (compiled-modules): Use 'derivation->output-paths'.
  (build-expression->derivation)[source-path]: Add case for when the
  input matches 'derivation?'.
  [prologue]: Accept 'derivation?' objects in INPUTS.
  [mod-dir, go-dir]: Use 'derivation->output-path'.
* guix/download.scm (url-fetch): Adjust to the single-value return.
* guix/packages.scm (package-output): Use 'derivation->output-path'.
* guix/scripts/build.scm (guix-build): When the argument is
  'derivation-path?', pass it through 'read-derivation'.
  Use 'derivation-file-name' to print out the .drv file names, and to
  register them.  Use 'derivation->output-path' instead of
  'derivation-path->output-path'.
* guix/scripts/package.scm (roll-back): Adjust to the single-value
  return.
  (guix-package): Use 'derivation->output-path'.
* guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?'
  objects instead of .drv file names.
* gnu/system/grub.scm (grub-configuration-file): Use
  'derivation->output-path' instead of 'derivation-path->output-path'.
* gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise.
* tests/builders.scm, tests/derivations.scm, tests/packages.scm,
  tests/store.scm, tests/union.scm: Adjust to the new calling
  convention.
* doc/guix.texi (Defining Packages, The Store, Derivations): Adjust
  accordingly.
2013-09-18 18:49:53 +02:00
Ludovic Courtès
81b66f8567 tests: Clarify filtering of the "debug" output.
* tests/guix-package.sh: Clearly filter out the "debug" output of
  'gnu-make-boot0'.
2013-09-18 16:42:51 +02:00
Ludovic Courtès
07c86312ca derivations: Add a nicer printer.
* guix/derivations.scm (<derivation>): Add a printer.
2013-09-18 11:10:02 +02:00
Ludovic Courtès
6a446d5680 derivations: Keep the .drv file name in <derivation> objects.
* guix/derivations.scm (<derivation>): Add 'file-name' field.
  (%read-derivation): Use (port-filename DRV-PORT) as the file name for
  the result.
  (derivation): Set the 'file-name' field in the result.
* tests/derivations.scm ("build derivation with 1 source"): Assert that
  'derivation-file-name' returns the right thing.
2013-09-17 23:02:13 +02:00
Ludovic Courtès
803704418c gnu: dbus: Add dependency on libX11.
* gnu/packages/glib.scm: Use #:export instead of 'define-public'.
  (dbus): Add LIBX11 as an input.
2013-09-16 21:39:07 +02:00
Ludovic Courtès
692b93408f gnu: glibc: Fix 'ldd' on x86_64.
Reported by Cyril Roelandt at
<https://lists.gnu.org/archive/html/guix-devel/2013-09/msg00136.html>.

* gnu/packages/patches/glibc-ldd-x86_64.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc): Use it.
2013-09-15 23:37:32 +02:00
Ludovic Courtès
66018f1c33 utils: 'find-files' returns a sorted list.
* guix/build/utils.scm (find-files): Sort the result lexicographically.
* guix/scripts/pull.scm (unpack): Don't sort the result of 'find-files'.
2013-09-15 23:21:30 +02:00
Andreas Enge
aae4ead814 Merge branch 'python' 2013-09-14 10:45:01 +02:00
Ludovic Courtès
29479de565 substitute-binary: Add '--help'.
Reported by Nikita Karetnikov <nikita@karetnikov.org>.

* guix/scripts/substitute-binary.scm (show-help): New procedure.
  (guix-substitute-binary): Add '--help'.
2013-09-13 23:42:36 +02:00
Ludovic Courtès
0cb9b45674 gnu: gnutls: Upgrade to 3.2.4.
* gnu/packages/gnutls.scm (gnutls): Update to 3.2.4; remove 'arguments'
  field, remove "patch/fix-tests" from the inputs.
* gnu/packages/patches/gnutls-fix-tests-on-32-bits-system.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
2013-09-13 16:26:59 +02:00
Andreas Enge
2875caf5b5 gnu: Add python2-mechanize.
* gnu/packages/python.scm (python2-mechanize): New variable.
2013-09-13 14:25:53 +02:00
Nikita Karetnikov
1b0a8212d1 guix package: Rename generation-related procedures.
* guix/scripts/package.scm (profile-numbers): Rename to 'generation-numbers'.
  (previous-profile-number): Rename to 'previous-generation-number'.
  (profile-number): Rename to 'generation-number'.
  (roll-back): Rename 'previous-profile' to 'previous-generation'.
2013-09-13 07:07:01 +00:00
Andreas Enge
1d08c01fcf gnu: Add python2-sqlite.
* gnu/packages/python.scm (python2-sqlite): New variable.
2013-09-12 15:31:45 +02:00
Ludovic Courtès
7763c538ad Thank Matthias and Yutaka. 2013-09-12 14:11:15 +02:00
Ludovic Courtès
ea16738085 daemon: Use 'int' instead of the internal 'gcry_md_algo_t' type.
Fixes compilation with the forthcoming libgcrypt 1.6.x.
Reported by Matthias Wachs <wachs@net.in.tum.de>
and NIIBE Yutaka <gniibe@fsij.org>.

* nix/libutil/gcrypt-hash.cc (guix_hash_init, guix_hash_final): Use
  'int' as the type of the 'algo' parameter.
* nix/libutil/gcrypt-hash.hh: Update declarations accordingly.
2013-09-12 14:09:29 +02:00
Ludovic Courtès
8eaa8a3bf0 gnu: avahi, dbus: Use /var as $localstatedir.
* gnu/packages/avahi.scm (avahi): Pass '--localstatedir'; add
  'patch/localstatedir'.
* gnu/packages/glib.scm (dbus): Pass '--localstatedir' and
  '--with-session-socket-dir'; add 'patch/localstatedir'.
* gnu/packages/patches/avahi-localstatedir.patch,
  gnu/packages/patches/dbus-localstatedir.patch: New files.
* gnu-system.am (dist_patch_DATA): Add them.
2013-09-11 23:37:57 +02:00
Andreas Enge
e1804763d0 gnu: Update python-babel, python2-babel to 1.3.
* gnu/packages/python.scm (python-babel, python2-babel): Update to 1.3.
2013-09-11 22:56:52 +02:00
Ludovic Courtès
0ded70f37d gnu: Move helper code to (gnu system …) modules.
* gnu/packages/grub.scm (<menu-entry>, grub-configuration-file): Move
  to...
* gnu/system/grub.scm: ... here.  New file.
* gnu/packages/linux.scm (<pam-service>, <pam-entry>,
  pam-service->configuration, pam-service->directory,
  %pam-other-services, unix-pam-service): Move to...
* gnu/system/linux.scm: ... here.  New file.
* gnu/system/vm.scm (passwd-file): Move to...
* gnu/system/shadow.scm: ... here.  New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add
  gnu/system/{grub,linux,shadow}.scm.
2013-09-11 22:36:50 +02:00
Ludovic Courtès
aedb72fbe0 gnu: vm: Remove potluck hacks.
* gnu/system/vm.scm (example1): Remove.
  (example2): Rename to...
  (system-qemu-image): ... this.  Add 'store' parameter, and remove call
  to 'open-connection'.
2013-09-11 20:27:36 +02:00
Andreas Enge
fc50e9c694 gnu: Add python-dateutil, python2-dateutil.
* gnu/packages/python.scm (python-dateutil, python2-dateutil): New variables.
2013-09-11 15:51:13 +02:00
Andreas Enge
824af8cadc guix: python: Create module installation path and add it to PYTHONPATH during
the installation phase.

* guix/build/python-build-system.scm (get-python-version): New procedure.
* guix/build/python-build-system.scm (install): Create and add path.
* gnu/packages/python.scm (python-setuptools): Drop path creation code.
2013-09-11 15:47:34 +02:00
Ludovic Courtès
a843fe2222 gnu: vm: Setup PAM.
* gnu/system/vm.scm (example2): Use 'pam-services->directory'.  Change
  POPULATE to create /etc/pam.d, /etc/login.defs, and /var/run.  Change
  BOOT to spawn syslogd; boot to Bash.  Add inputs.
2013-09-11 01:07:50 +02:00
Ludovic Courtès
3b07625ad6 gnu: vm: Create shadow files with the right format.
* gnu/system/vm.scm (passwd-file): When SHADOW? is true, use the right
  shadow(5) format.  Always add a trailing newline.
2013-09-11 01:07:50 +02:00
Ludovic Courtès
37c825eb79 linux-initrd: Create /dev/klog and /dev/kmsg.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
  /dev/klog and /dev/kmsg.
2013-09-11 01:07:50 +02:00
Ludovic Courtès
e0ba5fe5ab gnu: linux-initrd: Fix typo.
* gnu/packages/linux-initrd.scm (gnu-system-initrd): Add missing
  argument to 'format' call.
2013-09-11 01:07:50 +02:00
Ludovic Courtès
c84d0eca05 gnu: linux-pam: Add declarative PAM service interface.
* gnu/packages/linux.scm (<pam-service>, <pam-entry>): New record
  types.
  (pam-service->configuration, pam-services->directory,
  unix-pam-service): New procedures.
  (%pam-other-services): New variable.
2013-09-11 01:07:50 +02:00
Ludovic Courtès
cfbf916045 store: The 'references' parameter of 'add-text-to-store' is now optional.
* guix/store.scm (add-text-to-store): Make 'references' optional.
* tests/store.scm ("dead-paths", "references"): Use 'add-text-to-store'
  with no optional argument.
* doc/guix.texi (The Store): Adjust accordingly.
2013-09-11 01:07:49 +02:00
Andreas Enge
73adf22037 gnu: Add python-setuptools, python2-setuptools.
* gnu/packages/python.scm (python-setuptools, python2-setuptools):
    New variables.
2013-09-10 21:08:12 +02:00
Andreas Enge
e1a264f6fa guix: python: Do not import %standard-phases from gnu-build-system.
* guix/build-system/python.scm (python-build): Drop module gnu-build-system.
    Thanks to Ludovic Courtès <ludo@gnu.org>.
2013-09-10 20:32:50 +02:00
Andreas Enge
590a4904d2 gnu: isl: Update urls.
* gnu/packages/gcc.scm (isl): Update source and home page url.
2013-09-10 19:05:43 +02:00
Andreas Enge
1d1f939798 guix: python: Add parameter #:phases to build system.
* guix/build-system/python.scm (python-build): Use parameter #:phases.
2013-09-10 11:58:02 +02:00
Ludovic Courtès
d34c0ac6e9 gnu: vm: Copy /etc/shadow to the guest.
* gnu/system/vm.scm (example2): Add SHADOW to #:inputs-to-copy.
2013-09-09 21:52:14 +02:00
Ludovic Courtès
98aeb06b41 gnu: vm: Create valid /etc/shadow and /etc/passwd.
* gnu/system/vm.scm (/etc/passwd): Rename to...
  (passwd-file): ... this. Add 'shadow?' keyword parameter.  Change
  format of ACCOUNTS, and fix CONTENTS.
  (example2): Adjust accordingly.  Create both /etc/shadow and
  /etc/passwd, the latter being used by getpwnam(3) & co. when nscd is
  not running.
2013-09-08 23:52:03 +02:00
Ludovic Courtès
8ab73e91d6 gnu: vm: Clear timestamps on the imported files, like in the store.
* gnu/system/vm.scm (qemu-image): Clear timestamps on the copied files.
2013-09-08 23:30:12 +02:00
Andreas Enge
11bb85a10d guix: python: Add package-with-python2, a procedure rewriting a package
to compile with Python 2 instead of the default Python 3.

* guix/build-system/python.scm (default-python2, package-with-explicit-python,
    package-with-python2): New procedures.
* guix/build-system/python.scm (python2-pytz, python2-babel): Use
    package-with-python2.
2013-09-08 16:57:37 +02:00
Ludovic Courtès
8ce3104e0e Merge branch 'master' into core-updates 2013-09-08 12:11:32 +02:00
Ludovic Courtès
6bf25b7b05 hydra: Support a 'subset' argument.
* build-aux/hydra/gnu-system.scm (%core-packages): New variable.
  (%packages-to-cross-build): Make an alias for %CORE-PACKAGES.
  (hydra-jobs): Check for the 'subset' argument, and honor it for values
  "all" and "core".
2013-09-08 12:10:25 +02:00
Ludovic Courtès
3409bc0188 gnu: glibc: Upgrade to 2.18.
* gnu/packages/base.scm (glibc): Upgrade to 2.18.
2013-09-08 12:01:33 +02:00
Ludovic Courtès
e7b385008c gnu: linux-libre: Upgrade to 3.11.
* gnu/packages/linux.scm (linux-libre): Upgrade to 3.11.  Add bc as an
  input.
2013-09-08 01:30:54 +02:00
Ludovic Courtès
0e2ddecd8e gnu: grub: Add support for building configuration files.
* gnu/packages/grub.scm (<menu-entry>): New record type.
  (grub-configuration-file): New procedure.
* gnu/system/vm.scm (qemu-image): Remove parameters 'linux',
  'linux-arguments', and 'initrd'.  Add 'grub-configuration' parameter.
  Honor them, and remove grub.cfg generation code accordingly.
  (example2): Use `grub-configuration-file', and adjust accordingly.
2013-09-07 17:23:23 +02:00
Ludovic Courtès
2df74ac117 doc: Add "Data Types and Pattern Matching" to the Coding Style.
* HACKING (Data Types and Pattern Matching): New section.
2013-09-07 15:51:29 +02:00
Nikita Karetnikov
a129e0d877 gnu: Add the 'license:' prefix.
* gnu/packages/glib.scm (itstool): Change 'gpl3+' to 'license:gpl3+'.
2013-09-07 07:47:24 +00:00
Cyril Roelandt
20a26ff546 gnu: Add itstool.
* gnu/packages/glib.scm (itstool): New variable.
2013-09-06 20:59:55 +02:00
Ludovic Courtès
785859d306 gnu: vm: Add /etc/shadow in the QEMU image.
* gnu/system/vm.scm (qemu-image): Add 'populate' keyword parameter and
  honor it; make it an input.
  (/etc/shadow): New procedure.
  (example2): Call it; build 'populate' script, and pass it to
  'qemu-image'.
2013-09-05 23:57:40 +02:00
Ludovic Courtès
002e5ba887 gnu: vm: Remove unused 'qemu-image' argument.
* gnu/system/vm.scm (qemu-image): Remove 'boot-expression' parameter,
  superseded by 'linux-arguments'.
2013-09-05 22:14:21 +02:00
Andreas Enge
b191f88ee3 guix: python: Add build phase and factor out calls to setup.py.
* guix/build/python-build-system.scm (call-setuppy): New procedure.
* guix/build/python-build-system.scm (build): New procedure.
* guix/build/python-build-system.scm (check, install): Use call-setuppy.
* guix/build/python-build-system.scm (%standard-phases): Add call to build.
2013-09-05 20:25:08 +02:00
Andreas Enge
49b90a7539 gnu: python: Disable tests in python2-pytz and python2-babel.
* gnu/packages/python.scm (python2-pytz, python2-babel): Disable tests.
2013-09-05 19:07:28 +02:00
Andreas Enge
8498b8cfac gnu: python: Disable tests in pytz and babel.
* gnu/packages/python.scm (python-pytz, python-babel): Disable tests.
2013-09-05 18:55:27 +02:00
Andreas Enge
7b96bf82da gnu: python: Honour #:tests? and #:test-target in build system.
* guix/build/python-build-system.scm (check): Use named parameters tests?
    and test-target (default now: "test" instead of "check").
2013-09-05 18:43:18 +02:00
Andreas Enge
d1f30e9943 gnu: git: Switch back to Python 2.
* gnu/packages/version-control.scm (git): Switch back to Python 2.
2013-09-05 18:13:23 +02:00
Ludovic Courtès
1b89a66e1b gnu: vm: First stab at building a populated QEMU image.
* gnu/packages/linux-initrd.scm (gnu-system-initrd): New variable.
* gnu/system/vm.scm (qemu-image): Add #:linux-arguments parameter.
  [input->name+derivation]: Add case for 'store-path?' items.
  Remove LOADER from `inputs'.
2013-09-05 00:46:09 +02:00
Ludovic Courtès
29804e6eb2 gnu: linux-initrd: Fix creation of /dev/tty nodes.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
  /dev/tty.  Change from 'block-special' to 'char-special' for /dev/tty*
  nodes.
2013-09-05 00:46:09 +02:00
Ludovic Courtès
7c1d8146a7 gnu: vm: 'qemu-image' populates /dev on the target root file system.
* gnu/system/vm.scm (qemu-image): Use (guix build linux-initrd).  Remove
  'mknod' calls; use 'make-essential-device-nodes' to populate /dev on
  the target image.
* gnu/packages/linux-initrd.scm (qemu-initrd): When /root/dev exists,
  don't call 'make-essential-device-nodes'.
2013-09-05 00:46:09 +02:00
Andreas Enge
89114f39e4 gnu: python: Implement the python naming scheme for pytz and babel.
* gnu/packages/python.scm (pytz): Rename this ...
* gnu/packages/python.scm (python-pytz): ... to this
* gnu/packages/python.scm (python2-pytz): New variable, input python-2.
* gnu/packages/python.scm (babel): Rename this ...
* gnu/packages/python.scm (python-babel): ... to this
* gnu/packages/python.scm (python2-babel): New variable, input python-2.
2013-09-04 22:12:33 +02:00
Andreas Enge
aa9e22efa3 gnu: subversion: Switch back to Python 2.
* gnu/packages/version-control.scm (subversion): Switch back to Python 2.
2013-09-04 19:17:19 +02:00
Andreas Enge
66ed0c3146 gnu: qemu: Switch back to Python 2.
* gnu/packages/qemu.scm (qemu): Switch back to Python 2.
2013-09-04 19:13:41 +02:00
Andreas Enge
78fed0648f gnu: texlive: Switch back to Python 2.
* gnu/packages/texlive.scm (texlive): Switch back to Python 2.
2013-09-04 19:09:39 +02:00
Andreas Enge
9bee5d6c18 gnu: rubber: Switch back to Python 2.
* gnu/packages/texlive.scm (rubber): Switch back to Python 2.
2013-09-04 19:06:51 +02:00
Andreas Enge
98e4829c4b gnu: mesa: Switch back to Python 2.
* gnu/packages/xorg.scm (mesa): Switch back to Python 2.
2013-09-04 19:03:14 +02:00
Andreas Enge
f82cfaac71 gnu: libxml2: Switch back to Python 2.
* gnu/packages/xml.scm (libxml2): Switch back to Python 2.
2013-09-04 18:54:53 +02:00
Andreas Enge
91da9ab009 gnu: zziplib: Switch back to Python 2.
* gnu/packages/zip.scm (zziplib): Switch back to Python 2.
2013-09-04 18:40:54 +02:00
Andreas Enge
1611eccd10 gnu: bazaar: Switch back to Python 2.
* gnu/packages/version-control.scm (bazaar): Switch back to Python 2.
2013-09-04 18:35:49 +02:00
Andreas Enge
3df47231e6 guix: python: Switch to python-wrapper as the default version for the python
build system (switches to Python 3) and compute python-version instead of
  passing it as a parameter.

* guix/build-system/python.scm (default-python): Switch to python-wrapper.
* guix/build-system/python.scm (python-build): Drop parameter #:python-version.
* guix/build/python-build-system.scm (wrap): Compute python version from input.
2013-09-04 18:07:55 +02:00
Andreas Enge
e911470857 gnu: xorg: Update comment for mesa.
* gnu/packages/xorg.scm (mesa): New compilation trial with 9.2.
2013-09-04 18:02:58 +02:00
Andreas Enge
6c76c45145 gnu: libdrm: Update to 2.4.46.
* gnu/packages/xorg.scm (libdrm): Update to 2.4.46.
2013-09-04 11:16:22 +02:00
Ludovic Courtès
0280ef2203 hydra: Add Graphviz as an input to the "tarball" job.
* build-aux/hydra/guix.scm (tarball-package): Add GRAPHVIZ to
  `native-inputs'.
2013-09-03 22:21:48 +02:00
Andreas Enge
ee3e314bb7 gnu: python: Replace input python by python-wrapper.
* gnu/packages/{gdb.scm (gdb), cryptsetup.scm (cryptsetup),
  ghostscript.scm (ghostscript), glib.scm (glib), gnupg.scm (pius),
  gtk.scm (cairo, harfbuzz), libevent.scm (libevent), netpbm.scm (netpbm),
  oggvorbis.scm (libkate), qemu.scm (qemu), samba.scm (samba),
  texlive.scm (rubber, texlive), version-control.scm (subversion),
  xml.scm (libxml2, libxslt), xorg.scm (libxcb, mesa, xcb-proto, xorg-server),
  yasm.scm (yasm), zip.scm (zziplib)}:
  Replace input python by python-wrapper.
2013-09-03 22:18:39 +02:00
Ludovic Courtès
7eed1d0438 hydra: Add Git as an input to the "tarball" job.
* build-aux/hydra/guix.scm (tarball-package): Add `native-inputs' field.
2013-09-03 22:07:21 +02:00
Andreas Enge
898238b9f5 gnu: python: Add package python-wrapper.
* gnu/packages/python.scm (python-wrapper): New variable.
2013-09-03 21:27:40 +02:00
Ludovic Courtès
bda44eed93 pull: Compile files in the lexicographic order.
* guix/scripts/pull.scm (unpack): Print the name of the file being
  compiled.  Sort the names of files to compile.
2013-09-03 10:48:52 +02:00
Ludovic Courtès
8badfc5558 build-system/cmake: Fix typo.
* guix/build-system/cmake.scm (default-cmake): Add missing quote.
2013-09-03 10:20:59 +02:00
Ludovic Courtès
0a2873e515 build-system/gnu: Delay resolution of (@ (gnu packages cmake) cmake).
* guix/build-system/cmake.scm (default-cmake): New procedure.
  (cmake-build): Use it.
2013-09-03 10:18:38 +02:00
Ludovic Courtès
00554b2a0f substitute-binary: Show the Nar size, when available.
* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--substitute"]:
  Show the Nar size, when available.
* guix/ui.scm (show-what-to-build): Add 'TODO'.
2013-09-02 23:33:13 +02:00
Ludovic Courtès
43dd92024a union: Don't traverse sub-directories only found in one element of the union.
This significantly reduces I/O when building profiles, especially with
lots of package-specific sub-directories (such as 'share/emacs/24.3',
'texmf', etc.)

* guix/build/union.scm (union-build)[file-tree](others-have-it?): New
  procedure.  Use it in the 'enter?' parameter of 'file-system-fold';
  change 'skip' parameter accordingly.
* tests/union.scm ("union-build"): Ensure that 'include' is a symlink
  and 'bin' is a directory.
2013-09-02 23:04:25 +02:00
Ludovic Courtès
165fd9d5e6 gnu: lzo: Build the shared library.
* gnu/packages/compression.scm (lzo): Build the shared library.
2013-09-02 23:04:25 +02:00
Andreas Enge
b24d1cfc85 gnu: python: Revert 77c7f8f4 and make Python 3 the default.
* gnu/packages/python.scm (python-3): Rename this to...
* gnu/packages/python.scm (python): ...this, rename this to...
* gnu/packages/python.scm (python-2): ...this.
2013-09-02 21:48:50 +02:00
Cyril Roelandt
fbc1a58f40 gnu: Add dfc.
* gnu/packages/system.scm (dfc): New variable.
2013-09-02 19:47:36 +02:00
Cyril Roelandt
340c7033a8 gnu: Add htop.
* gnu/packages/system.scm (htop): New variable.
2013-09-02 19:47:36 +02:00
Ludovic Courtès
1e151896d4 gnu: Add mingetty.
* gnu/packages/system.scm (mingetty): New variable.
2013-09-02 00:20:14 +02:00
Ludovic Courtès
bf8e7fc502 store: Add a printer for <nix-server>.
* guix/store.scm (<nix-server>): Set a printer.
2013-09-02 00:20:14 +02:00
Ludovic Courtès
d91712ee89 gnu: linux-initrd: Factorize device node creation.
* guix/build/linux-initrd.scm (make-essential-device-nodes): New
  procedure.
* gnu/packages/linux-initrd.scm (qemu-initrd): Use it.
2013-09-02 00:20:14 +02:00
Andreas Enge
d9ff410fb2 gnu: Add git.
* gnu/packages/version-control.scm (git): New variable.
2013-09-01 21:56:57 +02:00
Andreas Enge
c3f3e150c4 gnu: cairo: Update to 1.12.16.
* gnu/packages/gtk.scm (cairo): Update to 1.12.16.
2013-09-01 18:21:08 +02:00
Andreas Enge
abac80c0fd gnu: Update harfbuzz to 0.9.20.
* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.20.
2013-09-01 18:13:48 +02:00
Andreas Enge
77c7f8f41b gnu: python: Temporarily make python 2 the default.
* gnu/packages/python.scm (python-2): Rename this to...
* gnu/packages/python.scm (python): ...this, rename this to...
* gnu/packages/python.scm (python-3): ...this. Reverts to version 2 as the
  default input for packages requiring Python.
2013-09-01 17:46:49 +02:00
Ludovic Courtès
93d44bd8de gnu: vm: `qemu-image' can copy store closures into the target image.
* gnu/system/vm.scm (qemu-image): Add #:inputs-to-copy and
  #:boot-expression parameters.  Honor them.  Append INPUTS-TO-COPY to
  the #:inputs argument for `expression->derivation-in-linux-vm'.
  (example2): Add #:boot-expression and #:inputs-to-copy arguments.
2013-08-31 23:02:18 +02:00
Ludovic Courtès
4c0f0673b2 gnu: `expression->derivation-in-linux-vm' accepts files as inputs.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Accept items
  in INPUTS that refer to a file instead of a package.
2013-08-31 23:02:18 +02:00
Ludovic Courtès
ca85d7bcc6 gnu: `expression->derivation-in-linux-vm' export references graphs.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
  #:reference-graphs parameter.  Honor it.  Delete duplicates in
  #:modules argument.
2013-08-31 23:02:18 +02:00
Ludovic Courtès
b48d21b246 gnu: linux-initrd: Make device nodes for QEMU's hard disk.
* gnu/packages/linux-initrd.scm (qemu-initrd): Make /dev/vda*.
2013-08-31 23:02:18 +02:00
Ludovic Courtès
89bf140b10 gnu: linux-initrd: Make Guile modules accessible in the chroot.
* gnu/packages/linux-initrd.scm (qemu-initrd): Add (guix build utils) to
  #:modules, and use it.  Copy .scm and .go files to /root.
* guix/build/linux-initrd.scm (bind-mount): New procedure.
2013-08-31 23:02:18 +02:00
Andreas Enge
1aebc0cb2c gnu: python: Adapt native-search-paths for Python 3.3.
* gnu/packages/python.scm (python): Modify native-search-paths.
2013-08-31 18:43:17 +02:00
Andreas Enge
f26a77ffbc gnu: Add Python 3.
*  gnu/packages/python.scm (python-2): Rename from python for version 2.
*  gnu/packages/python.scm (python): New variable for version 3.
2013-08-31 14:52:24 +02:00
Andreas Enge
91dcbafab9 gnu: Add yasm.
* gnu/packages/yasm.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-08-31 14:12:24 +02:00
Andreas Enge
37f9ff639e gnu: Add xmlto.
* gnu/packages/xml.scm (xmlto): New variable.
2013-08-31 13:47:46 +02:00
Andreas Enge
24b5c463f3 gnu: Add dbus-glib.
* gnu/packages/glib.scm (dbus-glib): New variable.
2013-08-31 12:46:08 +02:00
Andreas Enge
d9c4b6e944 gnu: pari-gp: Update to 2.5.4.
* gnu/packages/algebra.scm (pari-gp): Update to 2.5.4.
2013-08-31 12:20:55 +02:00
Andreas Enge
71e0f28856 gnu: gsl: Disable numerically unstable test on i686.
* gnu/packages/maths.scm (gsl): Disable test.
2013-08-31 12:18:53 +02:00
Andreas Enge
c8c871d184 doc: Stylistic changes to "Packaging Guidelines" 2013-08-31 00:02:00 +02:00
Ludovic Courtès
1a2e649561 doc: Add note about .dir-locals.el.
* HACKING (Coding Style): Mention special indentation rules and
  .dir-locals.el.
2013-08-30 23:53:13 +02:00
Ludovic Courtès
e1c5a8357a doc: Add a "Coding Style" section in 'HACKING'.
* HACKING (Coding Style): New section.
2013-08-30 23:47:23 +02:00
Ludovic Courtès
67b1dd8dea doc: Remove "Adding new packages" from `HACKING'.
* HACKING (Adding new packages): Remove since it's now in the manual.
2013-08-30 23:47:22 +02:00
Nikita Karetnikov
a827c623ca doc: Remove an extra space after @ref. 2013-08-30 16:35:32 +00:00
Ludovic Courtès
ffc1074f86 gnu: hop: Allow compilation with Bigloo 4.0b.
Fixes <http://bugs.gnu.org/15194>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/packages/patches/hop-bigloo-4.0b.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/scheme.scm (hop): Use it.
2013-08-30 14:18:51 +02:00
Andreas Enge
46cb9da285 doc: Add duplicate copyright notice again.
* doc/guix.texi: Add second copyright notice again inside @ifinfo, needed
  since the first one does not appear in the info output.
  Partially undoes commit da7cabd.
2013-08-29 22:36:23 +02:00
Ludovic Courtès
29f66ddd7b doc: Fix the image size in PDF/PS/DVI output.
* doc/guix.texi (Bootstrapping): Specify an image width for the TeX
  output.  Before that, the image would be much wider than the US Letter
  page width.
2013-08-29 21:58:53 +02:00
Ludovic Courtès
54461ce7eb build: Have `pdf' depend on the PDF image.
* doc.am (DOT_OPTIONS): Remove `-Tpng'.
  (.dot.pdf): New rule.
  (pdf-local): Depend on the .pdf.
2013-08-29 21:58:53 +02:00
Ludovic Courtès
cb9e50f618 build: Use missing' for dot'.
* configure.ac: Substitute `DOT'.
* doc.am (.dot.png, .dot.eps): Use $(DOT).
2013-08-29 21:58:53 +02:00
Ludovic Courtès
a9424c0887 build: Build docs from the top-level Makefile.
This undoes commit 575ed8d ("doc: Create own Makefile.am in subdirectory."),
and fixes a bug whereby "make pdf" or "make ps" wouldn't do anything.

* doc/Makefile.am: Remove.
* doc.am: New file.  Use `-local' rules to build the image.
* Makefile.am: Include it.
* configure.ac: Use `-Woverride' to avoid undesired overridding of
  Automake rules.
2013-08-29 21:58:52 +02:00
Andreas Enge
88bd1804a2 gnu: gsl: Move from module algebra to maths.
* gnu/packages/algebra.scm (gsl): Move variable from here...
* gnu/packages/maths.scm (gsl): ...to here.
2013-08-29 15:42:52 +02:00
Ludovic Courtès
88840f0246 gnu: linux-initrd: Add (guix build linux-initrd) and use it.
* gnu/packages/linux-initrd.scm (qemu-initrd): Add #:modules argument.
  Factorize and move some of the code to...
* guix/build/linux-initrd.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2013-08-29 00:05:03 +02:00
Ludovic Courtès
e47185a4a7 gnu: make-bootstrap: Remove the `debug' output from the static Coreutils.
* gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Add
  `outputs' field.
2013-08-29 00:05:03 +02:00
Ludovic Courtès
f989fa392f gnu: linux-initrd: Allow Guile modules to be embedded in the initrd.
* gnu/packages/linux-initrd.scm (raw-build-system): New macro.
  (module-package, compiled-module-package): New procedures.
  (expression->initrd): Add `modules' keyword parameter.
  Add "modules" and "modules/compiled" inputs; copy them onto the
  initrd.
* guix/derivations.scm (imported-modules, compiled-modules): Publicize.
2013-08-29 00:05:03 +02:00
Andreas Enge
f02b5474f1 gnu: imagemagick: Update to 6.8.6-9.
* gnu/packages/imagemagick.scm (imagemagick): Update to 6.8.6-9.
2013-08-28 23:33:24 +02:00
Andreas Enge
ee85f3dbe9 doc: Add package guidelines for names and numbers.
* doc/guix.texi: Three new subsections.
2013-08-28 22:51:20 +02:00
Andreas Enge
da7cabd46b doc: Shuffle some text around.
* doc/guix.texi: Drop duplicate copyright notice, start section
    "Packaging Guidelines" with existant text.
2013-08-28 22:04:52 +02:00
Andreas Enge
575ed8d5b3 doc: Create own Makefile.am in subdirectory.
* doc/Makefile.am: New file.
* Makefile.am: Reference subdirectory doc.
2013-08-28 21:44:14 +02:00
Alex Sassmannshausen
3d1b29a5c5 list-packages: Tidy CSS in preparation for split into external file.
* build-aux/list-packages.scm (insert-css): Tidy CSS alignment etc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-08-28 14:18:29 +02:00
Ludovic Courtès
2455085a1e vm: Use more keyword parameters for `expression->derivation-in-linux-vm'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Turn `system'
  and `inputs' into keyword parameters.
  (qemu-image, example1): Adjust accordingly.
2013-08-28 00:55:40 +02:00
Ludovic Courtès
858e92823f derivations: Rename #:dependency-graphs to #:references-graphs.
* guix/derivations.scm (derivation, build-expression->derivation):
  Rename #:dependency-graphs to #:references-graphs, for consistency in
  the terminology.
* tests/derivations.scm: Adjust accordingly.
2013-08-28 00:55:40 +02:00
Andreas Enge
af807dea7f gnu: Update python to 2.7.5.
* gnu/packages/python.scm (python): Update to 2.7.5.
2013-08-27 10:49:43 +02:00
Ludovic Courtès
2d2ad98910 doc: Change `HACKING' to refer to guix-devel@gnu.org.
Reported by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.

* HACKING: Replace "bug-guix" by "guix-devel".
2013-08-26 22:23:53 +02:00
Ludovic Courtès
9c629a27a4 derivations: Add #:dependency-graphs to `build-expression->derivation'.
* guix/derivations.scm (build-expression->derivation): Add
  #:dependency-graphs keyword argument.  Pass it to `derivation'.
* tests/derivations.scm ("build-expression->derivation with
  #:dependency-graphs"): New test.
* doc/guix.texi (Derivations): Update `build-expression->derivation'
  description.
2013-08-26 22:20:58 +02:00
Ludovic Courtès
5b0c9d1635 derivations: Add #:dependency-graphs `derivation' parameter.
* guix/derivations.scm (derivation): Add `dependency-graphs' keyword
  parameter; honor it.
* tests/derivations.scm (bootstrap-binary): New procedure.
  (%bash): Use it.
  (%mkdir): New variable.
  (directory-contents): Add `slurp' optional parameter.
  ("derivation with #:dependency-graphs"): New test.
* doc/guix.texi (Derivations): Update accordingly.
2013-08-26 22:20:53 +02:00
Ludovic Courtès
a987d2c025 derivations: Move 3 positional parameters into keyword parameters.
* guix/derivations.scm (derivation): Turn `system', `env-vars', and
  `inputs' into keyword parameters.
  (build-expression->derivation): Adjust accordingly.
* gnu/packages/bootstrap.scm (%bootstrap-guile): Likewise.
* tests/derivations.scm, tests/store.scm: Likewise.
* doc/guix.texi (Derivations): Likewise.
2013-08-26 22:20:27 +02:00
Ludovic Courtès
3e9066fcfc gnu: Add Guile-Lib.
* gnu/packages/guile.scm (guile-lib): New variable.
2013-08-26 16:04:15 +02:00
Ludovic Courtès
5d9cd70721 download: Add kernel.org mirrors.
Fixes <http://bugs.gnu.org/15182>.
Reported by Mark H Weaver <mhw@netris.org>.

* guix/download.scm (%mirrors)[kernel.org]: Add ftp.be.debian.org and
  mirror.linux.org.au.
2013-08-25 20:49:03 +02:00
Ludovic Courtès
ef4eca529b hydra: Comment out all Git invocations in `bootstrap'.
* build-aux/hydra/guix.scm (tarball-package): Comment out all `git'
  invocations.
2013-08-25 20:37:59 +02:00
Ludovic Courtès
d29aa3b5a3 hydra: Add missing import.
* build-aux/hydra/guix.scm: Use (srfi srfi-26).
2013-08-25 18:58:15 +02:00
Ludovic Courtès
ef0677faa1 hydra: Add missing import.
* build-aux/hydra/guix.scm: Use (srfi srfi-26).
2013-08-25 17:53:49 +02:00
Ludovic Courtès
6ad507ae54 hydra: Return a symbol/thunk pair.
* build-aux/hydra/guix.scm (hydra-jobs): Return a symbol/thunk pair.
2013-08-25 16:48:10 +02:00
Ludovic Courtès
9eed6f9b88 gnu: pius: Use the right `gpg' binary.
* gnu/packages/gnupg.scm (pius): Add GnuPG as an input.  Patch the
  installed binaries to refer to the right GnuPG executable.  Fix
  synopsis.
2013-08-25 16:47:20 +02:00
Ludovic Courtès
f29f066439 hydra: Extract the actual file name from the Guix checkout.
* build-aux/hydra/guix.scm (hydra-jobs): Extract the `file-name' part of
  CHECKOUT.
2013-08-24 18:24:17 +02:00
Ludovic Courtès
59e6ae6cf1 hydra: Add job to run "make distcheck" on Guix.
* build-aux/hydra/guix.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2013-08-24 17:30:32 +02:00
Ludovic Courtès
bbe8d8f028 gnu: Add Guix.
* gnu/packages/package-management.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-08-24 17:30:31 +02:00
Ludovic Courtès
fe12c3458c build-system/gnu: Add `dist-package'.
* guix/build/gnu-dist.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/build-system/gnu.scm (%default-modules): New variable.
  (gnu-build): Use it.
  (dist-package): New procedure.
2013-08-24 17:30:31 +02:00
Ludovic Courtès
7357138bba packages: Allow file names as package sources.
* guix/packages.scm (package-source-derivation): Add cases for SOURCE as
  a store path or user file.
* tests/packages.scm ("package-source-derivation, file",
  "package-source-derivation, store path"): New tests.
2013-08-24 17:30:31 +02:00
Ludovic Courtès
b095792f9b doc: Mention what's in the chroot, and add a caveat about /dev/shm.
* doc/guix.texi (Setting Up the Daemon): Document the default content of
  the chroot, and the /dev/shm caveat.
2013-08-24 17:30:31 +02:00
Andreas Enge
c9dfa3c721 gnu: Add pspp.
* gnu/packages/maths.scm (pspp): New variable.
* THANKS: Thank John Darrington for help with debugging.
2013-08-24 15:11:02 +02:00
Andreas Enge
88065ec247 gnu: Add libmicrohttpd.
* gnu/packages/gnunet.scm (libmicrohttpd): New variable.
2013-08-24 11:40:57 +02:00
Andreas Enge
8f8b24512a gnu: Add units.
* gnu/packages/maths.scm: New module.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-08-24 10:51:56 +02:00
Andreas Enge
eb4b2ab6a8 gnu: Add libextractor.
* gnu/packages/gnunet.scm: New module.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
* THANKS: Thank Christian Grothoff for help with debugging.
2013-08-24 10:41:07 +02:00
Andreas Enge
212525967e gnu: Add gkrellm.
* gnu/packages/gkrellm.scm: New module.
* gnu/packages/gnu-system.am (GNU_SYSTEM_MODULES): Add module.
2013-08-24 10:25:18 +02:00
Ludovic Courtès
e78a0ae514 gnu: Add Valgrind.
* gnu/packages/valgrind.scm, gnu/packages/patches/valgrind-glibc.patch:
  New files.
* gnu-system.am (GNU_SYSTEM_MODULES): Add valgrind.scm.
  (dist_patch_DATA): Add valgrind-glibc.patch.
2013-08-24 10:21:14 +02:00
Ludovic Courtès
39b0484582 gnu: Add GNU lightning.
* gnu/packages/lightning.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-08-24 10:04:43 +02:00
Ludovic Courtès
853726dd36 gnu: tzdata: Fix hash of tzcode tarball.
Fixes <http://bugs.gnu.org/15153>.

* gnu/packages/base.scm (tzdata): Update tzcode hash, which was modified
  upstream.
2013-08-23 16:02:28 +02:00
Ludovic Courtès
7db3ff4a29 utils: Add `guile-version>?', and use it.
This fixes Guile version comparisons when (version) has a
vendor-specific suffix.

Reported by Andreas Enge <andreas@enge.fr>.

* guix/utils.scm (guile-version>?): New procedure.
* tests/utils.scm ("guile-version>? 1.8", "guile-version>? 10.5"): New
  tests.
* guix/scripts/substitute-binary.scm (fetch, progress-report-port): Use
  `guile-version>?' instead of `version>?'.
* guix/http-client.scm (when-guile<=2.0.5, http-fetch): Likewise.
2013-08-23 15:51:36 +02:00
Ludovic Courtès
baed8816fc gnu: Have `qemu-image' explicitly reboot when done.
* gnu/system/vm.scm (qemu-image): Call `reboot' when we're done.  Change
  `menuentry' title.
2013-08-23 15:11:35 +02:00
Ludovic Courtès
290d437097 Add TODO item. 2013-08-23 11:37:10 +02:00
Ludovic Courtès
b6952cad8d substitute-binary: Try hard to avoid port buffering.
* guix/scripts/substitute-binary.scm (fetch): In the `file' case, open
  with the `b' flag, so that the coding cookie reading thing doesn't
  lead to buffering some of the data (on 2.0.5).
* tests/utils.scm ("filtered-port, file"): Open with `r0b'.  Fixes a
  test failure with Guile 2.0.5 whereby the first byte of FILE would be
  missing from DECOMPRESSED.
2013-08-22 17:14:20 +02:00
Ludovic Courtès
3f69e393d3 gnu: guile-ncurses: Install modules under .../site/2.0.
* gnu/packages/guile.scm (guile-ncurses): Append /2.0 to `guilesitedir'.
2013-08-21 19:06:55 +02:00
Andreas Enge
911b1b9cb6 gnu: indent: Cosmetic change.
* gnu/packages/indent.scm (indent): Use #:renamer on licenses to be better
    suited as an example for packaging.
2013-08-21 12:05:18 +02:00
Ludovic Courtès
75ca2f4f47 gnu: make-bootstrap: Add a couple of synopses.
* gnu/packages/make-bootstrap.scm (%guile-static,
  %guile-static-stripped): Add synopsis.
2013-08-21 11:44:16 +02:00
Ludovic Courtès
3e8f16ba91 gnu: guile-static-stripped: Make sure the resulting binary works.
* gnu/packages/make-bootstrap.scm (%guile-static-stripped): When
  compiling natively, make sure the final binary works.
2013-08-21 11:38:51 +02:00
Ludovic Courtès
682cb00461 gnu: guile-static: Add missing hunk in guile-default-utf8.patch.
Before that, the ‘guile’ binary from ‘guile-static-stripped’ would abort
as it tries and fails to open an iconv descriptor for ISO-8859-1.

* gnu/packages/patches/guile-default-utf8.patch: Add missing hunk for
  Guile 2.0.9.
2013-08-21 11:33:27 +02:00
Ludovic Courtès
db90b40dfd substitute-binary: Don't pretend to report download progress on Guile 2.0.5.
* guix/scripts/substitute-binary.scm (progress-report-port): On Guile
  2.0.5, return PORT directly and emit a warning.
2013-08-21 02:19:36 +02:00
Ludovic Courtès
6facbc7590 gnu: grub: Use older QEMU to run the test suite.
Fixes build failure <http://hydra.gnu.org/build/16064>.

* gnu/packages/grub.scm (qemu-for-tests): New variable.
  (grub): Use it.
2013-08-21 02:19:36 +02:00
Ludovic Courtès
bbc08c7940 gnu: qemu: Install the Info manuals.
* gnu/packages/qemu.scm (qemu): Add `install-info' phase.  Add Texinfo
  as an input.
2013-08-21 02:19:36 +02:00
Andreas Enge
86f1537d3f gnu: Move non-X11 fonts from module xorg to fonts.
* gnu/packages/fonts.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add module fonts.
* gnu/packages/xorg.scm (font-bitstream-vera-ttf): Move this...
* gnu/packages/fonts.scm (ttf-bitstream-vera): ...to this.
* gnu/packages/xorg.scm (freefont-ttf): Move this...
* gnu/packages/fonts.scm (freefont-ttf): ...to this.
2013-08-20 15:03:10 +02:00
Andreas Enge
124b7f1e0f gnu: xorg: Shorten commented out packages.
* gnu/packages/xorg.scm: Shorten package definitions that are already
    commented out, keeping only the reason for not including them.
2013-08-20 14:35:38 +02:00
Andreas Enge
45f0ae8229 gnu: xorg: Remove non-free font font-bh-ttf/font-luxi-ttf.
* gnu/packages/xorg.scm (font-luxi-ttf): Comment out variable.
2013-08-20 14:27:43 +02:00
Ludovic Courtès
5aa601a37b gnu: glib: Add `file' as a propagated input.
* gnu/packages/glib.scm (intltool): Add FILE as an input.
2013-08-20 00:57:25 +02:00
Ludovic Courtès
7dca30734e gnu: Add exiv2 and Geeqie.
* gnu/packages/geeqie.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-08-20 00:57:25 +02:00
Ludovic Courtès
e858326a0f gnu: bigloo: Update to 4.0b.
* gnu/packages/scheme.scm (bigloo): Update to 4.0b.  Patch the
  `configure-gc' scripts.  Remove `patch-absolute-file-names' phase.
* gnu/packages/patches/bigloo-gc-shebangs.patch: Adjust to new version.
2013-08-20 00:57:24 +02:00
Cyril Roelandt
ba95e7028f list-packages: properly specify the size of images.
* build-aux/list-packages.scm (package->sxml, packages->sxml): specify the size
  of images in pixels (see
  http://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-height)
2013-08-19 01:29:56 +02:00
Ludovic Courtès
f99f6fd6fa gnu: Add GNU Ocrad.
* gnu/packages/ocrad.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-08-19 00:52:49 +02:00
Ludovic Courtès
482f8a07e3 gnu: freefont: Synchronize synopsis.
* gnu/packages/xorg.scm (freefont-ttf): Synchronize synopsis with the
  Womb.
2013-08-19 00:52:20 +02:00
Alex Sassmannshausen
b866e4b379 list-packages: Add missing closing </div> after footer include.
* build-aux/list-packages.scm (list-packages): Add missing closing </div>
  after footer include.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-08-19 00:28:17 +02:00
Cyril Roelandt
251fbfddb7 list-packages: Remove a useless "colspan" attribute.
* build-aux/list-packages.scm (package->sxml): remove a useless "colspan"
  attribute.
2013-08-17 23:08:31 +02:00
Cyril Roelandt
0e5b0f78f6 list-packages: Add an "alt" attribute for the logos.
* build-aux/list-packages.scm (package->sxml): add an alternative text for the
  logos of the packages.
2013-08-17 20:05:48 +02:00
Ludovic Courtès
9a9e72d5ad gnu: Add Shadow.
* gnu/packages/system.scm (shadow): New variable.
2013-08-17 15:46:46 +02:00
Ludovic Courtès
c134056a9b gnu: linux-pam: Install headers under $includedir/security.
* gnu/packages/linux.scm (linux-pam): Add `--includedir' configure flag.
2013-08-17 15:44:43 +02:00
Ludovic Courtès
10d3ab1073 gnu: Add GNU Freefont.
* gnu/packages/xorg.scm (freefont-ttf): New variable.
2013-08-17 00:07:40 +02:00
Ludovic Courtès
50731c51a4 gnu: Remove QEMU-KVM, which is no longer needed.
* gnu/packages/qemu.scm (qemu-kvm): Remove.
  (qemu): Incorporate parts of QEMU-KVM that used to be inherited.
  (qemu-kvm/smb-shares): Rename to...
  (qemu/smb-shares): ... this.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Adjust
  accordingly.
2013-08-16 23:55:51 +02:00
Ludovic Courtès
e928da09c9 gnu: Add Bitstream Vera.
* gnu/packages/xorg.scm (font-bitstream-vera-ttf): New variable.
2013-08-15 23:51:52 +02:00
Ludovic Courtès
3b4f21bd1b gnu: Correct name and description of the Luxi font package.
* gnu/packages/xorg.scm (font-bitstream-type1): Rename to...
  (font-luxi-ttf): ... this.  Change name to "font-luxi-ttf".  Adjust
  synopsis and description.
2013-08-15 23:51:52 +02:00
Cyril Roelandt
e12b3eb93e Make "guix -h" work as "guix --help".
* guix/ui.scm (guix-main): have the same behaviour for the "-h" and "--help"
  options.
2013-08-15 21:03:32 +02:00
Cyril Roelandt
1b50671ee1 list-packages: remove useless "language" attribute of "script" element
See http://www.w3.org/TR/html5-diff/#changed-attributes for more information.

* build-aux/list-packages.html (insert-js): remove "language" attribute, useless for the
  "script" element.
2013-08-15 19:30:21 +02:00
Cyril Roelandt
2ad6bfaba8 list-packages: remove deprecated "height" attribute on "td" element.
See http://www.w3.org/TR/html5-diff/#obsolete-attributes for more information.

* build-aux/list-packages.html(package-sxml)[description-id]: remove "height"
  attribute for "td" elements.
2013-08-15 17:19:34 +02:00
Alex Sassmannshausen
0938cd2731 list-packages: Tidying and refactoring in preparation for substantive changes.
* build-aux/list-packages.scm (package->sxml)[license, status]: Add
  title for <a> element.
  Add alt and title for gnu-logo <img> element.  Add title to package
  website <a> element.
  (packages->sxml): Wrap <div id="intro"> intro paragraph in <p> element.
  Add table header row to <table id="packages">
  Add <a> back to top of the page beneath table.
  (insert-css, insert-js): New procedures.
  (list-packages): Move JavaScript to 'insert-js', and CSS to 'insert-css'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-08-15 16:42:29 +02:00
Alex Sassmannshausen
8bdf5241dc list-packages: Centralise CSS styling in <head>.
* build-aux/list-packages.scm (package-logo): Assign class of
  'package-description' to package synopsis div; 'package-logo'.  Move inline
  CSS where possible.
  (packages->sxml): Assign id of 'intro' to intro div, 'packages' to the
  table. Move inline CSS.
  (list-packages): Create new <style> section, containing all inline CSS.
  Move JavaScript <script> section to above banner include to place it in
  <head>.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-08-15 16:32:58 +02:00
Ludovic Courtès
1af63b797c Update `eo.po'. 2013-08-15 11:46:42 +02:00
Andreas Enge
25352fe106 gnu: Add ripperX.
* gnu/packages/mp3.scm (ripperx): New variable.
* gnu/packages/patches/ripperx-libm.patch: New file.
* gnu-system.am (dist_patch_DATA): Add patch.
2013-08-07 19:13:46 +02:00
Andreas Enge
6bfc16d93c gnu: Add cdparanoia.
* gnu/packages/cdrom.scm (cdparanoia): New variable.
* gnu/packages/patches/cdparanoia-fpic.patch: New file.
* gnu-system.am: Add patch.
2013-08-07 19:02:56 +02:00
Andreas Enge
2ae92cbcc1 gnu: Add lame.
* gnu/packages/mp3.scm (lame): New variable.
2013-08-07 18:07:21 +02:00
Andreas Enge
fd89b36b5b gnu: texlive: Update to 2013.
* gnu/packages/texlive.scm (texlive): Update to 2013.
2013-08-07 15:57:14 +02:00
Andreas Enge
755693a42d gnu: xorg: Install fonts into package output instead of into font-util.
* gnu/packages/xorg.scm (font-adobe100dpi, font-adobe75dpi, font-misc-misc,
    font-schumacher-misc): Add configure flag to modify FONTROOTDIR.
2013-08-06 20:53:12 +02:00
Andreas Enge
9c2ecede41 gnu: fontconfig: Update to 2.10.93.
* gnu/packages/fontutils.scm (fontconfig): Update to 2.10.93.
2013-08-05 23:15:25 +02:00
Andreas Enge
2e77dc3027 gnu: harfbuzz: Update to 0.9.19.
* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.19.
2013-08-05 23:08:50 +02:00
Andreas Enge
9c68798d98 gnu: mpfrcx: Update to 0.4.2.
* gnu/packages/algebra.scm (mpfrcx): Update to 0.4.2.
2013-08-05 22:14:44 +02:00
Andreas Enge
5a15ed5098 gnu: fplll: Update to 4.0.4.
* gnu/packages/algebra.scm (fplll): Update to 4.0.4.
2013-08-05 22:11:27 +02:00
Andreas Enge
7abe196529 gnu: emacs: Use gtk+.
* gnu/packages/emacs.scm (emacs): Enable input gtk+ instead of libXaw.
2013-08-05 21:59:56 +02:00
Andreas Enge
0ceea4f3ed gnu: fontconfig: Look for fonts in user profile.
* gnu/packages/fontutils.scm (fontconfig): Add configure flag.
2013-08-05 21:59:49 +02:00
Andreas Enge
0327ced235 gnu: gtk+: Synchronise description with GSRC.
* gnu/packages/gtk.scm (gtk+): Modify description.
2013-08-05 19:55:01 +02:00
Andreas Enge
2b24faa295 gnu: Rename "libapr" to "apr" and "libaprutil" to "apr-util".
* gnu/packages/apr.scm: Rename file from libapr.scm.
* gnu/packages/patches/apr-skip-getservbyname-test.patch: Rename file
    from libapr-skip-getservbyname-test.patch.
* gnu-system.am (GNU_SYSTEM_MODULES): Rename module libapr to apr.
* gnu-system.am (dist_patch_DATA): Rename patch file.
* gnu/packages/apr.scm (apr): Rename from libapr.
* gnu/packages/apr.scm (apr-util): Rename from libaprutil, change
    input name.
* gnu/packages/version-control.scm (subversion): Change input name.
2013-08-05 15:12:50 +02:00
Ludovic Courtès
75c6fd43ed gnu: Add Xnee.
* gnu/packages/xnee.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-07-20 00:50:35 +02:00
Ludovic Courtès
7c80a8b618 gnu: ddrescue: Update to 1.17.
* gnu/packages/ddrescue.scm (ddrescue): Update to 1.17.  Add lzip as a
  native input.
2013-07-20 00:32:16 +02:00
Ludovic Courtès
0f323dad0e gnu: Add lzip.
* gnu/packages/compression.scm (lzip): New variable.
2013-07-20 00:24:17 +02:00
Ludovic Courtès
3dfd7cef0d Update `TODO'. 2013-07-19 23:22:59 +02:00
Ludovic Courtès
044498a0b9 build: Bump version to 0.4.
* configure.ac: Switch to 0.4.
2013-07-19 00:08:24 +02:00
Ludovic Courtès
8b2d9e5d44 doc: Improve build instructions in README and HACKING.
* README (Requirements): Remove Nixpkgs.  Remove mentions of building
  from Git.
  (Installation): Refer to the manual.
* HACKING: List requirements for when building from Git.
  Remove the `dot: Command not found' error.
2013-07-19 00:07:03 +02:00
Ludovic Courtès
3253830d46 Update NEWS. 2013-07-17 15:33:48 +02:00
Ludovic Courtès
6023cc7429 gnu: linux-libre: Add alternate URLs.
Fixes <http://bugs.gnu.org/14851>.
Reported by Andreas Enge <andreas@enge.fr>.

* gnu/packages/linux.scm (linux-libre-urls): New procedure.
  (linux-libre-headers, linux-libre): Use it.
2013-07-17 15:32:52 +02:00
Ludovic Courtès
1855577207 gnu: tzdata: Update hash.
Fixes <http://bugs.gnu.org/14890>.
Reported by Andreas Enge <andreas@enge.fr>.

* gnu/packages/base.scm (tzdata): Update hash.
2013-07-17 14:22:05 +02:00
Ludovic Courtès
b81e194706 doc: Add "Adding New Packages".
* doc/guix.texi (Adding New Packages): New section.
  (Packaging Guidelines): Make a subsection thereof.
  (From the Source Tarball to the Package): New subsection.
  (Contributing): Link to "Adding New Packages".
  (Package Modules): Link to modules in Guile's manual.
2013-07-17 11:59:48 +02:00
Ludovic Courtès
c71493c8b9 build: Check the availability of i686-linux binaries.
* build-aux/check-available-binaries.scm (%supported-systems): New
  variable.
  (native): Map over these.
2013-07-17 11:07:28 +02:00
Ludovic Courtès
1959fb04dc build: Provide a replacement (srfi srfi-37) when the user's one is broken.
* srfi/srfi-37.scm.in: New file, taken from Guile 2.0.9.
* m4/guix.m4: New macro.
* configure.ac: Use it.  Define Automake conditional `INSTALL_SRFI_37'.
* Makefile.am (nobase_nodist_guilemodule_DATA)[INSTALL_SRFI_37]: Add
  srfi/srfi-37.scm.
  (GOBJECTS)[INSTALL_SRFI_37]: Add srfi/srfi-37.go.
  (srfi/srfi-37.scm)[INSTALL_SRFI_37]: New target.
  (EXTRA_DIST): Add srfi/srfi-37.scm.in.
2013-07-17 11:05:19 +02:00
Ludovic Courtès
4a328f7342 doc: Mark 2.0.5 as being the minimum Guile version.
* doc/guix.texi (Requirements): Require Guile 2.0.5+.
* README: Ditto.
2013-07-17 11:01:42 +02:00
Ludovic Courtès
88ebd5e699 Update .po files. 2013-07-17 11:00:28 +02:00
Ludovic Courtès
5939006b9b Update NEWS. 2013-07-16 23:46:01 +02:00
Ludovic Courtès
63f6004b95 doc: Refer to guix-devel@gnu.org.
* doc/guix.texi (Contributing): Refer to guix-devel@gnu.org.
2013-07-16 23:13:04 +02:00
Ludovic Courtès
e23dc82c29 gnu: subversion: Fetch over plain HTTP.
* gnu/packages/version-control.scm (subversion): Use the http:// URL
  to work around <http://bugs.gnu.org/14884>.  Reported by Mark Weaver
  and Andreas Enge.
2013-07-16 23:12:38 +02:00
Ludovic Courtès
73d9f3c5b6 list-packages: Add links to hydra.gnu.org.
* build-aux/list-packages.scm (package->sxml)[status]: New procedure.
  Use it at the end of each description.
  (packages->sxml): Add link to hydra.gnu.org.
2013-07-16 22:28:06 +02:00
Ludovic Courtès
c5a1902ae4 gnu: libphidget: Add "debug" output.
* gnu/packages/libphidget.scm (libphidget): Add `outputs' field.
2013-07-16 22:15:23 +02:00
Ludovic Courtès
4ec09bb410 hydra: Fix typo.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Use `cons', not `append'.
2013-07-16 15:27:15 +02:00
Ludovic Courtès
77bed84246 hydra: Build for all the specified systems.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Pick all the `system'
  keys in ARGUMENTS.
  [cross-jobs]: Turn into a procedure, with a `system' parameter.
  Build packages for all of SYSTEMS and %CROSS-TARGETS.
2013-07-16 13:42:34 +02:00
Ludovic Courtès
195e81aa52 hydra: Distinguish between jobs for different system types.
* build-aux/hydra/gnu-system.scm (package-job, package-cross-job):
  Append `.SYSTEM' to the job name.
2013-07-16 09:59:25 +02:00
Ludovic Courtès
4b7f3407e9 hydra: Honor the `system' argument.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Really look up the
  `system' symbol in ARGUMENTS.
2013-07-16 09:47:48 +02:00
Andreas Enge
d409c8ab88 gnu: libapr, libaprutil: Upgrade.
* gnu/packages/libapr.scm (libapr): Upgrade to 1.4.8.
* gnu/packages/libapr.scm (libaprutil): Upgrade to 1.5.2.
2013-07-16 07:50:34 +02:00
Ludovic Courtès
079d127391 guix package: Allow separate install of several outputs of the same package.
* guix/scripts/package.scm (guix-package)[process-actions](same-package?):
  New procedure.  Use it instead of `alist-delete' when filtering out
  duplicate packages from the profile.
2013-07-15 23:51:28 +02:00
Ludovic Courtès
56fbf2629f build: Check for the availability of binaries upon "distcheck".
* build-aux/check-available-binaries.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
  (distcheck-hook, assert-binaries-available): New target.
2013-07-15 23:51:28 +02:00
Ludovic Courtès
50af57901a Thank the translators. 2013-07-15 23:51:27 +02:00
Ludovic Courtès
a0daf4a04e Add `pt_BR' translation. 2013-07-15 23:51:27 +02:00
Andreas Enge
4169a4bcb5 gnu: pango, gtk+: Propagate inputs.
* gnu/packages/gtk.scm (pango): Propagate input cairo.
* gnu/packages/gtk.scm (gtk+): Propagate inputs atk, gdk-pixbuf and pango;
    drop input cairo, propagated through pango.
2013-07-15 23:15:45 +02:00
Andreas Enge
cf2135ff48 Add gtk+.
* gnu/packages/gtk.scm (pango): Propagate input harfbuzz.
* gnu/packages/gtk.scm (gtk+): New variable.
2013-07-15 22:41:19 +02:00
Ludovic Courtès
ffd2093440 gnu: make-bootstrap: Skip tests for the statically-linked gawk.
* gnu/packages/make-bootstrap.scm (%static-inputs)[gawk]: Add #:tests? #f.
2013-07-14 16:58:43 +02:00
Ludovic Courtès
614bdaffbf Update `eo.po'. 2013-07-14 16:44:15 +02:00
Ludovic Courtès
3b8258c569 Rename (guix web) to (guix http-client).
* guix/web.scm: Rename to...
* guix/http-client.scm: ... this.
* guix/gnu-maintenance.scm, guix/scripts/substitute-binary.scm,
  Makefile.am, po/POTFILES.in: Update accordingly.
2013-07-14 16:44:15 +02:00
Nikita Karetnikov
84dbbc7651 doc: Add "Building from Git" to 'HACKING'. 2013-07-13 21:35:14 +00:00
Ludovic Courtès
2096b516e0 guix package: Fix handling of `-e'.
This fixes a bug whereby a command like

  guix package -e '(@@ (gnu packages base) gnu-make-boot0)'

would only succeed when the outputs of that package are available, and
otherwise fail with "/nix/store/... is not valid".

* guix/scripts/package.scm (guix-package)[process-action](package->tuple):
  Leave P as is in the result.  Move `package->tuple' call from INSTALL*
  to INSTALL.
2013-07-12 23:27:35 +02:00
Ludovic Courtès
e14c39291b ui: Ignore SIGPIPE and catch `system-error' exceptions.
* guix/ui.scm (initialize-guix): Call `sigaction'.
  (call-with-error-handling): Wrap `thunk' in a (catch 'system-error ...).
2013-07-12 23:01:18 +02:00
Ludovic Courtès
e3ccdf9e96 guix package: Reuse FTP connections for subsequent `latest-release' calls.
* guix/gnu-maintenance.scm (latest-release): Add `ftp-close' and
  `ftp-open' keyword parameters.
* guix/scripts/package.scm (ftp-open*): New variable.
  (check-package-freshness): Call `latest-release' with `ftp-open*' and
  a no-op procedure.
2013-07-12 22:59:33 +02:00
Ludovic Courtès
1f495e04c1 gnu-maintenance: `latest-release' closes its connection.
* guix/gnu-maintenance.scm (latest-release): Close CONN before
  returning.
2013-07-12 22:26:24 +02:00
Ludovic Courtès
8e5e7299d1 gnu: plotutils: Allow compilation with newer libpng.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/patches/plotutils-libpng-jmpbuf.patch: New file.
* gnu/packages/plotutils.scm (plotutils): Add
  `plotutils-libpng-jmpbuf.patch' as an input, and apply it.
2013-07-12 22:25:30 +02:00
Ludovic Courtès
f50ad3e777 gnu: freeipmi: Upgrade to 1.2.8.
* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.2.8.
2013-07-12 01:05:27 +02:00
Ludovic Courtès
d4781e8c23 gnu: libidn: Upgrade to 1.28.
* gnu/packages/libidn.scm (libidn): Upgrade to 1.28.
2013-07-12 01:05:06 +02:00
Ludovic Courtès
e0bb2e6be1 gnu: gnupg: Upgrade support libraries.
* gnu/packages/gnupg.scm (libgpg-error): Upgrade to 1.12.
  (libassuan): Upgrade to 2.1.1.
2013-07-12 01:04:32 +02:00
Ludovic Courtès
ce689ccf18 substitute-binary: Directly replace the global `regexp-exec'.
* guix/scripts/substitute-binary.scm (%regexp-exec-mutex, string->uri):
  Remove.
  (regexp-exec): Replace this global binding by a thread-safety wrapper.
  (fields->alist): Remove `with-mutex', and directly alias `recutils->alist'.
2013-07-11 22:42:41 +02:00
Ludovic Courtès
6a012c5f51 gnu: help2man: Upgrade to 1.43.3.
* gnu/packages/help2man.scm (help2man): Upgrade to 1.43.3.
2013-07-11 22:30:46 +02:00
Ludovic Courtès
d934fd65af gnu: xorriso: Upgrade to 1.3.0.
* gnu/packages/cdrom.scm (xorriso): Upgrade to 1.3.0.
2013-07-11 22:30:13 +02:00
Ludovic Courtès
8b79e2e641 substitute-binary: Increase the default timeout.
* guix/scripts/substitute-binary.scm (%fetch-timeout): Set to 5 seconds.
2013-07-11 22:22:22 +02:00
Ludovic Courtès
35935b8a1d gnu: automake: Upgrade to 1.14.
* gnu/packages/autotools.scm (automake): Upgrade to 1.14.
2013-07-11 22:21:47 +02:00
Ludovic Courtès
560d4787f4 guix refresh: Keep only the newest versions of packages as upgrade candidates.
* guix/scripts/refresh.scm (guix-refresh)[keep-newest]: New procedure.
  Use it to keep only once copy of each package.
2013-07-11 19:56:30 +02:00
Ludovic Courtès
d04434c067 list-packages: Show the package logo, when available.
* build-aux/list-packages.scm (lookup-gnu-package): New procedure.
  (package->sxml): Add the package logo, when available, next to the
  description.
2013-07-10 23:16:07 +02:00
Ludovic Courtès
6a3380dfbf Update eo.po. 2013-07-10 22:34:05 +02:00
Ludovic Courtès
c4ca9411f9 gnu-maintenance: Add `doc-description' field to <gnu-package-descriptor>.
* guix/gnu-maintenance.scm (%gsrc-package-list-url): New variable.
  (<gnu-package-descriptor>): Add `doc-description' field.
  (official-gnu-packages)[group-package-fields]: Rename to...
  [read-records]: ... this.  Reverse the result.
  [gsrc-description]: New procedure.
  Add the "description" field to the alist passed to `alist->record'.
2013-07-10 22:34:03 +02:00
Ludovic Courtès
836d10f154 records: recutils->alist' recognizes lines starting with a +'.
* guix/records.scm (%recutils-plus-rx): New variable.
  (recutils->alist): Use it to read + lines.
* tests/records.scm ("recutils->alist with + lines"): New test.
2013-07-10 21:53:29 +02:00
Ludovic Courtès
b0efe83a8f gnu-maintenance: Use `recutils->alist'.
* guix/gnu-maintenance.scm (official-gnu-packages)[group-package-fields]:
  Rewrite in terms of `recutils->alist'.  Remove `state' parameter.
  Specify "doc-url" and "language" as multiple-value keys in the
  `alist->record' call.
2013-07-10 21:52:55 +02:00
Ludovic Courtès
c8772a7a21 records: `alist->record' supports multiple-field occurrences.
* guix/records.scm (alist->record): Add `multiple-value-keys'
  parameter.  Update docstring, and honor it.
* tests/records.scm ("alist->record"): New record.
2013-07-10 21:52:51 +02:00
Ludovic Courtès
b7b8828801 records: `recutils->alist' recognizes comments.
* guix/records.scm (%recutils-comment-rx): New variable.
  (recutils->alist): Match comments.
* tests/records.scm ("recutils->alist"): Add comments.
2013-07-10 18:01:12 +02:00
Ludovic Courtès
fdc1bf659d records: Add `recutils->alist' for public consumption.
* guix/records.scm (%recutils-field-rx): New variable.
  (recutils->alist): New procedure, formerly known as `fields->alist'.
* guix/scripts/substitute-binary.scm (fields->alist): Use it.
* tests/records.scm ("recutils->alist"): New test.
2013-07-10 17:01:08 +02:00
Ludovic Courtès
c0edcc3c19 gnu: libpng: Upgrade to 1.5.17.
* gnu/packages/libpng.scm (libpng): Upgrade to 1.5.17.
2013-07-10 15:55:39 +02:00
Ludovic Courtès
edd258fd6b list-packages: Write out the HTML page as UTF-8.
* build-aux/list-packages.scm (list-packages): Install the "C" locale.
  Write out as UTF-8.
2013-07-10 11:52:35 +02:00
Ludovic Courtès
03aedf8d7a tests: Fix guix-package.sh in the presence of multiple-output `make'.
* tests/guix-package.sh: For $boot_make_drv, take only the "out" output.
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-07-10 01:00:19 +02:00
Ludovic Courtès
b592f7113e Add `build-aux/list-packages.scm'.
* build-aux/list-packages.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2013-07-10 00:27:53 +02:00
Ludovic Courtès
c769406010 Merge branch 'core-updates' 2013-07-09 22:17:18 +02:00
Ludovic Courtès
91ef73d464 doc: Add "Installing Debugging Files".
* doc/guix.texi (Installing Debugging Files): New node.
  (Packages with Multiple Outputs): Add cross-reference.
2013-07-09 00:24:54 +02:00
Ludovic Courtès
6e721c4d02 doc: Add "Packages with Multiple Outputs" section.
* doc/guix.texi (Packages with Multiple Outputs): New node.
  (Invoking guix package): Refer to it.
2013-07-08 23:49:43 +02:00
Ludovic Courtès
ee48b283fa tests: Adjust `package-field-location' test for Guile <= 2.0.6.
* tests/packages.scm ("package-field-location"): Check the result of
  `read-at' against both VALUE and (FIELD VALUE).
  Reported by Matthew Lien - 練喆明" <bluet@bluet.org>.
2013-07-08 22:53:31 +02:00
Ludovic Courtès
caddc24fa4 build: Set the umask to 0022 before running the daemon for tests.
* test-env.in: Run "umask 0022" before running the daemon.
  Reported by Matthew Lien - 練喆明 <bluet@bluet.org>
2013-07-08 22:43:53 +02:00
Ludovic Courtès
4ca0cefd1b build: Set the umask to 0022 before running the daemon for tests.
* test-env.in: Run "umask 0022" before running the daemon.
  Reported by Matthew Lien - 練喆明 <bluet@bluet.org>
2013-07-08 22:37:02 +02:00
Ludovic Courtès
2c9143a1f3 gnu: gettext: Upgrade to 0.18.3.
* gnu/packages/gettext.scm (gettext): Upgrade to 0.18.3.
  Remove patch.  Change `patch-tests' phase to use (which "sh'); keep it
  regardless of whether we're cross compiling.
2013-07-08 00:13:15 +02:00
Ludovic Courtès
acf428dd0b gnu: tzdata: Upgrade to 2013d.
* gnu/packages/base.scm (tzdata): Upgrade to 2013d.
2013-07-07 23:40:36 +02:00
Ludovic Courtès
b208a00501 doc: Move the packaging guidelines to the manual.
* HACKING (Packaging Guidelines): Remove.
* doc/guix.texi (Packaging Guidelines): New node.
2013-07-07 23:26:31 +02:00
Ludovic Courtès
8b315a6dd5 doc: Add a "Porting" section.
* HACKING (Porting the Guix distro on a new platform): Remove.
* doc/guix.texi (Porting): New node.  Describe cross-compilation as the
  only approach.
2013-07-07 01:03:03 +02:00
Ludovic Courtès
401c53c469 doc: Add a "Boostrapping" section.
* doc/guix.texi (Package Modules): New node, with material formerly
  under "GNU Distribution".
  (Bootstrapping): New node.
* Makefile.am (EXTRA_DIST): Add doc/images/bootstrap-graph.dot and
  doc/images/bootstrap-graph.eps.
  (infoimagedir, dist_infoimage_DATA, DOT_OPTIONS): New variable.
  (.dot.png, .dot.eps, doc/guix.pdf, doc/guix.info, doc/guix.ps): New
  targets.
* doc/images/bootstrap-graph.dot: New file.
2013-07-07 00:29:50 +02:00
Ludovic Courtès
c8ebc82187 gnu: gcc: Add Texinfo to the native inputs.
* gnu/packages/gcc.scm (gcc-4.7): Add `native-inputs' field.
  (gcc-4.8): Remove outdated comment.
* gnu/packages/base.scm (gcc-boot0): Add `native-inputs' field.
2013-07-06 18:08:29 +02:00
Ludovic Courtès
b97556d75c build: Bail out on unsupported platforms; add `--with-courage'.
* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): New macro.
* configure.ac: Use it.
2013-07-05 21:54:52 +02:00
Ludovic Courtès
3a4ebc1124 gnu: make-bootstrap: guile-static-stripped has no "debug" output.
* gnu/packages/make-bootstrap.scm (%guile-static-stripped): Add
  `outputs' field.
2013-07-05 14:39:47 +02:00
Ludovic Courtès
eb25a30a42 build: Correctly determine the system type for non-Linux systems.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): Find `sed'.  Fix sed pattern in the
  non-Linux case.
2013-07-05 14:14:21 +02:00
Ludovic Courtès
8c95b27ce6 store: Deal with unsupported `setsockopt' operation on GNU/Hurd.
* guix/store.scm (open-connection): Silently ignore ENOPROTOOPT on
  `setsockopt' calls, for the sake of GNU/Hurd.
  Reported by Matthew Lien <bluet@bluet.org> at
  <http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00020.html>.
2013-07-04 22:49:00 +02:00
Ludovic Courtès
5363abb776 daemon: Make argp usage compatible with libc on GNU/Hurd.
* nix/nix-daemon/guix-daemon.cc (parse_opt): Cast return value to
  `error_t' for the sake of GNU/Hurd.
  Reported by Matthew Lien <bluet@bluet.org> at
  <http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00002.html>.
2013-07-04 22:46:26 +02:00
Ludovic Courtès
a1c39ede7d Import (guix hash) in build-aux/download.scm.
* build-aux/download.scm: Import (guix hash).
  Reported by Matthew Lien <bluet@bluet.org>.
2013-07-04 13:44:24 +02:00
Ludovic Courtès
82f9b17687 build-system/gnu: Remove the "debug" output when `strip-binaries?' is #f.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Delete "debug"
  from OUTPUTS when STRIP-BINARIES? is false.
* gnu/packages/cross-base.scm (cross-libc): Leave `outputs' unchanged.
  This reverts commit a4627d4.
2013-07-04 13:26:35 +02:00
Ludovic Courtès
a4627d498a gnu: cross-libc: Remove the "debug" output.
* gnu/packages/cross-base.scm (cross-libc): Remove "debug" from the
  `outputs' field.
2013-07-04 11:08:28 +02:00
Ludovic Courtès
9bf62d9b1d gnu: Add a "debug" output for some packages.
* gnu/packages/base.scm (coreutils, gnu-make, glibc): Add a "debug" output.
* gnu/packages/bdw-gc.scm (libgc): Likewise.
* gnu/packages/guile.scm (guile-2.0): Likewise.
* gnu/packages/libffi.scm (libffi): Likewise.
* gnu/packages/multiprecision.scm (gmp, mpfr, mpc): Likewise.
2013-07-03 23:55:04 +02:00
Ludovic Courtès
be58d01a7e build-system/gnu: Write debug files to the "debug" sub-derivation, if any.
* guix/build/gnu-build-system.scm (strip): Add `objcopy-command' keyword
  parameter.
  [debug-output, debug-file-extension]: New variables.
  [debug-file, make-debug-file, add-debug-link]: New procedures.
  [strip-dir]: Use them.
2013-07-03 23:53:31 +02:00
Ludovic Courtès
d475b25953 utils: Re-export alist-cons' and alist-delete'.
* guix/build/utils.scm: Re-export `alist-cons' and `alist-delete'.
2013-07-03 23:08:41 +02:00
Ludovic Courtès
6d73e17bb4 gnu: Add noweb.
* gnu/packages/noweb.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-07-03 15:10:34 +02:00
Ludovic Courtès
2b2fdd45bb gnu: qemu: Upgrade to 1.5.1.
* gnu/packages/qemu.scm (qemu-kvm): Add `--cc' configure option.
  Add PIXMAN and ALSA-LIB as inputs.
  (qemu): Upgrade to 1.5.1  Remove autotool hack for pixman.  Patch
  tests/libqtest.c.  Remove Autoconf, Automake, and Libtool from the
  inputs.  Fix `home-page'.
2013-07-03 01:18:28 +02:00
Ludovic Courtès
423002544d Update NEWS' and TODO'. 2013-07-03 01:18:28 +02:00
Ludovic Courtès
b0fad8a2d4 Use port-sha256' and open-sha256-port'.
* guix/derivations.scm (derivation-hash): Add comment as to why we keep
  the plain `sha256' call.
* guix/scripts/download.scm (guix-download): Use `port-sha256' instead
  of (compose sha256 get-bytevector-all).
* guix/scripts/refresh.scm (update-package): Likewise.
2013-07-03 01:18:24 +02:00
Ludovic Courtès
69927e78de hash: Add `open-sha256-port'.
* guix/hash.scm (GCRY_MD_SHA256): New macro.
  (sha256): Use it.
  (open-sha256-md, md-write, md-read, md-close, open-sha256-port,
  port-sha256): New procedures.
* tests/hash.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
2013-07-02 22:38:03 +02:00
Ludovic Courtès
72626a71a9 Move `sha256' to (guix hash).
* guix/utils.scm (sha256): Move to...
* guix/hash.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
* guix/derivations.scm, guix/scripts/download.scm,
  guix/scripts/hash.scm, guix/scripts/refresh.scm, tests/base32.scm,
  tests/derivations.scm, tests/store.scm: Use (guix hash).
2013-07-01 23:28:21 +02:00
Ludovic Courtès
82323a8085 gnu: liboop: Fix & improve meta-data.
* gnu/packages/lsh.scm (liboop): Fix home page.  Improve `synopsis' and
  `description'.  Thanks to carl hansen <carlhansen1234@gmail.com>, who
  raised it on bug-gsrc@gnu.org.
2013-07-01 11:43:23 +02:00
Ludovic Courtès
1a8b783470 ui: Don't make substituter-related RPCs at all when substitutes are disabled.
Reported by Nikita Karetnikov and Cyril Roelandt.

* guix/ui.scm (show-what-to-build): Call `substitutable-path-info'
  only when USE-SUBSTITUTES? is true.
2013-07-01 00:30:44 +02:00
Ludovic Courtès
a4572a1720 gnu: Add GNU vc-dwim.
* gnu/packages/version-control.scm (vc-dwim): New variable.
2013-07-01 00:18:36 +02:00
Ludovic Courtès
d3066a0d13 gnu: Add GNU Rush.
* gnu/packages/rush.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
2013-06-29 22:20:25 +02:00
Ludovic Courtès
bb7dcaea57 substitute-binary: Avoid dangling connections to the server.
* guix/web.scm (open-socket-for-uri): New procedure.
  (http-fetch): Add `port' keyword parameter; use it.
* guix/scripts/substitute-binary.scm (%random-state): New variable.
  (with-timeout): Wait a little before retrying.
  (fetch): Use `open-socket-for-uri', and keep a copy of the socket in
  variable `port'.  Close PORT upon timeout.
2013-06-29 22:20:25 +02:00
Cyril Roelandt
013ce67b19 gnutls: fix the test-suite for 32 bits systems.
* gnu/packages/patches/gnutls-fix-tests-on-32-bits-system.patch: New file.
* gnu-system.am: Add it here...
* gnu/packages/gnutls.scm (gnutls): ... and use it here.

Thanks to Nikos Mavrogiannopoulos for providing this patch:
http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/6778
2013-06-28 17:26:49 +02:00
Ludovic Courtès
88a0b7b051 gnu: lout: Upgrade to 3.40.
* gnu/packages/lout.scm (lout): Upgrade to 3.40.
2013-06-27 22:36:41 +02:00
Ludovic Courtès
3bba7b0a8f download: Add Savannah's master site.
* guix/download.scm (%mirrors): Add the "-noredirect" version of
  Savannah.
2013-06-27 22:36:23 +02:00
Ludovic Courtès
96a8259a9d gnu: lsh: Upgrade to 2.1.
* gnu/packages/lsh.scm (lsh): Upgrade to 2.1.  Add Nettle as an input.
  Remove now unneeded patches.
* gnu/packages/patches/lsh-guile-compat.patch,
  gnu/packages/patches/lsh-no-root-login.patch,
  gnu/packages/patches/lsh-pam-service-name.patch: Remove.
* gnu-system.am (dist_patch_DATA): Remove them.
2013-06-27 22:27:26 +02:00
Ludovic Courtès
ca16cb9606 gnu: gcc: Use `gcc-configure-flags-for-triplet' when cross-compiling GCC.
* gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): Move to...
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): ... here.  New
  procedure.
  (gcc-4.7): Use it when (%current-target-system) is true.
2013-06-26 23:02:49 +02:00
Ludovic Courtès
58ab9f9b8e build: Add "mips64el-linux-gnuabi64" as a cross build target.
* build-aux/hydra/gnu-system.scm (%packages-to-cross-build): Add
  %bootstrap-tarballs.
  (%cross-targets): Add "mips64el-linux-gnuabi64".
2013-06-26 22:41:09 +02:00
Ludovic Courtès
beda99e882 gnu: cross-base: Add support for `mips64el-linux-gnu-gnuabi64' (N64 ABI).
* gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): New
  procedure.
  (cross-gcc): Use it.
  (xgcc-mips64el): Use *-gnuabi64 instead of the N32 ABI.
2013-06-26 22:39:21 +02:00
Ludovic Courtès
5708485357 gnu: make-bootstrap: Fix cross compilation of binutils-static.
* gnu/packages/make-bootstrap.scm (%binutils-static): Inherit configure
  flags from BINUTILS.
2013-06-26 17:23:56 +02:00
Ludovic Courtès
11acdf1747 gnu: make-bootstrap: Have %gcc-static actually static when cross building.
* gnu/packages/make-bootstrap.scm (%gcc-static): Pass `-static' through
  `LDFLAGS' when cross-compiling.
2013-06-26 17:01:10 +02:00
Ludovic Courtès
de1d41f980 gnu: gcc: Allow cross-compilation of GCC itself.
* gnu/packages/gcc.scm (gcc-4.7): Define `CC_FOR_TARGET',
  `AR_FOR_TARGET', etc. when cross-compiling.
2013-06-26 16:51:39 +02:00
Ludovic Courtès
e7133c7680 gnu: cross-base: Make `glibc-dynamic-linker' do the right thing.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Determine SYSTEM
  based on (%current-target-system) when it's true.
* gnu/packages/cross-base.scm (cross-gcc): Directly call
  (package-arguments gcc-4.7) from the body of `arguments'.
2013-06-26 16:27:51 +02:00
Ludovic Courtès
c8fa51f2d6 gnu: cross-base: Build Binutils with `--with-sysroot=/'.
* gnu/packages/cross-base.scm (cross-binutils): Use `--with-sysroot=/'.
2013-06-26 14:31:24 +02:00
Ludovic Courtès
9306d350b2 build: Build the bootstrap tarballs on Hydra.
* build-aux/hydra/gnu-system.scm (%packages-to-cross-build): Uncomment
  the bootstrap tarball packages.
2013-06-25 23:45:34 +02:00
Ludovic Courtès
a410a0105d gnu: make-bootstrap: Allow cross-compilation of the bootstrap tarballs.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc): Turn
  `inputs' into a thunk.  Add `native-inputs', and pass it to
  `package-with-explicit-inputs'.
  (%static-inputs): Add %BASH-STATIC as an input to gawk when cross
  building.
  (%glibc-stripped): When cross compiling,
  use (glibc-for-bootstrap (cross-libc)) as the basis.
  (%gcc-static): Base on GCC-4.7, not GCC-FINAL.
  (tarball-package): TAR and XZ are native inputs.  Choose the tarball
  file name based on (%current-target-system) too.
2013-06-25 23:39:14 +02:00
Ludovic Courtès
a3cff41dd1 build-system/gnu: `package-with-explicit-inputs' skips non-GBS packages.
* guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]:
  Leave P unchanged if its build system is not GNU-BUILD-SYSTEM.
2013-06-25 23:04:32 +02:00
Ludovic Courtès
0de71c233c gnu: cross-base: Make the cross tools native inputs.
* gnu/packages/cross-base.scm (cross-gcc): Change `inputs' to
  `native-inputs', and set `inputs' to the empty list.
  (cross-libc): Likewise.
2013-06-25 20:57:14 +02:00
Ludovic Courtès
7e873a6708 build-system/gnu: Augment `package-with-explicit-inputs' for cross builds.
* guix/build-system/gnu.scm (package-with-explicit-inputs): Add
  `native-inputs' keyword parameter.  Allow INPUTS and NATIVE-INPUTS to
  be thunks.
2013-06-25 20:54:56 +02:00
Ludovic Courtès
6e1c4093d2 gnu: bigloo: Explicitly link libbigloopthread against libgc.
* gnu/packages/scheme.scm (bigloo): In `configure' phase, change
  api/thread/src/Makefile to explicitly link against libgc.
2013-06-25 20:31:10 +02:00
Ludovic Courtès
ac5c1cec86 build-system/trivial: Don't bind `%target' in the builder.
* guix/build-system/trivial.scm (trivial-cross-build): Don't bind
  `%target' here since this causes problem when BUILDER
  contains (use-modules ...) clauses, and can be achieved differently
  anyway.
2013-06-25 00:06:31 +02:00
Ludovic Courtès
1e4310f1f2 gnu: gawk: Allow cross-compilation.
* gnu/packages/gawk.scm (gawk)[arguments]: Annihilate the
  `check-for-shared-lib-support' target when cross-compiling.
2013-06-25 00:00:09 +02:00
Ludovic Courtès
f7c3429073 build-system/gnu: Disable test suite when cross building.
* guix/build-system/gnu.scm (gnu-cross-build): Change #:tests? to
  default to #f.
2013-06-24 23:26:50 +02:00
Andreas Enge
527e796125 gnu: Add gdk-pixbuf.
* gnu/packages/gtk.scm (gdk-pixbuf): New variable.
2013-06-23 22:03:57 +02:00
Ludovic Courtès
ea2ddd3334 gnu: ed: Upgrade to 1.9.
* gnu/packages/ed.scm (ed): Upgrade to 1.9.
2013-06-22 19:03:35 +02:00
Ludovic Courtès
2c034e1bd0 gnu: gcc-4.8: Upgrade to 4.8.1.
* gnu/packages/gcc.scm (gcc-4.8): Upgrade to 4.8.1.
2013-06-22 19:03:10 +02:00
Ludovic Courtès
a62b83d52f gnu: libffi: Upgrade to 3.0.13.
* gnu/packages/libffi.scm (libffi): Upgrade to 3.0.13.
2013-06-22 16:47:09 +02:00
Ludovic Courtès
b15669f37d utils: set-path-environment-variable' calls unsetenv' for empty values.
* guix/build/utils.scm (set-path-environment-variable): When VALUE is
  the empty string, call `unsetenv' instead of `setenv'.
* gnu/packages/guile.scm (guile-2.0)[arguments]: Remove `unsetenv'
  trick.
2013-06-22 16:42:46 +02:00
Ludovic Courtès
ee26820636 gnu: acl, attr: Make `gettext' a native input.
* gnu/packages/acl.scm (acl): Make `gettext' a native input, always.
* gnu/packages/attr.scm (attr): Likewise.
2013-06-22 16:32:30 +02:00
Ludovic Courtès
8572bf5e0c gnu: gmp: Upgrade to 5.1.2.
* gnu/packages/multiprecision.scm (gmp): Update to 5.1.2.
2013-06-22 16:29:40 +02:00
Ludovic Courtès
d16368cf41 gnu: gawk: Upgrade to 4.1.0.
* gnu/packages/gawk.scm (gawk): Update to 4.1.0.  Remove wrong-headed
  comments.
2013-06-22 16:29:19 +02:00
Ludovic Courtès
2a511f7a1a gnu: gzip: Upgrade to 1.6.
* gnu/packages/compression.scm (gzip): Upgrade.
2013-06-22 16:27:13 +02:00
Ludovic Courtès
2f41f51c40 build-system/gnu: Set #:tests? to #f when cross-compiling.
* guix/build/gnu-build-system.scm (check): Add `target' formal
  parameter.  Change `tests?' to default to (not target).
2013-06-22 16:15:23 +02:00
Ludovic Courtès
91a7fde456 download: Don't fail when abbreviating `file://' URIs.
* guix/build/download.scm (uri-abbreviation)[elide-path]: Handle the
  case where URI has no `host' part.
2013-06-22 16:10:25 +02:00
Ludovic Courtès
4ca968eb95 build-system/gnu: Save `environment-variables' after each phase.
* guix/build/gnu-build-system.scm (set-paths): Move `system' call to...
  (gnu-build): ... here.
2013-06-21 00:32:07 +02:00
Ludovic Courtès
56c092ce94 build-system/gnu: Unify with (guix build-system gnu-cross-build).
* guix/build/gnu-build-system.scm (set-paths): Add `native-inputs' and
  `native-search-paths' keyword parameters.  Honor them.
  (configure): Add `target' and `native-inputs' keyword parameters.
  Look for Bash in NATIVE-INPUTS or INPUTS.  Pass `--host' when TARGET
  is true.
  (strip): Add `strip-command' keyword parameter.  Use it.
* guix/build/gnu-cross-build.scm: Remove.
* Makefile.am (MODULES): Adjust accordingly.
* gnu/packages/acl.scm, gnu/packages/attr.scm, gnu/packages/base.scm,
  gnu/packages/bash.scm, gnu/packages/gawk.scm,
  gnu/packages/gettext.scm, gnu/packages/guile.scm,
  gnu/packages/libffi.scm, gnu/packages/libsigsegv.scm,
  gnu/packages/linux.scm, gnu/packages/ncurses.scm,
  gnu/packages/readline.scm, guix/build-system/gnu.scm: Replace
  `%standard-cross-phases' by `%standard-phases'.  Remove references
  to (guix build gnu-cross-build).
2013-06-21 00:25:54 +02:00
Ludovic Courtès
d501fad11c Merge branch 'master' into core-updates
Conflicts:
	gnu/packages/make-bootstrap.scm
2013-06-20 23:51:00 +02:00
Ludovic Courtès
4db00e4210 gnu: libgc: Always build with -DUSE_LIBC_PRIVATES.
* gnu/packages/bdw-gc.scm (libgc): Add `arguments' field.
* gnu/packages/make-bootstrap.scm (%guile-static): Remove local `libgc'.
2013-06-20 23:47:22 +02:00
Ludovic Courtès
fba96c4885 gnu: libgc: Switch to 7.2d.
* gnu/packages/bdw-gc.scm (libgc): Upgrade to 7.2d.
  (libgc-7.2): Remove.
2013-06-20 23:45:41 +02:00
Ludovic Courtès
f3211ef386 build: Move Hydra recipe to build-aux/hydra.
* hydra.scm: Rename to...
* build-aux/hydra/gnu-system.scm: ... this.
* Makefile.am (EXTRA_DIST): Adjust accordingly.
2013-06-20 23:41:31 +02:00
Ludovic Courtès
fe1818e26a package: Fix i18n of the number of packages message.
* guix/scripts/package.scm (guix-package)[process-actions]: Use `N_' for
  i18n of the number of packages message.
2013-06-20 23:41:31 +02:00
Ludovic Courtès
a85060efec substitute-binary: Report progress while downloading.
* guix/scripts/substitute-binary.scm (decompressed-port): Improve docstring.
  (progress-report-port): New procedure.
  (guix-substitute-binary)["--substitute"]: Use it to report progress.
* guix/build/download.scm: Export `progress-proc' and `uri-abbreviation'.
2013-06-20 23:41:28 +02:00
Ludovic Courtès
e3f6f8b448 Update eo.po. 2013-06-19 23:19:35 +02:00
Ludovic Courtès
d516736c58 build: Split Makefile.am into two parts.
* Makefile.am (MODULES): Move gnu/* to gnu-system.am.
  (patchdir, dist_patch_DATA, bootstrapdir,
  bootstrap_x86_64_linuxdir, bootstrap_i686_linuxdir,
  dist_bootstrap_x86_64_linux_DATA, dist_bootstrap_i686_linux_DATA,
  nodist_bootstrap_x86_64_linux_DATA, nodist_bootstrap_i686_linux_DATA,
  install-data-hook, DISTCLEANFILES, DOWNLOAD_FILE,
  gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
  gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Move to...
* gnu-system.am: ... here.  New file.
2013-06-19 23:19:03 +02:00
Ludovic Courtès
9af05aa29d package: Display the number of installed packages upon completion.
* guix/scripts/package.scm (guix-package)[process-actions]: Display the
  number of packages in the profile upon completion.
2013-06-19 22:42:03 +02:00
Ludovic Courtès
c7c834a998 Add `substitute-binary.scm' to POTFILES.in.
* po/POTFILES.in: Add guix/scripts/substitute-binary.scm.
2013-06-19 19:27:53 +02:00
Ludovic Courtès
7fa37abca0 gnu: Add ImageMagick.
* gnu/packages/imagemagick.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/download.scm (%mirrors): Add `imagemagick' entry.
2013-06-19 19:27:23 +02:00
Ludovic Courtès
2207f73156 substitute-binary: Provide feedback when the server is unresponsive.
* guix/scripts/substitute-binary.scm (%fetch-timeout): New variable.
  (with-timeout): New macro.
  (fetch): Add `timeout?' keyword parameter.  Enclose `http-fetch' call
  in `with-timeout'.
  (guix-substitute-binary): Call `fetch' with #:timeout? #f.
2013-06-18 00:12:22 +02:00
Ludovic Courtès
8cf13c1f70 build: Fix `sync-with-upstream'.
* nix/sync-with-upstream: Remove schema.sql.hh.
2013-06-18 00:12:22 +02:00
Ludovic Courtès
90a0048f5e gnu: Add Linux iproute2.
* gnu/packages/bdb.scm (bdb): Add `--enable-compat185'.
* gnu/packages/linux.scm (iproute): New variable.
2013-06-18 00:12:22 +02:00
Ludovic Courtès
10afdf5061 gnu: Add iptables.
* gnu/packages/linux.scm (iptables): New variable.
2013-06-18 00:12:22 +02:00
Ludovic Courtès
30ac136d6d gnu: graphviz: Fix typo.
* gnu/packages/graphviz.scm (graphviz): Fix typo in description.
2013-06-18 00:12:22 +02:00
Cyril Roelandt
cf3fe3b071 gnu: Move subversion with the other version control systems.
* gnu/packages/subversion.scm: Remove file.
* gnu/packages/version-control.scm (subversion): New variable.
* Makefile.am (MODULES): remove subversion.scm.
2013-06-17 19:33:53 +02:00
Ludovic Courtès
5686807ee9 build: Remove non-existent git.scm from Makefile.am.
* Makefile.am (MODULES): Remove git.scm.
2013-06-17 01:18:09 +02:00
Ludovic Courtès
b1b07d72c7 gnu: Add Graphviz.
* gnu/packages/graphviz.scm: New file.
* Makefile.am (MODULES): Add it.
2013-06-17 01:17:05 +02:00
Ludovic Courtès
7997c4bf76 gnu: libpng: Propagate zlib.
* gnu/packages/libpng.scm (libpng): Propagate zlib.
2013-06-17 01:17:04 +02:00
Ludovic Courtès
d517142b8e gnu: Add GD.
* gnu/packages/gd.scm: New file.
* Makefile.am (MODULES): Add it.
2013-06-16 23:57:34 +02:00
Ludovic Courtès
30645251d1 gnu: Add Racket.
* gnu/packages/scheme.scm (racket): New variable.
2013-06-16 20:43:29 +02:00
Ludovic Courtès
9c71a2aec4 build-system/trivial: Fix introduction of `%target' when cross-building.
* guix/build-system/trivial.scm (trivial-cross-build): Wrap BUILDER in a
  `let' rather than in `begin'.
2013-06-15 23:39:32 +02:00
Ludovic Courtès
934488ccd3 gnu: linux-libre-headers: Allow cross-compilation.
* gnu/packages/linux.scm (linux-libre-headers): Use (guix build
  gnu-cross-build) and %standard-cross-phases when cross-compiling.
2013-06-15 23:39:32 +02:00
Ludovic Courtès
82c865c41a gnu: pkg-config: Export package definition.
* gnu/packages/pkg-config.scm (%pkg-config): Make public.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-06-15 23:39:32 +02:00
Andreas Enge
4b9adff901 gnu: Add pango.
* gnu/packages/gtk.scm (pango): New variable.
2013-06-14 23:33:17 +02:00
Andreas Enge
a2609b41b9 gnu: Add harfbuzz.
* gnu/packages/gtk.scm (harfbuzz): New variable.
2013-06-14 23:28:58 +02:00
Andreas Enge
6131c43d45 gnu: Add cairo.
* gnu/packages/gtk.scm (cairo): New variable.
2013-06-14 21:43:04 +02:00
Andreas Enge
7cf2a2a1e2 gnu: Add libspectre.
* gnu/packages/ghostscript.scm (libspectre): New variable.
2013-06-14 20:58:18 +02:00
Ludovic Courtès
3e5980de47 Update `TODO'. 2013-06-14 17:05:49 +02:00
Ludovic Courtès
16357e8c71 Update upstream Nix sub-module.
* nix-upstream: Update.
* NEWS: Mention multiple-derivation output bug.
2013-06-14 17:05:32 +02:00
Ludovic Courtès
0bd31a2188 derivations: Micro-optimize `derivation-hash'.
* guix/derivations.scm (derivation-hash): Use a UTF-8-encoded string
  output port.  This makes things deterministic, and slightly faster.
2013-06-14 15:48:29 +02:00
Ludovic Courtès
62751a5ddd gnu: make-bootstrap: Abstract things with `package-with-relocatable-glibc'.
* gnu/packages/make-bootstrap.scm (%glibc-for-bootstrap): Replace with...
  (glibc-for-bootstrap): ... this.  New procedure.
  (%standard-inputs-with-relocatable-glibc): Replace with...
  (package-with-relocatable-glibc): ... this.  New procedure.
  (%static-inputs, %gcc-static, %guile-static): Use it.
2013-06-14 15:29:08 +02:00
Ludovic Courtès
af5cb60fec gnu: make-bootstrap: Keep Perl as an input only when needed.
* gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Keep Perl
  as an input only if it's an input of COREUTILS.
2013-06-14 14:50:33 +02:00
Ludovic Courtès
8e59fdd53b guix gc: Add `--requisites'.
* guix/scripts/gc.scm (show-help, %options): Add `--requisites'.
  (guix-gc): Handle it.
* doc/guix.texi (Invoking guix gc): Document `--requisites'.
* NEWS: Update.
2013-06-13 22:15:41 +02:00
Ludovic Courtès
3f1e69395c store: Add `requisites'.
* guix/store.scm (fold-path, requisites): New procedures.
* tests/store.scm ("requisites"): New test.
2013-06-13 22:03:42 +02:00
Ludovic Courtès
cfbf7877a6 ld-wrapper: Unless in a build env., allow files that symlink to the store.
* gnu/packages/ld-wrapper.scm (pure-file-name?): As a last resort, when
  %BUILD-DIRECTORY is false, check whether FILE is a symlink, and loop
  over it to check whether its target is in the store.
2013-06-12 09:39:31 +02:00
Konrad Hinsen
d4c7486079 doc: Describe the build procedure in more detail.
* README (Requirements): Replace "autoreconf" by "bootstrap".
  (Installing Guix from Guix): Augment and update.
2013-06-12 09:16:54 +02:00
Ludovic Courtès
cbe62e89d0 gnu: Add GNU gcal.
* gnu/packages/gcal.scm: New file.
* Makefile.am (MODULES): Add it.
2013-06-12 00:39:00 +02:00
Konrad Hinsen
79b8914eaa Ignore /po/Makevars.template 2013-06-12 00:39:00 +02:00
Cyril Roelandt
16df248e4b Fix Guile version checking in the "web" code.
* guix/web.scm (http-fetch): fix Guile version checking. The previous version
would use features from Guile 2.0.9+ when using Guile 2.0.7.
2013-06-10 10:43:23 +02:00
Nikita Karetnikov
392b5d8cab guix refresh: Add '--key-download'.
* guix/gnu-maintenance.scm (download-tarball): Add a 'key-download'
  keyword argument and pass it to 'gnupg-verify*'.  Make
  'archive-type' a keyword argument.
  (package-update): Add a 'key-download' keyword argument.  Pass
  'archive-type' and 'key-download' keyword arguments to
  'download-tarball'.

* guix/gnupg.scm: Import (ice-9 i18n) and (guix ui).
  (gnupg-verify*): Add a 'key-download' keyword argument and adjust
  'gnupg-verify*' to use it.  Make 'server' a keyword argument.

* guix/scripts/refresh.scm (show-help, %options): Add and document
  '--key-download'.
  (update-package): Add a 'key-download' keyword argument and pass it
  to 'package-update'.
  (guix-refresh): Pass 'key-download' to 'update-package'.  Limit
  lines to a maximum of 79 characters.
2013-06-10 08:15:17 +00:00
Ludovic Courtès
e20ec9cc51 doc: Mention copyright/license auditing in `HACKING'. 2013-06-10 00:00:33 +02:00
Ludovic Courtès
0a56fadb60 gnu: Add mpg321.
* gnu/packages/mp3.scm (mpg321): New variable.
2013-06-09 23:57:52 +02:00
Ludovic Courtès
ba04571a83 gnu: Add ALSA-lib; use it.
* gnu/packages/linux.scm (alsa-lib): New variable.
* gnu/packages/oggvorbis.scm (ao): Add ALSA-lib as an input.
2013-06-09 23:54:55 +02:00
Ludovic Courtès
f88aeb6aa8 gnu: glib: Fix URL.
* gnu/packages/glib.scm (glib): Fix URL.
2013-06-09 23:52:22 +02:00
Ludovic Courtès
e0b2737583 doc: Update bootstrap-related info in `HACKING'. 2013-06-09 15:24:24 +02:00
Ludovic Courtès
7bc5cc2b96 gnu: glib: Update to 2.37.1.
* gnu/packages/glib.scm (glib): Update to 2.37.1.  Add Bash and tzdata
  as inputs.  Remove `glib-tests-timezone.patch'.  Augment `pre-build'
  phase to set `TZDIR', `XDG_CACHE_HOME', and to modify makefiles to
  honor $(TESTS_ENVIRONMENT).
* gnu/packages/patches/glib-tests-desktop.patch,
  gnu/packages/patches/glib-tests-homedir.patch: Update.
* gnu/packages/patches/glib-tests-timezone.patch: Remove.
* Makefile.am (dist_patch_DATA): Update accordingly.
2013-06-08 18:41:44 +02:00
Mark H Weaver
0d62efbe5a gnu: subversion: Download from apache archive site.
* gnu/packages/subversion.scm (subversion): Download from archive.apache.org,
  where versions are kept for a longer period of time.  Previously, we
  downloaded from the mirrors, which keep only the most recent versions.
2013-06-08 12:38:28 -04:00
Ludovic Courtès
fa6141ecaa gnu: plotutils: Add X client libraries as inputs.
* gnu/packages/plotutils.scm (plotutils): Add libx11, libxt, and libxaw
  as inputs.
2013-06-07 22:31:54 +02:00
Ludovic Courtès
b2e3dd9480 gnu: Add Privoxy.
* gnu/packages/tor.scm (privoxy): New variable.
2013-06-07 00:02:48 +02:00
Ludovic Courtès
9d97a1b3d6 packages: Make the `propagated-inputs' field thunked.
* guix/packages.scm (<package>): Make `propagated-inputs' thunked.
2013-06-06 00:04:11 +02:00
Ludovic Courtès
0e999137e9 gnu: bash-light: Allow cross-compilation.
* gnu/packages/bash.scm (bash-light): Add (guix build gnu-cross-build)
  to #:modules when (%current-target-system) is true.
  Add `bash_cv_job_control_missing=no' to #:configure-flags
  when (%current-target-system) is true.
2013-06-05 17:40:57 +02:00
Ludovic Courtès
a3e69bb892 gnu: Fix `static-package' arguments overriding.
* guix/build-system/gnu.scm (static-package): Call `package-arguments'
  from within the `arguments' field, so it see the
  right (%current-target-system).
2013-06-05 16:39:58 +02:00
Ludovic Courtès
a1db097535 gnu: gnutls: Update to 3.2.1.
* gnu/packages/gnutls.scm (gnutls): Update to 3.2.1.
2013-06-05 10:38:27 +02:00
Ludovic Courtès
b17fd5e0c8 gnu: nettle: Update to 2.7.1.
* gnu/packages/nettle.scm (nettle): Update to 2.7.1.
2013-06-05 10:26:17 +02:00
Ludovic Courtès
76ced7741b gnu: automake: Update to 1.13.3.
* gnu/packages/autotools.scm (automake): Update to 1.13.3.
2013-06-05 10:17:26 +02:00
Ludovic Courtès
7f4e4b77ee gnu: Add WordNet.
* gnu/packages/wordnet.scm: New file.
* Makefile.am (MODULES): Add it.
2013-06-04 16:51:06 +02:00
Ludovic Courtès
765904ceb6 gnu: Add Tk.
* gnu/packages/tcl.scm (tk): New variable.
2013-06-04 16:49:34 +02:00
Ludovic Courtès
9bf3c1a77d doc: Write about patch submission and packaging guidelines.
* HACKING: Update the command names from `guix-build' to `guix build' & co.
  (Submitting Patches, Packaging Guidelines): New sections.
* doc/guix.texi (Contributing): New section.
2013-06-04 10:29:57 +02:00
Ludovic Courtès
ae3b6bb0f4 substitute-binary: Don't cache .narinfo lookups when lacking networking.
* guix/scripts/substitute-binary.scm (lookup-narinfo): Don't cache
  NARINFO when CACHE is #f.
2013-06-04 09:43:38 +02:00
Ludovic Courtès
bdbb6fbb19 Update `NEWS'. 2013-06-04 00:45:57 +02:00
Nikita Karetnikov
94e4ddd508 gnu: Add Grue Hunter.
* gnu/packages/grue-hunter.scm: New file.
* Makefile.am (MODULES): Add it.
2013-06-03 11:55:43 +00:00
Nikita Karetnikov
ef7cf2917a licenses: Add 'agpl3' and 'agpl3+'.
* guix/licenses.scm (agpl3, agpl3+): New variables.
2013-06-03 11:39:38 +00:00
Cyril Roelandt
5ace6e2fa8 gnu: Add Babel.
* gnu/packages/babel.scm (babel): New package.
2013-06-01 01:50:34 +02:00
Ludovic Courtès
1890a149cc gnu: Add XLockMore.
* gnu/packages/xlockmore.scm: New file.
* Makefile.am (MODULES): Add it.
2013-06-01 00:14:13 +02:00
Ludovic Courtès
63c0c19a64 gnu: gawk: Refer to the target Bash in io.c.
* gnu/packages/gawk.scm (gawk): Add Bash as an input
  when (%current-target-system) is true.
2013-06-01 00:07:26 +02:00
Ludovic Courtès
8caa6152d0 Fix name of Alexandru. 2013-06-01 00:06:30 +02:00
Ludovic Courtès
231eae53c2 gnu: Add Rubber.
* gnu/packages/texlive.scm (rubber): New variable.
2013-05-30 21:15:45 +02:00
Ludovic Courtès
44fbbf4c5f Thanks, Cojocaru. 2013-05-30 21:15:22 +02:00
Ludovic Courtès
89d02b98f9 ui: define-diagnostic: Don't mark _' and N_' as literals.
* guix/ui.scm (define-diagnostic): Use `free-identifier=?' to compare
  the user's input with `_' and `N-".  This should fix builds with Guile 2.1.
  Reported by Cojocaru Alexandru <xojoc@gmx.com>.
2013-05-30 00:49:34 +02:00
Ludovic Courtès
5282181d51 build-system/python: Avoid circular dependency.
This fixes a circular dependency introduced in commit acc26ff ("gnu: Add
pytz.").

* guix/build-system/python.scm (default-python): New procedure.
  (python-build): Use it.
2013-05-30 00:47:34 +02:00
Ludovic Courtès
cf5d2ca329 substitute-binary: Gracefully exit upon networking errors.
Suggested by Andreas Enge <andreas@enge.fr>.

* guix/scripts/substitute-binary.scm (with-networking): New macro.
  (guix-substitute-binary): Wrap the body in `with-networking'.
2013-05-29 23:22:05 +02:00
Ludovic Courtès
56b1f4b780 build, package: Add `--fallback' option.
* guix/scripts/build.scm (%options, show-help): Add `--fallback'.
  (guix-build): Call `set-build-options' with #:fallback?.
* guix/scripts/package.scm (%options, show-help): Add `--fallback'.
  (guix-package): Call `set-build-options' with #:fallback?.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
  `--fallback'.
2013-05-29 23:22:05 +02:00
Ludovic Courtès
c3eb878f0b store: Test the `fallback?' store option.
* guix/store.scm (set-build-options): Rename #:try-fallback? to #:fallback?.
* tests/store.scm ("substitute --fallback"): New test.
2013-05-29 23:22:05 +02:00
Cyril Roelandt
acc26ff148 gnu: Add pytz.
* gnu/packages/python.scm (pytz): New package.
2013-05-29 01:47:16 +02:00
Ludovic Courtès
4f7e152b34 gnu: Add torsocks.
* gnu/packages/tor.scm (torsocks): New variable.
2013-05-29 00:03:12 +02:00
Cyril Roelandt
842ded334f python-build-system: add a check phase.
* guix/build/python-build-system.scm (check): New procedure.
  (%standard-phases): Use it.
2013-05-28 22:53:35 +02:00
Ludovic Courtès
9b222abe03 packages: Raise an error condition a cross builder is needed but unavailable.
* guix/packages.scm (&package-cross-build-system-error): New condition type.
  (package-cross-derivation): Raise &package-cross-build-system-error
  when the build system doesn't support cross builds.
* guix/ui.scm (call-with-error-handling): Add
  package-cross-build-system-error? case.
* tests/packages.scm ("package-cross-derivation, no cross builder"): New test.
2013-05-27 23:43:00 +02:00
Ludovic Courtès
ea84ec7711 build-system/gnu: Fix typo in `gnu-cross-build'.
* guix/build-system/gnu.scm (gnu-cross-build)[builder]: When
  IMPLICIT-TARGET-INPUTS is #f, default to '().
2013-05-27 23:43:00 +02:00
Ludovic Courtès
58b4e8e877 gnu: guile: More cross-compilation tweaks.
* gnu/packages/guile.scm (guile-2.0): When cross-compiling, unset
  GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH, and set
  CC_FOR_BUILD=gcc.
2013-05-27 23:43:00 +02:00
Ludovic Courtès
d581acee5b gnu: pkg-config: Provide a cross-build-friendly wrapper.
* gnu/packages/pkg-config.scm (pkg-config): Rename to...
  (%pkg-config): ... this.  Make private.
  (cross-pkg-config, pkg-config-for-target): New procedures.
  (pkg-config): New macro.
2013-05-27 23:43:00 +02:00
Ludovic Courtès
47e74d6e9d gnu: cross-binutils: Build with `--with-sysroot'.
This fixes resolution of DT_NEEDED entries in cross-built libraries.
For instance, if ltdl.so needs libdl.so and has it in its RUNPATH, then
libdl.so is searched for in the right place.

* gnu/packages/cross-base.scm (cross-binutils): Pass
  `--with-sysroot=/no-such-path'.
2013-05-27 23:43:00 +02:00
Nikita Karetnikov
4bfc4ea349 doc: Improve wording and fix typos in "Introduction" and "Requirements".
* doc/guix.texi (Introduction, Requirements): Rephrase and fix typos.
2013-05-26 23:25:01 +00:00
Ludovic Courtès
9c782445fb gnu: guile: Add Bash as an input, to permit cross-compilation.
* gnu/packages/guile.scm (guile-2.0): Add Bash as an input
  when (%current-target-system) is true.  Use %standard-cross-phases as
  a basis when (%current-target-system) is true.
2013-05-26 23:46:11 +02:00
Ludovic Courtès
9a97b8144d gnu: bash: Fix cross-compilation.
* gnu/packages/bash.scm (bash): Pass "bash_cv_job_control_missing=no"
  when (%current-target-system) is true.
2013-05-26 23:46:11 +02:00
Ludovic Courtès
aa289a3e82 build: `hydra.scm' really cross-builds Gettext.
* hydra.scm: Import (gnu packages gettext).
2013-05-26 23:46:10 +02:00
Cyril Roelandt
a67f97fea1 zlib: Add a sourceforge mirror.
This is especially useful since the tarball is deleted from zlib.net as soon as
a new version of zlib is released.
2013-05-25 23:17:53 +02:00
Ludovic Courtès
923fbae1f0 build: Add missing import in `hydra.scm'.
* hydra.scm: Import (gnu packages gawk).
2013-05-25 23:24:51 +02:00
Ludovic Courtès
598608c7ee build: `hydra.scm' cross-builds a few more packages.
* hydra.scm (%packages-to-cross-build): Add a few packages.
2013-05-25 22:39:51 +02:00
Ludovic Courtès
f755aa3f7a gnu: ncurses, readline: Allow cross-compilation.
* gnu/packages/ncurses.scm (ncurses): Add `cross-pre-install-phase'.
  Use different phases when (%current-target-system) is true.
* gnu/packages/readline.scm (readline): Use %standard-cross-phases as
  the base when (%current-target-system) is true.
2013-05-25 20:16:45 +02:00
Ludovic Courtès
089b06348e gnu: libffi: Allow cross-compilation.
* gnu/packages/libffi.scm (libffi): Use %standard-cross-phases as the
  base when cross-compiling.  Add (guix build gnu-cross-build) to the
  #:modules when cross-compiling.  Improve synopsis.
2013-05-25 18:03:52 +02:00
Ludovic Courtès
1984b43895 gnu: libtool: Allow cross-compilation.
* gnu/packages/autotools.scm (libtool)[arguments]: Use #:phases argument
  only when building natively.
2013-05-25 18:00:01 +02:00
Ludovic Courtès
3871c9f500 gnu: gawk: Allow cross-compilation.
* gnu/packages/gawk.scm (gawk)[arguments]: Use `set-shell-file-name'
  phase that works when cross-compiling; use `%standard-cross-phases' as
  the base when (%current-target-system) is true.
2013-05-25 17:54:27 +02:00
Ludovic Courtès
9aa949a4b6 gnu: libsigsegv: Fix mips64el-linux-gnu (cross-)builds.
* gnu/packages/libsigsegv.scm (libsigsegv): New `arguments' field.
2013-05-25 16:56:22 +02:00
Ludovic Courtès
cf9fd501ea gnu: findutils: Fix cross-compilation.
* gnu/packages/base.scm (findutils): Reinstate cross-compilation
  #:configure-flags.
2013-05-25 16:36:11 +02:00
Ludovic Courtès
c8c6bba5a7 gnu: sed: Allow cross-compilation.
* gnu/packages/base.scm (sed): Keep the default phases
  when (%current-target-system) is true.
2013-05-25 16:26:16 +02:00
Ludovic Courtès
de59af4d6d gnu: coreutils: Allow cross-compilation.
* gnu/packages/base.scm (coreutils): Remove Perl input
  when (%current-target-system) is true.  Use %standard-cross-phases as
  the base when (%current-target-system) is true.
2013-05-25 16:24:21 +02:00
Ludovic Courtès
2a552f1177 gnu: gettext, attr, acl: Disable `check' phase twiddling when cross building.
* gnu/packages/gettext.scm (gettext)[arguments]: Disable `check' phase
  manipulations when (%current-target-system) is true.
* gnu/packages/attr.scm (attr)[arguments]: Likewise.
* gnu/packages/acl.scm (acl)[arguments]: Likewise.
2013-05-25 16:19:06 +02:00
Ludovic Courtès
a7dc055bb5 packages: Make `native-inputs' thunked.
* guix/packages.scm (<package>): Make `native-inputs' thunked.
2013-05-25 16:14:57 +02:00
Ludovic Courtès
cd52703ace packages: Re-export `%current-target-system'.
* guix/packages.scm: Re-export `%current-target-system'.
2013-05-25 16:14:37 +02:00
Ludovic Courtès
ee4d736881 build-system/gnu: Make sure build input variables contain pairs.
* guix/build-system/gnu.scm (gnu-cross-build)[builder]: Make sure
  %build-host-inputs and %build-target-inputs always contain pairs, not
  lists.
2013-05-25 15:35:36 +02:00
Ludovic Courtès
2ee5f56b4d build: `hydra.scm' cross-builds simpler packages.
* hydra.scm (%packages-to-cross-build): Remove things from
  make-bootstrap for now.
2013-05-25 00:03:28 +02:00
Ludovic Courtès
5dce82180b build-system/trivial: Implement the cross-build protocol.
* guix/build-system/trivial.scm (guile-for-build): New procedure.
  (trivial-build): Use it.
  (trivial-cross-build): New procedure.
  (trivial-build-system): Use it.
2013-05-24 23:53:06 +02:00
Ludovic Courtès
cba363bea8 package: Fix default profile ownership check when it's just been created.
* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
  whether S is true before checking its owner.  Fixes the case where we
  built %PROFILE-DIRECTORY just above.
2013-05-24 23:14:19 +02:00
Ludovic Courtès
929c0f69de build: `hydra.scm' adds cross-build jobs.
* hydra.scm (package->alist): Add `package-derivation' argument.
  (package-cross-job): New procedure.
  (%packages-to-cross-build, %cross-targets): New variables.
  (hydra-jobs): Add cross jobs.
2013-05-24 23:12:56 +02:00
Ludovic Courtès
e55ec43d8b build: Add `--target' option.
* guix/scripts/build.scm (derivations-from-package-expressions): Add
  `package-derivation' parameter.
  (show-help, %options): Add `--target'.
  (guix-build): Use `package-cross-derivation' when `--target' is
  passed.
* tests/guix-build.sh: Add dry-run test with `--target'.
* doc/guix.texi (Invoking guix build): Document `--target'.
2013-05-24 22:52:52 +02:00
Ludovic Courtès
264218a47e build-system/gnu: Implement cross build.
* guix/build-system/gnu.scm (inputs-search-paths): New procedure.
  (standard-search-paths): Use it.
  (expand-inputs): New procedure.
  (standard-inputs): Use it.
  (standard-cross-packages, standard-cross-inputs,
  standard-cross-search-paths, gnu-cross-build): New procedures.
  (gnu-build-system): Set `cross-build' field to `gnu-cross-build'.
* gnu/packages/cross-base.scm: Export `cross-gcc', `cross-binutils', and
  `cross-libc'.
* guix/build/gnu-cross-build.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-24 22:44:15 +02:00
Ludovic Courtès
9c1edabd8b packages: Implement `package-cross-derivation'.
* guix/packages.scm (package-transitive-target-inputs,
  package-transitive-native-inputs): New procedures.
  (package-derivation): Parametrize `%current-target-system'.
  (package-cross-derivation): Implement.
* guix/utils.scm (%current-target-system): New variable.
* tests/packages.scm ("package-cross-derivation"): New test.
* doc/guix.texi (Defining Packages): Document
  `package-cross-derivation'.
2013-05-24 22:30:58 +02:00
Ludovic Courtès
17bb886ff4 gnu: cross-gcc: Set the right search paths.
* gnu/packages/cross-base.scm (cross-gcc): Override `search-paths' and
  `native-search-paths'.
2013-05-24 21:55:52 +02:00
Ludovic Courtès
248d08ebf0 gnu: cross-gcc: Change patch so that `CROSS_LIBRARY_PATH' is honored.
* gnu/packages/patches/gcc-cross-environment-variables.patch: Add two
  hunks, most notably one that changes GCC to honor LIBRARY_PATH_ENV
  when cross-compiling.
2013-05-24 21:54:44 +02:00
Ludovic Courtès
a63062b55a packages: Factorize things common to `package-{,cross-}derivation'.
* guix/packages.scm (expand-input): New procedure, moved out of...
  (package-derivation): ... here.  Adjust accordingly.
  (package-cross-derivation): Add `cross-system' and `system'
  parameters.
2013-05-24 08:58:52 +02:00
Ludovic Courtès
7046c48d72 nls: Add Esperanto translation.
* po/eo.po, po/LINGUAS: New files.
2013-05-24 00:22:57 +02:00
Ludovic Courtès
3ec7ad8e0f gnu: Add UnRTF.
* gnu/packages/unrtf.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-24 00:03:57 +02:00
Ludovic Courtès
a10f6f7bf7 gnu: libgc: Add 7.2d.
* gnu/packages/bdw-gc.scm (libgc-7.2): New variable.
2013-05-23 00:11:38 +02:00
Ludovic Courtès
bb3fe7fcfe gnu: Add GNU Plotutils.
* gnu/packages/plotutils.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-22 00:33:14 +02:00
Ludovic Courtès
d149583162 Update `NEWS'. 2013-05-20 18:30:55 +02:00
Ludovic Courtès
1972fed4df gnu: Add CVS.
* gnu/packages/version-control.scm (cvs): New variable.
2013-05-20 18:29:43 +02:00
Ludovic Courtès
969e678ed9 Add --max-silent-time' to guix build' and `guix package'.
* guix/scripts/build.scm (%default-options): Add default
  `max-silent-time' value.
  (show-help, %options):  Add `--max-silent-time'.
  (guix-build): Pass `max-silent-time' to `set-build-options'.
* guix/scripts/package.scm (%default-options): Add default
  `max-silent-time' value.
  (show-help, %options):  Add `--max-silent-time'.
  (guix-package): Pass `max-silent-time' to `set-build-options'.
* guix/ui.scm (string->number*): New procedure.
* tests/derivations.scm ("build-expression->derivation and
  max-silent-time"): New test.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
  `--max-silent-time'.
2013-05-20 18:29:26 +02:00
Ludovic Courtès
d8482ad0d6 gnu: Add strace.
* gnu/packages/linux.scm (strace): New variable.
2013-05-18 23:31:14 +02:00
Ludovic Courtès
35ec07c758 gnu: Improve synopses for Linux-related packages.
* gnu/packages/linux.scm (util-linux, procps, e2fsprogs): Clarify and
  shrink synopses.
2013-05-18 23:02:25 +02:00
Ludovic Courtès
4bc3fcc771 build: Switch to 0.3.
* configure.ac: Bump to 0.3.  Use the full URL.
2013-05-18 23:01:28 +02:00
Ludovic Courtès
499b8d1f84 Update `TODO'. 2013-05-17 23:15:49 +02:00
Ludovic Courtès
f11617d8a6 gnu: automake: Update to 1.13.2.
* gnu/packages/autotools.scm (autoconf-wrapper): Wrap `configure' files
  regardless of the exit code of `autoconf'.  Triggered by Automake's
  `t/am-prog-cc-stdc.sh'.
  (automake): Update to 1.13.2.
2013-05-17 23:10:47 +02:00
Ludovic Courtès
70c4329172 package: Make sure the profile directory is owned by the user.
* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
  the owner of %PROFILE-DIRECTORY.  Report an error when the owner is
  not the current user.  Add `rtfm' procedure.
* doc/guix.texi (Invoking guix package): Mention the ownership test.
2013-05-16 20:04:13 +02:00
Ludovic Courtès
101d9f3fd4 substitute-binary: Pass `filtered-port' an unbuffered port.
This fixes a bug whereby `read-response' would read more than just the
response, with the extra data going into the port's buffer; the
"bzip2 -dc" process spawned by `filtered-port' would not see the those
buffered data, which are definitely lost, and would bail out with
"bzip2: (stdin) is not a bzip2 file."

* guix/utils.scm (filtered-port): Document that INPUT must be
  unbuffered.
* guix/web.scm (http-fetch): Add `buffered?' parameter.  Call
  `open-socket-for-uri' explicitly, and call `setvbuf' when BUFFERED? is
  false.  Pass the port to `http-get'.  Close it upon 301/302.
* guix/scripts/substitute-binary.scm (fetch): Add `buffered?'
  parameter.  Pass it to `http-fetch'; honor it for `file' URIs.
  (guix-substitute-binary): Call `fetch' with #:buffered? #f for port RAW.
* tests/utils.scm ("filtered-port, file"): Open FILE as unbuffered.
2013-05-15 23:40:09 +02:00
Ludovic Courtès
3d6b71e87e gnu: texinfo: Don't propagate Perl.
* gnu/packages/texinfo.scm (texinfo): Don't propagate Perl.
2013-05-15 00:15:25 +02:00
Ludovic Courtès
0332386251 substitute-binary: Work around thread-unsafe `regexp-exec'.
* guix/scripts/substitute-binary.scm (%regexp-exec-mutex): New variable.
  (string->uri): New procedure.
  (fields->alist): Wrap `regexp-exec' call in `with-mutex'.
2013-05-14 23:53:38 +02:00
Ludovic Courtès
90a1e4b303 package: Always clear the SIGINT handler.
* guix/scripts/package.scm (call-with-sigint-handler): Wrap THUNK in
  `dynamic-wind' so that the SIGINT handler is always cleared.
2013-05-14 23:52:13 +02:00
Ludovic Courtès
91fe0e20c7 ftp-client: Let callers handle `ftp-open' exceptions.
* guix/ftp-client.scm (ftp-open): Let exceptions through.
* guix/scripts/package.scm (waiting): Wrap EXP in a `dynamic-wind', so
  the line is always cleared.
2013-05-14 23:51:36 +02:00
Ludovic Courtès
b30b13dc3d Sort commands alphabetically in "guix --help".
* guix/ui.scm (show-guix-help): Sort commands.
2013-05-14 13:37:53 +02:00
Ludovic Courtès
2b8cf44fd9 Fix "guix --help" on Guile 2.0.5.
Reported at <http://linuxfr.org/news/sortie-de-gnu-guix-0-2>.

* guix/ui.scm (command-files): Filter the result of `scandir' to make
  sure only `.scm' files are present.
2013-05-14 13:37:21 +02:00
Ludovic Courtès
e8b3afeb92 build: Use separate `AC_CONFIG_FILES' invocations for executable files.
* configure.ac: Use separate AC_CONFIG_FILES invocations for files that
  need to be made executable.
* config-daemon.ac: Likewise.
2013-05-12 23:26:46 +02:00
Ludovic Courtès
f5ebf5c6ac build: Add `gitlog-to-changelog'.
* build-aux/gitlog-to-changelog: New file, from Gnulib.
2013-05-12 22:41:11 +02:00
Ludovic Courtès
0f241da212 Update `NEWS'. 2013-05-12 16:35:27 +02:00
Ludovic Courtès
a463ffd9e8 build: Make sure the distribution doesn't embed store file names.
* Makefile.am (assert-no-store-file-names): New target.
  (dist-hook): Depend on it.
2013-05-12 16:35:18 +02:00
Ludovic Courtès
e793178adb build: Generate a ChangeLog file upon "make dist".
* Makefile.am (sync-synopses): New rule, formerly `dist-hook.
  (gen-ChangeLog): New rule.
  (dist-hook): Depend on these two targets.
2013-05-12 16:35:17 +02:00
Ludovic Courtès
c0cd1b3ea7 Move record utilities to (guix records).
* guix/utils.scm (define-record-type*): Move to...
* guix/records.scm: ... here.  New file.
* guix/build-system.scm, guix/packages.scm: Use it.
* guix/gnu-maintenance.scm: Likewise.
  (official-gnu-packages)[alist->record]: Remove.
* guix/scripts/substitute-binary.scm: Likewise.
  (alist->record, object->fields): Remove.
* tests/utils.scm ("define-record-type*", "define-record-type* with
  letrec* behavior", "define-record-type* & inherit",
  "define-record-type* & inherit & letrec* behavior",
  "define-record-type* & thunked", "define-record-type* & thunked &
  default", "define-record-type* & thunked & inherited"): Move to...
* tests/records.scm: ... here.  New file.
2013-05-12 15:46:16 +02:00
Ludovic Courtès
9b1ef2f323 release.nix: Revert back to before unchroot experiments.
* release.nix: Revert to commit 4050e5d6cf.
2013-05-12 15:18:17 +02:00
Ludovic Courtès
46614bba7c gnu: guile-reader: Install modules in the right place.
* gnu/packages/guile.scm (guile-reader): Add `arguments' field.
2013-05-12 12:37:21 +02:00
Ludovic Courtès
47d188109e Update `NEWS'. 2013-05-11 22:50:01 +02:00
Ludovic Courtès
1b1c335f5e gnu: Add GNU RCS.
* gnu/packages/bazaar.scm: Rename to...
* gnu/packages/version-control.scm: ... this.
  (rcs): New variable.
* Makefile.am (MODULES): Adjust accordingly.
2013-05-11 22:49:39 +02:00
Ludovic Courtès
9bff16b3f2 build: Really clean .log files from SRFI-64.
* Makefile.am (CLEANFILES): Really catch .log files from SRFI-64.
2013-05-11 22:42:38 +02:00
Ludovic Courtès
3a33730a86 build: Run `tests/guix-gc.sh' last to avoid test failures.
* Makefile.am (tests/guix-gc.log): New target.  This should fix failures
  that occurred with "make check -j" the first time.
2013-05-11 22:37:33 +02:00
Ludovic Courtès
f7ce90e7b9 gnu: Add Scheme48.
* gnu/packages/scheme.scm (scheme48): New variable.
* gnu/packages/patches/scheme48-tests.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-05-11 22:13:59 +02:00
Ludovic Courtès
35ff176877 gnu: gnupg: Update to 2.0.20.
* gnu/packages/gnupg.scm (gnupg): Update to 2.0.20.
2013-05-11 21:28:16 +02:00
Ludovic Courtès
2c4b49ed8d gnu: chicken: Clear description.
* gnu/packages/scheme.scm (chicken): Remove unneeded part of the
  description.
2013-05-11 20:00:48 +02:00
Ludovic Courtès
210cc92038 doc: Document "guix download".
* doc/guix.texi (Defining Packages): Linke to "Invoking guix download".
  (Utilities): Add an overview paragraph.
  (Invoking guix download): New node.
2013-05-11 16:18:15 +02:00
Ludovic Courtès
2c71cf66a5 gnu: Sync synopses with the Womb.
* gnu/packages/bazaar.scm (bazaar): Use synopsis from the Womb.
* gnu/packages/gv.scm (gv): Likewise.
2013-05-11 15:58:20 +02:00
Ludovic Courtès
410e38f814 tests: Fix out-of-source builds.
* tests/nar.scm (%test-dir): Compute relative to `pre-inst-env', which
  is in $top_builddir.
2013-05-11 15:43:33 +02:00
Ludovic Courtès
ccbce84809 tests: Add `guix hash' test.
* guix/scripts/hash.scm (guix-hash)[eof->null]: New procedure.
  Use it to convert the EOF object to the empty bytevector.
* tests/guix-hash.sh: New file.
* Makefile.am (SH_TESTS): Add it.
2013-05-11 15:09:56 +02:00
Ludovic Courtès
438bb042ff Update Nix sub-module.
* nix-upstream: Update to 3a0cc43ac89ae8f778764c9f5e27b361e4986913
  (Nix ~1.5.2).
2013-05-11 14:49:12 +02:00
Ludovic Courtès
f92300852f refresh: Add --key-server' and --gpg'.
* guix/scripts/refresh.scm (%options): Add `--key-server' and `--gpg'.
  (show-help): Update accordingly.
  (update-package): New procedure, formerly in `guix-refresh'.
  (guix-refresh): Use it.  Parameterize `%openpgp-key-server' and
  `%gpg-command'.
2013-05-11 14:36:58 +02:00
Ludovic Courtès
0ba91c945b gnupg: Turn the GPG command name and keyserver into parameters.
* guix/gnupg.scm (%gpg-command): Turn into a SRFI-39 parameter.
  (%openpgp-key-server): Likewise.  Default to pgp.mit.edu, as
  keys.gnupg.net is unreliable.
  Update users.
2013-05-11 14:32:20 +02:00
Ludovic Courtès
8cc9e7f9d8 gnu: Add CHICKEN.
* gnu/packages/scheme.scm (chicken): New variable.
2013-05-11 11:38:38 +02:00
Ludovic Courtès
25c936766e ui: Invite users to try `--help' in the error message.
* guix/ui.scm (show-guix-usage): Mention `guix --help'.
  Suggested by Mark H. Weaver.
  (run-guix-command): Invoke it when a command is not found.
  (guix-main): Adjust accordingly.
2013-05-10 23:14:26 +02:00
Ludovic Courtès
e3729544f9 Update `NEWS'. 2013-05-10 23:05:00 +02:00
Ludovic Courtès
741c70c63e package: Store the output path of packages installed with `-e'.
* guix/scripts/package.scm (guix-package)[process-actions](package->tuple):
  Put the output path in the tuple, not the derivation path.
* tests/guix-package.sh: Add test.
2013-05-10 23:04:39 +02:00
Ludovic Courtès
94a4b3b9f2 package: Make sure the dependencies get built along with the manifest.
Before this, something like "guix package -i glibc" could fail because
glibc lists linux-libre-headers as a propagated input (which would be
added as a dependency in the manifest) but the linux-libre-headers
output could be unavailable, leading to an error like this:

  path `/nix/store/4v2bk8sx5cm166gks3fi3q7d9zchibnk-linux-libre-headers-3.3.8' is not valid

This patch adds such dependencies as inputs of the profile derivation.

* guix/scripts/package.scm (profile-derivation): Accept package objects
  in the `deps' field of an element of PACKAGES.  Convert them to their
  output path for BUILDER, and add them to the inputs of the
  `build-expression->derivation' call.
  (input->name+path): When INPUT doesn't contain a package object,
  return it as is.
  (guix-package)[process-actions](canonicalize-deps): Expect DEPS to
  contain package objects, and leave them as is.
2013-05-10 22:46:19 +02:00
Ludovic Courtès
8c247e1c47 Update `TODO'. 2013-05-10 21:08:01 +02:00
Ludovic Courtès
fe3e603d14 refresh: Gracefully handle failure to download a tarball.
* guix/scripts/refresh.scm (guix-refresh): When updating a source file,
  gracefully handle the case where TARBALL is #f.
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-05-10 15:07:00 +02:00
Ludovic Courtès
e31ff8b8d0 ui: Implement `guix --help'.
* guix/ui.scm (command-files, commands, show-guix-help): New procedures.
  (guix-main): Invoke `show-guix-help' when passed `--help'.
2013-05-10 12:33:18 +02:00
Ludovic Courtès
ec5d0a85eb ui: Gracefully report "command not found" errors.
* guix/ui.scm (run-guix-command): Can `resolve-interface' errors and
  report them with `leave'.  Parameterize `program-name' from here.
  (guix-main): Remove parameterization of `program-name'.
2013-05-10 12:14:01 +02:00
Ludovic Courtès
a4007c9852 gnu-maintenance: Add GnuTLS FTP server.
* guix/gnu-maintenance.scm (ftp-server/directory)[quirks]: Add GnuTLS.
2013-05-10 01:15:04 +02:00
Ludovic Courtès
dd9afe64b5 download: Fix premature socket close on TLS connections.
This would manifest when downloading a large file such as the Bazaar
tarball, leading to an "Error in the pull function" GnuTLS exception.

* guix/build/download.scm (add-weak-reference): New procedure.
  (tls-wrap): Add (add-weak-reference record port).
2013-05-10 01:14:25 +02:00
Ludovic Courtès
a81bc5312b package: Use ~/.guix-profile as the default for --search-paths.
* guix/scripts/package.scm (search-path-environment-variables): Prefer
  %USER-ENVIRONMENT-DIRECTORY when it points to PROFILE.
  (display-search-paths): Use 3 spaces for indentation.
2013-05-10 00:36:00 +02:00
Ludovic Courtès
9c7dd33a48 build: Make sure the user's Guile has all the required features.
* m4/guix.m4 (GUIX_ASSERT_GUILE_FEATURES): New macro.
* configure.ac: Use it.
2013-05-10 00:36:00 +02:00
Ludovic Courtès
cf8f58b2af gnu: geiser: Update to 0.4.
* gnu/packages/emacs.scm (geiser): Update to 0.4.
2013-05-10 00:36:00 +02:00
Nikita Karetnikov
dcee3fc5a9 gnu: Add GNU Bazaar.
* gnu/packages/bazaar.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-08 22:46:21 +00:00
Nikita Karetnikov
40506d5d92 Add 'python-build-system'.
* guix/build-system/python.scm, guix/build/python-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
2013-05-08 22:46:12 +00:00
Ludovic Courtès
3309e3a103 Add (guix build rpath).
* guix/build/rpath.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages/python.scm (python): Use it; remove local copy of
  the *rpath* procedures.
* gnu/packages/samba.scm (samba): Likewise.
2013-05-08 23:45:02 +02:00
Ludovic Courtès
e789d9a80b gnu: Add tzdata.
* gnu/packages/base.scm (tzdata): New variable.
2013-05-08 23:45:01 +02:00
Andreas Enge
e3c5f2934a gnu: Add cryptsetup.
* gnu/packages/cryptsetup.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-08 16:36:10 +02:00
Andreas Enge
88226a504f gnu: Add lvm2.
* gnu/packages/lvm.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-08 16:25:22 +02:00
Ludovic Courtès
06504acb78 doc: Update `NEWS'.
* NEWS: Update.
2013-05-08 16:08:25 +02:00
Ludovic Courtès
37166310c7 doc: Document `guix refresh'.
* doc/guix.texi (Defining Packages): Add cross-reference to "Invoking
  guix refresh".
  (Invoking guix refresh): New node.
2013-05-08 16:07:50 +02:00
Ludovic Courtès
a2ed738989 package: Display the output of packages to be installed/removed.
* guix/scripts/package.scm (guix-package)[show-what-to-remove/install]:
  Display the output name.
2013-05-08 15:21:47 +02:00
Ludovic Courtès
ce3b7a619d package: Preserve the installed package output when upgrading.
* guix/scripts/package.scm (guix-package)[find-package]: Add optional
  parameter `output'.  Use it.
  [process-actions]: When computing UPGRADE, pass OUTPUT to
  `find-package'.
2013-05-08 15:11:20 +02:00
Ludovic Courtès
fd982732f4 gnu: python: Build the shared library.
* gnu/packages/python.scm (python): Add `--enable-shared'.  Add
  #:modules and #:phases.  Add PatchELF as an input.
2013-05-08 01:51:45 +02:00
Ludovic Courtès
cc2792dada gnu: gsasl: Propagate GnuTLS.
* gnu/packages/gsasl.scm (gsasl): Move GnuTLS to `propagated-inputs'.
2013-05-08 01:51:44 +02:00
Nikita Karetnikov
a6b4d213db gnu: Add Hugs.
* gnu/packages/hugs.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-07 20:42:10 +00:00
Ludovic Courtès
83e61a73c4 ui: Capitalize informative messages.
* guix/ui.scm (show-what-to-build): Capitalize user messages, as per the
  GCS (info "(standards) Errors").
2013-05-07 13:28:11 +02:00
Ludovic Courtès
15f67744fe package: Fix spacing in user messages.
* guix/scripts/package.scm (guix-package)[process-actions]: Fix spacing.
2013-05-07 13:23:30 +02:00
Ludovic Courtès
6ba3900934 gnu: help2man: Update to 1.41.2.
* gnu/packages/help2man.scm (help2man): Update to 1.41.2.
2013-05-07 00:21:18 +02:00
Ludovic Courtès
1d3991dc74 gnu: guile-ncurses: Update to 1.4.
* gnu/packages/guile.scm (guile-ncurses): Update to 1.4.
2013-05-07 00:13:28 +02:00
Ludovic Courtès
39b33961e9 gnu: Add GNU FreeIPMI.
* gnu/packages/freeipmi.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-07 00:12:18 +02:00
Ludovic Courtès
6d267f0a5b gnu: gv: Move to a separate file.
* gnu/packages/ghostscript.scm (ghostscript): Remove libxext and libxt
  as inputs.
  (gv): Move to...
* gnu/packages/gv.scm (gv): ... here.  New file.
  (ghostscript/x): Variant of GHOSTSCRIPT with libxt and libxext as
  inputs.
2013-05-06 23:50:30 +02:00
Ludovic Courtès
36ee486f1a gnu: freetype: Use mirror:// URL.
* gnu/packages/fontutils.scm (freetype): Use mirror://savannah URL.
2013-05-06 23:48:36 +02:00
Ludovic Courtès
313109e050 refresh: Change default to not update source files.
* guix/scripts/refresh.scm (%options): Change `--dry-run' to `--update'.
  (show-help): Adjust accordingly.
  (guix-refresh): Likewise.
2013-05-06 22:31:28 +02:00
Andreas Enge
c5ea1201fb gnu: Add GNU gv.
* gnu/packages/ghostscript.scm (gv): New variable.
2013-05-05 11:23:13 +02:00
Andreas Enge
e0eb886dce gnu: ghostscript: Add X support.
* gnu/packages/ghostscript.scm (ghostscript): Add X related inputs.
2013-05-05 11:19:26 +02:00
Andreas Enge
dcc9053aff gnu: Add libxaw3d.
* gnu/packages/xorg.scm (libxaw3d): New variable.
2013-05-05 10:45:55 +02:00
Andreas Enge
3a08a41188 gnu: Add atk.
* gnu/packages/gtk.scm: New module.
* Makefile.am (MODULES): Add it.
2013-05-05 00:09:37 +02:00
Andreas Enge
fbd8445704 gnu: Add id3lib.
* gnu/packages/mp3.scm (id3lib): New variable.
2013-05-04 23:13:22 +02:00
Andreas Enge
21e9fee042 gnu: Have python paths set automatically..
* gnu/packages/xorg.scm (meas): Drop special handling of python paths.
* gnu/packages/xml.scm (libxslt): Drop special handling of python paths.
2013-05-01 22:26:10 +02:00
Andreas Enge
d515cb555c gnu: xorg: Have perl paths set automatically.
* gnu/packages/xorg.scm (xkeyboard-config): Drop special handling of perl paths.
2013-05-01 21:38:05 +02:00
Ludovic Courtès
0734a9a813 Merge branch 'core-updates' 2013-04-30 17:06:00 +02:00
Nikita Karetnikov
01155b1808 utils: Adjust 'wrap-program'.
* guix/build/utils.scm (wrap-program): Fix computation of PROG-REAL and
  PROG-TMP when PROG is an absolute file name.  Add "$@" in the
  generated script, and quote PROG-REAL.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-04-30 16:58:59 +02:00
Ludovic Courtès
e0fbbc889d substitute-binary: Support decompression from non-file ports.
* guix/scripts/substitute-binary.scm (filtered-port): Move to utils.scm.
  (decompressed-port): Upon "none", return '() as the second value.
  (guix-substitute-binary): Expect `decompressed-port' to return a list
  of PIDs as its second value.
* guix/utils.scm (filtered-port): New procedure.  Add case for when
  INPUT is not `file-port?'.
* tests/utils.scm ("filtered-port, file", "filtered-port, non-file"):
  New tests.
2013-04-29 23:25:19 +02:00
Ludovic Courtès
dab5d51be7 build: Add silent-rules machinery for `guild compile'.
* Makefile.am (AM_V_GUILEC, AM_V_GUILEC_, AM_V_GUILEC_0): New
  variables.
  (.scm.go): Use $(AM_V_GUILEC).
2013-04-29 22:00:24 +02:00
Ludovic Courtès
30dd831083 build: Replace *.log in `CLEANFILES' by the exact list of files.
* Makefile.am (SCM_TESTS, SH_TESTS): New variables.
  (TESTS): Use them.
  (CLEANFILES): Replace *.log by $(SCM_TESTS:%.scm=%.log).
2013-04-29 21:52:21 +02:00
Ludovic Courtès
867df0eeb6 gnu: make-bootstrap: Fix %glibc-stripped.
* gnu/packages/make-bootstrap.scm (%glibc-stripped): Add `outputs' field.
2013-04-29 00:28:36 +02:00
Ludovic Courtès
593987671a build-system/gnu: Fix default name for the "doc" output directory.
* guix/build/gnu-build-system.scm (configure)[package-name]: Drop the
  prefix corresponding to the hash part of OUT.
2013-04-28 23:39:28 +02:00
Ludovic Courtès
5924080dcc guix package: Add `--search-paths' & co.
* guix/scripts/package.scm (search-path-environment-variables,
  display-search-paths): New procedures.
  (show-help, %options): Add `--search-paths'.
  (guix-package)[process-actions]: Call `display-search-paths' once the
  profile is ready.
  [process-query]: Honor `search-paths'.
2013-04-28 23:19:03 +02:00
Ludovic Courtès
2bcfb9e065 utils: Add `string-tokenize*'.
* guix/utils.scm (string-tokenize*): New procedure.
* tests/utils.scm ("string-tokenize*"): New test.
2013-04-28 23:19:03 +02:00
Andreas Enge
19cb517012 gnu: xpdf: Use gs-fonts to provide standard postscript fonts.
* gnu/packages/pdf (xpdf): Add path to gs-fonts in xpdfrc.
2013-04-28 22:05:27 +02:00
Andreas Enge
1f7c6a1f53 gnu: Add gs-fonts.
* gnu/packages/ghostscript.scm (gs-fonts): New variable.
2013-04-28 21:12:55 +02:00
Ludovic Courtès
8e77f41ede packages: Work around compiler bug in Guile 2.0.5.
* guix/packages.scm (package-field-location): Work around compiler bug
  in 2.0.5.  Reported by Andreas Enge <andreas@enge.fr>.
2013-04-27 23:02:06 +02:00
Ludovic Courtès
89be37a5a3 web: Add workaround for <http://bugs.gnu.org/13095>.
* guix/web.scm: Add workaround for <http://bugs.gnu.org/13095>.
2013-04-27 23:00:51 +02:00
Ludovic Courtès
61ef22f432 web: Add 2.0.5 workaround for responses without content-length.
* guix/web.scm (read-response-body*)[when-guile<=2.0.5]: Support
  responses without content-length.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-04-27 23:00:21 +02:00
Ludovic Courtès
c4ca12c15b gnu-maintenance: Fix error message of `update-package-source'.
* guix/gnu-maintenance.scm (update-package-source): In the (not loc)
  case, pass the location first and convert it to a string.
2013-04-27 22:52:43 +02:00
Ludovic Courtès
4056b82882 doc: Update `NEWS'.
* NEWS: Populate.
2013-04-27 17:10:41 +02:00
Ludovic Courtès
a5975cedf2 ui: Add `args-fold*' and use it.
* guix/ui.scm (args-fold*): New procedure.
* guix/scripts/build.scm, guix/scripts/download.scm,
  guix/scripts/gc.scm, guix/scripts/hash.scm, guix/scripts/import.scm,
  guix/scripts/package.scm, guix/scripts/pull.scm,
  guix/scripts/refresh.scm: Use `args-fold*' instead of `args-fold'.
2013-04-27 16:46:39 +02:00
Ludovic Courtès
14e2afa74b ui: Use consistent spacing in `show-what-to-build' messages.
* guix/ui.scm (show-what-to-build): Use consistent spacing in "the
  following..." messages.
2013-04-27 16:37:09 +02:00
Ludovic Courtès
c3f0084ad3 gnu: Update libgpg-error and libassuan.
* gnu/packages/gnupg.scm (libgpg-error): Update to 1.11.
  (libassuan): Update to 2.1.0.
2013-04-27 16:30:01 +02:00
Ludovic Courtès
049b2f1d7b gnu-maintenance: Fix `latest-release' for GnuPG.
* guix/gnu-maintenance.scm (latest-release): Filter out directories
  whose name does not contain digits early in the process.  This fixes
  (latest-release "gnupg").
2013-04-27 16:26:48 +02:00
Ludovic Courtès
87dfd45594 ftp-client: `ftp-chdir' changes one step at a time.
* guix/ftp-client.scm (%char-set:not-slash): New variable.
  (ftp-chdir): Add docstring.  Change to DIR one step at a time.
  (ftp-retr): Fix indentation.
2013-04-27 16:25:54 +02:00
Ludovic Courtès
accf7a373e gnu: bison: Update to 2.7.1.
* gnu/packages/bison.scm (bison): Update to 2.7.1.
2013-04-27 12:18:21 +02:00
Ludovic Courtès
eaff9364d5 gnu: gprolog: Update to 1.4.4.
* gnu/packages/gprolog.scm (gprolog): Update to 1.4.4.
2013-04-27 12:13:21 +02:00
Ludovic Courtès
7f4b5efd2d gnu: gdb: Update to 7.6.
* gnu/packages/gdb.scm (gdb): Update to 7.6.
2013-04-27 12:11:54 +02:00
Ludovic Courtès
786944576c pull: Use `download-to-store'.
* guix/scripts/pull.scm (download-and-store): Remove.
  (unpack): Use `download-to-store' instead.
2013-04-27 11:40:18 +02:00
Ludovic Courtès
1424a96e25 web: Backport chunked encoding support for Guile <= 2.0.5.
* guix/web.scm (when-guile<=2.0.5): New macro.
  (read-chunk-header, read-chunk, read-chunk-body,
  make-chunked-input-port, read-response-body*)[when-guile<=2.0.5]: New
  procedures.
  (http-fetch): Clarify message when (not data).
2013-04-27 11:37:31 +02:00
Ludovic Courtès
56dbcb09d8 build: Explicitly require Guile >= 2.0.5.
* configure.ac: Require guile-2.0 >= 2.0.5.
2013-04-27 11:28:47 +02:00
Ludovic Courtès
cecb712cce gnu: gawk: Update to 4.0.2.
* gnu/packages/gawk.scm (gawk): Update to 4.0.2.
2013-04-27 00:23:45 +02:00
Ludovic Courtès
9369a02bfc gnu: patch: Update to 2.7.1.
* gnu/packages/base.scm (patch): Update to 2.7.1.
2013-04-27 00:23:19 +02:00
Ludovic Courtès
3b401612d9 gnu: Binutils 2.23.2 and GCC 4.7.3.
* gnu/packages/base.scm (binutils): Update to 2.23.2.
  (binutils-2.23, ld-wrapper-2.23): Remove.
  (gcc-4.8): Move to...
* gnu/packages/gcc.scm (gcc-4.8): ... here.
  (gcc-4.7): Update to 4.7.3.  Add dependencies on ISL, CLooG, libelf,
  and zlib.
2013-04-26 22:51:07 +02:00
Ludovic Courtès
6aded2dd3f gnu: guile: Default to 2.0.9.
* gnu/packages/guile.scm (guile-2.0/fixed): Switch to `guile-2.0'.
2013-04-26 22:48:17 +02:00
Ludovic Courtès
d83ae72401 gnu: diffutils: Update to 3.3.
* gnu/packages/base.scm (diffutils): Update to 3.3.
2013-04-26 22:13:14 +02:00
Ludovic Courtès
a9db7d10b6 Merge branch 'master' into core-updates
Conflicts:
	Makefile.am
	gnu/packages/autotools.scm
	gnu/packages/guile.scm
	gnu/packages/python.scm
	gnu/packages/shishi.scm
	guix/gnu-maintenance.scm
	guix/scripts/build.scm
	guix/scripts/gc.scm
	guix/scripts/package.scm
	guix/scripts/substitute-binary.scm
	guix/ui.scm
	nix/nix-daemon/guix-daemon.cc
	test-env.in
	tests/nar.scm
	tests/store.scm
2013-04-26 16:43:08 +02:00
Ludovic Courtès
2b6bdf7eb3 gnu: libgcrypt: Update to 1.5.2.
* gnu/packages/gnupg.scm (libgcrypt): Update to 1.5.2.
2013-04-25 23:21:49 +02:00
Ludovic Courtès
777fabf096 gnu: dejagnu: Update to 1.5.1.
* gnu/packages/dejagnu.scm (dejagnu): Update to 1.5.1.
2013-04-25 23:19:52 +02:00
Ludovic Courtès
acfc0df5ce gnu: nano: Update to 2.3.2.
* gnu/packages/nano.scm (nano): Update to 2.3.2.
2013-04-25 23:18:20 +02:00
Ludovic Courtès
6c211361fe gnu: ed: Update to 1.8.
* gnu/packages/ed.scm (ed): Update to 1.8.
2013-04-25 23:07:59 +02:00
Ludovic Courtès
dfb43e45b5 gnu-maintenance: Add newline in warning messages.
* guix/gnu-maintenance.scm (download-tarball): Add newline in warning
  messages.
2013-04-25 23:07:24 +02:00
Ludovic Courtès
43d8f4904c doc: Add note on installing Guix from Guix.
* README (Installing Guix from Guix): New section.
  Suggested by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.
2013-04-25 23:01:05 +02:00
Ludovic Courtès
37a5340262 refresh: Add `--select'.
* guix/scripts/refresh.scm (%options): Add `--select'.
  (show-help): Likewise.  Augment initial help text.
  (guix-refresh)[core-package?]: New procedure.
  Use it when selecting packages.
2013-04-25 22:56:25 +02:00
Ludovic Courtès
1c9e7d65d4 web: Factorize `http-get' hackery.
This should fix `substitute-binary --query' on Guile 2.0.5.

* guix/web.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Add it.
* guix/gnu-maintenance.scm (http-fetch): Remove.
  (%package-list-url): Turn into a URI.
  (official-gnu-packages): Add #:text? #t to `http-fetch' call.
* guix/scripts/substitute-binary.scm (fetch): Remove `http' case, and
  use `http-fetch' instead.
2013-04-25 22:14:51 +02:00
Ludovic Courtès
9e623d068d gnu: wdiff: Update to 1.2.1.
* gnu/packages/wdiff.scm (wdiff): Update to 1.2.1.  Add Texinfo as an input.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
f6f207b803 gnu: nettle: Update to 2.7.
* gnu/packages/nettle.scm (nettle): Update to 2.7.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
825d0ebc5b gnu: libtasn1: Update to 3.3.
* gnu/packages/gnutls.scm (libtasn1): Update to 3.3.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
65b96a0c10 gnu-maintenance: Optimize `gnu-package?'.
* guix/gnu-maintenance.scm (gnu-package?): Capture a memoizing version
  of `gnu-package?'.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
d55a99fed3 gnu-maintenance: Optimize `release-file'.
* guix/gnu-maintenance.scm (tarball-regexp): Remove.
  (%tarball-rx): New variable.
  (release-file): Adjust to use %TARBALL-RX.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
cac137aa84 gnu-maintenance: Optimize `latest-release'.
* guix/gnu-maintenance.scm (tarball-regexp, sans-extension,
  release-file): New procedures.
  (%alpha-tarball-rx): New variable.
  (releases): Use them instead of local copies.
  (latest-release): Rewrite to not do a recursive search of all
  versions and instead jump directly to the latest.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
0fdd3bea58 Add `guix refresh' and related auto-update tools.
* guix/gnu-maintenance.scm (ftp-server/directory)[quirks]: Add glib.
  (package-update-path, download-tarball, package-update,
  update-package-source): New procedures.
* guix/gnupg.scm, guix/scripts/refresh.scm: New files.
* Makefile.am (MODULES): Add them.
* guix/utils.scm (file-extension): New procedure.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
f903dc056a packages: Use read' and source properties for package-field-location'.
* guix/packages.scm (package-field-location): Rewrite using `read' and
  source properties.  Change to return #f upon failure.
* tests/packages.scm ("package-field-location"): Check for #f upon failure.
* build-aux/sync-synopses.scm: Adjust accordingly.
2013-04-25 00:13:56 +02:00
Ludovic Courtès
5fe21fbeef utils: Fix column number returned by `source-properties->location'.
* guix/utils.scm (source-properties->location): Use COL, not COL + 1.
2013-04-25 00:13:56 +02:00
Mark H Weaver
867b14108d gnu: hop: Update hash to match hop-2.4.0.tar.gz, which was modified in place.
* gnu/packages/scheme.scm (hop): Update the hash.
2013-04-24 17:14:53 -04:00
Ludovic Courtès
d66c70967f packages: Add `package-field-location'.
* guix/packages.scm (package-field-location): New procedure.
* build-aux/sync-synopses.scm: Use it instead of `package-location'.
* tests/packages.scm ("package-field-location"): New test.
2013-04-22 23:07:13 +02:00
Ludovic Courtès
b2a886f6c7 ui: Move macro definitions before any use.
* guix/ui.scm (define-diagnostic, warning, report-error, leave): Move
  definitions before any use.  Reported by Nikita Karetnikov.
  (install-locale): Move back close to `initialize-guix'.
2013-04-22 13:24:39 +02:00
Mark H Weaver
19c9664d93 gnu: xorriso: Update to 1.2.8.
* gnu/packages/cdrom.scm (xorriso): Update to 1.2.8.
2013-04-21 22:59:30 -04:00
Mark H Weaver
693b57e41c gnu: smalltalk: Update to 3.2.5.
* gnu/packages/smalltalk.scm (smalltalk): Update to 3.2.5.
2013-04-21 22:59:28 -04:00
Mark H Weaver
2306f7ab4b gnu: groff: Update to 1.22.2.
* gnu/packages/groff.scm (groff): Update to 1.22.2.
2013-04-21 22:59:24 -04:00
Mark H Weaver
6ed80bed48 gnu: gprolog: Update to 1.4.3 and download from GNU mirrors
* gnu/packages/gprolog.scm (gprolog): Update to 1.4.3.
  Download from GNU mirrors.
2013-04-21 17:57:56 -04:00
Ludovic Courtès
861693f3e7 Factorize `download-and-store'.
* guix/download.scm (download-to-store): New procedure.
* guix/scripts/download.scm (fetch-and-store): Remove.
  (guix-download): Use `download-to-store' instead.
* guix/ui.scm (call-with-temporary-output-file): Move to...
* guix/utils.scm (call-with-temporary-output-file): ... here.
2013-04-21 22:40:40 +02:00
Nikita Karetnikov
6c365eca6d Add 'guix hash'.
* guix/scripts/hash.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Add it.
* doc/guix.texi (Invoking guix hash): New node.
  (Defining Packages): Add a cross-reference to the 'Invoking guix
  hash' node.
2013-04-21 19:22:14 +00:00
Ludovic Courtès
e33d9d6f09 gnu: intltool: Fix typo.
* gnu/packages/glib.scm (intltool): Fix typo.
2013-04-21 21:09:49 +02:00
Nikita Karetnikov
bfda2997c8 guix download: Add supported formats to '--help'.
* guix/scripts/download.scm (show-help): Add supported formats.
2013-04-21 19:04:24 +00:00
Ludovic Courtès
238328c990 ui: Move definition of install-locale' after that of the warning' macro.
* guix/ui.scm (install-locale): Move definition after that of `warning'.
2013-04-21 11:53:06 +02:00
Ludovic Courtès
fcdf58c46c gnu: guile: Update to 2.0.9.
* gnu/packages/guile.scm (guile-2.0): Update to 2.0.9.
  (guile-2.0/fixed): Keep at 2.0.7.
2013-04-21 11:43:23 +02:00
Ludovic Courtès
107b415e43 gnu: intltool: Propagate gettext.
* gnu/packages/glib.scm (intltool): Propagate gettext.
2013-04-21 11:27:37 +02:00
Nikita Karetnikov
98eb8cbe8d ui: Add a 'define-diagnostic' macro.
* guix/ui.scm (define-diagnostic): New macro, which is based on the
  previous version of 'warning'.
  (warning, leave): Redefine using 'define-diagnostic'.
  (report-error): New macro.
  (install-locale): Use 'warning' instead of 'format'.
  (call-with-error-handling): Adjust 'leave'.
* gnu/packages.scm (package-files): Use 'warning' instead of 'format'.
* guix/gnu-maintenance.scm (http-fetch): Use 'warning' and 'leave'.
* guix/scripts/build.scm (derivations-from-package-expressions, guix-build):
  Adjust 'leave'.
* guix/scripts/download.scm (guix-download): Adjust 'leave'.
* guix/scripts/gc.scm (size->number, %options): Adjust 'leave'.
* guix/scripts/package.scm (roll-back, guix-package): Adjust 'leave'.
* po/POTFILES.in: Add 'guix/gnu-maintenance.scm'.
2013-04-21 08:08:40 +00:00
Ludovic Courtès
c6d7e299ae gnu: Add GCC 4.8.0 and Binutils 2.23.2.
* gnu/packages/base.scm (binutils-2.23, ld-wrapper-2.23, gcc-4.8): New
  variables.
2013-04-20 17:56:06 +02:00
Ludovic Courtès
4c7cacf117 substitute-binary: Remove expired cache entries once in a while.
* guix/scripts/substitute-binary.scm (%narinfo-expired-cache-entry-removal-delay):
  New variable.
  (obsolete?): New procedure, formerly in `lookup-narinfo'.
  (lookup-narinfo): Adjust accordingly.
  (remove-expired-cached-narinfos, maybe-remove-expired-cached-narinfo):
  New procedures.
  (guix-substitute-binary): Call `maybe-remove-expired-cached-narinfo'.
2013-04-20 15:12:24 +02:00
Ludovic Courtès
f286f71634 snix: Prefer synopses from the Womb rather than from Nixpkgs.
* guix/snix.scm (snix-derivation->guix-package): When NAME is
  in (official-gnu-packages), use this synopsis instead of the one from
  Nixpkgs.
2013-04-20 11:52:50 +02:00
Ludovic Courtès
f7758740ed gnu: gdbm, nano: Synchronize synopses.
* gnu/packages/gdbm.scm, gnu/packages/nano.scm: Synchronize synopses
  with the Womb.
2013-04-20 11:44:42 +02:00
Ludovic Courtès
0ff3e3aa9b daemon: Gracefully handle cases where the daemon does not return a status code.
* guix/store.scm (process-stderr): Check for EOF before doing (read-int p).
2013-04-20 10:53:31 +02:00
Andreas Enge
d6b8cb5c4a gnu: Unify the two intltool packages.
* gnu/packages/xml.scm (intltool): Delete variable.
* gnu/packages/glib.scm (intltool): Update to version 0.50.2.
2013-04-19 19:51:49 +02:00
Ludovic Courtès
6858f9d132 daemon: Add `--no-substitutes'.
Suggested by Mark H. Weaver.

* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_SUBSTITUTES): New macro.
  (options): Add `--no-substitutes'.
  (parse_opt): Add `GUIX_OPT_NO_SUBSTITUTES' case.
  (main): Leave `settings.substituters' empty when
  `settings.useSubstitutes' is false.
2013-04-18 22:50:31 +02:00
Ludovic Courtès
ea0ee755bd daemon: Really enable the substituter by default.
* nix/nix-daemon/guix-daemon.cc (main): Really enable the substituter by
  default.  Reported by Mark H. Weaver.
2013-04-18 22:50:31 +02:00
Ludovic Courtès
48febeb81a doc: Mention the home page.
* doc/guix.texi (Installation): Add a sentence pointing to the home
  page.  Suggested by Arne Babenhauserheide.
2013-04-18 22:50:31 +02:00
Nikita Karetnikov
6c1cd80d8f tests: Use a new synopsis of GNU Hello.
* tests/guix-package.sh: Use a new synopsis of GNU Hello, which was
  added in f50d2669e3.
2013-04-18 16:08:43 +00:00
Ludovic Courtès
3b78d1eab8 doc: Transparent binary deployment is implemented.
* doc/guix.texi (Features): Remove footnote saying that transparent
  binary deployment is not implemented.
2013-04-17 22:44:19 +02:00
Ludovic Courtès
b52cb20d43 guix package: Allow the search of the latest release to be interrupted.
* guix/scripts/package.scm (%sigint-prompt): New variable.
  (call-with-sigint-handler): New procedure.
  (waiting): Use it.
2013-04-17 22:43:14 +02:00
Ludovic Courtès
0e993428ce build: Add `sync-synopses.scm'.
* build-aux/sync-synopses.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
  (dist-hook): New target.
2013-04-17 18:09:43 +02:00
Ludovic Courtès
f50d2669e3 gnu: Use synopses from the Womb.
* gnu/packages/algebra.scm,
  gnu/packages/aspell.scm,
  gnu/packages/autotools.scm,
  gnu/packages/base.scm,
  gnu/packages/bash.scm,
  gnu/packages/bison.scm,
  gnu/packages/cdrom.scm,
  gnu/packages/cflow.scm,
  gnu/packages/compression.scm,
  gnu/packages/cpio.scm,
  gnu/packages/cppi.scm,
  gnu/packages/ddrescue.scm,
  gnu/packages/dejagnu.scm,
  gnu/packages/ed.scm,
  gnu/packages/emacs.scm,
  gnu/packages/fdisk.scm,
  gnu/packages/gawk.scm,
  gnu/packages/gcc.scm,
packages/gcc.scm, b/gnu/packages/gcc.scm,
4b982 100644
s/gcc.scm,
s/gcc.scm,
@@
         %standard-phases)))))

 `((gcc-libc . ,(assoc-ref inputs "libc"))))
The GNU Compiler Collection")
GNU Compiler Collection")
n
ompiler Collection includes compiler front ends for C, C++,
tran, OpenMP for C/C++/Fortran, Java, and Ada, as well as
  gnu/packages/gdb.scm,
  gnu/packages/gettext.scm,
  gnu/packages/ghostscript.scm,
  gnu/packages/glib.scm,
  gnu/packages/global.scm,
  gnu/packages/gnupg.scm,
  gnu/packages/gnutls.scm,
  gnu/packages/gperf.scm,
  gnu/packages/gprolog.scm,
  gnu/packages/groff.scm,
  gnu/packages/grub.scm,
  gnu/packages/gsasl.scm,
  gnu/packages/guile.scm,
  gnu/packages/help2man.scm,
  gnu/packages/idutils.scm,
  gnu/packages/indent.scm,
  gnu/packages/less.scm,
  gnu/packages/libidn.scm,
  gnu/packages/libsigsegv.scm,
  gnu/packages/libunistring.scm,
  gnu/packages/linux.scm,
  gnu/packages/lsh.scm,
  gnu/packages/m4.scm,
  gnu/packages/mailutils.scm,
  gnu/packages/multiprecision.scm,
  gnu/packages/nano.scm,
  gnu/packages/ncurses.scm,
  gnu/packages/nettle.scm,
  gnu/packages/oggvorbis.scm,
  gnu/packages/parted.scm,
  gnu/packages/pth.scm,
  gnu/packages/readline.scm,
  gnu/packages/recutils.scm,
  gnu/packages/scheme.scm,
  gnu/packages/screen.scm,
  gnu/packages/shishi.scm,
  gnu/packages/smalltalk.scm,
  gnu/packages/system.scm,
  gnu/packages/texinfo.scm,
  gnu/packages/time.scm,
  gnu/packages/wdiff.scm,
  gnu/packages/wget.scm,
  gnu/packages/which.scm: Use synopses from the Womb.
2013-04-17 18:04:25 +02:00
Ludovic Courtès
801486fe46 ui: Fix format string in `warning'.
* guix/ui.scm (warning)[augmented-format-string]: Add missing ~*.
2013-04-17 18:02:48 +02:00
Ludovic Courtès
f594028a9c gnu: Add missing import in (gnu packages cross-base).
* gnu/packages/cross-base.scm: Use (gnu packages gcc).
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-04-17 14:59:19 +02:00
Ludovic Courtès
dd36b51bf7 scripts: Report what will be substituted.
* guix/derivations.scm (derivation-input-output-paths): New procedure.
  (derivation-prerequisites-to-build): New `use-substitutes?' keyword
  argument.  Change two return the list of substitutable paths as a
  second argument.
* guix/ui.scm (show-what-to-build): Turn `dry-run?' into a keyword
  argument.  New `use-substitutes?' keyword argument.  Use `fold2' and
  adjust to use both return values of
  `derivation-prerequisites-to-build'.  Display what will/would be
  downloaded.
* guix/scripts/build.scm (guix-build): Adjust accordingly.
* guix/scripts/package.scm (guix-package): Likewise.
* tests/derivations.scm ("derivation-prerequisites-to-build and
  substitutes"): New test.
2013-04-17 00:08:21 +02:00
Cyril Roelandt
acb6ba2567 package: allow users to upgrade the whole system by not providing a regexp.
* guix/scripts/packages.scm (guix-package) [process-actions]: When upgrading,
use "" when REGEXP is #f.
* doc/guix.texi: update the documentation accordingly.
2013-04-16 23:12:29 +02:00
Cyril Roelandt
0160536dcb gnu: Python: bump to version 2.7.4.
* gnu/packages/python.scm: bump to version 2.7.4, remove references to
python-fix-dbm.patch.
* Makefile.am: remove references to python-fix-dbm.patch
* gnu/packages/patches/python-fix-dbm.patch: remove it.
2013-04-16 23:12:29 +02:00
Ludovic Courtès
35ac56b63e build-system/{perl,cmake}: Keep the standard search paths of gnu-build-system.
Reported by Andreas Enge <andreas@enge.fr>.

* guix/build-system/gnu.scm (standard-search-paths): New procedure.
  (gnu-build): Use it.
* guix/build-system/perl.scm (perl-build):
  Append (standard-search-paths) to the search paths of PERL.
* guix/build-system/cmake.scm (cmake-build):
  Append (standard-search-paths) to SEARCH-PATHS.
2013-04-16 14:05:00 +02:00
Ludovic Courtès
e967678ed1 substitute-binary: Skip servers that use a different store prefix.
* guix/scripts/substitute-binary.scm (fetch-narinfo): Return #f when
  CACHE uses a store directory different from (%store-prefix).
2013-04-15 23:43:13 +02:00
Ludovic Courtès
0c357a088b substitute-binary: Call `open-cache' only when needed.
* guix/scripts/substitute-binary.scm (lookup-narinfo): Force CACHE when
  passing it to `fetch-narinfo'.
  (guix-substitute-binary): Delay calls to `open-cache'.
2013-04-15 23:43:10 +02:00
Ludovic Courtès
eba783b7b2 substitute-binary: Add a local cache.
* guix/scripts/substitute-binary.scm (%narinfo-cache-directory,
  %narinfo-ttl, %narinfo-negative-ttl): New variables.
  (with-atomic-file-output, object->fields, read-narinfo,
  write-narinfo, narinfo->string, string->narinfo, lookup-narinfo): New
  procedures.
  (fetch-narinfo): Adjust to use `read-narinfo'.
  (guix-substitute-binary): Ensure the existence of
  %NARINFO-CACHE-DIRECTORY.  Use `lookup-narinfo' instead of
  `fetch-narinfo'.
2013-04-15 23:42:55 +02:00
Ludovic Courtès
63b7c6c1f8 gnu: automake: Restore shebangs on files that end up in user tarballs.
* gnu/packages/autotools.scm (automake): Add `unpatch-shebangs' phase.
2013-04-14 22:34:48 +02:00
Ludovic Courtès
04fd96cac3 utils: Add `fold2'.
* gnu/packages.scm (fold2): Remove.
* guix/utils.scm (fold2): New procedure.  Generalization of the above to
  one and two lists.
* tests/utils.scm ("fold2, 1 list", "fold2, 2 lists"): New tests.
2013-04-14 16:56:08 +02:00
Ludovic Courtès
50efa79774 gnu: emacs: Build the GUI with libXaw.
* gnu/packages/emacs.scm (emacs): Add inputs: libX11, libXaw, libXt,
  libtiff, libjpeg, libpng, zlib, libXpm, libxml2, and D-Bus.
2013-04-13 22:08:09 +02:00
Ludovic Courtès
baa0d82a8a gnu: libXaw: Propagate libXt.
* gnu/packages/xorg.scm (libxaw): Propagate libXt.
2013-04-13 22:06:47 +02:00
Ludovic Courtès
c5c555b186 gnu: Add Ratpoison.
* gnu/packages/ratpoison.scm: New file.
* Makefile.am (MODULES): Add it.
2013-04-12 21:58:47 +02:00
Ludovic Courtès
841032d448 store: Remove unneeded and conflicting import.
* guix/store.scm: Remove unneeded (ice-9 rdelim) import.  In Guile 2.0.9
  that module exports `read-string', which conflicts with that of (guix
  serialization).
2013-04-12 21:58:47 +02:00
Ludovic Courtès
d5d6db8918 package: Being at the empty profile is not an error.
* guix/scripts/package.scm (roll-back): Use `format', not `leave' when
  indicating "already at the empty profile".  Fixes a regression
  introduced in a2011be5df.  Reported by
  Nikita Karetnikov <nikita@karetnikov.org>.
2013-04-12 21:58:47 +02:00
Ludovic Courtès
0d2fe78f85 Update `TODO'. 2013-04-12 21:58:47 +02:00
Ludovic Courtès
581f9eb845 guix package: Add `--no-substitutes'.
* guix/scripts/package.scm (%default-options): Add `substitutes?'.
  (show-help, %options): Add and document `--no-substitutes'.
  (guix-package): Call `set-build-options' to honor `substitutes?'.
2013-04-12 21:58:47 +02:00
Ludovic Courtès
cdf2022052 substitute-binary: Implement `--substitute'.
This allows build outputs to be transparently downloaded from
http://hydra.gnu.org, for example.

* config-daemon.ac: Check for `gzip', `bzip2', and `xz'.
* guix/config.scm.in (%gzip, %bzip2, %xz): New variable.
* guix/scripts/substitute-binary.scm (fetch): Return SIZE as a second value.
  (<narinfo>): Change `url' to `uri'.
  (make-narinfo): Rename to...
  (narinfo-maker): ... this.  Handle relative URLs.
  (fetch-narinfo): Adjust accordingly.
  (filtered-port, decompressed-port): New procedures.
  (guix-substitute-binary): Implement the `--substitute' case.
* tests/store.scm ("substitute query"): Use (%store-prefix) instead
  of (getenv "NIX_STORE_DIR").
  ("substitute"): New test.
2013-04-12 21:58:47 +02:00
Ludovic Courtès
f03f0c9a86 substitute-binary: Correctly handle missing narinfos in `--query' mode.
* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]("have",
  "info"): Filter SUBSTITUTABLE through `narinfo?'.
2013-04-12 21:58:47 +02:00
Ludovic Courtès
c7b62db614 nar: Add support for symlinks.
* guix/nar.scm (write-file): Add case for type `symlink'.
  (restore-file): Likewise.
* tests/nar.scm (random-file-size, make-file-tree, delete-file-tree,
  with-file-tree, file-tree-equal?, make-random-bytevector,
  populate-file): New procedures.
  (%test-dir): New variable.
  ("write-file + restore-file"): Use `%test-dir' and `file-tree-equal?'.
  ("write-file + restore-file with symlinks"): New test.
2013-04-12 21:58:47 +02:00
Ludovic Courtès
6f80c9d8f3 ui: Add a `warning' macro.
* guix/ui.scm (program-name, guix-warning-port): New variables.
  (warning): New macro.
  (guix-main): Parametrize PROGRAM-NAME.
* guix/scripts/build.scm, guix/scripts/download.scm,
  guix/scripts/gc.scm, guix/scripts/package.scm: Adjust to use `leave'
  and `warning' consistently.
2013-04-12 21:58:46 +02:00
Ludovic Courtès
ca877f5a3a nar: Implement restoration from Nar.
* guix/nar.scm (&nar-error, &nar-read-error): New condition types.
  (dump): New procedure.
  (write-contents)[dump]: Remove.  Use the one above instead.
  (read-contents, write-file, restore-file): New procedures.
  (%archive-version-1): New variable.
2013-04-12 21:58:46 +02:00
Nikita Karetnikov
865c4ef33c gnu: shishi: Update to 1.0.2.
* gnu/packages/shishi.scm (shishi): Update to 1.0.2.
* gnu/packages/patches/shishi-gets-undeclared.patch: Remove it.
* Makefile.am (dist_patch_DATA): Adjust accordingly.
2013-04-12 21:58:46 +02:00
Cyril Roelandt
3fdc99da19 gnu: Python: fix the compilation of some modules from the standard library.
This commit enables the bz2, dbm, readline, ssl and zlib modules.

* gnu/packages/gdbm.scm: Enable the compatibility mode.
* gnu/packages/python.scm: Enable a few modules from the standard library.
* gnu/packages/patches/python-fix-dbm.patch: New file.
* Makefile.am: Add it.
2013-04-12 21:58:46 +02:00
Ludovic Courtès
f0cd71f21e Add (guix nar) and (guix serialization).
* guix/store.scm (write-int, read-int, write-long-long, read-long-long,
  write-padding, write-string, read-string, read-latin1-string,
  write-string-list, read-string-list, write-store-path,
  read-store-path, write-store-path-list, read-store-path-list): Move to
  serialization.scm.
  (write-contents, write-file): Move to nar.scm.
* guix/nar.scm, guix/serialization.scm: New files.
* Makefile.am (MODULES): Add them.
2013-04-12 21:57:58 +02:00
Ludovic Courtès
7ce1f2160f substitute-binary: Fix communication of several store paths to the daemon.
* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]:
  Emit blank lines only after the complete list of store paths has been
  returned.
2013-04-12 21:57:58 +02:00
Ludovic Courtès
419fffa2e8 Add preliminary binary substituter.
* guix/scripts/substitute-binary.scm: New file.
* Makefile.am (MODULES): Add it.
* nix/scripts/substitute-binary.in: New file.
* config-daemon.ac: Produce nix/scripts/substitute-binary.
* daemon.am (nodist_pkglibexec_SCRIPTS): Add
  nix/scripts/substitute-binary.
* guix/store.scm (substitutable-path-info): Use the
  `query-substitutable-path-infos' RPC.
* nix/nix-daemon/guix-daemon.cc (main): Honor `NIX_SUBSTITUTERS'.
* pre-inst-env.in: Set `NIX_SUBSTITUTERS'.
* test-env.in: Leave `NIX_SUBSTITUTERS' unchanged.  Set
  `GUIX_BINARY_SUBSTITUTE_URL, and create
  $NIX_STATE_DIR/substituter-data.
  Run `guix-daemon' within `./pre-inst-env'.
* tests/store.scm ("substitute query"): New test.
2013-04-12 21:57:58 +02:00
Ludovic Courtès
04151253e3 gnu: bigloo: Add dependencies on Avahi and libphidget.
* gnu/packages/scheme.scm (bigloo): Add Avahi and libphidget as inputs,
  and pkg-config as a native input.
2013-04-12 21:57:58 +02:00
Ludovic Courtès
f14d6b697e gnu: Add libphidget.
* gnu/packages/libphidget.scm: New file.
* Makefile.am (MODULES): Add it.
2013-04-12 21:57:57 +02:00
Ludovic Courtès
afb49942e0 store: Add `store-path-hash-part'.
* guix/store.scm (store-path-hash-part): New procedure.
* tests/store.scm ("store-path-hash-part", "store-path-hash-part #f"):
  New tests.
2013-04-12 21:57:57 +02:00
Ludovic Courtès
5477e0342f gnu-maintenance: Adjust `http-fetch' to the various Guile versions.
* guix/gnu-maintenance.scm (http-fetch): Try #:streaming? #t, or
  'http-get*', or 'http-get' as a last resort.  Check whether DATA is
  #f, a string, or an input port.
2013-04-12 21:57:57 +02:00
Ludovic Courtès
bdf06d8922 pull: Switch to the cgit URL.
* guix/scripts/pull.scm (%snapshot-url): Switch to the cgit URL, given
  that the Hydra one is not currently available.
2013-04-12 21:57:57 +02:00
Ludovic Courtès
77ffd691bf tests: Remove temporary directory created by nar.scm.
* tests/nar.scm ("write-file + restore-file with symlinks"): Add (rm-rf
  output).
2013-04-12 18:40:22 +02:00
Ludovic Courtès
9adb6934f4 store: Remove unneeded and conflicting import.
* guix/store.scm: Remove unneeded (ice-9 rdelim) import.  In Guile 2.0.9
  that module exports `read-string', which conflicts with that of (guix
  serialization).
2013-04-12 18:22:41 +02:00
Ludovic Courtès
c31d1a7860 package: Being at the empty profile is not an error.
* guix/scripts/package.scm (roll-back): Use `format', not `leave' when
  indicating "already at the empty profile".  Fixes a regression
  introduced in a2011be5df.  Reported by
  Nikita Karetnikov <nikita@karetnikov.org>.
2013-04-12 18:07:17 +02:00
Ludovic Courtès
9297c90b69 Update `TODO'. 2013-04-12 17:31:05 +02:00
Ludovic Courtès
3b82460576 guix package: Add `--no-substitutes'.
* guix/scripts/package.scm (%default-options): Add `substitutes?'.
  (show-help, %options): Add and document `--no-substitutes'.
  (guix-package): Call `set-build-options' to honor `substitutes?'.
2013-04-12 17:31:05 +02:00
Ludovic Courtès
fe0cff14f6 substitute-binary: Implement `--substitute'.
This allows build outputs to be transparently downloaded from
http://hydra.gnu.org, for example.

* config-daemon.ac: Check for `gzip', `bzip2', and `xz'.
* guix/config.scm.in (%gzip, %bzip2, %xz): New variable.
* guix/scripts/substitute-binary.scm (fetch): Return SIZE as a second value.
  (<narinfo>): Change `url' to `uri'.
  (make-narinfo): Rename to...
  (narinfo-maker): ... this.  Handle relative URLs.
  (fetch-narinfo): Adjust accordingly.
  (filtered-port, decompressed-port): New procedures.
  (guix-substitute-binary): Implement the `--substitute' case.
* tests/store.scm ("substitute query"): Use (%store-prefix) instead
  of (getenv "NIX_STORE_DIR").
  ("substitute"): New test.
2013-04-12 17:31:01 +02:00
Ludovic Courtès
d7c5d27795 substitute-binary: Correctly handle missing narinfos in `--query' mode.
* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]("have",
  "info"): Filter SUBSTITUTABLE through `narinfo?'.
2013-04-12 17:30:47 +02:00
Ludovic Courtès
8f3114b7a4 nar: Add support for symlinks.
* guix/nar.scm (write-file): Add case for type `symlink'.
  (restore-file): Likewise.
* tests/nar.scm (random-file-size, make-file-tree, delete-file-tree,
  with-file-tree, file-tree-equal?, make-random-bytevector,
  populate-file): New procedures.
  (%test-dir): New variable.
  ("write-file + restore-file"): Use `%test-dir' and `file-tree-equal?'.
  ("write-file + restore-file with symlinks"): New test.
2013-04-12 14:42:56 +02:00
Ludovic Courtès
7a88ad6bff tests: Adjust `gnu-build' test to search path mechanism.
Fixes a regression introduced in a18eda2.
Reported by Nikita Karetnikov <nikita@karetnikov.org>.

* tests/builders.scm (%bootstrap-search-paths): New variable.
  ("gnu-build"): Pass #:search-paths.
2013-04-11 22:56:39 +02:00
Ludovic Courtès
a2011be5df ui: Add a `warning' macro.
* guix/ui.scm (program-name, guix-warning-port): New variables.
  (warning): New macro.
  (guix-main): Parametrize PROGRAM-NAME.
* guix/scripts/build.scm, guix/scripts/download.scm,
  guix/scripts/gc.scm, guix/scripts/package.scm: Adjust to use `leave'
  and `warning' consistently.
2013-04-11 22:30:06 +02:00
Cyril Roelandt
1010e530d3 gnu: Add dwm.
* gnu/packages/dwm.scm: New file.
* Makefile.am: Add it.
2013-04-11 21:08:31 +02:00
Ludovic Courtès
068cdcd07c build-system/gnu: Fix search path computation with implicit inputs.
Reported by Andreas Enge <andreas@enge.fr>.

* guix/build-system/gnu.scm (standard-packages): New procedure.
  (standard-inputs): Use it instead of resolving things locally.
  (gnu-build)[implicit-search-paths]: Map over (standard-packages), not
  over STANDARD-INPUTS.
2013-04-09 19:01:21 +02:00
Ludovic Courtès
53c63ee937 nar: Implement restoration from Nar.
* guix/nar.scm (&nar-error, &nar-read-error): New condition types.
  (dump): New procedure.
  (write-contents)[dump]: Remove.  Use the one above instead.
  (read-contents, write-file, restore-file): New procedures.
  (%archive-version-1): New variable.
2013-04-08 23:21:38 +02:00
Ludovic Courtès
52e5910cdc build: Pass the appropriate flags when building `libstore.a'.
* daemon.am (libstore_a_CFLAGS): Rename to...
  (libstore_a_CXXFLAGS): ... this.
2013-04-08 23:21:38 +02:00
Nikita Karetnikov
cbca6eb552 gnu: shishi: Update to 1.0.2.
* gnu/packages/shishi.scm (shishi): Update to 1.0.2.
* gnu/packages/patches/shishi-gets-undeclared.patch: Remove it.
* Makefile.am (dist_patch_DATA): Adjust accordingly.
2013-04-08 12:04:37 +00:00
Cyril Roelandt
4f7d8d7ee4 gnu: Python: fix the compilation of some modules from the standard library.
This commit enables the bz2, dbm, readline, ssl and zlib modules.

* gnu/packages/gdbm.scm: Enable the compatibility mode.
* gnu/packages/python.scm: Enable a few modules from the standard library.
* gnu/packages/patches/python-fix-dbm.patch: New file.
* Makefile.am: Add it.
2013-04-07 15:32:39 +02:00
Ludovic Courtès
0f41c26f9b Add (guix nar) and (guix serialization).
* guix/store.scm (write-int, read-int, write-long-long, read-long-long,
  write-padding, write-string, read-string, read-latin1-string,
  write-string-list, read-string-list, write-store-path,
  read-store-path, write-store-path-list, read-store-path-list): Move to
  serialization.scm.
  (write-contents, write-file): Move to nar.scm.
* guix/nar.scm, guix/serialization.scm: New files.
* Makefile.am (MODULES): Add them.
2013-04-04 22:29:08 +02:00
Ludovic Courtès
462f8e9f33 substitute-binary: Fix communication of several store paths to the daemon.
* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]:
  Emit blank lines only after the complete list of store paths has been
  returned.
2013-04-04 21:47:55 +02:00
Andreas Enge
6be960c7f7 Merge branch 'xorg' into core-updates 2013-04-04 18:49:28 +02:00
Ludovic Courtès
f65cf81a3c Add preliminary binary substituter.
* guix/scripts/substitute-binary.scm: New file.
* Makefile.am (MODULES): Add it.
* nix/scripts/substitute-binary.in: New file.
* config-daemon.ac: Produce nix/scripts/substitute-binary.
* daemon.am (nodist_pkglibexec_SCRIPTS): Add
  nix/scripts/substitute-binary.
* guix/store.scm (substitutable-path-info): Use the
  `query-substitutable-path-infos' RPC.
* nix/nix-daemon/guix-daemon.cc (main): Honor `NIX_SUBSTITUTERS'.
* pre-inst-env.in: Set `NIX_SUBSTITUTERS'.
* test-env.in: Leave `NIX_SUBSTITUTERS' unchanged.  Set
  `GUIX_BINARY_SUBSTITUTE_URL, and create
  $NIX_STATE_DIR/substituter-data.
  Run `guix-daemon' within `./pre-inst-env'.
* tests/store.scm ("substitute query"): New test.
2013-04-03 22:44:39 +02:00
Ludovic Courtès
cf53ecf514 gnu: bigloo: Add dependencies on Avahi and libphidget.
* gnu/packages/scheme.scm (bigloo): Add Avahi and libphidget as inputs,
  and pkg-config as a native input.
2013-04-03 14:58:49 +02:00
Andreas Enge
8dc5d0cf7e gnu: xorg: Re-enable tests for xorg-server.
* gnu/packages/xorg.scm (xorg-server): Re-enable (failing) tests.
2013-04-02 12:47:39 +02:00
Ludovic Courtès
adb5f46940 gnu: Add libphidget.
* gnu/packages/libphidget.scm: New file.
* Makefile.am (MODULES): Add it.
2013-04-02 10:59:27 +02:00
Ludovic Courtès
2c6ab6ccd4 store: Add `store-path-hash-part'.
* guix/store.scm (store-path-hash-part): New procedure.
* tests/store.scm ("store-path-hash-part", "store-path-hash-part #f"):
  New tests.
2013-04-01 17:35:27 +02:00
Ludovic Courtès
ef8c03407d gnu-maintenance: Adjust `http-fetch' to the various Guile versions.
* guix/gnu-maintenance.scm (http-fetch): Try #:streaming? #t, or
  'http-get*', or 'http-get' as a last resort.  Check whether DATA is
  #f, a string, or an input port.
2013-04-01 00:41:55 +02:00
Andreas Enge
c7f9993146 gnu: xorg: Remove inputs already available through propagation.
* gnu/packages/xorg.scm: Remove inputs that are available through propagation.
2013-03-31 21:16:50 +02:00
Andreas Enge
14ecc0effc gnu: Add xpdf.
* gnu/packages/pdf.scm (xpdf): New variable.
* gnu/packages/patches/xpdf-constchar.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-03-31 17:27:37 +02:00
Andreas Enge
141ccae8a7 gnu: lesstif: Make package usable by adding propagated input.
* gnu/packages/lesstif.scm (lesstif): Add propagated input printproto;
     include/Xm/Print.h from lesstif includes X11/extensions/Print.h from
     printproto.
2013-03-31 14:58:01 +02:00
Andreas Enge
0a92b5b30a gnu: freetype: Make include file ft2build.h work without changing the CPATH
of dependent packages.

* gnu/packages/fontutils.scm (freetype): Add link include/freetype to
     include/freetype2/freetype.
2013-03-31 14:50:10 +02:00
Andreas Enge
bd8c5d5b02 gnu: xorg: Add libxp and printproto, not included in X11R7.7.
* gnu/packages/xorg.scm (libxp, printproto): New variables.
2013-03-31 14:33:33 +02:00
Ludovic Courtès
fdfd3d5d9c pull: Switch to the cgit URL.
* guix/scripts/pull.scm (%snapshot-url): Switch to the cgit URL, given
  that the Hydra one is not currently available.
2013-03-31 12:46:28 +02:00
Ludovic Courtès
3ee5a7d86a gnu: perl-xml-parser: Fix URL.
* gnu/packages/xml.scm (perl-xml-parser): Fix URL.
2013-03-31 12:39:25 +02:00
Ludovic Courtès
9be8d7c8cb gnu: Define `native-search-paths' for Automake, Guile, and Python.
* gnu/packages/autotools.scm (automake)[native-search-paths]: New field.
* gnu/packages/guile.scm (guile-1.8)[native-search-paths]: New field.
  (guile-2.0)[native-search-paths]: New field.
* gnu/packages/python.scm (python)[native-search-paths]: New field.
2013-03-30 22:57:05 +01:00
Ludovic Courtès
a18eda2747 packages: Add `native-search-paths' field and honor it.
* guix/packages.scm (<search-path-specification>): New record type.
  (search-path-specification->sexp): New procedure.
  (<package>)[native-search-paths]: New field.
  (package-derivation): Accumulate the search paths, and pass them
  as #:search-paths toe BUILDER.
* guix/build-system/gnu.scm (gnu-build): Add #:search-paths.  Compute
  `implicit-search-paths'.  Pass #:search-paths in BUILDER.
* guix/build-system/perl.scm (perl-build): Add #:search-paths, pass it
  to BUILDER with the search paths of PERL.
* guix/build-system/cmake.scm (cmake-build): Add #:search-paths, pass it
  to BUILDER.
* guix/build-system/trivial.scm (trivial-build): Add #:search-paths,
  ignore it.
* guix/build/gnu-build-system.scm (set-paths): Add #:search-paths.
  Remove explicit settings of CPATH, LIBRARY_PATH, and PKG_CONFIG_PATH.
  Instead, walk SEARCH-PATHS and call `set-path-environment-variable'
  for them.
* guix/build/perl-build-system.scm (perl-build): Remove PERL5LIB setting.
* tests/packages.scm ("search paths"): New test.
* gnu/packages/bootstrap.scm (%bootstrap-guile)[raw]: Add
  #:search-paths.
  (%bootstrap-gcc): Add `native-search-paths' field.
* gnu/packages/perl.scm (perl): Likewise.
* gnu/packages/pkg-config.scm (pkg-config): Likewise.
* gnu/packages/glib.scm (intltool): Remove `arguments'.
* gnu/packages/avahi.scm (avahi): Remove #:phases.
2013-03-30 22:57:03 +01:00
Ludovic Courtès
5cfdb4bcac build: Pass the appropriate flags when building `libstore.a'.
* daemon.am (libstore_a_CFLAGS): Rename to...
  (libstore_a_CXXFLAGS): ... this.
2013-03-30 21:49:17 +01:00
Ludovic Courtès
a96748bb46 build-system/gnu: Remove #:path-exclusions parameter.
* guix/build/gnu-build-system.scm (set-paths): Remove `path-exclusions'
  parameter.  Replace `relevant-input-directories' by
  `input-directories'.
* guix/build-system/gnu.scm (gnu-build): Remove `path-exclusions'
  parameter; don't pass it in BUILDER.
* guix/build-system/cmake.scm (cmake-build): Likewise.
2013-03-30 21:46:59 +01:00
Andreas Enge
bc3073c8e3 gnu: xorg: Make font-adobe75dpi and font-adobe100dpi compile (not install).
* gnu/packages/xorg/scm (font-adobe75dpi, font-adobe100dpi): Add inputs
     bdftopcf, font-util and mkfontdir.
2013-03-30 10:13:23 +01:00
Andreas Enge
84419dfd25 gnu: xorg: Add mtdev and make xf86-input-synaptics compile (not install).
* gnu/packages/xorg.scm (mtdev): New variable.
* gnu/packages/xorg.scm (xf86-input-synaptics): Add inputs libx11, libxi
     and mtdev.
* gnu/packages/xorg.scm (libxi): Propagate input libxext.
2013-03-30 10:05:08 +01:00
Andreas Enge
7e2ec42b1a gnu: xorg: Disable not compiling xf86-video-geode.
* gnu/packages/xorg.scm (xf86-video-geode): Comment out since not compiling
     (assembler errors).
2013-03-30 09:42:11 +01:00
Andreas Enge
3a5d958570 gnu: xorg: Fix compilation of xorg-server.
* gnu/packages/xorg.scm (mesa): Propagate input libxxf86vm.
2013-03-30 09:19:24 +01:00
Andreas Enge
1f44111f83 gnu: xorg: Disable xf86-video-glide.
* gnu/packages/xorg.scm (xf86-video-glide): Comment variable; driver for
     obsolete graphics cards, depends on libglide, last updated in 2003,
     and which does not compile out of the box any more.
2013-03-30 09:00:25 +01:00
Andreas Enge
6706269ed4 gnu: xorg: Disable xf86-video-wsfb.
* gnu/packages/xorg.scm (xf86-video-wsfb): Comment variable, only relevant
     for the frame buffer on BSD systems.
2013-03-30 08:54:53 +01:00
Andreas Enge
47038b76b2 gnu: xorg: Make xgamma compile.
* gnu/packages/xorg.scm (libxxf86vm): Propagate inputs libxext and
     xf86vidmodeproto.
2013-03-30 08:50:39 +01:00
Andreas Enge
979bc0f49b gnu: xorg: Make xvinfo compile.
* gnu/packages/xorg.scm (libxv): Propagate input videoproto.
2013-03-30 08:43:47 +01:00
Ludovic Courtès
4928e50033 Merge branch 'master' into core-updates
Conflicts:
	Makefile.am
	gnu/packages/base.scm
2013-03-29 21:44:31 +01:00
Andreas Enge
73274a8ae7 gnu: Really add lesstif.
* Makefile.am (MODULES): Commit the module addition.
2013-03-29 10:51:41 +01:00
Andreas Enge
13f5ea6f46 gnu: Add lesstif.
* gnu/packages/lesstif.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-29 10:49:30 +01:00
Ludovic Courtès
3f5a932eea snix: Adjust import to current Nixpkgs input attribute names.
* guix/snix.scm (snix-derivation->guix-package): Use the new names
  `nativeBuildInputs' and `propagatedNativeBuildInputs'.
2013-03-29 00:16:58 +01:00
Andreas Enge
917748dd6d gnu: xorg: Make most xserver related packages compile.
* gnu/packages/xorg.scm (xf86-*): Add input xorg-server.
* gnu/packages/xorg.scm (xf86-video-glint, xf86-video-neomagic,
     xf86-video-tga, xf86-video-trident, xf86-video-voodoo):
     Add input xf86dgaproto.
* gnu/packages/xorg.scm (xf86-video-ati, xf86-video-mach64,
     xf86-video-mga, xf86-video-r128, xf86-video-savage, xf86-video-tdfx):
     Add inputs mesa and xf86driproto.
* gnu/packages/xorg.scm (xf86-video-i128): Add inputs libdrm and libx11.
* gnu/packages/xorg.scm (xf86-video-openchrome): Add inputs libx11, libxext,
     libxvmc, mesa and xf86driproto.
* gnu/packages/xorg.scm (xf86-video-siliconmotion): Add inputs mesa,
     xf86dgaproto and xf86driproto.
* gnu/packages/xorg.scm (xf86-video-vmware): Add inputs libx11 and libxext.
* gnu/packages/xorg.scm (libxvmc): Propagate input libxv.
* gnu/packages/xorg.scm (mesa): Propagate input glproto.
* gnu/packages/xorg.scm (xf86-video-geode): Correct source hash.
2013-03-28 23:54:58 +01:00
Nikita Karetnikov
f9bbf2a819 gnu-maintenance: Improve 'official-gnu-packages'; add related procedures.
* guix/gnu-maintenance.scm (http-fetch): Return an input port.
  (<gnu-package-descriptor>): Add it.
  (official-gnu-packages): Use <gnu-package-descriptor>.
  (find-packages): Add it.
  (gnu-package?): Adjust accordingly.
2013-03-28 22:00:10 +00:00
Cyril Roelandt
c6bded8a29 Add (guix build-system cmake).
* guix/build/cmake-build-system.scm, guix/build-system/cmake.scm: New files.
* Makefile.am (MODULES): Add them.
2013-03-28 21:04:54 +01:00
Ludovic Courtès
bb90ad83b1 build: Set %fresh-auto-compile' in hydra.scm'.
* hydra.scm: Set `%fresh-auto-compile' to #t.
2013-03-28 00:14:38 +01:00
Ludovic Courtès
c415f14538 gnu: make-bootstrap: Import (gnu packages gcc).
* gnu/packages/make-bootstrap.scm: Import (gnu packages gcc).
2013-03-27 23:47:54 +01:00
Ludovic Courtès
c9f94132ca download: Remove unreliable GNU mirror.
* guix/download.scm (%mirrors)[gnu]: Remove ftp.chg.ru.
2013-03-27 15:50:18 +01:00
Ludovic Courtès
5c126b645e gnu: Add libelf.
* gnu/packages/gcc.scm (libelf): New variable.
2013-03-27 15:47:48 +01:00
Ludovic Courtès
832abc7687 gnu: Add ISL and CLooG.
* gnu/packages/gcc.scm (%gcc-infrastructure, isl, cloog): New variables.
2013-03-27 15:37:27 +01:00
Ludovic Courtès
e9c0b9446b gnu: Move GCC to its own module.
* gnu/packages/base.scm (gcc-4.7): Move to...
* gnu/packages/gcc.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2013-03-27 15:13:25 +01:00
Ludovic Courtès
785db4d877 glib: Patch around prlimit(2) failure.
* gnu/packages/glib.scm (glib)[source]: Switch to mirror://gnome.
  [inputs]: Add `patch/tests-prlimit'.
  [arguments]: Add it.
* gnu/packages/patches/glib-tests-prlimit.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-03-27 15:01:30 +01:00
Ludovic Courtès
0b5aa854a0 build: `hydra.scm' changes %load-path to refer to itself.
* hydra.scm: Add `eval-when' clause.
2013-03-27 00:24:54 +01:00
Ludovic Courtès
da0a26d2a7 Update `TODO'. 2013-03-27 00:11:57 +01:00
Ludovic Courtès
7bf569186c gnu: Add GNU cflow.
* gnu/packages/cflow.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-26 22:43:41 +01:00
Ludovic Courtès
47a9cb950a gnu: Add GNU cppi.
* gnu/packages/cppi.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-26 22:32:18 +01:00
Cyril Roelandt
a25fe6d620 gnu: add dependencies to poppler.
Add libpng and zlib to the inputs.
2013-03-24 20:23:15 +01:00
Ludovic Courtès
128663e4c8 store: Really disable file name canonicalization for derivation inputs.
* guix/store.scm (write-contents)[call-with-binary-input-file]: Set
  %FILE-PORT-NAME-CANONICALIZATION to #f.
* gnu/packages.scm (search-patch, search-bootstrap-binary): Leave
  %FILE-PORT-NAME-CANONICALIZATION unchanged.  This reverts 9776ebb.
2013-03-22 23:15:34 +01:00
Ludovic Courtès
238f739777 store: Use `sendfile' when available.
* guix/store.scm (write-contents)[call-with-binary-input-file]: New
  procedure.
  Use `sendfile' instead of `dump' when available.  Add `size'
  parameter.
  (write-file): Update caller.
2013-03-22 23:15:34 +01:00
Andreas Enge
14a3a67364 gnu: Update mpfr to 3.1.2.
* gnu/packages/multiprecision.scm (mpfr): Update to 3.1.2.
2013-03-22 13:04:41 +01:00
Cyril Roelandt
b6a64843c6 gnu: Add cmake.
* gnu/packages/cmake.scm: New file.
* gnu/packages/patches/cmake-fix-tests.patch: New file.
* Makefile.am: Add them.
2013-03-21 19:53:29 +01:00
Ludovic Courtès
9776ebb2a5 gnu: Disable file name canonicalization in `search-*'.
* gnu/packages.scm (search-patch, search-bootstrap-binary): Make sure no
  canonicalization occurs.  This reduces the number of 'stat' system
  calls.
2013-03-21 00:32:26 +01:00
Cyril Roelandt
712e6e684c gnu: Add lua.
* gnu/packages/lua.scm: New file.
* Makefile.am: add it.
2013-03-19 23:27:04 +01:00
Ludovic Courtès
84a3e3b776 gnu: libgcrypt: Upgrade to 1.5.1.
* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.5.1.
2013-03-19 17:54:00 +01:00
Ludovic Courtès
881a4cf13a Work around <http://bugs.gnu.org/13095> in build-aux/download.scm.
* build-aux/download.scm: Annihilate `shutdown' in (web client).
  Reported by Aljosha Papsch.
2013-03-19 16:57:46 +01:00
Ludovic Courtès
ce41a4629c release.nix: Hack to unchroot more stuff.
* release.nix (unchrootedNixpkgs): New function.
  (jobs)[tarball, build, build_disable_daemon, distro): Use it.
  Should fix <http://hydra.gnu.org:3000/build/7279>.
2013-03-18 23:17:28 +01:00
Ludovic Courtès
9c3ac1b641 release.nix: Adjust to current Nixpkgs.
* release.nix: s/buildNativeInputs/nativeBuildInputs/.
2013-03-18 23:09:35 +01:00
Ludovic Courtès
a4f08f9258 guix package: Report packages to be removed/installed.
* guix/scripts/package.scm (guix-package)[process-actions](show-what-to-remove/install):
  New procedure.
  Call it before `show-what-to-build'.
2013-03-18 23:04:07 +01:00
Andreas Enge
d539646af4 gnu: xorg: Enable xdriinfo.
* gnu/packages/xorg.scm (xdriinfo): Enable input mesa.
2013-03-17 19:02:56 +01:00
Andreas Enge
b04ac5a1e2 gnu: xorg: Arrange more inputs for x server related packages.
* gnu/packages/xorg.scm (xf86-input-evdev): Add input xorg-server.
* gnu/packages/xorg.scm (xorg-server): Propagate inputs and add normal and
     propagated inputs.
2013-03-17 18:59:21 +01:00
Andreas Enge
c0589f7591 gnu: Add X.org as input to Texlive.
* gnu/packages/texlive.scm (texlive): Add x.org inputs.
2013-03-17 00:57:02 +01:00
Andreas Enge
71f4b81aa5 gnu: Add openconnect.
* gnu/packages/vpn.scm (openconnect): New variable.
2013-03-16 22:36:13 +01:00
Ludovic Courtès
0bb1aa9e05 derivations: Optimize `build-expression->derivation'.
This reduces the execution time of
"guix build -e '(@ (gnu packages emacs) emacs)' -d" by 6%, from
1.15s to 1.08s.

* guix/derivations.scm (build-expression->derivation): Write the builder
  as UTF-8.
2013-03-16 17:23:17 +01:00
Ludovic Courtès
d80855999a derivations: Optimize `write-derivation'.
This reduces the execution time of
"guix build -e '(@ (gnu packages emacs) emacs)' -d" by 25%, from
1.54 s. to 1.15s.

* guix/derivations.scm (write-sequence, write-list, write-tuple): New
  procedures.
  (write-derivation)[list->string, write-list]: Remove.
  [write-string-list, write-output, write-input, write-env-var]: New helpers.
  Rewrite in terms of these new helpers.
2013-03-16 16:48:22 +01:00
Ludovic Courtès
993fb66dd2 guix package: Gracefully handle `official-gnu-packages' failure.
* guix/gnu-maintenance.scm (http-fetch): Error out when DATA is #f.
* guix/scripts/package.scm (check-package-freshness): Wrap
  `gnu-package?' call in `false-if-exception'.
  Reported by Cyril Roelandt <tipecaml@gmail.com>.
2013-03-16 00:59:19 +01:00
Andreas Enge
5ee12e217c gnu: xorg: Change download location for xcb related packages.
* gnu/packages/xorg.sm (libpthread-stubs, libxcb, xcb-proto): Replace broken
     xorg mirrors by url of the xcb project.
2013-03-15 20:52:48 +01:00
Ludovic Courtès
847e7725e9 gnu: coreutils, sed: Update.
* gnu/packages/base.scm (sed): Update to 4.2.2.
  (coreutils): Update to 8.21.
2013-03-15 18:38:47 +01:00
Ludovic Courtès
444c64b04e gnu: binutils: Update to 2.23.1.
* gnu/packages/base.scm (binutils): Update to 2.23.1.  Add
  `--disable-werror'.
  (binutils-boot0): Augment BINUTILS's configure flags.
2013-03-15 18:38:34 +01:00
Ludovic Courtès
3be9f724f5 gnu: emacs: Update to 24.3.
* gnu/packages/emacs.scm (emacs): Update to 24.3.  Use the .xz tarball.
* gnu/packages/patches/emacs-configure-sh.patch: Adjust.
2013-03-14 17:47:26 +01:00
Ludovic Courtès
b5c56e628f gnu: texinfo: Update to 5.1.
* gnu/packages/texinfo.scm (texinfo): Update to 5.1.
2013-03-14 17:32:25 +01:00
Andreas Enge
e45a608245 gnu: xorg: Add xeyes (for testing purposes).
* gnu/packages/xorg.scm (xeyes): New variable.
2013-03-10 13:42:40 +01:00
Andreas Enge
08dccdfd12 gnu: xorg: Make xorg-server compilable (tests still fail).
* gnu/packages/xorg.scm (mesa): Propagate inputs libdrm and libxdamage.
* gnu/packages/xorg.scm (xorg-server): Add input videoproto.
2013-03-10 13:31:03 +01:00
Andreas Enge
42ed9985b1 gnu: xorg: Make xkeyboard-config compile.
* gnu/packages/xorg.scm (xkeyboard-config): Add inputs gettext, intltool,
     perl-xml-parser.
2013-03-10 13:00:57 +01:00
Andreas Enge
2b8c5f547a gnu: Add intltool.
* gnu/packages/xml.scm (intltool): New variable.
* gnu/packages/xml.scm (perl-xml-parser): Fix download location.
2013-03-10 12:57:32 +01:00
Andreas Enge
68a3d0e8cd gnu: xorg: Add old versions of mesa and libdrm.
* gnu/packages/xorg.scm (mesa): New variable, only version 8.0.5 compiles.
* gnu/packages/xorg.scm (libdrm-2.4.33): New variable, required by mesa 8.0.5.
2013-03-09 22:29:49 +01:00
Andreas Enge
6f52fb63ae gnu: xorg: Propagate input.
* gnu/packages/xorg.scm (libxdamage): Propagate input damageproto.
2013-03-09 00:18:34 +01:00
Andreas Enge
11e3f10788 gnu: libxslt: Add zlib and libxml2 python module to inputs.
* gnu/packages/xml.scm (libxslt): Add input zlib and add libxml2 to PYTHONPATH.
2013-03-08 23:03:07 +01:00
Andreas Enge
322cbda7c5 gnu: libxml2: Add python support.
* gnu/packages/xml.scm (libxml2): Compile and install python module.
2013-03-08 22:47:01 +01:00
Ludovic Courtès
ef86c39f27 ui: Gracefully report failures to connect to the daemon.
* guix/store.scm (&nix-connection-error): New condition type.
  (open-connection): Translate `system-error' during the `connect' call
  into `&nix-connection-error'.
* guix/ui.scm (call-with-error-handling): Add case for `nix-connection-error?'.
* guix/scripts/package.scm (guix-package): Move `open-connection' call
  within `with-error-handling'.
* guix/scripts/pull.scm (guix-pull): Likewise.
* guix/scripts/download.scm (guix-download): Move body within
  `with-error-handling'.
2013-03-07 19:44:14 +01:00
Nikita Karetnikov
30db6af1de utils: Add 'wrap-program'.
* guix/build/utils.scm (wrap-program): New procedure.
2013-03-07 00:46:23 +01:00
Ludovic Courtès
1fb78cb2c3 packages: Remove the default value for `license'.
* guix/packages.scm (<package>): Remove the default value for `license'.
* gnu/packages/bootstrap.scm (package-from-tarball,
  %bootstrap-glibc, %bootstrap-gcc): Initialize `license'.
* tests/packages.scm (dummy-package): Likewise.
2013-03-07 00:42:18 +01:00
Ludovic Courtès
6ba9dd813d Revert "utils: Add 'wrap-program'."
This reverts commit 02065130de.
2013-03-07 00:36:14 +01:00
Andreas Enge
f8d3c99ba1 gnu: xorg: Add libdrm.
* gnu/packages/xorg.scm (libdrm): New variable.
2013-03-06 23:20:34 +01:00
Andreas Enge
5acf2910b8 gnu: xorg: Add pixman.
* gnu/packages/xorg.scm (pixman): New variable.
* gnu/packages/xorg.scm (xorg-server): Enable input pixman.
2013-03-06 22:40:03 +01:00
Andreas Enge
d92083ad99 gnu: xorg: Comment applewmproto and libapplewm, compile only on macos.
* gnu/packages/xorg.scm (applewmproto,libapplewm): Remove variables.
2013-03-06 22:24:08 +01:00
Andreas Enge
6eb126c5f2 gnu: xorg: Add inputs and propagated-inputs, propagate some inputs.
Rename two packages to avoid clashes between package names and versions.

* gnu/packages/xorg.scm (font-adobe-100dpi): Rename to font-adobe100dpi.
* gnu/packages/xorg.scm (font-adobe-75dpi): Rename to font-adobe75dpi.
* gnu/packages/xorg.scm: Add pkg-xonfig as input to several packages.
* gnu/packages/xorg.scm (encodings): Add input mkfontscale.
* gnu/packages/xorg.scm (libx11): Add inputs inputprotoi, xextproto, xtrans.
* gnu/packages/xorg.scm (libxpm): Add input gettext.
* gnu/packages/xorg.scm (libxxf86dga): Add inputs libx11, libxext, xf86dgaproto.
* gnu/packages/xorg.scm (libxxf86vm): Add inputs libx11i, libxext, xf86vidmodeproto.
* gnu/packages/xorg.scm (x11perf): Add inputs libx11i, libxfti, libxmu, libxrender.
* gnu/packages/xorg.scm (xcursor-themes): Add input xcursorgen.
* gnu/packages/xorg.scm (xdpyinfo): Add input inputproto.
* gnu/packages/xorg.scm (font-xfree86-type1): Add input mkfontdir.
* gnu/packages/xorg.scm (libx11): Add propagated inputs kbproto, libxcb.
* gnu/packages/xorg.scm (mkfontdir): Add propagated input mkfontscale.
* gnu/packages/xorg.scm (fixesproto): Propagate input xextproto.
* gnu/packages/xorg.scm (libice): Propagate input xproto.
* gnu/packages/xorg.scm (libxau): Propagate input xproto.
* gnu/packages/xorg.scm (libxaw): Propagate inputs libxext, libxmu, libxpm.
* gnu/packages/xorg.scm (libxcb): Propagate inputs libpthread-stubs, libxaui, libxdmcp.
* gnu/packages/xorg.scm (libxcursor): Propagate inputs libx11, libxfixes, libxrender, xproto.
* gnu/packages/xorg.scm (libxext): Propagate input xextproto.
* gnu/packages/xorg.scm (libxfixes): Propagate input fixesproto.
* gnu/packages/xorg.scm (libxfont): Propagate inputs fontsproto, freetype, libfontenc, xproto.
* gnu/packages/xorg.scm (libxinerama): Propagate input xineramaproto.
* gnu/packages/xorg.scm (libxrandr): Propagate inputs libxext, randrproto.
* gnu/packages/xorg.scm (libxrender): Propagate input renderproto.
* gnu/packages/xorg.scm (libxt): Propagate inputs libx11, libice, libsm.
* gnu/packages/xorg.scm (libxtst): Propagate input recordproto.
* gnu/packages/xorg.scm (xbacklight): Propagate inputs libx11, libxrandr.
* gnu/packages/xorg.scm (xkeyboard-config): Propagate inputs libx11, xkbcomp.
* gnu/packages/xorg.scm (xproto): Propagate input util-macros.
2013-03-06 22:08:52 +01:00
Nikita Karetnikov
02065130de utils: Add 'wrap-program'.
* guix/build/utils.scm (wrap-program): New procedure.
2013-03-06 21:03:26 +00:00
Nikita Karetnikov
563e8b3920 gnu: Add GNU Fdisk.
* gnu/packages/fdisk.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-06 20:58:48 +00:00
Nikita Karetnikov
bd5ecea637 gnu: Add w3m.
* gnu/packages/w3m.scm,
  gnu/packages/patches/w3m-fix-compile.patch: New files.
* Makefile.am (MODULES): Add 'w3m.scm'.
  (dist_patch_DATA): Add 'w3m-fix-compile.patch'.
2013-03-06 20:52:04 +00:00
Nikita Karetnikov
bbd60260dd licenses: Add 'x11-style'.
* guix/licenses.scm (x11-style): New variable.
2013-03-06 20:40:11 +00:00
Andreas Enge
48ebc134f4 gnu: xorg: Correct typo in download location.
* gnu/packages/xorg.scm (xf86-video-glide): Correct typo.
2013-03-06 14:38:42 +01:00
Andreas Enge
9d12d38f38 gnu: xorg: Uncomment dependencies on libxcb.
* gnu/packages/xorg.scm (xbacklight, xdpyinfo, xlsatoms, xlsclients,
     xwininfo): Uncomment dependency on libxcb.
2013-03-06 13:28:01 +01:00
Andreas Enge
5223c82627 gnu: xorg: Add home-page, synopsis and description.
* gnu/packages/xorg.scm: Add home-page and (generic) synopsis and description.
2013-03-06 13:28:01 +01:00
Andreas Enge
0820a58b3c gnu: xorg: Fix http mirror and uncomment xcb packages.
* guix/download.scm (%mirrors): Fix main http mirror address.
* gnu/packages/xorg.scm (libpthread-stubs, libxcb, xcb-proto): Uncomment
     and add licenses.
2013-03-06 13:28:01 +01:00
Andreas Enge
dd85efda47 gnu: xorg: Downgrade package versions to those present in X11R7.7
* gnu/packages/xorg.scm (dri2proto, libxcb, libxrandr, randrproto,
     xbacklight, xcb-proto, xorg-server):
     Use the versions present in X11R7.7.
2013-03-06 13:28:01 +01:00
Andreas Enge
d385b8355d gnu: xorg: Add licenses.
Comment out packages with non-free license, without license, or
   not available on the ftp servers.
   Remove package not present in the distribution.

* gnu/packages/xorg.scm (*): Add licenses.
* gnu/packages/xorg.scm (libxp): Remove variable of package that is not
     present in the R7.7 distribution.
* gnu/packages/xorg.scm (libpthread, libxcb): Comment out variables, which
     are referenced, but not present on the ftp servers.
* gnu/packages/xorg.scm (font-adobe-utopia-100dpi, font-adobe-utopia-75dpi,
     font-adobe-utopia-type1, font-bh-100dpi, font-bh-75dpi,
     font-bh-lucidatypewriter-100dpi, font-bh-lucidatypewriter-75dpi,
     font-bh-type1, font-bitstream-100dpi, font-bitstream-75dpi,
     font-daewoo-misc, font-ibm-type1, font-jis-misc, font-misc-meltho,
     xf86-video-dummy):
     Comment out variables, packages have non-free licenses.
* gnu/packages/xorg.scm (font-cursor-misc, xf86-video-v4l, xorg-docs):
     Comment out variables, packages have no license.
2013-03-06 13:28:00 +01:00
Andreas Enge
b49317cac3 gnu: xorg: Add missing hashes.
* gnu/packages/xorg.scm: Add hashes to all packages.
2013-03-06 13:28:00 +01:00
Andreas Enge
88ee93f917 gnu: xorg: Transform propagated into normal inputs.
* gnu/packages/xorg.scm: Transform propagated into normal inputs;
     allows to keep packages in alphabetical order.
2013-03-06 13:28:00 +01:00
Andreas Enge
5f1d0fb085 gnu: xorg: Add and remove packages to mirror X11R7.7/src/everything
* gnu/packages/xorg.scm: Remove packages not from
     ftp://ftp.freedesktop.org/pub/xorg/X11R7.7/src/everything/ .
     Add missing packages, for the time being with a 0 hash and
     without dependencies.
     Correct spelling (all lower case for package names).
2013-03-06 13:28:00 +01:00
Andreas Enge
9aea24b608 gnu: xorg: Initial import from nix.
* gnu/packages/xorg.scm: New module.
* Makefile.am: Add it.
2013-03-06 13:28:00 +01:00
Ludovic Courtès
6a917ef7e6 gnu-maintenance: Clarify `releases'.
* guix/gnu-maintenance.scm (releases): Change to use `match' and
  `match-lambda'.  Add `release-file' auxiliary function.
2013-03-05 22:31:19 +01:00
Ludovic Courtès
296540a6db gnu-maintenance: Fix gnu-package?' for packages lacking a source'.
* guix/gnu-maintenance.scm (gnu-package?): Support PACKAGE when its
  source is #f.
2013-03-05 22:25:40 +01:00
Ludovic Courtès
19777ae6ea guix package: Recover from freshness check transient errors.
* guix/scripts/package.scm (check-package-freshness): Ignore
  `getaddrinfo-error' and `ftp-error' exceptions.
2013-03-05 22:24:19 +01:00
Ludovic Courtès
ef010c0f3d guix package: Inform about new upstream versions of GNU packages.
* guix/gnu-maintenance.scm (gnu-package?): New procedure.
* guix/scripts/package.scm (waiting): New macro.
  (check-package-freshness): New procedure.
  (guix-package)[process-actions]: Use it.
* doc/guix.texi (Invoking guix package): Mention the feature.
2013-03-05 20:35:47 +01:00
Ludovic Courtès
c50cbfd61a gnu: Add Avahi.
* gnu/packages/avahi.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-05 20:26:24 +01:00
Ludovic Courtès
ea7127b9b7 gnu: Update GnuTLS to 3.1.9.1.
* gnu/packages/gnutls.scm (gnutls): Update to 3.1.9.1.
2013-03-05 19:09:53 +01:00
Ludovic Courtès
71eb5c1067 gnu: Add intltool.
* guix/download.scm (%mirrors): Add `gnome' mirrors.
* gnu/packages/glib.scm (intltool): New variable.
2013-03-05 19:09:53 +01:00
Ludovic Courtès
b16c5a5857 Update TODO. 2013-03-05 19:09:04 +01:00
Ludovic Courtès
12761f48ea utils: Add a #:follow-symlinks? parameter to `copy-recursively'.
* guix/build/utils.scm (copy-recursively): Turn `log' into a keyword
  parameter.  Add the `follow-symlinks?' parameter and honor it.
2013-03-05 19:03:39 +01:00
Ludovic Courtès
e65df6a63a utils: Add `delete-file-recursively'.
* guix/build/utils.scm (delete-file-recursively): New procedure.
2013-03-05 18:53:53 +01:00
Ludovic Courtès
7f614e49e8 gnu: glibc: Install locale data.
* gnu/packages/base.scm (glibc): Add `outputs' field.  Pass
  `--localedir' and set `libc_cv_localedir'.  Add `install-locales'
  phase.
2013-03-05 18:38:05 +01:00
Andreas Enge
938081b9ce gnu: Add lsof.
* gnu/packages/lsof.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-05 00:14:44 +01:00
Ludovic Courtès
81eec00cb2 Merge branch 'master' into core-updates
Conflicts:
	Makefile.am
	guix/scripts/gc.scm
	guix/scripts/package.scm
	guix/ui.scm
	tests/guix-package.sh
2013-03-04 23:27:24 +01:00
Andreas Enge
8689a1908a guix: build: Add "share/pkgconfig" to PKG_CONFIG_PATH, as used by xorg.
* guix/build/gnu-build-system.scm (set-paths): Add "share/pkgconfig"
     to PKG_CONFIG_PATH.
2013-03-04 10:14:34 +01:00
Ludovic Courtès
2a1e82bb5c gnu: Add Perl XML::Parser.
* gnu/packages/xml.scm (perl-xml-parser): New variable.
2013-03-04 00:48:00 +01:00
Ludovic Courtès
08fd1ebefd Add (guix build-system perl).
* guix/build-system/perl.scm, guix/build/perl-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* guix/build-system/gnu.scm (standard-inputs): Make public.
2013-03-04 00:48:00 +01:00
Ludovic Courtès
6af3101999 download: Add CPAN mirrors.
* guix/download.scm (%mirrors)[cpan]: New URLs.
2013-03-04 00:48:00 +01:00
Andreas Enge
49f24f41e3 gnu: Add vpnc.
* gnu/packages/vpn.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages/patches/vpnc-script.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-03-03 14:12:57 +01:00
Ludovic Courtès
d688a2f0fd release.nix: Reduce the number of dependencies.
* release.nix (tarball): Use a minimal Git.
2013-03-02 22:56:30 +01:00
Ludovic Courtès
4cdbdd4439 gnu: Add libdaemon.
* gnu/packages/libdaemon.scm: New file.
* Makefile.am (MODULES): Add it.
2013-03-02 17:00:33 +01:00
Ludovic Courtès
c86929e403 release.nix: Unchroot recursively.
* release.nix (unchroot): Operate recursively on build inputs.
2013-03-02 15:25:04 +01:00
Ludovic Courtès
11a7ceb9e8 release.nix: Build outside of a chroot.
* release.nix (unchroot): New function.
  (jobs)[tarball, build, build_disable_daemon]: Use it.
2013-03-02 15:14:22 +01:00
Ludovic Courtès
eb0880e71d ui: Factorize `read/eval-package-expression'.
* guix/scripts/package.scm (read/eval-package-expression): Move to...
* guix/ui.scm (read/eval-package-expression): ... here.
* guix/scripts/build.scm (derivations-from-package-expressions): Use it.
2013-03-01 21:55:42 +01:00
Ludovic Courtès
5d4b411f8a guix package: Add `--install-from-expression'.
* guix/scripts/package.scm (read/eval-package-expression): New
  procedure.
  (show-help): Add `-e'.
  (%options): Likewise.
  (guix-package)[process-actions]: Handle ('install . p) pairs, where P
  is a package.
* tests/guix-package.sh: Add `boot_make_drv'.  Use `-i $boot_make_drv'
  once, and then use `-e $boot_make'.
* doc/guix.texi (Invoking guix package): Document `-e'.
2013-03-01 21:54:56 +01:00
Ludovic Courtès
431a35518f gnu: global: Update to 6.2.8.
* gnu/packages/global.scm (global): Update to 6.2.8.
2013-03-01 18:34:33 +01:00
Ludovic Courtès
ba8b732d20 guix gc: Add --references' and --referrers'.
* guix/scripts/gc.scm (show-help): Update.
  (%options): Add `--references' and `--referrers'.
  (guix-gc)[symlink-target, store-directory]: New procedures.
  Handle the `list-references' and `list-referrers' actions.
* tests/guix-gc.sh: Add tests for `--references'.
* doc/guix.texi (Invoking guix gc): Document `--references' and
  `--referrers'.
2013-02-27 23:16:00 +01:00
Ludovic Courtès
fae31edcec store: Add queries for references & co.
* guix/store.scm (operation-id)[query-valid-derivers]: New value.
  (references, referrers, valid-derivers, query-derivation-outputs): New
  procedures.
* tests/store.scm ("references", "derivers"): New tests.
2013-02-27 22:40:35 +01:00
Ludovic Courtès
827d28914a gnu: Add cross tool chain.
* gnu/packages/cross-base.scm: New file.
* gnu/packages/patches/gcc-cross-environment-variables.patch: New file.
* Makefile.am (MODULES): Add cross-base.scm.
  (dist_patch_DATA): Add gcc-cross-environment-variables.patch.
* gnu/packages/base.scm (gcc-4.7): Use `LDFLAGS_FOR_TARGET' instead of
  `LDFLAGS_FOR_BUILD', and use `-B' instead of `-L'.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for
  "mips64el-linux".
2013-02-27 20:55:42 +01:00
Ludovic Courtès
aaf4cb20ad gnu: linux: Make `system->linux-architecture' public, and add ARM.
* gnu/packages/linux.scm (system->linux-architecture): Make public.  Add
  "arm".
2013-02-27 20:55:42 +01:00
Nikita Karetnikov
618cea694d gnu: linux-libre-headers: Set 'ARCH' to 'mips'.
* gnu/packages/linux.scm (system->linux-architecture): New procedure.
  (linux-libre-headers): Adjust accordingly.
2013-02-27 20:55:42 +01:00
Nikita Karetnikov
6ec8f7778f gnu: gcc: Remove extraneous newline in 'LIB_SPEC'.
* gnu/packages/base.scm (gcc-4.7): Remove trailing newline when patching
  'LIB_SPEC'.
2013-02-27 20:55:42 +01:00
Ludovic Courtès
da9bf2efc5 pull: Distinguish "already up to date" from "updated".
* guix/ui.scm (show-what-to-build): Return (length req*).
* guix/scripts/pull.scm (guix-pull): Print an "already up to date"
  message when there's nothing to build.
2013-02-27 20:55:42 +01:00
Ludovic Courtès
a1c1467756 pull: Build (guix build download) first, because of the (gnutls) autoload.
* guix/scripts/pull.scm (unpack): Build (guix build download) first, as
  done in 855a8ad71d.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-02-27 20:55:42 +01:00
Ludovic Courtès
00fa3d1457 guix: Make sure UPDATES-DIR is valid.
* scripts/guix.in: Make sure UPDATES-DIR is not #f.
2013-02-27 20:55:42 +01:00
Ludovic Courtès
69ce1ffc7d Add "guix pull".
* guix/scripts/pull.scm: New file.
* Makefile.am (MODULES): Add it.
* doc/guix.texi (Invoking guix pull): New node.
  (Invoking guix package): Add cross-ref to it.
* guix/ui.scm (config-directory): New procedure.
* scripts/guix.in: When `GUIX_UNINSTALLED' is undefined, add
  $XDG_CONFIG_HOME/guix/latest to the search path.
* po/POTFILES.in: Add guix/scripts/pull.scm.
2013-02-27 20:55:42 +01:00
Ludovic Courtès
7650e148f6 ui: Factorize `show-what-to-build'.
* guix/scripts/package.scm (guix-package)[show-what-to-build]: Move to..
* guix/ui.scm (show-what-to-build): ... here.  Add a `store'
  parameter'.  Adjust callers.
* guix/scripts/build.scm (guix-build): Use it.  Remove `req' and `req*'
  variables.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
e51035f70a build: Adjust guix.texi to Texinfo 5.0.
* doc/guix.texi: Change @title and @subtitle syntax to please Texinfo 5.0.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
bdeee95a21 ui: Add temporary file handling and atomic symlink switch.
* guix/scripts/download.scm (call-with-temporary-output-file): Move to
  ui.scm.
* guix/scripts/package.scm (switch-symlinks): Likewise.
* guix/ui.scm (call-with-temporary-output-file, switch-symlinks): New
  procedures.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
cc68ccc5b0 download: Adjust to `http-get*' deprecation.
* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
  using Guile 2.0.8+.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
e95da44576 derivations: Add a search path parameter for module derivations.
* guix/derivations.scm (imported-modules, compiled-modules): Add a
  `module-path' parameter.  Use it instead of %LOAD-PATH.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
3c81cdf19c gnu: texinfo: Make Perl a propagated input.
* gnu/packages/texinfo.scm (texinfo): Make PERL a propagated input.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
a8a0aa49f9 build: Add missing -I flag for the daemon.
* daemon.am (libstore_a_CPPFLAGS): Add missing -I, for schema.sql.hh.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
353283bbe9 daemon: Add `--listen'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LISTEN): New macro.
  (options): Add `--listen'.
  (parse_opt): Handle it.
* doc/guix.texi (Invoking guix-daemon): Mention it.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
8faece2280 Update from upstream Nix. 2013-02-27 20:55:41 +01:00
Ludovic Courtès
05c0ac721e store: Add the `%daemon-socket-file' parameter.
* guix/store.scm (%daemon-socket-file): New variable.
  (open-connection): Use it as the default value for FILE.
2013-02-27 20:55:41 +01:00
Ludovic Courtès
a1143ee3fa Add Mark to `AUTHORS'. 2013-02-27 20:55:41 +01:00
Ludovic Courtès
02d94dab8d build: Build guix/scripts/download.go after guix/build/download.go.
* Makefile.am (guix/scripts/download.go): Add dependency on
  `guix/build/download.go'.
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-02-27 20:55:40 +01:00
Ludovic Courtès
dc3f1809cf scripts: Remove hyphen in the command name shown by `--version'.
* guix/scripts/build.scm (%options): Remove hyphen from the name passed
  to `show-version-and-exit'.
* guix/scripts/download.scm (%options): Likewise.
* guix/scripts/gc.scm (%options): Likewise.
* guix/scripts/import.scm (%options): Likewise.
* guix/scripts/package.scm (%options): Likewise.
2013-02-27 20:55:40 +01:00
Mark H Weaver
ba4bcae035 gnu: guile-reader: Rename packages to avoid version number confusion.
* gnu/packages/guile.scm (guile-reader): Change the character preceding the
  guile version number from '-' to '_' so that it will not be misinterpreted
  as the package version number.
2013-02-27 20:55:40 +01:00
Mark H Weaver
396e75e37c Update `TODO'. 2013-02-27 20:55:40 +01:00
Ludovic Courtès
c07512179e scripts: Remove initialization now redundant with `initialize-guix'.
* guix/scripts/build.scm (guix-build): Remove calls to `install-locale',
  `textdomain', etc., now redundant with `initialize-guix'.
* guix/scripts/download.scm (guix-download): Likewise.
* guix/scripts/import.scm (guix-import): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/ui.scm: Remove export of `install-locale' and `initialize-guix'.
  (initialize-guix): Add docstring.
2013-02-27 20:55:40 +01:00
Ludovic Courtès
ed407c8055 gnu: texinfo: Update to 5.0.
* gnu/packages/texinfo.scm (texinfo): Update to 5.0.
2013-02-27 20:55:40 +01:00
Mark H Weaver
868c923f13 Replace individual scripts with master 'guix' script.
* scripts/guix.in: New script.

* Makefile.am (bin_SCRIPTS): Add 'scripts/guix'.  Remove 'guix-build',
  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

  (MODULES): Add 'guix/scripts/build.scm', 'guix/scripts/download.scm',
  'guix/scripts/import.scm', 'guix/scripts/package.scm', and
  'guix/scripts/gc.scm'.

* configure.ac (AC_CONFIG_FILES): Add 'scripts/guix'.  Remove 'guix-build',
  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
  guix-package.in: Remove shell script boilerplate.  Move to guix-COMMAND.in
  to guix/scripts/COMMAND.scm.  Rename module from (guix-COMMAND) to
  (guix scripts COMMAND).  Change "guix-COMMAND" to "guix COMMAND" in
  usage help string.

* pre-inst-env.in: Add "@abs_top_builddir@/scripts" to the front of $PATH.
  Export $GUIX_UNINSTALLED.

* tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh,
  tests/guix-gc.sh, tests/guix-package.sh: Use "guix COMMAND" instead of
  "guix-COMMAND".

* doc/guix.texi: Replace all occurrences of "guix-COMMAND" with
  "guix COMMAND".

* po/POTFILES.in: Update.
2013-02-27 20:55:40 +01:00
Ludovic Courtès
d2474c2620 Add (gnu system vm).
* gnu/system/vm.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-27 20:55:40 +01:00
Ludovic Courtès
3855e242a2 gnu: Add support for Guile in Linux initrd.
* gnu/packages/linux-initrd.scm: New file.
2013-02-27 20:55:40 +01:00
Ludovic Courtès
106ca9d0c1 gnu: qemu-kvm: Add patch to have multiple SMB shares.
* gnu/packages/qemu.scm (qemu-kvm/smb-shares): New variable.
* gnu/packages/patches/qemu-multiple-smb-shares.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-02-27 20:55:40 +01:00
Ludovic Courtès
5f7c5a97ba packages: Add `package-output'.
* guix/packages.scm (package-output): New procedure.
* tests/packages.scm ("package-output"): New test.
2013-02-27 20:55:39 +01:00
Ludovic Courtès
99d90fc102 gnu: guile-static: Change `name' field.
* gnu/packages/make-bootstrap.scm (%guile-static): Add `name' field with
  `-static' suffix.
2013-02-27 20:55:39 +01:00
Ludovic Courtès
9322c6822f gnu: guile-static: Add bindings for `reboot'.
* gnu/packages/patches/guile-linux-syscalls.patch: Add `scm_reboot'.
2013-02-27 20:55:39 +01:00
Ludovic Courtès
e7d2c60809 gnu: qemu: Add dependency on Samba.
* gnu/packages/qemu.scm (qemu-kvm): Add dependency on Samba; pass
  `--smbd' to ./configure.
2013-02-27 20:55:39 +01:00
Ludovic Courtès
b7e9ee3327 gnu: samba: Augment the RUNPATH of executables to point to $out/lib.
* gnu/packages/samba.scm (samba): Add `add-lib-to-runpath' phase, and
  PatchELF as an input.
2013-02-27 20:55:39 +01:00
Nikita Karetnikov
52e6e2461f gnu: Add GNU Parted.
* gnu/packages/parted.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-27 20:55:39 +01:00
Ludovic Courtès
e70a28b87e gnu: guile-static: Add bindings for low-level Linux syscalls.
* gnu/packages/make-bootstrap.scm (%guile-static): Add
  `guile-linux-syscalls.patch' as an input, and use it.
* gnu/packages/patches/guile-linux-syscalls.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-02-27 20:55:39 +01:00
Ludovic Courtès
2e48455d27 gnu: linux-libre: Choose a config without debugging features.
* gnu/packages/linux.scm (linux-libre): Choose "defconfig" instead of
  "allmodconfig" since the latter enables all debugging features.  Add
  `CONFIG_CIFS=m'.
2013-02-27 20:55:39 +01:00
Cyril Roelandt
f9c3648329 gnu: Add vim.
* gnu/packages/vim.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-27 20:55:39 +01:00
Mark H Weaver
854d627779 Build newest versions unless specified, and implement upgrades.
* gnu/packages.scm (find-newest-available-packages):
  New exported procedure.

* guix-build.in (newest-available-packages, find-best-packages-by-name):
  New procedures.
  (find-package): Use find-best-packages-by-name, to guarantee that
  if a version number is not specified, only the newest versions will
  be considered.

* guix-package.in (%options): Add --upgrade/-u option.
  (newest-available-packages, find-best-packages-by-name, upgradeable?):
  New procedures.
  (find-package): Use find-best-packages-by-name, to guarantee that
  if a version number is not specified, only the newest versions will
  be considered.
  (process-actions): Implement upgrade option.

* doc/guix.texi (Invoking guix-package): In the description of --install,
  mention that if no version number is specified, the newest available
  version will be selected.
2013-02-27 20:55:39 +01:00
Mark H Weaver
9ede36f0ed Inhibit duplicates in fold-packages.
* gnu/packages.scm (fold2): New procedure.
  (fold-packages): Rework to suppress duplicates.
2013-02-27 20:55:38 +01:00
Ludovic Courtès
790b8e0ebe build-system/gnu: Make the strip behavior of `static-package' configurable.
* guix/build-system/gnu.scm (static-package): Add #:strip-all? keyword
  parameter.
2013-02-27 20:55:38 +01:00
Ludovic Courtès
ddff766e38 gnu: guile-static: Use libgc build with `USE_LIBC_PRIVATES'.
* gnu/packages/make-bootstrap.scm (%guile-static): Use libgc build with
  CPPFLAGS=-DUSE_LIBC_PRIVATES.
* gnu/packages/bdw-gc.scm (libgc): Add TODO to always do it.
2013-02-27 20:55:38 +01:00
Ludovic Courtès
ab744c1af5 gnu: Add missing patch for mcron.
* gnu/packages/patches/mcron-install.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-02-27 20:55:38 +01:00
Nikita Karetnikov
922f11ad22 gnu: Add GNU Wdiff.
* gnu/packages/wdiff.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-27 20:55:38 +01:00
Mark H Weaver
6c7b6a51a4 Add version-compare and version>? to utils.scm.
* guix/utils.scm (version-compare, version>?): New exported procedures,
  based on version-string>?, which was formerly in gnu-maintenance.scm.

* guix/gnu-maintenance.scm (version-string>?): Removed procedure.
  (latest-release): Use 'version>?' instead of 'version-string>?'.
2013-02-27 20:55:38 +01:00
Andreas Enge
76978d4062 gnu: Add signing-party.
* gnu/packages/gnupg.scm (signing-party): New variable.
2013-02-27 20:55:38 +01:00
Andreas Enge
b6f5801e1c gnu: wget: Drop manual handling of /usr/bin/env.
* gnu/packages/wget.scm (wget): Drop patch-/usr/bin/env phase.
2013-02-24 18:07:50 +01:00
Andreas Enge
b5c18c78c2 gnu: curl: Let patch-shebang handle /usr/bin/env.
* gnu/packages/curl.scm (curl): Drop manual rewriting of #!/usr/bin/env.
2013-02-24 17:54:51 +01:00
Andreas Enge
c3f9761771 gnu: openldap: Disable tests, they fail too randomly probably due to
timeouts in the server.

* gnu/packages/openldap.scm (openldap): Drop all tests.
2013-02-24 16:41:27 +01:00
Andreas Enge
ca8def6e6f Patch-shebang: Do not add space after interpreter without argument.
* guix/build/utils.scm (patch-shebang): Do not add a space after a command
  interpreter not followed by an argument; this made two tests of
  coreutils fail.
2013-02-23 23:27:46 +01:00
Andreas Enge
11996d85d3 Patch-shebang: Handle "#!/usr/bin/env command"
* guix/build/utils.scm (patch-shebang): Handle replacement of
   "#!.*/env CMD ARGS" by "#!/nix/store/path/.../to/CMD ARGS".
2013-02-23 20:32:03 +01:00
Andreas Enge
149acc2981 download: Add X.org mirrors.
* guix/download.scm (%mirrors): Add `xorg'.
2013-02-23 19:01:19 +01:00
Andreas Enge
abc00dc492 gnu: screen: Use GNU mirror.
* gnu/packages/screen.scm (screen): Use GNU mirror.
2013-02-23 18:39:49 +01:00
Andreas Enge
c9b940cd03 gnu: Update libpng to 1.5.14.
* gnu/packages/libpng.scm (libpng): Switch to version 1.5.14.
2013-02-23 16:32:41 +01:00
Ludovic Courtès
4d60610ad7 pull: Distinguish "already up to date" from "updated".
* guix/ui.scm (show-what-to-build): Return (length req*).
* guix/scripts/pull.scm (guix-pull): Print an "already up to date"
  message when there's nothing to build.
2013-02-22 21:08:06 +01:00
Ludovic Courtès
7b50c68455 pull: Build (guix build download) first, because of the (gnutls) autoload.
* guix/scripts/pull.scm (unpack): Build (guix build download) first, as
  done in 855a8ad71d.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-02-22 20:01:29 +01:00
Ludovic Courtès
525ca3e912 guix: Make sure UPDATES-DIR is valid.
* scripts/guix.in: Make sure UPDATES-DIR is not #f.
2013-02-21 10:27:34 +01:00
Ludovic Courtès
f651b477b7 Add "guix pull".
* guix/scripts/pull.scm: New file.
* Makefile.am (MODULES): Add it.
* doc/guix.texi (Invoking guix pull): New node.
  (Invoking guix package): Add cross-ref to it.
* guix/ui.scm (config-directory): New procedure.
* scripts/guix.in: When `GUIX_UNINSTALLED' is undefined, add
  $XDG_CONFIG_HOME/guix/latest to the search path.
* po/POTFILES.in: Add guix/scripts/pull.scm.
2013-02-20 23:47:16 +01:00
Ludovic Courtès
9bb2b96aab ui: Factorize `show-what-to-build'.
* guix/scripts/package.scm (guix-package)[show-what-to-build]: Move to..
* guix/ui.scm (show-what-to-build): ... here.  Add a `store'
  parameter'.  Adjust callers.
* guix/scripts/build.scm (guix-build): Use it.  Remove `req' and `req*'
  variables.
2013-02-20 23:46:57 +01:00
Ludovic Courtès
7730d112a2 build: Adjust guix.texi to Texinfo 5.0.
* doc/guix.texi: Change @title and @subtitle syntax to please Texinfo 5.0.
2013-02-20 23:46:52 +01:00
Ludovic Courtès
c61b026e3a ui: Add temporary file handling and atomic symlink switch.
* guix/scripts/download.scm (call-with-temporary-output-file): Move to
  ui.scm.
* guix/scripts/package.scm (switch-symlinks): Likewise.
* guix/ui.scm (call-with-temporary-output-file, switch-symlinks): New
  procedures.
2013-02-20 23:03:24 +01:00
Ludovic Courtès
80736cdf20 download: Adjust to `http-get*' deprecation.
* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
  using Guile 2.0.8+.
2013-02-20 22:59:35 +01:00
Ludovic Courtès
8dcb0c55ab derivations: Add a search path parameter for module derivations.
* guix/derivations.scm (imported-modules, compiled-modules): Add a
  `module-path' parameter.  Use it instead of %LOAD-PATH.
2013-02-20 21:08:09 +01:00
Ludovic Courtès
f6d7be1e47 gnu: texinfo: Make Perl a propagated input.
* gnu/packages/texinfo.scm (texinfo): Make PERL a propagated input.
2013-02-20 21:06:57 +01:00
Ludovic Courtès
0442d34595 build: Add missing -I flag for the daemon.
* daemon.am (libstore_a_CPPFLAGS): Add missing -I, for schema.sql.hh.
2013-02-19 22:58:56 +01:00
Ludovic Courtès
b8d2aa264d daemon: Add `--listen'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LISTEN): New macro.
  (options): Add `--listen'.
  (parse_opt): Handle it.
* doc/guix.texi (Invoking guix-daemon): Mention it.
2013-02-19 22:48:13 +01:00
Ludovic Courtès
15b673ebe8 Update from upstream Nix. 2013-02-19 22:43:07 +01:00
Ludovic Courtès
9fd72fb1ff store: Add the `%daemon-socket-file' parameter.
* guix/store.scm (%daemon-socket-file): New variable.
  (open-connection): Use it as the default value for FILE.
2013-02-18 21:53:59 +01:00
Ludovic Courtès
9c8ba706d0 Add Mark to `AUTHORS'. 2013-02-17 22:19:32 +01:00
Ludovic Courtès
855a8ad71d build: Build guix/scripts/download.go after guix/build/download.go.
* Makefile.am (guix/scripts/download.go): Add dependency on
  `guix/build/download.go'.
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-02-17 22:19:32 +01:00
Ludovic Courtès
fdca1c079b scripts: Remove hyphen in the command name shown by `--version'.
* guix/scripts/build.scm (%options): Remove hyphen from the name passed
  to `show-version-and-exit'.
* guix/scripts/download.scm (%options): Likewise.
* guix/scripts/gc.scm (%options): Likewise.
* guix/scripts/import.scm (%options): Likewise.
* guix/scripts/package.scm (%options): Likewise.
2013-02-17 22:19:32 +01:00
Mark H Weaver
fd80c705b1 gnu: guile-reader: Rename packages to avoid version number confusion.
* gnu/packages/guile.scm (guile-reader): Change the character preceding the
  guile version number from '-' to '_' so that it will not be misinterpreted
  as the package version number.
2013-02-17 13:25:06 -05:00
Mark H Weaver
d8f257f99e Update `TODO'. 2013-02-17 13:23:45 -05:00
Ludovic Courtès
633f045f62 scripts: Remove initialization now redundant with `initialize-guix'.
* guix/scripts/build.scm (guix-build): Remove calls to `install-locale',
  `textdomain', etc., now redundant with `initialize-guix'.
* guix/scripts/download.scm (guix-download): Likewise.
* guix/scripts/import.scm (guix-import): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/ui.scm: Remove export of `install-locale' and `initialize-guix'.
  (initialize-guix): Add docstring.
2013-02-17 15:38:02 +01:00
Ludovic Courtès
a24b75d8e1 gnu: texinfo: Update to 5.0.
* gnu/packages/texinfo.scm (texinfo): Update to 5.0.
2013-02-17 15:03:06 +01:00
Mark H Weaver
e49951eb3e Replace individual scripts with master 'guix' script.
* scripts/guix.in: New script.

* Makefile.am (bin_SCRIPTS): Add 'scripts/guix'.  Remove 'guix-build',
  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

  (MODULES): Add 'guix/scripts/build.scm', 'guix/scripts/download.scm',
  'guix/scripts/import.scm', 'guix/scripts/package.scm', and
  'guix/scripts/gc.scm'.

* configure.ac (AC_CONFIG_FILES): Add 'scripts/guix'.  Remove 'guix-build',
  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
  guix-package.in: Remove shell script boilerplate.  Move to guix-COMMAND.in
  to guix/scripts/COMMAND.scm.  Rename module from (guix-COMMAND) to
  (guix scripts COMMAND).  Change "guix-COMMAND" to "guix COMMAND" in
  usage help string.

* pre-inst-env.in: Add "@abs_top_builddir@/scripts" to the front of $PATH.
  Export $GUIX_UNINSTALLED.

* tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh,
  tests/guix-gc.sh, tests/guix-package.sh: Use "guix COMMAND" instead of
  "guix-COMMAND".

* doc/guix.texi: Replace all occurrences of "guix-COMMAND" with
  "guix COMMAND".

* po/POTFILES.in: Update.
2013-02-16 22:17:37 -05:00
Ludovic Courtès
040860152e Add (gnu system vm).
* gnu/system/vm.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-16 03:28:26 +01:00
Ludovic Courtès
f09d925b16 gnu: Add support for Guile in Linux initrd.
* gnu/packages/linux-initrd.scm: New file.
2013-02-16 03:25:59 +01:00
Ludovic Courtès
161ed5476d gnu: qemu-kvm: Add patch to have multiple SMB shares.
* gnu/packages/qemu.scm (qemu-kvm/smb-shares): New variable.
* gnu/packages/patches/qemu-multiple-smb-shares.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-02-16 02:09:10 +01:00
Ludovic Courtès
d510ab4614 packages: Add `package-output'.
* guix/packages.scm (package-output): New procedure.
* tests/packages.scm ("package-output"): New test.
2013-02-16 01:37:26 +01:00
Ludovic Courtès
0228826262 gnu: guile-static: Change `name' field.
* gnu/packages/make-bootstrap.scm (%guile-static): Add `name' field with
  `-static' suffix.
2013-02-16 00:30:25 +01:00
Ludovic Courtès
3643957260 gnu: guile-static: Add bindings for `reboot'.
* gnu/packages/patches/guile-linux-syscalls.patch: Add `scm_reboot'.
2013-02-16 00:29:43 +01:00
Ludovic Courtès
ffb1ee524d gnu: qemu: Add dependency on Samba.
* gnu/packages/qemu.scm (qemu-kvm): Add dependency on Samba; pass
  `--smbd' to ./configure.
2013-02-15 22:36:05 +01:00
Ludovic Courtès
3665b4dc60 gnu: samba: Augment the RUNPATH of executables to point to $out/lib.
* gnu/packages/samba.scm (samba): Add `add-lib-to-runpath' phase, and
  PatchELF as an input.
2013-02-15 22:04:51 +01:00
Nikita Karetnikov
e04f30e023 gnu: Add GNU Parted.
* gnu/packages/parted.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-15 15:30:20 +01:00
Ludovic Courtès
6956067b04 gnu: guile-static: Add bindings for low-level Linux syscalls.
* gnu/packages/make-bootstrap.scm (%guile-static): Add
  `guile-linux-syscalls.patch' as an input, and use it.
* gnu/packages/patches/guile-linux-syscalls.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-02-15 00:52:54 +01:00
Ludovic Courtès
1dee732b81 gnu: linux-libre: Choose a config without debugging features.
* gnu/packages/linux.scm (linux-libre): Choose "defconfig" instead of
  "allmodconfig" since the latter enables all debugging features.  Add
  `CONFIG_CIFS=m'.
2013-02-15 00:52:54 +01:00
Cyril Roelandt
eb4908581c gnu: Add vim.
* gnu/packages/vim.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-14 11:26:04 +01:00
Mark H Weaver
dc5669cd65 Build newest versions unless specified, and implement upgrades.
* gnu/packages.scm (find-newest-available-packages):
  New exported procedure.

* guix-build.in (newest-available-packages, find-best-packages-by-name):
  New procedures.
  (find-package): Use find-best-packages-by-name, to guarantee that
  if a version number is not specified, only the newest versions will
  be considered.

* guix-package.in (%options): Add --upgrade/-u option.
  (newest-available-packages, find-best-packages-by-name, upgradeable?):
  New procedures.
  (find-package): Use find-best-packages-by-name, to guarantee that
  if a version number is not specified, only the newest versions will
  be considered.
  (process-actions): Implement upgrade option.

* doc/guix.texi (Invoking guix-package): In the description of --install,
  mention that if no version number is specified, the newest available
  version will be selected.
2013-02-13 22:05:19 -05:00
Mark H Weaver
c2868b1e0c Inhibit duplicates in fold-packages.
* gnu/packages.scm (fold2): New procedure.
  (fold-packages): Rework to suppress duplicates.
2013-02-13 20:56:52 -05:00
Ludovic Courtès
9011e97f8d build-system/gnu: Make the strip behavior of `static-package' configurable.
* guix/build-system/gnu.scm (static-package): Add #:strip-all? keyword
  parameter.
2013-02-14 01:12:24 +01:00
Ludovic Courtès
e3b2cf4c7a gnu: guile-static: Use libgc build with `USE_LIBC_PRIVATES'.
* gnu/packages/make-bootstrap.scm (%guile-static): Use libgc build with
  CPPFLAGS=-DUSE_LIBC_PRIVATES.
* gnu/packages/bdw-gc.scm (libgc): Add TODO to always do it.
2013-02-14 01:12:24 +01:00
Ludovic Courtès
250b0404d7 gnu: Add missing patch for mcron.
* gnu/packages/patches/mcron-install.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-02-14 01:12:24 +01:00
Nikita Karetnikov
8c3c896dbe gnu: Add GNU Wdiff.
* gnu/packages/wdiff.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-13 02:18:46 +00:00
Mark H Weaver
0d1e6ce4d2 Add version-compare and version>? to utils.scm.
* guix/utils.scm (version-compare, version>?): New exported procedures,
  based on version-string>?, which was formerly in gnu-maintenance.scm.

* guix/gnu-maintenance.scm (version-string>?): Removed procedure.
  (latest-release): Use 'version>?' instead of 'version-string>?'.
2013-02-12 20:34:25 -05:00
Andreas Enge
96be765ca5 gnu: Add signing-party.
* gnu/packages/gnupg.scm (signing-party): New variable.
2013-02-13 00:43:30 +01:00
Andreas Enge
93a6f5520c gnu: gmp: Update to version 5.1.1.
* gnu/packages/multiprecision.scm (gmp): Update to version 5.1.1.
2013-02-12 22:06:47 +01:00
Mark H Weaver
58867ae728 Add pre-inst-env and test-env to nodist_noinst_SCRIPTS in Makefile.am.
* Makefile.am: Add nodist_noinst_SCRIPTS = pre-inst-env test-env.
2013-02-12 13:37:25 -05:00
Ludovic Courtès
a40f1543c0 gnu: Add Samba and iniparser.
* gnu/packages/samba.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-12 19:36:14 +01:00
Ludovic Courtès
0e7aac44da gnu: bigloo: Install Emacs modes.
* gnu/packages/scheme.scm (bigloo): Add `install-emacs-modes' phase.
2013-02-12 19:36:14 +01:00
Andreas Enge
01e11826bc gnu: gnupg: Add optional inputs curl and openldap.
* gnu/packages/gnupg.scm (gnupg): Add inputs.
2013-02-12 15:15:18 +01:00
Andreas Enge
30e9cbb44e gnu: gnupg: Patch out /bin/sh in generated file.
* gnu/packages/gnupg.scm (gnupg): Modify configure phase.
2013-02-12 13:47:50 +01:00
Andreas Enge
a86177d61c gnu: Rename module 'freetype' to the more general 'fontutils'.
* gnu/packages/freetype.scm: Rename file to...
* gnu/packages/fontutils.scm: ...this.
* Makefile.am (MODULES): Rename module.
* gnu/packages/{ghostscript,grub,pdf,texlive}.scm: Rename dependency.
2013-02-12 13:19:26 +01:00
Ludovic Courtès
f5fd436020 doc: Add the commit policy to HACKING.
* HACKING (Commit Access): New section.
2013-02-12 00:14:32 +01:00
Ludovic Courtès
151794bf5b build: Export NIX_ROOT_FINDER' and NIX_SETUID_HELPER' from `pre-inst-env'.
* pre-inst-env.in (NIX_ROOT_FINDER, NIX_SETUID_HELPER): New variables.
  Reported by Cyril Roelandt <tipecaml@gmail.com>.
2013-02-12 00:14:32 +01:00
Ludovic Courtès
df77a46273 gnu: Add popt.
* gnu/packages/popt.scm (popt): New file.
* Makefile.am (MODULES): Add it.
2013-02-12 00:14:32 +01:00
Ludovic Courtès
beacfcabe7 gnu: Add Linux-Libre.
* gnu/packages/linux.scm (linux-libre): New variable.
2013-02-12 00:14:32 +01:00
Ludovic Courtès
57f662ad30 gnu: Add libunwind.
* gnu/packages/libunwind.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-12 00:14:32 +01:00
Ludovic Courtès
b4fcb735d5 gnu: Add Linux module-init-tools.
* gnu/packages/linux.scm (module-init-tools): New variable.
2013-02-12 00:14:32 +01:00
Andreas Enge
ea4d96c6a5 gnu: Add pius.
* gnu/packages/gnupg.scm (pius): New variable.
2013-02-11 23:55:18 +01:00
Cyril Roelandt
b1426f1785 gnu: Add tmux. licenses: add ISC.
* gnu/packages/tmux.scm: New file.
* Makefile.am (MODULES): Use it.
* guix/licenses.scm: add ISC.
2013-02-11 22:23:29 +01:00
Andreas Enge
95b6c70f6b gnu: texlive: Add input (t)csh.
* gnu/packages/texlive.scm (texlive): Add input tcsh.
2013-02-11 11:07:02 +01:00
Cyril Roelandt
16fd1db547 gnu: Add tcsh.
* gnu/packages/tcsh.scm: New file.
* gnu/packages/patches/tcsh-fix-autotest.patch: New file
* Makefile.am: Add them.
2013-02-10 23:43:46 +01:00
Ludovic Courtès
0750452a98 gnu: Add e2fsprogs.
* gnu/packages/linux.scm (e2fsprogs): New variable.
2013-02-10 23:48:41 +01:00
Ludovic Courtès
65d8b777c0 gnu: Add GNU GRUB.
* gnu/packages/grub.scm,
  gnu/packages/patches/grub-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add grub.scm.
  (dist_patch_DATA): Add grub-gets-undeclared.patch.
2013-02-10 18:48:23 +01:00
Ludovic Courtès
72b9eebf68 gnu: Add QEMU.
* gnu/packages/autotools.scm (autoconf-wrapper): Make public.
* gnu/packages/qemu.scm (qemu): New variable.
2013-02-10 18:28:00 +01:00
Ludovic Courtès
cab249615d Re-export `%current-system' from (guix packages).
* guix/packages.scm: Re-export `%current-system'.
* gnu/packages/bdw-gc.scm, gnu/packages/gawk.scm,
  gnu/packages/gperf.scm, gnu/packages/libffi.scm,
  gnu/packages/libsigsegv.scm, gnu/packages/libunistring.scm,
  gnu/packages/lout.scm, gnu/packages/m4.scm,
  gnu/packages/multiprecision.scm, gnu/packages/ncurses.scm,
  gnu/packages/perl.scm, gnu/packages/pkg-config.scm,
  gnu/packages/readline.scm, gnu/packages/recutils.scm,
  gnu/packages/scheme.scm: Remove (guix utils) import.
2013-02-10 17:23:48 +01:00
Ludovic Courtès
2aee33cfc1 gnu: Add description and license for QEMU-KVM.
* gnu/packages/qemu.scm (qemu-kvm): Add description and license.
2013-02-10 17:01:47 +01:00
Ludovic Courtès
6064c4cdf0 gnu: Add libcddb, GNU libcdio, and GNU xorriso.
* gnu/packages/cdrom.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-10 16:51:46 +01:00
Ludovic Courtès
b15fcf9ec2 gnu: Add QEMU-KVM.
* gnu/packages/qemu.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-09 23:21:00 +01:00
Ludovic Courtès
a69b7ad2d6 build: Run `guild compile' under the C locale.
* Makefile.am (.scm.go): Set LC_ALL=C.
2013-02-09 23:21:00 +01:00
Nikita Karetnikov
54845460ee gnu: Add GNU Smalltalk.
* gnu/packages/smalltalk.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-09 12:05:01 +00:00
Ludovic Courtès
a38f0ab0b9 build-system/gnu: Clarify docstring of `package-with-extra-configure-variable'.
* guix/build-system/gnu.scm (package-with-extra-configure-variable): Add
  "recursively" in the docstring.
2013-02-08 18:03:36 +01:00
Ludovic Courtès
d8707db0f7 gnu: hop: Add `patch-rpath' phase.
* gnu/packages/scheme.scm (hop): Add `patch-rpath' phase.
2013-02-08 17:38:57 +01:00
Ludovic Courtès
2d73db7a05 gnu: Add PatchELF.
* gnu/packages/patchelf.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-08 15:44:24 +01:00
Ludovic Courtès
e6e82f629c gnu: Add Hop.
* gnu/packages/scheme.scm (hop): New variable.
2013-02-08 14:41:25 +01:00
Ludovic Courtès
10879c4ea1 gnu: bigloo: Propagate GMP.
* gnu/packages/scheme.scm (bigloo): Propagate GMP.
2013-02-08 14:39:28 +01:00
Ludovic Courtès
87d836b2c9 gnu: Add GNU mcron.
* gnu/packages/guile.scm (mcron): New variable.
2013-02-08 00:15:48 +01:00
Ludovic Courtès
2f4fbe1cb3 gnu: guile-1.8: Patch `ice-9/popen.scm'.
* gnu/packages/guile.scm (guile-1.8): Rename `patch-loader-search-path'
  to `patch-stuff'; patch `ice-9/popen.scm'.
2013-02-08 00:15:26 +01:00
Ludovic Courtès
461572cca8 doc: Document installation of propagated inputs.
* doc/guix.texi (Invoking guix-package): Document installation behavior
  with propagated inputs.
2013-02-07 23:55:16 +01:00
Ludovic Courtès
b39a48ad4b gnu: ed: Update to 1.6.
* gnu/packages/ed.scm (ed): Update to 1.6.
2013-02-07 23:47:32 +01:00
Ludovic Courtès
9589eecb40 gnu: ed: Patch /bin/sh in the test suite.
* gnu/packages/ed.scm (ed): Add `patch-test-suite' phase.
2013-02-07 23:47:21 +01:00
Ludovic Courtès
4dede022fd guix-package: Install propagated inputs.
* guix-package.in (profile-manifest): Return "version 1" manifests.
  (manifest-packages): Likewise.  When MANIFEST is "version 0", add
  '() as the list of "propagated inputs" of each package.
  (profile-derivation): Produce "version 1" manifests.  Pass each
  PACKAGES item's propagated inputs as an input for BUILDER.
  (input->name+path): New procedure.
  (guix-package)[find-package]: Add the transitive propagated inputs of
  each selected package as the last item of the tuple.
  [canonicalize-deps]: New procedure.
  [process-actions]: Adjust to support propagated inputs as the last item.
  [process-query]: Likewise.
2013-02-06 23:04:10 +01:00
Ludovic Courtès
1be77eac08 union: Don't warn when colliding leaves point to the same file.
* guix/build/union.scm (union-build)[resolve-collision]: Pass LEAVES
  through `delete-duplicates'; warn iff the result contains more than
  one item.
2013-02-06 23:04:10 +01:00
Ludovic Courtès
6211223021 union: Delete duplicates when passed the same input several times.
* guix/build/union.scm (union-build): Prepend "." to the result of
  `union-tree', to match the expectations of `delete-duplicate-leaves'.
  Don't do mkdir when SUBDIR is ".".
* tests/union.scm ("union-build"): Keep duplicates in %BOOTSTRAP-INPUTS.
2013-02-06 23:04:10 +01:00
Ludovic Courtès
44ce77ff52 guix-package: Test installation of packages by name.
* tests/guix-package.sh: Remove `boot_guile'.  Replace occurrences of
  $boot_guile by the `guile-bootstrap' package name.
2013-02-06 23:04:10 +01:00
Ludovic Courtès
8dc2ecfcd9 build: `chmod +x' scripts as they are generated.
* configure.ac: Add the `chmod +x' as a second argument to
  `AC_CONFIG_FILES'.  Remove `AC_CONFIG_COMMANDS' invocation.
2013-02-06 23:04:10 +01:00
Andreas Enge
c23e9e48b7 gnu: Add libmp3splt and mp3splt.
* gnu/packages/mp3.scm (libmp3split, mp3splt): New variables.
2013-02-06 22:47:58 +01:00
Ludovic Courtès
431f35f051 gnu: make-bootstrap: Fix `%binutils-static-stripped'.
* gnu/packages/make-bootstrap.scm (%binutils-static-stripped): Add
  distinguishing `name' field.  Add `output' field to have a single
  "out" output (followup to 4873f8e).  Reported by Nikita.
2013-02-06 15:25:28 +01:00
Andreas Enge
eb0119efde gnu: Add TeXLive.
* gnu/packages/texlive.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-06 00:01:44 +01:00
Andreas Enge
6d36a6f3b0 licenses: Add new meta-license fsf-free.
* guix/licenses.scm (fsf-free): New record with constructor.
2013-02-05 23:56:42 +01:00
Ludovic Courtès
a6ef51e378 gnu: Have MPFR and MPC propagate their input.
* gnu/packages/multiprecision.scm (mpfr): Change GMP to a propagated input.
  (mpc): Likewise for GMP and MPFR.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-02-05 23:51:44 +01:00
Andreas Enge
10d1822b8e gnu: Add PCRE (Perl Compatible Regular Expression).
* gnu/packages/pcre.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-05 23:41:38 +01:00
Ludovic Courtès
fcdb4e8f8d Thank Lluís and Daniel. 2013-02-05 00:35:08 +01:00
Ludovic Courtès
ef02e1e9b5 gnu: Add GNU Guile-Ncurses.
* gnu/packages/guile.scm (guile-ncurses): New variable.
2013-02-05 00:35:08 +01:00
Andreas Enge
8cc9c0dadd gnu: Add libid3tag.
* gnu/packages/mp3 (libid3tag): New variable.
2013-02-04 11:12:32 +01:00
Andreas Enge
d464e72566 gnu: Add libmad.
* gnu/packages/mp3.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-04 11:12:32 +01:00
Ludovic Courtès
0f3d2504f7 store: Add substitute-related procedures.
* guix/store.scm (has-substitutes?, substitutable-paths,
  read-substitutable-path-list, substitutable-path-info): New
  procedures.
  (<substitutable>): New record type.
  (read-arg): Add `substitutable-path-info'.  Change `hash' pattern
  variable to `base16' literal.
* tests/store.scm ("no substitutes"): New test.
2013-02-04 08:58:48 +01:00
Ludovic Courtès
63193ebfdc store: Update to protocol 1.12.
* guix/store.scm (%protocol-version): Bump.
  (operation-id): Comment out `query-substitutable-path-info'.
  Rename `query-valid-paths' to `query-all-valid-paths'.  Add
  `query-path-from-hash-part', `query-substitutable-path-infos',
  `query-valid-paths', and `query-substitutable-paths'.
  (set-build-options): Add `binary-caches' keyword parameter.  When
  using a server >= 1.12, send the list of binary caches.
  (query-path-hash): Use the `store-path' type, for clarity.
2013-02-04 08:58:48 +01:00
Ludovic Courtès
c5a855c481 SRFI-64: Make the log file's port line-buffered.
* srfi/srfi-64.upstream.scm (test-on-group-begin-simple): Make LOG-FILE
  line-buffered.
2013-02-04 08:58:48 +01:00
Ludovic Courtès
bbb76f6f71 tests: Fix thinko in `derivation' test.
* tests/derivations.scm ("derivation with local file as input"): Return
  a Boolean instead of a bytevector.  Don't attempt to compare the
  content of the result with that of the input.
2013-02-04 08:58:48 +01:00
Ludovic Courtès
238e43b9fa store: Write string length as a 32-bit integer.
* guix/store.scm (write-string): Write L as a 32-bit integer.  Bug
  introduced in 82c38fe64c ("store:
  Micro-optimize `write-string'.")
2013-02-04 08:58:47 +01:00
Nikita Karetnikov
9c63fe6c1f gnu: Add GNU Prolog.
* gnu/packages/gprolog.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-02 12:48:58 +00:00
Andreas Enge
58cc3b385b gnu: Add libxslt.
* gnu/packages/xml.scm (libxslt): New variable.
2013-02-01 23:23:08 +01:00
Ludovic Courtès
38bbd61df1 gnu: Fix invalid `license' fields.
* gnu/packages/acl.scm (acl): Change `license' field to refer to the
  `license' objects.
* gnu/packages/attr.scm (attr): Likewise.
* gnu/packages/compression.scm (xz): Likewise.
* gnu/packages/global.scm (global): Likewise.
* gnu/packages/linux.scm (linux-libre-headers): Likewise.
2013-02-01 13:16:45 +01:00
Ludovic Courtès
cb09fb24ee guix-package: Make `--search' queries case-insensitive.
* guix-package.in (guix-package)[process-query]: Use `regexp/icase' for
  the `search' regexp.
2013-02-01 13:16:45 +01:00
Ludovic Courtès
0bdba772ca Augment `.dir-locals.el'.
* .dir-locals.el: Add more Scheme settings.
* guix-build.in, tests/base32.scm, tests/build-utils.scm,
  tests/builders.scm, tests/derivations.scm, tests/packages.scm,
  tests/snix.scm, tests/store.scm, tests/union.scm, tests/utils.scm:
  Remove redundant Emacs local variable settings.
2013-02-01 13:16:45 +01:00
Ludovic Courtès
299112d36e guix-package: Report `--search' matches in recutils format.
* guix/ui.scm (fill-paragraph, string->recutils, package->recutils): New
  procedures.
* guix-package.in (guix-package)[process-query]: Use `package->recutils'
  to display package meta-data.
* tests/guix-package.sh: Adjust test.
* tests/ui.scm: New file.
* Makefile.am (TESTS): Add it.
* doc/guix.texi (Invoking guix-package): Adjust `--search'
  documentation, and give an example.
2013-02-01 13:16:41 +01:00
Ludovic Courtès
aa92cf980c guix-package: Gracefully report non-existing outputs.
* guix-package.in (guix-package)[find-package](ensure-output): New
  procedure. Use it to validate SUB-DRV.
2013-02-01 09:17:59 +01:00
Ludovic Courtès
0f5378ebc4 guix-package: Reduce start-up time for queries.
* guix-package.in (guix-package): Call `open-connection' and
  `package-derivation' only after `process-query' has returned.
2013-01-31 23:24:40 +01:00
Andreas Enge
dc2e4b0e16 gnu: Add libkate.
* gnu/packages/oggvorbis.scm (libkate): New variable.
* gnu/packages/oggvorbis.scm (vorbis-tools): Add input libkate.
2013-01-31 22:47:25 +01:00
Andreas Enge
9ae7865e97 gnu: Add flac.
* gnu/packages/oggvorbis.scm (flac): New variable.
* gnu/packages/oggvorbis.scm (vorbis-tools): Add flac input.
* gnu/packages/patches/flac-fix-memcmp-not-declared.patch: New file.
2013-01-31 22:19:56 +01:00
Ludovic Courtès
f992ead284 gnu: bigloo: Update tarball's hash.
* gnu/packages/scheme.scm (bigloo): Change hash.  The tarball was
  recently modified in-place (!).
2013-01-31 17:49:54 +01:00
Ludovic Courtès
bbdb3ffaf3 store: Don't expect build logs to be UTF-8-encoded.
* guix/store.scm (read-latin1-string): New procedure.
  (process-stderr): Use it instead of `read-string'.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-01-31 17:49:54 +01:00
Andreas Enge
1f73d3b495 gnu: vorbis-tools: Enable ogg123.
* gnu/packages/oggvorbis.scm (vorbis-tools): Add inputs ao and curl.
2013-01-30 23:46:39 +01:00
Andreas Enge
76e38f0d78 gnu: Add libao.
* gnu/packages/oggvorbis.scm (ao): New variable.
2013-01-30 23:32:13 +01:00
Andreas Enge
6b9105e557 gnu: Add curl.
* gnu/packages/curl.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-30 23:07:13 +01:00
Andreas Enge
fe0b8a789a gnu: Add openssh.
* gnu/packages/ssh.cm (openssh): New variable.
2013-01-30 23:03:48 +01:00
Ludovic Courtès
5cfdcd6a26 .dir-locals.el: Fill at 78 columns. 2013-01-30 18:59:12 +01:00
Ludovic Courtès
d0840e4a23 derivations: Memoize `read-derivation'.
* guix/derivations.scm (read-derivation): Rename to...
  (%read-derivation): ... this.
  (read-derivation): New procedure.
  This reduces the execution of "guix-build gdb" from 2.5s to 1.7s.
2013-01-30 18:58:38 +01:00
Ludovic Courtès
fce2394e7d store: Slightly improve memoization hashing.
* guix/store.scm (open-connection): Call `make-hash-table' with 100.
  (add-text-to-store): Move TEXT first in ARGS, for better `hash'
  results.
  (add-to-store): Likewise, move ST first.
2013-01-30 17:05:54 +01:00
Ludovic Courtès
a9ebd9efd0 store: Remove the fixed?' parameter from add-to-store'.
* guix/store.scm (add-to-store): Remove the `fixed?' parameter from the
  public interface.
* gnu/packages/bootstrap.scm, guix-download.in, guix/derivations.scm,
  guix/packages.scm, tests/derivations.scm: Update all callers
  accordingly.
2013-01-30 16:30:49 +01:00
Ludovic Courtès
fd060fd30d store: Avoid use of `set!'.
* guix/store.scm (operation): New macro.
  (define-operation): Define in terms of `operation'.
  (add-text-to-store): Define using `operation', and remove now
  unnecessary `set!'.
  (add-to-store): Likewise.
  (add-text-to-store/cached, add-to-store/cached): Remove.
2013-01-30 16:22:33 +01:00
Ludovic Courtès
82c38fe64c store: Micro-optimize `write-string'.
* guix/store.scm (write-string): Optimize to write the length, contents,
  and padding all at once.  This yields a 2% improvement on the
  execution time of "guix-build gdb".
2013-01-30 00:37:26 +01:00
Ludovic Courtès
473b03b3c6 Gracefully handle failure to install the current locale.
* guix/ui.scm (install-locale): New procedure.
* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
  guix-package.in: Use it instead of (setlocale LC_ALL "").
2013-01-30 00:09:32 +01:00
Ludovic Courtès
bdcf35a6b2 store: Cache `add-text-to-store' results.
* guix/store.scm (<nix-server>)[atts-cache]: New field.
  (add-text-to-store/cached): New procedure.  Use it as a wrapper around
  `add-text-to-store'.
  When running "guix-build gdb", this reduces the number of RPCs from
  3048 to 289, and execution time from 4.7s to 2.6s.
2013-01-30 00:09:32 +01:00
Ludovic Courtès
2c3f47ee3a store: Make the `add-to-store' cache per-connection.
* guix/store.scm (<nix-server>)[ats-cache]: New field.
  (open-connection): Update accordingly.
  (add-to-store/cached): Use (nix-server-add-to-store-cache SERVER)
  instead of a weak hash table.
2013-01-30 00:09:32 +01:00
Andreas Enge
2fbf053b7b gnu: Add libssh2.
* gnu/packages/ssh.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-29 23:05:35 +01:00
Andreas Enge
2a75d4e664 gnu: Add openldap.
* gnu/packages/openldap.scm: New file.
* Makefile.am (MODULE): Add it.
2013-01-29 19:52:00 +01:00
Ludovic Courtès
a7b6ffee68 store: Make `add-to-store' memoizing.
* guix/store.scm (add-to-store/cached): New variable.
  Use it as the new `add-to-store'.
  This reduces the number of RPCs when doing "guix-build gdb" from 5009
  to 3053, and the execution time from 7s to 3.9s.
2013-01-29 00:16:18 +01:00
Ludovic Courtès
d7e8e288c5 gnu: gdb: Update to 7.5.1.
* gnu/packages/gdb.scm (gdb): Update to 7.5.1.
2013-01-28 22:48:15 +01:00
Ludovic Courtès
8aab64fca9 build: Require Automake 1.12 or later.
* configure.ac: Require Automake 1.12 or later.
2013-01-28 22:30:16 +01:00
Nikita Karetnikov
2289721c9c Update 'TODO'. 2013-01-28 07:16:11 +00:00
Nikita Karetnikov
acc084669c guix-package: Add '--search'.
* guix-package.in (find-packages-by-description): New procedure.
  (show-help, %options): Add '--search'.
  (guix-package)[process-query]: Add support for '--search'.
* doc/guix.texi (Invoking guix-package): Document it.
* tests/guix-package.sh: Add tests.
2013-01-28 06:47:49 +00:00
Ludovic Courtès
c9ee048595 gnu: automake: Update to 1.13.1.
* gnu/packages/autotools.scm (automake): Update to 1.13.1.
2013-01-27 22:52:21 +01:00
Ludovic Courtès
168030ea0c gnu: autoconf-wrapper: Fix "guile" input.
* gnu/packages/autotools.scm (autoconf-wrapper): Remove `lambda' for
  "guile" input..
2013-01-27 22:35:33 +01:00
Ludovic Courtès
82fe08ed20 guix-package: Always use the next number for new generations.
Suggested by Andreas Enge <andreas@enge.fr> at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>.

* guix-package.in (latest-profile-number): Remove.
  (switch-symlinks): New procedure.
  (roll-back)[switch-link]: Use it.
  (guix-package)[process-actions]: Always choose NUMBER + 1 for the new
  profile.  Use `switch-symlinks' instead of `symlink'.  Remove code to
  delete PROFILE when it exists since `switch-symlinks' has the same
  effect.
* tests/guix-package.sh: Adjust existing `--roll-back' tests.
* doc/guix.texi (Invoking guix-package): Document this `--roll-back'
  behavior.
2013-01-27 17:58:46 +01:00
Ludovic Courtès
d9307267b3 guix-package: When rolling back to nothingness, point to the empty profile.
Suggested by Andreas Enge <andreas@enge.fr> at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00316.html>.

* guix-package.in (roll-back): Check whether PROFILE is valid using
  `file-exists?'.  When NUMBER is zero, just emit a notice.  When
  PREVIOUS-NUMBER is zero and PREVIOUS-PROFILE does not exist, build the
  empty profile, and link to it.
* tests/guix-package.sh: Add tests.
* doc/guix.texi (Invoking guix-package): Document the new behavior.
2013-01-27 17:18:55 +01:00
Ludovic Courtès
29767aaef6 Update `TODO'. 2013-01-27 00:59:04 +01:00
Ludovic Courtès
41d42f5061 Update AUTHORS' and THANKS'. 2013-01-27 00:55:51 +01:00
Ludovic Courtès
64858bc090 gnu: python: Remove unnecessary module import.
* gnu/packages/python.scm: Remove use of (gnu packages base).
2013-01-27 00:55:37 +01:00
Cyril Roelandt
f1d2872c82 gnu: Add irssi.
* gnu/packages/irssi.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-26 23:40:43 +01:00
Andreas Enge
b8d3511ad5 gnu: Add zip, unzip and zziplib.
* gnu/packages/zip.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-26 14:40:49 +01:00
Andreas Enge
e5c0701f9c gnu: Add TECkit.
* gnu/packages/freetype.scm (teckit): New variable.
* gnu/packages/patches/teckit-cstdio.patch: New file.
* Makefile.am (dist_patch_DATA): Add patch.
2013-01-26 00:43:03 +01:00
Ludovic Courtès
cc957c3c74 gnu: Use `mirror://apache' where applicable.
* gnu/packages/libapr.scm (libapr, libaprutil): Use `mirror://apache'.
* gnu/packages/subversion.scm (subversion): Likewise.
2013-01-25 21:52:08 +01:00
Ludovic Courtès
47f9db4128 download: Add Apache mirrors.
* guix/download.scm (%mirrors): Add `apache'.
2013-01-25 21:52:08 +01:00
Cyril Roelandt
59db01942b gnu: Add Subversion.
* gnu/packages/subversion.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-25 21:52:08 +01:00
Ludovic Courtès
97715602cb gnu: Add SQLite.
* gnu/packages/sqlite.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-25 21:52:08 +01:00
Ludovic Courtès
67158a4900 download: Follow HTTP redirection upon 301 "moved permanently".
* guix/build/download.scm (http-fetch): Follow redirections upon 301.
  This is what `downloads.sourceforge.net' returns, for instance.
2013-01-25 21:52:08 +01:00
Cyril Roelandt
695e671723 gnu: Add libaprutil.
* gnu/packages/libapr: new variable.
2013-01-25 21:52:08 +01:00
Cyril Roelandt
df84950e44 gnu: Add libapr.
* gnu/packages/libapr.scm: New file.
* gnu/packages/patches/libapr-skip-getservbyname-test.patch: New file
* Makefile.am: Add them
2013-01-25 21:52:08 +01:00
Andreas Enge
12a5199a27 gnu: fplll: Update to version 4.0.2.
* gnu/packages/algebra.scm (fplll): Update to version 4.0.2.
2013-01-25 10:50:30 +01:00
Andreas Enge
135eb524b3 gnu: Add poppler.
* gnu/packages/pdf.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-24 23:51:41 +01:00
Ludovic Courtès
dd6b9a3790 packages: Mark the `inputs' field of <package> as thunked.
* guix/packages.scm (<package>)[inputs]: Mark as thunked.
  (package-derivation)[expand-input]: Remove case where the input is a
  procedure.
* tests/packages.scm ("trivial with system-dependent input"): Remove
  `lambda', and use (%current-system).
* gnu/packages/bootstrap.scm (package-from-tarball): Likewise for `inputs'.
  (%bootstrap-glibc, %bootstrap-gcc): Likewise.
* gnu/packages/scheme.scm (mit-scheme): Likewise.
2013-01-24 23:33:51 +01:00
Ludovic Courtès
3b9c002088 guix-package: Error out when passed a non-option argument.
* guix-package.in (guix-package)[parse-options]: Call `leave' when
  passed a non-option argument.
  Reported by Andreas Enge <andreas@enge.fr>.
* tests/guix-package.sh: Add test.
2013-01-24 23:33:51 +01:00
Andreas Enge
313b901255 gnu: Add t1lib.
* gnu/packages/freetype.scm (t1lib): New variable.
2013-01-24 00:21:52 +01:00
Cyril Roelandt
d192efae07 gnu: Add OCaml. licenses: Add QPL.
* gnu/packages/ocaml.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/licenses.scm: New variable.
2013-01-24 00:03:43 +01:00
Ludovic Courtès
21c203a53a packages: Mark the `arguments' field of <package> as thunked.
* guix/packages.scm (<package>): Mark `arguments' as thunked.
  (package-derivation): Adjust accordingly.  Parameterize
  %CURRENT-SYSTEM to SYSTEM, so that arguments can refer to it.

* guix/build-system/gnu.scm (package-with-explicit-inputs): Expect
  `package-arguments' to always return a list, and return a list.
  (package-with-extra-configure-variable): Likewise.
  (static-package): Likewise.
* gnu/packages/base.scm (patch, findutils, gcc-4.7, binutils-boot0,
  gcc-boot0, glibc-final-with-bootstrap-bash, cross-gcc-wrapper,
  static-bash-for-glibc, binutils-final, gcc-final): Change `arguments'
  from a lambda to a list, and use (%current-system) as needed.
  (nix-system->gnu-triplet, boot-triplet): Have the first argument
  default to (%current-system).
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Have `system'
  default to (%current-system).
  (%bootstrap-gcc): Change `arguments' to a list.
* gnu/packages/gawk.scm (gawk): Likewise.
* gnu/packages/m4.scm (m4): Likewise.
* gnu/packages/make-bootstrap.scm (%glibc-for-bootstrap): Likewise, and
  expect `package-arguments' to return a list.
  (%static-inputs, %gcc-static, tarball-package): Likewise.
* gnu/packages/ncurses.scm (ncurses): Likewise.
2013-01-23 23:33:09 +01:00
Ludovic Courtès
9c9da07f4c guix-build: Fix typo.
* guix-build.in (guix-build)[find-package]: Use `x', not `_', to avoid
  confusion with `gettext'.
2013-01-23 23:33:09 +01:00
Ludovic Courtès
12abb19dfb gnu: Remove unnecessary closures around `arguments' value.
* gnu/packages/algebra.scm (pari-gp): Remove closure around the value of
  `arguments'.
* gnu/packages/bdb.scm (bdb): Likewise.
* gnu/packages/mit-krb5.scm (mit-krb5): Likewise.
* gnu/packages/openssl.scm (openssl): Likewise.
* gnu/packages/perl.scm (perl): Likewise.
2013-01-23 23:33:09 +01:00
Ludovic Courtès
bbb7a00e9a define-record-type*: Add the `thunked' field definition keyword.
* guix/utils.scm (define-record-type*)[make-syntactic-constructor]: Add
  a `thunked' parameter.
  (thunked-field?, field-bindings): New procedures.  Use the latter when
  generating `letrec*' bindings.
  [thunked-field?, thunked-field-accessor-name, field-spec->srfi-9,
  thunked-field-accessor-name]: New procedures.
  Use them when generating the `define-record-type' form, and to
  generated thunk field accessors, along call to
  `make-syntactic-constructor' with the new argument.
* tests/utils.scm ("define-record-type* & thunked",
  "define-record-type* & thunked & default",
  "define-record-type* & thunked & inherited"): New tests.
2013-01-23 23:33:09 +01:00
Ludovic Courtès
6798a8e485 doc: Clarify that `guix-build' really is for developers.
* doc/guix.texi (Invoking guix-build): Make it clear that `guix-build'
  doesn't access the user's profile, and add cross-ref to `guix-package'.
  Suggested by Nikita Karetnikov <nikita@karetnikov.org>.
2013-01-23 23:33:09 +01:00
Andreas Enge
6e4da6ead1 gnu: Add fontconfig.
* gnu/packages/freetype.scm (fontconfig): New variable.
2013-01-23 21:51:42 +01:00
Andreas Enge
8dc8bf02c6 gnu: libjpeg: Correct name of libjpeg-8 package to allow installation.
* gnu/packages/libjpeg (libjpeg-8): Switch name field to "libjpeg".
2013-01-23 21:28:44 +01:00
Ludovic Courtès
4f1ee0c964 Update `THANKS'. 2013-01-23 15:40:14 +01:00
Ludovic Courtès
821b0015fa doc: Improve wording and fix typos in "Features".
* doc/guix.texi (Features): Fix typos, and rephrase according to the
  suggestions of Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.
2013-01-23 15:40:13 +01:00
Andreas Enge
2b902c3c46 gnu: ghostscript: Build and install shared library and header files.
* gnu/packages/ghostscript (ghostscript): Extend build and install phases.
2013-01-22 23:48:08 +01:00
Ludovic Courtès
67668155c5 guix-package: Fix --roll-back' when --profile' is not passed.
* guix-package.in (roll-back): Fix file name of PREVIOUS-PROFILE, which
  could end up containing the dirname twice.
  Reported by Nikita and Andreas.
* tests/guix-package.sh: Add test.
2013-01-22 22:35:16 +01:00
Ludovic Courtès
5401dd7595 guix-build: Allow version-qualified package names.
* guix-build.in (guix-build)[find-package]: New procedure.
  Use it instead of using `find-packages-by-name' directly.
  Suggested by Andreas Enge <andreas@enge.fr>.
* tests/guix-build.sh: Add tests.
* doc/guix.texi (Invoking guix-build): Add `coreutils-8.20' as an
  example.  Fix guile-1.8 example.
2013-01-22 22:14:25 +01:00
Ludovic Courtès
476f8ea33c Update `ROADMAP'. 2013-01-22 00:17:42 +01:00
Ludovic Courtès
7cd1d7bd0c gnu: automake: Adjust test suite to lack of /bin/sh.
* gnu/packages/autotools.scm (autoconf-wrapper): New variable.
  (automake): Use AUTOCONF-WRAPPER instead of AUTOCONF.
  Add `automake-skip-amhello-tests.patch' as an input.
  Add #:patches and #:phases arguments.
* gnu/packages/patches/automake-skip-amhello-tests.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-01-22 00:17:42 +01:00
Ludovic Courtès
f153d89155 packages: Remove redundant test for inputs-as-procedures.
* guix/packages.scm (package-derivation)[expand-input]: Remove redundant
  test when the input is a procedure.
2013-01-22 00:17:42 +01:00
Ludovic Courtès
c6dbd50594 doc: Add "The Perfect Setup" in 'HACKING'.
* HACKING (The Perfect Setup): New section.
2013-01-22 00:17:42 +01:00
Ludovic Courtès
4f028c8f95 gnu: Add Geiser.
* gnu/packages/emacs.scm (geiser): New variable.
2013-01-22 00:17:42 +01:00
Ludovic Courtès
dc56970dde gnu: gnutls: Remove unneeded import.
* gnu/packages/gnutls.scm: Remove import of (gnu packages base).
2013-01-22 00:17:42 +01:00
Andreas Enge
23180bebff gnu: Add groff.
* gnu/packages/groff.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-21 23:23:02 +01:00
Andreas Enge
87ec7a7a5e gnu: Add psutils.
* gnu/packages/ghostscript.scm (psutils): New variable.
2013-01-21 23:18:46 +01:00
Andreas Enge
05bf6f8289 gnu: Add netpbm.
* gnu/packages/netpbm.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-21 21:46:46 +01:00
Ludovic Courtès
eb39051936 gnu: Add missing libevent patch.
* gnu/packages/patches/libevent-dns-tests.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2013-01-21 08:53:44 +01:00
Nikita Karetnikov
e1f8f477de Update 'HACKING'.
* HACKING (When the platform is supported by Nixpkgs): Update the example.
2013-01-21 03:11:10 +00:00
Ludovic Courtès
7f08437bd8 gnu: Add Tor.
* gnu/packages/tor.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-20 23:21:04 +01:00
Ludovic Courtès
2e87ca8f52 Augment `.gitignore'. 2013-01-20 22:54:36 +01:00
Ludovic Courtès
85f3a05e4c Update `NEWS'.
* NEWS: Update.
2013-01-20 22:54:36 +01:00
Ludovic Courtès
6b32a64a4d gnu: Add libevent.
* gnu/packages/libevent.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-20 22:54:36 +01:00
Ludovic Courtès
483f11589e download: Add HTTPS support.
* guix/build/download.scm: Autoload (gnutls).
  (tls-wrap): New procedure.
  (open-connection-for-uri): Add support for `https'.  Wrap the socket
  with `tls-wrap' in that case.
  (url-fetch): Add `https'.
* guix/download.scm (gnutls-derivation): New procedure.
  (url-fetch)[need-gnutls?]: New variable.
  Call `gnutls-derivation' when NEED-GNUTLS? is true, and add its output
  to the `GUILE_LOAD_PATH' env. var. in that case.
2013-01-20 22:54:36 +01:00
Ludovic Courtès
e509d1527d packages: Have `package-derivation' return a <derivation> as a second value.
* guix/packages.scm (cache): Change the `drv' argument to `thunk'.
  Memoize all the return values of THUNK.
  (cached-derivation): Remove.
  (cached): New macro.
  (package-derivation): Use `cached' instead of `(or (cached-derivation) …)'.
* doc/guix.texi (Defining Packages): Update accordingly.
2013-01-20 22:54:36 +01:00
Andreas Enge
079fca3be8 gnu: mit-krb5: Patch and enable tests.
* gnu/packages/mit-krb5.scm (mit-krb5): Enable patched tests.
2013-01-20 22:29:55 +01:00
Ludovic Courtès
f6ab05509c Update `THANKS'. 2013-01-20 15:46:36 +01:00
Ludovic Courtès
091196b383 doc: Run `useradd -g guix-builder -G guix-builder'.
* doc/guix.texi (Setting Up the Daemon): Add `-G guix-builder' when
  invoking `useradd'.
  Suggested by Aleix Conchillo Flaqué <aconchillo@gmail.com>.
2013-01-20 15:46:36 +01:00
Andreas Enge
c4854e76e2 gnu: screen: correct license to gpl2+
* gnu/packages/screen.scm (screen): correct license field
2013-01-20 12:29:09 +01:00
Cyril Roelandt
6c3a720481 Add GNU Screen.
* gnu/packages/screen.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-20 12:22:14 +01:00
Ludovic Courtès
c217708f7b build: Use "nix-instantiate" as the default name for that program.
* configure.ac: Have `NIX_INSTANTIATE' default to `nix-instantiate'.
2013-01-19 23:09:36 +01:00
Ludovic Courtès
2ffa297ab8 gnu: lout: Add missing dependency on Ghostscript.
* gnu/packages/lout.scm (lout): Add GHOSTSCRIPT as an input.  Use a
  mirror:// URL.
2013-01-19 22:32:21 +01:00
Ludovic Courtès
79c398a20c gnu: freetype: Avoid license/package name clash.
* gnu/packages/freetype.scm: Use a renamer for (guix licenses), to avoid
  a name clash.
2013-01-19 22:31:17 +01:00
Ludovic Courtès
943f33a326 distro: glib: Run the test suite; add DBus.
* distro/packages/glib.scm: Rename to...
* gnu/packages/glib.scm: ... this.  Update module declaration
  accordingly.
  (dbus): New variable.
  (glib): Change version number to 2.34.3, and adjust URL accordingly.
  Add a "doc" output.  Add #:configure-flags, #:patches, and #:phases
  arguments. Add DBUS as an input, as well a three patches.
* Makefile.am (MODULES): Adjust to file renaming.
  (dist_patch_DATA): Add `glib-tests-timezone.patch',
  `glib-tests-homedir.patch', and `glib-tests-desktop.patch'.
2013-01-19 22:20:47 +01:00
Nikita Karetnikov
3889a82ef8 distro: Add GLib.
* distro/packages/glib.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-19 22:20:47 +01:00
Andreas Enge
11314eb68e gnu: libtiff: Add zlib support.
* gnu/packages/libtiff.scm (libtiff): Add input zlib.
2013-01-19 17:34:26 +01:00
Andreas Enge
f0444eafe2 gnu: Add libxml2.
* gnu/packages/xml.scm (libxml2): New variable.
2013-01-19 15:17:28 +01:00
Andreas Enge
bf4018fb15 gnu: Add GNU Ghostscript and its dependencies libpaper and lcms.
* gnu/packages/ghostscrip.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-19 13:44:42 +01:00
Andreas Enge
b387a1c5b2 gnu: Add Freetype.
licenses: Add freetype license.

* gnu/packages/freetype.scm: New file.
* guix/licenses.scm (freetype): New variable.
* Makefile.am (MODULES): Add freetype.scm.
2013-01-19 12:28:55 +01:00
Nikita Karetnikov
8f86331a22 gnu: ddrescue: Fix 'synopsis' and 'description'.
* gnu/packages/ddrescue.scm (ddrescue): Fix 'synopsis' and 'description'.
2013-01-19 01:01:27 +00:00
Nikita Karetnikov
1f5ec939ca gnu: Add GNU Speex.
* gnu/packages/oggvorbis.scm (speex): Add it.
(vorbis-tools): Add 'speex' to 'inputs'.
2013-01-19 00:41:41 +00:00
Andreas Enge
23f339dd7f gnu: Amended previous patch.
* Makefile.am (MODULES): Add libpng.scm.
2013-01-18 23:55:07 +01:00
Andreas Enge
5752a7d77c gnu: Add libpng.
* gnu/packages/libpng.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-18 23:53:08 +01:00
Andreas Enge
99e6c1b18e licenses: Add 'vim'.
* guix/licenses.scm (vim): New variable.
2013-01-18 22:48:28 +01:00
Andreas Enge
6a06172b65 gnu: Add libogg, libvorbis and vorbis-tools.
* gnu/packages/oggvorbis.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-18 20:27:33 +01:00
Ludovic Courtès
3465eb03bd distro: tcl: Make a `tclsh' symlink.
* gnu/packages/tcl.scm (tcl): Add a `tclsh' symlink.
2013-01-18 18:22:48 +01:00
Ludovic Courtès
5fc5c2f340 build: Bump to version 0.2.
* configure.ac: Bump version number.
2013-01-18 16:59:02 +01:00
Ludovic Courtès
665991957c distro: bigloo: Update to 4.0a.
* gnu/packages/scheme.scm (bigloo): Update to 4.0a.
2013-01-18 16:57:23 +01:00
Ludovic Courtès
c3d98cad5d distro: gnutls: Adjust to the latest version.
* gnu/packages/gnutls.scm (gnutls): Remove the #:parallel-build?
  argument, which is no longer needed.  Remove the commented-out LZO
  input, since GnuTLS no longer supports it since 3.0.0.
2013-01-18 16:56:59 +01:00
Ludovic Courtès
d7d408d578 distro: gnutls: Use the GnuPG mirrors.
* gnu/packages/gnutls.scm (gnutls): Use the gnutls.org/GnuPG URL.
2013-01-18 16:54:41 +01:00
Ludovic Courtès
a1ba8475a6 doc: Add a "GNU Distribution" node.
* doc/guix.texi (Introduction): Add cross-reference to "GNU
  Distribution".
  (Features): Mention reproducibility.
  (Invoking guix-package): Add cross-reference to "GNU Distribution".
  (GNU Distribution): New node.
2013-01-18 01:29:24 +01:00
Ludovic Courtès
59a43334a9 distro: Rename (distro) to (gnu packages).
* distro.scm: Rename to...
* gnu/packages.scm: ... this.  Update all users accordingly.
* Makefile.am (MODULES): Adjust accordingly.
* po/POTFILES.in: Likewise.
2013-01-18 01:07:53 +01:00
Ludovic Courtès
1ffa7090b9 distro: Change the module name space to (gnu ...).
* distro: Rename to...
* gnu: ... this.  Update module names accordingly.
* Makefile.am: Adjust accordingly.
* po/POTFILES.in: Likewise.
* distro.scm: Search for files under /gnu/packages instead of
  /distro/packages.
* gnu/packages/base.scm (ld-wrapper-boot3): Likewise.
2013-01-18 01:07:31 +01:00
Ludovic Courtès
08ba7ff318 Update `HACKING'.
* HACKING: Capitalize the title.
  (Running Guix before it is installed): New section.
  (Adding new packages): Update example.
2013-01-18 00:48:07 +01:00
Ludovic Courtès
4fd27cdfb9 Move Andreas to `AUTHORS'. 2013-01-18 00:48:07 +01:00
Ludovic Courtès
75f1e8f7cd doc: Mark binary deployment as not implemented yet.
* doc/guix.texi (Features): Add a footnote saying that binary deployment
  is missing.
2013-01-18 00:48:07 +01:00
Andreas Enge
082b3c6a6c distro: Add libtiff.
* distro/packages/libtiff.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-18 00:14:42 +01:00
Andreas Enge
1d97441709 distro: Add Libjpeg 8.
* distro/packages/libjpeg.scm (libjpeg-8): New variable.
2013-01-18 00:13:20 +01:00
Andreas Enge
f24996724c distro: Add file.
* distro/packages/file.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-17 23:15:21 +01:00
Andreas Enge
4b5f8cde38 distro: Add Libjpeg.
* distro/packages/libjpeg.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-17 23:12:22 +01:00
Andreas Enge
dd9e87e185 distro: flex: Add dependency on Indent.
* distro/packages/flex.scm (flex): Add Indent as input.
2013-01-17 23:09:24 +01:00
Andreas Enge
c1e628f6ce distro: Add Indent.
* distro/packages/indent.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-17 23:09:24 +01:00
Ludovic Courtès
9241172c9d guix-package: Allow `--roll-back' to skip missing generations.
* guix-package.in (profile-numbers): New procedure.
  (latest-profile-number): Use it.
  (previous-profile-number): New procedure.
  (roll-back): Use it lieu of `1-'.  Check whether PREVIOUS-NUMBER is
  zero, and raise an error when it is.
* tests/guix-package.sh: Test whether we can roll back over a "hole".
2013-01-17 22:42:39 +01:00
Ludovic Courtès
24e262f086 guix-package: Add `--roll-back'.
Based on a patch by Nikita Karetnikov <nikita@karetnikov.org>.

* guix-package.in (profile-regexp): New procedure.
  (latest-profile-number): Remove `%profile-rx', and use
  `profile-regexp' instead.
  (profile-number, roll-back): New procedure.
  (show-help): Add `--roll-back'.
  (%options): Likewise.
  (guix-package)[process-actions]: First check whether `roll-back?' is
  among OPTS, and call `roll-back' if it is, followed by a recursive
  call to `process-actions'.  Emit the "nothing to be done" message only
  when INSTALL or REMOVE is non-empty.
* tests/guix-package.sh (readlink_base): New function.
  Add tests for `--roll-back'.
* doc/guix.texi (Invoking guix-package): Document `--roll-back'.
2013-01-17 22:42:39 +01:00
Andreas Enge
8ca6cc4b45 distro: gnutls: Update to 3.1.6.
* distro/packages/gnutls.scm (gnutls): Update to 3.1.6.
2013-01-17 16:41:05 +01:00
Ludovic Courtès
aba326f79c packages: Change `base32' to allow non-literal strings.
* guix/packages.scm (base32): Allow arguments that are not literal strings.
2013-01-17 15:45:05 +01:00
Ludovic Courtès
2a6c679561 distro: nettle: Update to 2.6.
* distro/packages/nettle.scm (nettle): Update to 2.6.
2013-01-17 13:57:30 +01:00
Ludovic Courtès
183c9a89a3 distro: gdb: Add dependency on Expat and Python.
* distro/packages/gdb.scm (gdb): Add Expat and Python as inputs.
2013-01-16 23:50:51 +01:00
Ludovic Courtès
d041488307 distro: Add Expat.
* distro/packages/xml.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-16 23:40:02 +01:00
Ludovic Courtès
874e687428 doc: Start documenting derivations.
* doc/guix.texi (Defining Packages): Add cross-reference to
  "Derivations".
  (The Store): Add `build-derivations'.
  (Derivations): Populate.
2013-01-16 23:09:53 +01:00
Ludovic Courtès
1da983b9f0 doc: Fix typos, and improve daemon documentation.
* doc/guix.texi: Fix typos.
  (Invoking guix-daemon): Add details about `--disable-log-compression'
  and `--disable-store-optimization'.
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-01-16 23:09:53 +01:00
Ludovic Courtès
b28168c125 doc: Remove @documentlanguage.
* doc/guix.texi: Remove @documentlanguage, which confuses TeX.
2013-01-16 23:09:52 +01:00
Andreas Enge
4c9e797577 distro: Add icu4c (International Components for Unicode).
* distro/packages/icu4c.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-16 17:39:47 +01:00
Nikita Karetnikov
a01b6da792 distro: Add Python 2.7.3.
* distro/packages/python.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-16 04:23:27 +00:00
Ludovic Courtès
e531ac2ad9 doc: Start documenting (guix store).
* doc/guix.texi (The Store): Populate.
  (Introduction): Add cross-reference.  Change "package store" to "the
  store".
2013-01-15 23:32:13 +01:00
Ludovic Courtès
156b5010ff distro: recutils: Add 3 optional dependencies.
* distro/packages/recutils.scm (recutils): Add Emacs, Check, and bc as
  dependencies.
2013-01-15 23:00:46 +01:00
Ludovic Courtès
9282e25962 distro: check: Fix source URL.
* distro/packages/check.scm (check): Fix source URI.
2013-01-15 23:00:05 +01:00
Ludovic Courtès
727afa3be8 distro: Add patches forgotten in previous commits.
* distro/packages/patches/bigloo-gc-shebangs.patch,
  distro/packages/patches/emacs-configure-sh.patch,
  distro/packages/patches/procps-make-3.82.patch: New files.
* Makefile.am (dist_patch_DATA): Add them.
2013-01-15 22:56:52 +01:00
Ludovic Courtès
ed9f9a7765 distro: Add GNU bc.
* distro/packages/algebra.scm (bc): New variable.
2013-01-15 22:49:50 +01:00
Ludovic Courtès
c4d645341b guix-package: Connect to the daemon only after arguments have been processed.
* guix-package.in (%store): Change to a SRFI-39 parameter.  Update all users.
  (guix-package): Parametrize %STORE to an open connection after
  `parse-options' has been called.
2013-01-15 22:39:03 +01:00
Andreas Enge
acf60b26bd distro: Add Cyrus SASL.
* distro/packages/cyrus-sasl.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-15 17:11:51 +01:00
Andreas Enge
0dd7a135b2 Test commit.
* Makefile.am: alphabetical ordering
2013-01-15 16:12:33 +01:00
Ludovic Courtès
c7e4a72a74 Augment `TODO'. 2013-01-15 11:35:15 +01:00
Ludovic Courtès
04732c37ca distro: Fetch bootstrap binaries from alpha.gnu.org.
* build-aux/download.scm (%url-base): Change to alpha.gnu.org.
* distro/packages/bootstrap.scm (%bootstrap-base-url): Rename to...
  (%bootstrap-base-urls): ... this.  Add alpha.gnu.org as the first
  URL.  Update users.
2013-01-15 11:34:54 +01:00
Nikita Karetnikov
e2034de5d0 licenses: Add 'psfl'.
* guix/licenses.scm (psfl): New variable.
2013-01-15 09:54:38 +01:00
Ludovic Courtès
e117772ddd distro: Add MIT/GNU Scheme and Bigloo.
* distro/packages/scheme.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-15 01:08:00 +01:00
Ludovic Courtès
29c1793dc2 build-system/gnu: Allow the `source' argument to be #f.
* guix/build-system/gnu.scm (gnu-build): Allow SOURCE to be #f.
2013-01-15 01:05:39 +01:00
Ludovic Courtès
f4b60f5f6b daemon: Remove reference to immutable.{cc,hh}, which no longer exist.
* daemon.am (libutil_a_SOURCES): Remove nix/libutil/immutable.cc.
  (libutil_headers): Remove nix/libutil/immutable.hh.  These files were
  removed in Nix commit def5160 (post 1.2).
  Reported by Nikita Karetnikov <nikita@karetnikov.org>.
2013-01-15 00:03:47 +01:00
Ludovic Courtès
5b00f53526 snix: When unable to determine the version number, leave the URI unchanged.
* guix/snix.scm (snix-derivation->guix-package)[pretty-uri]: When
  VERSION is #f, return URI.
2013-01-14 23:45:54 +01:00
Ludovic Courtès
0ec1af59e5 guix-package: Create or diagnose missing profile directory.
Reported by Andreas Enge.

* guix-package.in (%profile-directory): Honor $NIX_STATE_DIR.
  (guix-package)[ensure-default-profile]: Use it.
  [process-actions]: Call it when the `profile' option is
  %CURRENT-PROFILE.
* tests/guix-package.sh: Add installation test with $HOME set, using the
  default profile.
2013-01-14 23:44:58 +01:00
Ludovic Courtès
2a5ab9dceb tests: Use "binutils:lib" as the `guix-package' example.
* tests/guix-package.sh: Use "binutils:lib" instead of "libsigsegv:lib",
  since the latter no longer exists.
2013-01-14 23:33:14 +01:00
Ludovic Courtès
ae9e328800 guix-package: Fix check for ~/.guix-profile existence.
* guix-package.in (guix-package): When testing whether
  %USER-ENVIRONMENT-DIRECTORY exists, use `lstat' instead of
  `file-exists?'.  Reported by Andreas Enge.
2013-01-13 23:47:37 +01:00
Andreas Enge
1ca982808a licenses: Add 'openldap2.8'.
* guix/licenses.scm (openldap2.8): New variable.
2013-01-13 23:18:58 +01:00
Andreas Enge
90a6d47caa distro: Add PARI/GP
* distro/packages/algebra.scm (pari-gp): New variable.
2013-01-13 23:14:28 +01:00
Ludovic Courtès
a53b000c7a Update to Nix 1.3. 2013-01-13 22:27:50 +01:00
Ludovic Courtès
34fcbe3a10 store: In `open-connection', process all the server's stderr.
* guix/store.scm (open-connection): Loop until `process-stderr' returns #t.
2013-01-13 22:27:00 +01:00
Ludovic Courtès
85a8a5f556 distro: openssl: Fix the `license' field.
* distro/packages/openssl.scm: Add renamer for (guix licenses).  Adjust
  accordingly.
2013-01-13 21:58:01 +01:00
Ludovic Courtès
468bdabb56 distro: Add GNU Emacs.
* distro/packages/emacs.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-13 17:12:22 +01:00
Ludovic Courtès
80ba8cc076 doc: Fix typos.
* doc/guix.texi (Setting Up the Daemon): Use "useradd -c" for comments.
  Reported by Andreas Enge.
  (Invoking guix-gc): Fix typo.
2013-01-13 16:37:51 +01:00
Ludovic Courtès
a661e42025 distro: Add GNU Mailutils.
* distro/packages/mailutils.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-13 16:34:41 +01:00
Ludovic Courtès
d5529a9162 distro: expect: Provide the right path to `stty'.
* distro/packages/tcl.scm (expect): Add #:phases argument.
2013-01-13 15:37:01 +01:00
Ludovic Courtès
fa39cc0da6 distro: gnutls: Add dependency on Which.
* distro/packages/gnutls.scm (gnutls): Add dependency on Which.
2013-01-12 23:02:26 +01:00
Ludovic Courtès
fbbb1c0f4c distro: Add GDB.
* distro/packages/gdb.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-12 23:02:07 +01:00
Ludovic Courtès
75abd8ab23 distro: dejagnu: Add expect' in the search path of runtest'.
* distro/packages/dejagnu.scm (dejagnu): In `check' phase, change `PATH'
  in `runtest', to avoid "expect not found in PATH" error.
2013-01-12 23:00:32 +01:00
Ludovic Courtès
39224d94e3 distro: Add MySQL.
* distro/packages/mysql.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-12 22:25:16 +01:00
Ludovic Courtès
fe8ccfcc72 distro: util-linux: Fix `license' field.
* distro/packages/linux.scm (util-linux): Change `license' field to
  refer to the actual license objects.
2013-01-12 16:51:45 +01:00
Ludovic Courtès
e47e3effaf distro: Add procps.
* distro/packages/linux.scm (procps): New variable.
2013-01-12 16:51:16 +01:00
Ludovic Courtès
eb6d676e2a distro: tcl, expect: Enable tests.
* distro/packages/tcl.scm (tcl, expect): Remove #:tests? argument; add
  #:test-target.
2013-01-12 16:24:35 +01:00
Ludovic Courtès
b22a12fda7 doc: Mention store sharing with Nix; update `package' example.
* doc/guix.texi: Set @documentlanguage.
  (Installation): Add reference to `INSTALL' and `README'.
  (Requirements): Mention store sharing with Nix.
  (Defining Packages): Update example to include `use-modules' clauses
  and to use (guix licenses).
2013-01-11 16:16:36 +01:00
Ludovic Courtès
01e354eb83 Merge branch 'core-updates'
Conflicts:
	guix/build/union.scm
2013-01-11 16:01:49 +01:00
Ludovic Courtès
28e5560421 download: Abbreviate URLs when displaying the progress report.
* guix/build/download.scm (uri-abbreviation): New procedure.
  (ftp-fetch, http-fetch): Use it instead of `uri->string' when calling
  `progress-proc'.  Reported by Andreas Enge.
2013-01-11 15:41:58 +01:00
Ludovic Courtès
ab6522aeb0 distro: gawk: Adjust to the libsigsegv output change.
* distro/packages/gawk.scm (gawk): Adjust the libsigsegv with a single
  output.
2013-01-10 22:35:35 +01:00
Ludovic Courtès
f03e7115d7 distro: libsigsegv: Use a single output.
* distro/packages/libsigsegv.scm (libsigsegv): Use just a single output,
  otherwise nothing ends up in `out' as a consequence of commit a06a99f.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-01-10 22:33:35 +01:00
Ludovic Courtès
5fedc65b0f build: Print the Guix system type.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): Print the system type.
2013-01-10 22:18:16 +01:00
Ludovic Courtès
704197f4bf distro: gmp: Update to 5.0.1.
* distro/packages/multiprecision.scm (gmp): Update to 5.0.1.
2013-01-10 00:11:20 +01:00
Ludovic Courtès
4873f8ed9f distro: binutils: Add a "lib" output.
* distro/packages/base.scm (binutils): Add `outputs' field.
2013-01-10 00:09:25 +01:00
Ludovic Courtès
a06a99ff77 build-system/gnu: Improve support for "lib" outputs; support "doc" outputs.
* guix/build/gnu-build-system.scm (configure)[package-name]: New
  procedure.
  When LIBDIR is true and INCLUDEDIR is false, add
  --includedir=LIBDIR/include.
  Add support for --docdir when a "doc" output exists.
2013-01-10 00:08:40 +01:00
Ludovic Courtès
bfe384cc4c doc: Clarify package version specification example.
* doc/guix.texi (Invoking guix-package): Use "guile-1.8.8" as the
  example, not "guile-1.8" since there is no such version.
2013-01-09 22:26:28 +01:00
Ludovic Courtès
c0b3c89f16 Augment `TODO'. 2013-01-09 22:12:23 +01:00
Ludovic Courtès
b2d58cd80a union: Detect collisions, and delete duplicate leaves.
* guix/build/union.scm (delete-duplicate-leaves): New procedure.
  (union-build)[leaf=?, resolve-collision]: New procedures.
  Use `delete-duplicate-leaves' on the result of `tree-union'.
* tests/union.scm ("delete-duplicate-leaves, default",
  "delete-duplicate-leaves, file names"): New tests.
2013-01-09 22:10:06 +01:00
Ludovic Courtès
b9e5c0a949 guix-package: Create ~/.guix-profile when it doesn't exist.
* guix-package.in (guix-package): Create the %USER-ENVIRONMENT-DIRECTORY
  symlink if it doesn't exist yet.
* doc/guix.texi (Invoking guix-package): Document it.
2013-01-09 19:57:44 +01:00
Ludovic Courtès
44b6be7744 guix-package: Show package outputs in `--list-available'.
* guix-package.in (guix-package)[process-query]: For `list-available',
  show the outputs of each package.
* doc/guix.texi (Invoking guix-package): Update accordingly.
2013-01-09 19:26:37 +01:00
Ludovic Courtès
58db733e6d doc: Update copyright years; add visible copyright statement.
* doc/guix.texi (YEARS): New variable.
  Use it for all copyright statements.
  (Top): Add a copyright statement and license header here.
2013-01-09 13:01:48 +01:00
Ludovic Courtès
bd5e766b87 doc: Documentation installation and the daemon.
* doc/guix.texi (Installation): New node.
2013-01-09 12:58:27 +01:00
Ludovic Courtès
2498d43adb daemon: Fix warning message when running as root without a build user group.
* nix/nix-daemon/guix-daemon.cc (main): Fix warning message when running
  as root without `--build-users-group'.
2013-01-09 12:16:26 +01:00
Ludovic Courtès
6221db61f5 guix-daemon: Rename --build-cores' for consistency with guix-build'.
* nix/nix-daemon/guix-daemon.cc (options): Change `--build-cores' to
  `--cores', and `-C' to `-c'.
  (parse_opt): Adjust accordingly.
2013-01-09 12:14:23 +01:00
Ludovic Courtès
784bb1f37b derivations: Fix `derivation-prerequisites-to-build' when outputs are there.
Before it would list inputs not built, even if the outputs of the given
derivation were already available.

* guix/derivations.scm (derivation-prerequisites-to-build): Add
  `outputs' keyword parameter.
  [built?, derivation-built?]: New procedures.
  [loop]: Add `sub-drvs' parameter.  Use `derivation-built?' to check if
  the SUB-DRVS of DRV are built before checking its inputs.
2013-01-09 08:38:57 +01:00
Ludovic Courtès
9149f1a087 doc: Update porting instructions in `HACKING'.
* HACKING (When the platform is supported by Nixpkgs): Update
  instructions.
2013-01-08 22:57:09 +01:00
Ludovic Courtès
98fefb210a gnu-maintenance: Add `latest-release' and related tools.
* guix/gnu-maintenance.scm (ftp-server/directory, releases,
  version-string>?, latest-release, gnu-package-name->name+version): New
  procedures.
  (%package-name-rx): New variable.
2013-01-08 22:46:12 +01:00
Ludovic Courtès
87009d8aa1 guix-package: Use guile-final', not guile-2.0' to build the environment.
* guix-package.in (guix-package): Use either %BOOTSTRAP-GUILE or
  GUILE-FINAL.
2013-01-08 00:05:37 +01:00
Ludovic Courtès
9762706b90 guix-package: Be verbose when Guile itself needs to be built.
* guix-package.in (guix-package)[guile-missing?]: New procedure.
  (guix-package): Always redirect `current-build-output-port' to
  `current-error-port' when (guile-missing?).
2013-01-08 00:04:46 +01:00
Ludovic Courtès
cc57f25d96 guix-package: Remove -b' shorthand for --bootstrap'.
* guix-package.in (%options): Remove #\b as an alternate for
  "bootstrap".
  (show-help): Adjust accordingly.
* tests/guix-package.sh: Use `--bootstrap' instead of `-b'.
2013-01-07 22:54:54 +01:00
Ludovic Courtès
ad85c617b5 snix: Update `license' check in unit test.
* tests/snix.scm ("nixpkgs->guix-package"): Expect `license' to be a
  symbol.  This is a follow-up to commit e7aa73e.
2013-01-07 22:53:46 +01:00
Ludovic Courtès
e7aa73ef09 snix: Use (guix licenses) variables.
* guix/snix.scm (snix-derivation->guix-package)[license-variable]: New
  procedure.
  Use it to determine the variable name for the license.
2013-01-07 22:32:28 +01:00
Ludovic Courtès
ab8ed44fce snix: Gracefully handle `null' in Nix build inputs.
* guix/snix.scm (snix-derivation->guix-package)[convert-inputs]:
  Gracefully handle `null' as an input.
2013-01-07 22:23:50 +01:00
Ludovic Courtès
708d0ceb50 distro: Add GNU Aspell.
* distro/packages/aspell.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-07 21:30:45 +01:00
Ludovic Courtès
4e6b699d50 distro: Add GSL.
* distro/packages/algebra.scm (gsl): New variable.
2013-01-07 21:23:33 +01:00
Ludovic Courtès
27160c856b distro: Add GNU GLOBAL.
* distro/packages/global.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-07 21:12:12 +01:00
Ludovic Courtès
4a219a1a47 distro: Add Tcl, Expect, and DejaGNU.
* distro/packages/dejagnu.scm, distro/packages/tcl.scm: New files.
* Makefile.am (MODULES): Add them.
2013-01-07 21:11:19 +01:00
Ludovic Courtès
b30e4f3f12 distro: bdb: Adjust to lack of /bin/sh.
* distro/packages/bdb.scm (bdb): Pass `CONFIG_SHELL' and `SHELL' to the
  `configure' script.
2013-01-06 18:47:24 +01:00
Ludovic Courtès
2357f85032 Update a few more license headers.
* distro/packages/openssl.scm, m4/guix.m4, nix/sync-with-upstream:
  Update headers.
2013-01-06 18:43:58 +01:00
Ludovic Courtès
e66ca1a5a8 download: Report the progress of HTTP downloads.
* guix/build/download.scm (http-fetch): Rename `bv' to `bv-or-port'.
  Use `http-get*' followed by `dump-port' when the former is available,
  and pass a progress procedure to `dump-port'.
2013-01-06 18:36:50 +01:00
Ludovic Courtès
e47bac7902 download: Report the progress of FTP downloads.
* guix/build/download.scm (progress-proc): New procedure.
  (ftp-fetch): Call `ftp-size' on URI.  Use `progress-proc', and pass
  the result to `dump-port', along with #:buffer-size.
2013-01-06 18:35:23 +01:00
Ludovic Courtès
fb83842efb ftp-client: Add `ftp-size'.
* guix/ftp-client.scm (ftp-size): New procedure.
2013-01-06 18:23:44 +01:00
Ludovic Courtès
a9f8b72ee1 distro: time: Adjust configure' phase to old configure' script.
* distro/packages/time.scm (time): Add `arguments'.
2013-01-06 17:42:59 +01:00
Ludovic Courtès
4050e5d6cf Merge branch 'master' into core-updates
Conflicts:
	build-aux/download.scm
	distro/packages/autotools.scm
	distro/packages/base.scm
	distro/packages/bootstrap.scm
	distro/packages/lsh.scm
	distro/packages/make-bootstrap.scm
	distro/packages/ncurses.scm
	distro/packages/perl.scm
	tests/derivations.scm
	tests/union.scm
2013-01-06 17:33:02 +01:00
Ludovic Courtès
79580eb698 distro: Update bootstrap binaries to an nscd-less libc.
Update bootstrap binaries following changes in commit d3b5972 ("Build
glibc without nscd, and with static NSS modules.")

* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Update hashes.
* build-aux/download.scm (file-name->uri): Update URL.
* distro/packages/bootstrap.scm (%bootstrap-coreutils&co,
  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Update URLs
  and hashes.
2013-01-06 01:16:14 +01:00
Ludovic Courtès
233e76769a Update license headers.
Change all license headers, except guix/build/* and ld-wrapper.scm, with
this code:

  (use-modules (guix build utils)
	       (srfi srfi-1))

  (fluid-set! %default-port-encoding "UTF-8")

  (substitute* (remove (lambda (f)
			 (or (string-contains f ".tar.")
			     (string-contains f ".git/")
			     (string-contains f ".so")
			     (string-suffix? ".o" f)
			     (string-suffix? ".a" f)
			     (string-suffix? ".go" f)
			     (string-suffix? ".pdf" f)
			     (string-suffix? ".png" f)
			     (string-suffix? ".info" f)
			     (equal? (basename f) "guix-daemon")
			     (equal? (basename f) "nix-setuid-helper")
			     (string-contains f "nix-upstream/")
			     (string-contains f "distro/packages/bootstrap/")))
		       (find-files "." "\\.[a-z]+$"))
    (("^([[:graph:]]+) This file is part of Guix." _ comment-start)
     (string-append comment-start " This file is part of GNU Guix."))
    (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
     (string-append comment-start
		    " GNU Guix --- Functional package management for GNU\n"))
    (("^([[:graph:]]+) Guix is " _ comment-start)
     (string-append comment-start " GNU Guix is "))
    (("^([[:graph:]]+) along with Guix." _ comment-start)
     (string-append comment-start " along with GNU Guix."))
    (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
     (string-append comment-start " Copyright ©")))

Change headers using C-style comments manually.
2013-01-06 00:47:50 +01:00
Ludovic Courtès
fe8ff02827 Add `guix-gc'.
* guix-gc.in, tests/guix-gc.sh: New files.
* configure.ac: Output `guix-gc', and make it executable.
* Makefile.am (bin_SCRIPTS): Add `guix-gc'.
  (TESTS): Add `tests/guix-gc.sh'.
* doc/guix.texi (Features): Add xref to "Invoking guix-gc".
  (Invoking guix-gc): New node.
* po/POTFILES.in: Add `guix-gc.in'.
2013-01-06 00:28:06 +01:00
Ludovic Courtès
2646c55b03 guix-build: Make `--root' effective for .drv files too.
* guix-build.in (guix-build)[register-root]: Change first argument to
  `paths', which should be a list of store paths.  Update caller to call
  `derivation-path->output-paths' on DRV.  When `derivations-only?',
  also register root for .drv files.
2013-01-06 00:18:43 +01:00
Ludovic Courtès
7244a5f74e derivations: Add `derivation-path->output-paths'.
* guix/derivations.scm (derivation-path->output-paths): New procedure.
* tests/derivations.scm ("multiple-output derivation"): Test it.
2013-01-05 23:51:13 +01:00
Ludovic Courtès
4155e2a909 Update license headers of builder-side code.
Change license headers with this script:

  (use-modules (guix build utils))

  (fluid-set! %default-port-encoding "UTF-8")

  (substitute* (cons "distro/packages/ld-wrapper.scm"
		     (find-files "guix/build" "\\.scm$"))
    (("^([[:graph:]]+) This file is part of Guix." _ comment-start)
     (string-append comment-start " This file is part of GNU Guix."))
    (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
     (string-append comment-start
		    " GNU Guix --- Functional package management for GNU\n"))
    (("^([[:graph:]]+) Guix is " _ comment-start)
     (string-append comment-start " GNU Guix is "))
    (("^([[:graph:]]+) along with Guix." _ comment-start)
     (string-append comment-start " along with GNU Guix."))
    (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
     (string-append comment-start " Copyright ©")))

* distro/packages/ld-wrapper.scm, guix/build/download.scm,
  guix/build/gnu-build-system.scm, guix/build/union.scm,
  guix/build/utils.scm: Update license headers.
2013-01-05 16:08:07 +01:00
Ludovic Courtès
7584f822bf utils: Add `which'.
* guix/build/utils.scm (which): New procedure.

* distro/packages/lsh.scm (lsh): Use `which' instead of `search-path'.
* distro/packages/perl.scm (perl): Likewise.
* distro/packages/attr.scm (attr): Likewise.
2013-01-05 16:02:32 +01:00
Ludovic Courtès
3441e16497 ui: Factorize bug-report information in `--help'.
* guix/config.scm.in (%guix-home-page-url): New variable.
* guix/ui.scm (show-bug-report-information): New procedure.
* guix-build.in (show-help): Use it.
* guix-download.in (show-help): Likewise.
* guix-import.in (show-help): Likewise.
* guix-package.in (show-help): Likewise.
2013-01-05 15:55:47 +01:00
Ludovic Courtès
312543dcfc distro: make-bootstrap: Add `%bootstrap-tarballs' package.
* distro/packages/make-bootstrap.scm (%bootstrap-tarballs): New
  variable.
2013-01-05 15:46:08 +01:00
Ludovic Courtès
d3b59727fb distro: make-bootstrap: Build glibc without nscd, and with static NSS modules.
* distro/packages/make-bootstrap.scm (%glibc-with-relocatable-system):
  Rename to...
  (%glibc-for-bootstrap): ... this.  Add new configure flags.
2013-01-05 12:41:05 +01:00
Ludovic Courtès
c2d771fd1d distro: make-bootstrap: Make the Coreutils smaller.
* distro/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Remove
  optional dependencies, except Perl; build with "-Os -g0"; disable
  tests.
2013-01-04 18:58:53 +01:00
Ludovic Courtès
fdc78b72f8 distro: make-bootstrap: Fix arguments to gawk.
* distro/packages/make-bootstrap.scm (%static-inputs)[gawk]: Use
  `substitute-keyword-arguments' to preserve the #:phases argument of
  GAWK.
2013-01-04 17:42:59 +01:00
Ludovic Courtès
2f8a123ed3 distro: libtool: Add a "bin" output.
* distro/packages/autotools.scm (libtool): Add a "bin" output.
* distro/packages/base.scm (guile-final): Remove comment about retained
  dependency.
2013-01-02 23:40:56 +01:00
Ludovic Courtès
feddc16c70 distro: ncurses: Don't retain a reference to the bootstrap Bash.
* distro/packages/ncurses.scm (ncurses): Remove #:patch-shebangs?
  argument since it now has no effect.  Simplify PATCH-MAKEFILE-PHASE.
  Add `configure-phase', and use it.
2013-01-02 23:12:27 +01:00
Ludovic Courtès
8ba8aeb74d distro: coreutils: Enable tests; add dependency on ACL and GMP.
* distro/packages/base.scm (coreutils): Set #:parallel-build? #f.  Add
  `patch-shell-references' phase.  Add 'acl', 'gmp', and 'perl' as
  inputs, as suggested by Nikita Karetnikov.
2013-01-02 22:46:26 +01:00
Ludovic Courtès
2ea2baf16c distro: acl: Patch references to /bin/sh.
* distro/packages/acl.scm (acl): Add `patch-makefile-SHELL' phase.
2013-01-02 22:46:24 +01:00
Ludovic Courtès
2aa4fb5f73 distro: gettext: Fix references to /bin/sh.
* distro/packages/gettext.scm (gettext): Add `patch-tests' phase.
2013-01-02 22:46:23 +01:00
Ludovic Courtès
706d0641cf daemon: Show the chroot contents upon `--debug'.
* nix/nix-daemon/guix-daemon.cc (main)[HAVE_CHROOT]: Display the
  contents of `settings.dirsInChroot' at `lvlDebug'.
2013-01-02 18:31:40 +01:00
Andreas Enge
60a290926b distro: Add Berkeley DB.
* distro/packages/bdb.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-02 18:13:07 +01:00
Ludovic Courtès
a974a0be5b distro: openssl: Build shared libraries.
* distro/packages/openssl.scm (openssl): `configure' phase: pass
  "shared --libdir=lib".
2013-01-02 13:48:15 +01:00
Andreas Enge
f9975b5a49 distro: Add OpenSSL.
* distro/packages/openssl.scm: New file.  `patch-tests' phase added by
  Ludovic Courtès.
* Makefile.am (MODULES): Add it.
2013-01-02 13:31:13 +01:00
Ludovic Courtès
bb1ff9aa0a release.nix: Update to new bootstrap Guile tarball.
* release.nix (bootstrap_guile): Update URLs and SHA256.
  (build)[preBuild]: Adjust tarball name.
2013-01-02 12:42:54 +01:00
Andreas Enge
9dc6f288bf distro: Add MIT Kerberos 5.
* distro/packages/mit-krb5.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-02 01:08:51 +01:00
Ludovic Courtès
5501e6b64f daemon: Properly initialize libgcrypt.
* nix/nix-daemon/guix-daemon.cc (main): Call `gcry_check_version'.
2013-01-02 01:07:53 +01:00
Ludovic Courtès
97d3998e7a tests: Adjust to not rely on /bin/sh.
* tests/derivations.scm (%bash): New variable.
  Replace occurrences of "/bin/sh" by %BASH.
* tests/union.scm ("union-build"): Delete duplicates from
  %BOOTSTRAP-INPUTS.
2013-01-02 01:04:37 +01:00
Ludovic Courtès
52b8e5fc30 distro: sed: Patch references to /bin/sh in the test suite.
* distro/packages/base.scm (sed): Add `patch-test-suite' phase.
2013-01-02 01:01:58 +01:00
Ludovic Courtès
46866fadee distro: glibc: Build the statically-linked Bash embedded in glibc.
* distro/packages/base.scm (glibc): Expect "static-bash" to be a
  directory, not a single file.  Call `remove-store-references' on the
  "bash" binary that is copied.  Add an `sh' -> `bash' symlink.  Change
  the "static-bash" input to (static-package bash-light).
  (glibc-final): Rename to...
  (glibc-final-with-bootstrap-bash): ... this.  Change `name' to
  "glibc-intermediate".  Remove #:patch-shebangs? setting.
  (cross-gcc-wrapper): New procedure, with code formerly in
  GCC-BOOT0-WRAPPED.
  (gcc-boot0-wrapped): Use it.
  (static-bash-for-glibc): New variable.
  (glibc-final): Inherit from GLIBC-FINAL-WITH-BOOTSTRAP-BASH, and use
  STATIC-BASH-FOR-GLIBC as the "static-bash" input.
2013-01-01 23:55:40 +01:00
Ludovic Courtès
8cd8e97cb5 distro: glibc: Fix contradicting settings of `BASH_SHELL'.
* distro/packages/base.scm (glibc-final): Remove `ac_cv_path_BASH_SHELL'
  setting.
  (glibc): Set `BASH_SHELL' instead of `ac_cv_path_BASH_SHELL'.
2013-01-01 23:50:52 +01:00
Ludovic Courtès
93b0357575 utils: Use binary I/O primitives for `remove-store-references'.
* guix/build/utils.scm (fold-port-matches)[get-char]: New procedure.
  (remove-store-references): Use `put-u8' and `put-bytevector'.
2013-01-01 23:12:34 +01:00
Ludovic Courtès
4d058c6792 build-system/gnu: Add `static-package'.
* distro/packages/make-bootstrap.scm (static-package): Move to...
* guix/build-system/gnu.scm (static-package): ... here.  New procedure.
2013-01-01 16:55:34 +01:00
Ludovic Courtès
450fb5a6b4 distro: Move lightweight Bash to (distro packages bash).
* distro/packages/make-bootstrap.scm (%bash-static): Move BASH-LIGHT to...
* distro/packages/bash.scm (bash-light): ... here.  New variable.
2013-01-01 16:54:45 +01:00
Ludovic Courtès
b2adb3ae04 build-system/gnu: Add support for the "bin" output.
* guix/build/gnu-build-system.scm (configure): Add support for "bin"
  output.
2013-01-01 16:52:27 +01:00
Ludovic Courtès
03fa275801 build: Avoid error message during make clean' when test-tmp' doesn't exist.
* daemon.am (clean-local): Check whether $(GUIX_TEST_ROOT) exists before
  running `find'.
2012-12-31 13:19:29 +01:00
Ludovic Courtès
bc5bf85fa2 utils: Restore the mtime/atime of patched files.
* guix/build/utils.scm (set-file-time): New procedure.
  (patch-shebang): New `keep-mtime?' parameter; call `set-file-time'
  when it's true.
  (patch-makefile-SHELL): Likewise.
2012-12-31 01:17:43 +01:00
Ludovic Courtès
f678f6d913 distro: bzip2: Patch SHELL' in Makefile-libbz2_so'.
* distro/packages/compression.scm (bzip2): Call `patch-makefile-SHELL'
  in BUILD-SHARED-LIB.
2012-12-31 01:13:04 +01:00
Ludovic Courtès
98ea038b47 distro: libc: Update to 2.17.
* distro/packages/base.scm (glibc): Update to 2.17.
2012-12-31 01:12:09 +01:00
Andreas Enge
6253961de2 build-system/gnu: enable test-target during the check phase
* guix/build-system/gnu.scm: add variable test-target
2012-12-30 22:37:28 +01:00
Andreas Enge
3aa6fab83b distro: Add Libntlm, GNU GSS and GNU SASL.
* distro/packages/gsasl.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-30 17:25:37 +01:00
Andreas Enge
2aaa45b03c distro: automake: Update to 1.12.6.
* distro/packages/autotools.scm (automake): Update to 1.12.6.
2012-12-30 17:07:14 +01:00
Andreas Enge
2ee8edc450 distro: Add GNU Libidn.
* distro/packages/libidn.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-30 17:00:59 +01:00
Andreas Enge
a2745393d2 distro: Update libtasn1 and gnutls.
* distro/packages/gnutls.scm: Update libtasn1 and gnutls.
2012-12-30 16:34:07 +01:00
Ludovic Courtès
380d5decfc distro: attr: Fix references to /bin/sh.
* distro/packages/attr.scm (attr): Add `patch-makefile-SHELL'.  Patch
  `test/run' in `check' phase.
2012-12-21 23:52:48 +01:00
Ludovic Courtès
5a8fd06d01 distro: Add GNU idutils.
* distro/packages/idutils.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-21 22:50:44 +01:00
Andreas Enge
c8911fa395 distro: Add rsync.
* distro/packages/rsync.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-21 22:39:05 +01:00
Ludovic Courtès
c089511288 build-system/gnu: Patch shebangs in all the source; patch SHELL in makefiles.
* guix/build/utils.scm (call-with-ascii-input-file): New procedure.
  (patch-shebang): Use it.
  (patch-makefile-SHELL): New procedure.
* guix/build/gnu-build-system.scm (patch-source-shebangs): Patch all the
  files, not just executables; remove `po/Makefile.in.in' patching.
  (patch-generated-files): Rename to...
  (patch-generated-file-shebangs): ... this.  Patch executables and
  makefiles.
  (%standard-phases): Adjust accordingly.

* distro/packages/autotools.scm (libtool): Remove call to `patch-shebang'.
* distro/packages/base.scm (gcc-4.7): Likewise.
  (guile-final): Remove hack to skip `test-command-line-encoding2'.
* distro/packages/bash.scm (bash): Remove `pre-configure-phase'.
* distro/packages/readline.scm (readline): Likewise.
* distro/packages/ncurses.scm (ncurses): Remove `pre-install-phase'.
2012-12-21 22:31:25 +01:00
Ludovic Courtès
8722e80e82 distro: coreutils: Update to 8.20.
* distro/packages/base.scm (coreutils): Update to 8.20.
2012-12-21 17:59:23 +01:00
Ludovic Courtès
8ffaa93bff distro: guile: Patch (ice-9 popen) to use the right shell.
* distro/packages/guile.scm (guile-2.0): Add `pre-configure'.
* distro/packages/base.scm (guile-final): Adjust to preserve the
  `pre-configure' phase.
2012-12-20 23:07:46 +01:00
Ludovic Courtès
eca63d3df8 build-system/gnu: Patch shebangs after `configure'.
* guix/build/gnu-build-system.scm (patch-generated-files): New
  procedure.
  (%standard-phases): Add it after `configure'.
2012-12-20 23:06:34 +01:00
Ludovic Courtès
4c377e861b build-system/gnu: Report the execution time of each phase.
* guix/build/gnu-build-system.scm (gnu-build): Report the success or
  failure of each phase and its execution time.
2012-12-20 22:31:08 +01:00
Ludovic Courtès
f5b7894942 distro: m4: Patch references to /bin/sh.
* distro/packages/m4.scm (m4): Add `pre-check' phase.
2012-12-20 19:01:14 +01:00
Ludovic Courtès
42ff70e262 distro: libtool: Run test suite in parallel; patch references to /bin/sh.
* distro/packages/autotools.scm (libtool): Add `pre-check' phase.
2012-12-20 19:00:14 +01:00
Ludovic Courtès
530c169561 distro: bash, readline: Patch so that `make' uses the right shell.
* distro/packages/readline.scm (readline): Add `pre-configure-phase' to
  patch `MAKE_SHELL' in `configure.  Move `post-install-phase' body to
  a variable.
* distro/packages/bash.scm (bash): Likewise.
2012-12-20 18:02:07 +01:00
Ludovic Courtès
c20313637f distro: gawk: Use the right shell instead of /bin/sh.
* distro/packages/gawk.scm (gawk): Patch shell file name in io.c.
2012-12-20 17:59:10 +01:00
Andreas Enge
2ed139c42c distro: Add mpfrcx and fplll.
* distro/packages/algebra.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-20 01:43:38 +01:00
Ludovic Courtès
8ccdbaa827 distro: Update guile-final' to not fail during patch-source-shebangs' phase.
* distro/packages/base.scm (guile-final): Add workaround on top of
  GUILE-2.0/FIXED to avoid `patch-source-shebangs' failure on one of the
  source files.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
49f5a21698 distro: ncurses: Patch references to /bin/sh.
* distro/packages/ncurses.scm (ncurses): Add `patch-makefile-phase' and
  `pre-install-phase'.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
a18b4d085b utils: Add a progress' parameter to dump-port'.
* guix/build/utils.scm (dump-port): Add a `progress' keyword parameter.
  Call it after each transfer.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
0f09955213 distro: Update bootstrap binaries.
Use bootstrap binaries that were generated with the `make-bootstrap'
changes introduced in previous commit.

* Makefile.am (nodist_bootstrap_x86_64_linux_DATA,
  nodist_bootstrap_i686_linux_DATA): Change Guile tarball name.
  (distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): New targets.
  (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  Remove.
* build-aux/download.scm (file-name->uri): Use "20121219" directory.
* distro/packages/bootstrap.scm (%bootstrap-guile): Update file name.
  (%bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
  %bootstrap-gcc): Update directory name and hashes.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
5d4fd2671a distro: make-bootstrap: Have libc's functions search for `sh' in $PATH.
* distro/packages/make-bootstrap.scm (%glibc-with-relocatable-system,
  %standard-inputs-with-relocatable-glibc): New variables.
  (%static-inputs)[gawk]: Apply `gawk-shell.patch'.
  [finalize]: New procedure.
  Build all the packages against %STANDARD-INPUTS-WITH-RELOCATABLE-GLIBC.
  (%glibc-stripped): Inherit from %GLIBC-WITH-RELOCATABLE-SYSTEM.
  (%gcc-static, %guile-static): Build against
  %STANDARD-INPUTS-WITH-RELOCATABLE-GLIBC.
* distro/packages/patches/gawk-shell.patch,
  distro/packages/patches/glibc-bootstrap-system.patch: New files.
* Makefile.am (dist_patch_DATA): Add them.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
6e32f6c019 distro: glibc: Add a statically-linked Bash to $out/bin.
* distro/packages/base.scm (glibc): Pass `ac_cv_path_BASH_SHELL' in the
  configure flags.  During the `pre-configure' phase, copy the
  "static-bash" input to $out/bin, and change `system' and `popen' to
  use it instead of /bin/sh.  Add the "static-bash" input.
  Suggested by Shea Levy <shea@shealevy.com> and
  Lluís Batlle i Rossell <viric@viric.name>.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
d6f80f187c distro: gcc: Patch to allow builds without /bin/sh.
* distro/packages/base.scm (gcc-4.7): In `pre-configure' phase, patch
  shebang in `gcc/exec-tool.in'.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
dfb53ee232 distro: ld-wrapper: Use the current Bash instead of /bin/sh.
* distro/packages/ld-wrapper.scm: Use @BASH@ in shebang.  Change module
  name to (gnu build-support ld-wrapper).
* distro/packages/base.scm (ld-wrapper-boot3): Substitute @BASH@.
  (ld-wrapper): Use BASH-FINAL.
2012-12-20 01:38:54 +01:00
Ludovic Courtès
ea8fbbf2f2 distro: make: Change default shell from /bin/sh to the actual shell.
* distro/packages/base.scm (gnu-make): Add `set-default-shell' phase.
  (gnu-make-boot0): Adjust phases accordingly.
2012-12-19 12:34:53 +01:00
Ludovic Courtès
c3ee7448c9 build-system/gnu: Change the order of patch-source-shebangs' and patch'.
* guix/build/gnu-build-system.scm (patch-source-shebangs): Add a newline
  after the "SHELL =" line in po/Makefile.in.in.
  (%standard-phases): Move `patch-source-shebangs' after `patch'.
2012-12-19 00:48:20 +01:00
Ludovic Courtès
45298f8fd2 distro: Linux-Libre: Set $ARCH based on the actual system type.
* distro/packages/linux.scm (linux-libre-headers): Set $ARCH based on
  the `system' keyword argument.
2012-12-19 00:48:13 +01:00
Nikita Karetnikov
5d5c427839 distro: Add Usbutils.
* distro/packages/linux.scm (usbutils): New variable.
2012-12-18 23:04:09 +00:00
Nikita Karetnikov
3b48f78c85 distro: Add Libusb.
* distro/packages/libusb.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-18 22:44:18 +00:00
Ludovic Courtès
325285d581 distro: guile: Switch to 2.0.7.
* distro/packages/guile.scm (guile-2.0/fixed): Alias GUILE-2.0.
2012-12-18 22:16:21 +01:00
Nikita Karetnikov
d8989c2394 distro: Add Check.
* distro/packages/check.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-17 15:26:58 +00:00
Ludovic Courtès
c43e006164 download: Remove unreachable SourceForge mirror.
* guix/download.scm (%mirrors)[sourceforge]: Remove kent.dl.*, which is
  unreachable.
2012-12-17 00:18:15 +01:00
Ludovic Courtès
3c738d6bd8 download: Correctly detect "No route to host" conditions.
* guix/build/download.scm (open-connection-for-uri): Delete addrinfos
  with the same address.  Always open SOCK_STREAM/IPPROTO_IP sockets.
  Fix the error handler's condition to determine what to do.
  Reported by Nikita Karetnikov <nikita.karetnikov@gmail.com> at
  <http://lists.gnu.org/archive/html/bug-guix/2012-12/msg00150.html>.
2012-12-17 00:14:30 +01:00
Ludovic Courtès
868fce7c4a daemon: Gracefully handle Nix errors.
* nix/nix-daemon/guix-daemon.cc (main): Run Nix code in an exception
  handler; gracefully print error messages, and exit with EXIT_FAILURE.
2012-12-16 18:28:00 +01:00
Ludovic Courtès
e2332e8aa7 daemon: Warn against running as root without `--build-users-group'.
* nix/nix-daemon/guix-daemon.cc (main): Recommend using
  `--build-users-group' when running  as root without a build users
  group.
2012-12-16 18:13:59 +01:00
Ludovic Courtès
72ce03739e daemon: Add `--chroot-directory'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_CHROOT_DIR): New macro.
  (options): Add `--chroot-directory'.
  (parse_opt): Handle it.
2012-12-16 18:09:27 +01:00
Ludovic Courtès
d008415219 build-system/gnu: Patch shebangs in executable source files.
This allows many packages to build in a chroot that lacks /bin and
thus /bin/sh.

* guix/build/gnu-build-system.scm (patch-source-shebangs): New
  procedure.
  (%standard-phases): Add it.
* guix/build/utils.scm (executable-file?): New procedure.
* distro/packages/perl.scm (perl): Don't use /bin/sh to run `Configure'.
2012-12-15 16:35:26 +01:00
Ludovic Courtès
c1c94acf32 build-system/gnu: Make the error port line-buffered.
* guix/build/gnu-build-system.scm (gnu-build): Make the error port
  line-buffered.
2012-12-15 16:01:52 +01:00
Ludovic Courtès
74baf333bf utils: Make the buffer size of `dump-port' a parameter.
* guix/build/utils.scm (dump-port): Make `buffer-size' a keyword
  parameter.
2012-12-15 15:54:29 +01:00
Ludovic Courtès
a784c3077e Merge branch 'master' into core-updates
Conflicts:
	distro/packages/multiprecision.scm
2012-12-15 15:28:50 +01:00
Ludovic Courtès
07ab4bf1fc guix-build: Add `--verbosity'.
* guix-build.in (%default-options): Add `verbosity'.
  (%options): Add `--verbosity'.
  (guix-build): Pass it to `set-build-options'.
  (show-help): Update accordingly.
* doc/guix.texi (Invoking guix-build): Document `--verbosity'.
2012-12-15 15:21:38 +01:00
Ludovic Courtès
da30f55582 daemon: Add `--debug' option.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_DEBUG): New macro.
  (options): Add `--debug'.
  (parse_opt): Set `verbosity' upon GUIX_OPT_DEBUG.
2012-12-15 00:06:09 +01:00
Ludovic Courtès
335dd762cc daemon: Disable use of substitutes for now.
* nix/nix-daemon/guix-daemon.cc (main): Set `settings.useSubstitutes' to
  false, and `settings.substituters' to the empty list.
2012-12-14 23:57:33 +01:00
Nikita Karetnikov
4a44e743a0 distro: Use (guix licenses) instead of strings.
* distro/packages/acl.scm, distro/packages/attr.scm,
  distro/packages/autotools.scm, distro/packages/base.scm,
  distro/packages/bash.scm, distro/packages/bdw-gc.scm,
  distro/packages/bison.scm, distro/packages/bootstrap.scm,
  distro/packages/compression.scm, distro/packages/cpio.scm,
  distro/packages/ddrescue.scm, distro/packages/ed.scm,
  distro/packages/flex.scm, distro/packages/gawk.scm,
  distro/packages/gdbm.scm, distro/packages/gettext.scm,
  distro/packages/gnupg.scm, distro/packages/gnutls.scm,
  distro/packages/gperf.scm, distro/packages/guile.scm,
  distro/packages/help2man.scm, distro/packages/less.scm,
  distro/packages/libffi.scm, distro/packages/libsigsegv.scm,
  distro/packages/libunistring.scm, distro/packages/linux.scm,
  distro/packages/lout.scm, distro/packages/lsh.scm,
  distro/packages/m4.scm, distro/packages/multiprecision.scm,
  distro/packages/nano.scm, distro/packages/ncurses.scm,
  distro/packages/nettle.scm, distro/packages/perl.scm,
  distro/packages/pkg-config.scm, distro/packages/pth.scm,
  distro/packages/readline.scm, distro/packages/recutils.scm,
  distro/packages/shishi.scm, distro/packages/system.scm,
  distro/packages/texinfo.scm, distro/packages/time.scm,
  distro/packages/wget.scm, distro/packages/which.scm,
  distro/packages/zile.scm: Use (guix licenses).
2012-12-14 23:37:24 +01:00
Andreas Enge
0d12bea306 build: Avoid brace expansion in `nix/sync-with-upstream'.
* nix/sync-with-upstream: Avoid brace expansion, for the sake of Dash.
2012-12-14 22:12:37 +01:00
Ludovic Courtès
e1b7096acd daemon: Build `nix-setuid-helper'.
* daemon.am (libexec_PROGRAMS, nix_setuid_helper_SOURCES,
  nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): New variables.
* test-env.in: Set and export `NIX_SETUID_HELPER'.
* README (Installing Guix as non-root): New section.
2012-12-14 18:15:37 +01:00
Ludovic Courtès
b3a53fb361 download: Work around (web client) bug <http://bugs.gnu.org/13095>.
* guix/build/download.scm: Annihilate `shutdown' in (web client).
2012-12-14 18:07:10 +01:00
Ludovic Courtès
7f131cf368 distro: Fix incorrect "bash" input for gcc-boot0-wrapped.
* distro/packages/base.scm (gcc-boot0-wrapped): Fix incorrect "bash" input.
2012-12-14 18:04:27 +01:00
Ludovic Courtès
cdec10f936 release.nix: Remove trailing "/nix" from localstatedir.
* release.nix (tarball, build): Use /nix/var as localstatedir, as a
  follow-up to 7f4f065.
2012-12-14 10:44:22 +01:00
Ludovic Courtès
7f4f06513a build: Fix default value of `%state-directory'.
* guix/config.scm.in (%state-directory): Append `/nix'.
  Reported by Andreas Enge <andreas@enge.fr>.
2012-12-13 23:53:37 +01:00
Ludovic Courtès
e2a06ddc7a build: Have `bootstrap' run all the necessary steps.
* bootstrap: Always run "git submodule init".  Run
  `nix/sync-with-upstream'.
  Reported by Nikita Karetnikov and Andreas Enge.
2012-12-13 23:46:33 +01:00
Ludovic Courtès
9d1d434cd0 build-system/gnu: Avoid using /bin/sh.
* guix/build/gnu-build-system.scm (configure): Add `inputs' keyword
  parameter.  Take Bash from there, falling back to /bin/sh.  Set
  `CONFIG_SHELL' and `SHELL' to that Bash.  Run "bash ./configure"
  instead of just "./configure".
* distro/packages/bootstrap.scm (%bootstrap-inputs): Add "bash".
* distro/packages/base.scm (gcc-boot0-wrapped): Use "bash" from
  %BOOT1-INPUTS instead of /bin/sh.
2012-12-13 23:38:32 +01:00
Ludovic Courtès
4aa52039a7 guix-package: Avoid use of the `guix' sub-directory for profiles.
* guix-package.in (%current-profile): Change to `guix-profile'.
2012-12-13 23:02:22 +01:00
Ludovic Courtès
6cb3ccf835 release.nix: tarball: Fix typo.
* release.nix (tarball): Replace "gnulib" by "nix".
2012-12-13 22:57:37 +01:00
Ludovic Courtès
a020d2a996 guix-package: Use directory names from (guix config).
* guix-package.in (%profile-directory): Use %STATE-DIRECTORY instead of
  a hard-coded directory.
2012-12-13 22:57:36 +01:00
Ludovic Courtès
cb1427dd08 release.nix: tarball: Fix typo.
* release.nix (tarball): Replace "gnulib" by "nix".
2012-12-13 22:53:45 +01:00
Ludovic Courtès
53f974fd45 guix-package: Use directory names from (guix config).
* guix-package.in (%profile-directory): Use %STATE-DIRECTORY instead of
  a hard-coded directory.
2012-12-13 22:53:05 +01:00
Andreas Enge
8e1cd71376 distro: mpc: Update to 1.0.1.
* distro/packages/multiprecision.scm (mpc): Update to 1.0.1.
2012-12-13 22:28:46 +01:00
Ludovic Courtès
d7e2841b9d distro: lout: Comment out dependency on Ghostscript.
* distro/packages/lout.scm (lout): Temporarily comment out dependency on
  Ghostscript as this was causing evaluation errors on Hydra.
2012-12-13 22:28:34 +01:00
Ludovic Courtès
1e9824513c Merge branch 'nix-integration'
Conflicts:
	tests/guix-package.sh
2012-12-13 22:14:25 +01:00
Ludovic Courtès
b35c0f866c release.nix: Add `build_disable_daemon'.
* release.nix (build_disable_daemon): New job.
2012-12-13 22:08:33 +01:00
Ludovic Courtès
6a95fa501f release.nix: build: Allow builds within a chroot.
* release.nix (build): Remove `__noChroot' and `preConfigure'.
2012-12-13 22:08:13 +01:00
Ludovic Courtès
ad1ebab379 tests: Skip network-dependent tests when the network is unreachable.
* tests/builders.scm (network-reachable?): New variable.
  ("url-fetch", "gnu-build"): Skip unless NETWORK-REACHABLE?.
* tests/derivations.scm (%coreutils): Check for network access.
  ("build-expression->derivation with one input"): Skip when %COREUTILS
  is #f.
* tests/guix-package.sh: Skip installation of GNU Make when the network
  is unreachable.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/union.scm ("union-build"): Likewise.
2012-12-13 22:06:45 +01:00
Ludovic Courtès
5fb868033f release.nix: Build the daemon.
* release.nix (tarball): Add `preAutoconf'.  Augment `buildInputs' and
  `configureFlags' to allow daemon builds.
  (build): Likewise.
2012-12-13 00:28:51 +01:00
Ludovic Courtès
c9b70836d0 build: Make `--enable-daemon' the default.
* configure.ac: Have $guix_build_daemon default to "yes".
2012-12-13 00:27:27 +01:00
Ludovic Courtès
3a61f8017a build: When `--enable-daemon', don't error out when Nix programs are missing.
* config-daemon.ac: Move AC_ARG_ENABLE([daemon]...)...
* configure.ac: ... here.
  When Nix programs are not found, error out only when
  $guix_build_daemon is no.
2012-12-13 00:26:41 +01:00
Ludovic Courtès
8a9451c89e tests: Arrange to have the socket file name fit in `sun_path'.
* test-env.in (NIX_STATE_DIR): Choose a slightly smaller directory name.
2012-12-13 00:24:27 +01:00
Ludovic Courtès
fdb50f8d8a tests: base32: Work around `system*' bug.
* tests/base32.scm (%nix-hash): When `getenv' returns the empty string,
  ignore it.
  (%have-nix-hash?): New variable.  Update `test-skip' clause to use it.
2012-12-13 00:23:20 +01:00
Ludovic Courtès
a9128eac41 daemon: Use `openssl' from $PATH.
* daemon.am (-DOPENSSL_PATH): Default to "openssl".
* TODO: Mention removal of OpenSSL dependency.
2012-12-12 15:32:35 +01:00
Ludovic Courtès
70915c1a2e guix-package: Add `--verbose'; silence the environment's build by default.
* guix-package.in (%options): Add `--verbose'.
  (show-help): Update accordingly.
  (guix-package): Parameterize `current-build-output-port' according to
  VERBOSE?.  By default, silence the environment build's output.
2012-12-12 14:59:16 +01:00
Ludovic Courtès
ba55b1cb69 doc: Fix typos.
* doc/guix.texi: Fix typos.  Reported by Andreas Enge <andreas@enge.fr>.
2012-12-12 14:46:43 +01:00
Nikita Karetnikov
f15b31c562 licenses: Add 'bsd-style', 'expat', 'gpl1', 'gpl1+', 'lgpl2.0', and 'lgpl2.0+'.
* guix/licenses.scm (bsd-style, expat, gpl1, gpl1+)
  (lgpl2.0, lgpl2.0+): New variables.
2012-12-12 14:40:11 +01:00
Ludovic Courtès
7a6548cbae tests: Remove `t-profile' files on exit.
* tests/guix-package.sh: Use a trap on EXIT to remove profile-related
  files.  Reported by Andreas Enge <andreas@enge.fr>.
2012-12-12 00:10:32 +01:00
Ludovic Courtès
1c67d639d5 guix-package: Gracefully handle multiple installs of the same path.
* guix-package.in (guix-package)[process-actions]: Compute PACKAGES such
  that packages listed in INSTALL* are first removed from the remainder
  of the list.  When PROF is equal to the previous profile's store path,
  do nothing.  Reported by Andreas Enge <andreas@enge.fr>.
* tests/guix-package.sh: Test the behavior of installing the same store
  path twice.  When removing a package, omit its version number.
2012-12-12 00:01:17 +01:00
Ludovic Courtès
a09ec3a5af Have `%nixpkgs-directory' default to #f when $NIXPKGS is the empty string.
* guix/utils.scm (%nixpkgs-directory): Set to #f when the `NIXPKGS'
  environment variable is set but empty.  Reported by
  Andreas Enge <andreas@enge.fr>.
2012-12-10 22:53:28 +01:00
Ludovic Courtès
836676450d distro: lout: Delay use of of `nixpkgs-derivation'.
* distro/packages/lout.scm (lout): Don't fork with `nixpkgs-derivation',
  to avoid any issues in the absence of `nix-instantiate'.
2012-12-10 14:35:03 +01:00
Ludovic Courtès
200dc93761 derivations: Distinguish direct store paths from files within a store path.
* guix/derivations.scm (derivation)[direct-store-path?]: New procedure.
  Use it to determine which inputs must be added to the store.
2012-12-10 00:44:17 +01:00
Ludovic Courtès
4d152bf1d9 Merge branch 'master' into nix-integration
Conflicts:
	guix/store.scm
2012-12-09 23:54:37 +01:00
Ludovic Courtès
3259877d35 store: Add GC-related operations.
* guix/store.scm (gc-action): New enumerate type.
  (read-long-long, read-string-list, write-store-path,
  write-store-path-list, read-store-path-list): New procedures.
  (write-arg): Add support for `store-path' and `store-path-list'.
  (read-arg): Add support for `store-path-list'.
  (define-operation): Add support for multiple-value returns.
  (run-gc, live-paths, dead-paths, collect-garbage, delete-paths): New
  procedures.
  (%long-long-max): New macro.
* tests/store.scm: New file.
* Makefile.am (TESTS): Add it.
2012-12-09 23:52:59 +01:00
Ludovic Courtès
d3648e0118 store: Add `add-temp-root'.
* guix/store.scm (add-temp-root): New procedure.
2012-12-09 23:50:17 +01:00
Ludovic Courtès
2af7e4a373 Update `THANKS'. 2012-12-09 23:35:15 +01:00
Ludovic Courtès
51c8d7909d doc: Correct short name of --install' option of guix-package'.
* doc/guix.texi (Invoking guix-package): Fix short form of `--install'.
  Reported by Andreas Enge <andreas@enge.fr>.
2012-12-09 23:35:03 +01:00
Ludovic Courtès
4ce823c424 daemon: Update to Nix 1.2-1-ge087bfe. 2012-12-09 14:54:01 +01:00
Ludovic Courtès
2d34fa4902 Update `TODO'. 2012-12-09 14:44:17 +01:00
Ludovic Courtès
09c95deb1e Change email address in `AUTHORS'. 2012-12-09 14:42:30 +01:00
Ludovic Courtès
a0f16bb663 Update `AUTHORS'. 2012-12-08 19:21:47 +01:00
Nikita Karetnikov
838d78e3e0 Add (guix licenses).
* guix/licenses.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-08 19:17:02 +01:00
Ludovic Courtès
a4eabecd11 download: Fix the primary Savannah URL.
* guix/download.scm (%mirrors)[savannah]: Use
  "http://download.savannah.gnu.org/releases/" as the primary URL.
2012-12-07 22:32:03 +01:00
Nikita Karetnikov
6ad2697d23 distro: Add ACL.
* distro/packages/acl.scm: New file.  Dependency on Perl added by
  Ludovic.
* Makefile.am (MODULES): Add it.
2012-12-07 22:32:00 +01:00
Nikita Karetnikov
3d282f90f8 distro: Add Attr.
* distro/packages/attr.scm: New file.  Dependency on Perl and
  `patch-shebang' added by Ludovic.
* Makefile.am (MODULES): Add it.
2012-12-07 22:30:32 +01:00
Ludovic Courtès
e9f6d6dd45 doc: Add new dependencies in `README'.
* README (Hacking): Rename to...
  (Requirements): ... this.  Add the daemon's dependencies.
2012-12-06 22:54:10 +01:00
Ludovic Courtès
5c403e3518 daemon: Add more options.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_BUILD_USERS_GROUP,
  GUIX_OPT_CACHE_FAILURES, GUIX_OPT_LOSE_LOGS,
  GUIX_OPT_DISABLE_STORE_OPTIMIZATION, GUIX_OPT_IMPERSONATE_LINUX_26):
  New macros.
  (options)["build-users-group", "cache-failures", "lose-logs",
  "disable-store-optimization", "impersonate-linux-2.6"]: New options.
  (parse_opt): Handle them.
2012-12-06 22:21:45 +01:00
Ludovic Courtès
29833b26eb build: Update skip count in `tests/derivations.scm'.
* tests/derivations.scm: When %STORE if #f, skip 11 tests.
2012-12-06 00:07:17 +01:00
Ludovic Courtès
aca54b395e build: Run distcheck' with --enable-daemon'.
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add `--enable-daemon'.
2012-12-06 00:07:17 +01:00
Ludovic Courtès
351782e2f1 build: Add missing daemon header to the distribution.
* daemon.am (guix_daemon_headers): New variable.
  (noinst_HEADERS): Add it.
2012-12-06 00:07:17 +01:00
Ludovic Courtès
d8eea3d2bc build: Capture configure-time settings in (guix config).
* configure.ac: Compute and substitute `guix_localstatedir'.
* m4/guix.m4: Substitute `guix_system'.
* guix/config.scm.in (%store-directory, %store-directory, %system): New
  variables.
* guix/store.scm (%nix-state-dir): Remove.
  (%default-socket-path): Use %STATE-DIRECTORY as the default.
  (%store-prefix): Use %STORE-DIRECTORY as the default.
* guix/utils.scm (%current-system): Default to %SYSTEM.
2012-12-06 00:07:17 +01:00
Ludovic Courtès
69cfce50db build: Run all the tests against the just-built daemon.
* test-env.in: New file.
* configure.ac: Add it to `AC_CONFIG_FILES' and `commands-exec'.
* config-daemon.ac: Set and substitute `GUIX_TEST_ROOT'.
* Makefile.am (SCM_LOG_COMPILER, SH_LOG_COMPILER): Use it in lieu of
  `pre-inst-env'.
* daemon.am (test_root): Remove
  (AM_TESTS_ENVIRONMENT): Remove `TEST_ROOT'.
  (clean-local): Use $(GUIX_TEST_ROOT); make files writable before
  removing them.guix_test_root
* tests/guix-daemon.sh: Remove `NIX_' variable settings; don't launch
  `guix-daemon'.
2012-12-06 00:07:08 +01:00
Ludovic Courtès
b980f0f9fd tests: Remove hard-coded /nix/store.
* tests/utils.scm ("store-path-package-name"): Use (%store-prefix)
  instead of a hard-coded "/nix/store".
2012-12-05 22:42:11 +01:00
Ludovic Courtès
f5c82e15e0 daemon: Add `list-runtime-roots' script.
* nix/scripts/list-runtime-roots.in: New file.
* config-daemon.ac: Add `AC_CONFIG_FILES' invocation for it.
* daemon.am (nodist_pkglibexec_SCRIPTS): New variable.
  (AM_TESTS_ENVIRONMENT): Define `top_builddir'.
* tests/guix-daemon.sh: Export `NIX_ROOT_FINDER'.
* nix/sync-with-upstream: Substitute the path to the root finder in
  libstore/gc.cc.
2012-12-05 16:29:28 +01:00
Ludovic Courtès
8b15ac6700 daemon: Disable use of chroots when support is lacking.
* nix/nix-daemon/guix-daemon.cc (options)[!HAVE_CHROOT]: Mention that
  `--disable-chroot' has no effect.
  (main)[!HAVE_CHROOT]: Set `useChroot' to false.
2012-12-05 15:22:28 +01:00
Nikita Karetnikov
22189ed117 Add (guix gnu-maintenance).
* guix/gnu-maintenance.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-05 14:56:25 +01:00
Ludovic Courtès
d23077dc5c daemon: Add test.
* daemon.am (test_root, AM_TESTS_ENVIRONMENT): New variables.
  (clean-local): New target.
* tests/guix-daemon.sh: New file.
2012-12-04 23:51:48 +01:00
Ludovic Courtès
2606bbcf91 build: daemon: Add missing feature tests.
* config-daemon.ac: Add feature tests needed for the daemon code.  Taken
  from Nix's `configure.ac'.
2012-12-04 23:51:48 +01:00
Ludovic Courtès
ca8dbb7d4e build: daemon: Remove extraneous quotes in CPP macro `SYSTEM'.
* config-daemon.ac: Remove extraneous quotes in definition of `SYSTEM'.
2012-12-04 23:51:48 +01:00
Ludovic Courtès
0adb527600 daemon: Fix typo in libgcrypt bindings.
* nix/libutil/md5.h (MD5_Final): Pass RESBUF as the first argument to
  `guix_hash_final'.
* nix/libutil/sha1.h (SHA1_Final): Likewise.
* nix/libutil/sha256.h (SHA256_Final): Likewise.
2012-12-04 23:51:48 +01:00
Ludovic Courtès
5f25049e9c Merge branch 'master' into nix-integration 2012-12-04 23:51:31 +01:00
Ludovic Courtès
c7bdb1b9d1 guix-build: Don't connect to the daemon when run with --version' or --help'.
* guix-build.in (%store): Turn into a SRFI-39 parameter.  Update users.
  (guix-build): Set %STORE and call `open-connection' only after
  `parse-options' has been called.
2012-12-04 23:50:20 +01:00
Ludovic Courtès
cd3ded4301 store: Honor $NIX_STORE_DIR and $NIX_STATE_DIR.
* guix/store.scm (%nix-state-dir): Honor $NIX_STATE_DIR.
  (%store-prefix): Honor $NIX_STORE_DIR.
2012-12-04 23:48:21 +01:00
Ludovic Courtès
860a6f1ae0 derivations: Fix erroneous call to `add-to-store' for local files as input.
* guix/derivations.scm (derivation)[inputs]: Fix typo in call to
  `add-to-store'.
* tests/derivations.scm ("derivation with local file as input"): New test.
* tests/packages.scm ("trivial with local file as input"): New test.
2012-12-04 23:46:50 +01:00
Ludovic Courtès
3036a01ff7 Augment `TODO'. 2012-12-04 22:04:03 +01:00
Ludovic Courtès
18d50d7621 distro: Add GNU lsh.
* distro/packages/lsh.scm,
  distro/packages/patches/lsh-guile-compat.patch:
  distro/packages/patches/lsh-no-root-login.patch:
  distro/packages/patches/lsh-pam-service-name.patch: New files.
* Makefile.am (MODULES): Add lsh.scm.
  (dist_patch_DATA): Add the above patches.
2012-12-04 22:03:21 +01:00
Nikita Karetnikov
02b80c3f65 distro: Add util-linux.
* distro/packages/linux.scm (util-linux): New variable.
2012-12-04 17:46:56 +01:00
Ludovic Courtès
686f14e8a4 distro: Add psmisc.
* distro/packages/linux.scm (psmisc): New variable.
2012-12-04 00:17:49 +01:00
Ludovic Courtès
b49ffe2d67 build: Add bootstrap' and sync-with-upstream' scripts.
* bootstrap, nix/sync-with-upstream: New files.
* Makefile.am (EXTRA_DIST): Add `bootstrap'.
* daemon.am (EXTRA_DIST): Add `nix/sync-with-upstream'.
2012-12-03 23:05:11 +01:00
Ludovic Courtès
e05385192c build: Add Nix as a sub-module.
* .gitmodules, nix-upstream: New files.
2012-12-03 23:05:11 +01:00
Ludovic Courtès
c2033df432 build: Include a copy of Nix's libstore and daemon; build it.
* configure.ac: Call `AC_USE_SYSTEM_EXTENSIONS', and
  `GUIX_SYSTEM_TYPE'.  Add `--with-store-dir' option, and substitute
  `storedir'.  Include `config-daemon.ac'.
* config-daemon.ac: New file.
* Makefile.am [BUILD_DAEMON]: Include `daemon.am'.
* daemon.am: New file.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): New macro.

* nix/libutil/gcrypt-hash.cc, nix/libutil/gcrypt-hash.hh,
  nix/libutil/md5.h, nix/libutil/sha1.h, nix/libutil/sha256.h,
  nix/nix-daemon/guix-daemon.cc, nix/nix-daemon/shared.hh: New files.
2012-12-03 23:05:08 +01:00
Ludovic Courtès
7eba5e6361 distro: make-bootstrap: Use `linux' module.
* distro/packages/make-bootstrap.scm: Use (distro packages linux).  This
  is a followup to 80fe5c6.
2012-12-02 22:32:09 +01:00
Ludovic Courtès
967305e88b distro: gnutls: Build sequentially.
* distro/packages/gnutls.scm (gnutls)[arguments]: New field.
2012-12-01 00:59:08 +01:00
Ludovic Courtès
3af4e05304 distro: guile-2.0: Update to 2.0.7.
* distro/packages/guile.scm (guile-2.0): Switch to 2.0.7.
  (guile-2.0/fixed): Stay at 2.0.6.
2012-11-30 22:01:47 +01:00
Ludovic Courtès
fa29b19988 distro: Add `guile-2.0/fixed', which should rarely change.
* distro/packages/guile.scm (guile-2.0/fixed): New variable.
* distro/packages/base.scm (guile-final): Use it.
2012-11-30 21:37:41 +01:00
Nikita Karetnikov
6b345e06cd distro: Import 'gettext' under a different name.
* distro/packages/nano.scm, distro/packages/wget.scm: Import 'gettext'
  from (distro packages gettext) under 'guix:gettext'.
2012-11-28 00:27:44 +01:00
Ludovic Courtès
80fe5c6046 distro: linux-libre-headers: Move to (distro packages linux).
* distro/packages/base.scm (linux-libre-headers): Move to...
* distro/packages/linux.scm (linux-libre-headers): ... here.
2012-11-27 22:04:57 +01:00
Ludovic Courtès
fd76c904c7 distro: Add Linux-PAM.
* distro/packages/linux.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-27 21:56:37 +01:00
Ludovic Courtès
b40b259f12 download: Add kernel.org mirrors.
* guix/download.scm (%mirrors): Add `kernel.org' mirrors.
2012-11-27 21:55:53 +01:00
Ludovic Courtès
480943dd46 download: Keep only one slash when concatenating URIs.
* guix/build/download.scm (url-fetch)[uri-vicinity]: New procedure.
  [maybe-expand-mirrors]: Use it.
2012-11-27 21:33:54 +01:00
Ludovic Courtès
5321f74f23 distro: flex: Fix module name.
* distro/packages/flex.scm: Change the module name to (distro packages
  flex).
2012-11-27 21:33:00 +01:00
Nikita Karetnikov
501b16750a distro: Add GNU Cpio.
* distro/packages/cpio.scm,
  distro/packages/patches/cpio-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add 'cpio.scm'.
  (dist_patch_DATA): Add 'cpio-gets-undeclared.patch'.
2012-11-25 22:45:55 +01:00
Nikita Karetnikov
b147f59f41 distro: Add GNU Time.
* distro/packages/time.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 22:42:34 +01:00
Nikita Karetnikov
6e6979c6f1 distro: Add GNU Which.
* distro/packages/which.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 22:41:38 +01:00
Ludovic Courtès
bdd7eb270d build: Have `hydra.scm' return one job per package.
* hydra.scm (hydra-jobs): Return one job for each non-bootstrap package.
2012-11-25 17:12:46 +01:00
Ludovic Courtès
52bda18abf packages: Add missing export.
* guix/packages.scm: Export `package-home-page'.
2012-11-25 16:55:35 +01:00
Ludovic Courtès
0b3651bc93 distro: Search bootstrap binaries and patches in %LOAD-PATH.
* Makefile.am (patchdir, bootstrapdir): Change to be sub-directories of
  $(guilemoduledir).
  (.scm.go): Remove `DISTRO_' environment variables.
* distro.scm (not-colon): Remove.
  (%patch-path, %bootstrap-binaries-path): Default to sub-directories of
  the entries in %LOAD-PATH.
* pre-inst-env.in: Remove definition of `DISTRO_' environment variables.
2012-11-25 16:28:52 +01:00
Nikita Karetnikov
fe7777c14b distro: Add GNU Less.
* distro/packages/less.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 16:08:10 +01:00
Nikita Karetnikov
7f40d97d88 distro: Add GNU Nano.
* distro/packages/nano.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 16:08:10 +01:00
Ludovic Courtès
c80e7e55b3 doc: Mention the pronunciation of "Guix".
* README: Mention pronunciation of "Guix".
* doc/guix.texi (Introduction): Likewise.
2012-11-25 16:08:10 +01:00
Nikita Karetnikov
da7b042dd9 distro: Add GNU Wget.
* distro/packages/wget.scm: New file; patch-shebang phase added by
  Ludovic Courtès.
* Makefile.am (MODULES): Add it.
2012-11-25 16:08:06 +01:00
Nikita Karetnikov
034cb8e781 distro: Add GNU Ddrescue.
* distro/packages/ddrescue.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-24 16:14:39 +01:00
Ludovic Courtès
a65e3306d1 doc: Update `README'.
* README: Update introductory summary.  Point to Savannah instead of
  Gitorious.  Mention <bug-guix@gnu.org>.
  (Guix & Nix): New section.
2012-11-24 15:20:05 +01:00
Nikita Karetnikov
f190f92f91 distro: Add GNU Gettext.
* distro/packages/gettext.scm,
  distro/packages/patches/gettext-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add 'gettext.scm'.
  (dist_patch_DATA): Add 'gettext-gets-undeclared.patch'.
2012-11-24 00:52:16 +01:00
Ludovic Courtès
ec5288609b build: Change bug-report address; add URL.
* configure.ac: Change bug-report address in `AC_INIT'; add URL.
2012-11-24 00:36:36 +01:00
Nikita Karetnikov
5b2fd61868 distro: Add GNU Shishi.
* distro/packages/shishi.scm,
  distro/packages/patches/shishi-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add 'shishi.scm'.
  (dist_patch_DATA): Add 'shishi-gets-undeclared.patch'.
2012-11-24 00:35:33 +01:00
Nikita Karetnikov
36d4d49e69 distro: Move (distro packages libtool) to (distro packages autotools).
* distro/packages/autotools.scm (libtool): Add it.
* distro/packages/libtool.scm: Remove it.
* distro/packages/guile.scm (distro packages guile): Adjust accordingly.
* Makefile.am (MODULES): Adjust accordingly.
2012-11-22 22:37:20 +01:00
Nikita Karetnikov
80ffc7082c distro: Add GNU Autoconf and GNU Automake.
* distro/packages/autotools.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-22 22:30:50 +01:00
Ludovic Courtès
e2b2c46693 distro: Add Flex.
* distro/packages/flex.scm,
  distro/packages/patches/flex-bison-tests.patch: New files.
* Makefile.am (MODULES): Add `flex.scm'.
  (dist_patch_DATA): Add `flex-bison-tests.patch'.
2012-11-22 18:22:48 +01:00
Ludovic Courtès
cf153fc472 distro: Add GNU Bison.
* distro/packages/bison.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-22 17:57:37 +01:00
Ludovic Courtès
30c40755fc distro: Add GDBM.
* distro/packages/gdbm.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-22 17:56:35 +01:00
Nikita Karetnikov
0aa94f0ca4 distro: Add GNU Ed.
* distro/packages/ed.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-21 17:02:17 +01:00
Ludovic Courtès
3dc1970dda doc: Document basic package definitions.
* doc/guix.texi (Programming Interface): Add introduction.
  (Defining Packages): Populate.
2012-11-21 15:56:43 +01:00
Ludovic Courtès
dce3a40bae build: Fix `hydra.scm' recipe.
* hydra.scm: Redirect the output port to the error port.
  (package-job): Return a name/thunk pair.
  (hydra-jobs)[system]: Use either the `system' key (a symbol) in
  ARGUMENTS, or (%current-system)'.
2012-11-21 00:57:47 +01:00
Ludovic Courtès
5075e28305 guix-package: Extract version strings when installing a direct store path.
* guix-package.in (guix-package)[process-actions]: Extract the version
  string from store paths.
* tests/guix-package.sh: Adjust accordingly.
2012-11-19 23:53:32 +01:00
Ludovic Courtès
ef1ee6b221 guix-build: Use `location->string'.
* guix-build.in (derivations-from-package-expressions): Use
  `location->string'.
2012-11-19 23:41:17 +01:00
Ludovic Courtès
d9d0536340 guix-package: Record the correct version string in manifests.
* guix-package.in (guix-package)[find-package]: Return (package-version p),
  not VERSION.
2012-11-19 23:21:54 +01:00
Ludovic Courtès
64fc89b6ec guix-package: Add `--list-available'.
* guix-package.in (show-help, %options): Add `--list-available'.
  (guix-package)[process-query]: Add support for `--list-available'.
* doc/guix.texi (Invoking guix-package): Document it.
* tests/guix-package.sh: Add test.

* guix/ui.scm (location->string): New procedure.
* guix/utils.scm: Export <location>.
2012-11-19 23:04:38 +01:00
Ludovic Courtès
ba326ce41b distro: Add `fold-packages'.
* distro.scm (fold-packages): New procedure.
  (find-packages-by-name): Use it instead of hand-written traversal;
  remove `package?' checks from `right-package?'.
* tests/packages.scm ("fold-packages"): New test.
2012-11-19 23:04:38 +01:00
Ludovic Courtès
733b4130d7 guix-package: Add `--list-installed'.
* guix-package.in (show-help, %options): Add `--list-installed'.
  (guix-package): Move main body to...
  [process-actions]: ... here.  New internal procedure.
  [process-query]: New procedure.
* tests/guix-package.sh: Add tests for `--list-installed'.
* doc/guix.texi (Invoking guix-package): Document it.
2012-11-19 23:04:35 +01:00
Ludovic Courtès
c6f09dfade guix-package: Fix typo.
* guix-package.in (guix-package)[find-package]: Don't use `_' as the
  wildcard, to avoid collision with `gettext'.
2012-11-19 22:19:26 +01:00
Ludovic Courtès
fb9821f023 distro: Add GNU Zile.
* distro/packages/zile.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-19 21:46:31 +01:00
Ludovic Courtès
cc8e5e25b4 distro: Add GNU help2man.
* distro/packages/help2man.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-19 21:42:11 +01:00
Ludovic Courtès
1df895b00b distro: Add GNU Pies and GNU Inetutils.
* distro/packages/system.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-18 18:42:29 +01:00
Ludovic Courtès
8c0e5b1e87 build: Add `hydra.scm'.
* hydra.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-11-18 18:35:26 +01:00
Ludovic Courtès
b6dd891c1c doc: Add `ROADMAP'.
* ROADMAP: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-11-18 17:56:02 +01:00
Ludovic Courtès
6b8875c838 doc: Add `TODO'.
* TODO: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-11-18 17:45:48 +01:00
Ludovic Courtès
d38487e9ca doc: Add a "Related software" section to `README'.
* README (Related software): New section.
2012-11-18 15:25:01 +01:00
Ludovic Courtès
f8348b91ad Turn Guix into "GNU Guix".
* configure.ac: Change package name to "GNU Guix", and bug-report
  address to `gnu-system-discuss@gnu.org'.
* doc/guix.texi: Replace "Guix" by "GNU Guix" in some places.
  (Top, Introduction): Mention "for the GNU system".
* HACKING, README: Use "GNU Guix" instead of "Guix" in some places.
2012-11-18 15:22:00 +01:00
Ludovic Courtès
68c141f144 distro: Rebuild bootstrap Binutils and GCC.
These new binaries are built with the `--with-lib-path' and
`--with-local-prefix' flags, respectively, as introduced in commit
01d4540.

* distro/packages/bootstrap.scm (%bootstrap-coreutils&co,
  %bootstrap-glibc): Update URL.
  (%bootstrap-binutils, %bootstrap-gcc): Update URL and hashes.
* build-aux/download.scm (file-name->uri): Update URL.
2012-11-16 00:26:34 +01:00
Ludovic Courtès
01d45404f6 distro: Configure ld and GCC to not look under /usr & co.
This fixes impurities with non-chroot builds on LFS-style distros.

* distro/packages/base.scm (binutils): Pass `--with-lib-path'.
  (gcc-4.7): Pass `--with-local-prefix'.
* distro/packages/make-bootstrap.scm (%binutils-static): Pass
  `--with-lib-path'.
2012-11-16 00:23:06 +01:00
Ludovic Courtès
ec4d308a9e guix-download: Use code from (guix build download).
* guix-download.in (http-fetch, ftp-fetch): Remove.
  (fetch-and-store): Replace `uri' parameter with `name', for the output
  file name.  Redirect the output of `fetch' to the error port.
  (guix-download): Call `url-fetch' for all URI schemes except `file'.
  Handle PATH equal to #f.
* guix/download.scm: Export `%mirrors'.
* tests/guix-download.sh: Change erroneous URL, because URLs at
  example.com are all valid redirections.
2012-11-13 23:04:21 +01:00
Ludovic Courtès
352ec143de guix-download: Add support for file:// URIs.
* guix-download.in (fetch-and-store): New procedure.
  (guix-download): Use it to compute PATH.  Call `add-to-store' when
  a `file' URI scheme is used.
* Makefile.am (AM_TESTS_ENVIRONMENT): New variable.
* tests/guix-download.sh: Add test.
2012-11-13 22:58:43 +01:00
Ludovic Courtès
ecdb81e159 guix-download: Gracefully handle invalid URIs.
* guix-download.in (guix-download): Error out when `string->uri'
  returns #f.  Use `leave' when the scheme is unknown.
* tests/guix-download.sh: Add tests.
2012-11-13 22:15:59 +01:00
Ludovic Courtès
db32c281dd distro: Add GNU Texinfo.
* distro/packages/texinfo.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:46:10 +01:00
Ludovic Courtès
7543f8653b distro: Add GNU Libtasn1 and GnuTLS.
* distro/packages/gnutls.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:44:57 +01:00
Ludovic Courtès
2e65982725 distro: Add GNU Nettle.
* distro/packages/nettle.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:43:30 +01:00
Ludovic Courtès
c6eac7616c distro: Add LZO.
* distro/packages/compression.scm (lzo): New variable.
2012-11-13 21:42:12 +01:00
Ludovic Courtès
92b8d1ea8b tests: Make sure to use the bootstrap Guile.
* tests/builders.scm ("url-fetch", "gnu-build"): Pass `url-fetch'
  #:guile %BOOTSTRAP-GUILE.
2012-11-13 00:40:29 +01:00
Ludovic Courtès
1dfb715df0 tests: Remove extraneous test.
* tests/derivations.scm ("build-expression->derivation for fixed-output
  derivation"): Remove test.  It is redundant with that in builders.scm,
  and doesn't work out of the box with the statically-linked
  %BOOTSTRAP-GUILE.
2012-11-13 00:34:56 +01:00
Ludovic Courtès
671d8f5e6f build: Add $(top_builddir) to the load path.
* Makefile.am (DOWNLOAD_FILE): Add $(top_builddir) to the search path,
  since that's where guix/config.scm is.
  (.scm.go): Likewise.
2012-11-13 00:33:43 +01:00
Ludovic Courtès
25608d640a distro: Patch libc to avoid accessing /etc/ld.so.cache and friends.
* distro/packages/base.scm (glibc): Apply `glibc-no-ld-so-cache.patch'.
  (glibc-final): Inherit GLIBC's inputs.
* distro/packages/patches/glibc-no-ld-so-cache.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
0db342a590 distro: Use `mirror://' URLs.
* distro/packages/base.scm, distro/packages/bash.scm,
  distro/packages/compression.scm, distro/packages/gawk.scm,
  distro/packages/gperf.scm, distro/packages/guile.scm,
  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
  distro/packages/libunistring.scm, distro/packages/m4.scm,
  distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
  distro/packages/pth.scm, distro/packages/readline.scm,
  distro/packages/recutils.scm: Use `mirror://gnu' URLs.
* distro/packages/gnupg.scm: Use `mirror://gnupg' URLs.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
94d222ad97 download: Add support for mirror:// URLs.
* guix/download.scm (%mirrors): New variable.  Mirror lists taken from
  Nixpkgs.
  (url-fetch): New `mirrors' keyword parameter.
  [builder]: Pass it.

* guix/build/download.scm (url-fetch): New `mirrors' keyword parameter.
  [maybe-expand-mirrors]: New procedure.
  [uri]: Use it.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
270246defe download: Follow HTTP redirections.
* guix/build/download.scm (http-fetch): Follow the redirection when CODE
  is 302.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
87f5d36630 Remove (guix http) and (guix ftp).
* guix/ftp.scm, guix/http.scm, guix/build/ftp.scm, guix/build/http.scm:
  Remove.
* Makefile.am (MODULES): Likewise.
* tests/builders.scm, distro/packages/base.scm,
  distro/packages/bash.scm, distro/packages/bdw-gc.scm,
  distro/packages/compression.scm, distro/packages/gawk.scm,
  distro/packages/gnupg.scm, distro/packages/gperf.scm,
  distro/packages/guile.scm, distro/packages/libffi.scm,
  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
  distro/packages/libunistring.scm, distro/packages/lout.scm,
  distro/packages/m4.scm, distro/packages/multiprecision.scm,
  distro/packages/ncurses.scm, distro/packages/perl.scm,
  distro/packages/pkg-config.scm, distro/packages/pth.scm,
  distro/packages/readline.scm, distro/packages/recutils.scm: Use
  `url-fetch' instead of `http-fetch' and `ftp-fetch'.
* distro/packages/bootstrap.scm: Likewise
  (bootstrap-origin): Remove references to `http-fetch' and
  `ftp-fetch'.
* guix.scm (%public-modules): Remove `http' and `ftp'; add `download'.
2012-11-13 00:23:39 +01:00
Ludovic Courtès
62cab99c32 Add (guix download) and (guix build download).
* guix/download.scm, guix/build/download.scm: New files.
* Makefile.am (MODULES): Add them.
* tests/builders.scm ("url-fetch"): New test.
* distro/packages/bootstrap.scm (bootstrap-origin): Support
  `url-fetch'.
* guix/snix.scm (snix-derivation->guix-package): Use `url-fetch' instead
  of `http-fetch'.
2012-11-12 23:35:04 +01:00
Ludovic Courtès
ddc29a782e Move base32 code to (guix base32).
* guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right,
  bytevector-quintet-length, bytevector-quintet-fold,
  bytevector-quintet-fold-right, make-bytevector->base32-string,
  %nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string,
  bytevector->nix-base32-string, bytevector-quintet-set!,
  bytevector-quintet-set-right!, base32-string-unfold,
  base32-string-unfold-right, make-base32-string->bytevector,
  base32-string->bytevector, nix-base32-string->bytevector): Move to...
* guix/base32.scm: ... here.  New file.

* tests/utils.scm (%nix-hash, "bytevector->base32-string",
  "base32-string->bytevector", "nix-base32-string->bytevector", "sha256
  & bytevector->base32-string"): Move to...
* tests/base32.scm: ... here.  New file

* guix-download.in, guix/derivations.scm, guix/packages.scm,
  guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust
  accordingly.
* guix.scm (%public-modules): Add `base32'.
2012-11-11 22:33:28 +01:00
Ludovic Courtès
9e782349fe tests: Choose a less expensive test for packages.
* tests/packages.scm (%bootstrap-inputs): Remove.
  ("GNU Hello"): Rename to...
  ("GNU Make, bootstrap"): ... this.  Build GNU-MAKE-BOOT0 instead of
  HELLO.
2012-11-09 23:59:11 +01:00
Ludovic Courtès
cfeb75954a http: Add informative output.
* guix/build/http.scm (http-fetch): Emit message indicating the
  download.
2012-11-09 00:21:18 +01:00
Ludovic Courtès
e722af7522 http: Check the HTTP response code, and bail if not 200.
* guix/build/http.scm (http-fetch): Check RESP's code; error out when
  it's not 200.
2012-11-09 00:19:20 +01:00
Ludovic Courtès
7bdd1f0e3c derivations: build-expression->derivation: Builder only refers to sources.
* guix/derivations.scm (build-expression->derivation)[source-path]: New
  procedure.
  [builder]: Pass only sources as references.  This fixes a bug whereby
  changing a fixed-output drv referred to by a builder would cause the
  builder's hash to change, thereby leading to a full rebuild.
* tests/derivations.scm ("build-expression->derivation with a
  fixed-output input"): New test.
2012-11-09 00:07:10 +01:00
Ludovic Courtès
813986ac09 derivations: Add tests relative to fixed-output derivations.
* tests/derivations.scm ("fixed-output derivation"): Add comment that
  the reference to BUILDER is optional.
  ("fixed-output derivation: output paths are equal",
  "derivation with a fixed-output input",
  "build-expression->derivation: same fixed-output path"): New tests.
2012-11-08 23:55:12 +01:00
Ludovic Courtès
c4c7406b90 store: Document add-to-store' hack for fixed?'.
* guix/store.scm (add-to-store): Document that `fixed?' must be #t.
2012-11-08 00:26:13 +01:00
Ludovic Courtès
a3aa25f83d guix-download: Print the hash of the file's contents, no that of the path.
* guix-download.in (guix-download): Display the hash of the contents of
  PATH, not the path hash.  Also, call `add-to-store' with FIXED? = #t.
2012-11-08 00:25:26 +01:00
Ludovic Courtès
37d19403e7 guix-download: Error out when the HTTP response code is not 200.
* guix-download.in (http-fetch): Leave with an error message when
  RESPONSE's code is not 200.

* tests/guix-download.sh: New file.
* Makefile.am (TESTS): Add it.
2012-11-08 00:13:25 +01:00
Ludovic Courtès
912209ee61 guix-build: Error out when `-S' used for source-less package.
* guix-build.in (derivations-from-package-expressions): Leave with an
  error message when SOURCE? is #t and P has no source.

* tests/guix-build.sh: Add test.
2012-11-07 23:44:38 +01:00
Ludovic Courtès
eeaf44276c doc: Document the features and `guix-package'.
* doc/guix.texi: Change the category to "Package management".  Add an
  @direntry for "Invoking guix-package".
  (Package Management): New chapter.
2012-11-07 19:27:42 +01:00
Ludovic Courtès
9518856b9b guix-package: Fix handling of the PACKAGE:OUTPUT syntax.
* guix-package.in (guix-package)[find-package]: Return the correct NAME
  and SUB-DRV when NAME contains #\:.

* tests/guix-package.sh (profile): Add test.
2012-11-07 19:14:22 +01:00
Ludovic Courtès
1227fabb65 guix-package: Fix invalid module use.
* guix-package.in: Use (distro packages guile), not (... base).
2012-11-07 19:13:10 +01:00
Ludovic Courtès
74fe2df2ad build: Remove now unnecessary dependency of downloads on guix/utils.go.
* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  Remove dependency on guix/utils.go.
2012-11-07 18:00:16 +01:00
Ludovic Courtès
c78bd12b44 doc: Document `guix-build'.
* doc/guix.texi (Invoking guix-build): Populate.
2012-11-07 17:07:15 +01:00
Ludovic Courtès
d3c9a1dae8 doc: Remove unnecessary @ifinfo.
* doc/guix.texi: Remove @ifinfo around @dir{category,entry}.  Suggested
  by Karl Berry <karl@freefriends.org>.
2012-11-07 16:45:11 +01:00
Ludovic Courtès
8ba60d7b65 distro: Move bootstrap tarball packages to (distro packages make-bootstrap).
* distro/packages/base.scm (binutils-final): Make public.
  (static-package, %bash-static, %static-inputs, %static-binaries,
  %binutils-static, %binutils-static-stripped, %glibc-stripped,
  %gcc-static, %gcc-stripped, %guile-static, %guile-static-stripped,
  tarball-package, %bootstrap-binaries-tarball,
  %binutils-bootstrap-tarball, %glibc-bootstrap-tarball,
  %guile-bootstrap-tarball): Move to...
* distro/packages/make-bootstrap.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2012-11-06 22:55:44 +01:00
Ludovic Courtès
ce1ef15b25 distro: bash-final: Link with `-static-libgcc'.
* distro/packages/base.scm (bash-final): Pass through
  `static-libgcc-package'.
2012-11-05 23:51:43 +01:00
Ludovic Courtès
53dcd5eea1 build-system/gnu: Add `static-libgcc-package' & supporting procedure.
* guix/build-system/gnu.scm (package-with-extra-configure-variable,
  static-libgcc-package): New procedures.
2012-11-05 23:51:09 +01:00
Ludovic Courtès
bca114d528 distro: gcc: Don't add a RUNPATH to GCC when using `-static-libgcc'.
* distro/packages/base.scm (gcc-4.7)[LIB_SPEC]: Add a `-rpath' to GCC
  only when !static and !static-libgcc.
2012-11-05 23:51:07 +01:00
Ludovic Courtès
4500581a7c distro: readline: Allow stripping of the libraires.
* distro/packages/readline.scm (readline)[arguments]: Add `post-install'
  phase to make libraries writable.
2012-11-05 23:51:01 +01:00
Ludovic Courtès
0af2c24ef7 utils: Add default-keyword-arguments' and substitute-keyword-arguments'.
* distro/packages/base.scm (default-keyword-arguments,
  substitute-keyword-arguments): Move to...
* guix/utils.scm: ... here.
2012-11-05 23:50:57 +01:00
Ludovic Courtès
a48dddfe9c distro: Add missing `package-with-bootstrap-guile'.
* distro/packages/base.scm (binutils-final): Add missing
  `package-with-bootstrap-guile'.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
d1acf1fd4a distro: recutils: Comment out optional dependencies.
* distro/packages/recutils.scm (recutils): Comment out optional
  dependencies not packaged here.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
8d1939e4d0 distro: Add GnuPG and companion libraries.
* distro/packages/gnupg.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
6a92093dcd distro: Add zlib.
* distro/packages/compression.scm (zlib): New variable.
2012-11-05 00:28:37 +01:00
Ludovic Courtès
a268f085db distro: Add (distro packages compression).
* distro/packages/base.scm (gzip, bzip2, xz): Move to...
* distro/packages/compression.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2012-11-04 23:16:58 +01:00
Ludovic Courtès
d373e57ea3 distro: Add GNU Pth.
* distro/packages/pth.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-04 23:08:44 +01:00
Ludovic Courtès
1627f7f733 distro: Add GNU gperf.
* distro/packages/gperf.scm: New file.
* Makefile.am (MODULES): Add it.
* distro/packages/guile.scm (guile-reader): Use it.
2012-11-04 22:55:59 +01:00
Ludovic Courtès
c44899a28b distro: Split (distro packages base) into several files.
* distro/packages/base.scm (libsigsegv, gawk, perl, m4, gmp, mpfr, mpc,
  ncurses, readline, bash, libtool, libunistring, libffi, pkg-config,
  libgc): Move to modules of their own.
  (guile-1.8, guile-2.0): Move to...
* distro/packages/guile.scm: ... here.

* distro/packages/bash.scm, distro/packages/bdw-gc.scm,
  distro/packages/gawk.scm, distro/packages/libffi.scm,
  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
  distro/packages/libunistring.scm, distro/packages/m4.scm,
  distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
  distro/packages/perl.scm, distro/packages/pkg-config.scm,
  distro/packages/readline.scm: New files.
2012-11-04 22:37:22 +01:00
Ludovic Courtès
18633d4f35 distro: Move bootstrap packages to (distro packages bootstrap).
* distro/packages/base.scm (glibc-dynamic-linker, %bootstrap-guile,
  bootstrap-origin, package-from-tarball, %bootstrap-base-url,
  %bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
  %bootstrap-gcc, %bootstrap-inputs, package-with-bootstrap-guile): Move
  to ...
* distro/packages/bootstrap.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
* tests/builders.scm: Use (distro packages bootstrap).
  (%bootstrap-guile): Remove.
* tests/packages.scm: Likewise.
* tests/union.scm: Likewise, and remove @@ to access %bootstrap-inputs.
* tests/derivations.scm: Use (distro packages bootstrap) and remove @@
  to access %bootstrap-coreutils&co.
* HACKING (When the platform is supported by Nixpkgs): Update
  accordingly.
2012-11-04 22:04:41 +01:00
Ludovic Courtès
9d9e645081 distro: Go for one module per package.
The alternative, which was to use one module per category, would
probably not scale well.  First, because many packages could fall into
several categories (does GnuTLS go into "networking", "security", or
"libraries"?).  Second, because that could easily lead to circular
dependencies among modules ("security" and "networking" depend on each
other, etc.)

* distro/packages/databases.scm: Rename to...
* distro/packages/recutils.scm: ... this.
* distro/packages/typesetting.scm: Rename to...
* distro/packages/lout.scm: ... this.
* Makefile.am (MODULES): Adjust accordingly.
* po/POTFILES.in: Likewise.
2012-11-04 21:46:14 +01:00
Ludovic Courtès
59b775cca9 doc: Add "Adding new packages" in `HACKING'.
* HACKING (Adding new packages): New section.
2012-11-04 19:45:40 +01:00
Ludovic Courtès
10226c05b1 Add (guix snix) and the `guix-import' command.
* guix/snix.scm, tests/snix.scm, guix-import.in: New files.
* configure.ac: Output `guix-import' and make it executable.
* Makefile.am (bin_SCRIPTS): Add `guix-import'.
  (MODULES): Add `guix/snix.scm'.
  (TESTS): Add `tests/snix.scm'.
2012-11-04 19:38:31 +01:00
Ludovic Courtès
5901471cec guix-package: Remove extraneous procedures.
* guix-package.in (_, N_): Remove.
2012-11-04 18:19:28 +01:00
Ludovic Courtès
d45122f537 packages: description' → synopsis', long-description' → description'.
* guix/packages.scm (<package>): Rename `description' to `synopsis', and
  `long-description' to `description'.
* tests/packages.scm, distro/packages/base.scm,
  distro/packages/databases.scm, distro/packages/guile.scm,
  distro/packages/typesetting.scm:  Update accordingly.
* po/Makevars (XGETTEXT_OPTIONS): Update `--keyword' flags accordingly.
2012-11-04 13:48:35 +01:00
Ludovic Courtès
6709752fe7 release.nix: Pass --with-libgcrypt-prefix' in the tarball' job.
* release.nix (jobs.tarball)[configureFlags]: Pass
  `--with-libgcrypt-prefix'.
2012-11-04 13:03:15 +01:00
Ludovic Courtès
9b48fb88ca utils: Add `package-name->name+version'.
* guix/utils.scm (package-name->name+version): New procedure.
* guix-package.in (guix-package)[find-package]: Use it.
* tests/utils.scm ("package-name->name+version"): New test.
2012-11-04 01:29:18 +01:00
Ludovic Courtès
d388c2c435 build: Require GNU libgcrypt.
* guix/utils.scm (sha256): Remove Coreutils- and libchop-based
  implementations.
* README: Update accordingly.

* m4/guix.m4: New file.
* configure.ac: Use `GUIX_ASSERT_LIBGCRYPT_USABLE'.  Set and substitute
  `LIBGCRYPT_PREFIX'.
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Pass
  `--with-libgcrypt-prefix=$(LIBGCRYPT_PREFIX)'.
2012-11-03 21:49:54 +01:00
Ludovic Courtès
1275baeba7 guix-package: Use more (guix ui) features.
* guix-package.in (leave): Remove.
  (guix-package): Wrap body in `with-error-handling'.
2012-11-03 21:23:16 +01:00
Ludovic Courtès
cdd5d6f95f ui: Factorize `--version'.
* guix/ui.scm (show-version-and-exit): New procedure.
* guix-build.in (show-version): Remove.
  (%options)["version"]: Use `show-version-and-exit'.
* guix-download.in: Likewise.
* guix-package.in: Likewise.
2012-11-03 21:19:43 +01:00
Ludovic Courtès
00e219d1c9 build: Produce (guix config) instead of using compile-time tricks.
* guix/config.scm.in: New file.
* guix/utils.scm: Use it.
  (%libgcrypt): Remove.
  (%nixpkgs-directory): Don't capture the compile-time $NIXPKGS; use
  %NIXPKGS instead.
  (nixpkgs-derivation): Use %NIX-INSTANTIATE.
* pre-inst-env.in (NIX_INSTANTIATE, NIXPKGS, LIBGCRYPT): Remove.

* configure.ac: Emit `guix/config.scm'.
* Makefile.am (GOBJECTS): Add `guix/config.go'.
  (nobase_nodist_guilemodule_DATA): Add `guix/config.scm'.
2012-11-03 21:11:28 +01:00
Ludovic Courtès
e76bdf8b87 build: Clearly mark Nixpkgs as optional.
* configure.ac: Always show the result of checking for Nixpkgs.  Don't
  warn when Nixpkgs is not found.
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Remove `--with-nixpkgs'
  flag.
* guix/utils.scm (%nixpkgs-directory): Use either the compile-time or
  the run-time `NIXPKGS' environment variable.
* release.nix (jobs.tarball, jobs.build): Remove `--with-nixpkgs'
  configure flag.
* README: Mark Nixpkgs as optional.

* distro/packages/databases.scm, distro/packages/guile.scm,
  distro/packages/typesetting.scm: Change uses of `nixpkgs-derivation*'
  to `nixpkgs-derivation', to avoid failing at compile-time.
2012-11-03 21:11:26 +01:00
Ludovic Courtès
81dbd783bd tests: Run without substitutes.
* tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set
  #:use-substitutes? #f for %STORE.
2012-11-02 22:38:52 +01:00
Ludovic Courtès
0afdc48532 Add a preliminary `guix-package' command-line tool.
* guix-package.in, tests/guix-package.sh: New files.
* configure.ac: Output `guix-package'.
* Makefile.am (TESTS): Add `tests/guix-package.sh'.
  (bin_SCRIPTS): Add `guix-package'.
2012-11-01 01:46:15 +01:00
Ludovic Courtès
e3d741065e store: Add `store-path-package-name'.
* guix/store.scm (store-path-package-name): New procedure.
* tests/utils.scm ("store-path-package-name"): New test.
2012-11-01 01:39:23 +01:00
Ludovic Courtès
07d18f39cc utils: Remove stuff committed by error.
This was wrongfully committed in df1fab58.

* guix/utils.scm (hash-set-proc, hash-ref*, memoizing-lambda): Remove.
2012-11-01 01:35:00 +01:00
Ludovic Courtès
97298ffae9 build: Add unit test for the `guix-build' command.
* tests/guix-build.sh: New file.
* Makefile.am (TESTS): Add it.
  (LOG_COMPILER): Rename to...
  (SCM_LOG_COMPILER): ... this.  Move flags to...
  (AM_SCM_LOG_FLAGS): ... this.
  (TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.
2012-11-01 00:52:46 +01:00
Ludovic Courtès
073c34d72f Add (guix ui).
* guix/ui.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Add it.

* guix-build.in: Use it.
  (_, N_, leave): Remove.
  (guix-build): Use `with-error-handling' instead of the `guard' form.
* guix-download.in: Use it.
  (_, N_, leave): Remove.
2012-11-01 00:52:44 +01:00
Ludovic Courtès
111111d046 build-system/gnu: Distinguish between imported modules and used modules.
* guix/build-system/gnu.scm (gnu-build): Add the `imported-modules'
  keyword parameter.  Pass it to `build-expression->derivation'.
2012-10-31 17:53:59 +01:00
Ludovic Courtès
f03da4a008 release.nix: Use --no-substitutes' in distro.hello'.
* release.nix (distro.hello): Use `guix-build --no-substitutes', to
  avoid failures due to unavailable stale substitutes on
  hydra.nixos.org.
2012-10-31 00:22:39 +01:00
Ludovic Courtès
34811f02bf guix-build: Add `--root'.
* guix/store.scm (add-indirect-root): New operation.
* guix-build.in (show-help): Document `--root'.
  (%options): Add `--root'.
  (guix-build)[register-root]: New procedure.  Call it when `--root' is
  passed.
2012-10-30 00:20:53 +01:00
Ludovic Courtès
c8c88afaa1 Add (guix build union).
* guix/build/union.scm, tests/union.scm: New files.
* Makefile.am (MODULES): Add `guix/build/union.scm'.
  (TESTS): Add `tests/union.scm'.
2012-10-29 22:39:46 +01:00
Ludovic Courtès
48da001fd9 release.nix: Change `distro.hello' to produce something.
* release.nix (distro.hello)[buildPhase]: Tee the log to $out.  Add a
  `name' attribute; remove `buildInputs' and instead use the full path
  to `guix-build'.
2012-10-28 02:02:04 +02:00
Ludovic Courtès
d6ed71cbf4 distro: Build Bash sequentially.
* distro/packages/base.scm (bash): Set `#:parallel-build?' and
  `#:parallel-tests?' to #f.
2012-10-28 01:59:33 +02:00
Ludovic Courtès
8f3ecbd715 tests: Use our own bootstrap tools.
* tests/builders.scm (%bootstrap-inputs): Use %BOOT0-INPUTS from the distro.
* tests/packages.scm (%bootstrap-inputs): Likewise.
* tests/derivations.scm (%coreutils): Alias for %BOOTSTRAP-COREUTILS&CO.
2012-10-28 01:58:39 +02:00
Ludovic Courtès
9144af5aa7 release.nix: Add a `distro.hello' job.
* release.nix (distro.hello): New job.
2012-10-27 23:19:46 +02:00
Ludovic Courtès
5992f213d7 build: Preserve the executable bit of bootstrap binaries.
* Makefile.am (install-data-hook): New target.
2012-10-27 23:18:08 +02:00
Ludovic Courtès
b8605698b8 build: Make sure scripts know where to find their modules.
* guix-build.in, guix-download.in: Define `prefix' and `datarootdir', so
  that `guilemoduledir' expands to something meaningful.
2012-10-27 22:52:13 +02:00
Ludovic Courtès
1c52c42fe2 release.nix: Pre-download the Guile bootstrap tarball.
* release.nix (bootstrap_guile): New variable.
  (build)[preBuild]: New attribute.
2012-10-27 22:45:54 +02:00
Ludovic Courtès
735bb2af10 build: Fix out-of-source-tree builds.
* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  Make the target's parent directory.
* pre-inst-env.in (DISTRO_BOOTSTRAP_PATH): Add the builddir-relative
  directory.
2012-10-27 22:37:49 +02:00
Ludovic Courtès
a9f60c421b distro: Change $DISTRO_{PATCH,BOOTSTRAP}_DIRECTORY to search paths.
* distro.scm (not-colon): New variable.
  (%patch-directory): Rename to...
  (%patch-path): ... this.  Turn into a list.  Expect $DISTRO_PATCH_PATH
  to be a colon-separated search path.
  (%bootstrap-binaries-directory): Rename to...
  (%bootstrap-binaries-path): ... this.  Likewise.
  (search-patch, search-bootstrap-binary): Adjust accordingly.

* pre-inst-env.in: Change to use `DISTRO_PATCH_PATH' and
  `DISTRO_BOOTSTRAP_PATH'.
2012-10-27 22:30:42 +02:00
Ludovic Courtès
cc9abfd0f4 release.nix: Set succeed-on-failure and build-out-source-tree.
* release.nix: Define `succeedOnFailure', `keepBuildDirectory', and
  `buildOutOfSourceTree'.
  (build): Inherit them.
2012-10-27 15:32:40 +02:00
Ludovic Courtès
bfb3c3d03a build: Move distro/patches' to distro/packages/patches'.
* distro/patches: Move directory to...
* distro/packages/patches: ... here.
* Makefile.am (dist_patch_DATA): Adjust accordingly.
* pre-inst-env.in (DISTRO_PATCH_DIRECTORY): Likewise.
2012-10-27 15:32:40 +02:00
Ludovic Courtès
fc2f38023b build: Use `pre-inst-env' to compile the source.
* Makefile.am (.scm.go): Use `pre-inst-env' instead of re-defining the
  environment variables, except for `DISTRO_INSTALLED_PATCH_DIRECTORY'
  and `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY'.
2012-10-27 15:32:39 +02:00
Ludovic Courtès
0778385802 guix-build: Gracefully handle `&package-input-error' conditions.
* guix/packages.scm: Export `package-error?' and `package-input-error?'.
* guix-build.in (guix-build): Catch `&package-input-error' conditions,
  print a human-readable message, and exit.
2012-10-27 14:56:46 +02:00
Ludovic Courtès
5e6c90121f location: Start column numbers at 1.
* guix/utils.scm (source-properties->location): Use COL + 1.
2012-10-27 14:53:47 +02:00
Ludovic Courtès
d25468bcb2 distro: Add i686-linux port.
* distro/packages/bootstrap/i686-linux/bash,
  distro/packages/bootstrap/i686-linux/mkdir,
  distro/packages/bootstrap/i686-linux/tar,
  distro/packages/bootstrap/i686-linux/xz: New files.

* distro/packages/base.scm (%bootstrap-coreutils&co,
  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Add hashes of
  the i686-linux tarballs.

* Makefile.am (bootstrap_i686_linuxdir, dist_bootstrap_i686_linux_DATA,
  nodist_bootstrap_i686_linux_DATA): New variables
  (DISTCLEANFILES): Add $(nodist_bootstrap_i686_linux_DATA).
  (distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  New rule.
2012-10-26 19:10:37 +02:00
Ludovic Courtès
fc95fdaebe distro: gcc: Adjust to support non-x86_64 architectures.
* distro/packages/base.scm (gcc-4.7)[arguments]: In the `pre-configure'
  phase, patch all the relevant gcc/config files, not just those for
  x86_64-linux-gnu.
2012-10-26 18:51:22 +02:00
Ludovic Courtès
20d83444dd utils: Remove special `substitute*' syntax for lists of files.
* guix/build/utils.scm (substitute*): Remove special syntax for
  list-of-files; instead, check whether FILE is `list?' at run time.

* distro/packages/base.scm (gcc-4.7, %binutils-static): Adjust
  accordingly.
2012-10-26 09:07:37 +02:00
Ludovic Courtès
450ccdc3aa doc: Add `HACKING'.
* HACKING: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-10-25 23:44:27 +02:00
Ludovic Courtès
fbc93bedff Add a system' parameter to nixpkgs-derivation'.
* guix/utils.scm (nixpkgs-derivation): Add a `system' parameter.  Pass
  it in the `nix-instantiate' invocation.
2012-10-25 23:42:06 +02:00
Ludovic Courtès
b642e4b853 packages: Pass `system' around.
* guix/packages.scm (package-source-derivation): Add `system'
  parameter.  Pass it to METHOD.
  (package-derivation)[expand-input]: Pass SYSTEM to
  `package-derivation' and `package-source-derivation'.

* distro/packages/base.scm (package-with-bootstrap-guile)[boot]: Pass
  SYSTEM to FETCH.
2012-10-25 23:41:15 +02:00
Ludovic Courtès
ae39d1b233 derivations: Make sure build-expression->derivation' & co. pass system'.
* guix/derivations.scm (imported-files): Call
  `build-expression->derivation' with SYSTEM, not (%current-system).
  (build-expression->derivation): Pass SYSTEM to `imported-modules' and
  `compiled-modules'.
2012-10-25 23:14:27 +02:00
Ludovic Courtès
b272c47433 derivations: Pass the derivation of guile-for-build to `imported-files' & co.
* guix/derivations.scm (%guile-for-build): Initialize to #f.
  (imported-files, imported-modules, compiled-modules): Add `guile'
  keyword parameter.  Pass it down to `build-expression->derivation'.
  (build-expression->derivation)[guile-drv]: New variable.  Pass it as
  the #:guile parameter for `imported-modules' and `compiled-modules'.

* tests/derivations.scm: Set %GUILE-FOR-BUILD to the derivation of
  %BOOTSTRAP-GUILE.
2012-10-25 18:03:48 +02:00
Ludovic Courtès
4033bde841 distro: Build the final inputs against the final Bash, not the bootstrap Bash.
* distro/packages/base.scm (%boot4-inputs): New variable.
  (guile-final): Use it.
  (%final-inputs): Build with %BOOT4-INPUTS, not %BOOT3-INPUTS.
2012-10-25 17:55:45 +02:00
Ludovic Courtès
e67245597e distro: ncurses: Don't patch shebangs.
* distro/packages/base.scm (ncurses): Pass #:patch-shebangs? #f.
2012-10-25 17:54:17 +02:00
Ludovic Courtès
60c21332d2 distro: Bootstrap using our own binaries instead of those from Nixpkgs.
* distro/packages/base.scm (%bootstrap-inputs): Switch to using our own
  bootstrap binaries instead of those from Nixpkgs.
2012-10-25 17:41:18 +02:00
Ludovic Courtès
1c702d1e92 distro: Build glibc with `--enable-obsolete-rpc'.
* distro/packages/base.scm (glibc-final): Pass `--enable-obsolete-rpc'.
  (%bootstrap-glibc): Update hash accordingly.
2012-10-25 17:36:46 +02:00
Ludovic Courtès
371a20e048 distro: Add missing Linux-Libre headers to the bootstrap glibc.
* distro/packages/base.scm (%glibc-stripped): Copy all of Linux-Libre's
  `include/asm' directory; copy a few linux/ headers too.
  (%bootstrap-glibc): Update tarball hash.
2012-10-25 00:58:39 +02:00
Ludovic Courtès
5ab57a13dd distro: Add a bootstrap GCC that uses binaries from the tarball.
* distro/packages/base.scm (%bootstrap-gcc): New variable.
2012-10-25 00:58:39 +02:00
Ludovic Courtès
c52a5bf09a Add `guix-download'.
* guix-download.in: New file.
* configure.ac: Emit `guix-download' and make it executable.
* Makefile.am (bin_SCRIPTS): Add `guix-download'.
* po/POTFILES.in: Add `guix-download.in'.
2012-10-25 00:58:37 +02:00
Ludovic Courtès
82058eff59 store: Add `query-path-hash'.
* guix/store.scm (write-arg, read-arg): Add `base16' literal and
  corresponding rule.
  (query-path-hash): New operation.

* tests/derivations.scm ("fixed-output derivation"): Check whether
  `query-path-hash' returns a bytevector.
2012-10-24 23:52:15 +02:00
Ludovic Courtès
e6cc3d8654 distro: Add missing commands in the bootstrap binaries.
* distro/packages/base.scm (%static-inputs): Add an `awk' -> `gawk', and
  `sh' -> `bash' symlinks.  Add `fgrep' and `egrep'.
  (%bootstrap-coreutils&co): Use new tarball that contains that
  symlink.

* distro/packages/bootstrap/x86_64-linux/bash,
  distro/packages/bootstrap/x86_64-linux/mkdir,
  distro/packages/bootstrap/x86_64-linux/tar,
  distro/packages/bootstrap/x86_64-linux/xz: Use binaries from that
  tarball (the previous binaries hadn't gone through
  `remove-store-references', which is fixed now.)
2012-10-24 23:52:03 +02:00
Ludovic Courtès
692c6c1576 guix-build: Change --local-build' to --no-substitutes'.
* guix-build.in (%default-options): Add `substitutes?'.
  (show-help): Change `--local-build' to `--no-substitutes'.
  (guix-build): Adjust accordingly.
2012-10-24 15:01:16 +02:00
Ludovic Courtès
1430808cae distro: Update file name of initial Binutils tarball.
* distro/packages/base.scm (%bootstrap-binutils): Update remote file
  name.
2012-10-24 00:21:30 +02:00
Ludovic Courtès
d90248844b derivations: Compile the #:modules passed to `build-expression->derivation'.
* guix/derivations.scm (imported-files)[parent-dirs]: Move to...
  (parent-directories): ... here.  New procedure.
  (compiled-modules): New procedure.
  (build-expression->derivation): Use it.

* tests/derivations.scm ("build-expression->derivation with modules"):
  New test.
2012-10-24 00:09:25 +02:00
Ludovic Courtès
d398e2c242 distro: Update bootstrap glibc package.
* distro/packages/base.scm (%bootstrap-glibc): Update initial regexp to
  make it less Nixish.  Update hash to new tarball.
2012-10-24 00:09:01 +02:00
Ludovic Courtès
827a3087da distro: Add required Linux-Libre headers to the glibc tarball.
* distro/packages/base.scm (%glibc-stripped): Include required headers
  from Linux-Libre.
2012-10-24 00:07:12 +02:00
Ludovic Courtès
3f8de86dec distro: gcc: No longer store the absolute path of crt files.
* distro/packages/base.scm (gcc-4.7): Define
  STANDARD_STARTFILE_PREFIX_[12] instead of storing the absolute path of
  crt files.
2012-10-23 23:38:02 +02:00
Ludovic Courtès
40749fb6eb distro: Fix GCC tarball to include the `libexec' directory.
* distro/packages/base.scm (%gcc-stripped): Copy $gcc/libexec to $out.
2012-10-23 22:00:06 +02:00
Ludovic Courtès
131edf67a0 distro: Fix glibc tarball to include *.so.*.
* distro/packages/base.scm (%glibc-stripped): Fix regexp to
  include *.so.* in the output.
2012-10-23 21:59:09 +02:00
Ludovic Courtès
5155fb89b2 distro: Add a statically-linked GCC for bootstrapping.
* distro/packages/base.scm (%gcc-static): New variable.
  (%gcc-stripped): Use it.
2012-10-22 22:22:37 +02:00
Ludovic Courtès
83ce0cf1f1 distro: Add a package that gets the bootstrap glibc from a tarball.
* distro/packages/base.scm (%bootstrap-glibc): New variable.
2012-10-21 22:01:49 +02:00
Ludovic Courtès
80d09f7452 distro: Add packages that get Coreutils, Binutils & co. from tarballs.
* distro/packages/base.scm (package-from-tarball): New procedure.
  (%bootstrap-base-url, %bootstrap-coreutils&co, %bootstrap-binutils):
  New variables.
2012-10-21 22:00:38 +02:00
Ludovic Courtès
592ef6c88f packages: Add support for system-dependent inputs.
* guix/packages.scm (package-derivation)[intern]: New procedure.  Pass
  #t as the `recursive?' argument, instead of #f.
  [expand-input]: New procedure, with code formerly in the body.
  Support inputs where the input is a procedure returning a file name or
  an <origin>.
  Use `expand-input' in the body.

* tests/packages.scm ("trivial with system-dependent input"): New test.
2012-10-21 17:52:16 +02:00
Ludovic Courtès
095c7a2683 distro: Add a bootstrap GCC tarball.
* distro/packages/base.scm (%gcc-stripped, %gcc-bootstrap-tarball): New
  variables.
2012-10-21 15:57:04 +02:00
Ludovic Courtès
58a7891ccf distro: Add a bootstrap glibc tarball.
* distro/packages/base.scm (%glibc-stripped, %glibc-bootstrap-tarball):
  New variables.
2012-10-21 15:26:46 +02:00
Ludovic Courtès
17ff4ccdf5 distro: Add tools to build a tarball of statically-linked Binutils programs.
* distro/packages/base.scm (%binutils-static, %binutils-static-stripped,
  %binutils-bootstrap-tarball): New variables.
2012-10-20 16:12:26 +02:00
Ludovic Courtès
5cbb559046 distro: Add a package to build a tarball of the bootstrap binaries.
* distro/packages/base.scm (tarball-package): New procedure.
  (%bootstrap-binaries-tarball): New variable.
  (%guile-bootstrap-tarball): Define in terms of `tarball-package'.
2012-10-20 11:51:07 +02:00
Ludovic Courtès
5cc3061673 guix-build: Add `--system'.
* guix-build.in (derivations-from-package-expressions): New `system'
  parameter.  Pass it to `package-derivation'.
  (%default-options): Add `system' pair.
  (show-help): Describe `--system'.
  (%options): Add it.
  (guix-build): Check the `system' pair in OPTS; pass it to
  `derivations-from-package-expressions' and `package-derivation'.
2012-10-18 23:46:10 +02:00
Ludovic Courtès
a5a349f302 distro: Provide a more descriptive report when a bootstrap binary is missing.
* distro/packages/base.scm (%bootstrap-guile): Error out when
  `search-bootstrap-binary' returns #f.
2012-10-18 23:36:29 +02:00
Ludovic Courtès
d6e8777688 distro: Use the bootstrap Guile for the derivation of sources.
* distro/packages/base.scm (bootstrap-origin,
  package-with-bootstrap-guile): New procedures.
  (gnu-make-boot0, diffutils-boot0, findutils-boot0, binutils-boot0,
  gcc-boot0, linux-libre-headers-boot0, glibc-final, bash-final,
  guile-final): Use `package-with-bootstrap-guile'.
  (gcc-boot0-wrapped): Clear `source'.

* guix/ftp.scm (ftp-fetch): Add a #:guile keyword parameter.  Honor it.
* guix/http.scm (http-fetch): Likewise.
2012-10-18 23:18:38 +02:00
Ludovic Courtès
d14ecda913 http/ftp: Tweak to avoid depending on libc's NSS.
* guix/build/http.scm (open-connection-for-uri): New procedure.
  (http-fetch): Use it.  Pass the result as a #:port argument to
  `http-get'.
  Add hack to modify the `set-port-encoding!' binding in (web response).

* guix/ftp-client.scm (ftp-open): Add optional `port' parameter,
  defaulting to 21.  When calling `getaddrinfo', convert PORT to a
  string and pass AI_NUMERICSERV when PORT is a number.
2012-10-18 22:32:23 +02:00
Ludovic Courtès
1c3972daa8 guix-build: Add `--local-build'.
* guix-build.in (show-help): Add `--local-build'.
  (%options): Likewise.
  (guix-build): Pass `set-build-options' the #:use-substitutes? argument
  accordingly.
2012-10-18 22:32:21 +02:00
Ludovic Courtès
e3dadc6818 distro: bzip2: Simplify installation phase with `find-files'.
* distro/packages/base.scm (bzip2): Use `find-files' instead of rolling
  our own with `file-system-fold'.
2012-10-18 21:43:35 +02:00
Ludovic Courtès
207ad6b2e9 distro: %static-binaries: Use (guix build utils).
* distro/packages/base.scm (%static-binaries): Add missing
  use of (guix build utils).
2012-10-18 21:42:19 +02:00
Ludovic Courtès
683d57f420 distro: Fix bootstrapping regression recently introduced.
* distro/packages/base.scm (gcc-boot0-wrapped): Fix typo introduced in
  a52e429f76 ("distro: Add i686 support.")
2012-10-18 11:41:12 +02:00
Ludovic Courtès
f76a51add0 distro: Clear references to the store in static binaries.
* distro/packages/base.scm (%static-binaries): Clear references to the
  store path for files in $out/bin.
2012-10-17 23:34:05 +02:00
Ludovic Courtès
4c261f4169 utils: Add `find-files'.
* guix/build/utils.scm (find-files): New procedure.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
c0746cc9db utils: Add `copy-recursively'; use it.
* guix/build/utils.scm (copy-recursively): New procedure.

* distro/packages/base.scm (%guile-static-stripped): Use it.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
7da95264f1 utils: Add `mkdir-p'; use it.
* guix/build/utils.scm (mkdir-p): New procedure.

* distro/packages/base.scm (gnu-make-boot0, gcc-boot0-wrapped,
  ld-wrapper-boot3, %static-binaries, %guile-static-stripped): Use it.
* distro/packages/typesetting.scm (lout): Likewise.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
7172116ca5 build-system/gnu: Pass the system type to the builder.
* guix/build-system/gnu.scm (gnu-build)[builder]: Pass SYSTEM to
  `gnu-build' as a keyword argument.
2012-10-17 23:25:25 +02:00
Nikita Karetnikov
a52e429f76 distro: Add i686 support.
* distro/packages/base.scm (gcc-4.7): Turn `arguments' into a lambda.
  Use `glibc-dynamic-linker' instead of the hard-coded linker name.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
124b17673b distro: Switch to Linux-Libre.
* distro/packages/base.scm (linux-headers): Rename to...
  (linux-libre-headers): ... this.  Change `name', `source', and
  `description', and `home-page' accordingly.  Update users.
  (linux-headers-boot0): Rename to...
  (linux-libre-headers-boot0): ... this.  Update users.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
ac5aa28889 distro: Use our own pre-built Guile to bootstrap.
* distro/packages/base.scm (%bootstrap-guile): Build from a tarball
  containing a pre-built Guile.

* distro.scm (%bootstrap-binaries-directory): New variable.
  (search-bootstrap-binary): New procedure.

* Makefile.am (bootstrapdir, bootstrap_x86_64_linuxdir,
  dist_bootstrap_x86_64_linux_DATA, DISTCLEANFILES, DOWNLOAD_FILE): New
  variables.
  (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz):
  New rule.
  (EXTRA_DIST): Add `build-aux/download.scm'.
  (.scm.go): Define the `DISTRO_BOOTSTRAP_DIRECTORY' and
  `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY' environment variables.

* pre-inst-env.in: Define `DISTRO_BOOTSTRAP_DIRECTORY'.

* build-aux/download.scm: New file.
* distro/packages/bootstrap/x86_64-linux/{bash, mkdir, tar, xz}: New
  files.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
9735a7b6ea distro: Add package that builds a tarball of the bootstrap Guile.
* distro/packages/base.scm (%guile-static-stripped): New variable.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
eb1db76e34 distro: Add patch to allow the bootstrap Guile to work without iconv.
* distro/patches/guile-default-utf8.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.

* distro/packages/base.scm (%guile-static): Use it.
  (%guile-static-stripped): Add call to `remove-store-references'.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
b7f280ee3e distro: Change relocatable-Guile patch to work around broken argv[0].
* distro/patches/guile-relocatable.patch: Change to use /proc/self/exe
  instead of PROGRAM_INVOCATION_NAME.  Useful because Nix itself passes
  just the basename of builders that it executes.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
9b9b6f3d51 build: Use `pre-inst-env' to run tests.
* Makefile.am (TESTS_ENVIRONMENT): Remove.
  (LOG_COMPILER): Use `pre-inst-env'.
2012-10-17 23:25:23 +02:00
Ludovic Courtès
8587b54268 release.nix: Add dependency on GNU Texinfo.
* release.nix (tarball)[buildNativeInputs]: Add `texinfo'.
2012-10-17 16:16:45 +02:00
Ludovic Courtès
91133c2d71 utils: Add fold-port-matches' and remove-store-references'.
* guix/build/utils.scm (fold-port-matches, remove-store-references): New
  procedures.

* tests/build-utils.scm ("fold-port-matches", "fold-port-matches,
  trickier", "fold-port-matches, with unmatched chars"): New tests.
2012-10-16 23:01:01 +02:00
Ludovic Courtès
dcd7290654 utils: Add `with-atomic-file-replacement'.
* guix/build/utils.scm (with-atomic-file-replacement): New procedure.
  (substitute): Use it.
2012-10-16 17:31:16 +02:00
Ludovic Courtès
df1fab5837 distro: Add a statically-linked, relocatable Guile 2.0 package.
* distro/packages/base.scm (%guile-static, %guile-static-stripped): New
  variables.

* distro/patches/guile-relocatable.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-10-13 22:36:39 +02:00
Ludovic Courtès
4004f95379 ftp-client: Try all the addresses returned by `getaddrinfo'.
* guix/ftp-client.scm (ftp-open): Upon connection failure, try the other
  addresses returned by `getaddrinfo'.
2012-10-13 21:18:16 +02:00
Ludovic Courtès
568717fd90 doc: Add the stub of a manual.
* doc/guix.texi: New file.
* doc/fdl-1.3.texi: New file, copied from Gnulib.

* Makefile.am (info_TEXINFOS): New variable.
  (EXTRA_DIST): Add `doc/fdl-1.3.texi'.
2012-10-13 16:05:01 +02:00
Ludovic Courtès
e300a0f8d2 distro: Add missing bits from previous commit.
* distro/packages/base.scm (default-keyword-arguments): New procedure.
2012-10-11 00:32:17 +02:00
Ludovic Courtès
a3f75312ec distro: First stab at building statically-linked bootstrap binaries.
* distro/packages/base.scm (static-package): New procedure.
  (%bash-static, %static-inputs, %static-binaries): New variables.
2012-10-11 00:25:55 +02:00
Ludovic Courtès
ad8526466c Remove non-existent module from (guix).
* guix.scm (%public-modules): Remove `snix', since that modules doesn't
  exist yet.
2012-10-08 23:13:51 +02:00
Ludovic Courtès
e4588af969 packages: Fix and optimize memoization of `package-derivation'.
* guix/packages.scm (%derivation-cache): Pass an initial size of 100.
  (cache): Use `hashq-set!', and use a SYSTEM/DRV pair as the value.
  (cached-derivation): Update accordingly.
2012-10-08 22:07:19 +02:00
Ludovic Courtès
ead1f1086d packages: Micro-optimize `package-derivation'.
* guix/packages.scm (package-derivation): Move `cache' call before the
  traversal of PACKAGE's inputs.
2012-10-08 21:57:14 +02:00
Ludovic Courtès
df7bbd3813 derivations: Set input port to UTF-8 in `read-derivation'.
* guix/derivations.scm (read-derivation): Set DRV-PORT's encoding to
  UTF-8.
2012-10-07 22:28:07 +02:00
Ludovic Courtès
58ddf10ea3 Update the (guix) module.
* guix.scm (%public-modules): Update list of current second-level
  modules.
2012-10-07 22:26:55 +02:00
Ludovic Courtès
14da91e2f0 tests: Use bootstrap and Nixpkgs inputs to be less costly.
* tests/builders.scm (%bootstrap-inputs, %bootstrap-guile): New
  variables.
  ("gnu-build"): Use them, by setting `#:implicit-inputs? #f' and `#:guile'.

* tests/packages.scm (%bootstrap-inputs, %bootstrap-guile): New
  variables.
  ("trivial"): Pass `#:guile %bootstrap-guile'.
  ("GNU Hello"): Use `package-with-explicit-inputs' to use
  %BOOTSTRAP-GUILE and %BOOTSTRAP-INPUTS.
2012-10-07 22:24:59 +02:00
Ludovic Courtès
81c7948d9a build-system/{gnu,trivial-build}: Fix handling of #:guile argument.
* guix/build-system/gnu.scm (gnu-build)[guile-for-build]: Check whether
  GUILE matches string? before checking whether it matches
  derivation-path?.
* guix/build-system/trivial.scm (trivial-build)[guile-for-build]:
  Likewise.
2012-10-07 22:22:27 +02:00
Ludovic Courtès
2143cf7a50 distro: Specify use of the bootstrap Guile for the initial derivations.
* distro/packages/base.scm (%bootstrap-guile): New variable.
  (gnu-make-boot0, diffutils-boot0, findutils-boot0, binutils-boot0,
  gcc-boot0, linux-headers-boot0, glibc-final, gcc-boot0-wrapped,
  gcc-final, ld-wrapper-boot3, bash-final, guile-final): Add
  `#:guile %bootstrap-guile' to the builder's arguments.
2012-10-06 01:25:19 +02:00
Ludovic Courtès
12d5aa0f5a build-system/{gnu,trivial}: Add a `#:guile' keyword parameter.
* guix/build-system/gnu.scm (package-with-explicit-inputs): New `guile'
  keyword parameter.  Add it to P's arguments, and pass it in recursive
  calls.
  (gnu-build): New `guile' keyword parameter; new `guile-for-build'
  variable.  Pass it as the `#:guile-for-build' parameter of
  `build-expression->derivation'.

* guix/build-system/trivial.scm (trivial-build): Likewise.
2012-10-06 01:25:17 +02:00
Ludovic Courtès
db1a15314d Support build-cores = 0; change `guix-build' to default to 0.
* guix/build/gnu-build-system.scm (%parallel-job-count): New variable.
  (build, check): Use it instead of $NIX_BUILD_CORES.

* guix-build.in (guix-build): Default to 0 for the #:build-cores option.
2012-10-05 23:21:09 +02:00
Ludovic Courtès
7da7ae937e Augment `README'.
* README (Hacking): Mention `--with-nixpkgs'.  List the autotools and
  Gettext, as suggested by Nikita Karetnikov <nikita.karetnikov@gmail.com>.
2012-10-05 00:19:29 +02:00
Ludovic Courtès
49feac7a54 distro: Fix typo in warning message.
* distro.scm (package-files): Add missing newline in warning message.
2012-10-04 23:12:41 +02:00
Ludovic Courtès
f4544767b4 Add `pre-inst-env' script.
* pre-inst-env.in: New file.
* configure.ac: Add it to `AC_CONFIG_FILES' and `AC_CONFIG_COMMANDS'.
2012-10-04 23:12:15 +02:00
Ludovic Courtès
ab90f87c41 Fix and update `POTFILES.in'.
* po/POTFILES.in: Update.
2012-10-04 23:10:57 +02:00
Ludovic Courtès
75668d7916 distro: Add libgc.
* distro/packages/base.scm (libgc): New variable.
  (guile-2.0): Use it.
2012-09-26 23:17:39 +02:00
Ludovic Courtès
cb0d69ed16 distro: Add pkg-config.
* distro/packages/base.scm (pkg-config): New variable.
  (guile-2.0): Use it.
* distro/packages/guile.scm (guile-reader): Likewise.
2012-09-26 23:06:45 +02:00
Ludovic Courtès
1722d6800f distro: Add the guile', typesetting', and `databases' package modules.
* distro.scm (package-files): Adjust PREFIX-LEN to use the top-level
  directory, not %DISTRO-MODULE-DIRECTORY.
* distro/packages/base.scm (guile-reader, guile-reader/guile-1.8,
  guile-reader/guile-2.0, lout, recutils): Move to...
* distro/packages/guile.scm, distro/packages/typesetting.scm,
  distro/packages/databases.scm: ... here.  New files.
* Makefile.am (MODULES): Add them.
  (EXTRA_DIST): Add `.dir-locals.el'.

* .dir-locals.el: New file, with settings formerly in `base.scm'.
2012-09-26 23:00:36 +02:00
Ludovic Courtès
1f455fdca6 distro: Rename (distro ...) to (distro packages ...).
* distro/base.scm, distro/ld-wrapper.scm: Move to `distro/packages'.
  Adjust LD-WRAPPER-BOOT3 input file name accordingly.
* Makefile.am (MODULES): Adjust accordingly.
* distro.scm (%distro-module-directory): Change to "/distro/packages".
* guix/build-system/gnu.scm (standard-inputs): Change module name
  to (distro packages base).
* tests/packages.scm (test-packages): Likewise.
2012-09-26 22:00:58 +02:00
Ludovic Courtès
8ffae202ac distro: GCC: Upgrade to 4.7.2.
* distro/base.scm (gcc-4.7): Upgrade to 4.7.2.
2012-09-26 21:48:22 +02:00
Ludovic Courtès
82dc2b9af9 distro: Add an ld' wrapper, to pass missing -rpath' flags.
* distro/ld-wrapper.scm: New file.
* Makefile.am (MODULES): Add it.

* distro/base.scm (ld-wrapper-boot3): New variable.
  (%boot3-inputs): Add LD-WRAPPER-BOOT3.
  (bash-final, guile-final, ld-wrapper): New final.
  (%final-inputs): Use BASH-FINAL; add LD-WRAPPER.
  (gcc-4.7): Remove the `-rpath' trick from the `lib' spec string.
2012-09-26 21:21:05 +02:00
Ludovic Courtès
dc8907d8e3 distro: gcc: Patch lib' spec to add -rpath' for each `-L'.
* distro/base.scm (gcc-4.7): Patch `LIB_SPEC' to add `-rpath' for each
  `-L'.  Spec string suggested by Marc Glisse <marc.glisse@inria.fr>.
  (libtool): Add `libtool-skip-tests.patch'.

* distro/patches/libtool-skip-tests.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-09-14 00:49:39 +02:00
Ludovic Courtès
457dd86d66 Add (guix ftp) and companion modules.
* guix/ftp-client.scm, guix/ftp.scm, guix/build/ftp.scm: New files.
* Makefile.am (MODULES): Add them.

* distro/base.scm (libffi): Use `ftp-fetch'.
2012-09-12 23:47:49 +02:00
Ludovic Courtès
fb585745ad distro: Use our own Perl during bootstrap.
* distro/base.scm (linux-headers-boot0): Use PERL with %BOOT0-INPUTS
  instead of calling out to `nixpkgs-derivation*'.
2012-09-12 00:07:51 +02:00
Ludovic Courtès
dc0a9729dd distro: gcc: Add a RUNPATH on libc.
* distro/base.scm (gcc-4.7): Remove unnecessary "libc" input.
  Add `-rpath LIBC/lib' to `LIB_SPEC'.
2012-09-12 00:07:12 +02:00
Ludovic Courtès
b289e9f9dd distro: Add Perl.
* distro/base.scm (perl): New variable.
* distro/patches/perl-no-sys-dirs.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-09-11 22:17:20 +02:00
Ludovic Courtès
321b099643 distro: Bootstrap via a cross-toolchain.
This allows the final toolchain to be completely independent of
%BOOTSTRAP-INPUTS.

* distro/base.scm (glibc-dynamic-linker): New procedure.
  (gcc-4.7): Remove #:path-exclusions argument.  Check whether LIBC is
  #f before using it.
  (glibc): Remove "libc_cv_as_needed" hack.  Patch `Makeconfig' to
  remove `-lgcc_s'.
  (nix-system->gnu-triplet, boot-triplet): New variables.
  (binutils-boot0): Turn into a cross-Binutils targeting (boot-triplet
  SYSTEM).
  (gcc-boot0): Likewise.  Add configure options to make a smaller
  build.  Remove "binutils-source" from the input, and use
  BINUTILS-BOOT0 instead.
  (glibc-final): Cross-build using GCC-BOOT0 and BINUTILS-BOOT0.
  (gcc-boot0-wrapped): New variable.
  (%boot2-inputs): Use it.
  (m4-boot2, gmp-boot2, mpfr-boot2, mpc-boot2): Remove.
  (binutils-final): New variable.
  (gcc-final): Turn into a joint build with GMP/MPFR/MPC.  Use
  BINUTILS-FINAL.
  (%boot3-inputs): Adjust accordingly.
  (%boot4-inputs): Remove.
  (%final-inputs): Use %BOOT3-INPUTS.
2012-09-11 22:08:55 +02:00
Ludovic Courtès
be13fbfa83 Add (guix build-system trivial).
* guix/build-system/trivial.scm: New file.
* Makefile.am (MODULES): Add it.
* tests/packages.scm ("trivial"): New test.

* guix/packages.scm (package-derivation): Allow SOURCE to be #f.
2012-09-10 22:47:10 +02:00
Ludovic Courtès
3c0670e686 distro: Reduce the bootstrap set.
* distro/base.scm (%bootstrap-inputs): Remove `gnumake', `diffutils',
  and `findutils'.
  (gnu-make-boot0, diffutils-boot0, findutils-boot0, %boot0-inputs): New
  variables.
  (binutils-boot0, gcc-boot0, linux-headers-boot0, %boot1-inputs):
  Replace %BOOTSTRAP-INPUTS by %BOOT0-INPUTS.

  (final-inputs): Remove now unneeded call to
  `source-properties->location'.
2012-09-07 15:49:48 +02:00
Ludovic Courtès
2d14ef0f2c build-system/gnu: Fix `#:path-exclusions' handling.
* guix/build/gnu-build-system.scm (set-paths)[relevant-input-directories]:
  New procedure.  Use it.  This fixes #:path-exclusions handling.
2012-09-06 22:58:43 +02:00
Ludovic Courtès
9d9ef458e8 utils: Make `set-path-environment-variable' verbose.
* guix/build/utils.scm (set-path-environment-variable): Print ENV-VAR
  and its value.
2012-09-06 22:57:46 +02:00
Ludovic Courtès
5f805fdf17 distro: Bootstrap with a joint GCC/Binutils/GMP/MPFR/MPC build.
* distro/base.scm (%bootstrap-inputs): Remove GMP, MPFR, and MPC.
  (substitute-keyword-arguments): New macro.
  (gcc-boot0): Add dependency on the Binutils, GMP, MPFR, and MPC
  tarballs.  Add a `unpack-binutils&co' phase to unpack them and symlink
  them so they get built, and to patch errors in `configure'.
  (glibc-final): Use `substitute-keyword-arguments' instead of a loop.
  (gcc-final): Inherit from GCC-4.7 instead of GCC-BOOT0.
2012-09-06 00:05:06 +02:00
Ludovic Courtès
181df11887 distro: gcc: Avoid retention of reference to `sed'.
* distro/base.scm (gcc-4.7)[pre-configure]: Patch fixincl.x.
2012-09-06 00:01:41 +02:00
Ludovic Courtès
5f45668080 distro: glibc: Assume a recent Linux kernel.
* distro/base.scm (glibc): Pass "--enable-kernel=2.6.30".
2012-09-06 00:00:34 +02:00
Ludovic Courtès
dc1045be7d packages: Accept <origin> as package inputs.
* guix/packages.scm (package-derivation): Accept use of an <origin> as
  an input.
2012-09-06 00:00:00 +02:00
Ludovic Courtès
1f34bda1e2 build-system/gnu: Relax location handling in `package-with-explicit-inputs'.
* guix/build-system/gnu.scm (package-with-explicit-inputs): Convert LOC
  when it is a source-property list.
2012-09-05 23:59:23 +02:00
Ludovic Courtès
a08cdce7ed distro: mpc: Upgrade to 1.0.
* distro/base.scm (mpc): Upgrade to 1.0.
2012-09-05 21:47:26 +02:00
Ludovic Courtès
2847050a61 packages: Add `package-full-name'.
* guix/packages.scm (package-full-name): New procedure.
  (package-derivation): Use it.
2012-09-05 19:01:47 +02:00
Ludovic Courtès
609354bf0a guix-build: Add `--derivations'.
* guix-build.in (show-help): Add `--derivations'.
  (%options): Likewise.
  (guix-build): Handle it.
2012-09-04 23:43:24 +02:00
Ludovic Courtès
5dba31494e guix-build: Add `--source'.
* guix-build.in (derivations-from-package-expressions): Add `source?'
  parameter.  Honor it.
  (show-help): Add `--source'.
  (%options): Likewise.
  (guix-build): Honor `--source'.
2012-09-04 23:42:06 +02:00
Ludovic Courtès
ff352cfb97 Move <location> to (guix utils).
* guix/packages.scm (<location>, location): Move to...
* guix/utils.scm: ... here.
2012-09-03 01:07:01 +02:00
Ludovic Courtès
ea52a52d7c distro: bash, readline: Correctly set RUNPATH to the dependencies.
* distro/base.scm (readline): Add configure flags to set an rpath on
  ncurses.
  (bash): Add configure flags to set an rpath to readline and ncurses.
2012-09-03 01:06:58 +02:00
Ludovic Courtès
6818af7ba5 distro: Add bzip2.
* distro/base.scm (bzip2): New variable.
  (%final-inputs): Add bzip2.
2012-09-02 23:12:17 +02:00
Ludovic Courtès
60f984b262 distro: Bootstrap standard inputs from Nixpkgs.
This is a first step towards bootstrapping from a set of pre-built,
statically-linked binaries.

* guix/build-system/gnu.scm (package-with-explicit-inputs,
  standard-inputs): New procedure.
  (%store): New variable.
  (%standard-inputs): Remove.
  (gnu-build): New `implicit-inputs?' keyword parameter.  Use it to
  choose whether to use `(standard-inputs SYSTEM)' or the empty list.

* distro/base.scm (guile-2.0): Remove dependency on XZ, which is now
  implicit.
  (%bootstrap-inputs, gcc-boot0, binutils-boot0, linux-headers-boot0,
  %boot1-inputs, glibc-final, %boot2-inputs, m4-boot2, gmp-boot2,
  mpfr-boot2, mpc-boot2, %boot3-inputs, gcc-final, %boot4-inputs,
  %final-inputs): New variables.
2012-09-02 20:05:39 +02:00
Ludovic Courtès
113aef68fb packages: Add `package-transitive-propagated-inputs'.
* guix/packages.scm (transitive-inputs): New procedure.
  (package-transitive-inputs): Rewrite in terms of `transitive-inputs'.
  (package-transitive-propagated-inputs): New procedure.
2012-09-02 19:58:03 +02:00
Ludovic Courtès
a2ebaddda7 packages: Cache the result of `package-derivation'.
* guix/packages.scm (%derivation-cache): New variable.
  (cache, cached-derivation): New procedures.
  (package-derivation): Use them.
2012-09-02 19:40:08 +02:00
Ludovic Courtès
8bb9f66fc6 distro: recutils: Allow builds with glibc 2.16+.
* distro/base.scm (recutils): Apply. `diffutils-gets-undeclared.patch'.
2012-09-02 19:01:28 +02:00
Ludovic Courtès
0a3da5b7f0 distro: glibc: Propagate Linux headers.
* distro/base.scm (glibc): Move LINUX-HEADERS from `native-inputs' to
  `propagated-inputs'.  Remove unnecessary `_' in /bin/pwd substitution.
2012-09-02 19:01:28 +02:00
Ludovic Courtès
a5071b990d distro: diffutils: Allow builds with glibc 2.16+.
* distro/patches/diffutils-gets-undeclared.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.

* distro/base.scm (diffutils): Apply. `diffutils-gets-undeclared.patch'.
2012-09-02 16:13:49 +02:00
Ludovic Courtès
472894aae8 distro: tar: Allow builds with glibc 2.16+.
* distro/patches/tar-gets-undeclared.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.

* distro/base.scm (tar): Apply. `tar-gets-undeclared.patch'.
2012-09-02 16:05:41 +02:00
Ludovic Courtès
946b72c924 packages: Add a printer for <package>.
* guix/packages.scm (<package>): Add record printer.
2012-09-02 15:41:52 +02:00
Ludovic Courtès
aaa848f3af Optimize write-derivation' and derivation-path->output-path'.
* guix/derivations.scm (write-derivation): Explicitly use
  `simple-format'.
  (derivation-path->output-path): Memoize.
2012-09-02 01:51:52 +02:00
Ludovic Courtès
f39bd08ad2 Optimize `store-path?'.
* guix/store.scm (store-path?): Check with `string-prefix?' instead of a
  regexp.
2012-09-01 23:38:28 +02:00
Ludovic Courtès
d118c548b5 build-system/gnu: Really apply patches.
* guix/build/gnu-build-system.scm (patch): Use `--input FILE', not just
  `FILE'.
2012-09-01 19:21:33 +02:00
Ludovic Courtès
8197c978ef utils: Change `substitute*' to allow iteration over several matches.
* guix/build/utils.scm (substitute): Do not pass the OUT to PROC; use
  `list-matches' instead of `regexp-exec' and pass a list of matches to
  PROC. Expect PROC to return a string, and output that.  Fold over
  RX+PROC in order.  Use `(read-line p 'concat)' to include the trailing
  delimiter in LINE.
  (substitute*): Produce code to iterate over the matches, and return a
  string, which includes anything from the original line that's in
  between matches.

* distro/base.scm (gcc-4.7, glibc): Adjust accordingly: remove use
  of (ice-9 regex) and `regexp-substitute/global'; return a string.
2012-09-01 19:21:31 +02:00
Ludovic Courtès
9dd036f35c distro: m4: Add patch to allow builds with glibc 2.16+.
* distro/base.scm (m4): Use `m4-gets-undeclared.patch'.

* distro/patches/m4-gets-undeclared.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-09-01 11:52:52 +02:00
Ludovic Courtès
6dd7787c39 Add a guile-for-build' parameter to build-expression->derivation'.
* guix/derivations.scm (%guile-for-build): Use `nixpkgs-derivation*'
  instead of `nixpkgs-derivation'.
  (build-expression->derivation): New `guile-for-build' keyword
  parameter.  Use it.
2012-09-01 11:45:52 +02:00
Ludovic Courtès
4c1eddf766 Add an env-vars' keyword parameter to build-expression->derivation'.
* guix/derivations.scm (build-expression->derivation): New `env-vars'
  keyword parameter; default to '().  Use it.
2012-09-01 11:33:20 +02:00
Ludovic Courtès
dc4e02572e build-system/gnu: Add `path-exclusions' parameter.
* guix/build/gnu-build-system.scm (set-paths): Add new `path-exclusions'
  parameter; honor it.
* guix/build-system/gnu.scm (gnu-build): New `path-exclusions' keyword
  parameter; pass it to BUILDER.

* distro/base.scm (gcc-4.7): Exclude "libc" from $LIBRARY_PATH.
2012-09-01 01:14:31 +02:00
Ludovic Courtès
f1f100b297 distro: gcc: Allow `libstdc++' to be found.
* distro/base.scm (gcc-4.7): Add `-rpath' arguments to `LIB_SPEC' to
  allow `libstdc++' to be found by users.
2012-09-01 00:35:12 +02:00
Ludovic Courtès
6e0874db3d distro: gcc: Pass #:strip-binaries?.
* distro/base.scm (gcc-4.7): Pass #:strip-binaries?.
2012-09-01 00:33:23 +02:00
Ludovic Courtès
877217b85a build-system/gnu: Honor the patch-shebangs?' and strip-binaries?' parameters.
* guix/build/gnu-build-system.scm (patch-shebangs): Honor
  PATCH-SHEBANGS?.
  (strip): Honor STRIP-BINARIES?.  Display a message from `strip-dir'.
2012-08-31 23:58:21 +02:00
Ludovic Courtès
8759a648ba guix-build: Fix the "unrecognized option" error message.
* guix-build.in (guix-build): Show the option name when an unrecognized
  option is passed.
2012-08-31 17:05:34 +02:00
Ludovic Courtès
e815763e69 build-system/gnu: Add a `strip' phase.
* guix/build/gnu-build-system.scm (strip): New procedure.
  (%standard-phases): Add it.

* guix/build-system/gnu.scm (gnu-build): New `strip-binaries?',
  `strip-flags', and `strip-directories' keyword parameters.  Pass them
  to BUILDER.
2012-08-31 17:04:53 +02:00
Ludovic Courtès
84209975fd build-system/gnu: Always invoke `configure' with a relative path.
* guix/build/gnu-build-system.scm (configure): Change SRCDIR to always
  be a relative path.
2012-08-30 23:30:42 +02:00
Ludovic Courtès
a436d2018e distro: gcc: Do not store configure flags in the resulting binaries.
* distro/base.scm (gcc-4.7): Add a `post-configure' phase to clear
  `TOPLEVEL_CONFIGURE_ARGUMENTS' in the top-level `Makefile'.
2012-08-30 23:03:11 +02:00
Ludovic Courtès
dcd60f4398 define-record-type*: Add the `inherit' syntactic constructor keyword.
* guix/utils.scm (define-record-type*)[make-syntactic-constructor]: New
  `type' parameter.  Add the `inherit' keyword and corresponding support
  code.

* tests/utils.scm ("define-record-type* & inherit", "define-record-type*
  & inherit & letrec* behavior"): New tests.
2012-08-30 00:18:50 +02:00
Ludovic Courtès
c79dae6076 distro: Add missing Binutils patch.
* distro/patches/binutils-ld-new-dtags.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-08-29 00:15:39 +02:00
Ludovic Courtès
7cdeac023d distro: Add the GNU C Library.
* distro/base.scm (glibc): New variable.
2012-08-28 23:15:13 +02:00
Ludovic Courtès
3db3913ebb distro: Add Linux headers.
* distro/base.scm (linux-headers): New variable.
2012-08-28 22:31:17 +02:00
Cyprien Nicolas (fulax)
73f9a978ef configure.ac: Make 'guild' configure check fatal, otherwise one gets 'compile: command not found' during make 2012-08-27 15:44:32 +02:00
Ludovic Courtès
8f6201a31f distro: Add GNU Binutils.
* distro/base.scm (binutils): New variable.
2012-08-25 13:12:47 +02:00
Ludovic Courtès
81e57ec5ff distro: Add GCC.
* distro/base.scm (gcc-4.7): New variable.
2012-08-25 13:12:47 +02:00
Ludovic Courtès
8773648e35 utils: Change `substitute*' to accept a list of files to patch.
* guix/build/utils.scm (substitute*): Support a list of files as the
  first argument.
2012-08-25 13:12:45 +02:00
Ludovic Courtès
22b5d9c9a5 build-system/gnu: Add `out-of-source?' keyword parameter.
* guix/build/gnu-build-system.scm (configure): Add an `out-of-source?'
  keyword parameter; build out-of-source-tree when #t.
* guix/build-system/gnu.scm (gnu-build): Add `out-of-source?' keyword
  parameter.  Pass it in BUILDER.
2012-08-23 23:13:41 +02:00
Ludovic Courtès
d36622dc44 packages: Raise an error condition upon invalid input.
* guix/packages.scm (&package-error, &package-input-error): New
  condition types.
  (package-derivation): Raise a `&package-input-error' when no match is
  made.
2012-08-23 23:09:13 +02:00
Ludovic Courtès
dfae21c8cc distro: coreutils: Remove erroneous hack.
* distro/base.scm (coreutils)[arguments]: Remove
  "FORCE_UNSAFE_CONFIGURE" setting, since in fact, this is no problem
  when using Nix with separate build users.
2012-08-23 00:17:14 +02:00
Ludovic Courtès
2c957cd244 distro: Add GNU Coreutils.
* distro/base.scm (coreutils): New variable.
2012-08-22 23:49:36 +02:00
Ludovic Courtès
24cf75b9ef distro: Add XZ.
* distro/base.scm (xz): New variable.
2012-08-22 23:32:39 +02:00
Ludovic Courtès
e0fb536aaf distro: Add GNU gzip.
* distro/base.scm (gzip): New variable.
2012-08-22 23:29:53 +02:00
Ludovic Courtès
fbeec3d9bd distro: Add GNU Patch.
* distro/base.scm (patch): New variable.
2012-08-22 23:18:32 +02:00
Ludovic Courtès
04a32ee5ea distro: Add GNU Diffutils.
* distro/base.scm (diffutils): New variable.
2012-08-22 23:11:31 +02:00
Ludovic Courtès
2dda7734ba build: Bump version number.
* configure.ac: Switch to version 0.1.
2012-08-22 17:25:47 +02:00
Ludovic Courtès
3abaf0c440 Add `close-connection'.
* guix/store.scm (close-connection): New procedure.
2012-08-22 17:25:47 +02:00
Ludovic Courtès
800cdeef31 distro: Move patches to their own directory.
* Makefile.am (nobase_dist_guilemodule_DATA): Keep only $(MODULES).
  (patchdir): New variable.
  (dist_patch_DATA): New variable.  Patch files formerly
  in $(nobase_dist_guilemodule_DATA).
  (.scm.go): Define `DISTRO_PATCH_DIRECTORY' and
  `DISTRO_INSTALLED_PATCH_DIRECTORY'.
  (TESTS_ENVIRONMENT): Define `DISTRO_PATCH_DIRECTORY'.

* distro.scm (%patch-directory): New variable.
  (search-patch): New procedure.
* distro/base.scm: Use `search-patch' instead of `(search-path
  %load-path ...)'.

* distro/findutils-absolute-paths.patch, distro/guile-1.8-cpp-4.5.patch,
  distro/m4-readlink-EINVAL.patch, distro/m4-s_isdir.patch,
  distro/make-impure-dirs.patch: Move to `distro/patches'.
2012-08-22 17:25:43 +02:00
Ludovic Courtès
af5521ca01 distro: Add GNU Findutils.
* distro/base.scm (findutils): New variable.
* distro/findutils-absolute-paths.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-08-22 15:51:17 +02:00
Ludovic Courtès
6794b278ce distro: Add GNU grep.
* distro/base.scm (grep): New variable.
2012-08-22 15:22:38 +02:00
Ludovic Courtès
852403224e distro: Add GNU tar.
* distro/base.scm (tar): New variable.
2012-08-22 15:21:50 +02:00
Ludovic Courtès
8dcad9aa9d distro: Add GNU sed.
* distro/base.scm (sed): New variable.
2012-08-22 15:11:12 +02:00
Ludovic Courtès
9350da0dac distro: Add GNU Bash.
* distro/base.scm (bash): New variable.
2012-08-21 18:23:51 +02:00
Ludovic Courtès
ab77686565 distro: Add GNU Make.
* distro/base.scm (gnu-make): New variable.
* distro/make-impure-dirs.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-08-21 18:14:57 +02:00
Ludovic Courtès
fc484f605c build-system/gnu: Augment $PATH with $out for `patch-shebangs'.
* guix/build/gnu-build-system.scm (patch-shebangs): Add BINDIRS to
  $PATH, and pass that to `patch-shebang'.
2012-08-19 23:05:04 +02:00
Ludovic Courtès
525a59d6d3 utils: Add a path' argument to patch-shebang'.
* guix/build/utils.scm (patch-shebang): Add an optional `path'
  parameter.  Change SHEBANG-RX to match the whole interpreter file
  name.  Don't patch when BIN and CMD are the same.  Add docstring.
2012-08-19 23:04:03 +02:00
Ludovic Courtès
54ba617e9f distro: gmp: Fix typo in URL.
* distro/base.scm (gmp): Fix URL.
2012-08-19 17:56:03 +02:00
Ludovic Courtès
437fd80992 build-system/gnu: Add a `patch-shebangs' phase.
* guix/build/gnu-build-system.scm (patch-shebangs): New procedure.
  (%standard-phases): Add it.

* guix/build-system/gnu.scm (gnu-build): New `patch-shebangs?' keyword
  parameter.  Pass it to the builder's `gnu-build'.
2012-08-19 17:54:54 +02:00
Ludovic Courtès
ebe2f31f19 utils: Add `patch-shebang'.
* guix/build/utils.scm (search-path-as-string->list): New procedure.
  (dump-port, patch-shebang): New procedures.
2012-08-19 17:41:30 +02:00
Ludovic Courtès
ad102c4683 release.nix: Add dependency on GNU libgcrypt.
* release.nix (build)[configureFlags]: Add `--with-libgcrypt-prefix'.
2012-08-17 10:45:49 +02:00
Ludovic Courtès
3a310cc017 build: Add `--with-libgcrypt-prefix'; capture the path to libgcrypt.
* configure.ac: Add `--with-libgcrypt-prefix'.  Substitute `LIBGCRYPT'.

* Makefile.am (.scm.go): Pass $(LIBGCRYPT).

* guix/utils.scm (%libgcrypt): New variable.
  (sha256): Use it.
2012-08-17 10:41:27 +02:00
Ludovic Courtès
93a0a8b3fd packages: Add all non-derivation paths to the store.
* guix/packages.scm (package-derivation): Add all non-derivation paths
  to the store.
2012-08-16 19:00:49 +02:00
Ludovic Courtès
cf56996046 packages: Allow store paths as inputs.
* guix/packages.scm (package-derivation): Allow non-derivation store
  paths as inputs.
2012-08-16 18:48:03 +02:00
Ludovic Courtès
10d8289861 release.nix: Build out of chroot.
* release.nix: Add `preConfigure' and `__noChroot' attributes.
2012-08-14 18:52:41 +02:00
Ludovic Courtès
437e0729d8 build: Pass the right flags for "make distcheck".
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): New variable.
* configure.ac: Define and substitute `NIX_PREFIX'.
2012-08-14 18:50:36 +02:00
Ludovic Courtès
d95c0113c9 build: Add `test.drv' to the distribution.
* Makefile.am (EXTRA_DIST): Add `tests/test.drv'.
2012-08-14 18:44:52 +02:00
Ludovic Courtès
b86b00567c build: Pass $(NIX_INSTANTIATE) to the build and test environments.
* Makefile.am (.scm.go): Define $NIX_INSTANTIATE.
  (TESTS_ENVIRONMENT): Likewise, and define $NIX_HASH.
* guix/utils.scm (nixpkgs-derivation): Use $NIX_INSTANTIATE when
  defined.

* tests/utils.scm (%nix-hash): New variable.
  ("sha256 & bytevector->nix-base32-string"): Use it.
2012-08-14 18:42:46 +02:00
Ludovic Courtès
ed795c0608 build: Add SRFI-64 to the distribution.
* Makefile.am (MODULES): Add `srfi/srfi-64.scm' and
  `srfi/srfi-64.upstream.scm'.
2012-08-14 18:28:04 +02:00
Ludovic Courtès
2152e3c5b2 build: Add release.nix.
* release.nix: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-08-14 17:38:18 +02:00
Ludovic Courtès
202851dd8d distro: Add GNU MPC.
* distro/base.scm (mpc): New variable.
2012-07-21 19:17:53 +02:00
Ludovic Courtès
040d1b2c4a distro: Add GNU MPFR.
* distro/base.scm (mpfr): New variable.
2012-07-21 17:20:38 +02:00
Ludovic Courtès
38701758da distro: Add GNU recutils.
* distro/base.scm (recutils): New variable.
2012-07-21 17:05:27 +02:00
Ludovic Courtès
f66963df93 distro: Add libffi.
* distro/base.scm (libffi): New variable.
  (guile-2.0): Use it.
2012-07-13 12:12:34 +02:00
Ludovic Courtès
1788a45637 distro: Add GNU Ncurses.
* distro/base.scm (ncurses): New variable.
  (readline): Use it.
2012-07-12 18:02:09 +02:00
Ludovic Courtès
2282ec3a04 distro: Add GNU Readline.
* distro/base.scm (readline): New variable.
  (guile-1.8, guile-2.0): Use it.

* distro/readline-link-ncurses.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-07-12 16:54:00 +02:00
Ludovic Courtès
7e2255e6c1 guix-build: Default the number of build cores to (current-processor-count).
* guix-build.in (guix-build): Use (current-processor-count) build cores
  by default.
2012-07-12 16:52:52 +02:00
Ludovic Courtès
ce5d658c5c Add `nixpkgs-derivation*'; use it in the distro.
* guix/utils.scm (nixpkgs-derivation*): New macro.

* distro/base.scm: Use it instead of `nixpkgs-derivation'.
2012-07-11 17:26:43 +02:00
Ludovic Courtès
fd33c82c43 distro: Add GNU libunistring.
* distro/base.scm (libunistring): New variable.
  (guile-2.0): Use it.
2012-07-11 17:25:12 +02:00
Ludovic Courtès
454fe58b49 distro: Add GNU Libtool.
* distro/base.scm (libtool): New variable.
  (guile-1.8, guile-2.0): Use it.
2012-07-11 16:20:46 +02:00
Ludovic Courtès
eb229e889a distro: Add GMP.
* distro/base.scm (gmp): New variable.
  (guile-1.8, guile-2.0): Use it.
2012-07-11 15:48:11 +02:00
Ludovic Courtès
4ac3df4290 distro: Add GNU M4.
* distro/base.scm (m4): New variable.

* distro/m4-readlink-EINVAL.patch, distro/m4-s_isdir.patch: New files.
* Makefile.am (nobase_dist_guilemodule_DATA): Add them.
2012-07-11 15:42:40 +02:00
479 changed files with 73977 additions and 2162 deletions

37
.dir-locals.el Normal file
View File

@@ -0,0 +1,37 @@
;; Per-directory local variables for GNU Emacs 23 and later.
((nil . ((fill-column . 78)
(tab-width . 8)))
(c-mode . ((c-file-style . "gnu")))
(scheme-mode
.
((indent-tabs-mode . nil)
(eval . (put 'test-assert 'scheme-indent-function 1))
(eval . (put 'test-equal 'scheme-indent-function 1))
(eval . (put 'test-eq 'scheme-indent-function 1))
(eval . (put 'call-with-input-string 'scheme-indent-function 1))
(eval . (put 'guard 'scheme-indent-function 1))
(eval . (put 'lambda* 'scheme-indent-function 1))
(eval . (put 'substitute* 'scheme-indent-function 1))
(eval . (put 'with-directory-excursion 'scheme-indent-function 1))
(eval . (put 'package 'scheme-indent-function 0))
(eval . (put 'origin 'scheme-indent-function 0))
(eval . (put 'manifest-entry 'scheme-indent-function 0))
(eval . (put 'manifest-pattern 'scheme-indent-function 0))
(eval . (put 'substitute-keyword-arguments 'scheme-indent-function 1))
(eval . (put 'with-store 'scheme-indent-function 1))
(eval . (put 'with-error-handling 'scheme-indent-function 0))
(eval . (put 'with-mutex 'scheme-indent-function 1))
(eval . (put 'with-atomic-file-output 'scheme-indent-function 1))
(eval . (put 'call-with-compressed-output-port 'scheme-indent-function 2))
(eval . (put 'call-with-decompressed-port 'scheme-indent-function 2))
(eval . (put 'signature-case 'scheme-indent-function 1))
(eval . (put 'syntax-parameterize 'scheme-indent-function 1))
(eval . (put 'with-monad 'scheme-indent-function 1))
(eval . (put 'mlet* 'scheme-indent-function 2))
(eval . (put 'mlet 'scheme-indent-function 2))
(eval . (put 'run-with-store 'scheme-indent-function 1))))
(emacs-lisp-mode . ((indent-tabs-mode . nil)))
(texinfo-mode . ((indent-tabs-mode . nil)
(fill-column . 72))))

50
.gitignore vendored
View File

@@ -24,6 +24,7 @@ config.cache
/m4/progtest.m4
/po/ChangeLog
/po/Makefile.in.in
/po/Makevars.template
/po/POTFILES
/po/Rules-quot
/po/boldquot.sed
@@ -34,7 +35,54 @@ config.cache
/po/remove-potcdate.sin
/po/stamp-po
/po/guix.pot
/guix-build
/po/*.mo
/po/*.gmo
/tests/*.trs
/INSTALL
/m4/*
/pre-inst-env
/doc/.dirstamp
/doc/guix.info
/doc/guix.pdf
/doc/stamp-vti
/doc/version.texi
/gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
/gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
/gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
/guix/config.scm
/nix/nix-daemon/nix-daemon.cc
/nix/config.h
/nix/config.h.in
stamp-h[0-9]
/nix/AUTHORS
/nix/COPYING
/libformat.a
/libstore.a
/libutil.a
/guix-daemon
/test-tmp
/nix/scripts/list-runtime-roots
/test-env
/nix/nix-setuid-helper/nix-setuid-helper.cc
/scripts/guix
/doc/guix.aux
/doc/guix.cp
/doc/guix.cps
/doc/guix.fn
/doc/guix.fns
/doc/guix.ky
/doc/guix.pg
/doc/guix.toc
/doc/guix.tp
/doc/guix.vr
/doc/guix.vrs
/nix/scripts/substitute-binary
/doc/images/bootstrap-graph.png
/doc/images/bootstrap-graph.eps
/guix-register
GPATH
GRTAGS
GTAGS
/nix-setuid-helper
/nix/scripts/guix-authenticate
/nix/scripts/offload

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "nix-upstream"]
path = nix-upstream
url = http://github.com/NixOS/nix.git

26
AUTHORS
View File

@@ -1 +1,25 @@
Ludovic Courtès <ludo@gnu.org>
GNU Guix is consists of Scheme code that implements the deployment model
of the Nix package management tool. In fact, it currently talks to a
build daemon whose code comes from Nix (see the manual for details.)
Nix was initially written by Eelco Dolstra; other people have been
contributing to it. See `nix/AUTHORS' for details.
The fine people listed below have contributed code to GNU Guix (in
alphabetical order):
Eric Bavier <bavier@member.fsf.org>
Ludovic Courtès <ludo@gnu.org>
John Darrington <john@darrington.wattle.id.au>
Andreas Enge <andreas@enge.fr>
Alírio Eyng <alirioeyng@gmail.com>
Guy Grant <gzg@riseup.net>
Raimon Grau <raimonster@gmail.com>
Nikita Karetnikov <nikita@karetnikov.org>
Aljosha Papsch <misc@rpapsch.de>
Manolis Ragkousis <manolis837@gmail.com>
Cyril Roelandt <tipecaml@gmail.com>
Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
Sree Harsha Totakura <sreeharsha@totakura.in>
David Thompson <dthompson2@worcester.edu>
Mark H. Weaver <mhw@netris.org>

View File

@@ -1 +1,4 @@
Please see the Git commit log at <https://gitorious.org/guix>.
Normally a ChangeLog is generated at "make dist" time and available in
source tarballs.
If not, see the Git commit log at <http://git.sv.gnu.org/cgit/guix.git/>.

171
HACKING Normal file
View File

@@ -0,0 +1,171 @@
-*- mode: org; coding: utf-8; -*-
#+TITLE: Hacking GNU Guix and Its Incredible Distro
Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
Copyright © 2014 Pierre-Antoine Rault <par@rigelk.eu>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
* Building from Git
When building Guix from a checkout, the following packages are required in
addition to those mentioned in the installation instructions:
- [[http://www.gnu.org/software/autoconf/][GNU Autoconf]]
- [[http://www.gnu.org/software/automake/][GNU Automake]]
- [[http://www.gnu.org/software/gettext/][GNU Gettext]]
- [[http://www.graphviz.org/][Graphviz]]
Run ./bootstrap to download the Nix daemon source code and to generate the
build system infrastructure using autoconf. It reports an error if an
inappropriate version of the above packages is being used.
The bootstrap script, among other things, invokes git submodule update; if
you didnt run it, you may get the following error:
make: *** No rule to make target `nix/libstore/schema.sql', needed by
`nix/libstore/schema.sql.hh'
If you get an error like this one:
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
it probably means that Autoconf couldnt find pkg.m4, which is provided by
pkg-config. Make sure that pkg.m4 is available. For instance, if you
installed Automake in /usr/local, it wouldnt look for .m4 files in
/usr/share. So you have to invoke the following command in that case
$ export ACLOCAL_PATH=/usr/share/aclocal
See “info '(automake) Macro Search Path'” for more information.
Then, run ./configure as usual.
Finally, you have to invoke make check to run tests. If anything fails,
take a look at “info '(guix) Installation'” or send a message to
<guix-devel@gnu.org>.
* Running Guix before it is installed
Command-line tools can be used even if you have not run "make install".
To do that, prefix each command with ./pre-inst-env, as in:
./pre-inst-env guix build --help
Similarly, for a Guile session using the Guix modules:
./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
The pre-inst-env script sets up all the environment variables
necessary to support this.
* The Perfect Setup
The Perfect Setup to hack on Guix is basically the perfect setup used
for Guile hacking (info "(guile) Using Guile in Emacs"). First, you
need more than an editor, you need [[http://www.gnu.org/software/emacs][Emacs]], empowered by the wonderful
[[http://nongnu.org/geiser/][Geiser]].
Geiser allows for interactive and incremental development from within
Emacs: code compilation and evaluation from within buffers, access to
on-line documentation (docstrings), context-sensitive completion, M-. to
jump to an object definition, a REPL to try out your code, and more.
To actually edit the code, Emacs already has a neat Scheme mode. But in
addition to that, you must not miss [[http://www.emacswiki.org/emacs/ParEdit][Paredit]]. It provides facilities to
directly operate on the syntax tree, such as raising an s-expression or
wrapping it, swallowing or rejecting the following s-expression, etc.
* Submitting Patches
Development is done using the Git distributed version control system. Thus,
access to the repository is not strictly necessary. We welcome contributions
in the form of patches as produced by git format-patch sent to
guix-devel@gnu.org. Please write commit logs in the [[http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs][GNU ChangeLog
format]]; you can check the commit history for examples.
When posting a patch to the mailing list, use "[PATCH] ..." as a subject. You
may use your email client or the git send-mail command.
As you become a regular contributor, you may find it convenient to have write
access to the repository (see below.)
* Coding Style
In general our code follows the [[info:standards][GNU Coding Standards]] (GCS). However, the GCS
do not say much about Scheme, so here are some additional rules.
** Programming Paradigm
Scheme code in Guix is written in a purely functional style. One exception is
code that involves input/output, and procedures that implement low-level
concepts, such as the memoize procedure.
** Modules
Guile modules that are meant to be used on the builder side must live in the
(guix build …) name space. They must not refer to other Guix or GNU modules.
However, it is OK for a “host-side” module to use a build-side module.
Modules that deal with the broader GNU system should be in the (gnu …) name
space rather than (guix …).
** Data Types and Pattern Matching
The tendency in classical Lisp is to use lists to represent everything, and
then to browse them “by hand” using car, cdr, cadr, and co. There are
several problems with that style, notably the fact that it is hard to read,
error-prone, and a hindrance to proper type error reports.
Guix code should define appropriate data types (for instance, using
define-record-type*) rather than abuse lists. In addition, it should use
pattern matching, via Guiles (ice-9 match) module, especially when matching
lists.
** Formatting Code
When writing Scheme code, we follow common wisdom among Scheme programmers.
In general, we follow the [[http://mumble.net/~campbell/scheme/style.txt][Riastradh's Lisp Style Rules]]. This document happens
to describe the conventions mostly used in Guiles code too. It is very
thoughtful and well written, so please do read it.
Some special forms introduced in Guix, such as the substitute* macro, have
special indentation rules. These are defined in the .dir-locals.el file,
which Emacs automatically uses. If you do not use Emacs, please make sure to
let your editor know the rules.
We require all top-level procedures to carry a docstring. This requirement
can be relaxed for simple private procedures in the (guix build …) name space,
though.
Procedures should not have more than four positional parameters. Use keyword
parameters for procedures that take more than four parameters.
* Commit Access
For frequent contributors, having write access to the repository is
convenient. When you deem it necessary, feel free to ask for it on the
mailing list. When you get commit access, please make sure to follow the
policy below (discussions of the policy can take place on guix-devel@gnu.org.)
Non-trivial patches should always be posted to guix-devel@gnu.org (trivial
patches include fixing typos, etc.)
For patches that just add a new package, and a simple one, its OK to commit,
if youre confident (which means you successfully built it in a chroot setup,
and have done a reasonable copyright and license auditing.) Likewise for
package upgrades. We have a mailing list for commit notifications
(guix-commits@gnu.org), so people can notice. Before pushing your changes,
make sure to run git pull --rebase.
For anything else, please post to guix-devel@gnu.org and leave time for a
review, without committing anything. If you didnt receive any reply
after two weeks, and if youre confident, its OK to commit.
That last part is subject to being adjusted, allowing individuals to commit
directly on non-controversial changes on parts theyre familiar with.

View File

@@ -1,73 +1,233 @@
# Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
#
# This file is part of Guix.
# This file is part of GNU Guix.
#
# Guix is free software; you can redistribute it and/or modify it
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# Guix is distributed in the hope that it will be useful, but
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Guix. If not, see <http://www.gnu.org/licenses/>.
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
bin_SCRIPTS = guix-build
bin_SCRIPTS = \
scripts/guix
nodist_noinst_SCRIPTS = \
pre-inst-env \
test-env
include gnu-system.am
MODULES = \
guix/base32.scm \
guix/base64.scm \
guix/records.scm \
guix/hash.scm \
guix/pk-crypto.scm \
guix/pki.scm \
guix/utils.scm \
guix/download.scm \
guix/git-download.scm \
guix/monads.scm \
guix/profiles.scm \
guix/serialization.scm \
guix/nar.scm \
guix/derivations.scm \
guix/gnu-maintenance.scm \
guix/licenses.scm \
guix/build-system.scm \
guix/build-system/cmake.scm \
guix/build-system/gnu.scm \
guix/http.scm \
guix/build-system/perl.scm \
guix/build-system/python.scm \
guix/build-system/trivial.scm \
guix/ftp-client.scm \
guix/http-client.scm \
guix/gnupg.scm \
guix/store.scm \
guix/svn-download.scm \
guix/ui.scm \
guix/build/download.scm \
guix/build/cmake-build-system.scm \
guix/build/git.scm \
guix/build/gnome.scm \
guix/build/gnu-build-system.scm \
guix/build/http.scm \
guix/build/gnu-dist.scm \
guix/build/linux-initrd.scm \
guix/build/perl-build-system.scm \
guix/build/python-build-system.scm \
guix/build/utils.scm \
guix/build/union.scm \
guix/build/pull.scm \
guix/build/rpath.scm \
guix/build/svn.scm \
guix/packages.scm \
guix/snix.scm \
guix/scripts/download.scm \
guix/scripts/build.scm \
guix/scripts/archive.scm \
guix/scripts/import.scm \
guix/scripts/package.scm \
guix/scripts/gc.scm \
guix/scripts/hash.scm \
guix/scripts/pull.scm \
guix/scripts/substitute-binary.scm \
guix/scripts/authenticate.scm \
guix/scripts/refresh.scm \
guix/scripts/system.scm \
guix.scm \
distro.scm \
distro/base.scm
$(GNU_SYSTEM_MODULES)
GOBJECTS = $(MODULES:%.scm=%.go)
if BUILD_DAEMON_OFFLOAD
nobase_dist_guilemodule_DATA = \
$(MODULES) \
distro/guile-1.8-cpp-4.5.patch
MODULES += \
guix/scripts/offload.scm
nobase_nodist_guilemodule_DATA = $(GOBJECTS)
endif BUILD_DAEMON_OFFLOAD
TESTS = \
# Because of the autoload hack in (guix build download), we must build it
# first to avoid errors on systems where (gnutls) is unavailable.
guix/scripts/download.go: guix/build/download.go
guix/download.go: guix/build/download.go
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
nobase_dist_guilemodule_DATA = $(MODULES)
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
# Do we need to provide our own non-broken (srfi srfi-37) module?
if INSTALL_SRFI_37
nobase_nodist_guilemodule_DATA += srfi/srfi-37.scm
GOBJECTS += srfi/srfi-37.go
srfi/srfi-37.scm: srfi/srfi-37.scm.in
$(MKDIR_P) srfi
cp "$<" "$@"
endif INSTALL_SRFI_37
# Handy way to remove the .go files without removing all the rest.
clean-go:
-$(RM) -f $(GOBJECTS)
SCM_TESTS = \
tests/base32.scm \
tests/base64.scm \
tests/hash.scm \
tests/pk-crypto.scm \
tests/pki.scm \
tests/substitute-binary.scm \
tests/builders.scm \
tests/derivations.scm \
tests/ui.scm \
tests/records.scm \
tests/utils.scm \
tests/build-utils.scm \
tests/packages.scm
tests/packages.scm \
tests/snix.scm \
tests/store.scm \
tests/monads.scm \
tests/nar.scm \
tests/union.scm \
tests/profiles.scm
TESTS_ENVIRONMENT = \
NIXPKGS="$(NIXPKGS)"; \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH"; \
export NIXPKGS GUILE_LOAD_COMPILED_PATH;
SH_TESTS = \
tests/guix-build.sh \
tests/guix-download.sh \
tests/guix-gc.sh \
tests/guix-hash.sh \
tests/guix-package.sh \
tests/guix-archive.sh \
tests/guix-authenticate.sh
LOG_COMPILER = \
$(GUILE) --no-auto-compile -L "$(top_srcdir)"
if BUILD_DAEMON
EXTRA_DIST = build-aux/config.rpath $(TESTS)
SH_TESTS += tests/guix-register.sh
CLEANFILES = $(GOBJECTS) *.log
endif BUILD_DAEMON
TESTS = $(SCM_TESTS) $(SH_TESTS)
TEST_EXTENSIONS = .scm .sh
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)"
SCM_LOG_COMPILER = $(top_builddir)/test-env $(GUILE)
AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)"
SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL)
AM_SH_LOG_FLAGS = -x -e
# Make sure `tests/guix-gc.sh' runs last, after all the others. Otherwise it
# could end up removing files from the store while they are being used by
# other instances of the daemon.
tests/guix-gc.log: \
$(patsubst %.sh,%.log,$(filter-out tests/guix-gc.sh,$(SH_TESTS))) \
$(SCM_TESTS:%.scm=%.log)
# Public key used to sign substitutes from hydra.gnu.org.
dist_pkgdata_DATA = hydra.gnu.org.pub
EXTRA_DIST = \
HACKING \
ROADMAP \
TODO \
.dir-locals.el \
build-aux/hydra/gnu-system.scm \
build-aux/hydra/demo-os.scm \
build-aux/hydra/guix.scm \
build-aux/check-available-binaries.scm \
build-aux/download.scm \
build-aux/list-packages.scm \
build-aux/sync-descriptions.scm \
srfi/srfi-37.scm.in \
srfi/srfi-64.scm \
srfi/srfi-64.upstream.scm \
tests/test.drv \
tests/signing-key.pub \
tests/signing-key.sec \
build-aux/config.rpath \
bootstrap \
release.nix \
$(TESTS)
if !BUILD_DAEMON_OFFLOAD
EXTRA_DIST += \
guix/scripts/offload.scm
endif !BUILD_DAEMON_OFFLOAD
CLEANFILES = \
$(GOBJECTS) \
$(SCM_TESTS:tests/%.scm=%.log)
AM_V_GUILEC = $(AM_V_GUILEC_$(V))
AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
AM_V_GUILEC_0 = @echo " GUILEC" $@;
# XXX: Use the C locale for when Guile lacks
# <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>.
.scm.go:
$(MKDIR_P) `dirname "$@"`
NIXPKGS="$(NIXPKGS)" \
GUILE_AUTO_COMPILE=0 \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
$(GUILD) compile -L "$(top_srcdir)" \
-Wformat -Wunbound-variable -Warity-mismatch \
--target="$(host)" \
$(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \
LC_ALL=C \
$(top_builddir)/pre-inst-env \
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
-Wformat -Wunbound-variable -Warity-mismatch \
--target="$(host)" \
-o "$@" "$<"
SUFFIXES = .go
@@ -82,4 +242,48 @@ $(guix_install_go_files): install-nobase_dist_guilemoduleDATA
SUBDIRS = po
include doc.am
if BUILD_DAEMON
include daemon.am
endif BUILD_DAEMON
ACLOCAL_AMFLAGS = -I m4
AM_DISTCHECK_CONFIGURE_FLAGS = \
--with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \
--with-nix-prefix="$(NIX_PREFIX)" \
--enable-daemon
dist-hook: sync-descriptions gen-ChangeLog assert-no-store-file-names
distcheck-hook: assert-binaries-available
sync-descriptions:
-$(top_builddir)/pre-inst-env $(GUILE) \
$(top_srcdir)/build-aux/sync-descriptions.scm
gen-ChangeLog:
if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
> $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
# Make sure we're not shipping a file that embeds a local /gnu/store file name.
assert-no-store-file-names:
if grep -r --exclude=*.texi --exclude=*.info \
"$(storedir)/[a-z0-9]{32}-" $(distdir) ; \
then \
echo "error: store file names embedded in the distribution" >&2 ; \
exit 1 ; \
fi
# Make sure hydra.gnu.org has the important binaries.
assert-binaries-available:
$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/check-available-binaries.scm"
.PHONY: sync-descriptions gen-ChangeLog clean-go
.PHONY: assert-no-store-file-names assert-binaries-available

537
NEWS
View File

@@ -1 +1,536 @@
No news yet.
-*- org -*-
#+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars
Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 0.6 (since 0.5)
** Package management
*** Default store directory changed to /gnu/store
Although it is still possible to configure Guix to use the old store
directory, we recommend that you start with a fresh install to /gnu/store.
*** Substitutes from hydra.gnu.org must now be signed and authorized
*** Support for offloading builds to other Guix machines over SSH
*** New guix archive command
*** New guix system command; it can currently build VM images
*** guix package accepts several arguments after -i, -r, and -u
*** Updating a profile with guix package is now noticeably faster
*** guix build can override a packages source with the new --with-source
*** guix build has a new --no-build-hook option
*** guix commands that build packages have a common set of options
*** guix hash has a new --recursive option
*** Daemon no longer bind-mounts the hosts /dev (improves reproducibility)
** Programming interfaces
*** New (guix pk-crypto) and (guix pki) modules for public key cryptography
*** New #:local-build? parameter for derivations that shouldnt be offloaded
*** (gnu system vm) has procedures to build VMs that share the hosts store
*** New text-file* procedure in (guix monads)
*** System service definitions are now provided by the (guix services) modules
*** New X and SLiM services in (gnu services xorg)
*** New (guix git-download) and (guix svn-download) for git/svn checkouts
** GNU distribution
*** 91 new packages
a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
*** 90 package updates
apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
*** New gcc-toolchain meta-package, makes it easy to install a GCC tool chain
*** libcs Info manual is now installed
*** Binutils is built with --enable-deterministic-archives
*** Packages that populated man/man* now populate share/man/man*
*** Many other packaging improvements
** Bugs fixed
*** guix pull consumes less memory, compiles in parallel
*** guix package --list-* gracefully handles EPIPE when used in a pipeline
*** guix package handles collisions between a symlink and a directory
(http://bugs.gnu.org/17083)
*** HTTP downloads provide a User-Agent field (http://bugs.gnu.org/16703)
*** guix package no longer shows misleading installed package number
(http://bugs.gnu.org/16484)
*** Manual suggests useradd --system (http://bugs.gnu.org/16289)
*** Python is built with ctypes support (http://bugs.gnu.org/16569)
*** HTTP/TLS connection not terminated properly (http://bugs.gnu.org/14884)
*** Gracefully handle poorly behaved HTTP servers (http://bugs.gnu.org/15733)
* Changes in 0.5 (since 0.4)
** Package management
*** GNU package descriptions synchronized with the gnumaint repository
In addition to synopses, descriptions of GNU packages are now kept in sync
with the gnumaint repository, which is the canonical place for GNU package
meta-data.
** Programming interfaces
*** Patches are now listed as part of origin
The origin form supports two new fields: patches (list of patches), and
snippet (code snippet to modify the source.) These are applied when running
guix build --source. See “Defining Packages” in the manual.
*** New (guix monads) monadic interface to operate on the store
See “The Store Monad” in the manual. The (gnu system …) modules have been
rewritten to use this monadic interface.
*** New (guix profiles) module
It provides an API for dealing with profiles, as with the guix package
command.
*** New (gnu system) module
This module provides a generic way to describe the systems configuration,
and to instantiate it, regardless of the final medium (QEMU image, etc.)
See “System Configuration” in the manual.
This is work in progress. Send feedback to guix-devel@gnu.org!
*** build-expression->derivation uses more parameters
Some positional parameters have been changed to keyword parameters.
See “Derivations” in the manual.
** GNU distribution
*** New port to the Loongson MIPS64 processors, n32 ABI (mips64el-linux)
Bootstrap binaries have been built for that architecture, and several
Loongson-specific patches not yet available upstream have been applied to core
packages. See “GNU Distribution” and “Porting” in the manual.
Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
build from source on this platform.
*** 110 new packages
acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
*** 47 package updates
atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
pixman 0.32.4, python 3.3.2, qemu 1.6.1,
qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
*** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
** Native language support
*** New sr (Serbian) translation
*** New vi (Vietnamese) translation
*** Updated pt_BR (Brazilian Portuguese) translation
** Bugs fixed
*** guix pull compiles Guix deterministically and correctly
Previously, the build environment was not cleared in between compile-file
calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
*** guix package allows removal of a specific package output
(http://bugs.gnu.org/15756)
*** guix-daemon always sets umask to 022
(http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
*** Files referenced by environment variables are protected from GC
*** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
*** bootstrap-graph.{png,eps,pdf} built in srcdir (http://bugs.gnu.org/15640)
* Changes in 0.4 (since 0.3)
** Package management
*** New --list-generations and --delete-generations options
The guix package command has these two new options, which make it easier to
deal with a profiles generation. See “Invoking guix package” in the manual.
*** New guix-register program
This program allows the meta-data of a new store to be initialized, by
copying info from an existing store. It is mostly an internal tool.
** Programming interfaces
*** New API to bootstrap Autotools-based packages
The (guix build-system gnu) has a new dist-package procedure that takes a
package object and source directory, and returns a new package object that
runs ./bootstrap && make dist or anything similar.
*** derivation and related procedures have a #:references-graphs parameter
This parameter instructs the build daemon to populate the derivations build
tree with files containing the list of references of the given store files.
This is useful to write code that copies a packages and all its dependencies
to another storage device, such as a QEMU disk image.
*** Extended API to build a GNU system virtual machine image
The (gnu system vm) module has been augmented in many ways: the qemu-image
procedure can now populate and initialize the images store; the new
system-qemu-image procedure returns a QEMU image that runs dmd as its init
system, has login running on several consoles, has a set of installed
packages, and where Guix can be used.
New (gnu system …) modules have been added to handle the configuration of the
various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
support for instantiating dmd services; (gnu system linux) helps with Linux
PAM configuration; and so on.
*** <derivation> objects supersede .drv file names in the API
derivation and similar procedures no longer return two values (a
<derivation> and a .drv file name); they now return a single value, which is
a <derivation> object. The <derivation> object embeds the corresponding .drv
file name. See “Derivations” in the manual for details.
** GNU distribution
*** 60 new packages
apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
python-setuptools, python-simplejson, python-wrapper, python2-babel,
python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
valgrind, xmlto, xnee, yasm
*** 27 package updates
bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
3.3.2, texlive 2013
*** Fontconfig font search path made more convenient
Fontconfig, the library used by many graphical applications, such as those
based on GTK+, now knows where to find the default set of fonts. Additional
fonts installed in the user profile are automatically picked up.
*** More GUI applications
The emacs and racket packages are now linked against GTK+. New GTK+
applications have been added (see above.)
*** Packaging guidelines
The documentation of packaging guidelines has been augmented. See the manual
under “GNU Distribution”.
*** Support for Python 3 along with Python 2
Python 3 has been added to the distribution, and Python packages that support
it are now built for both Python 2 and Python 3. See the “Python Modules”
section of the manual for details.
** Internationalization
Updated translations: eo.
** Bugs fixed
*** Workarounds for Guile 2.0.5 now work on Debian derivatives
*** The dependency graph image has correct size in PDF output
*** 'ldd' now works correctly on x86_64
*** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
*** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
*** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
* Changes in 0.3 (since 0.2)
** Package management
*** Cross-compilation support
Guix can now cross-build packages. On the command-line, this is achieved with
the new --target command-line option of guix build. At the Scheme level,
the guts of this is the package-cross-derivation procedure. Core packages
of the distribution can already be cross-compiled. See the manual for
details.
*** New --max-silent-time option for “guix build” and “guix package”
See the manual for details.
*** New --fallback option for “guix build” and “guix package”
This option instructs to fall back to local builds when the substituter fails
to download a substitute.
*** New --requisites option for “guix gc”
See the manual for details.
*** New --key-download option for “guix refresh”
See the manual for details.
** Programming interfaces
*** New package-cross-derivation procedure in (guix derivations)
See the manual for details.
*** New %current-target-system SRFI-39 parameter
This parameter is like %current-system, but for cross-compilation. It
allows code in package definitions (such as in the arguments field) to know
whether it is being cross-compiled, and what the target system is.
*** New (guix hash) module; new open-sha256-port and sha256-port procedures
This improves performance of SHA256 computations.
** GNU distribution
*** 33 new packages
alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
*** 25 package updates
automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
1.5.1, tzdata 2013d, xorriso 1.3.0
*** Binary packages now available for i686-linux
The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
(i686-linux), in addition to the x86_64-linux binaries. Both can be
transparently used as substitutes for local builds on these platforms.
*** Debug info packages
Some packages now have a “debug” output containing debugging information. The
“debug” output can be used by GDB, and can be installed separately from the
other outputs of the package. See “Installing Debugging Files” in the manual.
*** Bootstrap binaries can be cross-compiled
The distribution can now be ported to new architectures (currently
GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
in the manual.
*** Bootstrapping documented
See “Bootstrapping” in the manual, for information on how the GNU
distribution builds “from scratch”.
** Internationalization
New translations: eo, pt_BR.
** Bugs fixed
*** “guix --help” now works when using Guile 2.0.5
*** Binary substituter multi-threading and pipe issues fixed
These could lead to random substituter crashes while substituting a binary.
See commits 0332386 and 101d9f3 for details.
*** Binary substituter gracefully handles lack of network connectivity
*** Daemon properly handles rebuilds of multiple-output derivations
Previously it would fail when rebuilding a multiple-output derivation when
some (but not all) of its outputs were already present. See
http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
https://github.com/NixOS/nix/issues/122 .
*** guix package -i foo:out no longer removes other outputs of foo
Previously only the out output of package foo would be kept in the
profile.
*** Replacement (srfi srfi-37) provided if the users one is broken
When the users (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
< 2.0.9), a replacement with the bug fix is provided. This bug would affect
command-line argument processing in some cases.
* Changes in 0.2 (since 0.1)
** Package management
*** Guix commands are now sub-commands of the “guix” program
Instead of typing “guix-package”, one now has to type “guix package”, and so
on. This has allowed us to homogenize the user interface and initial program
setup, and to allow commands to be upgradable through “guix pull”.
*** New “guix package --upgrade” option
As the name implies, this option atomically upgrades all the packages
installed in a profile or the set of packages matching a given regexp.
See “Invoking guix package” in the manual.
*** New “guix package --search” option
Performs a full text search in package synopses and descriptions, and returns
the matching packages in recutils format. See “Invoking guix package” in the
manual, for details.
*** New “guix pull” command
The command pulls the latest version of Guixboth the package management
modules and the distribution. See the manual for details.
*** New binary substituter
The “substituter” mechanism allows pre-built binaries to be transparently
downloaded instead of performing a build locally. Currently binaries are
available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
distribution is continuously built and binaries are made available from there.
See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
available binary packages.
*** New “guix refresh” command
The command is used by Guix maintainers. It automatically updates the
distribution to the latest upstream releases of GNU software.
*** New “guix hash” command
Convenience command to compute the hash of a file. See the manual for
details.
*** Nix daemon code updated
The daemon code from Nix, used by the guix-daemon command, has been updated
to current Nix master.
** Programming interfaces
*** (guix download) now supports HTTPS, using GnuTLS
It allows package source tarballs to be retrieved over HTTPS.
*** New native-search-path and search-path package fields
Packages can define in their native-search-path field environment variables
that define search paths and need to be set for proper functioning of the
package. For instance, GCC has CPATH and LIBRARY_PATH in its
native-search-path, Perl has PERL5LIB, Python has PYTHONPATH, etc.
These environment variables are automatically set when building a package that
uses one of these.
*** Package inputs can be a function of the target system type
The inputs field of a package can now be conditional on the value of
(%current-system). This is useful for packages that take system-dependent
tarballs as inputs, such as GNU/MIT Scheme.
*** New build systems
The perl-build-system, python-build-system, and cmake-build-system have
been added. They implement the standard build systems for Perl, Python, and
CMake packages.
*** Tools to build Linux initrds, QEMU images, and more
The (gnu packages linux-initrd) module provides a procedure to build a Linux
initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
evaluate the given expression. The example below returns an initrd that
mounts the /proc file system and starts a REPL:
(expression->initrd
'(begin
(mkdir "/proc")
(mount "none" "/proc" "proc")
((@ (system repl repl) start-repl))))
More examples in the linux-initrd.scm file.
Experimental interfaces to produce and use QEMU images are provided by the
(gnu system vm) module. For instance, the
expression->derivation-in-linux-vm evaluates the given Scheme expression in
a QEMU virtual machine running the Linux kernel and Guile.
** GNU distribution
Many updates and additions have been made to the distribution. Here are the
highlights.
*** Major updates
GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
Coreutils 8.20, GDB 7.6, Texinfo 5.1.
*** Noteworthy new packages
TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
CHICKEN, Scheme48, Hugs, Python, Lua, Samba.

152
README
View File

@@ -1,29 +1,70 @@
-*- mode: org -*-
Guix is Nix[0] from Guile[1]!
[[http://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and
associated free software distribution, for the [[http://www.gnu.org/gnu/gnu.html][GNU system]]. In addition
to standard package management features, Guix supports transactional
upgrades and roll-backs, unprivileged package management, per-user
profiles, and garbage collection.
Concretely, it allows Nix package management to be done entirely in
Scheme. The goal is to investigate whether Scheme, and in particular
the ability to define EDSLs, would allow it to fulfill the role of the
Nix language.
It provides [[http://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded
domain-specific languages (EDSLs) to describe how packages are to be
built and composed.
[0] http://nixos.org/nix/
[1] http://gnu.org/software/guile/
A user-land free software distribution for GNU/Linux comes as part of
Guix.
Guix is based on the [[http://nixos.org/nix/][Nix]] package manager.
* Hacking
* Requirements
Guix currently depends on the following packages:
GNU Guix currently depends on the following packages:
- [[http://gnu.org/software/guile/][GNU Guile 2.0.x]], version 2.0.5 or later
- [[http://gnupg.org/][GNU libgcrypt]]
Unless `--disable-daemon' was passed, the following packages are needed:
- [[http://sqlite.org/][SQLite 3]]
- [[http://www.bzip.org][libbz2]]
- [[http://gcc.gnu.org][GCC's g++]]
When `--disable-daemon' was passed, you instead need the following:
- [[http://gnu.org/software/guile/][GNU Guile 2.0.x]]
- [[http://nixos.org/nix/][Nix]]
- [[http://gnupg.org/][GNU libgcrypt]], or [[http://nongnu.org/libchop/][libchop]]
For bootstrapping purposes, it is useful to reuse packages from Nixpkgs.
For this to work, you need to have a checkout of the Nixpkgs repository,
with the `NIXPKGS' environment variable pointing to it.
* Installation
- [[http://nixos.org/nixpkgs/][Nixpkgs]]
See the manual for the installation instructions, either by running
info -f doc/guix.info "(guix) Installation"
or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Installation][web copy of the manual]].
For information on installation from a Git checkout, please see the HACKING
file.
* Installing Guix from Guix
You can re-build and re-install Guix using a system that already runs Guix.
To do so:
- Install the dependencies (see 'Requirements' above) and build tools using
Guix:
guix package --install={autoconf,automake,bzip2,gcc,binutils,ld-wrapper,glibc,gettext,guile,libgcrypt,pkg-config,sqlite}
- set the environment variables that Guix recommends you to set during the
package installation process:
ACLOCAL_PATH, CPATH, LIBRARY_PATH, PKG_CONFIG_PATH
- set the PATH environment variable to refer to the profile:
PATH=$HOME/.guix-profile/bin:$PATH
- re-run the configure script passing it the option
`--with-libgcrypt-prefix=$HOME/.guix-profile/'
- run "make" and "make install"
* How It Works
@@ -33,14 +74,81 @@ the promise of a build; it is stored as a text file under
`derivation' primitive, as well as higher-level wrappers such as
`build-expression->derivation'.
Guix does remote procedure calls (RPCs) to the Nix daemon (the
=nix-worker --daemon= command), which in turn performs builds and
accesses to the Nix store on its behalf. The RPCs are implemented in
the (guix store) module.
Guix does remote procedure calls (RPCs) to the Guix or Nix daemon (the
=guix-daemon= or =nix-daemon= command), which in turn performs builds
and accesses to the Nix store on its behalf. The RPCs are implemented
in the (guix store) module.
* Installing Guix as non-root
The Guix daemon allows software builds to be performed under alternate
user accounts, which are normally created specifically for this
purpose. For instance, you may have a pool of accounts in the
=guixbuild= group, and then you can instruct =guix-daemon= to use them
like this:
$ guix-daemon --build-users-group=guixbuild
However, unless it is run as root, =guix-daemon= cannot switch users.
In that case, it falls back to using a setuid-root helper program call
=nix-setuid-helper=. That program is not setuid-root by default when
you install it; instead you should run a command along these lines
(assuming Guix is installed under /usr/local):
# chown root.root /usr/local/libexec/nix-setuid-helper
# chmod 4755 /usr/local/libexec/nix-setuid-helper
* Contact
The repository is at <https://gitorious.org/guix/>.
GNU Guix is hosted at https://savannah.gnu.org/projects/guix/.
Please email <ludo@gnu.org> or <nix-dev@lists.science.uu.nl>, or
join #guile or #nixos on irc.freenode.net or `civodul'.
Please email <bug-guix@gnu.org> for bug reports or questions regarding
Guix and its distribution; email <gnu-system-discuss@gnu.org> for
general issues regarding the GNU system.
Join #guix on irc.freenode.net.
* Guix & Nix
GNU Guix is based on [[http://nixos.org/nix/][the Nix package manager]]. It implements the same
package deployment paradigm, and in fact it reuses some of its code.
Yet, different engineering decisions were made for Guix, as described
below.
Nix is really two things: a package build tool, implemented by a library
and daemon, and a special-purpose programming language. GNU Guix relies
on the former, but uses Scheme as a replacement for the latter.
Using Scheme instead of a specific language allows us to get all the
features and tooling that come with Guile (compiler, debugger, REPL,
Unicode, libraries, etc.) And it means that we have a general-purpose
language, on top of which we can have embedded domain-specific languages
(EDSLs), such as the one used to define packages. This broadens what
can be done in package recipes themselves, and what can be done around them.
Technically, Guix makes remote procedure calls to the nix-worker
daemon to perform operations on the store. At the lowest level, Nix
“derivations” represent promises of a build, stored in .drv files in
the store. Guix produces such derivations, which are then interpreted
by the daemon to perform the build. Thus, Guix derivations can use
derivations produced by Nix (and vice versa).
With Nix and the [[http://nixos.org/nixpkgs][Nixpkgs]] distribution, package composition happens at
the Nix language level, but builders are usually written in Bash.
Conversely, Guix encourages the use of Scheme for both package
composition and builders. Likewise, the core functionality of Nix is
written in C++ and Perl; Guix relies on some of the original C++ code,
but exposes all the API as Scheme.
* Related software
- [[http://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated
software distribution, are the inspiration of Guix
- [[http://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a
symlink tree to create user environments
- [[http://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea
- [[https://live.gnome.org/OSTree/][GNOME's OSTree]] allows bootable system images to be built from a
specified set of packages
- The [[http://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software
distribution; unlike Guix, it relies on core tools available on the
host system

72
ROADMAP Normal file
View File

@@ -0,0 +1,72 @@
-*- mode: org; coding: utf-8; -*-
#+TITLE: Tentative GNU Guix Road Map
Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
The goals of the GNU Guix project are two-fold:
- to build a purely functional package manager, based on Nix and
Guile;
- to use it to build a practical 100% free software distribution of
GNU/Linux and possibly other GNU variants, with a focus on the
promotion and tight integration of GNU componentsthe GNU system.
This document lists milestones toward these goals.
The timeline below was written at the end of Dec. 2012. An updated and more
detailed list of the remaining milestones was posted at
https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00120.html .
The actual timeline was of course slightly different than initially
envisioned, and so was the feature setthings like cross-compilation support
and the MIPS64 port were not planned back then. See the news section at
http://www.gnu.org/software/guix/ and NEWS for the release history.
* GNU Guix 0.1: Jan. 2013 (was: Dec. 2012)
** basic package management facilities
Including install, upgrade, remove, roll-back, and search.
** self-contained user-land distribution
- GNU/Linux-only, i686 and x86_64; optionally mipsel64
- ~100 non-X11 packages
** maybe integrated Nix code
* GNU Guix 0.2: Feb./Mar. 2013
** improved package management features
- user-environment hooks
- sophisticated handling of collisions when building a union (package
priorities, etc.)
** [[file:TODO::*add%20guix-pull][guix-pull tool]] to quickly update Guix and GNU for normal users
** support for fetching pre-built binaries
- this is known as the "binary-cache substituter" in Nix parlance
** auto-update facility available for GNU packages
** more packages
- Xorg
- Emacs
* GNU Guix 0.9: June 2013
** bootable GNU/Linux-Libre distro
** high-level OS configuration descriptive EDSL, à la NixOS
* GNU Guix 1.0: September 2013 (GNU anniversary release)
** bootable GNU/Linux-Libre distro with non-GUI installer
** usable for a range of hacker-style uses

22
THANKS
View File

@@ -1,3 +1,25 @@
A big thanks to Eelco Dolstra, who designed and implemented Nix.
Transposing functional programming discipline to package management
proved to be inspiring and fruitful.
Thanks to the following people who contributed to GNU Guix through
suggestions, bug reports, patches, internationalization, or general
infrastructure help:
Lluís Batlle i Rossell <viric@viric.name>
Felipe Castro <fefcas@gmail.com>
Daniel Clark <dclark@pobox.com>
Alexandru Cojocaru <xojoc@gmx.com>
Aleix Conchillo Flaqué <aconchillo@gmail.com>
John Darrington <john@cellform.com>
Rafael Ferreira <rafael.f.f1@gmail.com>
Christian Grothoff <christian@grothoff.org>
Jeffrin Jose <ahiliation@yahoo.co.in>
Kete <kete@ninthfloor.org>
Matthew Lien <bluet@bluet.org>
Niels Möller <nisse@lysator.liu.se>
Yutaka Niibe <gniibe@fsij.org>
Cyrill Schenkel <cyrill.schenkel@gmail.com>
Jason Self <jself@gnu.org>
Alen Skondro <askondro@gmail.com>
Matthias Wachs <wachs@net.in.tum.de>

145
TODO Normal file
View File

@@ -0,0 +1,145 @@
-*- mode: org; coding: utf-8; -*-
#+TITLE: What's left to do?
#+STARTUP: content hidestars
Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
* integrate needed Nix code
** MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]]
Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or
rather libswift (since DHTs arent suited for large payloads). Guix users
would sign their binaries, and define which binaries they trust.
Use UPnP and similar to traverse NAT, like filegive does.
** Add a remote build hook
Like scripts/build-remote.pl in Nix.
* Add `guix publish' to publish the store using Guile's web server
Generate narinfos and nars on the fly, upon HTTP GET requests.
Ideally, extend .nix-cache-info to include the server's public key, and also
reply to requests for .narinfo.sig.
Optionally, use Guile-Avahi to publish the service.
* user interface
** Add a package.el (Emacs) back-end
package.el is quite monolithic, but we may be able to reuse/extend
package-menu-mode or at least tabulated-list-mode.
** add guile-ncurses interface
* extend <package>
** add recommends field
For instance, glibc, binutils, gcc, and ld-wrapper would recommend each other.
guix package -i could ask interactively (?), or allow users to follow all or
none of the recommendations.
** add a user-environment-hook
This should specify builder code to be run when building a user
environment with guix-package. For instance, Texinfos hook would
create a new dir.
** extend propagated-build-inputs with support for multiple outputs
#+BEGIN_SRC scheme
(outputs '("out" "include"))
(propagated-build-inputs
`(((("i1" ,p1 "o1")
("i2" ,p2))
=> "include")
("i3" ,p3)))
#+END_SRC
* MAYBE use HOP-like escapes to refer to inputs in build-side code
Instead of doing things like:
#+BEGIN_SRC scheme
(inputs `(("foo" ,foo)))
(arguments '(#:configure-flags
(list (string-append "--with-foo="
(assoc-ref %build-inputs "foo")))))
#+END_SRC
Allow things like:
#+BEGIN_SRC scheme
(inputs (list foo))
(arguments ~(#:configure-flags
(list (string-append "--with-foo=" $foo))))
#+END_SRC
... where '~' is 'build-quote' and '$' is 'build-unquote'. Better yet,
automatically compute the list of references of an expression passed to
'derivation-expression'.
Use a [[http://dorophone.blogspot.fr/2011/09/scheme-syntax-is-monad.html][monad]] for the syntax.
* synchronize non-GNU package descriptions with the [[http://directory.fsf.org][FSD]]
Meta-data for GNU packages, including descriptions and synopses, can be
dumped from the FSD:
http://directory.fsf.org/wiki?title=GNU/Export&action=purge .
We could periodically synchronize with that.
* add a guildhall build system
The Guildhall is Guiles packaging system. It should be easy to add a
guildhall-build-system that does the right thing based on guildhall
recipes.
* add allowed-references in <package>
[[file:~/src/nix/src/libstore/build.cc::if%20(drv.env.find("allowedReferences")%20!%3D%20drv.env.end())%20{][See how Nix implements that internally]].
* union
Support sophisticated collision handling when building a union: check
whether the colliding files are identical, honor per-package priorities,
etc.
* add GUIX_ALLOW_EXPENSIVE_TESTS
Tests that need to download stuff or otherwise take a long time would only be
run when that is defined.
* add "guix challenge"
Would download a substitute, and compare its contents against a (hopefully
locally-built) copy.
* guix build utils
** MAYBE Change ld-wrapper to add RPATH for libs passed by file name
** MAYBE Add equivalent to chrpath that uses [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]]
** MAYBE Add a hash-rewriting thing for deep dependency replacement without rebuild
See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]].
* distro
** port to new GNU/Linux platforms, notably mipsel64-linux
** port to GNU/Hurd, aka. i686-gnu
Problems include that current glibc releases do not build on GNU/Hurd.
In addition, there havent been stable releases of GNU Mach, MiG, and
Hurd, which would be a pre-condition.
** make a bootable GNU/Linux-Libre distro, with OS configuration EDSL
Similar in spirit to /etc/nixos/configuration.nix.

15
bootstrap Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
# Import missing source files and create the build system.
set -e -x
top_srcdir="$PWD"
export top_srcdir
git submodule init
git submodule update
./nix/sync-with-upstream
exec autoreconf -vfi

View File

@@ -0,0 +1,58 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; Check whether important binaries are available at hydra.gnu.org.
;;;
(use-modules (guix store)
(guix packages)
(guix derivations)
(gnu packages emacs)
(gnu packages make-bootstrap)
(srfi srfi-1)
(srfi srfi-26))
(define %supported-systems
'("x86_64-linux" "i686-linux"))
(let* ((store (open-connection))
(native (append-map (lambda (system)
(map (cut package-derivation store <> system)
(list %bootstrap-tarballs emacs)))
%supported-systems))
(cross (map (cut package-cross-derivation store
%bootstrap-tarballs <>)
'("mips64el-linux-gnuabi64")))
(total (append native cross)))
(define (warn proc)
(lambda (drv)
(or (proc drv)
(begin
(format (current-error-port) "~a is not substitutable~%"
drv)
#f))))
(set-build-options store #:use-substitutes? #t)
(let ((result (every (compose (warn (cut has-substitutes? store <>))
derivation->output-path)
total)))
(when result
(format (current-error-port) "~a packages found substitutable~%"
(length total)))
(exit result)))

68
build-aux/download.scm Normal file
View File

@@ -0,0 +1,68 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; Download a binary file from an external source.
;;;
(use-modules (ice-9 match)
(web uri)
(web client)
(rnrs io ports)
(srfi srfi-11)
(guix utils)
(guix hash))
(define %url-base
"http://alpha.gnu.org/gnu/guix/bootstrap"
;; Alternately:
;;"http://www.fdn.fr/~lcourtes/software/guix/packages"
)
;; XXX: Work around <http://bugs.gnu.org/13095>, present in Guile
;; up to 2.0.7.
(module-define! (resolve-module '(web client))
'shutdown (const #f))
(define (file-name->uri file)
"Return the URI for FILE."
(match (string-tokenize file (char-set-complement (char-set #\/)))
((_ ... system basename)
(string->uri (string-append %url-base "/" system
"/20131110/" basename)))))
(match (command-line)
((_ file expected-hash)
(let ((uri (file-name->uri file)))
(format #t "downloading file `~a' from `~a'...~%"
file (uri->string uri))
(let*-values (((resp data) (http-get uri #:decode-body? #f))
((hash) (bytevector->base16-string (sha256 data)))
((part) (string-append file ".part")))
(if (string=? expected-hash hash)
(begin
(call-with-output-file part
(lambda (port)
(put-bytevector port data)))
(rename-file part file))
(begin
(format (current-error-port)
"file at `~a' has SHA256 ~a; expected ~a~%"
(uri->string uri) hash expected-hash)
(exit 1)))))))

432
build-aux/gitlog-to-changelog Executable file
View File

@@ -0,0 +1,432 @@
eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
& eval 'exec perl -wS "$0" $argv:q'
if 0;
# Convert git log output to ChangeLog format.
my $VERSION = '2012-07-29 06:11'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
# Copyright (C) 2008-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Written by Jim Meyering
use strict;
use warnings;
use Getopt::Long;
use POSIX qw(strftime);
(my $ME = $0) =~ s|.*/||;
# use File::Coda; # http://meyering.net/code/Coda/
END {
defined fileno STDOUT or return;
close STDOUT and return;
warn "$ME: failed to close standard output: $!\n";
$? ||= 1;
}
sub usage ($)
{
my ($exit_code) = @_;
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
if ($exit_code != 0)
{
print $STREAM "Try '$ME --help' for more information.\n";
}
else
{
print $STREAM <<EOF;
Usage: $ME [OPTIONS] [ARGS]
Convert git log output to ChangeLog format. If present, any ARGS
are passed to "git log". To avoid ARGS being parsed as options to
$ME, they may be preceded by '--'.
OPTIONS:
--amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
makes a change to SHA1's commit log text or metadata.
--append-dot append a dot to the first line of each commit message if
there is no other punctuation or blank at the end.
--no-cluster never cluster commit messages under the same date/author
header; the default is to cluster adjacent commit messages
if their headers are the same and neither commit message
contains multiple paragraphs.
--srcdir=DIR the root of the source tree, from which the .git/
directory can be derived.
--since=DATE convert only the logs since DATE;
the default is to convert all log entries.
--format=FMT set format string for commit subject and body;
see 'man git-log' for the list of format metacharacters;
the default is '%s%n%b%n'
--strip-tab remove one additional leading TAB from commit message lines.
--strip-cherry-pick remove data inserted by "git cherry-pick";
this includes the "cherry picked from commit ..." line,
and the possible final "Conflicts:" paragraph.
--help display this help and exit
--version output version information and exit
EXAMPLE:
$ME --since=2008-01-01 > ChangeLog
$ME -- -n 5 foo > last-5-commits-to-branch-foo
SPECIAL SYNTAX:
The following types of strings are interpreted specially when they appear
at the beginning of a log message line. They are not copied to the output.
Copyright-paperwork-exempt: Yes
Append the "(tiny change)" notation to the usual "date name email"
ChangeLog header to mark a change that does not require a copyright
assignment.
Co-authored-by: Joe User <user\@example.com>
List the specified name and email address on a second
ChangeLog header, denoting a co-author.
Signed-off-by: Joe User <user\@example.com>
These lines are simply elided.
In a FILE specified via --amend, comment lines (starting with "#") are ignored.
FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
a line) referring to a commit in the current project, and CODE refers to one
or more consecutive lines of Perl code. Pairs must be separated by one or
more blank line.
Here is sample input for use with --amend=FILE, from coreutils:
3a169f4c5d9159283548178668d2fae6fced3030
# fix typo in title:
s/all tile types/all file types/
1379ed974f1fa39b12e2ffab18b3f7a607082202
# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
# Change the author to be Paul. Note the escaped "@":
s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
EOF
}
exit $exit_code;
}
# If the string $S is a well-behaved file name, simply return it.
# If it contains white space, quotes, etc., quote it, and return the new string.
sub shell_quote($)
{
my ($s) = @_;
if ($s =~ m![^\w+/.,-]!)
{
# Convert each single quote to '\''
$s =~ s/\'/\'\\\'\'/g;
# Then single quote the string.
$s = "'$s'";
}
return $s;
}
sub quoted_cmd(@)
{
return join (' ', map {shell_quote $_} @_);
}
# Parse file F.
# Comment lines (starting with "#") are ignored.
# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
# (alone on a line) referring to a commit in the current project, and
# CODE refers to one or more consecutive lines of Perl code.
# Pairs must be separated by one or more blank line.
sub parse_amend_file($)
{
my ($f) = @_;
open F, '<', $f
or die "$ME: $f: failed to open for reading: $!\n";
my $fail;
my $h = {};
my $in_code = 0;
my $sha;
while (defined (my $line = <F>))
{
$line =~ /^\#/
and next;
chomp $line;
$line eq ''
and $in_code = 0, next;
if (!$in_code)
{
$line =~ /^([0-9a-fA-F]{40})$/
or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
$fail = 1, next;
$sha = lc $1;
$in_code = 1;
exists $h->{$sha}
and (warn "$ME: $f:$.: duplicate SHA1\n"),
$fail = 1, next;
}
else
{
$h->{$sha} ||= '';
$h->{$sha} .= "$line\n";
}
}
close F;
$fail
and exit 1;
return $h;
}
# git_dir_option $SRCDIR
#
# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
# is undef). Return as a list (0 or 1 element).
sub git_dir_option($)
{
my ($srcdir) = @_;
my @res = ();
if (defined $srcdir)
{
my $qdir = shell_quote $srcdir;
my $cmd = "cd $qdir && git rev-parse --show-toplevel";
my $qcmd = shell_quote $cmd;
my $git_dir = qx($cmd);
defined $git_dir
or die "$ME: cannot run $qcmd: $!\n";
$? == 0
or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
chomp $git_dir;
push @res, "--git-dir=$git_dir/.git";
}
@res;
}
{
my $since_date;
my $format_string = '%s%n%b%n';
my $amend_file;
my $append_dot = 0;
my $cluster = 1;
my $strip_tab = 0;
my $strip_cherry_pick = 0;
my $srcdir;
GetOptions
(
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
'since=s' => \$since_date,
'format=s' => \$format_string,
'amend=s' => \$amend_file,
'append-dot' => \$append_dot,
'cluster!' => \$cluster,
'strip-tab' => \$strip_tab,
'strip-cherry-pick' => \$strip_cherry_pick,
'srcdir=s' => \$srcdir,
) or usage 1;
defined $since_date
and unshift @ARGV, "--since=$since_date";
# This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
# that makes a correction in the log or attribution of that commit.
my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
my @cmd = ('git',
git_dir_option $srcdir,
qw(log --log-size),
'--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV);
open PIPE, '-|', @cmd
or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
. "(Is your Git too old? Version 1.5.1 or later is required.)\n");
my $prev_multi_paragraph;
my $prev_date_line = '';
my @prev_coauthors = ();
while (1)
{
defined (my $in = <PIPE>)
or last;
$in =~ /^log size (\d+)$/
or die "$ME:$.: Invalid line (expected log size):\n$in";
my $log_nbytes = $1;
my $log;
my $n_read = read PIPE, $log, $log_nbytes;
$n_read == $log_nbytes
or die "$ME:$.: unexpected EOF\n";
# Extract leading hash.
my ($sha, $rest) = split ':', $log, 2;
defined $sha
or die "$ME:$.: malformed log entry\n";
$sha =~ /^[0-9a-fA-F]{40}$/
or die "$ME:$.: invalid SHA1: $sha\n";
# If this commit's log requires any transformation, do it now.
my $code = $amend_code->{$sha};
if (defined $code)
{
eval 'use Safe';
my $s = new Safe;
# Put the unpreprocessed entry into "$_".
$_ = $rest;
# Let $code operate on it, safely.
my $r = $s->reval("$code")
or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
# Note that we've used this entry.
delete $amend_code->{$sha};
# Update $rest upon success.
$rest = $_;
}
# Remove lines inserted by "git cherry-pick".
if ($strip_cherry_pick)
{
$rest =~ s/^\s*Conflicts:\n.*//sm;
$rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
}
my @line = split "\n", $rest;
my $author_line = shift @line;
defined $author_line
or die "$ME:$.: unexpected EOF\n";
$author_line =~ /^(\d+) (.*>)$/
or die "$ME:$.: Invalid line "
. "(expected date/author/email):\n$author_line\n";
# Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
# `(tiny change)' annotation.
my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
? ' (tiny change)' : '');
my $date_line = sprintf "%s %s$tiny\n",
strftime ("%F", localtime ($1)), $2;
my @coauthors = grep /^Co-authored-by:.*$/, @line;
# Omit meta-data lines we've already interpreted.
@line = grep !/^(?:Signed-off-by:[ ].*>$
|Co-authored-by:[ ]
|Copyright-paperwork-exempt:[ ]
)/x, @line;
# Remove leading and trailing blank lines.
if (@line)
{
while ($line[0] =~ /^\s*$/) { shift @line; }
while ($line[$#line] =~ /^\s*$/) { pop @line; }
}
# Record whether there are two or more paragraphs.
my $multi_paragraph = grep /^\s*$/, @line;
# Format 'Co-authored-by: A U Thor <email@example.com>' lines in
# standard multi-author ChangeLog format.
for (@coauthors)
{
s/^Co-authored-by:\s*/\t /;
s/\s*</ </;
/<.*?@.*\..*>/
or warn "$ME: warning: missing email address for "
. substr ($_, 5) . "\n";
}
# If clustering of commit messages has been disabled, if this header
# would be different from the previous date/name/email/coauthors header,
# or if this or the previous entry consists of two or more paragraphs,
# then print the header.
if ( ! $cluster
|| $date_line ne $prev_date_line
|| "@coauthors" ne "@prev_coauthors"
|| $multi_paragraph
|| $prev_multi_paragraph)
{
$prev_date_line eq ''
or print "\n";
print $date_line;
@coauthors
and print join ("\n", @coauthors), "\n";
}
$prev_date_line = $date_line;
@prev_coauthors = @coauthors;
$prev_multi_paragraph = $multi_paragraph;
# If there were any lines
if (@line == 0)
{
warn "$ME: warning: empty commit message:\n $date_line\n";
}
else
{
if ($append_dot)
{
# If the first line of the message has enough room, then
if (length $line[0] < 72)
{
# append a dot if there is no other punctuation or blank
# at the end.
$line[0] =~ /[[:punct:]\s]$/
or $line[0] .= '.';
}
}
# Remove one additional leading TAB from each line.
$strip_tab
and map { s/^\t// } @line;
# Prefix each non-empty line with a TAB.
@line = map { length $_ ? "\t$_" : '' } @line;
print "\n", join ("\n", @line), "\n";
}
defined ($in = <PIPE>)
or last;
$in ne "\n"
and die "$ME:$.: unexpected line:\n$in";
}
close PIPE
or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
# FIXME-someday: include $PROCESS_STATUS in the diagnostic
# Complain about any unused entry in the --amend=F specified file.
my $fail = 0;
foreach my $sha (keys %$amend_code)
{
warn "$ME:$amend_file: unused entry: $sha\n";
$fail = 1;
}
exit $fail;
}
# Local Variables:
# mode: perl
# indent-tabs-mode: nil
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "my $VERSION = '"
# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "'; # UTC"
# End:

View File

@@ -0,0 +1,62 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; This file defines an operating system configuration for the demo virtual
;;; machine images that we build.
;;;
(use-modules (gnu packages emacs)
(gnu packages xorg)
(gnu packages base)
(gnu packages admin)
(gnu packages guile)
(gnu packages bash)
(gnu packages linux)
(gnu packages less)
(gnu packages tor)
(gnu system shadow) ; 'user-account'
(gnu services base)
(gnu services networking)
(gnu services xorg))
(operating-system
(host-name "gnu")
(timezone "Europe/Paris")
(locale "en_US.UTF-8")
(users (list (user-account
(name "guest")
(uid 1000) (gid 100)
(comment "Guest of GNU")
(home-directory "/home/guest"))))
(services (cons* (slim-service #:auto-login? #f
#:default-user "root")
;; QEMU networking settings.
(static-networking-service "eth0" "10.0.2.10"
#:name-servers '("10.0.2.3")
#:gateway "10.0.2.2")
%base-services))
(packages (list bash coreutils findutils grep sed
procps psmisc less
guile-2.0 dmd util-linux inetutils
xterm emacs
tor)))

View File

@@ -0,0 +1,202 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; This file defines build jobs for the Hydra continuation integration
;;; tool.
;;;
;; Attempt to use our very own Guix modules.
(eval-when (compile load eval)
;; Ignore any available .go, and force recompilation. This is because our
;; checkout in the store has mtime set to the epoch, and thus .go files look
;; newer, even though they may not correspond.
(set! %fresh-auto-compile #t)
(and=> (assoc-ref (current-source-location) 'filename)
(lambda (file)
(let ((dir (string-append (dirname file) "/../..")))
(format (current-error-port) "prepending ~s to the load path~%"
dir)
(set! %load-path (cons dir %load-path))))))
(use-modules (guix config)
(guix store)
(guix packages)
(guix derivations)
(guix monads)
((guix licenses) #:select (gpl3+))
((guix utils) #:select (%current-system))
((guix scripts system) #:select (read-operating-system))
(gnu packages)
(gnu packages gcc)
(gnu packages base)
(gnu packages gawk)
(gnu packages guile)
(gnu packages gettext)
(gnu packages compression)
(gnu packages multiprecision)
(gnu packages make-bootstrap)
(gnu system)
(gnu system vm)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
;; port to the bit bucket, let us write to the error port instead.
(setvbuf (current-error-port) _IOLBF)
(set-current-output-port (current-error-port))
(define* (package->alist store package system
#:optional (package-derivation package-derivation))
"Convert PACKAGE to an alist suitable for Hydra."
`((derivation . ,(derivation-file-name
(package-derivation store package system)))
(description . ,(package-synopsis package))
(long-description . ,(package-description package))
(license . ,(package-license package))
(home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org"))
;; Work around versions of 'hydra-eval-guile-jobs' before Hydra commit
;; 61448ca (27 Feb. 2014) which used a default timeout of 2h.
(timeout . 72000)))
(define (package-job store job-name package system)
"Return a job called JOB-NAME that builds PACKAGE on SYSTEM."
(let ((job-name (symbol-append job-name (string->symbol ".")
(string->symbol system))))
`(,job-name . ,(cut package->alist store package system))))
(define (package-cross-job store job-name package target system)
"Return a job called TARGET.JOB-NAME that cross-builds PACKAGE for TARGET on
SYSTEM."
`(,(symbol-append (string->symbol target) (string->symbol ".") job-name
(string->symbol ".") (string->symbol system)) .
,(cute package->alist store package system
(cut package-cross-derivation <> <> target <>))))
(define %core-packages
;; Note: Don't put the '-final' package variants because (1) that's
;; implicit, and (2) they cannot be cross-built (due to the explicit input
;; chain.)
(list gcc-4.8 gcc-4.7 glibc binutils
gmp mpfr mpc coreutils findutils diffutils patch sed grep
gawk gnu-gettext hello guile-2.0 zlib gzip xz
%bootstrap-binaries-tarball
%binutils-bootstrap-tarball
%glibc-bootstrap-tarball
%gcc-bootstrap-tarball
%guile-bootstrap-tarball
%bootstrap-tarballs))
(define %packages-to-cross-build
%core-packages)
(define %cross-targets
'("mips64el-linux-gnu"
"mips64el-linux-gnuabi64"))
(define (qemu-jobs store system)
"Return a list of jobs that build QEMU images for SYSTEM."
(define (->alist drv)
`((derivation . ,(derivation-file-name drv))
(description . "Stand-alone QEMU image of the GNU system")
(long-description . "This is a demo stand-alone QEMU image of the GNU
system.")
(license . ,gpl3+)
(home-page . ,%guix-home-page-url)
(maintainers . ("bug-guix@gnu.org"))))
(define (->job name drv)
(let ((name (symbol-append name (string->symbol ".")
(string->symbol system))))
`(,name . ,(cut ->alist drv))))
(if (string=? system "x86_64-linux")
(let* ((dir (dirname (assoc-ref (current-source-location) 'filename)))
(file (string-append dir "/demo-os.scm"))
(os (read-operating-system file)))
(if (operating-system? os)
(list (->job 'qemu-image
(run-with-store store (system-qemu-image os))))
'()))
'()))
(define (hydra-jobs store arguments)
"Return Hydra jobs."
(define systems
;; Systems we want to build for.
'("x86_64-linux" "i686-linux"))
(define subset
(match (assoc-ref arguments 'subset)
("core" 'core) ; only build core packages
(_ 'all))) ; build everything
(define job-name
(compose string->symbol package-full-name))
(define (cross-jobs system)
(define (from-32-to-64? target)
;; Return true if SYSTEM is 32-bit and TARGET is 64-bit.
;; This hacks prevents known-to-fail cross-builds from i686-linux to
;; mips64el-linux-gnuabi64.
(and (string-prefix? "i686-" system)
(string-suffix? "64" target)))
(append-map (lambda (target)
(map (lambda (package)
(package-cross-job store (job-name package)
package target system))
%packages-to-cross-build))
(remove from-32-to-64? %cross-targets)))
;; Return one job for each package, except bootstrap packages.
(let ((base-packages (delete-duplicates
(append-map (match-lambda
((_ package _ ...)
(match (package-transitive-inputs
package)
(((_ inputs _ ...) ...)
inputs))))
%final-inputs))))
(append-map (lambda (system)
(case subset
((all)
;; Build everything.
(fold-packages (lambda (package result)
(if (member package base-packages)
result
(cons (package-job store (job-name package)
package system)
result)))
(append (qemu-jobs store system)
(cross-jobs system))))
((core)
;; Build core packages only.
(append (map (lambda (package)
(package-job store (job-name package)
package system))
%core-packages)
(cross-jobs system)))
(else
(error "unknown subset" subset))))
systems)))

116
build-aux/hydra/guix.scm Normal file
View File

@@ -0,0 +1,116 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; This file defines build jobs of Guix itself for the Hydra continuation
;;; integration tool.
;;;
;; Attempt to use our very own Guix modules.
(eval-when (compile load eval)
;; Ignore any available .go, and force recompilation. This is because our
;; checkout in the store has mtime set to the epoch, and thus .go files look
;; newer, even though they may not correspond.
(set! %fresh-auto-compile #t)
;; Display which files are loaded.
(set! %load-verbosely #t)
(and=> (assoc-ref (current-source-location) 'filename)
(lambda (file)
(let ((dir (string-append (dirname file) "/../..")))
(format (current-error-port) "prepending ~s to the load path~%"
dir)
(set! %load-path (cons dir %load-path))))))
(use-modules (guix store)
(guix packages)
(guix utils)
(guix derivations)
(guix build-system gnu)
(gnu packages version-control)
(gnu packages package-management)
(gnu packages graphviz)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
;; port to the bit bucket, let us write to the error port instead.
(setvbuf (current-error-port) _IOLBF)
(set-current-output-port (current-error-port))
(define* (package->alist store package system
#:optional (package-derivation package-derivation))
"Convert PACKAGE to an alist suitable for Hydra."
`((derivation . ,(derivation-file-name
(package-derivation store package system)))
(description . ,(package-synopsis package))
(long-description . ,(package-description package))
(license . ,(package-license package))
(home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org"))))
(define (tarball-package checkout nix-checkout)
"Return a package that does `make distcheck' from CHECKOUT, a directory
containing a Git checkout of Guix."
(let ((dist (dist-package guix checkout)))
(package (inherit dist)
(location (source-properties->location (current-source-location)))
(arguments (substitute-keyword-arguments (package-arguments dist)
((#:phases p)
`(alist-cons-before
'autoreconf 'set-nix-submodule
(lambda _
;; Tell Git to use the Nix checkout that Hydra gave us.
(zero?
(system* "git" "config" "submodule.nix-upstream.url"
,nix-checkout)))
,p))))
(native-inputs `(("git" ,git)
("graphviz" ,graphviz)
,@(package-native-inputs dist))))))
(define (hydra-jobs store arguments)
"Return Hydra jobs."
(define systems
(match (filter-map (match-lambda
(('system . value)
value)
(_ #f))
arguments)
((lst ..1)
lst)
(_
(list (%current-system)))))
(define guix-checkout
(assq-ref arguments 'guix))
(define nix-checkout
(assq-ref arguments 'nix))
(format (current-error-port) "using checkout ~s (Nix: ~s)~%"
guix-checkout nix-checkout)
(let ((guix (assq-ref guix-checkout 'file-name))
(nix (assq-ref nix-checkout 'file-name)))
`((tarball . ,(cute package->alist store
(tarball-package guix nix)
(%current-system))))))

427
build-aux/list-packages.scm Executable file
View File

@@ -0,0 +1,427 @@
#!/bin/sh
exec guile -l "$0" \
-c '(apply (@ (list-packages) list-packages)
(cdr (command-line)))'
!#
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (list-packages)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix gnu-maintenance)
#:use-module (gnu packages)
#:use-module (sxml simple)
#:use-module (sxml fold)
#:use-module (web uri)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:export (list-packages))
;;; Commentary:
;;;
;;; Emit an HTML representation of the packages available in GNU Guix.
;;;
;;; Code:
(define lookup-gnu-package
(let ((gnu (official-gnu-packages)))
(lambda (name)
"Return the package description for GNU package NAME, or #f."
(find (lambda (package)
(equal? (gnu-package-name package) name))
gnu))))
(define (list-join lst item)
"Join the items in LST by inserting ITEM between each pair of elements."
(let loop ((lst lst)
(result '()))
(match lst
(()
(match (reverse result)
(()
'())
((_ rest ...)
rest)))
((head tail ...)
(loop tail
(cons* head item result))))))
(define (package->sxml package previous description-ids remaining)
"Return 3 values: the HTML-as-SXML for PACKAGE added to all previously
collected package output in PREVIOUS, a list of DESCRIPTION-IDS and the number
of packages still to be processed in REMAINING. Also Introduces a call to the
JavaScript prep_pkg_descs function as part of the output of PACKAGE, every
time the length of DESCRIPTION-IDS, increasing, is 15 or when REMAINING,
decreasing, is 1."
(define (location-url loc)
(string-append "http://git.savannah.gnu.org/cgit/guix.git/tree/"
(location-file loc) "#n"
(number->string (location-line loc))))
(define (source-url package)
(let ((loc (package-location package)))
(and loc (location-url loc))))
(define (license package)
(define ->sxml
(match-lambda
((lst ...)
`(div ,(map ->sxml lst)))
((? license? license)
(let ((uri (license-uri license)))
(case (and=> (and uri (string->uri uri)) uri-scheme)
((http https)
`(div (a (@ (href ,uri)
(title "Link to the full license"))
,(license-name license))))
(else
`(div ,(license-name license) " ("
,(license-comment license) ")")))))
(#f "")))
(->sxml (package-license package)))
(define (patches package)
(define (patch-url patch)
(string-append
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/"
(basename patch)))
(define (snippet-link snippet)
(let ((loc (or (package-field-location package 'source)
(package-location package))))
`(a (@ (href ,(location-url loc))
(title "Link to patch snippet"))
"snippet")))
(and (origin? (package-source package))
(let ((patches (origin-patches (package-source package)))
(snippet (origin-snippet (package-source package))))
(and (or (pair? patches) snippet)
`(div "patches: "
,(let loop ((patches patches)
(number 1)
(links '()))
(match patches
(()
(let* ((additional (and snippet
(snippet-link snippet)))
(links (if additional
(cons additional links)
links)))
(list-join (reverse links) ", ")))
((patch rest ...)
(loop rest
(+ 1 number)
(cons `(a (@ (href ,(patch-url patch))
(title ,(string-append
"Link to "
(basename patch))))
,(number->string number))
links))))))))))
(define (status package)
(define (url system)
`(a (@ (href ,(string-append "http://hydra.gnu.org/job/gnu/master/"
(package-full-name package) "."
system))
(title "View the status of this architecture's build at Hydra"))
,system))
`(div "status: "
,(url "x86_64-linux") " "
,(url "i686-linux")))
(define (package-logo name)
(and=> (lookup-gnu-package name)
gnu-package-logo))
(define (insert-tr description-id js?)
(define (insert-js-call description-ids)
"Return an sxml call to prep_pkg_descs, with up to 15 elements of
description-ids as formal parameters."
`(script (@ (type "text/javascript"))
,(format #f "prep_pkg_descs(~a)"
(string-append "'"
(string-join description-ids "', '")
"'"))))
(let ((description-ids (cons description-id description-ids)))
`(tr (td ,(if (gnu-package? package)
`(img (@ (src "/graphics/gnu-head-mini.png")
(alt "Part of GNU")
(title "Part of GNU")))
""))
(td (a (@ (href ,(source-url package))
(title "Link to the Guix package source code"))
,(package-name package) " "
,(package-version package)))
(td (span ,(package-synopsis package))
(div (@ (id ,description-id))
,(match (package-logo (package-name package))
((? string? url)
`(img (@ (src ,url)
(height "35")
(class "package-logo")
(alt ("Logo of " ,(package-name package))))))
(_ #f))
(p ,(package-description package))
,(license package)
(a (@ (href ,(package-home-page package))
(title "Link to the package's website"))
,(package-home-page package))
,(status package)
,(patches package)
,(if js?
(insert-js-call description-ids)
""))))))
(let ((description-id (symbol->string
(gensym (package-name package)))))
(cond ((= remaining 1) ; Last package in packages
(values
(reverse ; Fold has reversed packages
(cons (insert-tr description-id 'js) ; Prefix final sxml
previous))
'() ; No more work to do
0)) ; End of the line
((= (length description-ids) 15) ; Time for a JS call
(values
(cons (insert-tr description-id 'js)
previous) ; Prefix new sxml
'() ; Reset description-ids
(1- remaining))) ; Reduce remaining
(else ; Insert another row, and build description-ids
(values
(cons (insert-tr description-id #f)
previous) ; Prefix new sxml
(cons description-id description-ids) ; Update description-ids
(1- remaining)))))) ; Reduce remaining
(define (packages->sxml packages)
"Return an HTML page as SXML describing PACKAGES."
`(div
(h2 "GNU Guix Package List")
(div (@ (id "intro"))
(div
(img (@ (src "graphics/guix-logo.small.png")
(alt "GNU Guix and the GNU System")
(height "83"))))
(p "This web page lists the packages currently provided by the "
(a (@ (href "manual/guix.html#GNU-Distribution"))
"GNU system distribution")
" of "
(a (@ (href "/software/guix/guix.html")) "GNU Guix") ". "
"Our " (a (@ (href "http://hydra.gnu.org/jobset/gnu/master"))
"continuous integration system")
" shows their current build status."))
(table (@ (id "packages"))
(tr (th "GNU?")
(th "Package version")
(th "Package details"))
,@(fold-values package->sxml packages '() '() (length packages)))
(a (@ (href "#intro")
(title "Back to top.")
(id "top"))
"^")))
(define (insert-css)
"Return the CSS for the list-packages page."
(format #t
"<style>
/* license: CC0 */
a {
transition: all 0.3s;
}
div#intro {
margin-bottom: 2em;
}
div#intro div, div#intro p {
padding:0.5em;
}
div#intro div {
float:left;
}
div#intro img {
float:left;
padding:0.75em;
}
table#packages, table#packages tr, table#packages tbody, table#packages td, table#packages th {
border: 0px solid black;
clear: both;
}
table#packages tr:nth-child(even) {
background-color: #FFF;
}
table#packages tr:nth-child(odd) {
background-color: #EEE;
}
table#packages tr:hover, table#packages tr:focus, table#packages tr:active {
background-color: #DDD;
}
table#packages tr:first-child, table#packages tr:first-child:hover, table#packages tr:first-child:focus, table#packages tr:first-child:active {
background-color: #333;
color: #fff;
}
table#packages td {
margin:0px;
padding:0.2em 0.5em;
}
table#packages td:first-child {
width:10%;
text-align:center;
}
table#packages td:nth-child(2) {
width:30%;
}
table#packages td:last-child {
width:60%;
}
img.package-logo {
float: left;
padding: 0.75em;
}
table#packages span {
font-weight: 700;
}
table#packages span a {
float: right;
font-weight: 500;
}
a#top {
position:fixed;
right:10px;
bottom:10px;
font-size:150%;
background-color:#EEE;
padding:10px 7.5px 0 7.5px;
text-decoration:none;
color:#000;
border-radius:5px;
}
a#top:hover, a#top:focus {
background-color:#333;
color:#fff;
}
</style>"))
(define (insert-js)
"Return the JavaScript for the list-packages page."
(format #t
"<script type=\"text/javascript\">
// license: CC0
function show_hide(idThing)
{
if(document.getElementById && document.createTextNode) {
var thing = document.getElementById(idThing);
/* Used to change the link text, depending on whether description is
collapsed or expanded */
var thingLink = thing.previousSibling.lastChild.firstChild;
if (thing) {
if (thing.style.display == \"none\") {
thing.style.display = \"\";
thingLink.data = 'Collapse';
} else {
thing.style.display = \"none\";
thingLink.data = 'Expand';
}
}
}
}
/* Add controllers used for collapse/expansion of package descriptions */
function prep(idThing)
{
var tdThing = document.getElementById(idThing).parentNode;
if (tdThing) {
var aThing = tdThing.firstChild.appendChild(document.createElement('a'));
aThing.setAttribute('href', 'javascript:void(0)');
aThing.setAttribute('title', 'show/hide package description');
aThing.appendChild(document.createTextNode('Expand'));
aThing.onclick=function(){show_hide(idThing);};
/* aThing.onkeypress=function(){show_hide(idThing);}; */
}
}
/* Take n element IDs, prepare them for javascript enhanced
display and hide the IDs by default. */
function prep_pkg_descs()
{
if(document.getElementById && document.createTextNode) {
for(var i=0; i<arguments.length; i++) {
prep(arguments[i])
show_hide(arguments[i]);
}
}
}
</script>"))
(define (list-packages . args)
"Return an HTML page listing all the packages found in the GNU distribution,
with gnu.org server-side include and all that."
;; Don't attempt to translate descriptions.
(setlocale LC_ALL "C")
;; Output the page as UTF-8 since that's what the gnu.org server-side
;; headers claim.
(set-port-encoding! (current-output-port) "UTF-8")
(let ((packages (sort (fold-packages cons '())
(lambda (p1 p2)
(string<? (package-name p1) (package-name p2))))))
(format #t "<!--#include virtual=\"/server/html5-header.html\" -->
<!-- Parent-Version: 1.70 $ -->
<title>GNU Guix - GNU Distribution - GNU Project</title>
")
(insert-css)
(insert-js)
(format #t "<!--#include virtual=\"/server/banner.html\" -->")
(sxml->xml (packages->sxml packages))
(format #t "</div>
<!--#include virtual=\"/server/footer.html\" -->
<div id=\"footer\">
<p>Please send general FSF &amp; GNU inquiries to
<a href=\"mailto:gnu@gnu.org\">&lt;gnu@gnu.org&gt;</a>.
There are also <a href=\"/contact/\">other ways to contact</a>
the FSF. Broken links and other corrections or suggestions can be sent
to <a href=\"mailto:bug-guix@gnu.org\">&lt;bug-guix@gnu.org&gt;</a>.</p>
<p>Copyright &copy; 2013 Free Software Foundation, Inc.</p>
<p>This page is licensed under a <a rel=\"license\"
href=\"http://creativecommons.org/licenses/by-nd/3.0/us/\">Creative
Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
<p>Updated:
<!-- timestamp start -->
$Date$
<!-- timestamp end -->
</p>
</div>
</div>
</body>
</html>
"))
)
;;; list-packages.scm ends here

View File

@@ -0,0 +1,75 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; Report package synopses and descriptions that defer from those found in
;;; the GNU Womb.
;;;
(use-modules (guix gnu-maintenance)
(guix packages)
(guix utils)
(guix ui)
(gnu packages)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
(define official
;; GNU package descriptors from the Womb.
(official-gnu-packages))
(define gnus
;; GNU packages available in the distro.
(let ((lookup (lambda (p)
(find (lambda (descriptor)
(equal? (gnu-package-name descriptor)
(package-name p)))
official))))
(fold-packages (lambda (package result)
(or (and=> (lookup package)
(cut alist-cons package <> result))
result))
'())))
;; Iterate over GNU packages. Report those whose synopsis defers from that
;; found upstream.
(for-each (match-lambda
((package . descriptor)
(let ((upstream (gnu-package-doc-summary descriptor))
(downstream (package-synopsis package))
(loc (or (package-field-location package 'synopsis)
(package-location package))))
(unless (and upstream (string=? upstream downstream))
(format (guix-warning-port)
"~a: ~a: proposed synopsis: ~s~%"
(location->string loc) (package-name package)
upstream)))
(let ((upstream (gnu-package-doc-description descriptor))
(downstream (package-description package))
(loc (or (package-field-location package 'description)
(package-location package))))
(when (and upstream
(not (string=? (fill-paragraph upstream 100)
(fill-paragraph downstream 100))))
(format (guix-warning-port)
"~a: ~a: proposed description:~% ~a~%"
(location->string loc) (package-name package)
(fill-paragraph upstream 77 7))))))
gnus)

128
config-daemon.ac Normal file
View File

@@ -0,0 +1,128 @@
dnl -*- Autoconf -*- fragment for the C++ daemon.
AC_MSG_CHECKING([whether to build daemon])
AC_MSG_RESULT([$guix_build_daemon])
dnl C++ environment. This macro must be used unconditionnaly.
AC_PROG_CXX
if test "x$guix_build_daemon" = "xyes"; then
AC_PROG_RANLIB
AC_CONFIG_HEADER([nix/config.h])
dnl Decompressors, for use by the substituter.
AC_PATH_PROG([GZIP], [gzip])
AC_PATH_PROG([BZIP2], [bzip2])
AC_PATH_PROG([XZ], [xz])
AC_SUBST([GZIP])
AC_SUBST([BZIP2])
AC_SUBST([XZ])
dnl Use 64-bit file system calls so that we can support files > 2 GiB.
AC_SYS_LARGEFILE
dnl Look for libbz2, a required dependency.
AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [true],
[AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2. See http://www.bzip.org/.])])
AC_CHECK_HEADERS([bzlib.h], [true],
[AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2. See http://www.bzip.org/.])])
dnl Look for SQLite, a required dependency.
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19])
AC_DEFINE([NIX_VERSION], ["0.0.0"], [Fake Nix version number.])
AC_DEFINE_UNQUOTED([SYSTEM], ["$guix_system"],
[Guix host system type--i.e., platform and OS kernel tuple.])
case "$LIBGCRYPT_PREFIX" in
no)
LIBGCRYPT_CFLAGS=""
LIBGCRYPT_LIBS=""
;;
*)
LIBGCRYPT_CFLAGS="-I$LIBGCRYPT_PREFIX/include"
LIBGCRYPT_LIBS="-L$LIBGCRYPT_PREFIX/lib -lgcrypt"
;;
esac
AC_SUBST([LIBGCRYPT_CFLAGS])
AC_SUBST([LIBGCRYPT_LIBS])
save_CFLAGS="$CFLAGS"
save_LDFLAGS="$LDFLAGS"
CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
LDFLAGS="$LDFLAGS $LIBGCRYPT_LDFLAGS"
have_gcrypt=yes
AC_CHECK_LIB([gcrypt], [gcry_md_open], [:], [have_gcrypt=no])
AC_CHECK_HEADER([gcrypt.h], [:], [have_gcrypt=no])
if test "x$have_gcrypt" != "xyes"; then
AC_MSG_ERROR([GNU libgcrypt not found; please install it.])
fi
CFLAGS="$save_CFLAGS"
LDFLAGS="$save_LDFLAGS"
dnl Chroot support.
AC_CHECK_FUNCS([chroot unshare])
AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h])
dnl Check for lutimes, optionally used for changing the mtime of
dnl symlinks.
AC_CHECK_FUNCS([lutimes])
dnl Check whether the store optimiser can optimise symlinks.
AC_MSG_CHECKING([whether it is possible to create a link to a symlink])
ln -s bla tmp_link
if ln tmp_link tmp_link2 2> /dev/null; then
AC_MSG_RESULT(yes)
AC_DEFINE(CAN_LINK_SYMLINK, 1, [Whether link() works on symlinks.])
else
AC_MSG_RESULT(no)
fi
rm -f tmp_link tmp_link2
dnl Check for <locale>.
AC_LANG_PUSH(C++)
AC_CHECK_HEADERS([locale])
AC_LANG_POP(C++)
dnl Check whether we have the `personality' syscall, which allows us
dnl to do i686-linux builds on x86_64-linux machines.
AC_CHECK_HEADERS([sys/personality.h])
dnl Check for <linux/fs.h> (for immutable file support).
AC_CHECK_HEADERS([linux/fs.h])
dnl Check whether the 'offload' build hook can be built (uses
dnl 'restore-file-set', which requires unbuffered custom binary input
dnl ports from Guile >= 2.0.10.)
GUIX_CHECK_UNBUFFERED_CBIP
guix_build_daemon_offload="$ac_cv_guix_cbips_support_setvbuf"
if test "x$guix_build_daemon_offload" = "xyes"; then
AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1],
[Define if the daemon's 'offload' build hook is being built.])
fi
dnl Temporary directory used to store the daemon's data.
AC_MSG_CHECKING([for unit test root])
GUIX_TEST_ROOT="`pwd`/test-tmp"
AC_MSG_RESULT([$GUIX_TEST_ROOT])
AC_SUBST([GUIX_TEST_ROOT])
AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
[chmod +x nix/scripts/list-runtime-roots])
AC_CONFIG_FILES([nix/scripts/substitute-binary],
[chmod +x nix/scripts/substitute-binary])
AC_CONFIG_FILES([nix/scripts/guix-authenticate],
[chmod +x nix/scripts/guix-authenticate])
AC_CONFIG_FILES([nix/scripts/offload],
[chmod +x nix/scripts/offload])
fi
AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"])
AM_CONDITIONAL([BUILD_DAEMON_OFFLOAD], \
[test "x$guix_build_daemon" = "xyes" \
&& test "x$guix_build_daemon_offload" = "xyes"])

View File

@@ -2,62 +2,150 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.68)
AC_INIT([Guix], [0.0], [guile-user@gnu.org])
AC_INIT([GNU Guix], [0.6], [bug-guix@gnu.org], [guix],
[http://www.gnu.org/software/guix/])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.11 gnu silent-rules subdir-objects \
color-tests parallel-tests])
AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects \
color-tests parallel-tests -Woverride])
AC_CONFIG_SRCDIR([guix.scm])
AC_CONFIG_MACRO_DIR([m4])
dnl For the C++ code. This must be used early.
AC_USE_SYSTEM_EXTENSIONS
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18.1])
guilemoduledir="${datarootdir}/guile/site/2.0"
AC_SUBST([guilemoduledir])
AC_CANONICAL_HOST
GUIX_SYSTEM_TYPE
GUIX_ASSERT_SUPPORTED_SYSTEM
PKG_CHECK_MODULES([GUILE], [guile-2.0])
AC_ARG_WITH(store-dir,
AC_HELP_STRING([--with-store-dir=PATH],
[file name of the store (defaults to /gnu/store)]),
[storedir="$withval"],
[storedir="/gnu/store"])
AC_SUBST(storedir)
dnl Better be verbose.
AC_MSG_CHECKING([for the store directory])
AC_MSG_RESULT([$storedir])
AC_ARG_ENABLE([daemon],
[AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])],
[guix_build_daemon="$enableval"],
[guix_build_daemon="yes"])
# Prepare a version of $localstatedir & co. that does not contain references
# to shell variables.
guix_prefix="`eval echo $prefix | sed -e"s|NONE|/usr/local|g"`"
guix_localstatedir="`eval echo $localstatedir | sed -e "s|NONE|$guix_prefix|g"`"
guix_sysconfdir="`eval echo $sysconfdir | sed -e "s|NONE|$guix_prefix|g"`"
guix_sbindir="`eval echo $sbindir | sed -e "s|NONE|$guix_prefix|g"`"
AC_SUBST([guix_localstatedir])
AC_SUBST([guix_sysconfdir])
AC_SUBST([guix_sbindir])
dnl We require the pkg.m4 set of macros from pkg-config.
dnl Make sure it's available.
m4_pattern_forbid([PKG_CHECK_MODULES])
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.5])
AC_PATH_PROG([GUILE], [guile])
AC_PATH_PROG([GUILD], [guild])
if test "x$GUILD" = "x"; then
AC_MSG_ERROR(['guild' binary not found; please check your guile-2.x installation.])
fi
dnl Make sure we have a full-fledged Guile.
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
dnl Check whether (srfi srfi-37) works, and provide our own if it doesn't.
GUIX_CHECK_SRFI_37
AM_CONDITIONAL([INSTALL_SRFI_37], [test "x$ac_cv_guix_srfi_37_broken" = xyes])
AC_ARG_WITH([nix-prefix],
[AS_HELP_STRING([--with-nix-prefix=DIR], [search for Nix in DIR])],
[AS_HELP_STRING([--with-nix-prefix=DIR],
[search for Nix in DIR (for testing purposes and '--disable-daemon' builds)])],
[case "$withval" in
yes|no) ;;
*) PATH="$withval/bin:$PATH"; export PATH;;
*)
NIX_PREFIX="$withval"
PATH="$NIX_PREFIX/bin:$PATH"; export PATH
AC_SUBST([NIX_PREFIX])
;;
esac],
[])
AC_PATH_PROG([NIX_INSTANTIATE], [nix-instantiate])
AC_PATH_PROG([NIX_HASH], [nix-hash])
if test "x$NIX_INSTANTIATE$NIX_HASH" = "x"; then
if test "x$guix_build_daemon$NIX_INSTANTIATE$NIX_HASH" = "xno"; then
AC_MSG_ERROR([Nix programs not found; please install Nix or use `--with-nix-prefix'.])
fi
if test "x$NIX_INSTANTIATE" = "x"; then
# This program is an optional dependency, so we just want it to be
# taken from $PATH if it's not available right now.
NIX_INSTANTIATE="nix-instantiate"
fi
AC_ARG_WITH([nixpkgs],
[AS_HELP_STRING([--with-nixpkgs=DIR], [search for Nixpkgs in DIR])],
[AS_HELP_STRING([--with-nixpkgs=DIR],
[search for Nixpkgs in DIR (for testing purposes only)])],
[case "$withval" in
yes|no) AC_MSG_ERROR([Please use `--with-nixpkgs=DIR'.]);;
*) NIXPKGS="$withval";;
esac],
[])
AC_MSG_CHECKING([for Nixpkgs source tree])
if test -f "$NIXPKGS/default.nix"; then
AC_MSG_CHECKING([for Nixpkgs source tree])
AC_MSG_RESULT([$NIXPKGS])
AC_SUBST([NIXPKGS])
else
AC_MSG_WARN([Nixpkgs not found; this will prevent most tests from running.])
AC_MSG_WARN([Please use `--with-nixpkgs'.])
AC_MSG_RESULT([not found])
fi
AC_ARG_WITH([libgcrypt-prefix],
[AS_HELP_STRING([--with-libgcrypt-prefix=DIR], [search for GNU libgcrypt in DIR])],
[case "$withval" in
yes|no)
LIBGCRYPT="libgcrypt"
LIBGCRYPT_PREFIX="no"
;;
*)
LIBGCRYPT="$withval/lib/libgcrypt"
LIBGCRYPT_PREFIX="$withval"
;;
esac],
[LIBGCRYPT="libgcrypt"])
dnl Library name suitable for `dynamic-link'.
AC_MSG_CHECKING([for libgcrypt shared library name])
AC_MSG_RESULT([$LIBGCRYPT])
AC_SUBST([LIBGCRYPT])
AC_SUBST([LIBGCRYPT_PREFIX])
GUIX_ASSERT_LIBGCRYPT_USABLE
AC_CACHE_SAVE
m4_include([config-daemon.ac])
dnl `dot' (from the Graphviz package) is only needed for maintainers.
dnl See `HACKING' for more info.
AM_MISSING_PROG([DOT], [dot])
AC_CONFIG_FILES([Makefile
po/Makefile.in
guix-build])
guix/config.scm])
AC_CONFIG_COMMANDS([commands-exec], [chmod +x guix-build])
AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
AC_CONFIG_FILES([test-env], [chmod +x test-env])
AC_OUTPUT

198
daemon.am Normal file
View File

@@ -0,0 +1,198 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
#
# Integration of the `guix-daemon' code taken from upstream Nix.
#
BUILT_SOURCES = nix/libstore/schema.sql.hh
CLEANFILES += $(BUILT_SOURCES)
noinst_LIBRARIES = libformat.a libutil.a libstore.a
# Use '-std=c++0x' for 'std::shared_ptr'.
AM_CXXFLAGS = -Wall -std=c++0x
libformat_a_SOURCES = \
nix/boost/format/free_funcs.cc \
nix/boost/format/parsing.cc \
nix/boost/format/format_implementation.cc
libformat_headers = \
nix/boost/throw_exception.hpp \
nix/boost/format.hpp \
nix/boost/assert.hpp \
nix/boost/format/macros_default.hpp \
nix/boost/format/format_fwd.hpp \
nix/boost/format/format_class.hpp \
nix/boost/format/exceptions.hpp \
nix/boost/format/group.hpp \
nix/boost/format/feed_args.hpp \
nix/boost/format/internals_fwd.hpp \
nix/boost/format/internals.hpp
libformat_a_CPPFLAGS = \
-I$(top_srcdir)/nix
libutil_a_SOURCES = \
nix/libutil/archive.cc \
nix/libutil/affinity.cc \
nix/libutil/serialise.cc \
nix/libutil/util.cc \
nix/libutil/xml-writer.cc \
nix/libutil/hash.cc \
nix/libutil/gcrypt-hash.cc
libutil_headers = \
nix/libutil/affinity.hh \
nix/libutil/hash.hh \
nix/libutil/serialise.hh \
nix/libutil/xml-writer.hh \
nix/libutil/util.hh \
nix/libutil/archive.hh \
nix/libutil/types.hh \
nix/libutil/gcrypt-hash.hh \
nix/libutil/md5.h \
nix/libutil/sha1.h \
nix/libutil/sha256.h
libutil_a_CPPFLAGS = \
-I$(top_builddir)/nix \
-I$(top_srcdir)/nix/libutil \
$(libformat_a_CPPFLAGS)
libstore_a_SOURCES = \
nix/libstore/gc.cc \
nix/libstore/globals.cc \
nix/libstore/misc.cc \
nix/libstore/references.cc \
nix/libstore/store-api.cc \
nix/libstore/optimise-store.cc \
nix/libstore/local-store.cc \
nix/libstore/remote-store.cc \
nix/libstore/build.cc \
nix/libstore/pathlocks.cc \
nix/libstore/derivations.cc
libstore_headers = \
nix/libstore/references.hh \
nix/libstore/pathlocks.hh \
nix/libstore/globals.hh \
nix/libstore/schema.sql.hh \
nix/libstore/worker-protocol.hh \
nix/libstore/remote-store.hh \
nix/libstore/derivations.hh \
nix/libstore/misc.hh \
nix/libstore/local-store.hh \
nix/libstore/store-api.hh
libstore_a_CPPFLAGS = \
$(libutil_a_CPPFLAGS) \
-I$(top_srcdir)/nix/libstore \
-I$(top_builddir)/nix/libstore \
-DNIX_STORE_DIR=\"$(storedir)\" \
-DNIX_DATA_DIR=\"$(datadir)\" \
-DNIX_STATE_DIR=\"$(localstatedir)/guix\" \
-DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \
-DNIX_CONF_DIR=\"$(sysconfdir)/guix\" \
-DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \
-DNIX_BIN_DIR=\"$(bindir)\" \
-DOPENSSL_PATH="\"guix-authenticate\""
libstore_a_CXXFLAGS = $(AM_CXXFLAGS) \
$(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS)
bin_PROGRAMS = guix-daemon
sbin_PROGRAMS = guix-register
guix_daemon_SOURCES = \
nix/nix-daemon/nix-daemon.cc \
nix/nix-daemon/guix-daemon.cc
guix_daemon_CPPFLAGS = \
$(libutil_a_CPPFLAGS) \
-I$(top_srcdir)/nix/libstore
guix_daemon_LDADD = \
libstore.a libutil.a libformat.a -lbz2 \
$(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)
guix_daemon_headers = \
nix/nix-daemon/shared.hh
guix_register_SOURCES = \
nix/guix-register/guix-register.cc
guix_register_CPPFLAGS = \
$(libutil_a_CPPFLAGS) \
$(libstore_a_CPPFLAGS) \
-I$(top_srcdir)/nix/libstore
# XXX: Should we start using shared libs?
guix_register_LDADD = \
libstore.a libutil.a libformat.a -lbz2 \
$(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)
noinst_HEADERS = \
$(libformat_headers) $(libutil_headers) $(libstore_headers) \
$(guix_daemon_headers)
nix/libstore/schema.sql.hh: nix/libstore/schema.sql
$(GUILE) --no-auto-compile -c \
"(use-modules (rnrs io ports)) \
(call-with-output-file \"$@\" \
(lambda (out) \
(call-with-input-file \"$^\" \
(lambda (in) \
(write (get-string-all in) out)))))"
nodist_pkglibexec_SCRIPTS = \
nix/scripts/list-runtime-roots \
nix/scripts/substitute-binary
if BUILD_DAEMON_OFFLOAD
nodist_pkglibexec_SCRIPTS += \
nix/scripts/offload
endif BUILD_DAEMON_OFFLOAD
# XXX: It'd be better to hide it in $(pkglibexecdir).
nodist_libexec_SCRIPTS = \
nix/scripts/guix-authenticate
EXTRA_DIST += \
nix/sync-with-upstream \
nix/libstore/schema.sql \
nix/AUTHORS \
nix/COPYING
AM_TESTS_ENVIRONMENT += \
top_builddir="$(abs_top_builddir)"
TESTS += \
tests/guix-daemon.sh
clean-local:
-if test -d "$(GUIX_TEST_ROOT)"; then \
find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \
fi
-rm -rf "$(GUIX_TEST_ROOT)"

View File

@@ -1,94 +0,0 @@
;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of Guix.
;;;
;;; Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (distro)
#:use-module (guix packages)
#:use-module (ice-9 ftw)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (find-packages-by-name))
;;; Commentary:
;;;
;;; General utilities for the software distribution---i.e., the modules under
;;; (distro ...).
;;;
;;; Code:
(define _ (cut gettext <> "guix"))
(define %distro-module-directory
;; Absolute path of the (distro ...) module root.
(string-append (dirname (search-path %load-path "distro.scm"))
"/distro"))
(define (package-files)
"Return the list of files that implement distro modules."
(define prefix-len
(string-length (dirname %distro-module-directory)))
(file-system-fold (const #t) ; enter?
(lambda (path stat result) ; leaf
(if (string-suffix? ".scm" path)
(cons (substring path prefix-len) result)
result))
(lambda (path stat result) ; down
result)
(lambda (path stat result) ; up
result)
(const #f) ; skip
(lambda (path stat errno result)
(format (current-error-port)
(_ "warning: cannot access `~a': ~a")
path (strerror errno))
result)
'()
%distro-module-directory
stat))
(define (package-modules)
"Return the list of modules that provide packages for the distribution."
(define not-slash
(char-set-complement (char-set #\/)))
(filter-map (lambda (path)
(let ((name (map string->symbol
(string-tokenize (string-drop-right path 4)
not-slash))))
(false-if-exception (resolve-interface name))))
(package-files)))
(define* (find-packages-by-name name #:optional version)
"Return the list of packages with the given NAME. If VERSION is not #f,
then only return packages whose version is equal to VERSION."
(define right-package?
(if version
(lambda (p)
(and (package? p)
(string=? (package-name p) name)
(string=? (package-version p) version)))
(lambda (p)
(and (package? p)
(string=? (package-name p) name)))))
(append-map (lambda (module)
(filter right-package?
(module-map (lambda (sym var)
(variable-ref var))
module)))
(package-modules)))

View File

@@ -1,358 +0,0 @@
;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of Guix.
;;;
;;; Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (distro base)
#:use-module (guix packages)
#:use-module (guix http)
#:use-module (guix build-system gnu)
#:use-module (guix utils))
;;; Commentary:
;;;
;;; A Guix-based distribution.
;;;
;;; Code:
(define-public libsigsegv
(package
(name "libsigsegv")
(version "2.10")
(source (origin
(method http-fetch)
(uri (string-append
"http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-"
version ".tar.gz"))
(sha256
(base32 "16hrs8k3nmc7a8jam5j1fpspd6sdpkamskvsdpcw6m29vnis8q44"))))
(build-system gnu-build-system)
(outputs '("out" "lib")) ; separate libdir from the rest
(home-page "http://www.gnu.org/software/libsigsegv/")
(description "GNU libsigsegv, a library to handle page faults in user mode")
(long-description
"GNU libsigsegv is a library for handling page faults in user mode. A page
fault occurs when a program tries to access to a region of memory that is
currently not available. Catching and handling a page fault is a useful
technique for implementing pageable virtual memory, memory-mapped access to
persistent databases, generational garbage collectors, stack overflow
handlers, distributed shared memory, and more.")
(license "GPLv2+")))
(define-public gawk
(package
(name "gawk")
(version "4.0.0")
(source (origin
(method http-fetch)
(uri (string-append "http://ftp.gnu.org/gnu/gawk/gawk-" version
".tar.bz2"))
(sha256
(base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0"))))
(build-system gnu-build-system)
(arguments (case-lambda
((system)
(if (string=? system "i686-cygwin")
'(#:tests? #f) ; work around test failure on Cygwin
'(#:parallel-tests? #f))) ; test suite fails in parallel
((system cross-system)
'(#:parallel-tests? #f))))
(inputs `(("libsigsegv" ,libsigsegv) ; headers
("libsigsegv/lib" ,libsigsegv "lib"))) ; library
(home-page "http://www.gnu.org/software/gawk/")
(description "GNU implementation of the Awk programming language")
(long-description
"Many computer users need to manipulate text files: extract and then
operate on data from parts of certain lines while discarding the rest, make
changes in various text files wherever certain patterns appear, and so on.
To write a program to do these things in a language such as C or Pascal is a
time-consuming inconvenience that may take many lines of code. The job is
easy with awk, especially the GNU implementation: Gawk.
The awk utility interprets a special-purpose programming language that makes
it possible to handle many data-reformatting jobs with just a few lines of
code.")
(license "GPLv3+")))
(define-public hello
(package
(name "hello")
(version "2.8")
(source (origin
(method http-fetch)
(uri (string-append "http://ftp.gnu.org/gnu/hello/hello-" version
".tar.gz"))
(sha256
(base32 "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags
`("--disable-dependency-tracking"
,(string-append "--with-gawk=" ; for illustration purposes
(assoc-ref %build-inputs "gawk")))))
(inputs `(("gawk" ,gawk)))
(description "GNU Hello")
(long-description "Yeah...")
(home-page "http://www.gnu.org/software/hello/")
(license "GPLv3+")))
(define-public guile-1.8
(package
(name "guile")
(version "1.8.8")
(source (origin
(method http-fetch)
(uri (string-append "http://ftp.gnu.org/gnu/guile/guile-" version
".tar.gz"))
(sha256
(base32
"0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--disable-error-on-warning")
#:patches (list (assoc-ref %build-inputs "patch/snarf"))
;; Insert a phase before `configure' to patch things up.
#:phases (alist-cons-before
'configure
'patch-loader-search-path
(lambda* (#:key outputs #:allow-other-keys)
;; Add a call to `lt_dladdsearchdir' so that
;; `libguile-readline.so' & co. are in the
;; loader's search path.
(substitute* "libguile/dynl.c"
(("lt_dlinit.*$" match)
(format #f
" ~a~% lt_dladdsearchdir(\"~a/lib\");~%"
match
(assoc-ref outputs "out")))))
%standard-phases)))
(inputs `(("patch/snarf"
,(search-path %load-path "distro/guile-1.8-cpp-4.5.patch"))
("gawk" ,gawk)
("readline" ,(nixpkgs-derivation "readline"))))
;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be
;; propagated.
(propagated-inputs `(("gmp" ,(nixpkgs-derivation "gmp"))
("libtool" ,(nixpkgs-derivation "libtool"))))
;; When cross-compiling, a native version of Guile itself is needed.
(self-native-input? #t)
(description "GNU Guile 1.8, an embeddable Scheme interpreter")
(long-description
"GNU Guile 1.8 is an interpreter for the Scheme programming language,
packaged as a library that can be embedded into programs to make them
extensible. It supports many SRFIs.")
(home-page "http://www.gnu.org/software/guile/")
(license "LGPLv2+")))
(define-public guile-2.0
(package
(name "guile")
(version "2.0.6")
(source (origin
(method http-fetch)
(uri (string-append "http://ftp.gnu.org/gnu/guile/guile-" version
".tar.xz"))
(sha256
(base32
"000ng5qsq3cl1k35jvzvhwxj92wx4q87745n2fppkd4irh58vv5l"))))
(build-system gnu-build-system)
(native-inputs `(("xz" ,(nixpkgs-derivation "xz"))
("pkgconfig" ,(nixpkgs-derivation "pkgconfig"))))
(inputs `(("libffi" ,(nixpkgs-derivation "libffi"))
("readline" ,(nixpkgs-derivation "readline"))))
(propagated-inputs
`( ;; These ones aren't normally needed here, but since `libguile-2.0.la'
;; reads `-lltdl -lunistring', adding them here will add the needed
;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see
;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>.
("libunistring" ,(nixpkgs-derivation "libunistring"))
("libtool" ,(nixpkgs-derivation "libtool"))
;; The headers and/or `guile-2.0.pc' refer to these packages, so they
;; must be propagated.
("bdw-gc" ,(nixpkgs-derivation "boehmgc"))
("gmp" ,(nixpkgs-derivation "gmp"))))
(self-native-input? #t)
(description "GNU Guile 2.0, an embeddable Scheme implementation")
(long-description
"GNU Guile is an implementation of the Scheme programming language, with
support for many SRFIs, packaged for use in a wide variety of environments.
In addition to implementing the R5RS Scheme standard and a large subset of
R6RS, Guile includes a module system, full access to POSIX system calls,
networking support, multiple threads, dynamic linking, a foreign function
call interface, and powerful string processing.")
(home-page "http://www.gnu.org/software/guile/")
(license "LGPLv3+")))
(define (guile-reader guile)
"Build Guile-Reader against GUILE, a package of some version of Guile 1.8
or 2.0."
(package
(name (string-append "guile-reader-for-guile-" (package-version guile)))
(version "0.6")
(source (origin
(method http-fetch)
(uri (string-append
"http://download-mirror.savannah.gnu.org/releases/guile-reader/guile-reader-"
version ".tar.gz"))
(sha256
(base32
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
(build-system gnu-build-system)
(native-inputs `(("pkgconfig" ,(nixpkgs-derivation "pkgconfig"))
("gperf" ,(nixpkgs-derivation "gperf"))))
(inputs `(("guile" ,guile)))
(description "Guile-Reader, a simple framework for building readers for
GNU Guile")
(long-description
"Guile-Reader is a simple framework for building readers for GNU Guile.
The idea is to make it easy to build procedures that extend Guiles read
procedure. Readers supporting various syntax variants can easily be written,
possibly by re-using existing “token readers” of a standard Scheme
readers. For example, it is used to implement Skribilos R5RS-derived
document syntax.
Guile-Readers approach is similar to Common Lisps “read table”, but
hopefully more powerful and flexible (for instance, one may instantiate as
many readers as needed).")
(home-page "http://www.nongnu.org/guile-reader/")
(license "GPLv3+")))
(define-public guile-reader/guile-1.8
;; Guile-Reader built against Guile 1.8.
(guile-reader guile-1.8))
(define-public guile-reader/guile-2.0
;; Guile-Reader built against Guile 2.0.
(guile-reader guile-2.0))
(define-public lout
;; This one is a bit tricky, because it doesn't follow the GNU Build System
;; rules. Instead, it has a makefile that has to be patched to set the
;; prefix, etc., and it has no makefile rules to build its doc.
(let ((configure-phase
'(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc")))
(substitute* "makefile"
(("^PREFIX[[:blank:]]*=.*$")
(string-append "PREFIX = " out "\n"))
(("^LOUTLIBDIR[[:blank:]]*=.*$")
(string-append "LOUTLIBDIR = " out "/lib/lout\n"))
(("^LOUTDOCDIR[[:blank:]]*=.*$")
(string-append "LOUTDOCDIR = " doc "/doc/lout\n"))
(("^MANDIR[[:blank:]]*=.*$")
(string-append "MANDIR = " out "/man\n")))
(mkdir out)
(mkdir (string-append out "/bin")) ; TODO: use `mkdir-p'
(mkdir (string-append out "/lib"))
(mkdir (string-append out "/man"))
(mkdir doc)
(mkdir (string-append doc "/doc"))
(mkdir (string-append doc "/doc/lout")))))
(install-man-phase
'(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "make" "installman"))))
(doc-phase
'(lambda* (#:key outputs #:allow-other-keys)
(define out
(assoc-ref outputs "doc"))
(setenv "PATH"
(string-append (assoc-ref outputs "out")
"/bin:" (getenv "PATH")))
(chdir "doc")
(every (lambda (doc)
(format #t "doc: building `~a'...~%" doc)
(with-directory-excursion doc
(let ((file (string-append out "/doc/lout/"
doc ".ps")))
(and (or (file-exists? "outfile.ps")
(zero? (system* "lout" "-r4" "-o"
"outfile.ps" "all")))
(begin
(copy-file "outfile.ps" file)
#t)
(zero? (system* "ps2pdf"
"-dPDFSETTINGS=/prepress"
"-sPAPERSIZE=a4"
file
(string-append out "/doc/lout/"
doc ".pdf")))))))
'("design" "expert" "slides" "user")))))
(package
(name "lout")
(version "3.39")
(source (origin
(method http-fetch)
;; FIXME: `http-get' doesn't follow redirects, hence the URL.
(uri (string-append
"http://download-mirror.savannah.gnu.org/releases/lout/lout-"
version ".tar.gz"))
(sha256
(base32
"12gkyqrn0kaa8xq7sc7v3wm407pz2fxg9ngc75aybhi5z825b9vq"))))
(build-system gnu-build-system) ; actually, just a makefile
(outputs '("out" "doc"))
(inputs `(("ghostscript" ,(nixpkgs-derivation "ghostscript"))))
(arguments `(#:modules ((guix build utils)
(guix build gnu-build-system)
(srfi srfi-1)) ; we need SRFI-1
#:tests? #f ; no "check" target
;; Customize the build phases.
#:phases (alist-replace
'configure ,configure-phase
(alist-cons-after
'install 'install-man-pages
,install-man-phase
(alist-cons-after
'install 'install-doc
,doc-phase
%standard-phases)))))
(description "Lout, a document layout system similar in style to LaTeX")
(long-description
"The Lout document formatting system is now reads a high-level description of
a document similar in style to LaTeX and produces a PostScript or plain text
output file.
Lout offers an unprecedented range of advanced features, including optimal
paragraph and page breaking, automatic hyphenation, PostScript EPS file
inclusion and generation, equation formatting, tables, diagrams, rotation and
scaling, sorted indexes, bibliographic databases, running headers and
odd-even pages, automatic cross referencing, multilingual documents including
hyphenation (most European languages are supported), formatting of computer
programs, and much more, all ready to use. Furthermore, Lout is easily
extended with definitions which are very much easier to write than troff of
TeX macros because Lout is a high-level, purely functional language, the
outcome of an eight-year research project that went back to the
beginning.")
(license "GPLv3+")
(home-page "http://savannah.nongnu.org/projects/lout/"))))
;;; Local Variables:
;;; eval: (put 'lambda* 'scheme-indent-function 1)
;;; eval: (put 'substitute* 'scheme-indent-function 1)
;;; eval: (put 'with-directory-excursion 'scheme-indent-function 1)
;;; End:

53
doc.am Normal file
View File

@@ -0,0 +1,53 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS = doc/guix.texi
EXTRA_DIST += \
doc/fdl-1.3.texi \
doc/images/bootstrap-graph.dot \
doc/images/bootstrap-graph.eps \
doc/images/bootstrap-graph.pdf
infoimagedir = $(infodir)/images
dist_infoimage_DATA = doc/images/bootstrap-graph.png
# Try hard to obtain an image size and aspect that's reasonable for inclusion
# in an Info or PDF document.
DOT_OPTIONS = \
-Gratio=.9 -Gnodesep=.005 -Granksep=.00005 \
-Nfontsize=9 -Nheight=.1 -Nwidth=.1
.dot.png:
$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
.dot.pdf:
$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
.dot.eps:
$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake)
# Extending"). Using the `-local' rules is imperfect, because they may be
# triggered after the main rule. Oh, well.
pdf-local: $(top_srcdir)/doc/images/bootstrap-graph.pdf
info-local: $(top_srcdir)/doc/images/bootstrap-graph.png
ps-local: $(top_srcdir)/doc/images/bootstrap-graph.eps

505
doc/fdl-1.3.texi Normal file
View File

@@ -0,0 +1,505 @@
@c The GNU Free Documentation License.
@center Version 1.3, 3 November 2008
@c This file is intended to be included within another document,
@c hence no sectioning command or @node.
@display
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
@uref{http://fsf.org/}
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@end display
@enumerate 0
@item
PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document @dfn{free} in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of ``copyleft'', which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
@item
APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The ``Document'', below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as ``you''. You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A ``Modified Version'' of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A ``Secondary Section'' is a named appendix or a front-matter section
of the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The ``Invariant Sections'' are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The ``Cover Texts'' are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A ``Transparent'' copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not ``Transparent'' is called ``Opaque''.
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, La@TeX{} input
format, SGML or XML using a publicly available
DTD, and standard-conforming simple HTML,
PostScript or PDF designed for human modification. Examples
of transparent image formats include PNG, XCF and
JPG. Opaque formats include proprietary formats that can be
read and edited only by proprietary word processors, SGML or
XML for which the DTD and/or processing tools are
not generally available, and the machine-generated HTML,
PostScript or PDF produced by some word processors for
output purposes only.
The ``Title Page'' means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, ``Title Page'' means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
The ``publisher'' means any person or entity that distributes copies
of the Document to the public.
A section ``Entitled XYZ'' means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as ``Acknowledgements'',
``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
of such a section when you modify the Document means that it remains a
section ``Entitled XYZ'' according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
@item
VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
@item
COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
@item
MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
@enumerate A
@item
Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
@item
List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
@item
State on the Title page the name of the publisher of the
Modified Version, as the publisher.
@item
Preserve all the copyright notices of the Document.
@item
Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
@item
Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
@item
Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
@item
Include an unaltered copy of this License.
@item
Preserve the section Entitled ``History'', Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled ``History'' in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
@item
Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the ``History'' section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
@item
For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
the Title of the section, and preserve in the section all the
substance and tone of each of the contributor acknowledgements and/or
dedications given therein.
@item
Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
@item
Delete any section Entitled ``Endorsements''. Such a section
may not be included in the Modified Version.
@item
Do not retitle any existing section to be Entitled ``Endorsements'' or
to conflict in title with any Invariant Section.
@item
Preserve any Warranty Disclaimers.
@end enumerate
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled ``Endorsements'', provided it contains
nothing but endorsements of your Modified Version by various
parties---for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
@item
COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled ``History''
in the various original documents, forming one section Entitled
``History''; likewise combine any sections Entitled ``Acknowledgements'',
and any sections Entitled ``Dedications''. You must delete all
sections Entitled ``Endorsements.''
@item
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
@item
AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an ``aggregate'' if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
@item
TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled ``Acknowledgements'',
``Dedications'', or ``History'', the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
@item
TERMINATION
You may not copy, modify, sublicense, or distribute the Document
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense, or distribute it is void, and
will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, receipt of a copy of some or all of the same material does
not give you any rights to use it.
@item
FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
@uref{http://www.gnu.org/copyleft/}.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License ``or any later version'' applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation. If the Document
specifies that a proxy can decide which future versions of this
License can be used, that proxy's public statement of acceptance of a
version permanently authorizes you to choose that version for the
Document.
@item
RELICENSING
``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
World Wide Web server that publishes copyrightable works and also
provides prominent facilities for anybody to edit those works. A
public wiki that anybody can edit is an example of such a server. A
``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
site means any set of copyrightable works thus published on the MMC
site.
``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
license published by Creative Commons Corporation, a not-for-profit
corporation with a principal place of business in San Francisco,
California, as well as future copyleft versions of that license
published by that same organization.
``Incorporate'' means to publish or republish a Document, in whole or
in part, as part of another Document.
An MMC is ``eligible for relicensing'' if it is licensed under this
License, and if all works that were first published under this License
somewhere other than this MMC, and subsequently incorporated in whole
or in part into the MMC, (1) had no cover texts or invariant sections,
and (2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009,
provided the MMC is eligible for relicensing.
@end enumerate
@page
@heading ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
@smallexample
@group
Copyright (C) @var{year} @var{your name}.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
@end group
@end smallexample
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the ``with@dots{}Texts.''@: line with this:
@smallexample
@group
with the Invariant Sections being @var{list their titles}, with
the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
being @var{list}.
@end group
@end smallexample
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:

3115
doc/guix.texi Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,83 @@
# Obtained by running "nix-store --graph" on the first GCC derivation.
digraph G {
"/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "black"];
"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "red"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "green"];
"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "blue"];
"/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "magenta"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "burlywood"];
"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "red"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "green"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" [label = "tar", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "blue"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "magenta"];
"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "burlywood"];
"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "black"];
"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "red"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "green"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "blue"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" [label = "xz", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [label = "glibc-bootstrap-0-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [color = "magenta"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [color = "burlywood"];
"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [label = "module-import.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "black"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "red"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "green"];
"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [label = "module-import-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [color = "blue"];
"/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [label = "gcc-4.7.2.tar.xz.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "magenta"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "burlywood"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "red"];
"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" [label = "gcc-4.7.2.tar.xz-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" [label = "bash", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [label = "module-import.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "green"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "blue"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "magenta"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "burlywood"];
"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "black"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" [label = "ftp-client.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" [label = "download.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" [label = "utils.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "red"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "green"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "blue"];
"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [label = "gcc-bootstrap-0-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "magenta"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "burlywood"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "black"];
"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [label = "glibc-2.17.tar.xz.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "red"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "green"];
"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "blue"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "magenta"];
"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" [label = "glibc-2.17.tar.xz-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" -> "/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [color = "burlywood"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [color = "black"];
"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [label = "build-bootstrap-guile.sh", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "red"];
"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "green"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "blue"];
"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "magenta"];
"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" [label = "mkdir", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" [label = "guile-2.0.7.tar.xz", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "burlywood"];
"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "red"];
"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [label = "module-import-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "green"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "blue"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "magenta"];
}

397
gnu-system.am Normal file
View File

@@ -0,0 +1,397 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
# Copyright © 2013, 2014 Mark H Weaver <mhw@netris.org>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
# Definitions for the GNU System: package modules, patches, bootstrap
# binaries.
GNU_SYSTEM_MODULES = \
gnu/packages.scm \
gnu/packages/acct.scm \
gnu/packages/acl.scm \
gnu/packages/admin.scm \
gnu/packages/algebra.scm \
gnu/packages/apl.scm \
gnu/packages/apr.scm \
gnu/packages/asciidoc.scm \
gnu/packages/aspell.scm \
gnu/packages/attr.scm \
gnu/packages/autogen.scm \
gnu/packages/autotools.scm \
gnu/packages/avahi.scm \
gnu/packages/base.scm \
gnu/packages/bash.scm \
gnu/packages/bdb.scm \
gnu/packages/bdw-gc.scm \
gnu/packages/bison.scm \
gnu/packages/boost.scm \
gnu/packages/bootstrap.scm \
gnu/packages/calcurse.scm \
gnu/packages/cdrom.scm \
gnu/packages/cflow.scm \
gnu/packages/check.scm \
gnu/packages/cmake.scm \
gnu/packages/compression.scm \
gnu/packages/complexity.scm \
gnu/packages/cpio.scm \
gnu/packages/cppi.scm \
gnu/packages/cross-base.scm \
gnu/packages/cryptsetup.scm \
gnu/packages/curl.scm \
gnu/packages/cursynth.scm \
gnu/packages/cyrus-sasl.scm \
gnu/packages/dc.scm \
gnu/packages/dejagnu.scm \
gnu/packages/ddrescue.scm \
gnu/packages/dictionaries.scm \
gnu/packages/docbook.scm \
gnu/packages/dwm.scm \
gnu/packages/ed.scm \
gnu/packages/elf.scm \
gnu/packages/emacs.scm \
gnu/packages/fdisk.scm \
gnu/packages/file.scm \
gnu/packages/flex.scm \
gnu/packages/fltk.scm \
gnu/packages/fonts.scm \
gnu/packages/fontutils.scm \
gnu/packages/freeipmi.scm \
gnu/packages/games.scm \
gnu/packages/gawk.scm \
gnu/packages/gcal.scm \
gnu/packages/gcc.scm \
gnu/packages/gd.scm \
gnu/packages/gdb.scm \
gnu/packages/gdbm.scm \
gnu/packages/geeqie.scm \
gnu/packages/gettext.scm \
gnu/packages/ghostscript.scm \
gnu/packages/giflib.scm \
gnu/packages/gkrellm.scm \
gnu/packages/gl.scm \
gnu/packages/glib.scm \
gnu/packages/global.scm \
gnu/packages/gnome.scm \
gnu/packages/gnunet.scm \
gnu/packages/gnupg.scm \
gnu/packages/gnustep.scm \
gnu/packages/gnutls.scm \
gnu/packages/gnuzilla.scm \
gnu/packages/gnu-pw-mgr.scm \
gnu/packages/gperf.scm \
gnu/packages/gprolog.scm \
gnu/packages/graphviz.scm \
gnu/packages/groff.scm \
gnu/packages/grub.scm \
gnu/packages/grue-hunter.scm \
gnu/packages/gsasl.scm \
gnu/packages/gstreamer.scm \
gnu/packages/gtk.scm \
gnu/packages/guile.scm \
gnu/packages/guile-wm.scm \
gnu/packages/gv.scm \
gnu/packages/gxmessage.scm \
gnu/packages/hugs.scm \
gnu/packages/hurd.scm \
gnu/packages/icu4c.scm \
gnu/packages/idutils.scm \
gnu/packages/imagemagick.scm \
gnu/packages/indent.scm \
gnu/packages/inkscape.scm \
gnu/packages/irssi.scm \
gnu/packages/iso-codes.scm \
gnu/packages/kde.scm \
gnu/packages/ld-wrapper.scm \
gnu/packages/less.scm \
gnu/packages/lesstif.scm \
gnu/packages/libcanberra.scm \
gnu/packages/libdaemon.scm \
gnu/packages/libevent.scm \
gnu/packages/libffi.scm \
gnu/packages/libidn.scm \
gnu/packages/libjpeg.scm \
gnu/packages/libphidget.scm \
gnu/packages/libpng.scm \
gnu/packages/libsigsegv.scm \
gnu/packages/libtiff.scm \
gnu/packages/libunistring.scm \
gnu/packages/libusb.scm \
gnu/packages/libunwind.scm \
gnu/packages/lightning.scm \
gnu/packages/linux.scm \
gnu/packages/lout.scm \
gnu/packages/lsh.scm \
gnu/packages/lsof.scm \
gnu/packages/lua.scm \
gnu/packages/lvm.scm \
gnu/packages/lynx.scm \
gnu/packages/m4.scm \
gnu/packages/man.scm \
gnu/packages/mail.scm \
gnu/packages/make-bootstrap.scm \
gnu/packages/maths.scm \
gnu/packages/mc.scm \
gnu/packages/messaging.scm \
gnu/packages/mit-krb5.scm \
gnu/packages/moe.scm \
gnu/packages/mpd.scm \
gnu/packages/mp3.scm \
gnu/packages/multiprecision.scm \
gnu/packages/mtools.scm \
gnu/packages/mysql.scm \
gnu/packages/nano.scm \
gnu/packages/ncdu.scm \
gnu/packages/ncurses.scm \
gnu/packages/netpbm.scm \
gnu/packages/nettle.scm \
gnu/packages/noweb.scm \
gnu/packages/ocaml.scm \
gnu/packages/ocrad.scm \
gnu/packages/onc-rpc.scm \
gnu/packages/openldap.scm \
gnu/packages/openssl.scm \
gnu/packages/package-management.scm \
gnu/packages/parallel.scm \
gnu/packages/parted.scm \
gnu/packages/patchutils.scm \
gnu/packages/pcre.scm \
gnu/packages/pdf.scm \
gnu/packages/pem.scm \
gnu/packages/perl.scm \
gnu/packages/photo.scm \
gnu/packages/pkg-config.scm \
gnu/packages/plotutils.scm \
gnu/packages/popt.scm \
gnu/packages/pth.scm \
gnu/packages/pulseaudio.scm \
gnu/packages/pretty-print.scm \
gnu/packages/python.scm \
gnu/packages/qemu.scm \
gnu/packages/qt.scm \
gnu/packages/ratpoison.scm \
gnu/packages/rdf.scm \
gnu/packages/readline.scm \
gnu/packages/recutils.scm \
gnu/packages/rsync.scm \
gnu/packages/rush.scm \
gnu/packages/samba.scm \
gnu/packages/scheme.scm \
gnu/packages/screen.scm \
gnu/packages/sdl.scm \
gnu/packages/search.scm \
gnu/packages/serveez.scm \
gnu/packages/shishi.scm \
gnu/packages/skribilo.scm \
gnu/packages/slim.scm \
gnu/packages/smalltalk.scm \
gnu/packages/sqlite.scm \
gnu/packages/ssh.scm \
gnu/packages/stalonetray.scm \
gnu/packages/swig.scm \
gnu/packages/tcl.scm \
gnu/packages/tcsh.scm \
gnu/packages/texinfo.scm \
gnu/packages/texlive.scm \
gnu/packages/time.scm \
gnu/packages/tmux.scm \
gnu/packages/tor.scm \
gnu/packages/uucp.scm \
gnu/packages/unrtf.scm \
gnu/packages/upnp.scm \
gnu/packages/valgrind.scm \
gnu/packages/version-control.scm \
gnu/packages/video.scm \
gnu/packages/vim.scm \
gnu/packages/vpn.scm \
gnu/packages/w3m.scm \
gnu/packages/wdiff.scm \
gnu/packages/web.scm \
gnu/packages/wget.scm \
gnu/packages/which.scm \
gnu/packages/wordnet.scm \
gnu/packages/xiph.scm \
gnu/packages/xlockmore.scm \
gnu/packages/xml.scm \
gnu/packages/xnee.scm \
gnu/packages/xorg.scm \
gnu/packages/yasm.scm \
gnu/packages/zile.scm \
gnu/packages/zip.scm \
\
gnu/services.scm \
gnu/services/base.scm \
gnu/services/dmd.scm \
gnu/services/networking.scm \
gnu/services/xorg.scm \
\
gnu/system.scm \
gnu/system/grub.scm \
gnu/system/linux.scm \
gnu/system/linux-initrd.scm \
gnu/system/shadow.scm \
gnu/system/vm.scm
patchdir = $(guilemoduledir)/gnu/packages/patches
dist_patch_DATA = \
gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \
gnu/packages/patches/apr-skip-getservbyname-test.patch \
gnu/packages/patches/automake-skip-amhello-tests.patch \
gnu/packages/patches/avahi-localstatedir.patch \
gnu/packages/patches/bigloo-gc-shebangs.patch \
gnu/packages/patches/binutils-ld-new-dtags.patch \
gnu/packages/patches/binutils-loongson-workaround.patch \
gnu/packages/patches/bitlbee-fix-tests.patch \
gnu/packages/patches/bitlbee-memset-fix.patch \
gnu/packages/patches/cdparanoia-fpic.patch \
gnu/packages/patches/cmake-fix-tests.patch \
gnu/packages/patches/coreutils-dummy-man.patch \
gnu/packages/patches/coreutils-skip-nohup.patch \
gnu/packages/patches/cpio-gets-undeclared.patch \
gnu/packages/patches/curl-fix-test172.patch \
gnu/packages/patches/dbus-localstatedir.patch \
gnu/packages/patches/diffutils-gets-undeclared.patch \
gnu/packages/patches/dmd-getpw.patch \
gnu/packages/patches/dmd-tests-longer-sleeps.patch \
gnu/packages/patches/emacs-configure-sh.patch \
gnu/packages/patches/findutils-absolute-paths.patch \
gnu/packages/patches/flac-fix-memcmp-not-declared.patch \
gnu/packages/patches/flex-bison-tests.patch \
gnu/packages/patches/gawk-shell.patch \
gnu/packages/patches/gcc-cross-environment-variables.patch \
gnu/packages/patches/gd-mips64-deplibs-fix.patch \
gnu/packages/patches/glib-tests-desktop.patch \
gnu/packages/patches/glib-tests-homedir.patch \
gnu/packages/patches/glib-tests-newnet.patch \
gnu/packages/patches/glib-tests-prlimit.patch \
gnu/packages/patches/glibc-bootstrap-system.patch \
gnu/packages/patches/glibc-ldd-x86_64.patch \
gnu/packages/patches/gnunet-fix-scheduler.patch \
gnu/packages/patches/gnunet-fix-tests.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
gnu/packages/patches/grub-gets-undeclared.patch \
gnu/packages/patches/gstreamer-0.10-bison3.patch \
gnu/packages/patches/gstreamer-0.10-silly-test.patch \
gnu/packages/patches/guile-1.8-cpp-4.5.patch \
gnu/packages/patches/guile-default-utf8.patch \
gnu/packages/patches/guile-linux-syscalls.patch \
gnu/packages/patches/guile-relocatable.patch \
gnu/packages/patches/guix-test-networking.patch \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/gtkglext-remove-pangox-dependency.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
gnu/packages/patches/inkscape-stray-comma.patch \
gnu/packages/patches/libevent-dns-tests.patch \
gnu/packages/patches/libffi-mips-n32-fix.patch \
gnu/packages/patches/liboop-mips64-deplibs-fix.patch \
gnu/packages/patches/libmad-mips-newgcc.patch \
gnu/packages/patches/libtheora-config-guess.patch \
gnu/packages/patches/libtool-skip-tests.patch \
gnu/packages/patches/libtool-skip-tests-for-mips.patch \
gnu/packages/patches/libssh-CVE-2014-0017.patch \
gnu/packages/patches/luit-posix.patch \
gnu/packages/patches/m4-gets-undeclared.patch \
gnu/packages/patches/m4-readlink-EINVAL.patch \
gnu/packages/patches/make-impure-dirs.patch \
gnu/packages/patches/mc-fix-ncurses-build.patch \
gnu/packages/patches/mcron-install.patch \
gnu/packages/patches/mit-krb5-init-fix.patch \
gnu/packages/patches/mpc123-initialize-ao.patch \
gnu/packages/patches/patchelf-page-size.patch \
gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/procps-make-3.82.patch \
gnu/packages/patches/python-fix-tests.patch \
gnu/packages/patches/python-libffi-mips-n32-fix.patch \
gnu/packages/patches/qemu-multiple-smb-shares.patch \
gnu/packages/patches/qt4-tests.patch \
gnu/packages/patches/ratpoison-shell.patch \
gnu/packages/patches/readline-link-ncurses.patch \
gnu/packages/patches/ripperx-libm.patch \
gnu/packages/patches/scheme48-tests.patch \
gnu/packages/patches/slim-session.patch \
gnu/packages/patches/slim-config.patch \
gnu/packages/patches/slim-sigusr1.patch \
gnu/packages/patches/source-highlight-regexrange-test.patch \
gnu/packages/patches/sqlite-large-page-size-fix.patch \
gnu/packages/patches/tcsh-fix-autotest.patch \
gnu/packages/patches/teckit-cstdio.patch \
gnu/packages/patches/valgrind-glibc.patch \
gnu/packages/patches/vpnc-script.patch \
gnu/packages/patches/w3m-fix-compile.patch \
gnu/packages/patches/xmodmap-asprintf.patch \
gnu/packages/patches/xpdf-constchar.patch
bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux
dist_bootstrap_x86_64_linux_DATA = \
gnu/packages/bootstrap/x86_64-linux/bash \
gnu/packages/bootstrap/x86_64-linux/mkdir \
gnu/packages/bootstrap/x86_64-linux/tar \
gnu/packages/bootstrap/x86_64-linux/xz
dist_bootstrap_i686_linux_DATA = \
gnu/packages/bootstrap/i686-linux/bash \
gnu/packages/bootstrap/i686-linux/mkdir \
gnu/packages/bootstrap/i686-linux/tar \
gnu/packages/bootstrap/i686-linux/xz
dist_bootstrap_mips64el_linux_DATA = \
gnu/packages/bootstrap/mips64el-linux/bash \
gnu/packages/bootstrap/mips64el-linux/mkdir \
gnu/packages/bootstrap/mips64el-linux/tar \
gnu/packages/bootstrap/mips64el-linux/xz
# Big bootstrap binaries are not included in the tarball. Instead, they
# are downloaded.
nodist_bootstrap_x86_64_linux_DATA = \
gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
nodist_bootstrap_i686_linux_DATA = \
gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
nodist_bootstrap_mips64el_linux_DATA = \
gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
# Those files must remain executable, so they remain executable once
# imported into the store.
install-data-hook:
chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz}
DISTCLEANFILES = \
$(nodist_bootstrap_x86_64_linux_DATA) \
$(nodist_bootstrap_i686_linux_DATA) \
$(nodist_bootstrap_mips64el_linux_DATA)
# Method to download a file from an external source.
DOWNLOAD_FILE = \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
$(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \
"$(top_srcdir)/build-aux/download.scm"
gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz:
$(MKDIR_P) `dirname "$@"`
$(DOWNLOAD_FILE) "$@" "037b103522a2d0d7d69c7ffd8de683dfe5bb4b59c1fafd70b4ffd397fd2f57f0"
gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz:
$(MKDIR_P) `dirname "$@"`
$(DOWNLOAD_FILE) "$@" "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846"
gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz:
$(MKDIR_P) `dirname "$@"`
$(DOWNLOAD_FILE) "$@" "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b"

184
gnu/packages.scm Normal file
View File

@@ -0,0 +1,184 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix ui)
#:use-module (guix utils)
#:use-module (ice-9 ftw)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-39)
#:export (search-patch
search-bootstrap-binary
%patch-directory
%bootstrap-binaries-path
fold-packages
find-packages-by-name
find-best-packages-by-name
find-newest-available-packages))
;;; Commentary:
;;;
;;; General utilities for the software distribution---i.e., the modules under
;;; (gnu packages ...).
;;;
;;; Code:
(define _ (cut gettext <> "guix"))
;; By default, we store patches and bootstrap binaries alongside Guile
;; modules. This is so that these extra files can be found without
;; requiring a special setup, such as a specific installation directory
;; and an extra environment variable. One advantage of this setup is
;; that everything just works in an auto-compilation setting.
(define %patch-path
(make-parameter
(map (cut string-append <> "/gnu/packages/patches")
%load-path)))
(define %bootstrap-binaries-path
(make-parameter
(map (cut string-append <> "/gnu/packages/bootstrap")
%load-path)))
(define (search-patch file-name)
"Search the patch FILE-NAME."
(search-path (%patch-path) file-name))
(define (search-bootstrap-binary file-name system)
"Search the bootstrap binary FILE-NAME for SYSTEM."
(search-path (%bootstrap-binaries-path)
(string-append system "/" file-name)))
(define %distro-module-directory
;; Absolute path of the (gnu packages ...) module root.
(string-append (dirname (search-path %load-path "gnu/packages.scm"))
"/packages"))
(define (package-files)
"Return the list of files that implement distro modules."
(define prefix-len
(string-length
(dirname (dirname (search-path %load-path "gnu/packages.scm")))))
(file-system-fold (const #t) ; enter?
(lambda (path stat result) ; leaf
(if (string-suffix? ".scm" path)
(cons (substring path prefix-len) result)
result))
(lambda (path stat result) ; down
result)
(lambda (path stat result) ; up
result)
(const #f) ; skip
(lambda (path stat errno result)
(warning (_ "cannot access `~a': ~a~%")
path (strerror errno))
result)
'()
%distro-module-directory
stat))
(define (package-modules)
"Return the list of modules that provide packages for the distribution."
(define not-slash
(char-set-complement (char-set #\/)))
(filter-map (lambda (path)
(let ((name (map string->symbol
(string-tokenize (string-drop-right path 4)
not-slash))))
(false-if-exception (resolve-interface name))))
(package-files)))
(define (fold-packages proc init)
"Call (PROC PACKAGE RESULT) for each available package, using INIT as
the initial value of RESULT. It is guaranteed to never traverse the
same package twice."
(identity ; discard second return value
(fold2 (lambda (module result seen)
(fold2 (lambda (var result seen)
(if (and (package? var)
(not (vhash-assq var seen)))
(values (proc var result)
(vhash-consq var #t seen))
(values result seen)))
result
seen
(module-map (lambda (sym var)
(false-if-exception (variable-ref var)))
module)))
init
vlist-null
(package-modules))))
(define* (find-packages-by-name name #:optional version)
"Return the list of packages with the given NAME. If VERSION is not #f,
then only return packages whose version is equal to VERSION."
(define right-package?
(if version
(lambda (p)
(and (string=? (package-name p) name)
(string=? (package-version p) version)))
(lambda (p)
(string=? (package-name p) name))))
(fold-packages (lambda (package result)
(if (right-package? package)
(cons package result)
result))
'()))
(define find-newest-available-packages
(memoize
(lambda ()
"Return a vhash keyed by package names, and with
associated values of the form
(newest-version newest-package ...)
where the preferred package is listed first."
;; FIXME: Currently, the preferred package is whichever one
;; was found last by 'fold-packages'. Find a better solution.
(fold-packages (lambda (p r)
(let ((name (package-name p))
(version (package-version p)))
(match (vhash-assoc name r)
((_ newest-so-far . pkgs)
(case (version-compare version newest-so-far)
((>) (vhash-cons name `(,version ,p) r))
((=) (vhash-cons name `(,version ,p ,@pkgs) r))
((<) r)))
(#f (vhash-cons name `(,version ,p) r)))))
vlist-null))))
(define (find-best-packages-by-name name version)
"If version is #f, return the list of packages named NAME with the highest
version numbers; otherwise, return the list of packages named NAME and at
VERSION."
(if version
(find-packages-by-name name version)
(match (vhash-assoc name (find-newest-available-packages))
((_ version pkgs ...) pkgs)
(#f '()))))

44
gnu/packages/acct.scm Normal file
View File

@@ -0,0 +1,44 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages acct)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public acct
(package
(name "acct")
(version "6.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/acct/acct-"
version ".tar.gz"))
(sha256
(base32
"1jzz601cavml7894fjalw661gz28ia35002inw990agr3rhiaiam"))))
(build-system gnu-build-system)
(home-page "https://gnu.org/software/acct/")
(synopsis "Standard login and process accounting utilities")
(description
"GNU acct provides a means for system administrators to determine
system usage patterns. It provides information on, for example, connections,
programs executed, and system resources used.")
(license gpl3+)))

72
gnu/packages/acl.scm Normal file
View File

@@ -0,0 +1,72 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages acl)
#:use-module (guix licenses)
#:use-module (gnu packages attr)
#:use-module (gnu packages perl)
#:use-module (gnu packages gettext)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public acl
(package
(name "acl")
(version "2.2.51")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/acl/acl-"
version ".src.tar.gz"))
(sha256
(base32
"09aj30m49ivycl3irram8c3givc0crivjm3ymw0nhfaxrwhlb186"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(alist-cons-after
'configure 'patch-makefile-SHELL
(lambda _
(patch-makefile-SHELL "include/buildmacros"))
,(if (%current-target-system)
'%standard-phases
'(alist-replace 'check
(lambda _
(system* "make" "tests" "-C" "test")
;; XXX: Ignore the test result since this is
;; dependent on the underlying file system.
#t)
%standard-phases)))))
(inputs `(("attr" ,attr)
;; Perl is needed to run tests; remove it from cross builds.
,@(if (%current-target-system)
'()
`(("perl" ,perl)))))
(native-inputs
`(("gettext" ,gnu-gettext)))
(home-page
"http://savannah.nongnu.org/projects/acl")
(synopsis
"Library and tools for manipulating access control lists")
(description
"Library and tools for manipulating access control lists.")
(license (list gpl2+ lgpl2.1+))))

553
gnu/packages/admin.scm Normal file
View File

@@ -0,0 +1,553 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages admin)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages linux)
#:use-module (gnu packages guile)
#:use-module (gnu packages gettext)
#:use-module (gnu packages perl)
#:use-module (gnu packages tcl)
#:use-module ((gnu packages base)
#:select (tar))
#:use-module ((gnu packages compression)
#:select (gzip))
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages glib)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xorg))
(define-public dmd
(package
(name "dmd")
(version "0.1")
(source (origin
(method url-fetch)
(uri (string-append "ftp://alpha.gnu.org/gnu/dmd/dmd-"
version ".tar.gz"))
(sha256
(base32
"07mddw0p62fcphwjzgb6rfa0pjz5sy6jzbha0sm2vc3rqf459jxg"))
(patches (list (search-patch "dmd-getpw.patch")
(search-patch "dmd-tests-longer-sleeps.patch")))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--localstatedir=/var")))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("guile" ,guile-2.0)))
(synopsis "Daemon managing daemons")
(description
"GNU DMD is a daemon-managing daemon, meaning that it manages the
execution of system services, replacing similar functionality found in
typical init systems. It provides dependency-handling through a convenient
interface and is based on GNU Guile.")
(license gpl3+)
(home-page "http://www.gnu.org/software/dmd/")))
(define-public dfc
(package
(name "dfc")
(version "3.0.3")
(source
(origin
(method url-fetch)
(uri (string-append
"http://projects.gw-computing.net/attachments/download/78/dfc-"
version ".tar.gz"))
(sha256
(base32
"1b4hfqv23l87cb37fxwzfk2sgspkyxpr3ig2hsd23hr6mm982j7z"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ; There are no tests.
(native-inputs `(("gettext" ,gnu-gettext)))
(home-page "http://projects.gw-computing.net/projects/dfc")
(synopsis "Display file system space usage using graphs and colors")
(description
"dfc (df color) is a modern version of df. It uses colors, draws pretty
graphs and can export its output to different formats.")
(license bsd-3)))
(define-public htop
(package
(name "htop")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/htop/"
version "/htop-" version ".tar.gz"))
(sha256
(base32
"18fqrhvnm7h4c3939av8lpiwrwxbyw6hcly0jvq0vkjf0ixnaq7f"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
(home-page "http://htop.sourceforge.net/")
(synopsis "Interactive process viewer")
(description
"This is htop, an interactive process viewer. It is a text-mode
application (for console or X terminals) and requires ncurses.")
(license gpl2)))
(define-public pies
(package
(name "pies")
(version "1.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/pies/pies-"
version ".tar.bz2"))
(sha256
(base32
"18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/pies/")
(synopsis "Program invocation and execution supervisor")
(description
"GNU pies is a program that supervises the invocation and execution of
other programs. It reads the list of programs to be started from its
configuration file, executes them, and then monitors their status,
re-executing them as necessary.")
(license gpl3+)))
(define-public inetutils
(package
(name "inetutils")
(version "1.9.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/inetutils/inetutils-"
version ".tar.gz"))
(sha256
(base32
"04wrm0v7l4890mmbaawd6wjwdv08bkglgqhpz0q4dkb0l50fl8q4"))))
(build-system gnu-build-system)
(arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
;; which is currently missing.
#:tests? #f))
(inputs `(("ncurses" ,ncurses)
("readline" ,readline))) ; for 'ftp'
(home-page "http://www.gnu.org/software/inetutils/")
(synopsis "Basic networking utilities")
(description
"Inetutils is a collection of common network programs, such as an ftp
client and server, a telnet client and server, and an rsh client and server.")
(license gpl3+)))
(define-public shadow
(package
(name "shadow")
(version "4.1.5.1")
(source (origin
;; Shadow has no real upstream, and not even tarballs.
;; See <https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00233.html>.
(method git-fetch)
(uri (git-reference
(url "git://git.debian.org/git/pkg-shadow/shadow")
(commit (string-append "upstream/" version))))
(sha256
(base32
"1xx85d83kmacmjzqbamgydcjkwsqd5fi1s2wgwx6myq5wa39qx0n"))))
(build-system gnu-build-system)
(arguments
'(;; Assume System V `setpgrp (void)', which is the default on GNU
;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
#:configure-flags '("--with-libpam" "ac_cv_func_setpgrp_void=yes")
#:phases (alist-cons-before
'build 'set-nscd-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right file name for nscd.
(let ((libc (assoc-ref inputs "libc")))
(substitute* "lib/nscd.c"
(("/usr/sbin/nscd")
(string-append libc "/sbin/nscd")))))
(alist-cons-after
'install 'remove-groups
(lambda* (#:key outputs #:allow-other-keys)
;; Remove `groups', which is already provided by Coreutils.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1")))
(delete-file (string-append bin "/groups"))
(for-each delete-file (find-files man "^groups\\."))
#t))
(alist-cons-after
'unpack 'reset-timestamps
(lambda _
;; FIXME: Reset the file timestamps here, until the
;; 'unpack' phase does it for us. See
;; <https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00098.html>.
(for-each (lambda (file)
(utime file 0 0 0))
(find-files "." "")))
%standard-phases)))))
(inputs (if (string-suffix? "-linux"
(or (%current-target-system)
(%current-system)))
`(("linux-pam" ,linux-pam))
'()))
(home-page "http://pkg-shadow.alioth.debian.org/")
(synopsis "Authentication-related tools such as passwd, su, and login")
(description
"Shadow provides a number of authentication-related tools, including:
login, passwd, su, groupadd, and useradd.")
;; The `vipw' program is GPLv2+.
;; libmisc/salt.c is public domain.
(license bsd-3)))
(define-public mingetty
(package
(name "mingetty")
(version "1.08")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/mingetty/mingetty-"
version ".tar.gz"))
(sha256
(base32
"05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace 'configure
(lambda* (#:key inputs outputs
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man8 (string-append
out "/share/man/man8"))
(sbin (string-append out "/sbin"))
(shadow (assoc-ref inputs "shadow"))
(login (string-append shadow
"/bin/login")))
(substitute* "Makefile"
(("^SBINDIR.*")
(string-append "SBINDIR = " out
"/sbin\n"))
(("^MANDIR.*")
(string-append "MANDIR = " out
"/share/man/man8\n")))
;; Pick the right 'login' by default.
(substitute* "mingetty.c"
(("\"/bin/login\"")
(string-append "\"" login "\"")))
(mkdir-p sbin)
(mkdir-p man8)))
%standard-phases)
#:tests? #f)) ; no tests
(inputs `(("shadow" ,shadow)))
(home-page "http://sourceforge.net/projects/mingetty")
(synopsis "Getty for the text console")
(description
"Small console getty that is started on the Linux text console,
asks for a login name and then transfers over to 'login'. It is extended to
allow automatic login and starting any app.")
(license gpl2+)))
(define-public net-base
(package
(name "net-base")
(version "5.2")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://debian/pool/main/n/netbase/netbase_"
version ".tar.gz"))
(sha256
(base32
"01rkvqrg7krkx8b432nz6bpi8w3s4cm5q5r891k23cdrc9nsaayn"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let* ((source (assoc-ref %build-inputs "source"))
(tar (assoc-ref %build-inputs "tar"))
(gzip (assoc-ref %build-inputs "gzip"))
(output (assoc-ref %outputs "out"))
(etc (string-append output "/etc")))
(setenv "PATH" (string-append gzip "/bin"))
(system* (string-append tar "/bin/tar") "xvf"
source)
(chdir ,(string-append "netbase-" version))
(mkdir-p etc)
(for-each copy-file
'("etc-services" "etc-protocols" "etc-rpc")
(map (cut string-append etc "/" <>)
'("services" "protocols" "rpc")))
#t))))
(native-inputs `(("tar" ,tar)
("gzip" ,gzip)))
(synopsis "IANA protocol, port, and RPC number assignments")
(description
"This package provides the /etc/services, /etc/protocols, and /etc/rpc
files, which contain information about the IANA-assigned port, protocol, and
ONC RPC numbers")
(home-page "http://packages.debian.org/sid/netbase")
(license gpl2)))
(define-public netcat
(package
(name "netcat")
(version "0.7.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/netcat/netcat-"
version ".tar.bz2"))
(sha256
(base32
"1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
;; By default, man and info pages are put in PREFIX/{man,info},
;; but we want them in PREFIX/share/{man,info}.
(let ((out (assoc-ref %outputs "out")))
(list (string-append "--mandir=" out "/share/man")
(string-append "--infodir=" out "/share/info")))))
(home-page "http://netcat.sourceforge.net")
(synopsis "Read and write data over TCP/IP")
(description
"Netcat is a featured networking utility which reads and writes data
across network connections, using the TCP/IP protocol. It is designed to be a
reliable \"back-end\" tool that can be used directly or easily driven by other
programs and scripts. At the same time, it is a feature-rich network debugging
and exploration tool, since it can create almost any kind of connection you
would need and has several interesting built-in capabilities.")
(license gpl2+)))
(define-public alive
(package
(name "alive")
(version "2.0.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/alive/alive-"
version ".tar.xz"))
(sha256
(base32
"1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
(inputs `(("guile" ,guile-2.0)
("inetutils" ,inetutils)))
(home-page "http://www.gnu.org/software/alive/")
(synopsis "Autologin and keep-alive daemon")
(description
"GNU Alive sends periodic pings to a server, generally to keep a
connection alive.")
(license gpl3+)))
(define-public isc-dhcp
(package
(name "isc-dhcp")
(version "4.3.0")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.isc.org/isc/dhcp/"
version "/dhcp-" version ".tar.gz"))
(sha256
(base32
"12mydvj6x3zcl3gla06bywfkkrgg03g66fijs94mwb7kbiym3dm7"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
'configure 'post-configure
(lambda* (#:key outputs #:allow-other-keys)
;; Point to the right client script, which will be
;; installed in a later phase.
(substitute* "includes/dhcpd.h"
(("#define[[:blank:]]+_PATH_DHCLIENT_SCRIPT.*")
(let ((out (assoc-ref outputs "out")))
(string-append "#define _PATH_DHCLIENT_SCRIPT \""
out "/libexec/dhclient-script"
"\"\n"))))
;; During the 'build' phase, 'bind.tar.gz' is extracted, so
;; we must patch shebangs in there and make sure the right
;; shell is used.
(with-directory-excursion "bind"
(substitute* "Makefile"
(("\\./configure")
(let ((sh (which "sh")))
(string-append "./configure CONFIG_SHELL="
sh " SHELL=" sh))))
(system* "tar" "xf" "bind.tar.gz")
(for-each patch-shebang
(find-files "bind-9.9.5" ".*"))
(zero? (system* "tar" "cf" "bind.tar.gz"
"bind-9.9.5"))))
(alist-cons-after
'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Install the dhclient script for GNU/Linux and make sure
;; if finds all the programs it needs.
(let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec"))
(coreutils (assoc-ref inputs "coreutils"))
(net-tools (assoc-ref inputs "net-tools"))
(sed (assoc-ref inputs "sed")))
(substitute* "client/scripts/linux"
(("/sbin/ip")
(string-append (assoc-ref inputs "iproute")
"/sbin/ip")))
(mkdir-p libexec)
(copy-file "client/scripts/linux"
(string-append libexec "/dhclient-script"))
(wrap-program (string-append libexec "/dhclient-script")
`("PATH" ":" prefix
,(map (lambda (dir)
(string-append dir "/bin:"
dir "/sbin"))
(list net-tools coreutils sed))))))
%standard-phases))))
(native-inputs `(("perl" ,perl)))
;; Even Coreutils and sed are needed here in case we're cross-compiling.
(inputs `(("coreutils" ,coreutils)
("sed" ,sed)
("net-tools" ,net-tools)
("iproute" ,iproute)))
(home-page "http://www.isc.org/products/DHCP/")
(synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
(description
"ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
reference implementation of all aspects of DHCP, through a suite of DHCP
tools: server, client, and relay agent.")
(license isc)))
(define-public libpcap
(package
(name "libpcap")
(version "1.5.3")
(source (origin
(method url-fetch)
(uri (string-append "http://www.tcpdump.org/release/libpcap-"
version ".tar.gz"))
(sha256
(base32
"14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs"))))
(build-system gnu-build-system)
(native-inputs `(("bison" ,bison) ("flex" ,flex)))
(arguments '(#:tests? #f)) ; no 'check' target
(home-page "http://www.tcpdump.org")
(synopsis "Network packet capture library")
(description
"libpcap is an interface for user-level packet capture. It provides a
portable framework for low-level network monitoring. Applications include
network statistics collection, security monitoring, network debugging, etc.")
;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
(license bsd-3)))
(define-public jnettop
(package
(name "jnettop")
(version "0.13.0")
(source (origin
(method url-fetch)
(uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
version ".tar.gz"))
(sha256
(base32
"1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("ncurses" ,ncurses)
("libpcap" ,libpcap)))
(home-page "http://jnettop.kubs.info/")
(synopsis "Visualize network traffic by bandwidth use")
(description
"Jnettop is a traffic visualiser, which captures traffic going
through the host it is running from and displays streams sorted
by bandwidth they use.")
(license gpl2+)))
(define-public clusterssh
(package
(name "clusterssh")
(version "3.28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/clusterssh/"
"clusterssh-" version ".tar.gz"))
(sha256
(base32
"1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(propagated-inputs `(("xterm" ,xterm)
("perl-tk" ,perl-tk)
("perl-x11-protocol" ,perl-x11-protocol)))
(arguments
`(#:phases
(alist-cons-after
'install 'set-load-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Put the perl-tk and perl-x11-protocol modules in the perl inc
;; path for PROG
(let* ((out (assoc-ref outputs "out"))
(prog (string-append out "/bin/cssh"))
(perl-ver ,(package-version perl))
(x11-inc (string-append
(assoc-ref inputs "perl-x11-protocol")
"/lib/perl5/site_perl/" perl-ver))
(tk-inc (string-append
(assoc-ref inputs "perl-tk")
"/lib/perl5/site_perl/" perl-ver
"/x86_64-linux")))
(wrap-program
prog
`("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))))
%standard-phases)))
;; The clusterssh.sourceforge.net address requires login to view
(home-page "http://sourceforge.net/projects/clusterssh/")
(synopsis "Secure concurrent multi-server terminal control")
(description
"ClusterSSH controls a number of xterm windows via a single graphical
console window to allow commands to be interactively run on multiple servers
over ssh connections.")
(license gpl2+)))

239
gnu/packages/algebra.scm Normal file
View File

@@ -0,0 +1,239 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages perl)
#:use-module (gnu packages readline)
#:use-module (gnu packages flex)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix utils))
(define-public mpfrcx
(package
(name "mpfrcx")
(version "0.4.2")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.multiprecision.org/mpfrcx/download/mpfrcx-"
version ".tar.gz"))
(sha256
(base32
"0grw66b255r574lvll1bqccm5myj2m8ajzsjaygcyq9zjnnbnhhy"))))
(build-system gnu-build-system)
(inputs `(("gmp" ,gmp)
("mpfr" ,mpfr)
("mpc" ,mpc)))
(synopsis "mpfrcx, a library for the arithmetic of univariate polynomials
over arbitrary precision real or complex numbers")
(description
"mpfrcx is a library for the arithmetic of univariate polynomials over
arbitrary precision real (mpfr) or complex (mpc) numbers, without control
on the rounding. For the time being, only the few functions needed to
implement the floating point approach to complex multiplication are
implemented. On the other hand, these comprise asymptotically fast
multiplication routines such as ToomCook and the FFT. ")
(license lgpl2.1+)
(home-page "http://mpfrcx.multiprecision.org/")))
(define-public fplll
(package
(name "fplll")
(version "4.0.4")
(source (origin
(method url-fetch)
(uri (string-append
"http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-"
version ".tar.gz"))
(sha256 (base32
"1cbiby7ykis4z84swclpysrljmqhfcllpkcbll1m08rzskgb1a6b"))))
(build-system gnu-build-system)
(inputs `(("gmp" ,gmp)
("mpfr" ,mpfr)))
(synopsis "fplll, a library for LLL-reduction of euclidean lattices")
(description
"fplll LLL-reduces euclidean lattices. Since version 3, it can also
solve the shortest vector problem.")
(license lgpl2.1+)
(home-page "http://perso.ens-lyon.fr/damien.stehle/fplll/")))
(define-public pari-gp
(package
(name "pari-gp")
(version "2.7.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-"
version ".tar.gz"))
(sha256 (base32
"1hk7lmq09crr9jvia8nxzhvbwf8mw62xk456i96jg8dljh0r9sgz"))))
(build-system gnu-build-system)
(inputs `(("gmp" ,gmp)
("perl" ,perl)
("readline" ,readline)))
(arguments
'(#:make-flags '("gp")
;; FIXME: building the documentation requires tex; once this is available,
;; replace "gp" by "all"
#:test-target "dobench"
#:phases
(alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero?
(system* "./Configure" (string-append "--prefix=" out)))))
%standard-phases)))
(synopsis "PARI/GP, a computer algebra system for number theory")
(description
"PARI/GP is a widely used computer algebra system designed for fast
computations in number theory (factorisations, algebraic number theory,
elliptic curves...), but it also contains a large number of other useful
functions to compute with mathematical entities such as matrices,
polynomials, power series, algebraic numbers, etc., and a lot of
transcendental functions.
PARI is also available as a C library to allow for faster computations.")
(license gpl2+)
(home-page "http://pari.math.u-bordeaux.fr/")))
(define-public gp2c
(package
(name "gp2c")
(version "0.0.8pl1")
(source (origin
(method url-fetch)
(uri (string-append
"http://pari.math.u-bordeaux.fr/pub/pari/GP2C/gp2c-"
version ".tar.gz"))
(sha256 (base32
"0r1xrshgx0db2snmacwvg5r99fhd9rpblcfs86pfsp23hnjxj9i0"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(inputs `(("pari-gp" ,pari-gp)))
(arguments
'(#:configure-flags
(list (string-append "--with-paricfg="
(assoc-ref %build-inputs "pari-gp")
"/lib/pari/pari.cfg"))))
(synopsis "PARI/GP, a computer algebra system for number theory")
(description
"PARI/GP is a widely used computer algebra system designed for fast
computations in number theory (factorisations, algebraic number theory,
elliptic curves...), but it also contains a large number of other useful
functions to compute with mathematical entities such as matrices,
polynomials, power series, algebraic numbers, etc., and a lot of
transcendental functions.
PARI is also available as a C library to allow for faster computations.
GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(license gpl2)
(home-page "http://pari.math.u-bordeaux.fr/")))
(define-public bc
(package
(name "bc")
(version "1.06")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz"))
(sha256
(base32
"0cqf5jkwx6awgd2xc2a0mkpxilzcfmhncdcfg7c9439wgkqxkxjf"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(native-inputs `(("flex" ,flex)))
(arguments
'(#:phases
(alist-replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
;; This old `configure' script doesn't support
;; variables passed as arguments.
(let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system*
"./configure"
(string-append "--prefix=" out)
;; By default, man and info pages are put in
;; PREFIX/{man,info}, but we want them in
;; PREFIX/share/{man,info}.
(string-append "--mandir=" out "/share/man")
(string-append "--infodir=" out "/share/info")))))
%standard-phases)))
(home-page "http://www.gnu.org/software/bc/")
(synopsis "Arbitrary precision numeric processing language")
(description
"bc is an arbitrary precision numeric processing language. It includes
an interactive environment for evaluating mathematical statements. Its
syntax is similar to that of C, so basic usage is familiar. It also includes
\"dc\", a reverse-polish calculator.")
(license gpl2+)))
(define-public fftw
(package
(name "fftw")
(version "3.3.3")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-"
version".tar.gz"))
(sha256
(base32
"1wwp9b2va7vkq3ay7a9jk22nr4x5q6m37rzqy2j8y3d11c5grkc5"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-shared" "--enable-openmp")
#:phases (alist-cons-before
'build 'no-native
(lambda _
;; By default '-mtune=native' is used. However, that may
;; cause the use of ISA extensions (SSE2, etc.) that are
;; not necessarily available on the user's machine when
;; that package is built on a different machine.
(substitute* (find-files "." "Makefile$")
(("-mtune=native") "")))
%standard-phases)))
(native-inputs `(("perl" ,perl)))
(home-page "http://fftw.org")
(synopsis "Computing the discrete Fourier transform")
(description
"FFTW is a C subroutine library for computing the discrete Fourier
transform (DFT) in one or more dimensions, of arbitrary input size, and of
both real and complex data (as well as of even/odd data---i.e. the discrete
cosine/ sine transforms or DCT/DST).")
(license gpl2+)))
(define-public fftwf
(package (inherit fftw)
(name "fftwf")
(arguments
(substitute-keyword-arguments (package-arguments fftw)
((#:configure-flags cf)
`(cons "--enable-float" ,cf))))
(description
(string-append (package-description fftw)
" Single-precision version."))))

49
gnu/packages/apl.scm Normal file
View File

@@ -0,0 +1,49 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages apl)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages gettext)
#:use-module (gnu packages maths)
#:use-module (gnu packages readline))
(define-public apl
(package
(name "apl")
(version "1.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz"))
(sha256
(base32
"1pkwlm0nf5vb8sp9hf9wjmsrsyr4vdpd4kv5y3hzmsgf3wcf8y3i"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/apl/")
(inputs
`(("gettext" ,gnu-gettext)
("lapack" ,lapack)
("readline" ,readline)))
(synopsis "APL interpreter")
(description
"GNU APL is a free interpreter for the programming language APL. It is
an implementation of the ISO standard 13751.")
(license gpl3+)))

88
gnu/packages/apr.scm Normal file
View File

@@ -0,0 +1,88 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages apr)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages autotools))
(define-public apr
(package
(name "apr")
(version "1.4.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/apr/apr-"
version ".tar.bz2"))
(sha256
(base32
"0884csfk3f530yscak0jlr6w929s3ys0n7fpwdg3dii1sgwd5f31"))
(patches
(list (search-patch "apr-skip-getservbyname-test.patch")))
(patch-flags '("-p0"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)
("libtool" ,libtool)))
(home-page "http://apr.apache.org/")
(synopsis "The Apache Portable Runtime Library")
(description
"The mission of the Apache Portable Runtime (APR) project is to create and
maintain software libraries that provide a predictable and consistent interface
to underlying platform-specific implementations. The primary goal is to provide
an API to which software developers may code and be assured of predictable if
not identical behaviour regardless of the platform on which their software is
built, relieving them of the need to code special-case conditions to work
around or take advantage of platform-specific deficiencies or features.")
(license asl2.0)))
(define-public apr-util
(package
(name "apr-util")
(version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/apr/apr-util-"
version ".tar.bz2"))
(sha256
(base32
"19qjxpckb9p4j9pbk8kcirg6k5vqnjrqhnk9xx2c5m9964p3vkls"))))
(build-system gnu-build-system)
(inputs
`(("apr" ,apr)))
(arguments
'(#:phases
(alist-replace
'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(apr (assoc-ref inputs "apr")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
(string-append "--with-apr=" apr)))))
%standard-phases)))
(home-page "http://apr.apache.org/")
(synopsis "One of the Apache Portable Runtime Library companions")
(description
"APR-util provides a number of helpful abstractions on top of APR.")
(license asl2.0)))

52
gnu/packages/asciidoc.scm Normal file
View File

@@ -0,0 +1,52 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages asciidoc)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages python)
#:use-module (guix build-system gnu)
#:autoload (gnu packages zip) (unzip))
(define-public asciidoc
(package
(name "asciidoc")
(version "8.6.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asciidoc/asciidoc-"
version ".tar.gz"))
(sha256
(base32
"1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; no 'check' target
(inputs `(("python" ,python-2)))
(home-page "http://www.methods.co.nz/asciidoc/")
(synopsis "Text-based document generation system")
(description
"AsciiDoc is a text document format for writing notes, documentation,
articles, books, ebooks, slideshows, web pages, man pages and blogs.
AsciiDoc files can be translated to many formats including HTML, PDF,
EPUB, man page.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
(license gpl2+)))

116
gnu/packages/aspell.scm Normal file
View File

@@ -0,0 +1,116 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages aspell)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (gnu packages perl)
#:use-module (gnu packages which))
(define-public aspell
(package
(name "aspell")
(version "0.60.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/aspell/aspell-"
version ".tar.gz"))
(sha256
(base32
"1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(home-page "http://aspell.net/")
(synopsis "Spell checker")
(description
"Aspell is a spell-checker which can be used either as a library or as
a standalone program. Notable features of Aspell include its full support of
documents written in the UTF-8 encoding and its ability to use multiple
dictionaries, including personal ones.")
(license lgpl2.1+)))
;;;
;;; Dictionaries.
;;;
;;; Use 'export ASPELL_CONF="dict-dir $HOME/.guix-profile/lib/aspell"' to use them.
;;;
(define* (aspell-dictionary dict-name full-name
#:key version sha256 (prefix "aspell6-"))
(package
(name (string-append "aspell-dict-" dict-name))
(version version)
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/aspell/dict/" dict-name
"/" prefix dict-name "-"
version ".tar.bz2"))
(sha256 sha256)))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"))))
%standard-phases)
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list (string-append "dictdir=" out "/lib/aspell")
(string-append "datadir=" out "/lib/aspell")))
#:tests? #f))
(native-inputs `(("aspell" ,aspell)
("which" ,which)))
(synopsis (string-append full-name " dictionary for GNU Aspell")) ; XXX: i18n
(description
"This package provides a dictionary for the GNU Aspell spell checker.")
(license gpl2+)
(home-page "http://aspell.net/")))
(define-public aspell-dict-en
(aspell-dictionary "en" "English"
#:version "7.1-0"
#:sha256
(base32
"02ldfiny4iakgfgy4sdrzjqdzi7l1rmb6y30lv31kfy5x31g77gz")))
(define-public aspell-dict-eo
(aspell-dictionary "eo" "Esperanto"
#:version "2.1.20000225a-2"
#:sha256
(base32
"09vf0mbiicbmyb4bwb7v7lgpabnylg0wy7m3hlhl5rjdda6x3lj1")))
(define-public aspell-dict-es
(aspell-dictionary "es" "Spanish"
#:version "1.11-2"
#:sha256
(base32
"1k5g328ac1hdpp6fsg57d8md6i0aqcwlszp3gbmp5706wyhpydmd")))
(define-public aspell-dict-fr
(aspell-dictionary "fr" "French"
#:version "0.50-3"
#:prefix "aspell-"
#:sha256
(base32
"14ffy9mn5jqqpp437kannc3559bfdrpk7r36ljkzjalxa53i0hpr")))

83
gnu/packages/attr.scm Normal file
View File

@@ -0,0 +1,83 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages attr)
#:use-module (guix licenses)
#:use-module (gnu packages perl)
#:use-module (gnu packages gettext)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public attr
(package
(name "attr")
(version "2.4.46")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/attr/attr-"
version ".src.tar.gz"))
(sha256
(base32
"07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(alist-cons-after
'configure 'patch-makefile-SHELL
(lambda _
(patch-makefile-SHELL "include/buildmacros"))
(alist-replace
'install
(lambda _
(zero? (system* "make"
"install"
"install-lib"
"install-dev")))
;; When building natively, adjust the test cases.
,(if (%current-target-system)
'%standard-phases
'(alist-replace 'check
(lambda _
;; Use the right shell.
(substitute* "test/run"
(("/bin/sh")
(which "bash")))
(system* "make" "tests" "-C" "test")
;; XXX: Ignore the test result since this is
;; dependent on the underlying file system.
#t)
%standard-phases))))))
(inputs
;; Perl is needed to run tests; remove it from cross builds.
(if (%current-target-system)
'()
`(("perl" ,perl))))
(native-inputs
`(("gettext" ,gnu-gettext)))
(home-page "http://savannah.nongnu.org/projects/attr/")
(synopsis "Library and tools for manipulating extended attributes")
(description
"Portable library and tools for manipulating extended attributes.")
(license (list gpl2+ lgpl2.1+))))

63
gnu/packages/autogen.scm Normal file
View File

@@ -0,0 +1,63 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages autogen)
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages which)
#:use-module (gnu packages guile))
(define-public autogen
(package
(name "autogen")
(version "5.18.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/autogen/rel"
version "/autogen-"
version ".tar.gz"))
(sha256
(base32
"0s2021bwpq6h199cbbranz96hhm5s7v66lc68h8v198vqbg049yc"))))
(build-system gnu-build-system)
(inputs `(("which" ,which)
("guile" ,guile-2.0)))
(arguments
'(#:phases (alist-cons-before
'patch-source-shebangs 'patch-test-scripts
(lambda _
(let ((sh (which "sh")))
(substitute*
(append (find-files "agen5/test" "\\.test$")
(find-files "autoopts/test" "\\.(test|in)$"))
(("/bin/sh") sh)
(("/usr/bin/tr") "tr"))))
%standard-phases)))
(home-page "http://www.gnu.org/software/autogen/")
(synopsis "Automated program generator")
(description
"AutoGen is a program to ease the maintenance of programs that contain
large amounts of repetitive text. It automates the construction of these
sections of the code, simplifying the task of keeping the text in sync. It
also includes an add-on package called AutoOpts, which is specialized for the
maintenance and documentation of program options.")
(license gpl3+)))

279
gnu/packages/autotools.scm Normal file
View File

@@ -0,0 +1,279 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages autotools)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages m4)
#:use-module (gnu packages bash)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (ice-9 match)
#:export (autoconf-wrapper))
(define-public autoconf
(package
(name "autoconf")
(version "2.69")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/autoconf/autoconf-"
version ".tar.xz"))
(sha256
(base32
"113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)
("m4" ,m4)))
;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
;; should use our own "cpp" instead of "/lib/cpp".
(arguments `(#:tests? #f))
(home-page
"http://www.gnu.org/software/autoconf/")
(synopsis "Create source code configuration scripts")
(description
"Autoconf offers the developer a robust set of M4 macros which expand
into shell code to test the features of Unix-like systems and to adapt
automatically their software package to these systems. The resulting shell
scripts are self-contained and portable, freeing the user from needing to
know anything about Autoconf or M4.")
(license gpl3+))) ; some files are under GPLv2+
(define-public autoconf-2.68
(package (inherit autoconf)
(version "2.68")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/autoconf/autoconf-"
version ".tar.xz"))
(sha256
(base32
"1fjm21k2na07f3vasf288a0zx66lbv0hd3l9bvv3q8p62s3pg569"))))))
(define* (autoconf-wrapper #:optional (autoconf autoconf))
"Return an wrapper around AUTOCONF that generates `configure' scripts that
use our own Bash instead of /bin/sh in shebangs. For that reason, it should
only be used internally---users should not end up distributing `configure'
files with a system-specific shebang."
(package (inherit autoconf)
(location (source-properties->location (current-source-location)))
(name (string-append (package-name autoconf) "-wrapper"))
(build-system trivial-build-system)
(inputs `(("guile"
;; XXX: Kludge to hide the circular dependency.
,(module-ref (resolve-interface '(gnu packages guile))
'guile-2.0))
("autoconf" ,autoconf)
("bash" ,bash)))
(arguments
'(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin"))
(autoconf (string-append
(assoc-ref %build-inputs "autoconf")
"/bin/autoconf"))
(guile (string-append
(assoc-ref %build-inputs "guile")
"/bin/guile"))
(sh (string-append
(assoc-ref %build-inputs "bash")
"/bin/sh"))
(modules ((compose dirname dirname dirname)
(search-path %load-path
"guix/build/utils.scm"))))
(mkdir-p bin)
;; Symlink all the binaries but `autoconf'.
(with-directory-excursion bin
(for-each (lambda (file)
(unless (string=? (basename file) "autoconf")
(symlink file (basename file))))
(find-files (dirname autoconf) ".*")))
;; Add an `autoconf' binary that wraps the real one.
(call-with-output-file (string-append bin "/autoconf")
(lambda (port)
;; Shamefully, Guile can be used in shebangs only if a
;; single argument is passed (-ds); otherwise it gets
;; them all as a single argument and fails to parse them.
(format port "#!~a
export GUILE_LOAD_PATH=\"~a\"
export GUILE_LOAD_COMPILED_PATH=\"~a\"
exec ~a --no-auto-compile \"$0\" \"$@\"
!#~%"
sh modules modules guile)
(write
`(begin
(use-modules (guix build utils))
(let ((result (apply system* ,autoconf
(cdr (command-line)))))
(when (and (file-exists? "configure")
(not (file-exists? "/bin/sh")))
;; Patch regardless of RESULT, because `autoconf
;; -Werror' can both create a `configure' file and
;; return a non-zero exit code.
(patch-shebang "configure"))
(exit (status:exit-val result))))
port)))
(chmod (string-append bin "/autoconf") #o555)))))))
(define-public automake
(package
(name "automake")
(version "1.14.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"0s86rzdayj1licgj35q0mnynv5xa8f4p32m36blc5jk9id5z1d59"))
(patches
(list (search-patch "automake-skip-amhello-tests.patch")))))
(build-system gnu-build-system)
(inputs
`(("autoconf" ,(autoconf-wrapper))
("perl" ,perl)))
(native-search-paths
(list (search-path-specification
(variable "ACLOCAL_PATH")
(directories '("share/aclocal")))))
(arguments
'(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26)
(rnrs io ports))
#:phases (alist-cons-before
'patch-source-shebangs 'patch-tests-shebangs
(lambda _
(let ((sh (which "sh")))
(substitute* (find-files "t" "\\.(sh|tap)$")
(("#![[:blank:]]?/bin/sh")
(string-append "#!" sh)))
;; Set these variables for all the `configure' runs
;; that occur during the test suite.
(setenv "SHELL" sh)
(setenv "CONFIG_SHELL" sh)))
;; Files like `install-sh', `mdate.sh', etc. must use
;; #!/bin/sh, otherwise users could leak erroneous shebangs
;; in the wild. See <http://bugs.gnu.org/14201> for an
;; example.
(alist-cons-after
'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share")))
(define (starts-with-shebang? file)
(equal? (call-with-input-file file
(lambda (p)
(list (get-u8 p) (get-u8 p))))
(map char->integer '(#\# #\!))))
(for-each (lambda (file)
(when (and (starts-with-shebang? file)
(executable-file? file))
(format #t "restoring shebang on `~a'~%"
file)
(substitute* file
(("^#!.*/bin/sh")
"#!/bin/sh")
(("^#!.*/bin/env(.*)$" _ args)
(string-append "#!/usr/bin/env"
args)))))
(find-files dir ".*"))))
%standard-phases))))
(home-page "http://www.gnu.org/software/automake/")
(synopsis "Making GNU standards-compliant Makefiles")
(description
"Automake the part of the GNU build system for producing
standards-compliant Makefiles. Build requirements are entered in an
intuitive format and then Automake works with Autoconf to produce a robust
Makefile, simplifying the entire process for the developer.")
(license gpl2+))) ; some files are under GPLv3+
(define-public libtool
(package
(name "libtool")
(version "2.4.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.gz"))
(sha256
(base32
"0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk"))
(patches
(list (search-patch "libtool-skip-tests.patch")
(search-patch "libtool-skip-tests-for-mips.patch")))))
(build-system gnu-build-system)
(native-inputs `(("m4" ,m4)
("perl" ,perl)))
;; Separate binaries from the rest. During bootstrap, only ltdl is
;; used; not depending on the binaries allows us to avoid retaining
;; a reference to the bootstrap bash.
(outputs '("bin" ; libtoolize, libtool, etc.
"out")) ; libltdl.so, ltdl.h, etc.
(arguments
(if (%current-target-system)
'() ; no `check' phase when cross-building
'(#:phases (alist-cons-before
'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
;; Run the test suite in parallel, if possible.
(let ((ncores
(cond
((getenv "NIX_BUILD_CORES")
=>
(lambda (n)
(if (zero? (string->number n))
(number->string (current-processor-count))
n)))
(else "1"))))
(setenv "TESTSUITEFLAGS"
(string-append "-j" ncores)))
;; Path references to /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "tests/testsuite"
(("/bin/sh")
(string-append bash "/bin/bash")))))
%standard-phases))))
(synopsis "Generic shared library support tools")
(description
"GNU Libtool helps in the creation and use of shared libraries, by
presenting a single consistent, portable interface that hides the usual
complexity of working with shared libraries across platforms.")
(license gpl3+)
(home-page "http://www.gnu.org/software/libtool/")))

69
gnu/packages/avahi.scm Normal file
View File

@@ -0,0 +1,69 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages avahi)
#:use-module ((guix licenses) #:select (lgpl2.1+))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages gdbm)
#:use-module (gnu packages libdaemon)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages glib)
#:use-module (gnu packages xml))
(define-public avahi
(package
(name "avahi")
(version "0.6.31")
(home-page "http://avahi.org")
(source (origin
(method url-fetch)
(uri (string-append home-page "/download/avahi-"
version ".tar.gz"))
(sha256
(base32
"0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))
(patches (list (search-patch "avahi-localstatedir.patch")))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-distro=none"
"--localstatedir=/var" ; for the DBus socket
"--disable-python"
"--disable-mono"
"--disable-doxygen-doc"
"--disable-xmltoman"
"--enable-tests"
"--disable-qt3" "--disable-qt4"
"--disable-gtk" "--disable-gtk3")))
(inputs
`(("expat" ,expat)
("glib" ,glib)
("dbus" ,dbus)
("gdbm" ,gdbm)
("libdaemon" ,libdaemon)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(synopsis "Avahi, an mDNS/DNS-SD implementation")
(description
"Avahi is a system which facilitates service discovery on a local
network. It is an implementation of the mDNS (for \"Multicast DNS\") and
DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
(license lgpl2.1+)))

1178
gnu/packages/base.scm Normal file

File diff suppressed because it is too large Load Diff

120
gnu/packages/bash.scm Normal file
View File

@@ -0,0 +1,120 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bash)
#:use-module (guix licenses)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu))
(define-public bash
(let* ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'"
"-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'"
"-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
"-DSTANDARD_UTILS_PATH='\"/no-such-path\"'"
"-DNON_INTERACTIVE_LOGIN_SHELLS"
"-DSSH_SOURCE_BASHRC")
" "))
(configure-flags
``("--with-installed-readline"
,,(string-append "CPPFLAGS=" cppflags)
,(string-append
"LDFLAGS=-Wl,-rpath -Wl,"
(assoc-ref %build-inputs "readline")
"/lib"
" -Wl,-rpath -Wl,"
(assoc-ref %build-inputs "ncurses")
"/lib")))
(post-install-phase
'(lambda* (#:key outputs #:allow-other-keys)
;; Add a `bash' -> `sh' link.
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion (string-append out "/bin")
(symlink "bash" "sh"))))))
(package
(name "bash")
(version "4.3")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://gnu/bash/bash-" version ".tar.gz"))
(sha256
(base32
"1m14s1f61mf6bijfibcjm9y6pkyvz6gibyl8p4hxq90fisi8gimg"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)
("ncurses" ,ncurses))) ; TODO: add texinfo
(arguments
`(;; When cross-compiling, `configure' incorrectly guesses that job
;; control is missing.
#:configure-flags ,(if (%current-target-system)
`(cons* "bash_cv_job_control_missing=no"
,configure-flags)
configure-flags)
;; Bash is reportedly not parallel-safe. See, for instance,
;; <http://patches.openembedded.org/patch/32745/> and
;; <http://git.buildroot.net/buildroot/commit/?h=79e2d802ae7e376a413c02097790493e1f65c3a4>.
#:parallel-build? #f
#:parallel-tests? #f
;; XXX: The tests have a lot of hard-coded paths, so disable them
;; for now.
#:tests? #f
#:phases (alist-cons-after 'install 'post-install
,post-install-phase
%standard-phases)))
(synopsis "The GNU Bourne-Again SHell")
(description
"Bash is the shell, or command-line interpreter, of the GNU system. It
is compatible with the Bourne Shell, but it also integrates useful features
from the Korn Shell and the C Shell and new improvements of its own. It
allows command-line editing, unlimited command history, shell functions and
aliases, and job control while still allowing most sh scripts to be run
without modification.")
(license gpl3+)
(home-page "http://www.gnu.org/software/bash/"))))
(define-public bash-light
;; A stripped-down Bash for non-interactive use.
(package (inherit bash)
(name "bash-light")
(inputs '()) ; no readline, no curses
(arguments
(let ((args `(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26))
,@(package-arguments bash))))
(substitute-keyword-arguments args
((#:configure-flags flags)
`(list "--without-bash-malloc"
"--disable-readline"
"--disable-history"
"--disable-help-builtin"
"--disable-progcomp"
"--disable-net-redirections"
"--disable-nls"
,@(if (%current-target-system)
'("bash_cv_job_control_missing=no")
'()))))))))

60
gnu/packages/bdb.scm Normal file
View File

@@ -0,0 +1,60 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bdb)
#:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public bdb
(package
(name "bdb")
(version "5.3.21")
(source (origin
(method url-fetch)
(uri (string-append "http://download.oracle.com/berkeley-db/db-" version
".tar.gz"))
(sha256 (base32
"1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target available
#:phases
(alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero?
(system* "./dist/configure"
(string-append "--prefix=" out)
(string-append "CONFIG_SHELL=" (which "bash"))
(string-append "SHELL=" (which "bash"))
;; The compatibility mode is needed by some packages,
;; notably iproute2.
"--enable-compat185"))))
%standard-phases)))
(synopsis "db, the Berkeley database")
(description
"Berkeley DB is an embeddable database allowing developers the choice of
SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(license (bsd-style "file://LICENSE"
"See LICENSE in the distribution."))
(home-page "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html")))

105
gnu/packages/bdw-gc.scm Normal file
View File

@@ -0,0 +1,105 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bdw-gc)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages pkg-config))
(define-public libgc-7.2
(package
(name "libgc")
(version "7.2e")
(source (origin
(method url-fetch)
(uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
version ".tar.gz"))
(sha256
(base32
"0jxgr71rhk58dzc1ihqs51vldh2qs1m154bn41qh6q1dm145nc89"))))
(build-system gnu-build-system)
(arguments
;; Make it so that we don't rely on /proc. This is especially useful in
;; an initrd run before /proc is mounted.
'(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES")))
(outputs '("out" "debug"))
(synopsis "The Boehm-Demers-Weiser conservative garbage collector
for C and C++")
(description
"The Boehm-Demers-Weiser conservative garbage collector can be used
as a garbage collecting replacement for C malloc or C++ new. It allows
you to allocate memory basically as you normally would, without
explicitly deallocating memory that is no longer useful. The collector
automatically recycles memory when it determines that it can no longer
be otherwise accessed.
The collector is also used by a number of programming language
implementations that either use C as intermediate code, want to
facilitate easier interoperation with C libraries, or just prefer the
simple collector interface.
Alternatively, the garbage collector may be used as a leak detector for
C or C++ programs, though that is not its primary goal.")
(home-page "http://www.hboehm.info/gc/")
(license (x11-style (string-append home-page "license.txt")))))
(define-public libatomic-ops
(package
(name "libatomic-ops")
(version "7.4.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.hboehm.info/gc/gc_source/libatomic_ops-"
version ".tar.gz"))
(sha256
(base32
"0njv3n63zw6v45k68z6dz14g2hpk5p230ncwmdfkglsljb1cqx98"))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(synopsis "Accessing hardware atomic memory update operations")
(description
"This C library provides semi-portable access to hardware-provided atomic
memory update operations on a number architectures. These might allow you to
write code that does more interesting things in signal handlers, write
lock-free code, experiment with thread programming paradigms, etc.")
(home-page "https://github.com/ivmai/libatomic_ops/")
;; Some source files are X11-style, others are GPLv2+.
(license gpl2+)))
(define-public libgc
(package (inherit libgc-7.2)
(version "7.4.0")
(source (origin
(method url-fetch)
(uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
version ".tar.gz"))
(sha256
(base32
"10z2nph62ilab063wygg2lv0jxlsbcf2az9w1lx01jzqj5lzry31"))))
;; New dependencies.
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libatomic-ops" ,libatomic-ops)))
;; 'USE_LIBC_PRIVATES' is now the default.
(arguments '())))

53
gnu/packages/bison.scm Normal file
View File

@@ -0,0 +1,53 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bison)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages m4)
#:use-module (gnu packages perl)
#:use-module (gnu packages flex)
#:use-module (srfi srfi-1)
#:export (bison))
(define bison
(package
(name "bison")
(version "3.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/bison/bison-"
version ".tar.xz"))
(sha256
(base32
"0g4gjan477lac18m51kv4xzcsp6wjfsfwvd2dxymcl6vid9fihx2"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(inputs `(("flex" ,flex)))
(propagated-inputs `(("m4" ,m4)))
(home-page "http://www.gnu.org/software/bison/")
(synopsis "Parser generator")
(description
"GNU Bison is a general-purpose parser generator. It can build a
deterministic or generalized LR parser from an annotated, context-free
grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages.")
(license gpl3+)))

89
gnu/packages/boost.scm Normal file
View File

@@ -0,0 +1,89 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages boost)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages python)
#:use-module (gnu packages tcsh)
#:use-module (gnu packages perl))
(define-public boost
(package
(name "boost")
(version "1.55.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/boost/boost_"
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
".tar.bz2"))
(sha256
(base32
"0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
("python" ,python-2)
("tcsh" ,tcsh)))
(arguments
`(#:phases
(alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* '("libs/config/configure"
"libs/spirit/classic/phoenix/test/runtest.sh"
"tools/build/v2/doc/bjam.qbk"
"tools/build/v2/engine/execunix.c"
"tools/build/v2/engine/Jambase"
"tools/build/v2/engine/jambase.c")
(("/bin/sh") (which "sh")))
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
(zero? (system* "./bootstrap.sh"
(string-append "--prefix=" out)
"--with-toolset=gcc"))))
(alist-replace
'build
(lambda _
(zero? (system* "./b2" "threading=multi" "link=shared")))
(alist-replace
'check
(lambda _ #t)
(alist-replace
'install
(lambda _
(zero? (system* "./b2" "install" "threading=multi" "link=shared")))
%standard-phases))))))
(home-page "http://boost.org")
(synopsis "Peer-reviewed portable C++ source libraries")
(description
"A collection of libraries intended to be widely useful, and usable
across a broad spectrum of applications.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"
"Some components have other similar licences."))))

405
gnu/packages/bootstrap.scm Normal file
View File

@@ -0,0 +1,405 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bootstrap)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module ((guix store) #:select (add-to-store add-text-to-store))
#:use-module ((guix derivations) #:select (derivation))
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:export (bootstrap-origin
package-with-bootstrap-guile
glibc-dynamic-linker
%bootstrap-guile
%bootstrap-coreutils&co
%bootstrap-binutils
%bootstrap-gcc
%bootstrap-glibc
%bootstrap-inputs))
;;; Commentary:
;;;
;;; Pre-built packages that are used to bootstrap the
;;; distribution--i.e., to build all the core packages from scratch.
;;;
;;; Code:
;;;
;;; Helper procedures.
;;;
(define (bootstrap-origin source)
"Return a variant of SOURCE, an <origin> instance, whose method uses
%BOOTSTRAP-GUILE to do its job."
(define (boot fetch)
(lambda* (store url hash-algo hash
#:optional name #:key system)
(fetch store url hash-algo hash
#:guile %bootstrap-guile
#:system system)))
(define %bootstrap-patch-inputs
;; Packages used when an <origin> has a non-empty 'patches' field.
`(("tar" ,%bootstrap-coreutils&co)
("xz" ,%bootstrap-coreutils&co)
("bzip2" ,%bootstrap-coreutils&co)
("gzip" ,%bootstrap-coreutils&co)
("patch" ,%bootstrap-coreutils&co)))
(let ((orig-method (origin-method source)))
(origin (inherit source)
(method (cond ((eq? orig-method url-fetch)
(boot url-fetch))
(else orig-method)))
(patch-guile %bootstrap-guile)
(patch-inputs %bootstrap-patch-inputs))))
(define (package-from-tarball name source program-to-test description)
"Return a package that correspond to the extraction of SOURCE.
PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to
check whether everything is alright."
(package
(name name)
(version "0")
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(use-modules (guix build utils))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(and (zero? (system* tar "xvf"
(string-append builddir "/binaries.tar")))
(zero? (system* (string-append "bin/" ,program-to-test)
"--version"))))))))
(inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
("tarball" ,(bootstrap-origin (source (%current-system))))))
(source #f)
(synopsis description)
(description #f)
(home-page #f)
(license #f)))
(define package-with-bootstrap-guile
(memoize
(lambda (p)
"Return a variant of P such that all its origins are fetched with
%BOOTSTRAP-GUILE."
(define rewritten-input
(match-lambda
((name (? origin? o))
`(,name ,(bootstrap-origin o)))
((name (? package? p) sub-drvs ...)
`(,name ,(package-with-bootstrap-guile p) ,@sub-drvs))
(x x)))
(package (inherit p)
(source (match (package-source p)
((? origin? o) (bootstrap-origin o))
(s s)))
(inputs (map rewritten-input
(package-inputs p)))
(native-inputs (map rewritten-input
(package-native-inputs p)))
(propagated-inputs (map rewritten-input
(package-propagated-inputs p)))))))
(define* (glibc-dynamic-linker
#:optional (system (or (and=> (%current-target-system)
gnu-triplet->nix-system)
(%current-system))))
"Return the name of Glibc's dynamic linker for SYSTEM."
(cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2")
((string=? system "i686-linux") "/lib/ld-linux.so.2")
((string=? system "mips64el-linux") "/lib/ld.so.1")
(else (error "dynamic linker name not known for this system"
system))))
;;;
;;; Bootstrap packages.
;;;
(define %bootstrap-guile
;; The Guile used to run the build scripts of the initial derivations.
;; It is just unpacked from a tarball containing a pre-built binary.
;; This is typically built using %GUILE-BOOTSTRAP-TARBALL below.
;;
;; XXX: Would need libc's `libnss_files2.so' for proper `getaddrinfo'
;; support (for /etc/services).
(let ((raw (build-system
(name "raw")
(description "Raw build system with direct store access")
(build (lambda* (store name source inputs
#:key outputs system search-paths)
(define (->store file)
(add-to-store store file #t "sha256"
(or (search-bootstrap-binary file
system)
(error "bootstrap binary not found"
file system))))
(let* ((tar (->store "tar"))
(xz (->store "xz"))
(mkdir (->store "mkdir"))
(bash (->store "bash"))
(guile (->store "guile-2.0.9.tar.xz"))
(builder
(add-text-to-store store
"build-bootstrap-guile.sh"
(format #f "
echo \"unpacking bootstrap Guile to '$out'...\"
~a $out
cd $out
~a -dc < ~a | ~a xv
# Sanity check.
$out/bin/guile --version~%"
mkdir xz guile tar)
(list mkdir xz guile tar))))
(derivation store name
bash `(,builder)
#:system system
#:inputs `((,bash) (,builder)))))))))
(package
(name "guile-bootstrap")
(version "2.0")
(source #f)
(build-system raw)
(synopsis "Bootstrap Guile")
(description "Pre-built Guile for bootstrapping purposes.")
(home-page #f)
(license lgpl3+))))
(define %bootstrap-base-urls
;; This is where the initial binaries come from.
'("http://alpha.gnu.org/gnu/guix/bootstrap"
"http://www.fdn.fr/~lcourtes/software/guix/packages"))
(define %bootstrap-coreutils&co
(package-from-tarball "bootstrap-binaries"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
"/20131110/static-binaries.tar.xz")
%bootstrap-base-urls))
(sha256
(match system
("x86_64-linux"
(base32
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4"))
("i686-linux"
(base32
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
("mips64el-linux"
(base32
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
"true" ; the program to test
"Bootstrap binaries of Coreutils, Awk, etc."))
(define %bootstrap-binutils
(package-from-tarball "binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
"/20131110/binutils-2.23.2.tar.xz")
%bootstrap-base-urls))
(sha256
(match system
("x86_64-linux"
(base32
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20"))
("i686-linux"
(base32
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
("mips64el-linux"
(base32
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(define %bootstrap-glibc
;; The initial libc.
(package
(name "glibc-bootstrap")
(version "0")
(source #f)
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(use-modules (guix build utils))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(system* tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
;; Patch libc.so so it refers to the right path.
(substitute* "lib/libc.so"
(("/[^ ]+/lib/(libc|ld)" _ prefix)
(string-append out "/lib/" prefix))))))))
(inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
"/20131110/glibc-2.18.tar.xz")
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v"))
("i686-linux"
(base32
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
("mips64el-linux"
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library")
(description #f)
(home-page #f)
(license lgpl2.1+)))
(define %bootstrap-gcc
;; The initial GCC. Uses binaries from a tarball typically built by
;; %GCC-BOOTSTRAP-TARBALL.
(package
(name "gcc-bootstrap")
(version "0")
(source #f)
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(bash (assoc-ref %build-inputs "bash"))
(libc (assoc-ref %build-inputs "libc"))
(tarball (assoc-ref %build-inputs "tarball")))
(use-modules (guix build utils)
(ice-9 popen))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append out "/bin")))
(with-directory-excursion out
(system* tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion bindir
(chmod "." #o755)
(rename-file "gcc" ".gcc-wrapped")
(call-with-output-file "gcc"
(lambda (p)
(format p "#!~a
exec ~a/bin/.gcc-wrapped -B~a/lib \
-Wl,-rpath -Wl,~a/lib \
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
bash
out libc libc libc
,(glibc-dynamic-linker))))
(chmod "gcc" #o555))))))
(inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
("bash" ,(search-bootstrap-binary "bash" (%current-system)))
("libc" ,%bootstrap-glibc)
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
"/20131110/gcc-4.8.2.tar.xz")
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
("i686-linux"
(base32
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
("mips64el-linux"
(base32
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
(native-search-paths
(list (search-path-specification
(variable "CPATH")
(directories '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
(directories '("lib" "lib64")))))
(synopsis "Bootstrap binaries of the GNU Compiler Collection")
(description #f)
(home-page #f)
(license gpl3+)))
(define %bootstrap-inputs
;; The initial, pre-built inputs. From now on, we can start building our
;; own packages.
`(("libc" ,%bootstrap-glibc)
("gcc" ,%bootstrap-gcc)
("binutils" ,%bootstrap-binutils)
("coreutils&co" ,%bootstrap-coreutils&co)
;; In gnu-build-system.scm, we rely on the availability of Bash.
("bash" ,%bootstrap-coreutils&co)))
;;; bootstrap.scm ends here

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

49
gnu/packages/calcurse.scm Normal file
View File

@@ -0,0 +1,49 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages autogen)
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages ncurses))
(define-public calcurse
(package
(name "calcurse")
(version "3.1.4")
(source
(origin
(method url-fetch)
(uri (string-append "http://calcurse.org/files/calcurse-"
version ".tar.gz"))
(sha256
(base32
"1qwhffwhfg7bjxrviwlcrhnfw0976d39da8kfspq6dgd9nqv68a1"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)))
(home-page "http://www.calcurse.org")
(synopsis "Text-based calendar and scheduling")
(description
"Calcurse is a text-based calendar and scheduling application. It helps
keep track of events, appointments and everyday tasks. A configurable
notification system reminds user of upcoming deadlines, and the curses based
interface can be customized to suit user needs. All of the commands are
documented within an online help system.")
(license bsd-2)))

212
gnu/packages/cdrom.scm Normal file
View File

@@ -0,0 +1,212 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cdrom)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+))
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages elf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
#:use-module (gnu packages which))
(define-public libcddb
(package
(name "libcddb")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libcddb/libcddb-"
version ".tar.bz2"))
(sha256
(base32
"1y8bfy12dwm41m1jahayn3v47dm34fmz7m9cjxyh7xcw6fp3lzaf"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; tests rely on access to external servers
(home-page "http://libcddb.sourceforge.net/")
(synopsis "C library to access data on a CDDB server")
(description
"Libcddb is a C library to access data on a CDDB server (freedb.org). It
allows you to:
1. search the database for possible CD matches;
2. retrieve detailed information about a specific CD;
3. submit new CD entries to the database.
Libcddb supports both the custom CDDB protocol and tunnelling the query and
read operations over plain HTTP. It is also possible to use an HTTP proxy
server. If you want to speed things up, you can make use of the built-in
caching facility provided by the library.")
(license lgpl2.1+)))
(define-public libcdio
(package
(name "libcdio")
(version "0.92")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libcdio/libcdio-"
version ".tar.gz"))
(sha256
(base32
"1b9zngn8nnxb1yyngi1kwi73nahp4lsx59j17q1bahzz58svydik"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)
("libcddb" ,libcddb)))
(native-inputs
`(("help2man" ,help2man)
("pkg-config" ,pkg-config)))
(home-page "http://www.gnu.org/software/libcdio/")
(synopsis "CD Input and Control library")
(description
"The GNU Compact Disc Input and Control Library (libcdio) is a library
for CD-ROM and CD image file access. It allows the developer to add CD
access to an application without having to worry about the OS- and
device-dependent properties of CD-ROM or the specific details of CD image
formats. It includes pycdio, a Python interface to libcdio, and
libcdio-paranoia, a library providing jitter-free and error-free audio
extraction from CDs.")
(license gpl3+)))
(define-public xorriso
(package
(name "xorriso")
(version "1.3.6.pl01")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/xorriso/xorriso-"
version ".tar.gz"))
(sha256
(base32
"07bm20kb4f6q5pbkxhy7w8ggw2gxkrq45cda2kbh6wgphs5z2h7q"))))
(build-system gnu-build-system)
(inputs
`(("acl" ,acl)
("readline" ,readline)
("bzip2" ,bzip2)
("zlib" ,zlib)
("libcdio" ,libcdio)))
(home-page "http://www.gnu.org/software/xorriso/")
(synopsis "Create, manipulate, burn ISO-9660 filesystems")
(description
"GNU Xorriso is a tool for copying files to and from ISO 9660 Rock
Ridge, a.k.a. Compact Disc File System, filesystems and it allows
session-wise manipulation of them. It features a formatter and burner for
CD, DVD and BD. It can operate on existing ISO images or it can create new
ones. xorriso can then be used to copy files directly into or out of ISO
files.")
(license gpl3+)))
(define-public cdparanoia
(package
(name "cdparanoia")
(version "10.2")
(source (origin
(method url-fetch)
(uri (string-append "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-"
version ".src.tgz"))
(sha256
(base32
"1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"))
(patches (list (search-patch "cdparanoia-fpic.patch")))))
(build-system gnu-build-system)
(inputs
`(("patchelf" ,patchelf)))
(arguments
`(#:tests? #f ; there is no check target
#:modules ((guix build gnu-build-system)
(guix build utils)
(guix build rpath)
(srfi srfi-26))
#:imported-modules ((guix build gnu-build-system)
(guix build utils)
(guix build rpath))
#:phases
(alist-cons-after
'strip 'add-lib-to-runpath
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
;; Add LIB to the RUNPATH of all the executables.
(with-directory-excursion out
(for-each (cut augment-rpath <> lib)
(find-files "bin" ".*")))))
%standard-phases)))
(home-page "http://www.xiph.org/paranoia/")
(synopsis "audio CD reading utility which includes extra data verification features")
(description "Cdparanoia retrieves audio tracks from CDDA capable CDROM
drives. The data can be saved to a file or directed to standard output
in WAV, AIFF, AIFF-C or raw format. Most ATAPI, SCSI and several
proprietary CDROM drive makes are supported; cdparanoia can determine if the
target drive is CDDA capable. In addition to simple reading, cdparanoia adds
extra-robust data verification, synchronization, error handling and scratch
reconstruction capability.")
(license gpl2))) ; libraries under lgpl2.1
(define-public dvdisaster
(package
(name "dvdisaster")
(version "0.72.4")
(source (origin
(method url-fetch)
(uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
version ".tar.bz2"))
(sha256
(base32
"0pm039a78h7m9vvjmmjfkl05ii6qdmfhvbypxjbc7j5w82y66is4"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+-2)))
(native-inputs
`(("gettext" ,gnu-gettext)
("pkg-config" ,pkg-config)
("which" ,which)))
(arguments
`(;; Parallel builds appear to be unsafe, see
;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>.
#:parallel-build? #f
#:tests? #f)) ; no check target
(home-page "http://dvdisaster.net/en/index.html")
(synopsis "error correcting codes for optical media images")
(description "Optical media (CD,DVD,BD) keep their data only for a
finite time (typically for many years). After that time, data loss develops
slowly with read errors growing from the outer media region towards the
inside.
Dvdisaster stores data on CD/DVD/BD (supported media) in a way that it is
fully recoverable even after some read errors have developed. This enables
you to rescue the complete data to a new medium.
Data loss is prevented by using error correcting codes. Error correction
data is either added to the medium or kept in separate error correction
files. Dvdisaster works at the image level so that the recovery does not
depend on the file system of the medium. The maximum error correction
capacity is user-selectable.")
(license gpl2+)))

49
gnu/packages/cflow.scm Normal file
View File

@@ -0,0 +1,49 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cflow)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (gnu packages emacs))
(define-public cflow
(package
(name "cflow")
(version "1.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cflow/cflow-"
version ".tar.bz2"))
(sha256
(base32
"1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3"))))
(build-system gnu-build-system)
;; Needed to have cflow-mode.el installed.
(native-inputs `(("emacs" ,emacs)))
(home-page "http://www.gnu.org/software/cflow/")
(synopsis "Create a graph of control flow within a program")
(description
"GNU cflow analyzes C source files and produces a graph charting the
control flow of the program. It can output the graph in several styles and
in either the POSIX format or in an extended GNU format. cflow also includes
a major mode for Emacs for examining the flowcharts that it produces.")
(license gpl3+)))

48
gnu/packages/check.scm Normal file
View File

@@ -0,0 +1,48 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages check)
#:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public check
(package
(name "check")
(version "0.9.9")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/check/check/"
version "/check-" version ".tar.gz"))
(sha256
(base32
"1jcahzrvxcnp5chdn2x46l0y4aba8d8yd70lljfin7h5knxrlyhs"))))
(build-system gnu-build-system)
(home-page "http://check.sourceforge.net/")
(synopsis "Check, a unit testing framework for C")
(description
"Check is a unit testing framework for C. It features a simple
interface for defining unit tests, putting little in the way of the
developer. Tests are run in a separate address space, so Check can
catch both assertion failures and code errors that cause segmentation
faults or other signals. The output from unit tests can be used within
source code editors and IDEs.")
(license lgpl2.1+)))

90
gnu/packages/cmake.scm Normal file
View File

@@ -0,0 +1,90 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cmake)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages file)
#:use-module (srfi srfi-1))
(define-public cmake
(package
(name "cmake")
(version "2.8.12")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.cmake.org/files/v"
(string-join (take (string-split version #\.) 2)
".")
"/cmake-" version ".tar.gz"))
(sha256
(base32 "11q21vyrr6c6smyjy81k2k07zmn96ggjia9im9cxwvj0n88bm1fq"))
(patches (list (search-patch "cmake-fix-tests.patch")))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:phases (alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Replace "/bin/sh" by the right path in... a lot of
;; files.
(substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CompilerId/Xcode-1.pbxproj.in"
"Modules/CompilerId/Xcode-2.pbxproj.in"
"Modules/CPack.RuntimeScript.in"
"Source/cmakexbuild.cxx"
"Source/cmGlobalXCodeGenerator.cxx"
"Source/CTest/cmCTestBatchTestHandler.cxx"
"Source/cmLocalUnixMakefileGenerator3.cxx"
"Utilities/cmbzip2/Makefile-libbz2_so"
"Utilities/Release/release_cmake.cmake"
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
"Tests/CMakeLists.txt")
(("/bin/sh") (which "sh")))
(zero? (system*
"./configure"
(string-append "--prefix=" out)
;; By default, the man pages and other docs land
;; in PREFIX/man and PREFIX/doc, but we want them
;; in share/{man,doc}. Note that unlike
;; autoconf-generated configure scripts, cmake's
;; configure prepends "PREFIX/" to what we pass
;; to --mandir and --docdir.
"--mandir=share/man"
,(string-append
"--docdir=share/doc/cmake-"
(string-join (take (string-split version #\.) 2)
"."))))))
%standard-phases)))
(inputs
`(("file" ,file)))
(home-page "http://www.cmake.org/")
(synopsis "Cross-platform build system")
(description
"CMake is a family of tools designed to build, test and package software.
CMake is used to control the software compilation process using simple platform
and compiler independent configuration files. CMake generates native makefiles
and workspaces that can be used in the compiler environment of your choice.")
(license bsd-3)))

View File

@@ -0,0 +1,49 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages complexity)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix licenses)
#:use-module (guix build-system gnu)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages autogen))
(define-public complexity
(package
(name "complexity")
(version "1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/complexity/complexity-"
version ".tar.gz"))
(sha256
(base32
"1aad7n35ymxbj5dlpvm64dcd71b6i7hbmps0g7nkf47vj53l6y2j"))))
(build-system gnu-build-system)
(native-inputs
`(("texinfo" ,texinfo)
("autogen" ,autogen)))
(home-page "http://www.gnu.org/software/complexity/")
(synopsis "Analyze complexity of C functions")
(description
"GNU complexity provides tools for finding procedures that are
convoluted, overly long or otherwise difficult to understand. This
may help in learning or reviewing unfamiliar code or perhaps
highlighting your own code that seemed comprehensible when you wrote it.")
(license gpl3+)))

View File

@@ -0,0 +1,294 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages compression)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages which))
(define-public zlib
(package
(name "zlib")
(version "1.2.7")
(source
(origin
(method url-fetch)
(uri (list (string-append "http://zlib.net/zlib-"
version ".tar.gz")
(string-append "mirror://sourceforge/libpng/zlib-"
version ".tar.gz")))
(sha256
(base32
"1i96gsdvxqb6skp9a58bacf1wxamwi9m9pg4yn7cpf7g7239r77s"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
;; Zlib's home-made `configure' fails when passed
;; extra flags like `--enable-fast-install', so we need to
;; invoke it with just what it understand.
(let ((out (assoc-ref outputs "out")))
;; 'configure' doesn't understand '--host'.
,@(if (%current-target-system)
`((setenv "CHOST" ,(%current-target-system)))
'())
(zero?
(system* "./configure"
(string-append "--prefix=" out)))))
%standard-phases)))
(home-page "http://zlib.net/")
(synopsis "The zlib compression library")
(description
"zlib is designed to be a free, general-purpose, legally unencumbered --
that is, not covered by any patents -- lossless data-compression library for
use on virtually any computer hardware and operating system. The zlib data
format is itself portable across platforms. Unlike the LZW compression method
used in Unix compress(1) and in the GIF image format, the compression method
currently used in zlib essentially never expands the data. (LZW can double or
triple the file size in extreme cases.) zlib's memory footprint is also
independent of the input data and can be reduced, if necessary, at some cost
in compression.")
(license license:zlib)))
(define-public gzip
(package
(name "gzip")
(version "1.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gzip/gzip-"
version ".tar.gz"))
(sha256
(base32
"0zlgdm4v3dndrbiz7b67mbbj25dpwqbmbzjiycssvrfrcfvq7swp"))))
(build-system gnu-build-system)
(synopsis "General file (de)compression (using lzw)")
(arguments
;; FIXME: The test suite wants `less', and optionally Perl.
'(#:tests? #f))
(description
"GNU Gzip provides data compression and decompression utilities; the
typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single
file; as a result, it is often used in conjunction with \"tar\", resulting in
\".tar.gz\" or \".tgz\", etc.")
(license license:gpl3+)
(home-page "http://www.gnu.org/software/gzip/")))
(define-public bzip2
(let ((fix-man-dir
;; Move man pages to $out/share/.
'(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion (assoc-ref outputs "out")
(mkdir "share")
(rename-file "man" "share/man"))))
(build-shared-lib
;; Build a shared library.
'(lambda* (#:key inputs #:allow-other-keys)
(patch-makefile-SHELL "Makefile-libbz2_so")
(zero? (system* "make" "-f" "Makefile-libbz2_so"))))
(install-shared-lib
'(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib")))
(for-each (lambda (file)
(let ((base (basename file)))
(format #t "installing `~a' to `~a'~%"
base libdir)
(copy-file file
(string-append libdir "/" base))))
(find-files "." "^libbz2\\.so")))))
(set-cross-environment
'(lambda* (#:key target #:allow-other-keys)
(substitute* (find-files "." "Makefile")
(("CC=.*$")
(string-append "CC = " target "-gcc\n"))
(("AR=.*$")
(string-append "AR = " target "-ar\n"))
(("RANLIB=.*$")
(string-append "RANLIB = " target "-ranlib\n"))
(("^all:(.*)test" _ prerequisites)
;; Remove 'all' -> 'test' dependency.
(string-append "all:" prerequisites "\n"))))))
(package
(name "bzip2")
(version "1.0.6")
(source (origin
(method url-fetch)
(uri (string-append "http://www.bzip.org/" version "/bzip2-"
version ".tar.gz"))
(sha256
(base32
"1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
#:phases
,(if (%current-target-system)
;; Cross-compilation: use the cross tools.
`(alist-cons-before
'build 'build-shared-lib ,build-shared-lib
(alist-cons-after
'install 'fix-man-dir ,fix-man-dir
(alist-cons-after
'install 'install-shared-lib ,install-shared-lib
(alist-replace 'configure ,set-cross-environment
%standard-phases))))
;; Native compilation: build the shared library.
`(alist-cons-before
'build 'build-shared-lib ,build-shared-lib
(alist-cons-after
'install 'fix-man-dir ,fix-man-dir
(alist-cons-after
'install 'install-shared-lib ,install-shared-lib
(alist-delete 'configure %standard-phases)))))
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")))
;; Don't attempt to run the tests when cross-compiling.
,@(if (%current-target-system)
'(#:tests? #f)
'())))
(synopsis "high-quality data compression program")
(description
"bzip2 is a freely available, patent free (see below), high-quality data
compressor. It typically compresses files to within 10% to 15% of the best
available techniques (the PPM family of statistical compressors), whilst
being around twice as fast at compression and six times faster at
decompression.")
(license (license:bsd-style "file://LICENSE"
"See LICENSE in the distribution."))
(home-page "http://www.bzip.org/"))))
(define-public xz
(package
(name "xz")
(version "5.0.4")
(source (origin
(method url-fetch)
(uri (string-append "http://tukaani.org/xz/xz-" version
".tar.gz"))
(sha256
(base32
"1dl35ca8fdss9z2d6y234gxh24ixq904xksizrjmjr5dimwhax6n"))))
(build-system gnu-build-system)
(synopsis
"XZ, general-purpose data compression software, successor of LZMA")
(description
"XZ Utils is free general-purpose data compression software with high
compression ratio. XZ Utils were written for POSIX-like systems, but also
work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.
The core of the XZ Utils compression code is based on LZMA SDK, but it has
been modified quite a lot to be suitable for XZ Utils. The primary
compression algorithm is currently LZMA2, which is used inside the .xz
container format. With typical files, XZ Utils create 30 % smaller output
than gzip and 15 % smaller output than bzip2.")
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both
(home-page "http://tukaani.org/xz/")))
(define-public lzo
(package
(name "lzo")
(version "2.06")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.oberhumer.com/opensource/lzo/download/lzo-"
version ".tar.gz"))
(sha256
(base32
"0wryshs446s7cclrbjykyj766znhcpnr7s3cxy33ybfn6vwfcygz"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--enable-shared")))
(home-page "http://www.oberhumer.com/opensource/lzo")
(synopsis
"A data compresion library suitable for real-time data de-/compression")
(description
"LZO is a data compression library which is suitable for data
de-/compression in real-time. This means it favours speed over
compression ratio.
LZO is written in ANSI C. Both the source code and the compressed data
format are designed to be portable across platforms.")
(license license:gpl2+)))
(define-public lzip
(package
(name "lzip")
(version "1.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/lzip-"
version ".tar.gz"))
(sha256
(base32
"1dh5vmj5apizfawnsm50y7z064yx7cz3313przph16gwd3dgrlvw"))))
(build-system gnu-build-system)
(home-page "http://www.nongnu.org/lzip/lzip.html")
(synopsis "Lossless data compressor based on the LZMA algorithm")
(description
"Lzip is a lossless data compressor with a user interface similar to the
one of gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses
more than bzip2, which makes it well suited for software distribution and data
archiving. Lzip is a clean implementation of the LZMA algorithm.")
(license license:gpl3+)))
(define-public sharutils
(package
(name "sharutils")
(version "4.14")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/sharutils/sharutils-"
version ".tar.xz"))
(sha256
(base32
"033sq1v0cp0bi1mp320xaqwd4fhakqc5747hh6qa1asjrzpqiqza"))))
(build-system gnu-build-system)
(inputs
`(("which" ,which)))
(arguments
`(#:phases
(alist-cons-after
'patch-source-shebangs 'unpatch-source-shebang
;; revert the patch-shebang phase on a script which is
;; in fact test data
(lambda _
(substitute* "tests/shar-1.ok"
(((which "sh")) "/bin/sh")))
%standard-phases)))
(home-page "http://www.gnu.org/software/sharutils/")
(synopsis "Archives in shell scripts, uuencode/uudecode")
(description
"GNU sharutils is a package for creating and manipulating shell
archives that can be readily emailed. A shell archive is a file that can be
processed by a Bourne-type shell to unpack the original collection of files.
This package is mostly for compatibility and historical interest.")
(license license:gpl3+)))

47
gnu/packages/cpio.scm Normal file
View File

@@ -0,0 +1,47 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cpio)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public cpio
(package
(name "cpio")
(version "2.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cpio/cpio-"
version ".tar.bz2"))
(sha256
(base32
"1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))
(patches (list (search-patch "cpio-gets-undeclared.patch")))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/cpio/")
(synopsis "Manage cpio and tar file archives")
(description
"GNU cpio copies files into or out of cpio or tar archives. Indeed,
many formats are supported, including legacy formats. The format is
determined automatically by the program and is handled appropriately.
Furthermore, the location of the archive is not important. It can be another
file on the drive, a tape, or data on a pipe.")
(license gpl3+)))

44
gnu/packages/cppi.scm Normal file
View File

@@ -0,0 +1,44 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cppi)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses))
(define-public cppi
(package
(name "cppi")
(version "1.18")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cppi/cppi-"
version ".tar.xz"))
(sha256
(base32
"1jk42cjaggk71rimjnx3qpmb6hivps0917vl3z7wbxk3i2whb98j"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/cppi/")
(synopsis "Indent C preprocessor directives to reflect nesting and more")
(description
"GNU Cppi processes C source code files to properly indent the
preprocessor directives to reflect their nesting. It also performs other
standardizations, such as correcting the number of spaces between directives
and the text following them.")
(license gpl3+)))

274
gnu/packages/cross-base.scm Normal file
View File

@@ -0,0 +1,274 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cross-base)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (gnu packages gcc)
#:use-module (gnu packages base)
#:use-module (gnu packages linux)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:export (cross-binutils
cross-libc
cross-gcc))
(define (cross p target)
(package (inherit p)
(location (source-properties->location (current-source-location)))
(name (string-append (package-name p) "-cross-" target))
(arguments
(substitute-keyword-arguments (package-arguments p)
((#:configure-flags flags)
`(cons ,(string-append "--target=" target)
,flags))))))
(define (cross-binutils target)
"Return a cross-Binutils for TARGET."
(let ((binutils (package (inherit binutils)
(arguments
(substitute-keyword-arguments (package-arguments
binutils)
((#:configure-flags flags)
;; Build with `--with-sysroot' so that ld honors
;; DT_RUNPATH entries when searching for a needed
;; library. This works because as a side effect
;; `genscripts.sh' sets `USE_LIBPATH=yes', which tells
;; elf32.em to use DT_RUNPATH in its search list.
;; See <http://sourceware.org/ml/binutils/2013-05/msg00312.html>.
;;
;; In theory choosing / as the sysroot could lead ld
;; to pick up native libs instead of target ones. In
;; practice the RUNPATH of target libs only refers to
;; target libs, not native libs, so this is safe.
`(cons "--with-sysroot=/" ,flags)))))))
(cross binutils target)))
(define* (cross-gcc target
#:optional (xbinutils (cross-binutils target)) libc)
"Return a cross-compiler for TARGET, where TARGET is a GNU triplet. Use
XBINUTILS as the associated cross-Binutils. If LIBC is false, then build a
GCC that does not target a libc; otherwise, target that libc."
(package (inherit gcc-4.8)
(name (string-append "gcc-cross-"
(if libc "" "sans-libc-")
target))
(source (origin (inherit (package-source gcc-4.8))
(patches
(list (search-patch "gcc-cross-environment-variables.patch")))))
(arguments
`(#:implicit-inputs? #f
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 regex)
(srfi srfi-1)
(srfi srfi-26))
,@(substitute-keyword-arguments (package-arguments gcc-4.8)
((#:configure-flags flags)
`(append (list ,(string-append "--target=" target)
,@(gcc-configure-flags-for-triplet target)
,@(if libc
'()
`( ;; Disable features not needed at this stage.
"--disable-shared" "--enable-static"
;; Disable C++ because libstdc++'s
;; configure script otherwise fails with
;; "Link tests are not allowed after
;; GCC_NO_EXECUTABLES."
"--enable-languages=c"
"--disable-threads" ; libgcc, would need libc
"--disable-libatomic"
"--disable-libmudflap"
"--disable-libgomp"
"--disable-libssp"
"--disable-libquadmath"
"--disable-decimal-float" ; would need libc
)))
,(if libc
flags
`(remove (cut string-match "--enable-languages.*" <>)
,flags))))
((#:make-flags flags)
(if libc
`(let ((libc (assoc-ref %build-inputs "libc")))
;; FLAGS_FOR_TARGET are needed for the target libraries to
;; receive the -Bxxx for the startfiles.
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
,flags))
flags))
((#:phases phases)
(let ((phases
`(alist-cons-after
'install 'make-cross-binutils-visible
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec/gcc/"
,target))
(binutils (string-append
(assoc-ref inputs "binutils-cross")
"/bin/" ,target "-")))
(for-each (lambda (file)
(symlink (string-append binutils file)
(string-append libexec "/"
file)))
'("as" "ld" "nm"))
#t))
,phases)))
(if libc
`(alist-cons-before
'configure 'set-cross-path
(lambda* (#:key inputs #:allow-other-keys)
;; Add the cross Linux headers to CROSS_CPATH, and remove
;; them from CPATH.
(let ((libc (assoc-ref inputs "libc"))
(linux (assoc-ref inputs
"libc/cross-linux-headers")))
(define (cross? x)
;; Return #t if X is a cross-libc or cross Linux.
(or (string-prefix? libc x)
(string-prefix? linux x)))
(setenv "CROSS_CPATH"
(string-append libc "/include:"
linux "/include"))
(setenv "CROSS_LIBRARY_PATH"
(string-append libc "/lib"))
(let ((cpath (search-path-as-string->list
(getenv "CPATH")))
(libpath (search-path-as-string->list
(getenv "LIBRARY_PATH"))))
(setenv "CPATH"
(list->search-path-as-string
(remove cross? cpath) ":"))
(setenv "LIBRARY_PATH"
(list->search-path-as-string
(remove cross? libpath) ":"))
#t)))
,phases)
phases)))
((#:strip-binaries? _)
;; Disable stripping as this can break binaries, with object files
;; of libgcc.a showing up as having an unknown architecture. See
;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
;; for instance.
#f))))
(native-inputs
`(("binutils-cross" ,xbinutils)
;; Call it differently so that the builder can check whether the "libc"
;; input is #f.
("libc-native" ,@(assoc-ref %final-inputs "libc"))
;; Remaining inputs.
,@(let ((inputs (append (package-inputs gcc-4.8)
(alist-delete "libc" %final-inputs))))
(if libc
`(("libc" ,libc)
,@inputs)
inputs))))
(inputs '())
;; Only search target inputs, not host inputs.
(search-paths
(list (search-path-specification
(variable "CROSS_CPATH")
(directories '("include")))
(search-path-specification
(variable "CROSS_LIBRARY_PATH")
(directories '("lib" "lib64")))))
(native-search-paths '())))
(define* (cross-libc target
#:optional
(xgcc (cross-gcc target))
(xbinutils (cross-binutils target)))
"Return a libc cross-built for TARGET, a GNU triplet. Use XGCC and
XBINUTILS and the cross tool chain."
(define xlinux-headers
(package (inherit linux-libre-headers)
(name (string-append (package-name linux-libre-headers)
"-cross-" target))
(arguments
(substitute-keyword-arguments (package-arguments linux-libre-headers)
((#:phases phases)
`(alist-replace
'build
(lambda _
(setenv "ARCH" ,(system->linux-architecture target))
(format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH"))
(and (zero? (system* "make" "defconfig"))
(zero? (system* "make" "mrproper" "headers_check"))))
,phases))))
(native-inputs `(("cross-gcc" ,xgcc)
("cross-binutils" ,xbinutils)
,@(package-native-inputs linux-libre-headers)))))
(package (inherit glibc)
(name (string-append "glibc-cross-" target))
(arguments
(substitute-keyword-arguments
`(#:strip-binaries? #f ; disable stripping (see above)
,@(package-arguments glibc))
((#:configure-flags flags)
`(cons ,(string-append "--host=" target)
,flags))
((#:phases phases)
`(alist-cons-before
'configure 'set-cross-linux-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((linux (assoc-ref inputs "cross-linux-headers")))
(setenv "CROSS_CPATH"
(string-append linux "/include"))
#t))
,phases))))
(propagated-inputs `(("cross-linux-headers" ,xlinux-headers)))
(native-inputs `(("cross-gcc" ,xgcc)
("cross-binutils" ,xbinutils)
,@(package-native-inputs glibc)))))
;;;
;;; Concrete cross toolchains.
;;;
(define-public xgcc-mips64el
(let ((triplet "mips64el-linux-gnuabi64")) ; N64 ABI
(cross-gcc triplet
(cross-binutils triplet)
(cross-libc triplet))))
;; (define-public xgcc-armel
;; (let ((triplet "armel-linux-gnueabi"))
;; (cross-gcc triplet
;; (cross-binutils triplet)
;; (cross-libc triplet))))

View File

@@ -0,0 +1,60 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cryptsetup)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages lvm)
#:use-module (gnu packages popt)
#:use-module (gnu packages python)
#:use-module (gnu packages linux))
(define-public cryptsetup
(package
(name "cryptsetup")
(version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append "http://cryptsetup.googlecode.com/files/cryptsetup-"
version ".tar.bz2"))
(sha256
(base32
"170lalkhh2fa316d12i6r7jprm0yss3c949d91069sq37ik6xwxs"))))
(build-system gnu-build-system)
(inputs
`(("libgcrypt" ,libgcrypt)
("lvm2" ,lvm2)
("util-linux" ,util-linux)
("popt" ,popt)))
(native-inputs
`(("python" ,python-wrapper)))
(synopsis "hard disk encryption tool")
(description
"LUKS (Linux Unified Key Setup)/Cryptsetup provides a standard on-disk
encryption format, which does not only facilitate compatibility among
distributions, but which also provides secure management of multiple user
passwords. In contrast to existing solutions, LUKS stores all setup necessary
setup information in the partition header, enabling the users to transport
or migrate their data seamlessly.")
(license license:gpl2)
(home-page "http://code.google.com/p/cryptsetup/")))

86
gnu/packages/curl.scm Normal file
View File

@@ -0,0 +1,86 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages curl)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnutls)
#:use-module (gnu packages groff)
#:use-module (gnu packages gsasl)
#:use-module (gnu packages libidn)
#:use-module (gnu packages openldap)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages ssh))
(define-public curl
(package
(name "curl")
(version "7.35.0")
(source (origin
(method url-fetch)
(uri (string-append "http://curl.haxx.se/download/curl-"
version ".tar.lzma"))
(sha256
(base32
"14w5cwh6b1426lxkq6kp6h4vxryr4n7wfrrwhny1r4123q7n8ab9"))
(patches
;; This patch fixes testcase 172 which uses a hardcoded cookie
;; expiration value which is expired as of Feb 1, 2014.
(list (search-patch "curl-fix-test172.patch")))))
(build-system gnu-build-system)
(inputs `(("gnutls" ,gnutls)
("gss" ,gss)
("libidn" ,libidn)
("libssh2" ,libssh2)
("openldap" ,openldap)
("zlib" ,zlib)))
(native-inputs
`(("perl" ,perl)
;; to enable the --manual option and make test 1026 pass
("groff" ,groff)
("pkg-config" ,pkg-config)
("python" ,python-2)))
(arguments
`(#:configure-flags '("--with-gnutls" "--with-gssapi")
;; Add a phase to patch '/bin/sh' occurances in tests/runtests.pl
#:phases
(alist-cons-before
'check 'patch-runtests
(lambda _
(substitute* "tests/runtests.pl"
(("/bin/sh") (which "sh"))))
%standard-phases)))
(synopsis "curl, command line tool for transferring data with URL syntax")
(description
"curl is a command line tool for transferring data with URL syntax,
supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading,
HTTP form based upload, proxies, cookies, user+password authentication
(Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
proxy tunneling, and so on")
(license (license:bsd-style "file://COPYING"
"See COPYING in the distribution."))
(home-page "http://curl.haxx.se/")))

52
gnu/packages/cursynth.scm Normal file
View File

@@ -0,0 +1,52 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cursynth)
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages linux))
(define-public cursynth
(package
(name "cursynth")
(version "1.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/cursynth/cursynth-"
version ".tar.gz"))
(sha256
(base32 "1p9c54v9b0jjx33sammqsdi5xw65csly4cr1i08wv9x6r2yib55m"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
;; TODO: See https://github.com/iyoko/cursynth/issues/4 which currently
;; prevents us from using pulseaudio
(inputs `(("ncurses" ,ncurses)
("alsa" ,alsa-lib)))
(home-page "http://www.gnu.org/software/cursynth")
(synopsis "Polyphonic and MIDI subtractive music synthesizer using curses")
(description "GNU cursynth is a polyphonic synthesizer that runs
graphically in the terminal. It is built on a full-featured subtractive
synthesis engine. Notes and parameter changes may be entered via MIDI or the
computer's keyboard.")
(license gpl3+)))

View File

@@ -0,0 +1,57 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cyrus-sasl)
#:use-module (gnu packages)
#:use-module (gnu packages gdbm)
#:use-module (gnu packages mit-krb5)
#:use-module (gnu packages openssl)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public cyrus-sasl
(package
(name "cyrus-sasl")
(version "2.1.26")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version
".tar.gz"))
(sha256 (base32
"1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g"))))
(build-system gnu-build-system)
(inputs `(("gdbm" ,gdbm)
("mit-krb5" ,mit-krb5)
("openssl" ,openssl)))
(arguments
'(#:configure-flags (list (string-append "--with-plugindir="
(assoc-ref %outputs "out")
"/lib/sasl2"))))
(synopsis "Cyrus SASL, an implementation of the Simple Authentication Security Layer framework")
(description
"SASL (Simple Authentication Security Layer) is an Internet
standards-track method for remote computers to authenticate. The Cyrus SASL
library makes supporting various SASL mechanisms easy for both client and
server writers.")
(license (license:bsd-style "file://COPYING"
"See COPYING in the distribution."))
(home-page "http://cyrusimap.web.cmu.edu/index.php")))

60
gnu/packages/dc.scm Normal file
View File

@@ -0,0 +1,60 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages dc)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnutls)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages sqlite)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:)))
(define-public ncdc
(package
(name "ncdc")
(version "1.19")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev.yorhel.nl/download/ncdc-" version
".tar.gz"))
(sha256 (base32
"1wgvqwfxq9kc729h2r528n55821w87sfbm4h21mr6pvkpfw30hf2"))))
(build-system gnu-build-system)
(inputs
`(("bzip2" ,bzip2)
("glib" ,glib)
("gnutls" ,gnutls)
("ncurses" ,ncurses)
("sqlite" ,sqlite)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://dev.yorhel.nl/ncdc")
(synopsis
"Lightweight direct connect client with a friendly ncurses interface")
(description
"Ncdc is a client for the Direct Connect peer-to-peer protocol implemented
using ncurses. It is known for its smaller footprint and ease of use.")
(license license:x11)))

47
gnu/packages/ddrescue.scm Normal file
View File

@@ -0,0 +1,47 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages ddrescue)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module ((gnu packages compression) #:select (lzip)))
(define-public ddrescue
(package
(name "ddrescue")
(version "1.17")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/ddrescue/ddrescue-"
version ".tar.lz"))
(sha256
(base32
"0bvmsbzli2j4czwkabzs978n1y6vx31axh02kpgcf7033cc6rydy"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
(synopsis "Data recovery utility")
(native-inputs `(("lzip" ,lzip)))
(description
"GNU ddrescue is a fully automated data recovery tool. It copies data
from one file to another, working to rescue data in case of read errors. The
program also includes a tool for manipulating its log files, which are used
to recover data more efficiently by only reading the necessary blocks.")
(license gpl3+)))

83
gnu/packages/dejagnu.scm Normal file
View File

@@ -0,0 +1,83 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages dejagnu)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (gnu packages tcl))
(define-public dejagnu
(package
(name "dejagnu")
(version "1.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/dejagnu/dejagnu-"
version ".tar.gz"))
(sha256
(base32
"1lik8h4qi7x0mhsi8xmj91an1yb63rjbk6v4xrmzgiy5lk8lgrv0"))))
(build-system gnu-build-system)
(inputs `(("expect" ,expect)))
(arguments
'(#:phases (alist-replace
'check
(lambda _
;; Note: The test-suite *requires* /dev/pts among the
;; `build-chroot-dirs' of the build daemon when
;; building in a chroot. See
;; <http://thread.gmane.org/gmane.linux.distributions.nixos/1036>
;; for details.
(if (and (directory-exists? "/dev/pts")
(directory-exists? "/proc"))
(begin
;; Provide `runtest' with a log name, otherwise
;; it tries to run `whoami', which fails when in
;; a chroot.
(setenv "LOGNAME" "guix-builder")
;; The test-suite needs to have a non-empty stdin:
;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>.
(zero?
(system "make check < /dev/zero")))
(begin
(display "test suite cannot be run, skipping\n")
#t)))
(alist-cons-after
'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Use the right `expect' binary.
(let ((out (assoc-ref outputs "out"))
(expect (assoc-ref inputs "expect")))
(substitute* (string-append out "/bin/runtest")
(("^mypath.*$" all)
(string-append all
"export PATH="
expect "/bin:$PATH\n")))))
%standard-phases))))
(home-page
"http://www.gnu.org/software/dejagnu/")
(synopsis "GNU software testing framework")
(description
"DejaGnu is a framework for testing software. In effect, it serves as
a front-end for all tests written for a program. Thus, each program can have
multiple test suites, which are then all managed by a single harness.")
(license gpl2+)))

View File

@@ -0,0 +1,78 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages dictionaries)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system trivial)
#:use-module (gnu packages base)
#:use-module (gnu packages texinfo)
#:use-module ((gnu packages compression)
#:select (gzip)))
(define-public vera
(package
(name "vera")
(version "1.21a")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/vera/vera-" version
".tar.gz"))
(sha256
(base32
"09qz1g8js8qw735wmd8kraqbk1d1997v3px2lcc58frf1r66bp8f"))))
(build-system trivial-build-system)
(arguments
`(#:builder (begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(info (string-append out "/share/info"))
(html (string-append out "/share/html"))
(source (assoc-ref %build-inputs "source"))
(tar (assoc-ref %build-inputs "tar"))
(gz (assoc-ref %build-inputs "gzip"))
(texi (assoc-ref %build-inputs "texinfo")))
(setenv "PATH" (string-append gz "/bin"))
(system* (string-append tar "/bin/tar") "xvf" source)
(chdir (string-append "vera-" ,version))
(mkdir-p info)
(mkdir-p html)
;; XXX: Use '--force' because the document is unhappy
;; with Texinfo 5 (yes, documents can be unhappy.)
(and (zero?
(system* (string-append texi "/bin/makeinfo")
"vera.texi" "--force" "-o"
(string-append info "/vera.info")))
(zero?
(system* (string-append texi "/bin/makeinfo")
"vera.texi" "--force" "--html" "-o"
(string-append html "/vera.html"))))))
#:modules ((guix build utils))))
(native-inputs `(("texinfo" ,texinfo)
("tar" ,tar)
("gzip" ,gzip)))
(home-page "http://savannah.gnu.org/projects/vera/")
(synopsis "List of acronyms")
(description
"V.E.R.A. (Virtual Entity of Relevant Acronyms) is a list of computing
acronyms distributed as an info document.")
(license fdl1.3+)))

100
gnu/packages/docbook.scm Normal file
View File

@@ -0,0 +1,100 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages docbook)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module ((gnu packages base)
#:select (tar))
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system trivial)
#:autoload (gnu packages zip) (unzip))
(define-public docbook-xml
(package
(name "docbook-xml")
(version "4.5")
(source (origin
(method url-fetch)
(uri (string-append "http://www.docbook.org/xml/" version
"/docbook-xml-" version ".zip"))
(sha256
(base32
"1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf"))))
(build-system trivial-build-system)
(arguments
'(#:builder (begin
(use-modules (guix build utils))
(let* ((unzip
(string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(source (assoc-ref %build-inputs "source"))
(out (assoc-ref %outputs "out"))
(dtd (string-append out "/xml/dtd/docbook")))
(mkdir-p dtd)
(with-directory-excursion dtd
(system* unzip source))))
#:modules ((guix build utils))))
(native-inputs `(("unzip" ,unzip)))
(home-page "http://docbook.org")
(synopsis "DocBook XML DTDs for document authoring")
(description
"DocBook is general purpose XML and SGML document type particularly well
suited to books and papers about computer hardware and software (though it is
by no means limited to these applications.) This package provides XML DTDs.")
(license (x11-style "" "See file headers."))))
(define-public docbook-xsl
(package
(name "docbook-xsl")
(version "1.72.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/docbook/docbook-xsl-"
version ".tar.bz2"))
(sha256
(base32
"1cnrfgqz8pc9wnlgqjch2338ad7jki6d4h6b2fhaxn1a2201df5k"))))
(build-system trivial-build-system)
(arguments
`(#:builder (begin
(use-modules (guix build utils))
(let* ((bzip2 (assoc-ref %build-inputs "bzip2"))
(tar (assoc-ref %build-inputs "tar"))
(source (assoc-ref %build-inputs "source"))
(out (assoc-ref %outputs "out"))
(xsl (string-append out "/xml/xsl")))
(setenv "PATH" (string-append bzip2 "/bin"))
(system* (string-append tar "/bin/tar") "xvf" source)
(mkdir-p xsl)
(copy-recursively (string-append ,name "-" ,version)
(string-append xsl "/" ,name
"-" ,version))))
#:modules ((guix build utils))))
(native-inputs `(("bzip2" ,bzip2)
("tar" ,tar)))
(home-page "http://docbook.org")
(synopsis "DocBook XSL style sheets for document authoring")
(description
"This package provides XSL style sheets for DocBook.")
(license (x11-style "" "See 'COPYING' file."))))

86
gnu/packages/dwm.scm Normal file
View File

@@ -0,0 +1,86 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages dwm)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages xorg))
(define-public dwm
(package
(name "dwm")
(version "6.0")
(source (origin
(method url-fetch)
(uri (string-append "http://dl.suckless.org/dwm/dwm-"
version ".tar.gz"))
(sha256
(base32 "0mpbivy9j80l1jqq4bd4g4z8s5c54fxrjj44avmfwncjwqylifdj"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:phases
(alist-replace
'configure
(lambda _
(substitute* "Makefile" (("\\$\\{CC\\}") "gcc"))
#t)
(alist-replace
'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero?
(system* "make" "install"
(string-append "DESTDIR=" out) "PREFIX="))))
%standard-phases))))
(inputs
`(("libx11" ,libx11)
("libxinerama" ,libxinerama)))
(home-page "http://dwm.suckless.org/")
(synopsis "Dynamic window manager")
(description
"dwm is a dynamic window manager for X. It manages windows in tiled,
monocle and floating layouts. All of the layouts can be applied dynamically,
optimising the environment for the application in use and the task performed.
In tiled layout windows are managed in a master and stacking area. The master
area contains the window which currently needs most attention, whereas the
stacking area contains all other windows. In monocle layout all windows are
maximised to the screen size. In floating layout windows can be resized and
moved freely. Dialog windows are always managed floating, regardless of the
layout applied.
Windows are grouped by tags. Each window can be tagged with one or multiple
tags. Selecting certain tags displays all windows with these tags.
Each screen contains a small status bar which displays all available tags, the
layout, the number of visible windows, the title of the focused window, and the
text read from the root window name property, if the screen is focused. A
floating window is indicated with an empty square and a maximised floating
window is indicated with a filled square before the windows title. The selected
tags are indicated with a different color. The tags of the focused window are
indicated with a filled square in the top left corner. The tags which are
applied to one or more windows are indicated with an empty square in the top
left corner.
dwm draws a small customizable border around windows to indicate the focus
state.")
(license x11)))

55
gnu/packages/ed.scm Normal file
View File

@@ -0,0 +1,55 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages ed)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages compression))
(define-public ed
(package
(name "ed")
(version "1.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ed/ed-"
version ".tar.lz"))
(sha256
(base32
"16kycdm5fcvpdr41hxb2da8da6jzs9dqznsg5552z6rh28n0jh4m"))))
(build-system gnu-build-system)
(native-inputs `(("lzip" ,lzip)))
(arguments
'(#:configure-flags '("CC=gcc")
#:phases (alist-cons-before 'patch-source-shebangs 'patch-test-suite
(lambda _
(substitute* "testsuite/check.sh"
(("/bin/sh") (which "sh"))))
%standard-phases)))
(home-page "http://www.gnu.org/software/ed/")
(synopsis "Line-oriented text editor")
(description
"Ed is a line-oriented text editor: rather than offering an overview of
a document, ed performs editing one line at a time. It can be executed both
interactively and via shell scripts. Its method of command input allows
complex tasks to be performed in an automated way. GNU ed offers several
extensions over the standard utility.")
(license gpl3+)))

104
gnu/packages/elf.scm Normal file
View File

@@ -0,0 +1,104 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages elf)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+))
#:use-module (gnu packages)
#:use-module (gnu packages m4)
#:use-module (gnu packages compression))
(define-public elfutils
(package
(name "elfutils")
(version "0.157")
(source (origin
(method url-fetch)
(uri (string-append
"https://fedorahosted.org/releases/e/l/elfutils/"
version "/elfutils-" version ".tar.bz2"))
(sha256
(base32
"11ffbihw9zs2dhmlww9zilwvmv6v1pr6bvnz5dnzn0lxq70ckbag"))))
(build-system gnu-build-system)
;; Separate programs because that's usually not what elfutils users want,
;; and because they duplicate what Binutils provides.
(outputs '("out" ; libelf.so, elfutils/*.h, etc.
"bin")) ; ld, nm, objdump, etc.
(native-inputs `(("m4" ,m4)))
(inputs `(("zlib" ,zlib)))
(home-page "https://fedorahosted.org/elfutils/")
(synopsis #f)
(description #f)
;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+.
(license lgpl3+)))
(define-public libelf
(package
(name "libelf")
(version "0.8.13")
(source (origin
(method url-fetch)
(uri (string-append "http://www.mr511.de/software/libelf-"
version ".tar.gz"))
(sha256
(base32
"0vf7s9dwk2xkmhb79aigqm0x0yfbw1j0b9ksm51207qwr179n6jr"))))
(build-system gnu-build-system)
(arguments '(#:phases (alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
;; This old `configure' script doesn't support
;; variables passed as arguments.
(let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)))))
%standard-phases)))
(home-page "http://www.mr511.de/software/english.html")
(synopsis "An ELF object file access library")
(description "libelf is a C library to access ELF object files.")
(license lgpl2.0+)))
(define-public patchelf
(package
(name "patchelf")
(version "0.6")
(source (origin
(method url-fetch)
(uri (string-append
"http://nixos.org/releases/patchelf/patchelf-"
version
"/patchelf-" version ".tar.bz2"))
(sha256
(base32
"00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw"))
(patches (list (search-patch "patchelf-page-size.patch")))))
(build-system gnu-build-system)
(home-page "http://nixos.org/patchelf.html")
(synopsis "Modify the dynamic linker and RPATH of ELF executables")
(description
"PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be
changed.")
(license gpl3+)))

142
gnu/packages/emacs.scm Normal file
View File

@@ -0,0 +1,142 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages emacs)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages gtk)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages gnutls)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages guile)
#:use-module (gnu packages xorg)
#:use-module (gnu packages lesstif)
#:use-module (gnu packages libjpeg)
#:use-module (gnu packages libtiff)
#:use-module (gnu packages libpng)
#:use-module (gnu packages giflib)
#:use-module (gnu packages linux)
#:use-module ((gnu packages compression)
#:renamer (symbol-prefix-proc 'compression:))
#:use-module (gnu packages xml)
#:use-module (gnu packages glib))
(define-public emacs
(package
(name "emacs")
(version "24.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/emacs/emacs-"
version ".tar.xz"))
(sha256
(base32
"1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"))
(patches (list (search-patch "emacs-configure-sh.patch")))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
(list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc")
"/lib"))
#:phases (alist-cons-before
'configure 'fix-/bin/pwd
(lambda _
;; Use `pwd', not `/bin/pwd'.
(substitute* (find-files "." "^Makefile\\.in$")
(("/bin/pwd")
"pwd")))
%standard-phases)))
(inputs
`(("gnutls" ,gnutls)
("ncurses" ,ncurses)
;; TODO: Add the optional dependencies.
("xlibs" ,libx11)
("gtk+" ,gtk+-2)
("libXft" ,libxft)
("libtiff" ,libtiff)
("giflib" ,giflib)
("libjpeg" ,libjpeg-8)
;; When looking for libpng `configure' links with `-lpng -lz', so we
;; must also provide zlib as an input.
("libpng" ,libpng)
("zlib" ,compression:zlib)
("libXpm" ,libxpm)
("libxml2" ,libxml2)
("libice" ,libice)
("libsm" ,libsm)
("alsa-lib" ,alsa-lib)
("dbus" ,dbus)))
(native-inputs
`(("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
(home-page "http://www.gnu.org/software/emacs/")
(synopsis "The extensible, customizable, self-documenting text editor")
(description
"GNU Emacs is an extensible and highly customizable text editor. It is
based on an Emacs Lisp interpreter with extensions for text editing. Emacs
has been extended in essentially all areas of computing, giving rise to a
vast array of packages supporting, e.g., email, IRC and XMPP messaging,
spreadsheets, remote server editing, and much more. Emacs includes extensive
documentation on all aspects of the system, from basic editing to writing
large Lisp programs. It has full Unicode support for nearly all human
languages.")
(license gpl3+)))
;;;
;;; Emacs hacking.
;;;
(define-public geiser
(package
(name "geiser")
(version "0.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/geiser/" version
"/geiser-" version ".tar.gz"))
(sha256
(base32 "0ds7zk9b1839l9fsqfsgrby6manvy1cf5bjniiqhxl55h0cr6ijp"))))
(build-system gnu-build-system)
(inputs `(("guile" ,guile-2.0)
("emacs" ,emacs)))
(home-page "http://nongnu.org/geiser/")
(synopsis "Collection of Emacs modes for Guile and Racket hacking")
(description
"Geiser is a collection of Emacs major and minor modes that
conspire with one or more Scheme interpreters to keep the Lisp Machine
Spirit alive. It draws inspiration (and a bit more) from environments
such as Common Lisps Slime, Factors FUEL, Squeak or Emacs itself, and
does its best to make Scheme hacking inside Emacs (even more) fun.
Or, to be precise, what i consider fun. Geiser is thus my humble
contribution to the dynamic school of expression, and a reaction against
what i perceive as a derailment, in modern times, of standard Scheme
towards the static camp. Because i prefer growing and healing to poking
at corpses, the continuously running Scheme interpreter takes the center
of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog
between the Scheme interpreter, Emacs and, ultimately, the schemer,
giving her access to live metadata.")
(license bsd-3)))

53
gnu/packages/fdisk.scm Normal file
View File

@@ -0,0 +1,53 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages fdisk)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (gnu packages gettext)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux)
#:use-module (gnu packages parted)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public fdisk
(package
(name "fdisk")
(version "2.0.0a")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/fdisk/gnufdisk-"
version ".tar.gz"))
(sha256
(base32
"04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gnu-gettext)
("guile" ,guile-1.8)
("util-linux" ,util-linux)
("parted" ,parted)))
(home-page "https://www.gnu.org/software/fdisk/")
(synopsis "Low-level disk partitioning and formatting")
(description
"GNU fdisk provides a GNU version of the common disk partitioning tool
fdisk. fdisk is used for the creation and manipulation of disk partition
tables, and it understands a variety of different formats.")
(license gpl3+)))

48
gnu/packages/file.scm Normal file
View File

@@ -0,0 +1,48 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages file)
#:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public file
(package
(name "file")
(version "5.18")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.astron.com/pub/file/file-"
version ".tar.gz"))
(sha256 (base32
"01xz106biz6x4h5ilymg5v3367djvgnfp4lm87132cjqdmqgn6b5"))))
(build-system gnu-build-system)
(native-inputs
;; This package depends upon a native install of itself.
(if (%current-target-system) `(("file" ,file)) '() ))
(synopsis "file, a file type guesser")
(description
"The file command is a file type guesser, a command-line tool that tells
you in words what kind of data a file contains. It does not rely on filename
extentions to tell you the type of a file, but looks at the actual contents
of the file.")
(license bsd-2)
(home-page "http://www.darwinsys.com/file/")))

80
gnu/packages/flex.scm Normal file
View File

@@ -0,0 +1,80 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages flex)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages m4)
#:use-module (gnu packages bison)
#:use-module (gnu packages indent)
#:use-module (srfi srfi-1)
#:export (flex))
(define flex
(package
(name "flex")
(version "2.5.37")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/flex/flex-"
version ".tar.bz2"))
(sha256
(base32
"0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp"))
(patches (list (search-patch "flex-bison-tests.patch")))))
(build-system gnu-build-system)
(inputs
(let ((bison-for-tests
;; Work around an incompatibility with Bison 3.0:
;; <http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00014.html>.
(package (inherit bison)
(version "2.7.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/bison/bison-"
version ".tar.xz"))
(sha256
(base32
"1yx7isx67sdmyijvihgyra1f59fwdz7sqriginvavfj5yb5ss2dl"))))
;; Unlike Bison 3.0, this version did not need Flex for its
;; tests, so it allows us to break the cycle.
(inputs (alist-delete "flex" (package-inputs bison))))))
`(("bison" ,bison-for-tests)
("indent" ,indent))))
(propagated-inputs `(("m4" ,m4)))
(home-page "http://flex.sourceforge.net/")
(synopsis "A fast lexical analyser generator")
(description
"Flex is a tool for generating scanners. A scanner, sometimes
called a tokenizer, is a program which recognizes lexical patterns in
text. The flex program reads user-specified input files, or its standard
input if no file names are given, for a description of a scanner to
generate. The description is in the form of pairs of regular expressions
and C code, called rules. Flex generates a C source file named,
\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\"
can be compiled and linked to produce an executable. When the executable
is run, it analyzes its input for occurrences of text matching the
regular expressions for each rule. Whenever it finds a match, it
executes the corresponding C code.")
(license (bsd-style "file://COPYING"
"See COPYING in the distribution."))))

59
gnu/packages/fltk.scm Normal file
View File

@@ -0,0 +1,59 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages fltk)
#:use-module (guix licenses)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gl)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public fltk
(package
(name "fltk")
(version "1.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://fltk.org/pub/fltk/" version "/fltk-" version "-source.tar.gz"))
(sha256
(base32
"1974brlk723095vf8z72kazq1cbqr9a51kq6b0xda6zkjkgl8q0p"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
("mesa" ,mesa)))
(arguments
`(#:tests? #f ;TODO: compile programs in "test" dir
#:configure-flags '("--enable-shared")
#:phases
(alist-cons-before
'configure 'patch-makeinclude
(lambda _
(substitute* "makeinclude.in"
(("/bin/sh") (which "sh"))))
%standard-phases)))
(home-page "https://www.fltk.org")
(synopsis "3D C++ GUI library")
(description "FLTK is a C++ GUI toolkit providing modern GUI functionality without the
bloat. It supports 3D graphics via OpenGL and its built-in GLUT emulation.
FLTK is designed to be small and modular enough to be statically linked, but
works fine as a shared library. FLTK also includes an excellent UI builder
called FLUID that can be used to create applications in minutes.")
(license lgpl2.0))) ; plus certain additional permissions

200
gnu/packages/fonts.scm Normal file
View File

@@ -0,0 +1,200 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages fonts)
#:use-module ((guix licenses)
#:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system trivial)
#:use-module ((gnu packages base)
#:select (tar))
#:use-module (gnu packages compression))
(define-public ttf-dejavu
(package
(name "ttf-dejavu")
(version "2.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/dejavu/"
version "/dejavu-fonts-ttf-"
version ".tar.bz2"))
(sha256
(base32
"0pgb0a3ngamidacmrvasg51ck3gp8gn93w6sf1s8snwzx4x2r9yh"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let ((tar (string-append (assoc-ref %build-inputs
"tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs
"bzip2")
"/bin"))
(font-dir (string-append
%output "/share/fonts/truetype"))
(conf-dir (string-append
%output "/share/fontconfig/conf.avail"))
(doc-dir (string-append
%output "/share/doc/" ,name "-" ,version)))
(setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p conf-dir)
(mkdir-p doc-dir)
(chdir (string-append "dejavu-fonts-ttf-" ,version))
(for-each (lambda (ttf)
(copy-file ttf
(string-append font-dir "/"
(basename ttf))))
(find-files "ttf" "\\.ttf$"))
(for-each (lambda (conf)
(copy-file conf
(string-append conf-dir "/"
(basename conf))))
(find-files "fontconfig" "\\.conf$"))
(for-each (lambda (doc)
(copy-file doc
(string-append doc-dir "/"
(basename doc))))
(find-files "." "\\.txt$|^[A-Z][A-Z]*$"))))))
(native-inputs `(("source" ,source)
("tar" ,tar)
("bzip2" ,bzip2)))
(home-page "http://dejavu-fonts.org/")
(synopsis "Vera font family derivate with additional characters")
(description "DejaVu provides an expanded version of the Vera font family
aiming for quality and broader Unicode coverage while retaining the original
Vera style. DejaVu currently works towards conformance with the Multilingual
European Standards (MES-1 and MES-2) for Unicode coverage. The DejaVu fonts
provide serif, sans and monospaced variants.")
(license
(license:x11-style
"http://dejavu-fonts.org/"))))
(define-public ttf-bitstream-vera
(package
(name "ttf-bitstream-vera")
(version "1.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/ttf-bitstream-vera/"
version "/ttf-bitstream-vera-"
version ".tar.bz2"))
(sha256
(base32
"1p3qs51x5327gnk71yq8cvmxc6wgx79sqxfvxcv80cdvgggjfnyv"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let ((tar (string-append (assoc-ref %build-inputs
"tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs
"bzip2")
"/bin"))
(font-dir (string-append %output
"/share/fonts/truetype"))
(doc-dir (string-append %output "/share/doc/"
,name "-" ,version)))
(setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p doc-dir)
(chdir (string-append "ttf-bitstream-vera-" ,version))
(for-each (lambda (ttf)
(copy-file ttf
(string-append font-dir "/" ttf)))
(find-files "." "\\.ttf$"))
(for-each (lambda (doc)
(copy-file doc
(string-append doc-dir "/" doc)))
(find-files "." "\\.TXT$"))))))
(native-inputs `(("source" ,source)
("tar" ,tar)
("bzip2" ,bzip2)))
(home-page "https://www-old.gnome.org/fonts/")
(synopsis "Bitstream Vera sans-serif typeface")
(description "Vera is a sans-serif typeface from Bitstream, Inc. This
package provides the TrueType (TTF) files.")
(license
(license:x11-style
"https://www-old.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"))))
(define-public freefont-ttf
(package
(name "freefont-ttf")
(version "20100919")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/freefont/freefont-ttf-"
version ".tar.gz"))
(sha256
(base32
"1q3h5jp1mbdkinkwxy0lfd0a1q7azlbagraydlzaa2ng82836wg4"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let ((tar (string-append (assoc-ref %build-inputs
"tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs
"gzip")
"/bin"))
(font-dir (string-append %output
"/share/fonts/truetype"))
(doc-dir (string-append %output "/share/doc/"
,name "-" ,version)))
(setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p doc-dir)
(chdir (string-append "freefont-" ,version))
(for-each (lambda (file)
(let ((dir (if (string-suffix? "ttf" file)
font-dir
doc-dir)))
(copy-file file
(string-append dir "/" file))))
(find-files "." ""))))))
(native-inputs `(("source" ,source)
("tar" ,tar)
("gzip" ,gzip)))
(home-page "http://www.gnu.org/software/freefont/")
(synopsis "Unicode-encoded outline fonts")
(description
"The GNU Freefont project aims to provide a set of free outline
(PostScript Type0, TrueType, OpenType...) fonts covering the ISO
10646/Unicode UCS (Universal Character Set).")
(license license:gpl3+)))

169
gnu/packages/fontutils.scm Normal file
View File

@@ -0,0 +1,169 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages fontutils)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml)
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public freetype
(package
(name "freetype")
(version "2.4.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/freetype/freetype-"
version ".tar.gz"))
(sha256 (base32
"0gpcz6swir64kp0dk3rwgqqkmf48b90dqgczdmznjjryhrahx9r9"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(alist-replace
'install
(lambda* (#:key outputs #:allow-other-keys #:rest args)
(let ((install (assoc-ref %standard-phases 'install))
(include (string-append (assoc-ref outputs "out") "/include")))
(apply install args)
;; Unravel one directory, since ft2build.h includes directly from
;; freetype/, not freetype2/freetype; this is announced in the file
;; to be changed in a future release.
(symlink (string-append include "/freetype2/freetype")
(string-append include "/freetype"))))
%standard-phases)))
(synopsis "Freetype, a library to render fonts")
(description
"Freetype is a library that can be used by applications to access the
contents of font files. It provides a uniform interface to access font files.
It supports both bitmap and scalable formats, including TrueType, OpenType,
Type1, CID, CFF, Windows FON/FNT, X11 PCF, and others. It supports high-speed
anti-aliased glyph bitmap generation with 256 gray levels.")
(license license:freetype) ; some files have other licenses
(home-page "http://www.freetype.org/")))
(define-public fontconfig
(package
(name "fontconfig")
(version "2.10.93")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.freedesktop.org/software/fontconfig/release/fontconfig-"
version ".tar.bz2"))
(sha256 (base32
"172j5vsgx2xplsk5mrxrspbn5lrswq6gnxkxjgcrx0j8i0kiz47a"))))
(build-system gnu-build-system)
(inputs `(("expat" ,expat)
("freetype" ,freetype)
("gs-fonts" ,gs-fonts)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(arguments
`(#:configure-flags
;; point to user profile instead of /usr/share/fonts in /etc/fonts.conf
(list "--with-default-fonts=~/.guix-profile/share/fonts"
;; register gs-fonts
(string-append "--with-add-fonts="
(assoc-ref %build-inputs "gs-fonts")
"/share/fonts"))))
(synopsis "Fontconfig, a library for configuring and customising font access.")
(description
"Fontconfig can discover new fonts when installed automatically;
perform font name substitution, so that appropriate alternative fonts can
be selected if fonts are missing;
identify the set of fonts required to completely cover a set of languages;
have GUI configuration tools built as it uses an XML-based configuration file;
efficiently and quickly find needed fonts among the set of installed fonts;
be used in concert with the X Render Extension and FreeType to implement
high quality, anti-aliased and subpixel rendered text on a display.")
; The exact license is more X11-style than BSD-style.
(license (license:bsd-style "file://COPYING"
"See COPYING in the distribution."))
(home-page "http://www.freedesktop.org/wiki/Software/fontconfig")))
(define-public t1lib
(package
(name "t1lib")
(version "5.1.2")
(source (origin
(method url-fetch)
(uri "ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz")
(sha256 (base32
"0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2"))))
(build-system gnu-build-system)
(arguments
;; Making the documentation requires latex, but t1lib is also an input
;; for building texlive.
`(#:tests? #f ; no test target
#:make-flags
'("without_doc")))
(synopsis "T1lib, a library for generating bitmaps from type 1 fonts.")
(description
"T1lib is a library for generating/rasterising bitmaps from Type 1 fonts.
It is based on the code of the X11 rasteriser of the X11 project.
The bitmaps created by t1lib are returned in a data structure with type
GLYPH. This special GLYPH-type is also used in the X11 window system to
describe character bitmaps. It contains the bitmap data as well as some
metric information. But t1lib is in itself entirely independent of the
X11-system or any other graphical user interface. ")
(license license:gpl2)
(home-page "http://www.t1lib.org/")))
(define-public teckit
(package
(name "teckit")
(version "2.5.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://scripts.sil.org/svn-view/teckit/TAGS/TECkit_"
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
".tar.gz"))
(sha256 (base32
"0fjiwvic8mdxpkyccfp7zh26y9xnvkp0skqbyfkrjiacd191k82r"))
(patches (list (search-patch "teckit-cstdio.patch")))))
(build-system gnu-build-system)
(inputs `(("zlib" ,zlib)))
(synopsis "TECkit, a toolkit for encoding conversions")
(description
"TECkit is a low-level toolkit intended to be used by other applications
that need to perform encoding conversions (e.g., when importing legacy data
into a Unicode-based application). The primary component of the TECkit
package is therefore a library that performs conversions; this is the
\"TECkit engine\". The engine relies on mapping tables in a specific binary
format (for which documentation is available); there is a compiler that
creates such tables from a human-readable mapping description (a simple
text file).
To facilitate the development and testing of mapping tables for TECkit,
several applications are also included in the current package; these
include simple tools for applying conversions to plain-text and Standard
Format files, as well as both command-line and simple GUI versions of the
TECkit compiler. However, it is not intended that these tools will be the
primary means by which end users perform conversions, and they have not
been designed, tested, and debugged to the extent that general-purpose
applications should be.")
(license license:lgpl2.1+)
(home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit")))

49
gnu/packages/freeipmi.scm Normal file
View File

@@ -0,0 +1,49 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages freeipmi)
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages readline)
#:use-module (gnu packages gnupg))
(define-public freeipmi
(package
(name "freeipmi")
(version "1.4.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/freeipmi/freeipmi-"
version ".tar.gz"))
(sha256
(base32
"1qpr4h46zmbk82w4fpijimzsdpgyr0fdnsinpsp5cvxy5pcikbd6"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline) ("libgcrypt" ,libgcrypt)))
(home-page "http://www.gnu.org/software/freeipmi/")
(synopsis "Platform management, including sensor and power monitoring")
(description
"GNU FreeIPMI is a collection of in-band and out-of-band IPMI software
in accordance with the IPMI v1.5/2.0 specification. These programs provide a
set of interfaces for platform management. Common functionality includes
sensor monitoring, system event monitoring, power control and
serial-over-LAN.")
(license gpl3+)))

96
gnu/packages/games.scm Normal file
View File

@@ -0,0 +1,96 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages games)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages xorg)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages sqlite)
#:use-module (guix build-system gnu))
(define-public gnubg
(package
(name "gnubg")
(version "1.02")
(source
(origin
(method url-fetch)
(uri (string-append "http://files.gnubg.org/media/sources/gnubg-release-"
version ".000-sources." "tar.gz"))
(sha256
(base32
"015mvjk2iw1cg1kxwxfnvp2rxb9cylf6yc39i30fdy414k07zkky"))))
(build-system gnu-build-system)
(inputs `(("glib" ,glib)
("readline" ,readline)
("gtk+" ,gtk+-2)
("mesa" ,mesa)
("gtkglext" ,gtkglext)
("sqlite" ,sqlite)
("libcanberra" ,libcanberra)))
(native-inputs `(("python-2" ,python-2)
("pkg-config" ,pkg-config)))
(home-page "https://gnubg.org")
(synopsis "Backgammon game")
(description "The GNU backgammon application can be used for playing, analyzing and
teaching the game. It has an advanced evaluation engine based on artificial
neural networks suitable for both beginners and advanced players. In
addition to a command-line interface, it also features an attractive, 3D
representation of the playing board.")
(license gpl3+)))
(define-public gnubik
(package
(name "gnubik")
(version "2.4.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/gnubik/gnubik-"
version ".tar.gz"))
(sha256
(base32
"0mfpwz341i1qpzi2qgslpc5i7d4fv7i01kv392m11pczqdc7i7m5"))))
(build-system gnu-build-system)
(inputs `(("gtk+" ,gtk+-2)
("mesa" ,mesa)
("libx11" ,libx11)
("guile" ,guile-2.0)
("gtkglext" ,gtkglext)))
(native-inputs `(("gettext" ,gnu-gettext)
("pkg-config" ,pkg-config)))
(home-page "https://www.gnu.org/software/gnubik/")
(synopsis "3d Rubik's cube game")
(description
"GNUbik is a puzzle game in which you must manipulate a cube to make
each of its faces have a uniform color. The game is customizable, allowing
you to set the size of the cube (the default is 3x3) or to change the colors.
You may even apply photos to the faces instead of colors. The game is
scriptable with Guile.")
(license gpl3+)))

72
gnu/packages/gawk.scm Normal file
View File

@@ -0,0 +1,72 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gawk)
#:use-module (guix licenses)
#:use-module (gnu packages bash)
#:use-module (gnu packages libsigsegv)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public gawk
(package
(name "gawk")
(version "4.1.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-" version
".tar.xz"))
(sha256
(base32 "0hin2hswbbd6kd6i4zzvgciwpl5fba8d2s524z8y5qagyz3x010q"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f ; test suite fails in parallel
#:phases (alist-cons-before
'configure 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Refer to the right shell.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "io.c"
(("/bin/sh")
(string-append bash "/bin/bash")))
;; When cross-compiling, remove dependencies on the
;; `check-for-shared-lib-support' target, which tries to
;; run the cross-built `gawk'.
,@(if (%current-target-system)
'((substitute* "extension/Makefile.in"
(("^.*: check-for-shared-lib-support" match)
(string-append "### " match))))
'())))
%standard-phases)))
(inputs `(("libsigsegv" ,libsigsegv)
,@(if (%current-target-system)
`(("bash" ,bash))
'())))
(home-page "http://www.gnu.org/software/gawk/")
(synopsis "A text scanning and processing language")
(description
"Gawk is the GNU implementation of Awk, a specialized programming
language for the easy manipulation of formatted text, such as tables of data.
Gawk features many extensions beyond the traditional implementation,
including network access, sorting, and large libraries.")
(license gpl3+)))

47
gnu/packages/gcal.scm Normal file
View File

@@ -0,0 +1,47 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gcal)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses))
(define-public gcal
(package
(name "gcal")
(version "3.6.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcal/gcal-"
version ".tar.xz"))
(sha256
(base32
"06xkwkir9w4jd9i72m1izmf4rbry4slg8gkiml4w26h13lx92hk7"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/gcal")
(synopsis "Calculating and printing a wide variety of calendars")
(description
"Gcal is a program to calculate and print calendars on the
command-line. Calendars can be printed in 1-month, 3-month or whole-year
views. In addition, eternal holiday lists can be generated for many
countries, which can be complemented by user-made lists of fixed dates to
make an agenda. Gcal can also calculate astronomical data, such as the
phases of the moon, and supports alternative calendar formats: Julian,
Gregorian, Islamic, Chinese and more.")
(license gpl3+)))

327
gnu/packages/gcc.scm Normal file
View File

@@ -0,0 +1,327 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gcc)
#:use-module ((guix licenses)
#:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+))
#:use-module (gnu packages)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages compression)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages elf)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (ice-9 regex))
(define %gcc-infrastructure
;; Base URL for GCC's infrastructure.
"ftp://gcc.gnu.org/pub/gcc/infrastructure/")
(define-public (gcc-configure-flags-for-triplet target)
"Return a list of additional GCC `configure' flags for TARGET, a GNU triplet.
The purpose of this procedure is to translate extended GNU triplets---e.g.,
where the OS part is overloaded to denote a specific ABI---into GCC
`configure' options. We take extended GNU triplets that glibc recognizes."
(cond ((string-match "^mips64el.*gnuabin?64$" target)
;; Triplets recognized by glibc as denoting the N64 ABI; see
;; ports/sysdeps/mips/preconfigure.
'("--with-abi=64"))
(else
;; TODO: Add `armel.*gnueabi', `hf', etc.
'())))
(define-public gcc-4.7
(let* ((stripped? #t) ; TODO: make this a parameter
(maybe-target-tools
(lambda ()
;; Return the `_FOR_TARGET' variables that are needed when
;; cross-compiling GCC.
(let ((target (%current-target-system)))
(if target
(map (lambda (var tool)
(string-append (string-append var "_FOR_TARGET")
"=" target "-" tool))
'("CC" "CXX" "LD" "AR" "NM" "RANLIB" "STRIP")
'("gcc" "g++" "ld" "ar" "nm" "ranlib" "strip"))
'()))))
(configure-flags
(lambda ()
;; This is terrible. Since we have two levels of quasiquotation,
;; we have to do this convoluted thing just so we can insert the
;; contents of (maybe-target-tools).
(list 'quasiquote
(append
'("--enable-plugin"
"--enable-languages=c,c++"
"--disable-multilib"
;; No pre-compiled libstdc++ headers, to save space.
"--disable-libstdcxx-pch"
"--with-local-prefix=/no-gcc-local-prefix"
,(let ((libc (assoc-ref %build-inputs "libc")))
(if libc
(string-append "--with-native-system-header-dir=" libc
"/include")
"--without-headers")))
;; When cross-compiling GCC, pass the right options for the
;; target triplet.
(or (and=> (%current-target-system)
gcc-configure-flags-for-triplet)
'())
(maybe-target-tools))))))
(package
(name "gcc")
(version "4.7.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
version "/gcc-" version ".tar.bz2"))
(sha256
(base32
"1hx9h64ivarlzi4hxvq42as5m9vlr5cyzaaq4gzj4i619zmkfz1g"))))
(build-system gnu-build-system)
(inputs `(("gmp" ,gmp)
("mpfr" ,mpfr)
("mpc" ,mpc)
("isl" ,isl)
("cloog" ,cloog)
("libelf" ,libelf)
("zlib" ,zlib)))
;; GCC is one of the few packages that doesn't ship .info files.
(native-inputs `(("texinfo" ,texinfo)))
(arguments
`(#:out-of-source? #t
#:strip-binaries? ,stripped?
#:configure-flags ,(configure-flags)
#:make-flags
(let* ((libc (assoc-ref %build-inputs "libc"))
(libc-native (or (assoc-ref %build-inputs "libc-native")
libc)))
`(,@(if libc
(list (string-append "LDFLAGS_FOR_TARGET="
"-B" libc "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc
,(glibc-dynamic-linker)))
'())
;; Native programs like 'genhooks' also need that right.
,(string-append "LDFLAGS="
"-Wl,-rpath=" libc-native "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc-native ,(glibc-dynamic-linker))
,(string-append "BOOT_CFLAGS=-O2 "
,(if stripped? "-g0" "-g"))))
#:tests? #f
#:phases
(alist-cons-before
'configure 'pre-configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
(when libc
;; The following is not performed for `--without-headers'
;; cross-compiler builds.
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
"^linux(64|-elf)?\\.h$")
(("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
(format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
suffix
(string-append libc ,(glibc-dynamic-linker)))))
;; Tell where to find libstdc++, libc, and `?crt*.o', except
;; `crt{begin,end}.o', which come with GCC.
(substitute* (find-files "gcc/config"
"^gnu-user.*\\.h$")
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
;; Help libgcc_s.so be found (see also below.) Always use
;; '-lgcc_s' so that libgcc_s.so is always found by those
;; programs that use 'pthread_cancel' (glibc dlopens
;; libgcc_s.so when pthread_cancel support is needed, but
;; having it in the application's RUNPATH isn't enough; see
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib -lgcc_s}} \" ~a"
libc libc out out suffix))
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
libc line))))
;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;")
"static char const sed_cmd_z[] = \"sed\";"))))
(alist-cons-after
'configure 'post-configure
(lambda _
;; Don't store configure flags, to avoid retaining references to
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'.
(substitute* "Makefile"
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))
(alist-replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(zero?
(system* "make"
,(if stripped?
"install-strip"
"install"))))
%standard-phases)))))
(native-search-paths
(list (search-path-specification
(variable "CPATH")
(directories '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
(directories '("lib" "lib64")))))
(properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
(synopsis "GNU Compiler Collection")
(description
"GCC is the GNU Compiler Collection. It provides compiler front-ends
for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and
Go. It also includes runtime support libraries for these languages.")
(license gpl3+)
(home-page "http://gcc.gnu.org/"))))
(define-public gcc-4.8
(package (inherit gcc-4.7)
(version "4.8.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
version "/gcc-" version ".tar.bz2"))
(sha256
(base32
"1j6dwgby4g3p3lz7zkss32ghr45zpdidrg8xvazvn91lqxv25p09"))))))
(define (custom-gcc gcc name languages)
"Return a custom version of GCC that supports LANGUAGES."
(package (inherit gcc)
(name name)
(arguments
(substitute-keyword-arguments `(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 regex)
(srfi srfi-1)
(srfi srfi-26))
,@(package-arguments gcc))
((#:configure-flags flags)
`(cons (string-append "--enable-languages="
,(string-join languages ","))
(remove (cut string-match "--enable-languages.*" <>)
,flags)))))))
(define-public gfortran-4.8
(custom-gcc gcc-4.8 "gfortran" '("fortran")))
(define-public gccgo-4.8
(custom-gcc gcc-4.8 "gccgo" '("go")))
(define-public gcc-objc-4.8
(custom-gcc gcc-4.8 "gcc-objc" '("objc")))
(define-public gcc-objc++-4.8
(custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")))
(define-public isl
(package
(name "isl")
(version "0.11.1")
(source (origin
(method url-fetch)
(uri (list (string-append
"http://isl.gforge.inria.fr/isl-"
version
".tar.bz2")
(string-append %gcc-infrastructure
name "-" version ".tar.gz")))
(sha256
(base32
"13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9"))))
(build-system gnu-build-system)
(inputs `(("gmp" ,gmp)))
(home-page "http://isl.gforge.inria.fr/")
(synopsis
"A library for manipulating sets and relations of integer points bounded
by linear constraints")
(description
"isl is a library for manipulating sets and relations of integer points
bounded by linear constraints. Supported operations on sets include
intersection, union, set difference, emptiness check, convex hull, (integer)
affine hull, integer projection, computing the lexicographic minimum using
parametric integer programming, coalescing and parametric vertex
enumeration. It also includes an ILP solver based on generalized basis
reduction, transitive closures on maps (which may encode infinite graphs),
dependence analysis and bounds on piecewise step-polynomials.")
(license lgpl2.1+)))
(define-public cloog
(package
(name "cloog")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (list (string-append
"http://www.bastoul.net/cloog/pages/download/count.php3?url=cloog-"
version
".tar.gz")
(string-append %gcc-infrastructure
name "-" version ".tar.gz")))
(sha256
(base32
"0a12rwfwp22zd0nlld0xyql11cj390rrq1prw35yjsw8wzfshjhw"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(inputs `(("gmp" ,gmp)
("isl" ,isl)))
(arguments '(#:configure-flags '("--with-isl=system")))
(home-page "http://www.cloog.org/")
(synopsis "A library to generate code for scanning Z-polyhedra")
(description
"CLooG is a free software library to generate code for scanning
Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that
reaches each integral point of one or more parameterized polyhedra.
CLooG has been originally written to solve the code generation problem
for optimizing compilers based on the polytope model. Nevertheless it
is used now in various area e.g., to build control automata for
high-level synthesis or to find the best polynomial approximation of a
function. CLooG may help in any situation where scanning polyhedra
matters. While the user has full control on generated code quality,
CLooG is designed to avoid control overhead and to produce a very
effective code.")
(license gpl2+)))

71
gnu/packages/gd.scm Normal file
View File

@@ -0,0 +1,71 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gd)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (gnu packages)
#:use-module (gnu packages libpng)
#:use-module (gnu packages libjpeg)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages compression)
#:use-module ((guix licenses) #:select (bsd-style)))
(define-public gd
(package
(name "gd")
;; Note: With libgd.org now pointing to bitbucket.org, genuine old
;; tarballs are no longer available. Notably, versions 2.0.34 and .35 are
;; missing.
(version "2.0.33")
(source (origin
(method url-fetch)
(uri "https://bitbucket.org/libgd/gd-libgd/get/GD_2_0_33.tar.gz")
(sha256
(base32
"0yrbx8mj9pykyzm0zl1q86xlkdvkajcsf5jmg688vhw9yc5wmbbw"))
(patches
(list (search-patch "gd-mips64-deplibs-fix.patch")))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
'unpack 'chdir
(lambda _
(chdir "src"))
%standard-phases)))
(inputs
`(("freetype" ,freetype)
("libpng" ,libpng)
("zlib" ,zlib)))
(propagated-inputs
`(("fontconfig" ,fontconfig)
("libjpeg" ,libjpeg)))
(home-page "http://www.libgd.org/")
(synopsis "Library for the dynamic creation of images by programmers")
(description
"GD is a library for the dynamic creation of images by programmers. GD
is written in C, and \"wrappers\" are available for Perl, PHP and other
languages. GD creates PNG, JPEG, GIF, WebP, XPM, BMP images, among other
formats. GD is commonly used to generate charts, graphics, thumbnails, and
most anything else, on the fly. While not restricted to use on the web, the
most common applications of GD involve website development.")
(license (bsd-style "file://COPYING"
"See COPYING file in the distribution."))))

71
gnu/packages/gdb.scm Normal file
View File

@@ -0,0 +1,71 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gdb)
#:use-module (gnu packages)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages xml)
#:use-module (gnu packages python)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public gdb
(package
(name "gdb")
(version "7.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.bz2"))
(sha256
(base32
"08vcb97j1b7vxwq6088wb6s3g3bm8iwikd922y0xsgbbxv3d2104"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; FIXME "make check" fails on single-processor systems.
#:phases (alist-cons-after
'configure 'post-configure
(lambda _
(for-each patch-makefile-SHELL
(find-files "." "Makefile\\.in")))
%standard-phases)))
(inputs
`(("expat" ,expat)
("mpfr" ,mpfr)
("gmp" ,gmp)
("readline" ,readline)
("ncurses" ,ncurses)
("python" ,python-wrapper)
("dejagnu" ,dejagnu)))
(native-inputs
`(("texinfo" ,texinfo)))
(home-page "http://www.gnu.org/software/gdb/")
(synopsis "The GNU debugger")
(description
"GDB is the GNU debugger. With it, you can monitor what a program is
doing while it runs or what it was doing just before a crash. It allows you
to specify the runtime conditions, to define breakpoints, and to change how
the program is running to try to fix bugs. It can be used to debug programs
written in C, C++, Ada, Objective-C, Pascal and more.")
(license gpl3+)))

46
gnu/packages/gdbm.scm Normal file
View File

@@ -0,0 +1,46 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gdbm)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public gdbm
(package
(name "gdbm")
(version "1.11")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdbm/gdbm-"
version ".tar.gz"))
(sha256
(base32
"1hz3jgh3pd4qzp6jy0l8pd8x01g9abw7csnrlnj1a2sxy122z4cd"))))
(arguments `(#:configure-flags '("--enable-libgdbm-compat")))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/gdbm/")
(synopsis
"Hash library of database functions compatible with traditional dbm")
(description
"GDBM is a library for manipulating hashed databases. It is used to
store key/value pairs in a file in a manner similar to the Unix dbm library
and provides interfaces to the traditional file format.")
(license gpl3+)))

Some files were not shown because too many files have changed in this diff Show More