Commit Graph

532 Commits

Author SHA1 Message Date
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