Commit graph

371 commits

Author SHA1 Message Date
Ludovic Courtès
051a45e642
git-authenticate: Use (guix openpgp).
It can now authenticate 14K+ commits in 23s instead of 4mn20.

* build-aux/git-authenticate.scm (%authorized-signing-keys): Turn
fingerprints into bytevectors.
(with-temporary-files): Remove.
(commit-signing-key): Add 'keyring' parameter.  Use
'string->openpgp-packet' and 'verify-openpgp-signature' instead of (guix
gnupg) procedures.
(authenticate-commit): Add 'keyring' parameter.  Pass it to
'commit-signing-key'.  Adjust to SIGNING-KEY being an <openpgp-public-key>.
(authenticate-commits): Remove 'parameterize'.  Load keyring with
'get-openpgp-keyring'.
(git-authenticate): When printing stats, adjust to SIGNER being an
<openpgp-public-key>.
2020-05-04 09:56:13 +02:00
Tobias Geerinckx-Rice
aa78c596c9
gnupg: Accept revoked keys.
I (nckx) have revoked all RSA subkeys, in favour of my older and
freshly-refreshed ECDSA ones.  This was merely a precaution: to my
knowledge all my RSA private keys have been carefully destroyed and
were never compromised.  This commit keeps ‘make authenticate’ happy.

* guix/gnupg.scm (revkeysig-rx): New variable for revoked keys.
(gnupg-verify): Parse it.
(gnupg-status-good-signature?): Accept it as ‘good’ for our purposes.
* build-aux/git-authenticate.scm (%committers): Clarify nckx's subkeys.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-17 23:36:47 +02:00
Ludovic Courtès
27a1e4fd10
build: Cap build parallelism on i686.
Works around <https://bugs.gnu.org/40522>.

* build-aux/compile-all.scm (parallel-job-count*): New procedure.
<top level>: Use it instead of 'parallel-job-count'.
2020-04-12 00:00:59 +02:00
Ludovic Courtès
11dee1bb8f
build-self: Avoid call to 'show-what-to-build*' on modern Guix.
This avoids repeated "will be downloaded" messages for
'compute-guix-derivation' and its dependencies.

* build-aux/build-self.scm (build): Don't call 'show-what-to-build*'
when 'with-build-handler' is defined.
2020-04-06 12:07:49 +02:00
Amin Bandali
c2cf286c62
Update email address and Savannah handle for Amin Bandali.
* .mailmap, gnu/local.mk, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm,
gnu/packages/fonts.scm, gnu/packages/fpga.scm, gnu/packages/lean.scm,
gnu/packages/maths.scm, gnu/packages/pulseaudio.scm: Update my email address.
* build-aux/git-authenticate.scm: Update my Savannah handle.
2020-03-28 16:30:07 -04:00
Ludovic Courtès
9acacb71c9
Remove workaround for 'time-monotonic' in Guile 2.2.2.
This is a followup to e688c2df39.

* build-aux/hydra/evaluate.scm <top level>: Remove 'time-monotonic'
definition.
* guix/cache.scm: Likewise.
* guix/progress.scm: Likewise.
* guix/scripts/substitute.scm: Likewise.
* guix/scripts/weather.scm: Likewise.
* tests/cache.scm: Likewise.
2020-03-22 16:49:47 +01:00
Ludovic Courtès
66a198c807
hydra: evaluate: Use 'with-build-handler'.
* build-aux/hydra/evaluate.scm (command-line): Remove 'set!' for
'build-things'.  Use 'with-build-handler' instead.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Add comment about
removing 'show-what-to-build' call.
2020-03-22 12:42:52 +01:00
Marius Bakke
05e783871c
build-self: Import (ice-9 threads) in the compute-guix-derivation script.
This is required for CALL-WITH-NEW-THREAD in Guile 3.0.

* build-aux/build-self.scm (build-program): Import (ice-9 threads).
2020-03-19 08:41:49 +01:00
Ludovic Courtès
f292c50191
maint: Add 'etc/release-manifest.scm'.
* etc/release-manifest.scm: New file.
* gnu/ci.scm (%cross-targets): Export.
* build-aux/check-available-binaries.scm: Remove.
* Makefile.am (EXTRA_DIST): Add 'etc/release-manifest.scm' and remove
'build-aux/check-available-binaries.scm'.
(assert-binaries-available): Rewrite using 'guix weather -m'.
2020-03-13 17:33:38 +01:00
Ludovic Courtès
a1363a363e
git-authenticate: Add roelj's new key.
This is a followup to cc51c03ff8.

* build-aux/git-authenticate.scm (%committers): Add roelj's new key.
2020-03-09 23:52:07 +01:00
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