Age | Commit message (Expand) | Author |
2020-06-22 | deduplicate: Avoid traversing directories twice....Until now, we'd call (nar-sha256 file) unconditionally. Thus, if FILE
was a directory, we would traverse it for no reason, and then call
'deduplicate' on FILE, which would again traverse it.
This change also removes redundant (mkdir-p store) calls from the loop,
and avoids 'lstat' calls by using 'scandir*'.
* guix/store/deduplication.scm (deduplicate): Add named loop. Move
'mkdir-p' outside the loop. Use 'scandir*' instead of 'scandir'. Do
not call 'nar-sha256' when FILE has type 'directory.
| Ludovic Courtès |
2020-06-22 | compile: Build gnu/{packages,tests}/* with '-O1'....* guix/build/compile.scm (optimization-options): Use '-O1' for the
simple case.
| Ludovic Courtès |
2020-06-21 | channels: 'authenticate-channel' doesn't check relation with intro commit....Fixes <https://bugs.gnu.org/41908>.
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.
The relation check imposed an extra restriction that was unnecessary:
it's enough to authenticate the set difference between the closure of
START-COMMIT and that of END-COMMIT. Any attempt to jump to an
unrelated commit would lead to the authentication failure of one commit
on the way.
* guix/channels.scm (authenticate-channel): Remove extra
'commit-relation' check when (null? commits).
| Ludovic Courtès |
2020-06-21 | git-authenticate: Ignore authenticated commit cache when it's not #o600....* guix/git-authenticate.scm (previously-authenticated-commits): Stat
PORT; return the empty list if it's no #o600 and change it to #o600.
| Ludovic Courtès |
2020-06-20 | build-system/gnu: Cross builds properly handle #:allowed-references & co....Fixes <https://bugs.gnu.org/41775>.
* guix/build-system/gnu.scm (gnu-cross-build)[canonicalize-reference]:
Pass TARGET and SYSTEM to 'package-cross-derivation'.
| Ludovic Courtès |
2020-06-20 | tests: Actually run 'tests/guix-environment-container.sh'....This test was skipped since the switch to Guile 3 because
'assert-container-features' would be inlined and thus accessing it with
@@ would fail with an unbound-variable error.
* guix/scripts/environment.scm (assert-container-features): Export.
* tests/guix-environment-container.sh: Use single '@'.
| Ludovic Courtès |
2020-06-18 | build-system/asdf: Add support for component-less systems....* guix/build/lisp-utils.scm (make-asd-file): Ensure lib directory exists and
check if prebuilt bundle system was generated.
(generate-system-definition): Add :class and :components only if prebuilt
system was generated.
| Pierre Neidhardt |
2020-06-18 | profiles: 'linux-module-database' hooks gracefully handles module-less kernels....Fixes <https://bugs.gnu.org/41924>.
* guix/profiles.scm (linux-module-database)[build]: Arrange so
'directory-entries' always returns a list. Add 'match' clause for the
empty list.
Co-authored-by: Ivan Kozlov <kanichos@yandex.ru>
| Ludovic Courtès |
2020-06-18 | profiles: Reindent 'linux-module-database'....* guix/profiles.scm (linux-module-database): Reindent.
| Ludovic Courtès |
2020-06-18 | nar: Use (guix i18n)....* guix/nar.scm: Use (guix i18n) instead of (guix ui).
| Ludovic Courtès |
2020-06-18 | nar: Avoid opening the database an additional time....* guix/nar.scm (finalize-store-file): Call 'register-items' and pass it
DB. This avoids opening the database a second time and hopefully
reduces contention on 'db.sqlite-shm'.
| Ludovic Courtès |
2020-06-18 | database: 'register-items' takes an open database....* guix/store/database.scm (store-database-directory)
(store-database-file): New procedures.
(call-with-database): Add call to 'mkdir-p'.
(register-items): Add 'db' parameter and remove #:state-directory and #:schema.
(register-path): Use 'store-database-file' and 'with-database', and
parameterize SQL-SCHEMA.
* gnu/build/image.scm (register-closure): Likewise.
* gnu/build/vm.scm (register-closure): Likewise.
* guix/scripts/pack.scm (store-database)[build]: Likewise.
| Ludovic Courtès |
2020-06-18 | build-system/gnu: Fix 'install' phase of 'gnu-dist'....* guix/build/gnu-dist.scm (install-dist): Fix 2nd argument to
'for-each'.
| Ludovic Courtès |
2020-06-18 | repl: Fix typo that would lead ~/.guile to be used when running scripts....This is a followup to c924e541390f9595d819edc33c19d979917c15ec.
* guix/scripts/repl.scm (guix-repl)[opts]: Set 'ignore-dot-guile?', with
question mark.
| Ludovic Courtès |
2020-06-17 | channels: Warn when pulling from a mirror....* guix/channels.scm (<channel-metadata>)[url]: New field.
(read-channel-metadata): Initialize it.
(read-channel-metadata-from-source): Likewise.
(channel-instance-primary-url): New procedure.
(latest-channel-instances): Compare CHANNEL's URL against it.
* doc/guix.texi (Channels)[Primary URL]: New subsection.
| Ludovic Courtès |
2020-06-17 | build-system/gnu: Rename "make dist" phase to 'build-dist'....* guix/build/gnu-dist.scm (%dist-phases): Add BUILD under the name
'build-dist'.
| Ludovic Courtès |
2020-06-17 | build-system/gnu: Simplify 'dist-package'....* guix/build-system/gnu.scm (dist-package): Use default keyword
arguments in 'substitute-keyword-arguments'.
| Ludovic Courtès |
2020-06-17 | build-system/gnu: Remove redundant 'unpack' phase from 'gnu-dist'....This has become redundant with the standard 'unpack' phase since
17919a58012c38052133ed029450fdb98d01fb5c.
* guix/build/gnu-dist.scm (copy-source): Remove.
(%dist-phases): Remove 'unpack' phase.
| Ludovic Courtès |
2020-06-17 | build-system/gnu: Remove Hydra-specific code from 'gnu-dist'....* guix/build/gnu-dist.scm (install-dist): Remove code for
'hydra-build-products'.
| Ludovic Courtès |
2020-06-17 | build-system/gnu: Remove 'autoreconf' phase from 'gnu-dist'....This has been superseded by the 'bootstrap' phase added in
189be331acfda1c242a9c85fca8d2a0356742f48.
* guix/build/gnu-dist.scm (autoreconf): Remove.
(%dist-phases): Remove it.
| Ludovic Courtès |
2020-06-17 | build-system/gnu: Adjust 'dist-package' to current 'autoconf-wrapper' API....This is a followup to 464f5447396fcec9b43f7eab71d5d42b522a157f.
* guix/build-system/gnu.scm (dist-package): Do not call 'autoconf-wrapper'.
| Ludovic Courtès |
2020-06-17 | profiles: Add comment at the top of 'manifest' file....* guix/build/profiles.scm (build-profile): Add comment at the top of
MANIFEST-FILE.
| Ludovic Courtès |
2020-06-16 | time-machine: Add '--disable-authentication'....* guix/inferior.scm (cached-channel-instance): Add #:authenticate? and
pass it to 'latest-channel-instances'.
* guix/scripts/time-machine.scm (show-help, %options): Add
'--disable-authentication'.
(%default-options): Add 'authenticate-channels?'.
(guix-time-machine): Honor it.
| Ludovic Courtès |
2020-06-16 | pull: Add '--disable-authentication'....* guix/channels.scm (latest-channel-instance): Add #:authenticate? and
honor it.
(latest-channel-instances): Likewise.
* guix/scripts/pull.scm (%default-options): Add 'authenticate-channels?'.
(show-help, %options): Add '--disable-authentication'.
(guix-pull): Pass #:authenticate? to 'latest-channel-instances'.
* doc/guix.texi (Invoking guix pull): Document it.
| Ludovic Courtès |
2020-06-16 | channels: Automatically add introduction for the official 'guix' channel....This is useful when people run "guix time-machine -C channels.scm",
where 'channels.scm' misses channel introductions.
* guix/channels.scm (%default-channel-url): New variable.
(%default-channels): Use it.
(ensure-default-introduction): New procedure.
(latest-channel-instance): Call it.
| Ludovic Courtès |
2020-06-16 | channels: Make 'validate-pull' call right after clone/pull....This should come before patching, authentication, etc.
* guix/channels.scm (latest-channel-instance): Add #:validate-pull
parameter and honor it. Return a single value: the instance.
(ensure-forward-channel-update): Change 'instance' parameter to 'commit'
and adjust accordingly.
(latest-channel-instances): Adjust to 'latest-channel-instance' changes.
* guix/scripts/pull.scm (warn-about-backward-updates): Change 'instance'
parameter to 'commit' and adjust accordingly.
* tests/channels.scm ("latest-channel-instances #:validate-pull"):
Likewise.
| Ludovic Courtès |
2020-06-16 | channels: 'latest-channel-instance' authenticates Git checkouts....Fixes <https://bugs.gnu.org/22883>.
* guix/channels.scm (<channel>)[introduction]: New field.
(<channel-introduction>): New record type.
(%guix-channel-introduction): New variable.
(%default-channels): Use it.
(<channel-metadata>)[keyring-reference]: New field.
(%default-keyring-reference): New variable.
(read-channel-metadata, read-channel-metadata-from-source): Initialize
the 'keyring-reference' field.
(commit-short-id, verify-introductory-commit)
(authenticate-channel): New procedures.
(latest-channel-instance): Call 'authenticate-channel' when CHANNEL has
an introduction.
* tests/channels.scm (gpg+git-available?, commit-id-string): New
procedures.
("authenticate-channel, wrong first commit signer"):
("authenticate-channel, .guix-authorizations"): New tests.
* doc/guix.texi (Invoking guix pull): Mention authentication.
| Ludovic Courtès |
2020-06-16 | tests: Move OpenPGP helpers to (guix tests gnupg)....* tests/git-authenticate.scm (key-id): Remove.
(%ed25519-public-key-file, %ed25519-secret-key-file)
(%ed25519bis-public-key-file, %ed25519bis-secret-key-file)
(read-openpgp-packet, key-fingerprint): Move to...
* guix/tests/gnupg.scm: ... here.
| Ludovic Courtès |
2020-06-16 | git-authenticate: 'authenticate-commits' takes a #:keyring parameter....* guix/git-authenticate.scm (authenticate-commits): Add #:keyring
parameter.
| Ludovic Courtès |
2020-06-16 | git-authenticate: Cache takes a key parameter....* guix/git-authenticate.scm (authenticated-commit-cache-file)
(cache-authenticated-commit, previously-authenticated-commits): Add
'key' parameter and honor it.
* build-aux/git-authenticate.scm (git-authenticate): Pass
"channels/guix" as the key.
| Ludovic Courtès |
2020-06-16 | build-system: cmake: Add substitutable keyword....* guix/build-system/cmake.scm (cmake-build, cmake-cross-build): Add
substitutable keyword.
| Efraim Flashner |
2020-06-16 | pack: Add zstd compressor....* guix/scripts/pack.scm (%compressors): Add zstd.
* doc/guix.texi (Invoking guix pack): Document it.
| Tobias Geerinckx-Rice |
2020-06-15 | ui: Use package-description-string....* guix/ui.scm (package->recutils): Use package-description-string instead of
package-description and P_.
| Arun Isaac |
2020-06-15 | ui: Do not translate package synopsis a second time....* guix/ui.scm (package->recutils): package-synopsis-string already returns a
translated string. Do not attempt to translate it again.
| Arun Isaac |
2020-06-15 | ui: Cut off search early if any regexp does not match....* guix/ui.scm (relevance): When one of the regexps does not match, cut off
early and return 0. Do not try to match the remaining regexps.
| Arun Isaac |
2020-06-15 | ci: Add build-products id field and export accessors....* guix/ci.scm (build-product?, build-product-id,
build-product-type, build-product-file-size,
build-product-path): Export them,
[id]: new field.
| Mathieu Othacehe |
2020-06-15 | ci: Add status option to "latest-builds"....* guix/ci.scm (latest-builds): Add "status" option.
| Mathieu Othacehe |
2020-06-15 | download: Remove usa-mirror.go-parts.com mirror....It incorrectly redirects 404s (at least) to the commercial home page.
* guix/download.scm (%mirrors): Remove usa-mirror.go-parts.com URLs.
| Tobias Geerinckx-Rice |
2020-06-15 | ci: Fix buildproducts reading....This is a follow-up of 4e05bbb093a17145fcabd48ea1d2c9cd7559084d.
* guix/ci.scm (<build>)[products]: Test for vector type, as products can be
"null".
| Mathieu Othacehe |
2020-06-15 | ci: Add job option to "latest-builds"....* guix/ci.scm (latest-builds): Add "job" option.
| Mathieu Othacehe |
2020-06-15 | ci: Add build products support....* guix/ci.scm (<build-product>): New json mapping,
(<build)[products]: new field.
| Mathieu Othacehe |
2020-06-14 | guix repl: Add script execution....* guix/scripts/repl.scm: Add filename options for script execution.
* doc/guix.texi (Invoking guix repl): Document it.
* tests/guix-repl.sh: Test it.
* Makefile.am: (SH_TESTS): Add it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Konrad Hinsen |
2020-06-14 | scripts: system: Fix "init" command....This is a follow-up of 7ca533c7237622d70b423033c4506217d9ce4014. The
introduced "target" variable is shadowing the target argument.
* guix/scripts/system.scm (perform-action): Rename "target" variable to
"target*".
| Mathieu Othacehe |
2020-06-14 | lint: Add 'check-for-collisions' checker....Suggested by Edouard Klein <edk@beaver-labs.com>.
* guix/profiles.scm (check-for-collisions): Export.
* guix/lint.scm (check-profile-collisions): New procedure.
(%local-checkers): Add 'profile-collisions' checker.
* tests/lint.scm ("profile-collisions: no warnings")
("profile-collisions: propagated inputs collide")
("profile-collisions: propagated inputs collide, store items"): New tests.
* doc/guix.texi (Invoking guix lint): Document it.
| Ludovic Courtès |
2020-06-14 | profiles: Fix pathological performance of 'manifest-transitive-entries'....For packages with lots of propagated inputs,
'manifest-transitive-entries', as called from 'check-for-collisions',
would exhibit pathological behavior. For example, "guix install cl-ana"
wouldn't complete in 1mn; now, it's down to 20s.
The issue was that manifest entries would never be 'equal?' due to the
delayed field in <manifest-entry>.
* guix/profiles.scm (manifest-transitive-entries): Use a vhash instead
of a set. Use 'manifest-entry=?' instead of 'equal?' when checking for
equality.
| Ludovic Courtès |
2020-06-14 | ui: Set 'LESS' environment variable unconditionally....Fixes <https://bugs.gnu.org/41811>.
Reported by Lars-Dominik Braun <lars@6xq.net>.
* guix/ui.scm (call-with-paginated-output-port): Remove (getenv "LESS")
call.
| Ludovic Courtès |
2020-06-13 | Merge branch 'staging' | Marius Bakke |
2020-06-13 | image: Make 'find-image' non-monadic....* gnu/system/image.scm (find-image): Make non-monadic. Add 'target'
parameter.
* gnu/tests/install.scm (run-install): Update caller,
passing (%current-target-system).
* guix/scripts/system.scm (perform-action): Likewise.
| Jan (janneke) Nieuwenhuizen |
2020-06-13 | guix: Update to Bioconductor 3.11....* guix/build-system/r.scm (bioconductor-uri): Use new URL.
* guix/import/cran.scm (%bioconductor-version): Update to 3.11.
| Ricardo Wurmus |
2020-06-12 | lint: check-patch-file-names: Use origin-actual-file-name....This avoids crashes for the patch-file-names checker where a <origin> is used
for a patch, but without a value for the file-name field. This is currently
the case with the bash package.
* guix/lint.scm (check-patch-file-names): Change origin-file-name to
origin-actual-file-name.
| Christopher Baines |