Age | Commit message (Expand) | Author |
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 |
2020-06-12 | git-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-12 | download: Add more apache mirrors....* guix/download.scm (%mirrors): Add more apache mirrors.
| Efraim Flashner |
2020-06-11 | guix: 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-11 | Merge branch 'master' into staging | Marius Bakke |
2020-06-11 | packages: '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-10 | database: 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-10 | database: 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-10 | database: 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-10 | database: 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-09 | import: stackage: Fix typo....* guix/import/stackage.scm (latest-lts-release): Fix spelling of ‘if’.
| Tobias Geerinckx-Rice |
2020-06-09 | import: stackage: Fix typo....* guix/import/stackage.scm (latest-lts-release): Fix spelling of "included".
| Marius Bakke |
2020-06-09 | store: 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-09 | git-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-09 | git: '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-08 | Merge branch 'master' into staging | Marius Bakke |
2020-06-08 | syscalls: set-thread-name, thread-name: Fix thinko....* guix/build/syscalls.scm (set-thread-name, thread-name): Oops, fix thinko.
| Jan (janneke) Nieuwenhuizen |
2020-06-08 | syscalls: 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-07 | git-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-07 | git: '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-06 | ui: '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-06 | utils: 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-06 | packages: 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-06 | grafts: 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-06 | Merge branch 'master' into staging | Marius Bakke |
2020-06-05 | git-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-05 | git-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-05 | git-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-05 | Add (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-02 | build-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-01 | combinators: 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-29 | Merge branch 'master' into staging | Marius Bakke |
2020-05-29 | size: Document that positional arguments can be store items....* guix/scripts/size.scm (show-help): Mention STORE-ITEM positional argument
alternative.
| Pierre Neidhardt |
2020-05-29 | syscalls: '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-29 | syscalls: 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-29 | quirks: 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-29 | utils: Add 'cc-for-target'....* guix/utils.scm (cc-for-target): New procedure.
| Marius Bakke |
2020-05-29 | image: 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-26 | Merge branch 'master' into staging | Marius Bakke |
2020-05-26 | Merge branch 'master' into staging | Marius Bakke |
2020-05-26 | Merge branch 'master' into staging | Marius Bakke |
2020-05-25 | compile: Do not optimize "gnu/tests/*"....* guix/build/compile.scm (optimization-options): Add "gnu/tests/" to
level 0.
| Ludovic Courtès |