summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2020-06-14guix 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-14scripts: 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-14lint: 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-14profiles: 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-14ui: 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-13Merge branch 'staging'Marius Bakke
2020-06-13image: 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-13guix: 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-12lint: 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
2020-06-12git-authenticate: Disallow SHA1 (and MD5) signatures....* guix/git-authenticate.scm (commit-signing-key): Add #:disallowed-hash-algorithms and honor it. (authenticate-commit)[recent-commit?]: New variable. Pass #:disallowed-hash-algorithms to 'commit-signing-key'. * tests/git-authenticate.scm ("signed commits, SHA1 signature"): New test. Ludovic Courtès
2020-06-12download: Add more apache mirrors....* guix/download.scm (%mirrors): Add more apache mirrors. Efraim Flashner
2020-06-11guix: lint: Support origins in check-patch-file-names....* guix/lint.scm (check-patch-file-names)[starts-with-package-name?]: New procedure, extracted from the existing logic. Using it, add a clause to the match-lambda to handle origin records. Chris Marusich
2020-06-11Merge branch 'master' into stagingMarius Bakke
2020-06-11packages: 'package-grafts' returns grafts for all the relevant outputs....Fixes <https://bugs.gnu.org/41796>. Reported by Jakub Kądziołka <kuba@kadziolka.net>. * guix/packages.scm (input-graft): Add 'output' parameter and honor it. Add OUTPUT to the cache key. (input-cross-graft): Likewise. (fold-bag-dependencies): Operate on inputs instead of nodes. Turn VISITED into a vhash instead of a set. Pass PROC HEAD and OUTPUT instead of just HEAD. (bag-grafts): Adjust accordingly. * tests/packages.scm ("package-grafts, dependency on several outputs"): New test. Ludovic Courtès
2020-06-10database: separate transaction-handling and retry-handling....Previously call-with-transaction would both retry when SQLITE_BUSY errors were thrown and do what its name suggested (start and rollback/commit a transaction). This changes it to do only what its name implies, which simplifies its implementation. Retrying is provided by the new call-with-SQLITE_BUSY-retrying procedure. * guix/store/database.scm (call-with-transaction): no longer restarts, new #:restartable? argument controls whether "begin" or "begin immediate" is used. (call-with-SQLITE_BUSY-retrying, call-with-retrying-transaction, call-with-retrying-savepoint): new procedures. (register-items): use call-with-retrying-transaction to preserve old behavior. * .dir-locals.el (call-with-retrying-transaction, call-with-retrying-savepoint): add indentation information. Caleb Ristvedt
2020-06-10database: ensure update-or-insert is run within a transaction...update-or-insert can break if an insert occurs between when it decides whether to update or insert and when it actually performs that operation. Putting the check and the update/insert operation in the same transaction ensures that the update/insert will only succeed if no other write has occurred in the middle. * guix/store/database.scm (call-with-savepoint): new procedure. (update-or-insert): use call-with-savepoint to ensure the read and the insert/update occur within the same transaction. Caleb Ristvedt
2020-06-10database: rewrite query procedures in terms of with-statement....Most of our queries would fail to finalize their statements properly if sqlite returned an error during their execution. This resolves that, and also makes them somewhat more concise as a side-effect. This also makes some small changes to improve certain queries where behavior was strange or overly verbose. * guix/store/database.scm (call-with-statement): new procedure. (with-statement): new macro. (last-insert-row-id, path-id, update-or-insert, add-references): rewrite to use with-statement. (update-or-insert): factor last-insert-row-id out of the end of both branches. (add-references): remove pointless last-insert-row-id call. * .dir-locals.el (with-statement): add indenting information. Caleb Ristvedt
2020-06-10database: work around guile-sqlite3 bug preventing statement reset...guile-sqlite3 provides statement caching, making it unnecessary for sqlite to keep re-preparing statements that are frequently used. Unfortunately it doesn't quite emulate the semantics of sqlite_finalize properly, because it doesn't cause a commit if the statement being finalized is the last "active" statement (see https://notabug.org/guile-sqlite3/guile-sqlite3/issues/12). We work around this by wrapping sqlite-finalize with our own version that ensures sqlite-reset is called, which does The Right Thing™. * guix/store/database.scm (sqlite-finalize): new procedure that shadows the sqlite-finalize from (sqlite3). Caleb Ristvedt
2020-06-09import: stackage: Fix typo....* guix/import/stackage.scm (latest-lts-release): Fix spelling of ‘if’. Tobias Geerinckx-Rice
2020-06-09import: stackage: Fix typo....* guix/import/stackage.scm (latest-lts-release): Fix spelling of "included". Marius Bakke
2020-06-09store: Use buffered I/O for all protocol writes...* guix/store.scm (run-gc) Use buffered output port. (export-path) Same. (add-file-tree-to-store) Same. (set-build-options): Same. Add explicit flush. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Lars-Dominik Braun
2020-06-09git-authenticate: 'commit-authorized-keys' properly handles orphan commits....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. Ludovic Courtès
2020-06-09git: 'commit-difference' really excludes the ancestors of #:excluded....* 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. Ludovic Courtès
2020-06-08Merge branch 'master' into stagingMarius Bakke
2020-06-08syscalls: set-thread-name, thread-name: Fix thinko....* guix/build/syscalls.scm (set-thread-name, thread-name): Oops, fix thinko. Jan (janneke) Nieuwenhuizen
2020-06-08syscalls: set-thread-name, thread-name: Stub for the Hurd....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. Jan (janneke) Nieuwenhuizen
2020-06-07git-authenticate: Prevent removal of '.guix-authorizations'....* 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. Ludovic Courtès
2020-06-07git: 'update-cached-checkout' gracefully handles missing starting commit....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. Ludovic Courtès
2020-06-06ui: 'display-search-results' automatically invokes the pager....* 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. Ludovic Courtès
2020-06-06utils: Add 'with-environment-variables'....* guix/tests/gnupg.scm (call-with-environment-variables) (with-environment-variables): Move to... * guix/utils.scm: ... here. * guix/tests/git.scm: Adjust accordingly. Ludovic Courtès
2020-06-06packages: Make 'bag-grafts' insensitive to '%current-target-system'....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. Ludovic Courtès
2020-06-06grafts: Improve performance for derivations with many inputs....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. Ludovic Courtès
2020-06-06Merge branch 'master' into stagingMarius Bakke
2020-06-05git-authenticate: Add tests....* 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}. Ludovic Courtès
2020-06-05git-authenticate: Raise proper SRFI-35 conditions....* 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. Ludovic Courtès
2020-06-05git-authenticate: Don't hard-code "origin/" for keyring reference....* guix/git-authenticate.scm (load-keyring-from-reference): Remove hard-coded "origin/". Use BRANCH-ALL instead of BRANCH-REMOTE. Ludovic Courtès
2020-06-05Add (guix git-authenticate)....* 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. Ludovic Courtès
2020-06-02build-system: linux-module: Allow passing #:make-flags argument....* 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> Danny Milosavljevic
2020-06-01combinators: Recurse fold2 to named let loop....* guix/combinators.scm (fold2): Recurse to named let loop, not fold2 itself. Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net> Arun Isaac
2020-05-29Merge branch 'master' into stagingMarius Bakke
2020-05-29size: Document that positional arguments can be store items....* guix/scripts/size.scm (show-help): Mention STORE-ITEM positional argument alternative. Pierre Neidhardt
2020-05-29syscalls: 'terminal-dimension' ignores EPERM....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. Ludovic Courtès
2020-05-29syscalls: Properly match %HOST-TYPE....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> Jesse Dowell
2020-05-29quirks: Build 'compute-guix-derivation' modules with 2.2 when needed....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. Ludovic Courtès
2020-05-29utils: Add 'cc-for-target'....* guix/utils.scm (cc-for-target): New procedure. Marius Bakke
2020-05-29image: Do not use VM to create disk-images....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. Mathieu Othacehe
2020-05-26Merge branch 'master' into stagingMarius Bakke
2020-05-26Merge branch 'master' into stagingMarius Bakke
2020-05-26Merge branch 'master' into stagingMarius Bakke
2020-05-25compile: Do not optimize "gnu/tests/*"....* guix/build/compile.scm (optimization-options): Add "gnu/tests/" to level 0. Ludovic Courtès