1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-08 15:34:05 +02:00

Compare commits

...

2687 Commits

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 <https://github.com/NixOS/nix/compare/772b70952f75...4ddd077bfa9a>.

* 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
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))))
+49 -1
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
View File
@@ -0,0 +1,3 @@
[submodule "nix-upstream"]
path = nix-upstream
url = http://github.com/NixOS/nix.git
+25 -1
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>
+4 -1
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
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.
+237 -33
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
+536 -1
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.
+130 -22
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
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
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
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.
Executable
+15
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
+58
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
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
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:
+62
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)))
+202
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
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
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
+75
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
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"])
+102 -14
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
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)"
-94
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)))
-358
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
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
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
View File
File diff suppressed because it is too large Load Diff
+83
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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+)))
File diff suppressed because it is too large Load Diff
+120
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
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
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
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
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
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
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
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
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
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
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)))
+49
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+)))
+294
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
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
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
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))))
+60
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
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
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+)))
+57
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
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
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
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+)))
+78
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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