1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-05-28 20:12:11 +02:00
Commit Graph

109 Commits

Author SHA1 Message Date
Denis 'GNUtoo' Carikli db523cfaa8 dir-locals: Add copyrights.
The list was first generated in this way:
- I started with "git log --pretty='format:%h %ad %an <%ae>' origin/master \
  --date="format:%Y" -- .dir-locals.el".
- I took the name at the bottom and do a grep with it like that: "git log \
  --pretty='format:%h %ad %an <%ae>' origin/master --date="format:%Y" -- \
  .dir-locals.el | grep 'Ludovic Courtès'"
- I then filled in the copyright for that name
- I then repeat the first command with grep -v instead, like that:
  "git log --pretty='format:%h %ad %an <%ae>' origin/master \
   --date="format:%Y" -- .dir-locals.el | grep -v 'Ludovic Courtès'"

I also used "git log --pretty='format:%h %ad %an <%ae>' origin/master \
--date="format:%Y" --merges -- .dir-locals.el" to verify which commits I
should not take into account, when they didn't modify .dir-locals.el (I
checked that with git show <hash>).

For updating the names and/or email addresses being used I used git log
--author with either part of the name or the email (though it is easy to miss
things with this approach).

* .dir-locals.el: Add copyrights.

Change-Id: I010f1e5e3afc8b646da39dc6341f7870f0c9bf45
Reviewed-by: Tomas Volf <~@wolfsden.cz>
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-06 17:08:20 +01:00
David Elsing 30e51cb6b4 gexp: ‘with-parameters’ properly handles ‘%graft?’.
Fixes <https://issues.guix.gnu.org/75879>.

* .dir-locals.el (scheme-mode): Remove mparameterize indentation rules.
Add state-parameterize and store-parameterize indentation rules.
* etc/manifests/system-tests.scm (test-for-current-guix): Replace
mparameterize with store-parameterize.
* etc/manifests/time-travel.scm (guix-instance-compiler): Likewise.
* gnu/tests.scm (compile-system-test): Likewise.
* guix/gexp.scm (compile-parameterized): Use state-call-with-parameters.
* guix/monads.scm (mparameterize): Remove macro.
(state-call-with-parameters): New procedure.
(state-parameterize): New macro.
* guix/store.scm (store-parameterize): New macro.
* tests/gexp.scm ("with-parameters for %graft?"): New test.
* tests/monads.scm ("mparameterize"): Remove test.
("state-parameterize"): New test.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I0c74066ca3f37072815b073fb3039925488a9645
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-03-05 00:28:49 +01:00
Maxim Cournoyer fc3ae70520 .dir-locals.el: Have Magit recognize Change-Id git trailers.
* .dir-locals.el: Register the 'Change-Id' git trailer to the
GIT-COMMIT-TRAILERS Magit variable.

Change-Id: I45deafae39163c63d559e0d50e39ee0691533955
2025-02-22 23:55:24 +09:00
Tomas Volf 350be583d4 .dir-locals.el: Configure indentation for home-environment.
* .dir-locals.el (scheme-mode): Indent home-environment same as
operating-system.

Change-Id: Ie2cfa58f02d081c1e331c7d30beb77f0868f5cdd
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-29 15:45:18 +01:00
Nicolas Graves e602b799fb .dir-locals.el: Add tempel snippets.
Change-Id: Ic16f571f26fffee12e478e00c54be55e6eb90831
Signed-off-by: jgart <jgart@dismail.de>
2024-09-21 11:05:36 -05:00
Christopher Baines 3db1a8341c store: Add with-store/non-blocking.
For some applications, it's important to establish a non-blocking connection
rather than just making the socket non-blocking after the connection is
established. This is because there is I/O on the socket that will block during
the handshake.

I've noticed this blocking during the handshake causing issues in the build
coordinator for example.

This commit adds a new with-store variant to avoid changing the behaviour of
with-store/open-connection to ensure that this change can't break anything
that depends on the blocking nature of the socket.

* guix/store.scm (open-unix-domain-socket, open-inet-socket): Take
 #:non-blocking? and use SOCK_NONBLOCK when calling socket if appropriate.
(connect-to-daemon, open-connection, call-with-store): Take #:non-blocking?
and pass it on.
(with-store/non-blocking): New syntax rule.
* .dir-locals.el (scheme-mode): Add entry for with-store/non-blocking.

Change-Id: I8225762b78448bc1f7b698c8de5d736e13f577bf
2024-05-13 19:31:17 +01:00
Tomas Volf 9dce86b1cb .dir-locals: Configure indentation for swap-space.
* .dir-locals.el (scheme-mode): Indent swap-space same as file-system.

Change-Id: Id9f2cbd3c81343b479ab1e4df29c65f8b5bd739f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-13 16:31:34 +02:00
Christopher Baines b914fb9b70 store: database: Remove with-statement and associated code.
I think using dynamic-wind to finalize all statements is the wrong
approach. Firstly it would be good to allow reseting statements rather than
finalizing them. Then for the problem of handling errors, the approach I've
settled on in the build coordinator is to close the database connection, since
that'll trigger guile-sqlite3 to finalize all the cached statements.

This reverts commit 5d6e225528.

* .dir-locals.el (scheme-mode): Remove with-statement.
* guix/store/database.scm (call-with-statement): Remove procedure.
(with-statement): Remove syntax rule.
(call-with-transaction, last-insert-row-id, path-id, update-or-insert,
add-references): Don't use with-statement.

Change-Id: I2fd976b3f12ec8105cc56350933a953cf53647e8
2024-04-03 17:18:38 +01:00
Christopher Baines 22fa92cf28 store: database: Remove call-with-savepoint and associated code.
While care does need to be taken with making updates or inserts to the
ValidPaths table, I think that trying to ensure this within update-or-insert
is the wrong approach. Instead, when working with the store database, only one
connection should be used to make changes to the database and those changes
should happen in transactions that ideally begin immediately.

This reverts commit 37545de4a3.

* .dir-locals.el (scheme-mode): Remove entries for call-with-savepoint and
call-with-retrying-savepoint.
* guix/store/database.scm (call-with-savepoint, call-with-retrying-savepoint):
Remove procedures.
(update-or-insert): Remove use of call-with-savepoint.

Change-Id: I2f986e8623d8235a90c40d5f219c1292c1ab157b
2024-04-03 17:18:38 +01:00
Ludovic Courtès dd19f3c39d .dir-locals.el: Adjust indentation rule for ‘test-assertm’.
This reverts commit 92755c6352, which, at
the time, was correct for the 3-argument ‘test-assertm’ macro in
‘tests/pack.scm’ but incorrect for the 2-argument variant found in
other test files.

* .dir-locals.el: Decrease argument count for ‘test-assertm’.
2023-10-20 00:33:26 +02:00
Maxim Cournoyer fc1b4756e3 .dir-locals.el: Update bug-reference configuration and document it.
(nil) <bug-reference-url-format>: Update URL.  Add comment.
* doc/contributing.texi (The Perfect Setup): New "Viewing bugs within Emacs"
subsection.

Co-authored-by: Brian Cully <bjc@spork.org>
2023-09-17 16:42:03 -04:00
Maxim Cournoyer 65dcfb3f38 .dir-locals: Streamline Geiser configuration.
Geiser now has support locating the project root and adding it to the load
path without external help; leverage it.

* .dir-locals.el [nil]: Remove obsolete Geiser configuration.  Set the
geiser-repl-per-project-p variable to t.
* doc/contributing.texi (The Perfect Setup): No longer mention explicitly
setting the geiser-guile-load-path; instead mention the effect of the
.dir-locals.el file.

Reported-by: Wolf <wolf@wolfsden.cz>
2023-09-06 14:16:22 -04:00
(unmatched-parenthesis ew syntax 4cd5293621 records: Add MATCH-RECORD-LAMBDA.
* guix/records.scm (match-record-lambda): New syntax.
* tests/records.scm ("match-record-lambda"): New test.

Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
2023-06-04 10:59:25 +02:00
(unmatched-parenthesis d e6dc1d3996 dir-locals: Fix MATCH-RECORD indentation.
* .dir-locals.el: Treat the fourth form onwards as the body, rather than
  the third onwards.

Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
2023-06-04 10:34:35 +02:00
Maxim Cournoyer d0b7858968 Revert gexp->derivation and computed-file indentation rules.
This reverts b1c25e2ce3 and partially reverts
82daab4281, which means the computed-file and
gexp->derivation procedures are now indented as normal procedures.

Rationale: see the discussion at
https://lists.gnu.org/archive/html/guix-devel/2023-03/msg00008.html.  In a
nutshell: the convention is to use special rules for special forms (macros),
not for procedures.

* .dir-locals.el (scheme-mode): Remove the special indentation rules for
the computed-file and gexp->derivation procedures.
2023-03-17 12:11:29 -04:00
Brian Cully cedf97ed6e .dir-locals.el: Allow Guix root-dir overrides when working via Tramp.
* .dir-localsl.el: Add only the local part of the root directory to the
guile search path. This lets you use Tramp to hack on a remote Guix
checkout.

Signed-off-by: Leo Famulari <leo@famulari.name>
2023-03-05 14:04:05 -05:00
Maxim Cournoyer 068971805a .dir-locals: Add let-keywords indentation rules.
* .dir-locals.el (scheme-mode): Add let-keywords indentation rules.
2023-02-19 21:13:22 -05:00
Maxim Cournoyer 92755c6352 .dir-locals.el: Adjust indentation rule for test-assertm.
* .dir-locals.el: Adjust the scheme-indent-function property for test-assertm,
so that the two first arguments (the test name and the store variable) are
indented as procedure arguments.
2023-02-02 23:51:38 -05:00
Maxim Cournoyer b1c25e2ce3 .dir-locals.el: Add indentation rule for computed-file.
* .dir-locals.el: Configure scheme-indent-function property for computed-file,
so that its first argument (the file name) is indented as a procedure
argument.
2023-02-02 23:51:28 -05:00
Andrew Tropin 39b8f85a6e .dir-locals.el: Update yas snippets directory.
* .dir-locals.el (eval): Update yas snippets directory.
2022-09-07 09:20:12 +03:00
Andrew Tropin 31b4eea5c0 .dir-locals.el: Add .go to completion-ignored-extensions.
* .dir-locals.el (eval): Add .go to completion-ignored-extensions.
2022-09-05 09:13:48 +03:00
Andrew Tropin 956a79b9b2 .dir-locals.el: Add guix yasnippets.
* .dir-locals.el (eval): Add guix yasnippets.
2022-09-05 09:10:05 +03:00
Ludovic Courtès 9fdc4b6c28 monads: Add 'mparameterize'.
* etc/system-tests.scm (mparameterize): Move to...
* guix/monads.scm (mparameterize): ... here.
* tests/monads.scm ("mparameterize"): New test.
* .dir-locals.el (c-mode): Add it.
2022-07-10 23:57:14 +02:00
Maxim Cournoyer c9fb789fe9 .dir-locals.el: Restore Emacs 27 lisp-fill-paragraph behavior.
* .dir-locals.el (scheme-mode): Set fill-paragraph-function to a
lisp-fill-paragraph version that matches that of Emacs 27.
2022-07-10 01:03:56 -04:00
Maxim Cournoyer b5e85191f9 .dir-locals.el: Properly indent 'wrap-script'.
* .dir-locals.el (scheme-mode): Indent 'wrap-script' the same way as
'wrap-program'.
2022-06-28 00:37:34 -04:00
Ludovic Courtès 6764455a4b .dir-locals: Adjust to bug-reference-mode in Emacs 28.
* .dir-locals.el: Adjust 'bug-reference-bug-regexp' and
'bug-reference-url-format' to Emacs 28.
2022-06-07 18:29:12 +02:00
Ludovic Courtès a8d3033da6 import: github: Reuse HTTP connection for the /tags URL fallback.
* guix/import/github.scm (fetch-releases-or-tags): Call
'open-connection-for-uri' and reuse the same connection for the two
'http-fetch' calls.
* .dir-locals.el (scheme-mode): Add 'call-with-port'.
2022-03-06 22:49:47 +01:00
Ludovic Courtès 049aefddb2 tests: Add (guix http-client) tests.
* tests/http-client.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* .dir-locals.el (scheme-mode): Add 'with-http-server'.
2022-03-06 22:49:46 +01:00
Liliana Marie Prikler 69218e84f1 .dir-locals.el: Don't mess up indentation of prepend and append.
The current version appears to assume special values in the first and second
package, but it's either all lists (default append) or all package input
expressions (inside modify-inputs), which themselves are either packages
or lists consisting of a package and a string.

* .dir-locals.el: Drop (eval . (put 'prepend 'scheme-indent-function 2))
and (eval . (put 'append 'scheme-indent-function 2)).
2022-01-29 08:47:38 +01:00
Marius Bakke c4133c43c7 Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/algebra.scm
	gnu/packages/games.scm
	gnu/packages/golang.scm
	gnu/packages/kerberos.scm
	gnu/packages/mail.scm
	gnu/packages/python.scm
	gnu/packages/ruby.scm
	gnu/packages/scheme.scm
	gnu/packages/tex.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
2021-08-12 00:30:27 +02:00
Maxim Cournoyer 6b9bebbb3d .dir-locals.el: Specify indentation rule for with-shepherd-action.
* .dir-locals.el (scheme-mode) <with-shepherd-action>: New indentation rule.
2021-08-02 14:16:22 -04:00
Ludovic Courtès 0e47fcced4 Merge branch 'master' into core-updates 2021-07-18 19:50:01 +02:00
Ludovic Courtès 04b2f3dd80 packages: Add 'modify-inputs'.
* guix/packages.scm (inputs-sans-labels, replace-input): New procedures.
(prepend, replace, modify-inputs): New macros.
* doc/guix.texi (Defining Package Variants): Document 'modify-inputs'.
* dir-locals.el: Add 'modify-inputs' and its keywords.
2021-07-11 00:49:14 +02:00
Maxim Cournoyer 82daab4281 pack: Add support for the deb format.
* .dir-locals.el (scheme-mode)[gexp->derivation]: Define indentation rule.
* guix/scripts/pack.scm (debian-archive): New procedure.
(%formats): Register the new deb format.
(show-formats): Add it to the usage string.
* tests/pack.scm (%ar-bootstrap): New variable.
(deb archive with symlinks): New test.
* doc/guix.texi (Invoking guix pack): Document it.
* NEWS: Add news entry.
2021-06-29 14:53:21 -04:00
Ludovic Courtès 7d873f194c build-system: Rewrite using gexps.
* guix/packages.scm (expand-input): Remove 'store', 'system', and
  'cross-system' parameters; add #:native?.  Rewrite to return
  name/gexp-input tuples.
  (bag->derivation): Adjust accordingly.  Lower (bag-build bag).
  (bag->cross-derivation): Ditto.  Instead of #:native-drvs and
  #:target-drvs, pass #:build-inputs, #:host-inputs, and #:target-inputs.
  (%derivation-cache): Remove.
* gnu/packages/bootstrap.scm (raw-build): Turn into a monadic procedure.
* gnu/packages/commencement.scm (glibc-final)[arguments]: Use
  'gexp-input' for the #:allowed-references argument.
* guix/build-system/cmake.scm (cmake-build): Remove 'store' parameter.
  Switch to the use of gexps and 'gexp->derivation'.
  (lower): Remove #:source from 'private-keywords'.
* guix/build-system/glib-or-gtk.scm (glib-or-gtk-build, lower):
  Likewise.
* guix/build-system/font.scm (font-build): Likewise.
* guix/build-system/gnu.scm (gnu-build): Likewise, and remove
  'canonicalize-reference'.
  (gnu-cross-build): Likewise, and expect #:build-inputs, #:host-inputs,
  and #:target-inputs instead of #:native-drvs and #:target-drvs.
  (lower): Likewise.
* guix/build-system/perl.scm (perl-build, lower): Likewise.
* guix/build-system/python.scm (python-build, lower): Likewise.
* guix/build-system/ruby.scm (ruby-build, lower): Likewise.
* guix/build-system/waf.scm (waf-build, lower): Likewise.
* guix/build-system/trivial.scm (guile-for-build): Remove.
  (trivial-build): Remove 'store' parameter, change to gexps.
  (trivial-cross-build): Ditto, and change to #:build-inputs & co.
* guix/build-system/cargo.scm (cargo-build): Change to 'gexp->derivation'.
* guix/build-system/copy.scm (copy-build): Likewise.
* guix/build-system/dune.scm (dune-build): Likewise.
* guix/build-system/guile.scm (guile-build, guile-cross-build):
  Likewise.
* guix/build-system/meson.scm (meson-build): Likewise.
* guix/build-system/ocaml.scm (ocaml-build): Likewise.
* guix/build-system/scons.scm (scons-build): Likewise.
* guix/build-system/texlive.scm (texlive-build): Likewise.
* guix/build-system/android-ndk.scm (android-ndk-build): Likewise.
* guix/build-system/ant.scm (ant-build): Likewise.
* guix/build-system/asdf.scm (asdf-build/source, asdf-build): Likewise.
* guix/build-system/chicken.scm (chicken-build): Likewise.
* guix/build-system/clojure.scm (clojure-build): Likewise.
(source->output-path, maybe-guile->guile): Remove.
* guix/build-system/dub.scm (dub-build): Likewise.
* guix/build-system/emacs.scm (emacs-build): Likewise.
* guix/build-system/go.scm (go-build): Likewise.
* guix/build-system/haskell.scm (haskell-build): Likewise.
* guix/build-system/julia.scm (julia-build): Likewise.
* guix/build-system/linux-module.scm (linux-module-build)
(linux-module-build-cross): Likewise.
* guix/build-system/maven.scm (maven-build): Likewise.
* guix/build-system/minify.scm (minify-build): Likewise.
* guix/build-system/node.scm (node-build): Likewise.
* guix/build-system/qt.scm (qt-build, qt-cross-build): Likewise.
* guix/build-system/r.scm (r-build): Likewise.
* guix/build-system/rakudo.scm (rakudo-build): Likewise.
* guix/build-system/renpy.scm (renpy-build): Likewise.
* tests/builders.scm ("gnu-build"): Call 'store-lower' on 'gnu-build'.
  Pass #:source parameter.
* tests/packages.scm ("search paths"): Use 'abort-to-prompt' instead of
  a normal return from the 'build' method.
  ("package->bag, sensitivity to %current-target-system"): Change 'build'
  to match the new build system signature.

squash! build-system: Rewrite using gexps.

squash! build-system: Rewrite using gexps.
2021-03-30 22:48:43 +02:00
Ludovic Courtès 1574bd82bb system: 'init' does not recompute the hash of each store item.
Fixes <https://bugs.gnu.org/44760>.

Previously, the 'register-path' call would re-traverse ITEM to compute
its nar hash, even though that hash is already known in the initial
store.  This patch also avoids repeated opening/closing of the
database.

* guix/store/database.scm (call-with-database): Export.
* guix/scripts/system.scm (copy-item): Add 'db' parameter.  Call
'sqlite-register' instead of 'register-path'.
(copy-closure): Remove redundant call to 'references*'.  Call
'call-with-database' and pass the database to 'copy-item'.
2020-12-15 17:32:11 +01:00
Maxim Cournoyer 129b9b16d9 Merge remote-tracking branch 'origin/version-1.2.0' into master
Conflicts:
	gnu/packages/bioinformatics.scm

The python-pysam package fixed in master was kept instead of the update done
in the version-1.2.0 branch.
2020-11-17 18:00:28 -05:00
Miguel Ángel Arruga Vivas 3428c66c5a .dir-locals.el: Add upstream report link.
Follow up from 1d6e7732b1.

* .dir-locals.el: Modify comment to point at the report to bug-gnu-emacs.
2020-11-16 21:48:30 +01:00
Christopher Lemmer Webber a895eace11 .dir-locals.el: Use setq-local on guix-directory.
* .dir-locals.el: Use setq-local on guix-directory.  While a problem with
using setq hasn't been identified, this seems like good hygiene.
2020-11-16 13:06:27 -05:00
Christopher Lemmer Webber 1d6e7732b1 .dir-locals.el: Prevent errors if .dir-locals.el isn't found.
While this repo should presumably always have a .dir-locals.el
by the nature of this file itself, it seems that this behavior "leaks".
See added comment for more details on the fix to this strange bug,
which is likely an upstream emacs or vc-mode issue.

Thanks to Miguel Ángel Arruga Vivas and Maxim Cournoyer for helping
investigate this problem.

* .dir-locals.el: Don't error out if .dir-locals.el isn't found.
2020-11-16 13:04:38 -05:00
Maxim Cournoyer 3de898b43c maint: update-guix-package: Optionally add sources to store.
Following discussions in <https://issues.guix.gnu.org/43893>, keeping a copy
of the updated package source is desirable when generating a release.

* build-aux/update-guix-package.scm (version-controlled?): Remove variable.
(call-with-temporary-git-worktree): Renamed from
'with-temporary-git-worktree'.  Update doc.  Do not change directory
implicitly.  Define as a procedure, not a syntax.
(keep-source-in-store): New procedure.
(main): Adjust to use with call-with-temporary-git-worktree.  Add the sources
to the store when GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT is set.  Exit gracefully
when FIND-ORIGIN-REMOTE returns #f.
(%savannah-guix-git-repo-push-url-regexp): Adjust match for a potential colon
separator.
* Makefile.am (GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT): Adjust.
* .dir-locals.el (scheme-mode): Remove entry for with-temporary-git-worktree.
* doc/contributing.texi (Updating the Guix Package): Update doc.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-11-12 09:23:27 -05:00
Miguel Ángel Arruga Vivas 96d0f0b138 .dir-locals.el: Require cl-lib at runtime.
* .dir-locals.el (nil)<Geiser>: Load cl-lib when needed.
2020-11-01 01:57:02 +01:00
Maxim Cournoyer 0e1b0958bd .dir-locals.el: Automatically set the GEISER-GUILE-LOAD-PATH variable.
Thanks to Miguel Ángel Arruga Vivas and Pierre Neidhardt for their suggestions
and improvements.

* .dir-locals.el: Set the GUIX-DIRECTORY and GEISER-GUILE-LOAD-PATH Emacs
variables based on the location of the .dir-locals file.
2020-10-31 00:12:30 -04:00
Maxim Cournoyer 5800d2aae2 maint: update-guix-package: Prevent accidentally breaking guix pull.
Fixes <https://issues.guix.gnu.org/43893>.

This changes the 'update-guix-package' tool so that it:

1. Always uses a clean checkout to compute the hash of the updated 'guix'
package.
2. Ensures the commit used in the updated 'guix' package definition has already
been pushed upstream.

* build-aux/update-guix-package.scm (%savannah-guix-git-repo-push-url): New
variable.
(with-input-pipe-to-string, with-temporary-git-worktree): New syntaxes.
(find-origin-remote, git-add-worktree): New procedures.
(commit-already-pushed?): New predicate.
(main): Check the commit used has already been pushed upstream and compute the
hash from a clean checkout.
* doc/contributing.texi (Updating the Guix Package): Document it.
* .dir-locals.el (scheme-mode): Fix indentation of with-temporary-git-worktree.
2020-10-19 14:02:53 -04:00
Caleb Ristvedt 14c422c12c deduplication: pass store directory to replace-with-link.
This causes with-writable-file to take into consideration the actual store
being used, as passed to 'deduplicate', rather than
whatever (%store-directory) may return.

* guix/store/deduplication.scm (replace-with-link): new keyword argument
  'store'.  Pass to with-writable-file.
  (with-writable-file, call-with-writable-file): new store argument.
  (deduplicate): pass store to replace-with-link.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
Caleb Ristvedt 1d40e6fdd1 .dir-locals.el: fix call-with-{retrying-}transaction indenting.
* .dir-locals.el (call-with-transaction, call-with-retrying-transaction):
  change scheme-indent-function property from 2 to 1.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
Ludovic Courtès 8d0e5c2655 .dir-locals.el: Add indentation rule for 'package/inherit'.
* .dir-locals.el (scheme-mode): Add 'package/inherit'.
2020-08-26 00:51:56 +02:00
Ludovic Courtès d52e16d3b6 deduplication: Use 'dynamic-wind' when changing permissions of the parent.
Suggested by Caleb Ristvedt <caleb.ristvedt@cune.org>.

* guix/store/deduplication.scm (call-with-writable-file): New procedure.
(with-writable-file): New macro.
(replace-with-link): Use it.
2020-06-25 12:29:22 +02:00
Ludovic Courtès 43badf261f 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.
2020-06-16 16:10:47 +02:00
Caleb Ristvedt 8971f626f2 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.
2020-06-10 21:54:35 -05:00