jackhill/guix/guix.git
11 years agoguix-daemon: Rename `--build-cores' for consistency with `guix-build'.
Ludovic Courtès [Wed, 9 Jan 2013 11:14:23 +0000 (12:14 +0100)]
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.

11 years agoderivations: Fix `derivation-prerequisites-to-build' when outputs are there.
Ludovic Courtès [Wed, 9 Jan 2013 07:38:57 +0000 (08:38 +0100)]
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.

11 years agognu-maintenance: Add `latest-release' and related tools.
Ludovic Courtès [Tue, 8 Jan 2013 21:46:12 +0000 (22:46 +0100)]
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.

11 years agoguix-package: Use `guile-final', not `guile-2.0' to build the environment.
Ludovic Courtès [Mon, 7 Jan 2013 23:05:37 +0000 (00:05 +0100)]
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.

11 years agoguix-package: Be verbose when Guile itself needs to be built.
Ludovic Courtès [Mon, 7 Jan 2013 22:58:24 +0000 (23:58 +0100)]
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?).

11 years agoguix-package: Remove `-b' shorthand for `--bootstrap'.
Ludovic Courtès [Mon, 7 Jan 2013 21:54:54 +0000 (22:54 +0100)]
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'.

11 years agosnix: Update `license' check in unit test.
Ludovic Courtès [Mon, 7 Jan 2013 21:53:23 +0000 (22:53 +0100)]
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.

11 years agosnix: Use (guix licenses) variables.
Ludovic Courtès [Mon, 7 Jan 2013 21:32:28 +0000 (22:32 +0100)]
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.

11 years agosnix: Gracefully handle `null' in Nix build inputs.
Ludovic Courtès [Mon, 7 Jan 2013 21:23:50 +0000 (22:23 +0100)]
snix: Gracefully handle `null' in Nix build inputs.

* guix/snix.scm (snix-derivation->guix-package)[convert-inputs]:
  Gracefully handle `null' as an input.

11 years agodistro: Add GNU Aspell.
Ludovic Courtès [Mon, 7 Jan 2013 20:30:45 +0000 (21:30 +0100)]
distro: Add GNU Aspell.

* distro/packages/aspell.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add GSL.
Ludovic Courtès [Mon, 7 Jan 2013 20:20:41 +0000 (21:20 +0100)]
distro: Add GSL.

* distro/packages/algebra.scm (gsl): New variable.

11 years agodistro: Add GNU GLOBAL.
Ludovic Courtès [Mon, 7 Jan 2013 20:12:12 +0000 (21:12 +0100)]
distro: Add GNU GLOBAL.

* distro/packages/global.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add Tcl, Expect, and DejaGNU.
Ludovic Courtès [Mon, 7 Jan 2013 20:11:19 +0000 (21:11 +0100)]
distro: Add Tcl, Expect, and DejaGNU.

* distro/packages/dejagnu.scm, distro/packages/tcl.scm: New files.
* Makefile.am (MODULES): Add them.

11 years agoUpdate license headers.
Ludovic Courtès [Sat, 5 Jan 2013 23:47:50 +0000 (00:47 +0100)]
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.

11 years agoAdd `guix-gc'.
Ludovic Courtès [Sat, 5 Jan 2013 23:28:06 +0000 (00:28 +0100)]
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'.

11 years agoguix-build: Make `--root' effective for .drv files too.
Ludovic Courtès [Sat, 5 Jan 2013 23:18:43 +0000 (00:18 +0100)]
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.

11 years agoderivations: Add `derivation-path->output-paths'.
Ludovic Courtès [Sat, 5 Jan 2013 22:51:13 +0000 (23:51 +0100)]
derivations: Add `derivation-path->output-paths'.

* guix/derivations.scm (derivation-path->output-paths): New procedure.
* tests/derivations.scm ("multiple-output derivation"): Test it.

11 years agoui: Factorize bug-report information in `--help'.
Ludovic Courtès [Sat, 5 Jan 2013 14:55:47 +0000 (15:55 +0100)]
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.

11 years agodaemon: Show the chroot contents upon `--debug'.
Ludovic Courtès [Wed, 2 Jan 2013 17:31:40 +0000 (18:31 +0100)]
daemon: Show the chroot contents upon `--debug'.

* nix/nix-daemon/guix-daemon.cc (main)[HAVE_CHROOT]: Display the
  contents of `settings.dirsInChroot' at `lvlDebug'.

11 years agodistro: Add Berkeley DB.
Andreas Enge [Wed, 2 Jan 2013 13:43:41 +0000 (14:43 +0100)]
distro: Add Berkeley DB.

* distro/packages/bdb.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add MIT Kerberos 5.
Andreas Enge [Sat, 29 Dec 2012 23:08:46 +0000 (00:08 +0100)]
distro: Add MIT Kerberos 5.

* distro/packages/mit-krb5.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodaemon: Properly initialize libgcrypt.
Ludovic Courtès [Wed, 2 Jan 2013 00:07:53 +0000 (01:07 +0100)]
daemon: Properly initialize libgcrypt.

* nix/nix-daemon/guix-daemon.cc (main): Call `gcry_check_version'.

11 years agobuild: Avoid error message during `make clean' when `test-tmp' doesn't exist.
Ludovic Courtès [Mon, 31 Dec 2012 12:19:29 +0000 (13:19 +0100)]
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'.

11 years agodistro: Add Libntlm, GNU GSS and GNU SASL.
Andreas Enge [Sat, 29 Dec 2012 22:26:58 +0000 (23:26 +0100)]
distro: Add Libntlm, GNU GSS and GNU SASL.

* distro/packages/gsasl.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: automake: Update to 1.12.6.
Andreas Enge [Fri, 21 Dec 2012 23:25:18 +0000 (00:25 +0100)]
distro: automake: Update to 1.12.6.

* distro/packages/autotools.scm (automake): Update to 1.12.6.

11 years agodistro: Add GNU Libidn.
Andreas Enge [Sat, 29 Dec 2012 20:29:03 +0000 (21:29 +0100)]
distro: Add GNU Libidn.

* distro/packages/libidn.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Update libtasn1 and gnutls.
Andreas Enge [Wed, 26 Dec 2012 14:18:58 +0000 (15:18 +0100)]
distro: Update libtasn1 and gnutls.

* distro/packages/gnutls.scm: Update libtasn1 and gnutls.

11 years agodistro: Add GNU idutils.
Ludovic Courtès [Fri, 21 Dec 2012 21:50:44 +0000 (22:50 +0100)]
distro: Add GNU idutils.

* distro/packages/idutils.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add rsync.
Andreas Enge [Fri, 21 Dec 2012 10:37:46 +0000 (11:37 +0100)]
distro: Add rsync.

* distro/packages/rsync.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add mpfrcx and fplll.
Andreas Enge [Wed, 19 Dec 2012 22:50:52 +0000 (23:50 +0100)]
distro: Add mpfrcx and fplll.

* distro/packages/algebra.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add Usbutils.
Nikita Karetnikov [Mon, 17 Dec 2012 20:29:06 +0000 (20:29 +0000)]
distro: Add Usbutils.

* distro/packages/linux.scm (usbutils): New variable.

11 years agodistro: Add Libusb.
Nikita Karetnikov [Tue, 18 Dec 2012 22:34:52 +0000 (22:34 +0000)]
distro: Add Libusb.

* distro/packages/libusb.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add Check.
Nikita Karetnikov [Sun, 16 Dec 2012 20:14:02 +0000 (20:14 +0000)]
distro: Add Check.

* distro/packages/check.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodownload: Remove unreachable SourceForge mirror.
Ludovic Courtès [Sun, 16 Dec 2012 23:18:15 +0000 (00:18 +0100)]
download: Remove unreachable SourceForge mirror.

* guix/download.scm (%mirrors)[sourceforge]: Remove kent.dl.*, which is
  unreachable.

11 years agodownload: Correctly detect "No route to host" conditions.
Ludovic Courtès [Sun, 16 Dec 2012 23:14:30 +0000 (00:14 +0100)]
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>.

11 years agodaemon: Gracefully handle Nix errors.
Ludovic Courtès [Sun, 16 Dec 2012 17:28:00 +0000 (18:28 +0100)]
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.

11 years agodaemon: Warn against running as root without `--build-users-group'.
Ludovic Courtès [Sun, 16 Dec 2012 17:13:59 +0000 (18:13 +0100)]
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.

11 years agodaemon: Add `--chroot-directory'.
Ludovic Courtès [Sun, 16 Dec 2012 17:09:27 +0000 (18:09 +0100)]
daemon: Add `--chroot-directory'.

* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_CHROOT_DIR): New macro.
  (options): Add `--chroot-directory'.
  (parse_opt): Handle it.

11 years agoguix-build: Add `--verbosity'.
Ludovic Courtès [Sat, 15 Dec 2012 14:21:38 +0000 (15:21 +0100)]
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'.

11 years agodaemon: Add `--debug' option.
Ludovic Courtès [Fri, 14 Dec 2012 23:06:09 +0000 (00:06 +0100)]
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.

11 years agodaemon: Disable use of substitutes for now.
Ludovic Courtès [Fri, 14 Dec 2012 22:51:20 +0000 (23:51 +0100)]
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.

11 years agodistro: Use (guix licenses) instead of strings.
Nikita Karetnikov [Fri, 14 Dec 2012 15:14:04 +0000 (15:14 +0000)]
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).

11 years agobuild: Avoid brace expansion in `nix/sync-with-upstream'.
Andreas Enge [Fri, 14 Dec 2012 10:47:09 +0000 (11:47 +0100)]
build: Avoid brace expansion in `nix/sync-with-upstream'.

* nix/sync-with-upstream: Avoid brace expansion, for the sake of Dash.

11 years agodaemon: Build `nix-setuid-helper'.
Ludovic Courtès [Fri, 14 Dec 2012 17:15:37 +0000 (18:15 +0100)]
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.

11 years agodownload: Work around (web client) bug <http://bugs.gnu.org/13095>.
Ludovic Courtès [Fri, 14 Dec 2012 17:07:10 +0000 (18:07 +0100)]
download: Work around (web client) bug <bugs.gnu.org/13095>.

* guix/build/download.scm: Annihilate `shutdown' in (web client).

11 years agorelease.nix: Remove trailing "/nix" from localstatedir.
Ludovic Courtès [Fri, 14 Dec 2012 09:44:22 +0000 (10:44 +0100)]
release.nix: Remove trailing "/nix" from localstatedir.

* release.nix (tarball, build): Use /nix/var as localstatedir, as a
  follow-up to 7f4f065.

11 years agobuild: Fix default value of `%state-directory'.
Ludovic Courtès [Thu, 13 Dec 2012 22:53:37 +0000 (23:53 +0100)]
build: Fix default value of `%state-directory'.

* guix/config.scm.in (%state-directory): Append `/nix'.
  Reported by Andreas Enge <andreas@enge.fr>.

11 years agobuild: Have `bootstrap' run all the necessary steps.
Ludovic Courtès [Thu, 13 Dec 2012 22:45:38 +0000 (23:45 +0100)]
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.

11 years agoguix-package: Avoid use of the `guix' sub-directory for profiles.
Ludovic Courtès [Thu, 13 Dec 2012 22:02:22 +0000 (23:02 +0100)]
guix-package: Avoid use of the `guix' sub-directory for profiles.

* guix-package.in (%current-profile): Change to `guix-profile'.

11 years agorelease.nix: tarball: Fix typo.
Ludovic Courtès [Thu, 13 Dec 2012 21:53:45 +0000 (22:53 +0100)]
release.nix: tarball: Fix typo.

* release.nix (tarball): Replace "gnulib" by "nix".

11 years agoguix-package: Use directory names from (guix config).
Ludovic Courtès [Thu, 13 Dec 2012 21:53:05 +0000 (22:53 +0100)]
guix-package: Use directory names from (guix config).

* guix-package.in (%profile-directory): Use %STATE-DIRECTORY instead of
  a hard-coded directory.

11 years agodistro: lout: Comment out dependency on Ghostscript.
Ludovic Courtès [Thu, 13 Dec 2012 21:28:34 +0000 (22:28 +0100)]
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.

11 years agoMerge branch 'nix-integration'
Ludovic Courtès [Thu, 13 Dec 2012 21:14:25 +0000 (22:14 +0100)]
Merge branch 'nix-integration'

Conflicts:
tests/guix-package.sh

11 years agorelease.nix: Add `build_disable_daemon'.
Ludovic Courtès [Thu, 13 Dec 2012 21:08:33 +0000 (22:08 +0100)]
release.nix: Add `build_disable_daemon'.

* release.nix (build_disable_daemon): New job.

11 years agorelease.nix: build: Allow builds within a chroot.
Ludovic Courtès [Thu, 13 Dec 2012 21:08:13 +0000 (22:08 +0100)]
release.nix: build: Allow builds within a chroot.

* release.nix (build): Remove `__noChroot' and `preConfigure'.

11 years agotests: Skip network-dependent tests when the network is unreachable.
Ludovic Courtès [Thu, 13 Dec 2012 21:06:45 +0000 (22:06 +0100)]
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.

11 years agorelease.nix: Build the daemon.
Ludovic Courtès [Wed, 12 Dec 2012 23:28:51 +0000 (00:28 +0100)]
release.nix: Build the daemon.

* release.nix (tarball): Add `preAutoconf'.  Augment `buildInputs' and
  `configureFlags' to allow daemon builds.
  (build): Likewise.

11 years agobuild: Make `--enable-daemon' the default.
Ludovic Courtès [Wed, 12 Dec 2012 23:27:27 +0000 (00:27 +0100)]
build: Make `--enable-daemon' the default.

* configure.ac: Have $guix_build_daemon default to "yes".

11 years agobuild: When `--enable-daemon', don't error out when Nix programs are missing.
Ludovic Courtès [Wed, 12 Dec 2012 23:26:41 +0000 (00:26 +0100)]
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.

11 years agotests: Arrange to have the socket file name fit in `sun_path'.
Ludovic Courtès [Wed, 12 Dec 2012 23:24:27 +0000 (00:24 +0100)]
tests: Arrange to have the socket file name fit in `sun_path'.

* test-env.in (NIX_STATE_DIR): Choose a slightly smaller directory name.

11 years agotests: base32: Work around `system*' bug.
Ludovic Courtès [Wed, 12 Dec 2012 23:23:20 +0000 (00:23 +0100)]
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.

11 years agodaemon: Use `openssl' from $PATH.
Ludovic Courtès [Wed, 12 Dec 2012 14:32:35 +0000 (15:32 +0100)]
daemon: Use `openssl' from $PATH.

* daemon.am (-DOPENSSL_PATH): Default to "openssl".
* TODO: Mention removal of OpenSSL dependency.

11 years agoguix-package: Add `--verbose'; silence the environment's build by default.
Ludovic Courtès [Wed, 12 Dec 2012 13:59:16 +0000 (14:59 +0100)]
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.

11 years agodoc: Fix typos.
Ludovic Courtès [Wed, 12 Dec 2012 13:46:43 +0000 (14:46 +0100)]
doc: Fix typos.

* doc/guix.texi: Fix typos.  Reported by Andreas Enge <andreas@enge.fr>.

11 years agolicenses: Add 'bsd-style', 'expat', 'gpl1', 'gpl1+', 'lgpl2.0', and 'lgpl2.0+'.
Nikita Karetnikov [Wed, 12 Dec 2012 05:41:53 +0000 (05:41 +0000)]
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.

11 years agotests: Remove `t-profile' files on exit.
Ludovic Courtès [Tue, 11 Dec 2012 23:10:32 +0000 (00:10 +0100)]
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>.

11 years agoguix-package: Gracefully handle multiple installs of the same path.
Ludovic Courtès [Tue, 11 Dec 2012 23:01:17 +0000 (00:01 +0100)]
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.

11 years agoHave `%nixpkgs-directory' default to #f when $NIXPKGS is the empty string.
Ludovic Courtès [Mon, 10 Dec 2012 21:53:28 +0000 (22:53 +0100)]
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>.

11 years agodistro: lout: Delay use of of `nixpkgs-derivation'.
Ludovic Courtès [Mon, 10 Dec 2012 13:35:03 +0000 (14:35 +0100)]
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'.

11 years agoderivations: Distinguish direct store paths from files within a store path.
Ludovic Courtès [Sun, 9 Dec 2012 23:44:17 +0000 (00:44 +0100)]
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.

11 years agoMerge branch 'master' into nix-integration
Ludovic Courtès [Sun, 9 Dec 2012 22:54:37 +0000 (23:54 +0100)]
Merge branch 'master' into nix-integration

Conflicts:
guix/store.scm

11 years agostore: Add GC-related operations.
Ludovic Courtès [Sun, 9 Dec 2012 22:52:59 +0000 (23:52 +0100)]
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.

11 years agostore: Add `add-temp-root'.
Ludovic Courtès [Sun, 9 Dec 2012 22:50:17 +0000 (23:50 +0100)]
store: Add `add-temp-root'.

* guix/store.scm (add-temp-root): New procedure.

11 years agoUpdate `THANKS'.
Ludovic Courtès [Sun, 9 Dec 2012 22:35:15 +0000 (23:35 +0100)]
Update `THANKS'.

11 years agodoc: Correct short name of `--install' option of `guix-package'.
Ludovic Courtès [Sun, 9 Dec 2012 22:35:03 +0000 (23:35 +0100)]
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>.

11 years agodaemon: Update to Nix 1.2-1-ge087bfe.
Ludovic Courtès [Sun, 9 Dec 2012 13:54:01 +0000 (14:54 +0100)]
daemon: Update to Nix 1.2-1-ge087bfe.

11 years agoUpdate `TODO'.
Ludovic Courtès [Sun, 9 Dec 2012 13:44:17 +0000 (14:44 +0100)]
Update `TODO'.

11 years agoChange email address in `AUTHORS'.
Ludovic Courtès [Sun, 9 Dec 2012 13:42:30 +0000 (14:42 +0100)]
Change email address in `AUTHORS'.

11 years agoUpdate `AUTHORS'.
Ludovic Courtès [Sat, 8 Dec 2012 18:21:47 +0000 (19:21 +0100)]
Update `AUTHORS'.

11 years agoAdd (guix licenses).
Nikita Karetnikov [Sat, 8 Dec 2012 01:48:17 +0000 (01:48 +0000)]
Add (guix licenses).

* guix/licenses.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodownload: Fix the primary Savannah URL.
Ludovic Courtès [Fri, 7 Dec 2012 20:06:03 +0000 (21:06 +0100)]
download: Fix the primary Savannah URL.

* guix/download.scm (%mirrors)[savannah]: Use
  "http://download.savannah.gnu.org/releases/" as the primary URL.

11 years agodistro: Add ACL.
Nikita Karetnikov [Fri, 7 Dec 2012 01:18:23 +0000 (01:18 +0000)]
distro: Add ACL.

* distro/packages/acl.scm: New file.  Dependency on Perl added by
  Ludovic.
* Makefile.am (MODULES): Add it.

11 years agodistro: Add Attr.
Nikita Karetnikov [Fri, 7 Dec 2012 00:59:30 +0000 (00:59 +0000)]
distro: Add Attr.

* distro/packages/attr.scm: New file.  Dependency on Perl and
  `patch-shebang' added by Ludovic.
* Makefile.am (MODULES): Add it.

11 years agodoc: Add new dependencies in `README'.
Ludovic Courtès [Thu, 6 Dec 2012 21:54:10 +0000 (22:54 +0100)]
doc: Add new dependencies in `README'.

* README (Hacking): Rename to...
  (Requirements): ... this.  Add the daemon's dependencies.

11 years agodaemon: Add more options.
Ludovic Courtès [Thu, 6 Dec 2012 21:21:45 +0000 (22:21 +0100)]
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.

11 years agobuild: Update skip count in `tests/derivations.scm'.
Ludovic Courtès [Wed, 5 Dec 2012 23:05:11 +0000 (00:05 +0100)]
build: Update skip count in `tests/derivations.scm'.

* tests/derivations.scm: When %STORE if #f, skip 11 tests.

11 years agobuild: Run `distcheck' with `--enable-daemon'.
Ludovic Courtès [Wed, 5 Dec 2012 23:04:43 +0000 (00:04 +0100)]
build: Run `distcheck' with `--enable-daemon'.

* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add `--enable-daemon'.

11 years agobuild: Add missing daemon header to the distribution.
Ludovic Courtès [Wed, 5 Dec 2012 23:04:00 +0000 (00:04 +0100)]
build: Add missing daemon header to the distribution.

* daemon.am (guix_daemon_headers): New variable.
  (noinst_HEADERS): Add it.

11 years agobuild: Capture configure-time settings in (guix config).
Ludovic Courtès [Wed, 5 Dec 2012 22:02:47 +0000 (23:02 +0100)]
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.

11 years agobuild: Run all the tests against the just-built daemon.
Ludovic Courtès [Wed, 5 Dec 2012 23:03:26 +0000 (00:03 +0100)]
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'.

11 years agotests: Remove hard-coded /nix/store.
Ludovic Courtès [Wed, 5 Dec 2012 21:41:58 +0000 (22:41 +0100)]
tests: Remove hard-coded /nix/store.

* tests/utils.scm ("store-path-package-name"): Use (%store-prefix)
  instead of a hard-coded "/nix/store".

11 years agodaemon: Add `list-runtime-roots' script.
Ludovic Courtès [Wed, 5 Dec 2012 15:29:28 +0000 (16:29 +0100)]
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.

11 years agodaemon: Disable use of chroots when support is lacking.
Ludovic Courtès [Wed, 5 Dec 2012 14:22:28 +0000 (15:22 +0100)]
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.

11 years agoAdd (guix gnu-maintenance).
Nikita Karetnikov [Tue, 4 Dec 2012 23:02:22 +0000 (23:02 +0000)]
Add (guix gnu-maintenance).

* guix/gnu-maintenance.scm: New file.
* Makefile.am (MODULES): Add it.

11 years agodaemon: Add test.
Ludovic Courtès [Tue, 4 Dec 2012 22:16:11 +0000 (23:16 +0100)]
daemon: Add test.

* daemon.am (test_root, AM_TESTS_ENVIRONMENT): New variables.
  (clean-local): New target.
* tests/guix-daemon.sh: New file.

11 years agobuild: daemon: Add missing feature tests.
Ludovic Courtès [Tue, 4 Dec 2012 22:13:59 +0000 (23:13 +0100)]
build: daemon: Add missing feature tests.

* config-daemon.ac: Add feature tests needed for the daemon code.  Taken
  from Nix's `configure.ac'.

11 years agobuild: daemon: Remove extraneous quotes in CPP macro `SYSTEM'.
Ludovic Courtès [Tue, 4 Dec 2012 22:12:40 +0000 (23:12 +0100)]
build: daemon: Remove extraneous quotes in CPP macro `SYSTEM'.

* config-daemon.ac: Remove extraneous quotes in definition of `SYSTEM'.

11 years agodaemon: Fix typo in libgcrypt bindings.
Ludovic Courtès [Tue, 4 Dec 2012 22:10:54 +0000 (23:10 +0100)]
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.

11 years agoMerge branch 'master' into nix-integration
Ludovic Courtès [Tue, 4 Dec 2012 22:51:31 +0000 (23:51 +0100)]
Merge branch 'master' into nix-integration

11 years agoguix-build: Don't connect to the daemon when run with `--version' or `--help'.
Ludovic Courtès [Tue, 4 Dec 2012 22:50:20 +0000 (23:50 +0100)]
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.