Commit graph

66370 commits

Author SHA1 Message Date
Ludovic Courtès
8eeeedcb35
tests: Remove one 'delete-paths' call in 'tests/store.scm'.
This makes the test slightly less expensive.

* tests/store.scm ("add-text-to-store vs. delete-paths")
("add-to-store vs. delete-paths"): Delete and merge into...
("add-text-to-store/add-to-store vs. delete-paths"): ... this test.
2020-09-14 15:42:56 +02:00
Ludovic Courtès
7d516c17da
authenticate: Cache the ACL and key pairs.
In practice we're always using the same key pair,
/etc/guix/signing-key.{pub,sec}.  Keeping them in cache allows us to
avoid redundant I/O and parsing when signing multiple store items in a
row.

* guix/scripts/authenticate.scm (load-key-pair): New procedure.
(sign-with-key): Remove 'key-file' parameter and add 'public-key' and
'secret-key'.  Adjust accordingly.
(validate-signature): Add 'acl' parameter and pass it to
'authorized-key?'.
(guix-authenticate)[call-with-reply]: New procedure.
[with-reply]: New macro.
Call 'current-acl' upfront and cache its result.  Add 'key-pairs' as an
argument to 'loop' and use it as a cache of key pairs.
2020-09-14 15:42:55 +02:00
Ludovic Courtès
64cf660f87
daemon: Spawn 'guix authenticate' once for all.
Previously, we'd spawn 'guix authenticate' once for each item that has
to be signed (when exporting) or authenticated (when importing).  Now,
we spawn it once for all and then follow a request/reply protocol.  This
reduces the wall-clock time of:

  guix archive --export -r $(guix build coreutils -d)

from 30s to 2s.

* guix/scripts/authenticate.scm (sign-with-key): Return the signature
instead of displaying it.  Raise a &formatted-message instead of calling
'leave'.
(validate-signature): Likewise.
(read-command): New procedure.
(define-enumerate-type, reply-code): New macros.
(guix-authenticate)[send-reply]: New procedure.
Change to read commands from current-input-port.
* nix/libstore/local-store.cc (runAuthenticationProgram): Remove.
(authenticationAgent, readInteger, readAuthenticateReply): New
functions.
(signHash, verifySignature): Rewrite in terms of the agent.
* tests/store.scm ("import not signed"): Remove 'pk' call.
("import signed by unauthorized key"): Check the error message of C.
* tests/guix-authenticate.sh: Rewrite using the new protocol.

fixlet
2020-09-14 15:42:55 +02:00
Ludovic Courtès
ee9dff34f9
daemon: Move 'Agent' to libutil.
* nix/libstore/build.cc (DerivationGoal::tryBuildHook): Add "offload" to
'args' and pass settings.guixProgram as the first argument to
Agent::Agent.
(pathNullDevice, commonChildInit, Agent, Agent::Agent)
(Agent::~Agent): Move to...
* nix/libutil/util.cc: ... here.
* nix/libutil/util.hh (struct Agent, commonChildInit): New
declarations.
2020-09-14 15:42:55 +02:00
Ludovic Courtès
27cc51c269
daemon: Isolate signing and signature verification functions.
* nix/libstore/local-store.cc (signHash, verifySignature): New
functions.
(LocalStore::exportPath): Use 'signHash' instead of inline code.
(LocalStore::importPath): Use 'verifySignature' instead of inline code.
2020-09-14 15:42:55 +02:00
Ludovic Courtès
7809071c82
daemon: Generalize 'HookInstance' to 'Agent'.
* nix/libstore/build.cc (HookInstance): Rename to...
(Agent): ... this.  Rename 'toHook' and 'fromHook' similarly and update
users.  Change constructor to require a command and an argument list.
(DerivationGoal::tryBuildHook): Pass arguments to the 'Agent'
constructor.
2020-09-14 15:42:55 +02:00
Paul Garlick
735808b12c
guix: Fix download-svn-to-store.
* guix/svn-download.scm (download-svn-to-store): Add a subdirectory to
the download path.  The subdirectory is used as the target for the 'svn
export' command, avoiding a 'directory exists' error when attempting to
use the parent directory directly.
2020-09-14 14:24:29 +01:00
Mathieu Othacehe
bc5dcd9ef5
gnu: cuirass: Update to 0.0.1-45.cf11b73.
* gnu/packages/ci.scm (cuirass): Update to 0.0.1-45.cf11b73.
2020-09-14 14:43:33 +02:00
Stefan
8c4f1aa85f
gnu: grub: Support loading files from TFTP if the root filesystem is NFS.
* gnu/bootloader/grub.scm (grub-root-search): Set the root to "(tftp)" if
the searched-for file is stored on NFS.
2020-09-14 14:25:04 +02:00
Ricardo Wurmus
f6807498be
gnu: Add altermime.
* gnu/packages/mail.scm (altermime): New variable.
2020-09-14 13:17:46 +02:00
zimoun
c22c6de453
gnu: rapicorn: Use pandoc instead of ghc-pandoc.
* gnu/packages/graphics.scm (rapicorn)[native-inputs]: Replace ghc-pandoc with
pandoc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:27 +02:00
zimoun
885332832c
gnu: ganeti: Use pandoc instead of ghc-pandoc.
* gnu/packages/text-editors.scm (ganeti)[native-inputs]: Replace ghc-pandoc
with pandoc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:27 +02:00
zimoun
5dc5a3116b
gnu: manuskript: Use pandoc instead of ghc-pandoc.
* gnu/packages/text-editors.scm (manuskript)[inputs]: Replace ghc-pandoc with
pandoc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
zimoun
991c61678b
gnu: emacs-org-web-tools: Use pandoc instead of ghc-pandoc.
* gnu/packages/emacs-xyz.scm (emacs-org-webtools)[inputs]: Replace ghc-pandoc
with pandoc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
zimoun
d37279ee1e
gnu: emacs-ox-pandoc: Use pandoc instead of ghc-pandoc.
* gnu/packages/emacs-xyz.scm (emacs-ox-pandoc)[inputs]: Replace ghc-pandoc
with pandoc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
zimoun
8cc8e584ab
gnu: ruby-pandoc-ruby: Use pandoc instead of ghc-pandoc.
* gnu/packages/ruby.scm (ruby-pandoc-ruby)[native-inputs]: Replace ghc-pandoc
with pandoc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
Christopher Baines
2932591b8a
database: register-items: reduce transaction scope.
It was made transactional in a4678c6ba1, with
the reasoning to prevent broken intermediate states from being visible. I
think this means something like an entry being in ValidPaths, but the Refs not
being inserted.

Using a transaction for this makes sense, but I think using one single
transaction for the whole register-items call is unnecessary to avoid broken
states from being visible, and could block other writes to the store database
while register-items is running. Because the deduplication and resetting
timestamps happens within the transaction as well, even though these things
don't involve the database, writes to the database will still be blocked while
this is happening.

To reduce the potential for register-items to block other writers to the
database for extended periods, this commit moves the transaction to just wrap
the call to sqlite-register. This is the one place where writes occur, so that
should prevent the broken intermediate states issue above. The one difference
this will make is some of the registered items will be visible to other
connections while others may be still being added. I think this is OK, as it's
equivalent to just registering different items.

* guix/store/database.scm (register-items): Reduce transaction scope.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02:00
Caleb Ristvedt
a05c31ab30
database: document extra registration requirements.
It's necessary that store items be locked and protected from garbage
collection while they are being registered.  This documents that.

* guix/store/database.scm (register-path, register-items): document GC
  protection and locking requirements.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-14 10:51:26 +02: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
Pierre Neidhardt
24244f3fbf
gnu: python-wrapper: Mention pip in description.
* gnu/packages/python.scm (python-wrapper)[description]: Mention that `pip'
won't work properly if both python and python-wrapper are installed.
2020-09-14 10:35:05 +02:00
Danny Milosavljevic
2be5c2652a
build-system: linux-module: Delete some huge items that we probably don't need.
* guix/build-system/linux-module.scm (make-linux-module-builder): Delete
some huge items that we probably don't need.
2020-09-14 10:15:43 +02:00
Efraim Flashner
f165f7c9cb
gnu: sxiv: Use 'cc-for-target'.
* gnu/packages/image-viewers.scm (sxiv)[arguments]: Replace hard-coded
gcc substitution with cc-for-target in make-flags.
2020-09-14 10:30:42 +03:00
Efraim Flashner
858bb37a1d
gnu: sxiv: Install icons.
* gnu/packages/image-viewers.scm (sxiv)[arguments]: Add custom phase to
install icons.
2020-09-14 10:27:46 +03:00
Efraim Flashner
d67a3beb52
gnu: sxiv: Install desktop file.
* gnu/packages/image-viewers.scm (sxiv)[arguments]: Add custom
'install-desktop-file phase to install desktop file.
2020-09-14 10:25:34 +03:00
Gabriel Arazas
e641a95694
gnu: rofi: Update to 1.6.0.
* gnu/packages/xdisorg.scm (rofi): Update to 1.6.0.
[inputs]: Add libjpeg-turbo.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2020-09-14 10:08:24 +03:00
Robin Green
1042d269a7
gnu: Update coq and its dependents
* gnu/packages/coq.scm (coq): Update to 8.11.2
(coq-flocq): Update to 3.3.1
(coq-gappa): Update to 1.4.4
(coq-mathcomp): Update to 1.11.0
(coq-coquelicot): Update to 3.1.0
(coq-bignums): Update to 8.11.0
(coq-interval): Update to 4.0.0
(coq-equations): Update to 1.2.3

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-09-14 01:55:52 +02:00
Tobias Geerinckx-Rice
2cae49f9c9
gnu: youtube-dl: Update to 2020.09.14.
* gnu/packages/video.scm (youtube-dl): Update to 2020.09.14.
2020-09-14 00:55:34 +02:00
Tobias Geerinckx-Rice
d392226f4a
gnu: python-ansi2html: Fix typo in description.
* gnu/packages/python-xyz.scm (python-ansi2html)[description]: Fix typo.
2020-09-14 00:23:01 +02:00
Tobias Geerinckx-Rice
61d02cecd9
gnu: wesnoth: Update to 1.14.14.
* gnu/packages/games.scm (wesnoth): Update to 1.14.14.
2020-09-14 00:23:01 +02:00
Tobias Geerinckx-Rice
1e58798bc4
gnu: jasper: Update to 2.0.20 [fixes CVE-2016-9398's revenge].
* gnu/packages/image.scm (jasper): Update to 2.0.20.
[arguments]: Skip tests of the now-disabled MIF image format.
2020-09-14 00:23:00 +02:00
Tobias Geerinckx-Rice
ce4a497b13
gnu: shellcheck: Update to 0.7.1.
* gnu/packages/haskell-apps.scm (shellcheck): Update to 0.7.1.
2020-09-14 00:23:00 +02:00
Tobias Geerinckx-Rice
33061f7bf1
gnu: bear: Update to 2.4.4.
* gnu/packages/build-tools.scm (bear): Update to 2.4.4.
2020-09-14 00:23:00 +02:00
Leo Prikler
43514b82e4
gnu: libhandy: Enable glade_catalog.
* gnu/packages/gnome.scm (libhandy)[configure-flags]: Add glade_catalog.
[inputs]: Add glade and libxml2.
(libhandy-0.0)[configure-flags]: Keep glade_catalog disabled.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:23 +02:00
Leo Prikler
88915958c0
gnu: glade: Add catalog and module search paths.
* gnu/packages/gnome.scm (glade3)[native-search-paths]: Add
GLADE_CATALOG_SEARCH_PATH and GLADE_MODULE_SEARCH_PATH.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:23 +02:00
Morgan Smith
227932991f
gnu: emacs-djvu: Add needed inputs
* gnu/packages/emacs-xyz.scm (emacs-djvu)[inputs, arguments]: New fields.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:23 +02:00
Timotej Lazar
11a962e653
services: certbot: Support registration without email.
* gnu/services/certbot.scm (certbot-configuration): Add default for the
email option.
(certbot-command): Pass email for registration only when specified.
* doc/guix.texi (Certificate Services): "mandatory"→"optional" email.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:23 +02:00
Greg Hogan
0f918908eb
gnu: fmt: Update to 7.0.3.
From 820d39a55a5673fffac70c919b8cc3b28d94f6e7 Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: Fri, 11 Sep 2020 10:53:20 +0000
Subject: [PATCH] gnu: fmt: Update to 7.0.3.

* gnu/packages/pretty-print.scm (fmt): Update to 7.0.3.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:23 +02:00
zimoun
0214d5dd84
gnu: gcc-toolchain: Reword description.
* gnu/packages/commencement.scm (make-gcc-toolchain)[description]: Reword.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:22 +02:00
zimoun
542c4707de
gnu: gccgo: Reword synopsis and description.
Fixes <https://bugs.gnu.org/43303>.
Reported by Jeffrey Walton <noloader@gmail.com>.

* gnu/packages/gcc.scm: (gccgo-4.9): Add synopsis and description

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:22 +02:00
zimoun
a4fe16ee41
gnu: libgccjit: Reword synopsis and description.
Fixes <https://bugs.gnu.org/43303>.
Reported by Jeffrey Walton <noloader@gmail.com>.

* gnu/packages/gcc.scm: (libgccjit)[synopsis,description]: Reword.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:22 +02:00
Alexandros Theodotou
66ce92ffe4
gnu: zrythm: Update to 0.8.911.
* gnu/packages/music.scm (zrythm): Update to 0.8.911.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:22 +02:00
Alexandros Theodotou
ae286b58c8
gnu: Add meson 0.55.1.
* gnu/packages/build-tools.scm (meson-0.55): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:22 +02:00
Alexandros Theodotou
fce852c458
gnu: libaudec: Update to 0.2.3.
* gnu/packages/audio.scm (libaudec): Update to 0.2.3.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:22 +02:00
Ludovic Courtès
978c9bc50d
gnu: libcyaml: Update to 1.1.0.
* gnu/packages/web.scm (libcyaml): Update to 1.1.0.
2020-09-13 23:34:22 +02:00
Tobias Geerinckx-Rice
71992a532d
services: Fix zram-device-service.
* gnu/services/linux.scm (<zram-device-configuration>): Fix typo.
2020-09-13 23:07:36 +02:00
Leo Famulari
898fbb60b2
gnu: Fix a crash in NTP and Chrony.
Fixes <https://bugs.gnu.org/43321>.

* gnu/packages/ntp.scm (ntp, chrony)[inputs]: Replace libcap with libcap/next.
2020-09-13 15:46:02 -04:00
Christopher Baines
1192ae9404
gnu: josm: Fix formatting and install more files.
This means that JOSM appears in the GNOME Shell menu.

* gnu/packages/geo.scm (josm)[source]: Replace tab character.
[arguments]: Reduce line length, and add install-share-directories phase.
2020-09-13 13:22:13 +01:00
Raghav Gururajan
a3f6f27bbc
gnu: profanity: Change build system.
* gnu/package/messaging.scm (profanity) [build-system]: Change from
gnu to glib-or-gtk.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-09-13 11:49:27 +02:00
Raghav Gururajan
d0e85b805e
gnu: profanity: Enable plugins, icons and clipboard.
* gnu/packages/messaging.scm (profanity) [arguments]<#:configure-flags>
[--enable-python-plugins]: New flag.
[--enable-plugins]: New flag.
[--enable-icons-and-clipboard]: New flag.
[--enable-icons]: Remove flag.
[inputs]: Add python-wrapper.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-09-13 11:48:09 +02:00