Commit graph

361 commits

Author SHA1 Message Date
Ludovic Courtès
530e31b824
hydra: Remove uses of _IOLBF.
_IOLBF & co. were deprecated in Guile 2.2 and removed in 3.0.

* build-aux/hydra/gnu-system.scm: Pass 'line instead of _IOLBF to 'setvbuf'.
* build-aux/hydra/guix-modular.scm: Likewise.
2020-03-05 23:40:24 +01:00
Ludovic Courtès
5ec4156bbc
tests: Add a manifest for system tests.
The manifest can be passed to 'guix build -m', 'guix weather -m', and so
on.  It can also be passed to an installed 'guix' (without
./pre-inst-env), with the exception so far of installation tests.

* build-aux/run-system-tests.scm: Remove.  Move interesting bits move
to...
* etc/system-tests.scm: ... here.  New file.
* Makefile.am (EXTRA_DIST): Remove 'build-aux/run-system-tests.scm' and
add 'etc/system-tests.scm'.
(check-system): Rewrite to run 'guix build -m etc/system-tests.scm'.
2020-03-05 16:33:38 +01:00
Ludovic Courtès
c5a3d8f646
tests: "make check-system" includes the current commit ID, if any.
* build-aux/run-system-tests.scm (source-commit): New procedure.
(tests-for-current-guix): Add 'commit' parameter and pass it to
'channel-source->package'.
(run-system-tests): Call 'source-commit' and pass the result to
'tests-for-current-guix'.
2020-03-05 16:33:37 +01:00
Ludovic Courtès
dd1ee160be
tests: "make check-system" no longer interns source upfront.
* gnu/ci.scm (channel-build-system)[build, lower]: Honor #:source.
(channel-source->package): New procedure.
(system-test-jobs): Remove 'instance' and call to
'checkout->channel-instance'.  Use 'channel-source->package'.
* build-aux/run-system-tests.scm (tests-for-channel-instance): Rename to...
(tests-for-current-guix): ... this.  Change 'instance' to 'source'.
(run-system-tests): Use 'local-file' instead of 'interned-file' for
SOURCE.
2020-03-05 16:33:37 +01:00
Ludovic Courtès
2e4011465b
git-authenticate: Remove duplicate entry.
* build-aux/git-authenticate.scm (%committers): Remove duplicate of snape.
2020-02-26 22:11:19 +01:00
Ludovic Courtès
a73a530df2
git-authenticate: Add sub-key for thomasd.
This is a followup to commit 7dc0f1d5a8,
signed with sub-key "3D2C DA58 819C 08C2 A649  D43D 5C3B 064C 724A 5726".

* build-aux/git-authenticate.scm (%committers): Provide fingerprint of
subkey for thomasd.
2020-02-26 22:09:44 +01:00
Ludovic Courtès
447f834263
git-authenticate: Store the sub-key fingerprint of mab.
This is a followup to 76a8dc3ee2, signed
with this sub-key.

* build-aux/git-authenticate.scm (%committers): Store the sub-key
fingerprint of mab.
2020-02-22 00:48:27 +01:00
Ludovic Courtès
7ff86ecae1
build-self: Show wider backtraces.
* build-aux/build-self.scm (build): Add 'setenv' call for "COLUMNS".
2020-02-20 11:12:33 +01:00
Ludovic Courtès
56893b9bbf
git-authenticate: Add niedzejkob to the list of committers.
* build-aux/git-authenticate.scm (%committers): Add niedzejkob.
2020-02-13 23:32:19 +01:00
Ludovic Courtès
d5a9641413
git-authenticate: Add mab to the list of committers.
* build-aux/git-authenticate.scm (%committers): Add mab.
2020-02-11 12:33:35 +01:00
Ludovic Courtès
cd903b0443
git-authenticate: Add roptat's new key.
This is a followup to 2cbede5935.

* build-aux/git-authenticate.scm (%committers): Add roptat's new key.
2020-01-27 23:03:07 +01:00
Ludovic Courtès
b2504b1205
git-authenticate: Adjust atheia's key info.
This is a followup to 05f8a143e4.

* build-aux/git-authenticate.scm (%committers): Adjust atheia's key
info.
2020-01-17 14:43:25 +01:00
Ludovic Courtès
05f8a143e4
git-authenticate: Add new key for atheia.
* build-aux/git-authenticate.scm (%committers): Add atheia's 2nd key, as
seen in commit df18ea6f27.
2020-01-17 14:24:48 +01:00
Ludovic Courtès
62b9d3d4d5
git-authenticate: Add daviwil to the list of committers.
This is a followup to a587bb23b7, first
commit signed by daviwil.

* build-aux/git-authenticate.scm (%committers): Add "daviwil".
2020-01-08 23:34:18 +01:00
Ludovic Courtès
1e30d4e0df
git-authenticate: Add glv to the list of committers.
This is a followup to 92fcf9856f, first
commit signed by glv.

* build-aux/git-authenticate.scm (%committers): Add glv.
2019-12-29 18:24:54 +01:00
Ludovic Courtès
787766ed1e
git-authenticate: Keep a local cache of previously-authenticated commits.
A list of already-authenticated commits is kept in
~/.cache/guix/authentication.  This speeds up subsequent "make
authenticate" invocations.

* build-aux/git-authenticate.scm (authenticated-commit-cache-file)
(previously-authenticated-commits, cache-authenticated-commit): New
procedures.
(git-authenticate): Define 'authenticated-commits' and pass it as a
third argument to 'commit-difference'.  Add call to
'cache-authenticated-commit'.  Don't display signing stats when STATS is
null.
2019-12-27 13:52:49 +01:00
Ludovic Courtès
1e43ab2c03
Add 'build-aux/git-authenticate.scm'.
* build-aux/git-authenticate.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
(commit_v1_0_1): New variable.
(authenticate): New target.
2019-12-27 13:52:49 +01:00
Clément Lassieur
f71b0a0012
ci: Make sure the Guix checkout is the one providing Cuirass proc.
Fixes <https://bugs.gnu.org/36378>.
Reported by Reza Alizadeh Majd <r.majd@pantherx.org>.

* build-aux/hydra/gnu-system.scm (find-current-checkout): New procedure.
(hydra-jobs): Use FIND-CURRENT-CHECKOUT to define CHECKOUT.  Pass it to the
inferior Guix as an extra argument whose key is 'superior-guix-checkout'.
* gnu/ci.scm (find-current-checkout): New procedure.
(hydra-jobs): Use FIND-CURRENT-CHECKOUT to define CHECKOUT.  This will return
'#f' if the current Guix is an inferior.  In that case, use the
'superior-guix-checkout' argument provided by the superior Guix.
2019-12-01 11:26:11 +01:00
Ludovic Courtès
887fd835a7
tests: "make check-system" uses Guix built with (guix self).
This is a followup to 7e6d8d366a.
It means that "make check-system" can run tests from (gnu tests install)
much faster because it does not need to build a full 'guix' package.

* gnu/ci.scm (channel-instance->package): Export.
* build-aux/run-system-tests.scm (tests-for-channel-instance): New
procedure, with code formerly in 'run-system-tests'.
(run-system-tests): Call 'interned-file' for SOURCE, and add call to
'tests-for-channel-instance'.
2019-11-13 23:26:35 +01:00
Ludovic Courtès
a1aaca314c
build: Remove references to 'NIX_LOCALSTATE_DIR'.
* build-aux/test-env.in: Remove references to 'NIX_LOCALSTATE_DIR'.
2019-10-16 22:53:40 +02:00
Ludovic Courtès
47e99e626b
daemon: Remove traces of 'NIX_ROOT_FINDER'.
This is a followup to 2e3e5d2198.

* build-aux/test-env.in: Remove mentions of 'NIX_ROOT_FINDER'.
* nix/libstore/gc.cc (LocalStore::collectGarbage): Adjust comment
accordingly.
2019-10-16 22:53:40 +02:00
Ludovic Courtès
82f903e70f
daemon: Remove 'NIX_LIBEXEC_DIR'.
* nix/libstore/globals.hh (Settings)[nixLibexecDir]: Remove.
* nix/libstore/globals.cc (Settings::processEnvironment): Remove
reference to 'nixLibexecDir'.
* nix/local.mk (libstore_a_CPPFLAGS): Remove -DNIX_LIBEXEC_DIR flag.
* build-aux/pre-inst-env.in: Remove references to 'NIX_LIBEXEC_DIR'.
2019-09-08 11:49:24 +02:00
Ludovic Courtès
bc69ea2d60
daemon: Run 'guix offload' directly.
* nix/scripts/offload.in: Remove.
* nix/local.mk (nodist_pkglibexec_SCRIPTS) [BUILD_DAEMON_OFFLOAD]:
Remove 'scripts/offload'.
* config-daemon.ac: Don't output 'nix/scripts/offload'.
* build-aux/pre-inst-env.in: Don't set 'NIX_BUILD_HOOK'.
* nix/libstore/build.cc (HookInstance::HookInstance): Run 'guix
offload'.
(DerivationGoal::tryBuildHook): Remove reference to 'NIX_BUILD_HOOK'.
* nix/nix-daemon/guix-daemon.cc (main) [HAVE_DAEMON_OFFLOAD_HOOK]: Don't
set 'NIX_BUILD_HOOK'.
* nix/nix-daemon/nix-daemon.cc (performOp) [!HAVE_DAEMON_OFFLOAD_HOOK]:
Leave 'settings.useBuildHook' unchanged.
2019-09-08 11:49:24 +02:00
Ludovic Courtès
2e3e5d2198
daemon: Invoke 'guix gc --list-busy' instead of 'list-runtime-roots'.
* nix/scripts/list-runtime-roots.in: Remove.
* guix/store/roots.scm (%proc-directory): New variable.
(proc-file-roots, proc-exe-roots, proc-cwd-roots)
(proc-fd-roots, proc-maps-roots, proc-environ-roots)
(referenced-files, canonicalize-store-item, busy-store-items): New
procedures, taken from 'list-runtime-roots.in'.
* nix/libstore/globals.hh (Settings)[guixProgram]: New field.
* nix/libstore/globals.cc (Settings::processEnvironment): Initialize
'guixProgram'.
* nix/libstore/gc.cc (addAdditionalRoots): Drop code related to
'NIX_ROOT_FINDER'.  Run "guix gc --list-busy".
* nix/local.mk (nodist_pkglibexec_SCRIPTS): Remove
'scripts/list-runtime-roots'.
* config-daemon.ac: Don't output nix/scripts/list-runtime-roots.
* build-aux/pre-inst-env.in: Don't set 'NIX_ROOT_FINDER'.
Set 'GUIX'.
* doc/guix.texi (Invoking guix gc): Document '--list-busy'.
* guix/scripts/gc.scm (show-help, %options): Add "--list-busy".
(guix-gc)[list-busy]: New procedure.
Handle the 'list-busy' action.
2019-09-08 11:49:24 +02:00
Tobias Geerinckx-Rice
3fb3291e25
Use more guix.gnu.org.
* build-aux/build-self.scm (make-config.scm): Replace gnu.org/s/guix with guix.gnu.org.
* guix/scripts/publish.scm (render-home-page): Likewise.
* guix/self.scm (make-config.scm): Likewise.
2019-07-16 23:00:10 +02:00
Ludovic Courtès
ee700da584
build: Report build errors via 'report-load-error'.
* build-aux/compile-all.scm: Wrap 'compile-files' call in 'catch'.
Attempt to resort to 'report-load-error' in (guix ui) to print the
error.
2019-06-25 17:41:24 +02:00
Ludovic Courtès
996ecaf64e
maint: update-NEWS: Track "gcc-toolchain", not "gcc".
This is a followup to d78010b81e.

* build-aux/update-NEWS.scm (write-packages-updates)[important]: Replace
"gcc" by "gcc-toolchain".
2019-05-20 11:50:21 +02:00
Ludovic Courtès
762ba22efe
maint: 'check-available-binaries' checks for more packages.
Fixes <https://bugs.gnu.org/35539>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* build-aux/check-available-binaries.scm (packages-for-system): New procedure.
<top level>: Use it.
2019-05-16 18:50:20 +02:00
Ludovic Courtès
e0244eb7a2
build-self: Let HOME pass through the execution environment.
This is a followup to 48d498c2c3, which
introduced a typo (missing '->' in 'mlet'.)

Fixes <https://bugs.gnu.org/35623>.
Reported by Karrick McDermott <kmcdermott@linkedin.com>.

* build-aux/build-self.scm (build): Add 'getenv' and 'setenv' calls for
HOME.
2019-05-12 22:56:57 +02:00
Tobias Geerinckx-Rice
cbe7c99e71
Revert "build-self: Let HOME pass through the execution environment."
This reverts commit 48d498c2c3.
It breaks ‘guix pull’.
2019-05-11 23:35:32 +02:00
Ludovic Courtès
48d498c2c3
build-self: Let HOME pass through the execution environment.
Fixes <https://bugs.gnu.org/35623>.
Reported by Karrick McDermott <kmcdermott@linkedin.com>.

* build-aux/build-self.scm (build): Add 'getenv' and 'setenv' calls for
HOME.
2019-05-11 20:10:26 +02:00
Ludovic Courtès
04fa9c62d9
build-self: Explain why we keep using deprecated bindings.
* build-aux/build-self.scm (build): Add comment regarding the deprecated
names.
2019-04-23 16:39:00 +02:00
Ludovic Courtès
ffc8ab75f1
Revert "build-self: Avoid deprecated bindings."
This reverts commit fa9e6e8b67.

By using the new bindings, we would prevent users of Guix prior to
de9fbe9cdc, such as version 0.16.0, to
upgrade to current master.  Thus, we will keep using the old names for a
while.
2019-04-23 00:47:41 +02:00
Mark H Weaver
fa9e6e8b67
build-self: Avoid deprecated bindings.
* build-aux/build-self.scm (build): Replace references to nix-server-*
with store-connection-*.
2019-04-22 14:58:16 -04:00
Ludovic Courtès
04b5ac212f
build: Show completion percentage while building.
* build-aux/compile-all.scm (%): New procedure.
(command-line): Use it to report completion.
2019-04-19 17:46:40 +02:00
Ludovic Courtès
ab77b69eca
self: Remove unused variable.
This variable is unused since commit
45779fa676.

* guix/self.scm (%dependency-variables): Remove.
* build-aux/build-self.scm (%dependency-variables): Remove.
2019-04-17 11:53:53 +02:00
Ludovic Courtès
ec8bc4a34e
build-self: Disable position recording.
'guix pull -n' goes roughly from 40s to 35s.

* build-aux/build-self.scm (build-program): Add call to 'read-disable'.
2019-03-26 18:11:52 +01:00
Ludovic Courtès
2637cfd7a4
Avoid name clash with 'build' from (guix store) and (guix status).
Since commit 976ef2d978, (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-11 23:23:28 +01:00
Ludovic Courtès
959eaa1eb8
daemon: Add "/guix" to default 'nixLibexecDir'.
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-04 16:20:01 +01:00
Ludovic Courtès
4d4a38f620
daemon: Remove the 'NIX_SUBSTITUTERS' environment variable.
* 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-04 16:20:01 +01:00
Ludovic Courtès
a87d66f371
daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables.
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-02-04 00:03:30 +01:00
Ludovic Courtès
f9e8a12379
store: Rename '&nix-error' to '&store-error'.
* 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-21 23:09:55 +01:00
Ludovic Courtès
e9dfa4d839
build-self: Execute trampoline in a clean environment.
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-21 10:19:32 +01:00
Ludovic Courtès
7804c45b9c
status: Add 'with-status-verbosity'.
* 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-11 12:14:38 +01:00
Ludovic Courtès
c108c46fb4
build-self: Spin only on TTYs.
* build-aux/build-self.scm (build-program): Spin only when 'isatty?'
returns true.
2019-01-08 18:38:15 +01:00
Ludovic Courtès
b5f8c2c885
hydra: Compute jobs in an inferior.
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-06 21:41:07 +01:00
Ludovic Courtès
65ff85dcee
hydra: evaluate: Add the checkout to the store.
* 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-06 21:41:07 +01:00
Ludovic Courtès
59fb5c1cdb
hydra: Move job definitions to (gnu ci).
* 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-06 21:41:07 +01:00
Ludovic Courtès
afb82831fa
build-self: Don't clobber the output port.
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.
2019-01-06 21:41:07 +01:00
Ludovic Courtès
dd8356e3c6
hydra: Use short timeouts for the QEMU jobs and system tests.
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-29 01:05:17 +01:00