summaryrefslogtreecommitdiff
path: root/build-aux
AgeCommit message (Collapse)Author
2019-03-26build-self: Disable position recording.Ludovic Courtès
'guix pull -n' goes roughly from 40s to 35s. * build-aux/build-self.scm (build-program): Add call to 'read-disable'.
2019-02-11Avoid name clash with 'build' from (guix store) and (guix status).Ludovic Courtès
Since commit 976ef2d97887d16eab8d4eb9dad811786b04d690, (guix status) exports 'build', which clashes with 'build' from (guix store). * build-aux/run-system-tests.scm: Select 'with-status-verbosity' from (guix status). * guix/scripts/archive.scm: Likewise. * guix/scripts/build.scm: Likewise. * guix/scripts/copy.scm: Likewise. * guix/scripts/environment.scm: Likewise. * guix/scripts/pack.scm: Likewise. * guix/scripts/package.scm: Likewise. * guix/scripts/pull.scm: Likewise. * guix/scripts/system.scm: Likewise.
2019-02-04daemon: Add "/guix" to default 'nixLibexecDir'.Ludovic Courtès
This makes it easier to run the uninstalled daemon. * nix/local.mk (libstore_a_CPPFLAGS): Append "/guix" to NIX_LIBEXEC_DIR. * build-aux/pre-inst-env.in (NIX_LIBEXEC_DIR): Adjust comment. * nix/libstore/builtins.cc (builtinDownload): Remove SUBDIR and its use. * nix/libstore/local-store.cc (runAuthenticationProgram): Ditto. * nix/libstore/gc.cc (addAdditionalRoots): Remove "/guix" prefix. * nix/nix-daemon/guix-daemon.cc (main): Ditto.
2019-02-04daemon: Remove the 'NIX_SUBSTITUTERS' environment variable.Ludovic Courtès
* nix/libstore/globals.cc (Settings:update): Remove changes to 'substituters'. * nix/nix-daemon/guix-daemon.cc (main): Set 'settings.substituters' directly instead of changing the 'NIX_SUBSTITUTERS' environment variable. * build-aux/pre-inst-env.in: Remove reference to 'NIX_SUBSTITUTERS'.
2019-02-04daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables.Ludovic Courtès
Fixes <https://bugs.gnu.org/22459>. Reported by Jeff Mickey <j@codemac.net>. * guix/config.scm.in (%state-directory): Change NIX_STATE_DIR to GUIX_STATE_DIRECTORY. (%store-database-directory): Change NIX_DB_DIR to GUIX_DATABASE_DIRECTORY. * nix/libstore/globals.cc (Settings::processEnvironment): Likewise. * guix/self.scm (make-config.scm): Likewise. * build-aux/build-self.scm (make-config.scm): Likewise. * build-aux/test-env.in: Likewise. * tests/derivations.scm ("derivation #:leaked-env-vars"): Likewise. * tests/guix-build.sh (GUIX_DAEMON_SOCKET): Likewise. * tests/guix-daemon.sh (socket): Likewise.
2019-01-21store: Rename '&nix-error' to '&store-error'.Ludovic Courtès
* guix/store.scm (&nix-error): Rename to... (&store-error): ... this, and adjust users. (&nix-connection-error): Rename to... (&store-connection-error): ... this, and adjust users. (&nix-protocol-error): Rename to... (&store-protocol-error): ... this, adjust users. (&nix-error, &nix-connection-error, &nix-protocol-error): Define these condition types and their getters as deprecrated aliases. * build-aux/run-system-tests.scm, guix/derivations.scm, guix/grafts.scm, guix/scripts/challenge.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/scripts/offload.scm, guix/serialization.scm, guix/ssh.scm, guix/tests.scm, guix/ui.scm, tests/derivations.scm, tests/gexp.scm, tests/guix-daemon.sh, tests/packages.scm, tests/store.scm, doc/guix.texi: Adjust to use the new names.
2019-01-21build-self: Execute trampoline in a clean environment.Ludovic Courtès
Previously execution of the trampoline would be somewhat sensitive to GUILE_LOAD_PATH & co., for example. * build-aux/build-self.scm (build-program): Remove 'unsetenv' call and %LOAD-COMPILED-PATH hack. (call-with-clean-environment): New procedure. (with-clean-environment): New macro. (build): Wrap 'open-pipe*' call in 'with-clean-environment'.
2019-01-11status: Add 'with-status-verbosity'.Ludovic Courtès
* guix/status.scm (logger-for-level, call-with-status-verbosity): New procedures. (with-status-verbosity): New macro. * guix/scripts/environment.scm (guix-environment): Use 'with-status-verbosity' instead of 'with-status-report'. * guix/scripts/pack.scm (guix-pack): Likewise. * guix/scripts/package.scm (guix-package): Likewise. * guix/scripts/pull.scm (guix-pull): Likewise. * guix/scripts/system.scm (guix-system): Likewise. * build-aux/run-system-tests.scm (run-system-tests): Likewise.
2019-01-08build-self: Spin only on TTYs.Ludovic Courtès
* build-aux/build-self.scm (build-program): Spin only when 'isatty?' returns true.
2019-01-06hydra: Compute jobs in an inferior.Ludovic Courtès
Previously we would rely on auto-compilation of all the Guix modules. The complete evaluation would take ~15mn on berlin.guixsd.org and require lots of RAM. This approach should be faster since potentially only part of the modules are rebuilt. Furthermore, as a side-effect, it builds the derivations that 'guix pull' uses. * build-aux/hydra/gnu-system.scm: Remove 'eval-when' form. (hydra-jobs): New procedure. * gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs) (tarball-jobs): Return strings for the 'license' field. * guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci).
2019-01-06hydra: evaluate: Add the checkout to the store.Ludovic Courtès
* build-aux/hydra/evaluate.scm <top level>: Add call to 'add-to-store'. Use that as the 'file-name' attribute. Call 'primitive-load' in a directory excursion to SOURCE.
2019-01-06hydra: Move job definitions to (gnu ci).Ludovic Courtès
* build-aux/hydra/gnu-system.scm: Move code to... * gnu/ci.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2019-01-06build-self: Don't clobber the output port.Ludovic Courtès
The newline is meant to follow the spinner's traces so it must go to the error port as well. * build-aux/build-self.scm (build): Send newline to the error port.
2018-12-29hydra: Use short timeouts for the QEMU jobs and system tests.Ludovic Courtès
These builds shouldn't take too long. Sometimes the guest kernel crashes and the VM gets stuck; we should be able to terminate those jobs quickly. * build-aux/hydra/gnu-system.scm (qemu-jobs)[->alist]: Add 'max-silent-time' and 'timeout'. (system-test-jobs)[test->thunk]: Likewise.
2018-12-09hydra: Increase image sizes for USB image and Flash image.Danny Milosavljevic
* build-aux/hydra/gnu-system.scm (qemu-jobs) <usb-image>: Increase from 1024 MiB to 1500 MiB. <flash-image>: Increase from 1024 MiB to 1500 MiB.
2018-12-07maint: update-guix-package: Really register GC roots.Ludovic Courtès
Previously we'd pass a relative file name to 'add-indirect-root', which the daemon would interpret as relative to "/". Consequently, checkouts were not protected from GC. * build-aux/update-guix-package.scm (main): Pass an absolute file name to 'add-indirect-root'.
2018-12-05maint: update-NEWS: Don't produce full package lists.Ludovic Courtès
The lists of new and upgraded packages in 'NEWS' had become way too long and redundant with what 'guix pull' reports. * build-aux/update-NEWS.scm (write-packages-added): Don't print ADDED. (write-packages-updates)[important, table, latest, noteworthy]: New variables. Print NOTEWORTHY rather than all of UPGRADED. (main): Print PREVIOUS-VERSION and NEW-VERSION.
2018-12-04Remove most references to hydra.gnu.org.Ludovic Courtès
* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org in comment. * build-aux/check-available-binaries.scm: Likewise. * build-aux/check-final-inputs-self-contained.scm: Likewise. * doc/guix.texi (SUBSTITUTE-SERVER): New variable. Use it throughout instead of "mirror.hydra.gnu.org". * doc/contributing.texi (Submitting Patches): Likewise. * gnu/services/base.scm (hydra-key-authorization) (guix-activation): Remove mentions of "hydra.gnu.org" in comments and messages. * gnu/system/install.scm (%installation-services): Likewise. * guix/scripts/size.scm (guix-size): Likewise.
2018-10-17Merge branch 'master' into core-updatesMarius Bakke
2018-10-09tests: "make check-system" produces colored output.Ludovic Courtès
* build-aux/run-system-tests.scm (run-system-tests): Use 'with-status-report'.
2018-09-20Merge branch 'master' into core-updatesMarius Bakke
2018-09-14hydra: Remove useless 'parameterize'.Clément Lassieur
* build-aux/hydra/gnu-system.scm (manifests->packages): Remove 'parameterize'.
2018-09-13Merge branch 'master' into core-updatesLeo Famulari
2018-09-13build-self: Emit a useful message upon error.Ludovic Courtès
* build-aux/build-self.scm (build): Raise a '&message' condition instead of calling 'error'.
2018-09-13build-self: Add a dummy (git) module to 'compute-guix-derivation'.Ludovic Courtès
Fixes a regression introduced in aed0a594058a59bc3bb1d2686391dc0e8a181b1f. * build-aux/build-self.scm (build-program)[fake-git]: New variable. Use it as an imported module.
2018-09-13hydra: Add support for manifests.Clément Lassieur
* build-aux/hydra/gnu-system.scm (arguments->manifests, manifests->packages): New procedures. (hydra-jobs): Add a "manifests" subset. * doc/guix.texi (Continuous Integration): Update accordingly.
2018-09-09Merge branch 'master' into core-updatesMarius Bakke
2018-09-06build-self: Accomodate upgrades from May 2016 and earlier.Ludovic Courtès
Reported by Paul Garlick <pgarlick@tourbillion-technology.com>. Fixes a bug whereby "old" Guix instances (before mid-May 2018) would fail to pull to current master. Specifically, Paul reported being unable to upgrade from 6f84dc4314cd84550d9fc7e7afa11c495edc45a5 (a commit that predates that addition of the 'bootstrap' phase on gnu-build-system on 'master' and that also predates the new 'guix pull'.) * build-aux/build-self.scm (guile-gcrypt)[arguments]: New field.
2018-09-04Switch to Guile-Gcrypt.Ludovic Courtès
This removes (guix hash) and (guix pk-crypto), which now live as part of Guile-Gcrypt (version 0.1.0.) * guix/gcrypt.scm, guix/hash.scm, guix/pk-crypto.scm, tests/hash.scm, tests/pk-crypto.scm: Remove. * configure.ac: Test for Guile-Gcrypt. Remove LIBGCRYPT and LIBGCRYPT_LIBDIR assignments. * m4/guix.m4 (GUIX_ASSERT_LIBGCRYPT_USABLE): Remove. * README: Add Guile-Gcrypt to the dependencies; move libgcrypt as "required unless --disable-daemon". * doc/guix.texi (Requirements): Likewise. * gnu/packages/bash.scm, guix/derivations.scm, guix/docker.scm, guix/git.scm, guix/http-client.scm, guix/import/cpan.scm, guix/import/cran.scm, guix/import/crate.scm, guix/import/elpa.scm, guix/import/gnu.scm, guix/import/hackage.scm, guix/import/texlive.scm, guix/import/utils.scm, guix/nar.scm, guix/pki.scm, guix/scripts/archive.scm, guix/scripts/authenticate.scm, guix/scripts/download.scm, guix/scripts/hash.scm, guix/scripts/pack.scm, guix/scripts/publish.scm, guix/scripts/refresh.scm, guix/scripts/substitute.scm, guix/store.scm, guix/store/deduplication.scm, guix/tests.scm, tests/base32.scm, tests/builders.scm, tests/challenge.scm, tests/cpan.scm, tests/crate.scm, tests/derivations.scm, tests/gem.scm, tests/nar.scm, tests/opam.scm, tests/pki.scm, tests/publish.scm, tests/pypi.scm, tests/store-deduplication.scm, tests/store.scm, tests/substitute.scm: Adjust imports. * gnu/system/vm.scm: Likewise. (guile-sqlite3&co): Rename to... (gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT. (expression->derivation-in-linux-vm)[config]: Remove. (iso9660-image)[config]: Remove. (qemu-image)[config]: Remove. (system-docker-image)[config]: Remove. * guix/scripts/pack.scm: Adjust imports. (guile-sqlite3&co): Rename to... (gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT. (self-contained-tarball)[build]: Call 'make-config.scm' without #:libgcrypt argument. (squashfs-image)[libgcrypt]: Remove. [build]: Call 'make-config.scm' without #:libgcrypt. (docker-image)[config, json]: Remove. [build]: Add GUILE-GCRYPT to the extensions Remove (guix config) from the imported modules. * guix/self.scm (specification->package): Remove "libgcrypt", add "guile-gcrypt". (compiled-guix): Remove #:libgcrypt. [guile-gcrypt]: New variable. [dependencies]: Add it. [*core-modules*]: Remove #:libgcrypt from 'make-config.scm' call. Add #:extensions. [*config*]: Remove #:libgcrypt from 'make-config.scm' call. (%dependency-variables): Remove %libgcrypt. (make-config.scm): Remove #:libgcrypt. * build-aux/build-self.scm (guile-gcrypt): New variable. (make-config.scm): Remove #:libgcrypt. (build-program)[fake-gcrypt-hash]: New variable. Add (gcrypt hash) to the imported modules. Adjust load path assignments. * gnu/packages/package-management.scm (guix)[propagated-inputs]: Add GUILE-GCRYPT. [arguments]: In 'wrap-program' phase, add GUILE-GCRYPT to the search path.
2018-09-03Merge branch 'master' into core-updatesMarius Bakke
2018-09-02Add (guix describe) and use it to initialize '%package-search-path'.Ludovic Courtès
* guix/describe.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm (%default-package-module-path): New variable. (%package-module-path): Honor 'package-path-entries'. * build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH instead of (last (%package-module-path)).
2018-09-02compile-as-derivation: Adjust %load-compiled-path.Ludovic Courtès
* build-aux/compile-as-derivation.scm: Set not only %load-path but also %load-compiled-path. This can avoid problems where a stale .go is loaded.
2018-07-27build-self: Default to Guile 2.2 when building a standalone Guix.Ludovic Courtès
* build-aux/build-self.scm (build): Change #:guile-version to default to "2.2" when PULL-VERSION is greater than 0.
2018-07-27gnu: guile: Remove version 2.2.2.Ludovic Courtès
* gnu/packages/guile.scm (guile-2.2.2): Remove. * guix/self.scm (guile-for-build): Remove special case for "2.2.2". (guix-derivation): Likewise. * build-aux/build-self.scm (build): Likewise.
2018-06-26build-self: Inherit the daemon connection from the parent process.Ludovic Courtès
Fixes <https://bugs.gnu.org/31892>. Reported by Vagrant Cascadian <vagrant@debian.org>. * build-aux/build-self.scm (build): Define 'port' and wrap 'open-pipe*' call in 'with-input-from-port'. (build-program): Use 'port->connection' or 'open-connection' instead of 'with-store.'
2018-06-21build-self: Avoid recompilations of 'compute-guix-derivation'.Ludovic Courtès
* build-aux/build-self.scm (build-program)["compute-guix-derivation"]: Honor the SOURCE command-line argument. Add a VERSION command-line argument and honor it. (build): Pass VERSION to BUILD.
2018-06-18self: Define derived '-directory' variables in config.scm.Ludovic Courtès
This is a followup to d6b5aa0b031f0e7091f7424ac616d1c4d10fed5b. * guix/self.scm (%config-variables): Remove %CONFIG-DIRECTORY, %STATE-DIRECTORY, %STORE-DATABASE-DIRECTORY, and %STORE-DIRECTORY. (make-config.scm): Define them here. * build-aux/build-self.scm (%config-variables, make-config.scm): Likewise.
2018-06-18build-self: Do not rely on '%store-database-directory'.Ludovic Courtès
Guix'es older than one week don't have this variable so requiring it would break things for them. * build-aux/build-self.scm (%config-variables): Remove '%store-database-directory'.
2018-06-18build: Remove checks for 'nix-instantiate'.Ludovic Courtès
* guix/import/snix.scm (open-nixpkgs): Use "nix-instantiate" unconditionally. * configure.ac: Remove check for 'nix-instantiate'. * guix/config.scm.in (%nix-instantiate): Remove. * guix/self.scm (%dependency-variables): Remove '%nix-instantiate'. (make-config.scm): Remove it from the generated "config.scm". * build-aux/build-self.scm (%dependency-variables, make-config.scm): Likewise.
2018-06-18self: Make (guix config) generation really stateless.Ludovic Courtès
Previously the %CONFIG-VARIABLES list would be generated based on what the current (guix config) contains. Thus, it would include '%guix-register-program', which we recently removed, because existing (guix config) most likely contained that variable. Since its value could differ from machine to machine, the build farm could be building a different config.scm, thereby preventing people from getting substitutes. * guix/self.scm (%config-variables): Turn into a white list instead of taking all the remaining variables from the current (guix config). * build-aux/build-self.scm (%config-variables): Likewise.
2018-06-15hydra: Make sure we add an absolute file name to the load path.Ludovic Courtès
Previously, under Cuirass, we'd add "build-aux/cuirass/../hydra/../..". But then, commit c45477d2a1a651485feede20fe0f3d15aec48b39 added this in (gnu system vm): (local-file (search-path %load-path "guix/store/schema.sql")) Since 'search-path' would not return an absolute file name, 'local-file' would try to resolve that relative to "gnu/system", leading to: ERROR: In procedure force: In procedure canonicalize-path: No such file or directory: "/gnu/store/…-guix-ce573b1/gnu/system/build-aux/cuirass/../hydra/../../guix/store/schema.sql * build-aux/hydra/gnu-system.scm <top level>: Canonicalize DIR before adding it to %LOAD-PATH.
2018-06-14Remove 'guix-register' and its traces.Ludovic Courtès
* Makefile.am (SH_TESTS): Remove tests/guix-register.sh. * build-aux/pre-inst-env.in (GUIX_REGISTER): Remove. * gnu/build/install.scm (directives): Remove outdated comment. * gnu/build/vm.scm (root-partition-initializer): Update comment. * gnu/packages/package-management.scm (guix-register): Remove. * guix/config.scm.in (%sbindir, %guix-register-program): Remove. * guix/scripts/system.scm (install): Adjust docstring. * guix/self.scm (make-config.scm): Remove #:guix. Do not generate %sbindir and %guix-register-program. (specification->package): Remove "guix". * nix/guix-register/guix-register.cc: Remove. * nix/libstore/store-api.cc (decodeValidPathInfo): Remove. * nix/libstore/store-api.hh (decodeValidPathInfo): Remove declaration. * nix/local.mk (sbin_PROGRAMS, guix_register_SOURCES) (guix_register_CPPFLAGS, guix_register_LDFLAGS): Remove. * tests/guix-register.sh: Remove.
2018-06-10hydra: guix-modular: Build the full Guix.Ludovic Courtès
* build-aux/hydra/guix-modular.scm (build-job): Pass #:pull-version to BUILD.
2018-06-09pull: Install the new Guix in a profile.Ludovic Courtès
* guix/scripts/pull.scm (%pull-version): New variable. (build-from-source): Pass #:pull-version to BUILD. (whole-package-for-legacy, derivation->manifest-entry): New procedure. (build-and-install): Rewrite in terms of 'build-and-use-profile'. * guix/scripts/system.scm (maybe-suggest-running-guix-pull)[latest]: Switch to "/current". * scripts/guix.in (augment-load-paths!): Remove use of ~/.config/guix/latest. * build-aux/compile-as-derivation.scm: Replace "/guix/latest/" with "/current/share/guile/site/X.Y" * guix/scripts.scm (warn-about-old-distro)[age]: Check "/current" instead of "/latest". * doc/guix.texi (Invoking guix pull): Document it. * doc/contributing.texi (Running Guix Before It Is Installed): Remove footnote about abusing ~/.config/guix/latest.
2018-06-09self: Produce a complete package with the 'guix' command.Ludovic Courtès
* guix/self.scm (guix-command): New procedure. (compiled-guix): Add #:pull-version parameter. [command, package]: New variables. Honor PULL-VERSION. (guix-derivation): Add #:pull-version and pass it to 'compiled-guix'. * build-aux/build-self.scm (build-program): Add #:pull-version parameter. Pass it to 'guix-derivation'. (build): Add #:pull-version and pass it to 'build-program'. * build-aux/compile-as-derivation.scm: Pass #:pull-version to BUILD.
2018-05-13build: 'test-env' does not 'guix download' non-existent files.Ludovic Courtès
Reported by uniq10. * build-aux/test-env.in: Check whether FILE exists before invoking 'guix download'.
2018-05-12hydra: Switch back to "-" instead of "@" in package job names.Ludovic Courtès
Fixes a regression introduced in ede121de426f9c56820852888a0b370f0ccbce49. Reported by Mark H Weaver <mhw@netris.org>. * build-aux/hydra/gnu-system.scm (job-name): Pass "-" as the second argument to 'package-full-name'.
2018-04-22build: Fix possible race condition in 'test-env'.Ludovic Courtès
Reported by Mark H Weaver <mhw@netris.org>. * build-aux/test-env.in: Add 'guile' invocation before 'guix download' invocation to make sure 'guix-daemon' is listening.
2018-04-09hydra: Fix uses of 'eval-when'.Ludovic Courtès
* build-aux/hydra/gnu-system.scm: Use (expand load eval) in 'eval-when' clause so as to not poison a cat and to ensure %load-compiled-path is properly set when the 'use-modules' clauses are expanded. * build-aux/hydra/guix.scm: Likewise.
2018-04-08hydra: guix-modular: Honor the 'systems' argument.Ludovic Courtès
* build-aux/hydra/guix-modular.scm (hydra-jobs)[systems]: Define as in gnu-system.scm. Honor SYSTEMS.