summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* git-authenticate: 'commit-authorized-keys' properly handles orphan commits.Ludovic Courtès2020-06-09
| | | | | | | | Previously it would trigger a wrong-number-of-arguments error for 'lset-intersection'. * guix/git-authenticate.scm (commit-authorized-keys): Add case for when 'commit-parents' returns the empty list.
* git: 'commit-difference' really excludes the ancestors of #:excluded.Ludovic Courtès2020-06-09
| | | | | | | * guix/git.scm (commit-difference): Initialize VISITED to the closure of OLD and EXCLUDED, as written in the docstring. * tests/git.scm ("commit-difference, excluded commits"): Adjust accordingly.
* syscalls: set-thread-name, thread-name: Fix thinko.Jan (janneke) Nieuwenhuizen2020-06-08
| | | | * guix/build/syscalls.scm (set-thread-name, thread-name): Oops, fix thinko.
* syscalls: set-thread-name, thread-name: Stub for the Hurd.Jan (janneke) Nieuwenhuizen2020-06-08
| | | | | | | | | | | | | | Avoid crash Backtrace: guix/build/syscalls.scm:405:8: In procedure prctl: Function not implemented because of missing prctl on the Hurd. * guix/build/syscalls.scm (set-thread-name, thread-name): Rename to ... (set-thread-name!/linux,thread-name/linux): ...this. (set-thread-name, thread-name): Swtich between linux implementation and or stub.
* git-authenticate: Prevent removal of '.guix-authorizations'.Ludovic Courtès2020-06-07
| | | | | | | | | | | * guix/git-authenticate.scm (commit-authorized-keys) [parents-have-authorizations-file?, assert-parents-lack-authorizations]: New procedures. Use the latter before returning DEFAULT-AUTHORIZATIONS. * guix/git.scm (false-if-git-not-found): Export. * guix/tests/git.scm (populate-git-repository): Add 'remove' clause. * tests/git-authenticate.scm ("signed commits, .guix-authorizations removed"): New test.
* git: 'update-cached-checkout' gracefully handles missing starting commit.Ludovic Courtès2020-06-07
| | | | | | | | | | Fixes <https://bugs.gnu.org/41604> Reported by John Soo <jsoo1@asu.edu> and zimoun <zimon.toutoune@gmail.com>. * guix/git.scm (false-if-git-not-found): New macro. (reference-available?): Use it. (update-cached-checkout): Use it when looking up STARTING-COMMIT. Set RELATION to 'unrelated when OLD is #false.
* ui: 'display-search-results' automatically invokes the pager.Ludovic Courtès2020-06-06
| | | | | | * guix/ui.scm (call-with-paginated-output-port): New procedure. (with-paginated-output-port): New macro. (display-search-results): Use it instead of displaying a hint.
* utils: Add 'with-environment-variables'.Ludovic Courtès2020-06-06
| | | | | | | * guix/tests/gnupg.scm (call-with-environment-variables) (with-environment-variables): Move to... * guix/utils.scm: ... here. * guix/tests/git.scm: Adjust accordingly.
* packages: Make 'bag-grafts' insensitive to '%current-target-system'.Ludovic Courtès2020-06-06
| | | | | | | | | | Fixes <https://bugs.gnu.org/41713>. Reported by Mathieu Othacehe. * guix/packages.scm (bag-grafts): Wrap 'fold-bag-dependencies' calls in 'parameterize'. * tests/packages.scm ("package->bag, sensitivity to %current-target-system"): New test.
* grafts: Improve performance for derivations with many inputs.Ludovic Courtès2020-06-06
| | | | | | | | | | | | | | | | | | | | | Partly fixes <https://bugs.gnu.org/41702>. Reported by Lars-Dominik Braun <ldb@leibniz-psychology.org>. Previously we'd potentially traverse the same sub-graph of DEPS several times. With this patch, command: guix environment --ad-hoc r-learnr --search-paths goes from 11.3s to 4.6s. * guix/grafts.scm (reference-origin): Rename to... (reference-origins): ... this. Change 'item' parameter to 'items'. [lookup-derivers]: New procedure. (cumulative-grafts)[dependency-grafts]: Change 'item' to 'items' and use 'reference-origins'. Remove 'mapm' around 'dependency-grafts' call.
* git-authenticate: Add tests.Ludovic Courtès2020-06-05
| | | | | | | | | | | | | * guix/tests/git.scm (call-with-environment-variables) (with-environment-variables): Remove. * guix/tests/git.scm (populate-git-repository): Add clauses for signed commits and signed merges. * guix/tests/gnupg.scm: New file. * tests/git-authenticate.scm: New file. * tests/ed25519bis.key, tests/ed25519bis.sec: New files. * Makefile.am (dist_noinst_DATA): Add 'guix/tests/gnupg.scm'. (SCM_TESTS): Add 'tests/git-authenticate.scm'. (EXTRA_DIST): Add tests/ed25519bis.{key,sec}.
* git-authenticate: Raise proper SRFI-35 conditions.Ludovic Courtès2020-06-05
| | | | | | | | * guix/git-authenticate.scm (&git-authentication-error) (&unsigned-commit-error, &unauthorized-commit-error) (&signature-verification-error, &missing-key-error): New condition types. (commit-signing-key, authenticate-commit): Raise them.
* git-authenticate: Don't hard-code "origin/" for keyring reference.Ludovic Courtès2020-06-05
| | | | | * guix/git-authenticate.scm (load-keyring-from-reference): Remove hard-coded "origin/". Use BRANCH-ALL instead of BRANCH-REMOTE.
* Add (guix git-authenticate).Ludovic Courtès2020-06-05
| | | | | | | | | | | | | | | | * build-aux/git-authenticate.scm (commit-signing-key) (read-authorizations, commit-authorized-keys, authenticate-commit) (load-keyring-from-blob, load-keyring-from-reference) (authenticate-commits, authenticated-commit-cache-file) (previously-authenticated-commits, cache-authenticated-commit): Remove. * build-aux/git-authenticate.scm (git-authenticate): Pass #:default-authorizations to 'authenticate-commits'. * guix/git-authenticate.scm: New file, with code taken from 'build-aux/git-authenticate.scm'. Remove references to '%historical-authorized-signing-keys' and add #:default-authorizations parameter instead. * Makefile.am (MODULES): Add it. (authenticate): Depend on guix/git-authenticate.go.
* build-system: linux-module: Allow passing #:make-flags argument.Danny Milosavljevic2020-06-02
| | | | | | | | * guix/build-system/linux-module.scm (linux-module-build): Add #:make-flags. (linux-module-build-cross): Add #:make-flags. * guix/build/linux-module-build-system.scm (install): Pass make-flags. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
* combinators: Recurse fold2 to named let loop.Arun Isaac2020-06-01
| | | | | | * guix/combinators.scm (fold2): Recurse to named let loop, not fold2 itself. Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net>
* size: Document that positional arguments can be store items.Pierre Neidhardt2020-05-29
| | | | | * guix/scripts/size.scm (show-help): Mention STORE-ITEM positional argument alternative.
* syscalls: 'terminal-dimension' ignores EPERM.Ludovic Courtès2020-05-29
| | | | | | | | Fixes <https://bugs.gnu.org/41581>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/build/syscalls.scm (terminal-dimension): Add EPERM to the list of errno code for FALL-BACK.
* syscalls: Properly match %HOST-TYPE.Jesse Dowell2020-05-29
| | | | | | | | | | | | Fixes <https://bugs.gnu.org/41546>. Regression introduced in 0d371c633f7308cfde2432d6119d386a5c63198c. * guix/build/syscalls.scm (write-socket-address!) (read-socket-address): Use 'string-contains' instead of 'string-suffix?'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* quirks: Build 'compute-guix-derivation' modules with 2.2 when needed.Ludovic Courtès2020-05-29
| | | | | | | | | Fixes <https://bugs.gnu.org/41595>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * guix/quirks.scm (requires-guile-2.2?): New procedure. (%quirks): Add it. (%bug-41214-patch): Comment.
* utils: Add 'cc-for-target'.Marius Bakke2020-05-29
| | | | * guix/utils.scm (cc-for-target): New procedure.
* image: Do not use VM to create disk-images.Mathieu Othacehe2020-05-29
| | | | | | | | | | | | | | | | Now that installing Grub on raw disk-images is supported, we do not need to rely on (gnu system vm) module. * gnu/system/image.scm (make-system-image): Rename to ... (system-image): ... this, and remove the compatibility wrapper. (find-image): Turn to a monadic procedure. This will become useful when introducing Hurd support, to be able to detect the target system. * gnu/ci.scm (qemu-jobs): Use lower-object now that system-image returns a file-like object. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Add a 'base-image' argument, (perform-action): adapt accordingly.
* compile: Do not optimize "gnu/tests/*".Ludovic Courtès2020-05-25
| | | | | * guix/build/compile.scm (optimization-options): Add "gnu/tests/" to level 0.
* gexp: The result of 'imported-files/derivation' is non-substitutable.Ludovic Courtès2020-05-25
| | | | | * guix/gexp.scm (imported-files/derivation): Pass #:substitutable? #f to 'gexp->derivation'.
* self: Optimize 'file-append*' for 'local-file?'.Ludovic Courtès2020-05-25
| | | | | * guix/self.scm (file-append*): Add 'local-file?' case. * guix/gexp.scm (local-file-select?): Export.
* gexp: Fix expansion for (file-append (local-file ...) ...).Ludovic Courtès2020-05-25
| | | | | | | | | Fixes <https://bugs.gnu.org/41527>. Regression introduced in d03001a31a6d460b712825640dba11e3f1a53a14. * guix/gexp.scm (lower+expand-object): When LOWERED is not a struct and EXPAND is true, call EXPAND. * tests/gexp.scm ("file-append, raw store item"): New test.
* pull: Protect against downgrade attacks.Ludovic Courtès2020-05-25
| | | | | | | | | | | * guix/scripts/pull.scm (%default-options): Add 'validate-pull'. (%options, show-help): Add '--allow-downgrades'. (warn-about-backward-updates): New procedure. (guix-pull): Pass #:current-channels and #:validate-pull to 'latest-channel-instances'. * guix/channels.scm (ensure-forward-channel-update): Add hint for when (channel-commit channel) is true. * doc/guix.texi (Invoking guix pull): Document '--allow-downgrades'.
* channels: 'latest-channel-instances' guards against non-forward updates.Ludovic Courtès2020-05-25
| | | | | | | | | | | | | | | * guix/channels.scm (latest-channel-instance): Add #:starting-commit and pass it to 'update-cached-checkout'. Return the commit relation as a second value. (ensure-forward-channel-update): New procedure. (latest-channel-instances): Add #:current-channels and #:validate-pull. [current-commit]: New procedure. Pass #:starting-commit to 'latest-channel-instance'. When the returned relation is true, call VALIDATE-PULL. (latest-channel-derivation): Add #:current-channels and #:validate-pull. Pass them to 'latest-channel-instances*'. * tests/channels.scm ("latest-channel-instances #:validate-pull"): New test.
* git: 'update-cached-checkout' returns the commit relation.Ludovic Courtès2020-05-25
| | | | | | | | | | | * guix/git.scm (update-cached-checkout): Add #:starting-commit parameter. Call 'commit-relation' when #:starting-commit is true. Always return the relation or #f as the third value. (latest-repository-commit): Adjust accordingly. * guix/import/opam.scm (get-opam-repository): Likewise. * tests/channels.scm ("latest-channel-instances includes channel dependencies") ("latest-channel-instances excludes duplicate channel dependencies"): Update mock of 'update-cached-checkout' accordingly.
* channels: 'latest-channel-instances' doesn't leak internal state.Ludovic Courtès2020-05-25
| | | | | * guix/channels.scm (latest-channel-instances): Remove 'previous-channels' argument. Introduce 'loop' and use it.
* git: Add 'commit-relation'.Ludovic Courtès2020-05-25
| | | | | * guix/git.scm (commit-relation): New procedure. * tests/git.scm ("commit-relation"): New test.
* guix package: Support multiple profiles with '--list-installed'.zimoun2020-05-23
| | | | | | | * guix/scripts/package.scm (process-query): List installed multiple profiles. * tests/guix-package-net.sh: Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* upstream: Use 'origin-hash'.Ludovic Courtès2020-05-22
| | | | | * guix/upstream.scm (update-package-source): Use 'origin-hash' instead of 'origin-sha256'.
* lint: archival: Use 'origin-hash'.Ludovic Courtès2020-05-22
| | | | | * guix/lint.scm (check-archival): Use 'origin-hash' instead of 'origin-sha256', removing hard-coded "sha256".
* packages: Introduce <content-hash> and use it in <origin>.Ludovic Courtès2020-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/packages.scm (<content-hash>): New record type. (define-content-hash-constructor, build-content-hash) (content-hash): New macros. (print-content-hash): New procedure. (<origin>): Rename constructor to '%origin'. [sha256]: Remove field. [hash]: New field. Adjust users. (origin-compatibility-helper, origin): New macros. (origin-sha256): New deprecated procedure. (origin->derivation): Adjust accordingly. * tests/packages.scm ("package-source-derivation, origin, sha512"): New test. * guix/tests.scm: Hide (gcrypt hash) 'sha256' for proper syntax matching. * tests/challenge.scm: Add #:prefix for (gcrypt hash) and adjust users. * tests/derivations.scm: Likewise. * tests/store.scm: Likewise. * tests/graph.scm ("bag DAG, including origins"): Provide 'sha256' field with the right length. * gnu/packages/aspell.scm (aspell-dictionary) (aspell-dict-ca, aspell-dict-it): Use 'hash' and 'content-hash' for proper syntax matching. * gnu/packages/bash.scm (bash-patch): Rename 'sha256' to 'sha256-bv'. * gnu/packages/bootstrap.scm (bootstrap-executable): Rename 'sha256' to 'bv'. * gnu/packages/readline.scm (readline-patch): Likewise. * gnu/packages/virtualization.scm (qemu-patch): Rename 'sha256' to 'sha256-bv'. * guix/import/utils.scm: Hide (gcrypt hash) 'sha256'.
* packages: Add 'base64' macro.Ludovic Courtès2020-05-22
| | | | | | * guix/packages.scm (define-compile-time-decoder): New macro. (base32): Redefine in terms of it. (base64): New macro.
* guix hash, guix download: Support base64 format.Ludovic Courtès2020-05-22
| | | | | | | | * guix/scripts/download.scm (show-help, %options): Support "base64" format. * guix/scripts/hash.scm (show-help, %options): Likewise. * tests/guix-hash.sh: Test it. * doc/guix.texi (Invoking guix hash): Document it.
* guix hash, guix download: Add '--hash'.Ludovic Courtès2020-05-22
| | | | | | | | | | | | * guix/scripts/download.scm (%default-options): Add 'hash-algorithm'. (show-help, %options): Add "--hash". (guix-download): Honor it. * guix/scripts/hash.scm (%default-options): Add 'hash-algorithm'. (show-help, %options): Add "--hash". (guix-hash): Honor it. * tests/guix-hash.sh: Test '-H sha512'. * doc/guix.texi (Invoking guix download): Document it. (Invoking guix hash): Document it.
* build: asdf-build-system: Use SBCL source in CL packages.Pierre Neidhardt2020-05-21
| | | | | | | | | | | * guix/build/asdf-build-system.scm (copy-files-to-output): Don't attempt to reset timestamps on files without write access. (install): When parent SBCL package is in the inputs, use its source. This way we get possibly patched sources in CL packages as well (e.g. for FFI). This is also useful for sources that generate files on load-op, like cl-unicode. * guix/build-system/asdf.scm (package-with-build-system): Forward the SBCL parent as a native input so that it can be used in the above install phase.
* publish: Improve performance by increasing buffer size.Ricardo Wurmus2020-05-19
| | | | * guix/scripts/publish.scm (http-write): Increase socket send buffer.
* build-system/guile: Expose #:scheme-file-regexp.Alex Sassmannshausen2020-05-18
| | | | | * guix/build-system/guile.scm (%scheme-file-regexp): New variable. (guile-build): Accept #:scheme-file-regexp and pass it on to builder.
* guix describe: Add '--list-formats'Ekaitz Zarraga2020-05-18
| | | | | | | | | * guix/scripts/describe.scm (%available-formats): New variable. (list-formats): New procedure. (%options, show-help): Add --list-formats * doc/guix.texi: Add --list-formats Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build: minify-build-system: Fail to install empty files.Efraim Flashner2020-05-18
| | | | | * guix/build/minify-build-system.scm (install): Produce an error if the minified file is zero bytes.
* utils: 'target-arm32?' & co. take an optional parameter.Ludovic Courtès2020-05-16
| | | | | * guix/utils.scm (target-arm32?, target-aarch64?) (target-arm?, target-64bit?): Make 'target' an optional parameter.
* gexp: Add 'let-system'.Ludovic Courtès2020-05-16
| | | | | | | | | | | | | | | * guix/gexp.scm (<system-binding>): New record type. (let-system): New macro. (system-binding-compiler): New procedure. (default-expander): Add 'self-quoting?' case. (self-quoting?): New procedure. (lower-inputs): Add 'filterm'. Pass the result of 'mapm/accumulate-builds' through FILTERM. (gexp->sexp)[self-quoting?]: Remove. * tests/gexp.scm ("let-system", "let-system, target") ("let-system, ungexp-native, target") ("let-system, nested"): New tests. * doc/guix.texi (G-Expressions): Document it.
* gexp: Compilers can now return lowerable objects.Ludovic Courtès2020-05-16
| | | | | | | * guix/gexp.scm (lower-object): Iterate if LOWERED is a struct. (lower+expand-object): New procedure. (gexp->sexp): Use it. (define-gexp-compiler): Adjust docstring.
* licenses: Update Zlib license URL.Ludovic Courtès2020-05-15
| | | | * guix/licenses.scm (zlib): Change URL.
* quirks: Add patch for <https://bugs.gnu.org/41214>.Ludovic Courtès2020-05-15
| | | | | | | Fixes <https://bugs.gnu.org/41214>. * guix/quirks.scm (%bug-41214-patch): New variable. (%patches): Add it.
* channels: 'build-from-source' restores '%guile-for-build'.Ludovic Courtès2020-05-15
| | | | | | | | | | | | | | | | | Not restoring it would cause problems when running: guix time-machine --commit=6298c3ffd9654d3231a6f25390b056483e8f407c or similar because the target Guix would be built with 2.2, and then we'd erroneously go on and attempt build the profile with 2.2. This would fail because profile dependencies such as "guile-gdbm-ffi" now target 3.0. * guix/channels.scm (call-with-guile): New procedure. (with-guile): New macro. (build-from-source): Use it instead of calling 'set-guile-for-build' just once. This ensures that '%guile-for-build' is restored afterwards.
* syscalls: Adjust 'sockaddr-in', 'sockaddr-in6' structs for the Hurd.Jan (janneke) Nieuwenhuizen2020-05-15
| | | | | | | | | | * guix/build/syscalls.scm (sockaddr-in,sockaddr-in6): Rename to ... (sockaddr-in/linux, sockaddr-in6/linux): ... this. Rename introduced bindings as well. (write-socket-address!/linux,read-socket-address/linux): Rename from (write-socket-address!, read-socket-address): ... new switches between those and ... (write-socket-address!/hurd, read-socket-address/hurd): ... these new function.