summaryrefslogtreecommitdiff
path: root/build-aux
AgeCommit message (Collapse)Author
2017-11-28build: Explicitly flush the "LOAD" and "GUILEC" lines.Ludovic Courtès
* build-aux/compile-all.scm <top level>: Add calls to 'force-output' in the #:report-load and #:report-compilation procedures. Fixes a regression introduced in 2890ad332fcdfd4bc92b127d783975437c8b718b whereby compilation output would be buffered, leading to a weird visual effect.
2017-11-21Revert "Add (guix self) and use it when pulling."Ludovic Courtès
This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61. 'guix pull' would fail because (guix self) needs 'scheme-files' from (guix discovery), which was not exported until now.
2017-11-21hydra: Add jobs for the modular Guix.Ludovic Courtès
* build-aux/hydra/guix-modular.scm: New file. * Makefile.am (EXTRA_DIST): Add it.
2017-11-21hydra: 'evaluate' passes an alist to the entry point.Ludovic Courtès
* build-aux/hydra/evaluate.scm (%top-srcdir): New variable. <top level>: Pass it to 'hydra-jobs'.
2017-11-21Add (guix self) and use it when pulling.Ludovic Courtès
This mitigates <https://bugs.gnu.org/27284>. * guix/self.scm: New file. * Makefile.am (MODULES): Add it. * build-aux/build-self.scm (libgcrypt, zlib, gzip, bzip2, xz) (false-if-wrong-guile, package-for-current-guile, guile-json) (guile-ssh, guile-git, guile-bytestructures): Remove. (build): Rewrite to simply delegate to 'compiled-guix'. * gnu/packages.scm (%distro-root-directory): Rewrite to try different directories. * guix/discovery.scm (guix): Export 'scheme-files'. * guix/scripts/pull.scm (build-and-install): Split into... (install-latest): ... this. New procedure. And... (build-and-install): ... this, which now takes a monadic value argument. (indirect-root-added): Remove. (guix-pull): Call 'add-indirect-root'. Call 'build-from-source' and pass the result to 'build-and-install'.
2017-11-07hydra: Add jobs for all of '%final-inputs'.Ludovic Courtès
* build-aux/hydra/gnu-system.scm (package->job): Create a 'base.' job when PACKAGE is a member of BASE-PACKAGES. (all-packages)[adjust]: New procedure. Fold over %FINAL-INPUTS and add it to the result.
2017-11-07hydra: Build hidden packages.Ludovic Courtès
* build-aux/hydra/gnu-system.scm (all-packages): Pass #:select? to 'fold-packages'.
2017-11-07hydra: Factorize package list creation.Ludovic Courtès
* build-aux/hydra/gnu-system.scm (all-packages): New procedure, with body taken from... (hydra-jobs): ... here. Use it.
2017-10-23pull: Add (guix build compile) to the mix.Ludovic Courtès
Fixes <https://bugs.gnu.org/28956>. Reported by Leo Famulari <leo@famulari.name>. * build-aux/build-self.scm (build): Add (guix build compile) to #:modules. * guix/build/pull.scm (build-guix): Wrap 'compile-files' call in 'with-directory-excursion'. Strip "./" from FILES when passing it to 'compile-files'.
2017-10-22build: Honor make's '-j' flag.Ludovic Courtès
* build-aux/compile-all.scm (parallel-job-count): New procedure. <top level>: Pass it to 'compile-files' as #:workers.
2017-10-22build: Factorize module compilation in (guix build compile).Ludovic Courtès
* guix/build/compile.scm: New file. * Makefile.am (MODULES): Add it. * build-aux/compile-all.scm: Use it. (warnings, file->module, load-module-file) (%default-optimizations, %lightweight-optimizations) (optimization-options, compile-file*): Remove. <top level>: Use 'compile-files'. * guix/build/pull.scm (%default-optimizations) (%lightweight-optimizations, optimization-options): Remove. (build-guix): Rewrite as a call to 'compile-files'. * guix/discovery.scm (file-name->module-name): Export.
2017-10-10build: Set 'NIX_BUILD_HOOK' only if offloading is configured.Eric Bavier
This prevents libstore/build.cc from executing nix/scripts/offload, which is always created by config.status, when offload support is not enabled. * build-aux/pre-inst-env.in: Export 'NIX_BUILD_HOOK' only when configured; unset it otherwise.
2017-09-28cuirass: Add 'cuirass-jobs.scm' target to compute the Cuirass jobs.Jan Nieuwenhuizen
* build-aux/hydra/evaluate.scm: Support "cuirass" command line option. * Makefile.am (cuirass-jobs.scm): New target.
2017-09-27cuirass: Support subset with list of package[@version].Jan Nieuwenhuizen
* build-aux/hydra/gnu-system.scm (hydra-jobs): Support subset of packages: ("name[@version" ...).
2017-09-27cuirass: Add gnu-system build spec.Jan Nieuwenhuizen
* build-aux/hydra/gnu-system.scm (hydra-jobs): Support subset "hello". * build-aux/cuirass/gnu-system.scm: New file. * doc/guix.texi (Continuous Integration): Update example spec.
2017-09-08build: Use -Wmacro-use-before-definition.Ludovic Courtès
* build-aux/compile-all.scm (warnings): Add 'macro-use-before-definition'.
2017-08-02pull: Fetch source code from Git.Ludovic Courtès
* guix/scripts/pull.scm (%snapshot-url, with-environment-variable) (with-PATH): Remove. (ensure-guile-git!): New procedure. (%repository-url): New variable. (%default-options): Add 'repository-url' and 'ref'. (show-help, %options): Add '--commit' and '--url'. (temporary-directory, first-directory, interned-then-deleted) (unpack): Remove. (build-from-source): Rename 'tarball' to 'source'. Remove call to 'unpack'. (build-and-install): Rename 'tarball' to 'source'. (honor-lets-encrypt-certificates!, report-git-error): New procedures. (with-git-error-handling): New macro. (guix-pull)[fetch-tarball]: Remove. Wrap body in 'with-git-error-handling'. Rewrite to use 'latest-repository-commit'. * build-aux/build-self.scm (build): Print an error message and exit when GUILE-GIT is #f. * doc/guix.texi (Invoking guix pull): Mention Git. Document '--commit' and '--branch'.
2017-07-25hydra: Add 'guix.SYSTEM' jobs.Ludovic Courtès
* build-aux/hydra/guix.scm (package->alist): Disable grafting. (hydra-jobs): Return 'guix.SYSTEM' jobs in addition to 'tarball'.
2017-07-25hydra: Simplify 'tarball' job.Ludovic Courtès
* build-aux/hydra/guix.scm (tarball-package): Remove. (hydra-jobs): Use 'dist-package' instead of 'tarball-package'.
2017-07-03build: Add iso9660 system image generator.Danny Milosavljevic
* build-aux/hydra/gnu-system.scm (qemu-jobs): Add 'iso9660-image . * gnu/build/vm.scm (make-iso9660-image): New variable. Export it. * gnu/system/vm.scm (iso9660-image): New variable. Use make-iso9660-image. (system-disk-image): Use iso9660-image.
2017-06-15hydra: Don't build non-substitutable packages.Ludovic Courtès
* build-aux/hydra/gnu-system.scm (package->job): Compute PACKAGE's derivation; return #f if 'substitutable-derivation?' returns #f.
2017-06-09pull: Add a dependency to guile-git.Mathieu Othacehe
* build-aux/build-self.scm (guile-git, guile-bytestructures): New variables. (build): Add guile-git and guile-bytestructures to %load-path and %load-compiled-path.
2017-05-18maint: Add 'update-NEWS' target.Ludovic Courtès
* build-aux/update-NEWS.scm: New file. * Makefile.am (EXTRA_DIST): Add it. (GUIX_MAINTENANCE_DIRECTORY): New variable. (update-NEWS): New target. (.PHONY): Add it.
2017-05-16hydra: Cross-build Guile 2.2.Ludovic Courtès
* build-aux/hydra/gnu-system.scm (%core-packages): Add GUILE-2.2.
2017-05-09pull: Build with the matching Guile major version.Ludovic Courtès
Previously, 'guix pull' would always build with Guile 2.0. Now it builds with the Guile that matches (effective-version). * build-aux/build-self.scm (false-if-wrong-guile) (package-for-current-guile): New procedures. (guile-json, guile-ssh): Use it. (guile-for-build): New procedure. (build): Use (effective-version) instead of the hard-coded "/2.0". Add (guix modules) closure to #:modules argument. Pass \#:guile-for-build argument to 'gexp->derivation'. * guix/build/pull.scm (depends-on-guile-ssh?, all-scheme-files): New procedures. (build-guix): Show the output of (version). Use the above procedures. Filter out files that match 'depends-on-guile-ssh?' when (ssh session) is missing.
2017-05-09maint: update-guix-package: Protect the checkout from GC.Ludovic Courtès
* build-aux/update-guix-package.scm (main): Define 'root', and call 'add-indirect-root' to protect SOURCE from GC.
2017-05-08maint: Check whether binaries cross-built to "arm-linux-gnueabihf" are ↵Ludovic Courtès
available. * build-aux/check-available-binaries.scm: Add "arm-linux-gnueabihf" as a cross target.
2017-05-08maint: 'check-available-binaries' forces use of the official servers.Ludovic Courtès
* build-aux/check-available-binaries.scm: Pass #:substitute-urls to 'set-build-options'.
2017-05-08maint: Use 'G_' in build-aux/ scripts.Ludovic Courtès
This is a followup to 69daee23af49aeafcb1d250c90860f9253da719e. * build-aux/check-final-inputs-self-contained.scm (assert-valid-substitute): Use 'G_' instead of '_'.
2017-05-07maint: Add 'time-monotonic' bug workaround in build-aux/hydra/evaluate.scm.Ludovic Courtès
* build-aux/hydra/evaluate.scm: Add 'time-monotonic' workaround for Guile 2.2.
2017-05-07maint: Add 'update-guix-package' target.Ludovic Courtès
* build-aux/update-guix-package.scm: New file. * Makefile.am (EXTRA_DIST): Add it. (update-guix-package): New target. (.PHONY): Add it. * gnu/packages/package-management.scm (guix): Mention it.
2017-05-04build: Use Gnulib's 'git-version-gen'.Ludovic Courtès
* Makefile.am (EXTRA_DIST, BUILT_SOURCES): Add $(top_srcdir)/.version. ($(top_srcdir)/.version, gen-tarball-version): New targets. (dist-hook): Depend on 'gen-tarball-version'. (.PHONY): Add 'gen-tarball-version'. * build-aux/git-version-gen: New file, from Gnulib v0.1-1312-ga87d5e5c6. * configure.ac: Use it in 'AC_INIT'. Use 'https' for the URL.
2017-05-03ui: Rename '_' to 'G_'.Ludovic Courtès
This avoids collisions with '_' when the latter is used as a 'match' pattern for instance. See <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00464.html>. * guix/ui.scm: Rename '_' to 'G_'. * po/guix/Makevars (XGETTEXT_OPTIONS): Adjust accordingly. * build-aux/compile-all.scm (warnings): Remove 'format'. * gnu/packages.scm, gnu/services.scm, gnu/services/shepherd.scm, gnu/system.scm, gnu/system/shadow.scm, guix/gnupg.scm, guix/http-client.scm, guix/import/cpan.scm, guix/import/elpa.scm, guix/import/pypi.scm, guix/nar.scm, guix/scripts.scm, guix/scripts/archive.scm, guix/scripts/authenticate.scm, guix/scripts/build.scm, guix/scripts/challenge.scm, guix/scripts/container.scm, guix/scripts/container/exec.scm, guix/scripts/copy.scm, guix/scripts/download.scm, guix/scripts/edit.scm, guix/scripts/environment.scm, guix/scripts/gc.scm, guix/scripts/graph.scm, guix/scripts/hash.scm, guix/scripts/import.scm, guix/scripts/import/cpan.scm, guix/scripts/import/cran.scm, guix/scripts/import/crate.scm, guix/scripts/import/elpa.scm, guix/scripts/import/gem.scm, guix/scripts/import/gnu.scm, guix/scripts/import/hackage.scm, guix/scripts/import/nix.scm, guix/scripts/import/pypi.scm, guix/scripts/import/stackage.scm, guix/scripts/lint.scm, guix/scripts/offload.scm, guix/scripts/pack.scm, guix/scripts/package.scm, guix/scripts/perform-download.scm, guix/scripts/publish.scm, guix/scripts/pull.scm, guix/scripts/refresh.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/scripts/system.scm, guix/ssh.scm, guix/upstream.scm: Use 'G_' instead of '_'. Most of this change was obtained by running: "sed -i -e's/(_ "/(G_ "/g' `find -name \*.scm`".
2017-04-14build: Download aarch64 bootstrap binaries from alpha.gnu.org.Ludovic Courtès
* build-aux/download.scm (file-name->uri): Remove flashner.co.il URL. * gnu/packages/package-management.scm (boot-guile-uri): Likewise.
2017-03-30hydra: Don't build deprecated packages.Ludovic Courtès
* build-aux/hydra/gnu-system.scm (hydra-jobs): When iterating over the packages, exclude those that match 'package-superseded'.
2017-03-30Merge branch 'master' into core-updatesMarius Bakke
Most conflicts are from 6fd52309b8f52c9bb59fccffac53e029ce94b698.
2017-03-30hydra: Include the localstatedir in the binary tarball.Ludovic Courtès
This is a followup to 6b63c43e0661406bf9e8c4c54f517744fc2ffdb3. * build-aux/hydra/gnu-system.scm (tarball-jobs): Pass #:localstatedir? #t to 'self-contained-tarball'.
2017-03-23Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner
2017-03-22build: 'test-driver.scm' prints Scheme values with 'write'.Ludovic Courtès
Previously it would print them with 'display', which was inconvenient. * build-aux/test-driver.scm (test-display): Use ~S for VALUE. (test-runner-gnu): Use 'format' instead of 'test-display' for the test name, location, and result kind.
2017-03-19Merge branch 'master' into core-updatesMark H Weaver
2017-03-18build: Require Guile >= 2.0.9.Ludovic Courtès
* configure.ac: Bump requirement to 2.0.9. * doc/guix.texi (Requirements): Adjust accordingly. * README (Requirements): Likewise. * build-aux/download.scm: Remove workaround for <http://bugs.gnu.org/13095>. * guix/build/download.scm: Likewise. (http-fetch)[post-2.0.7?]: Remove. Remove conditional code for not POST-2.0.7?. * guix/http-client.scm: Remove workaround for <http://bugs.gnu.org/13095>. (http-fetch)[post-2.0.7?]: Remove. Remove conditional code for not POST-2.0.7?. * guix/serialization.scm (read-latin1-string): Remove mention of 2.0.9. * tests/nar.scm: Use (ice-9 control). (let/ec): Remove.
2017-03-16utils: Move base16 procedures to (guix base16).Ludovic Courtès
* guix/utils.scm (bytevector->base16-string, base16-string->bytevector): Move to... * guix/base16.scm: ... here. New file. * tests/utils.scm ("bytevector->base16-string->bytevector"): Move to... * tests/base16.scm: ... here. New file. * Makefile.am (MODULES): Add guix/base16.scm. (SCM_TESTS): Add tests/base16.scm. * build-aux/download.scm, guix/derivations.scm, guix/docker.scm, guix/import/snix.scm, guix/pk-crypto.scm, guix/scripts/authenticate.scm, guix/scripts/download.scm, guix/scripts/hash.scm, guix/store.scm, tests/hash.scm, tests/pk-crypto.scm: Adjust imports accordingly.
2017-03-15Merge branch 'master' into core-updatesMarius Bakke
2017-03-14build: On 2.2, build package files with almost no optimizations.Ludovic Courtès
* build-aux/compile-all.scm (%default-optimizations) (%lightweight-optimizations): New variables. (optimization-options): New procedure. (compile-file*): Use it.
2017-03-13Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner
2017-03-12Add 'guix pack'.Ludovic Courtès
* gnu/system/install.scm (self-contained-tarball): Move to... * guix/scripts/pack.scm: ... here. New file. * doc/guix.texi (Binary Installation): Mention 'guix pack'. (Invoking guix pack): New node. * build-aux/make-binary-tarball.scm: Remove. * Makefile.am (MODULES): Add guix/scripts/pack.scm. (EXTRA_DIST): Remove build-aux/make-binary-tarball.scm. (guix-binary.%.tar.xz): Rewrite using 'guix pack'. * build-aux/hydra/gnu-system.scm (tarball-jobs): Adjust accordingly.
2017-03-09Merge branch 'master' into core-updatesLudovic Courtès
2017-03-09hydra: Really disable 32-to-64-bit cross-builds.Ludovic Courtès
Fixes <http://bugs.gnu.org/26022>. Reported by Efraim Flashner <efraim@flashner.co.il>. * build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs](from-32-to-64?): Check whether TARGET contains "64" rather than checking whether TARGET ends in "64", which is rarely the case. (same?): Add special case for armhf-linux.
2017-03-08build: Unset 'NIX_BUILD_HOOK' when offloading support is missing.Ludovic Courtès
* build-aux/pre-inst-env.in: Export 'NIX_BUILD_HOOK' only when nix/scripts/offload is executable; unset it otherwise.
2017-02-20gnu: Add bootstrap-binaries for 'aarch64-linux'.Efraim Flashner
These bootstrap-binaries were built against commit 8f8f250bdca917b3ce38aa0902f01b19081859a4. * gnu/packages/bootstrap/aarch64-linux/bash, gnu/packages/bootstrap/aarch64-linux/mkdir, gnu/packages/bootstrap/aarch64-linux/xz, gnu/packages/bootstrap/aarch64-linux/tar: New files. * gnu/local.mk (bootstrap_aarch64_linuxdir) (dist_bootstrap_aarch64_linux_DATA) (nodist_bootstrap_aarch64_linux_DATA): New variables. (DISTCLEANFILES): Add $(nodist_bootstrap_aarch64_linux_DATA). (gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz): New target. * build-aux/download.scm (filename->uri): Add aarch64-linux entry. * gnu/packages/bootstrap.scm (raw-build): Use guile-2.0.14.tar.xz on aarch64-linux. (glibc-dynamic-linker, %bootstrap-coreutils&co, %boostrap-binutils) (%bootstrap-glibc, %bootstrap-gcc): Add aarch64-linux cases. * m4/guix.m4 (GUIX_SYSTEM_TYPE): Add aarch64 case. (GUIX_ASSERT_SUPPORTED_SYSTEM): Add aarch64-linux to supported list. * doc/guix.texi (GNU Distribution): Add aarch64-linux to the list of supported systems. * tests/packages.scm (package-search-derivation, snippet): Add aarch64 case.