summary refs log tree commit diff
path: root/build-aux
AgeCommit message (Collapse)Author
2019-04-23build-self: Explain why we keep using deprecated bindings.Ludovic Courtès
* build-aux/build-self.scm (build): Add comment regarding the deprecated names.
2019-04-23Revert "build-self: Avoid deprecated bindings."Ludovic Courtès
This reverts commit fa9e6e8b676ca920a894cf3b48bfcb670077144f. By using the new bindings, we would prevent users of Guix prior to de9fbe9cdcf5f8deb08becfc54b523084fd67bda, such as version 0.16.0, to upgrade to current master. Thus, we will keep using the old names for a while.
2019-04-22build-self: Avoid deprecated bindings.Mark H Weaver
* build-aux/build-self.scm (build): Replace references to nix-server-* with store-connection-*.
2019-04-19build: Show completion percentage while building.Ludovic Courtès
* build-aux/compile-all.scm (%): New procedure. (command-line): Use it to report completion.
2019-04-17self: Remove unused variable.Ludovic Courtès
This variable is unused since commit 45779fa676419de8838cb26b6c7a24678a2be1cd. * guix/self.scm (%dependency-variables): Remove. * build-aux/build-self.scm (%dependency-variables): Remove.
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.