Commit Graph

247 Commits

Author SHA1 Message Date
Ludovic Courtès e2e6e9ebf0
hydra: Pre-load the compiler.
Starting from Guile 2.2.3, '%fresh-auto-compile' does what it says and
would auto-compile everything, including the compiler (see
<https://bugs.gnu.org/29226>).

* build-aux/hydra/gnu-system.scm: Call 'compile'.
2017-12-13 23:11:54 +01:00
Ludovic Courtès 34797d8afc
hydra: Invalidate derivation caches after each architecture evaluation.
This reduces max RSS from 1.3G to 1.0G.

* guix/derivations.scm (invalidate-derivation-caches!): New procedure.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Use it.  Add 'format'
call.
2017-12-13 23:11:53 +01:00
Ludovic Courtès cc6a4b0386
pull: Add (guix profiling) to the build environment.
Reported by Ricardo Wurmus.

* build-aux/build-self.scm (build): Add (guix profiling).
2017-12-13 17:16:40 +01:00
Ludovic Courtès 66f217b43a
pull: Build with an ABI-compatible Guile.
Fixes <https://bugs.gnu.org/29570>.
Reported by Vagrant Cascadian <vagrant@debian.org>.

* build-aux/build-self.scm (matching-guile-2.2): New procedure.
(guile-for-build): Use it.
2017-12-07 17:13:47 +01:00
Ludovic Courtès c397dfca03
build: Explicitly flush the "LOAD" and "GUILEC" lines.
* 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 2890ad332f
whereby compilation output would be buffered, leading to a weird
visual effect.
2017-11-28 13:40:04 +01:00
Ludovic Courtès cd295fbe17
Revert "Add (guix self) and use it when pulling."
This reverts commit 5f93d97005.

'guix pull' would fail because (guix self) needs 'scheme-files'
from (guix discovery), which was not exported until now.
2017-11-21 23:53:10 +01:00
Ludovic Courtès 11a54b3d6e
hydra: Add jobs for the modular Guix.
* build-aux/hydra/guix-modular.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2017-11-21 23:09:17 +01:00
Ludovic Courtès 49961951c5
hydra: 'evaluate' passes an alist to the entry point.
* build-aux/hydra/evaluate.scm (%top-srcdir): New variable.
<top level>: Pass it to 'hydra-jobs'.
2017-11-21 23:09:16 +01:00
Ludovic Courtès 5f93d97005
Add (guix self) and use it when pulling.
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-21 23:09:16 +01:00
Ludovic Courtès b574cee361
hydra: Add jobs for all of '%final-inputs'.
* 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-07 18:09:13 +01:00
Ludovic Courtès 25a5b187e8
hydra: Build hidden packages.
* build-aux/hydra/gnu-system.scm (all-packages): Pass #:select? to
'fold-packages'.
2017-11-07 18:09:12 +01:00
Ludovic Courtès b5033c5a9e
hydra: Factorize package list creation.
* build-aux/hydra/gnu-system.scm (all-packages): New procedure, with
body taken from...
(hydra-jobs): ... here.  Use it.
2017-11-07 18:09:12 +01:00
Ludovic Courtès ce33c3af76
pull: Add (guix build compile) to the mix.
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-23 17:08:50 -07:00
Ludovic Courtès 3a9976bfcd
build: Honor make's '-j' flag.
* build-aux/compile-all.scm (parallel-job-count): New procedure.
<top level>: Pass it to 'compile-files' as #:workers.
2017-10-22 22:09:00 -07:00
Ludovic Courtès 2890ad332f
build: Factorize module compilation in (guix build compile).
* 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-22 22:09:00 -07:00
Eric Bavier 7740228e35
build: Set 'NIX_BUILD_HOOK' only if offloading is configured.
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-10-10 23:16:07 -05:00
Jan Nieuwenhuizen 454caca8e6
cuirass: Add 'cuirass-jobs.scm' target to compute the Cuirass jobs.
* build-aux/hydra/evaluate.scm: Support "cuirass" command line option.
* Makefile.am (cuirass-jobs.scm): New target.
2017-09-28 17:39:54 +02:00
Jan Nieuwenhuizen 516b53828e
cuirass: Support subset with list of package[@version].
* build-aux/hydra/gnu-system.scm (hydra-jobs): Support subset of
packages: ("name[@version" ...).
2017-09-27 22:19:28 +02:00
Jan Nieuwenhuizen 66bc1d2aaf
cuirass: Add gnu-system build spec.
* 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-27 22:19:28 +02:00
Ludovic Courtès 1b58f1c8ba
build: Use -Wmacro-use-before-definition.
* build-aux/compile-all.scm (warnings): Add 'macro-use-before-definition'.
2017-09-08 12:48:08 +02:00
Ludovic Courtès 59a1627518
pull: Fetch source code from Git.
* 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-08-02 00:04:00 +02:00
Ludovic Courtès 386f541556
hydra: Add 'guix.SYSTEM' jobs.
* build-aux/hydra/guix.scm (package->alist): Disable grafting.
(hydra-jobs): Return 'guix.SYSTEM' jobs in addition to 'tarball'.
2017-07-25 17:46:17 +02:00
Ludovic Courtès 06ce8e5680
hydra: Simplify 'tarball' job.
* build-aux/hydra/guix.scm (tarball-package): Remove.
(hydra-jobs): Use 'dist-package' instead of 'tarball-package'.
2017-07-25 17:46:17 +02:00
Danny Milosavljevic be1033a334
build: Add iso9660 system image generator.
* 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-07-03 10:07:59 +02:00
Ludovic Courtès 82c955c0a5
hydra: Don't build non-substitutable packages.
* build-aux/hydra/gnu-system.scm (package->job): Compute PACKAGE's
derivation; return #f if 'substitutable-derivation?' returns #f.
2017-06-15 23:07:47 +02:00
Mathieu Othacehe 19c90e5f69
pull: Add a dependency to guile-git.
* 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-06-09 09:48:26 +02:00
Ludovic Courtès 920803fbf4
maint: Add 'update-NEWS' target.
* 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-18 16:24:02 +02:00
Ludovic Courtès d116695b31
hydra: Cross-build Guile 2.2.
* build-aux/hydra/gnu-system.scm (%core-packages): Add GUILE-2.2.
2017-05-16 14:16:56 +02:00
Ludovic Courtès 838ba73d6e
pull: Build with the matching Guile major version.
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-09 18:08:24 +02:00
Ludovic Courtès aa1c3a0000
maint: update-guix-package: Protect the checkout from GC.
* build-aux/update-guix-package.scm (main): Define 'root', and call
'add-indirect-root' to protect SOURCE from GC.
2017-05-09 12:58:42 +02:00
Ludovic Courtès a7e5944e9c
maint: Check whether binaries cross-built to "arm-linux-gnueabihf" are available.
* build-aux/check-available-binaries.scm: Add "arm-linux-gnueabihf" as a
cross target.
2017-05-08 16:29:24 +02:00
Ludovic Courtès 8872fc0e09
maint: 'check-available-binaries' forces use of the official servers.
* build-aux/check-available-binaries.scm: Pass #:substitute-urls to
'set-build-options'.
2017-05-08 16:29:24 +02:00
Ludovic Courtès c8ba269c26
maint: Use 'G_' in build-aux/ scripts.
This is a followup to 69daee23af.

* build-aux/check-final-inputs-self-contained.scm (assert-valid-substitute):
Use 'G_' instead of '_'.
2017-05-08 16:29:23 +02:00
Ludovic Courtès 7f4da8ff6b
maint: Add 'time-monotonic' bug workaround in build-aux/hydra/evaluate.scm.
* build-aux/hydra/evaluate.scm: Add 'time-monotonic' workaround for
Guile 2.2.
2017-05-07 00:18:36 +02:00
Ludovic Courtès 94fa8d7616
maint: Add 'update-guix-package' target.
* 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-07 00:18:36 +02:00
Ludovic Courtès e6860b5e7f
build: Use Gnulib's 'git-version-gen'.
* 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-04 23:51:45 +02:00
Ludovic Courtès 69daee23af
ui: Rename '_' to 'G_'.
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-05-03 16:16:17 +02:00
Ludovic Courtès b31b0155ea
build: Download aarch64 bootstrap binaries from alpha.gnu.org.
* build-aux/download.scm (file-name->uri): Remove flashner.co.il URL.
* gnu/packages/package-management.scm (boot-guile-uri): Likewise.
2017-04-14 18:17:58 +02:00
Ludovic Courtès 6f9f01fbf6
hydra: Don't build deprecated packages.
* build-aux/hydra/gnu-system.scm (hydra-jobs): When iterating over the
packages, exclude those that match 'package-superseded'.
2017-03-30 23:46:07 +02:00
Marius Bakke 84157bb8bf
Merge branch 'master' into core-updates
Most conflicts are from 6fd52309b8.
2017-03-30 22:59:53 +02:00
Ludovic Courtès 32e18d3754
hydra: Include the localstatedir in the binary tarball.
This is a followup to 6b63c43e06.

* build-aux/hydra/gnu-system.scm (tarball-jobs): Pass #:localstatedir? #t
to 'self-contained-tarball'.
2017-03-30 11:15:16 +02:00
Efraim Flashner 0371b345e8
Merge remote-tracking branch 'origin/master' into core-updates 2017-03-23 14:53:33 +02:00
Ludovic Courtès 73a46451af
build: 'test-driver.scm' prints Scheme values with 'write'.
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-22 15:02:33 +01:00
Mark H Weaver f67337e23e
Merge branch 'master' into core-updates 2017-03-19 18:52:12 -04:00
Ludovic Courtès 36626c556e
build: Require Guile >= 2.0.9.
* 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-18 00:39:49 +01:00
Ludovic Courtès 4c0c4db070
utils: Move base16 procedures to (guix base16).
* 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-16 22:50:14 +01:00
Marius Bakke 4b7e5c1131
Merge branch 'master' into core-updates 2017-03-15 17:52:26 +01:00
Ludovic Courtès ae196fa349
build: On 2.2, build package files with almost no optimizations.
* build-aux/compile-all.scm (%default-optimizations)
(%lightweight-optimizations): New variables.
(optimization-options): New procedure.
(compile-file*): Use it.
2017-03-14 10:28:57 +01:00
Efraim Flashner 3f9543aee1
Merge remote-tracking branch 'origin/master' into core-updates 2017-03-13 23:08:49 +02:00
Ludovic Courtès 239c22663a
Add 'guix pack'.
* 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-12 17:47:25 +01:00