Commit Graph

85432 Commits

Author SHA1 Message Date
Ludovic Courtès 472a0e82a5
daemon: Do not deduplicate files smaller than 8 KiB.
Files smaller than 8 KiB typically represent ~70% of the entries in
/gnu/store/.links but only contribute to ~4% of the space savings
afforded by deduplication.

Not considering these files for deduplication speeds up file insertion
in the store and, more importantly, leaves 'removeUnusedLinks' with
fewer entries to traverse, thereby speeding it up proportionally.

Partly fixes <https://issues.guix.gnu.org/24937>.

* config-daemon.ac: Remove symlink hard link check and CAN_LINK_SYMLINK
definition.
* guix/store/deduplication.scm (%deduplication-minimum-size): New
variable.
(deduplicate)[loop]: Do not recurse when FILE's size is below
%DEDUPLICATION-MINIMUM-SIZE.
(dump-port): New procedure.
(dump-file/deduplicate)[hash]: Turn into...
[dump-and-compute-hash]: ... this thunk.
Call 'deduplicate' only when SIZE is greater than
%DEDUPLICATION-MINIMUM-SIZE; otherwise call 'dump-port'.
* nix/libstore/gc.cc (LocalStore::removeUnusedLinks): Drop files where
st.st_size < deduplicationMinSize.
* nix/libstore/local-store.hh (deduplicationMinSize): New declaration.
* nix/libstore/optimise-store.cc (deduplicationMinSize): New variable.
(LocalStore::optimisePath_): Return when PATH is a symlink or smaller
than 'deduplicationMinSize'.
* tests/derivations.scm ("identical files are deduplicated"): Produce
files bigger than %DEDUPLICATION-MINIMUM-SIZE.
* tests/nar.scm ("restore-file-set with directories (signed, valid)"):
Likewise.
* tests/store-deduplication.scm ("deduplicate, below %deduplication-minimum-size"):
New test.
("deduplicate", "deduplicate, ENOSPC"): Produce files bigger than
%DEDUPLICATION-MINIMUM-SIZE.
* tests/store.scm ("substitute, deduplication"): Likewise.
2021-11-16 14:34:28 +01:00
Ludovic Courtès f39397b210
tests: Factorize 'file=?'.
* guix/tests.scm (file=?): Add optional 'stat' parameter.  Add fast
patch comparing inode numbers.
* tests/gexp.scm ("imported-files with file-like objects"): Remove
'file=?' procedure and use the one from (guix tests).
2021-11-16 14:34:28 +01:00
Vivien Kraus b4b2bbf4fb
services: openssh: Collect all keys for all users.
Fixes <https://issues.guix.gnu.org/51487>

* gnu/services/ssh.scm (extend-openssh-authorized-keys): ensure that no key is forgotten.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-11-16 14:34:28 +01:00
Efraim Flashner b2f8186590
Revert "home-services: Demonadify 'on-first-login' handling."
This commit breaks building guix home
guix home: error: reference to invalid output 'out' of derivation \
    '/gnu/store/86zc4rijsswmfqnaq8rwixcxjl2zyl1c-on-first-login.drv'

This reverts commit 4dcec60fa6.
2021-11-16 15:31:07 +02:00
Jean-Baptiste Volatier 546f8537aa
gnu: Add julia-sundials-jull
* gnu/packages/julia-jll.scm (julia-sundials-jll): New variable.
* gnu/packages/maths.scm (sundials-julia): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-11-16 15:16:44 +02:00
Efraim Flashner e9a5fb7ad9
Revert "gnu: Add cl-https-everywhere."
With thanks to jlicht on IRC:
sbcl-package->cl-source-package assumes all inputs are packages
which isn't the case here.

This reverts commit e31d48d8db.
2021-11-16 15:06:54 +02:00
Efraim Flashner 11446953ba
gnu: julia-pycall: Update to 1.92.5.
* gnu/packages/julia-xyz.scm (julia-pycall): Update to 1.92.5.
2021-11-16 14:40:03 +02:00
Jean-Baptiste Volatier 3af351a7de
build-system/julia: Enable Julia Pkg to find installed packages.
Julia's built-in package manager (Pkg) looks for packages in
JULIA_DEPOT_PATH/packages/PACKAGENAME/XXXX, where XXXX is a string
encoding package UUID and SHA1 of files.  The link-depot phase creates
a link at the correct location to allow Pkg to find packages that were
already installed by Guix.

* guix/build/julia-build-system.scm (link-depot): New phase.
(%package-path): Modified package path from packages/ to loadpath/.
(project.toml->uuid): New procedure, retrive package uuid from TOML file.
(precompile, check): Adjust to the change in paths.
(%standard-phases): Add link-depot phase.
(julia-build): Add julia-package-uuid keyword.
* guix/build-system/julia.scm (julia-build): Also use the
julia-package-uuid keyword.
* gnu/packages/julia-jll.scm (julia-bzip2-jll, julia-cairo-jll,
julia-compilersupportlibraries-jll, julia-expat-jll, julia-ffmpeg-jll,
julia-fontconfig-jll, julia-freetype2-jll, julia-fribidi-jll,
julia-gettext-jll, julia-glib-jll, julia-gr-jll, julia-gumbo-jll,
julia-imagemagick-jll, julia-jllwrappers-jll, julia-jpegturbo-jll,
julia-lame-jll, julia-libass-jll, julia-libfdk-aac-jll,
julia-libffi-jll, julia-libgcrypt-jll, julia-libglvnd-jll,
julia-libgpg-error-jll, juli-libiconv-jll, julia-libmount-jll,
julia-libpng-jll, julia-libsass-jll, julia-libtiff-jll,
julia-libuuid-jll, julia-libvorbis-jll, julia-lzo-jll,
julia-mbedtls-jll, julia-ogg-jll, julia-openspecfun-jll,
julia-openssl-jll, julia-opus-jll, julia-pcre-jll, julia-pixman-jll,
julia-qt5base-jll, julia-wayland-jll, julia-wayland-protocols-jll,
julia-x264-jll, julia-x265-jll, julia-xkbcommon-jll, julia-xml2-jll,
julia-xorg-libpthread-stubs-jll, julia-xorg-libx11-jll,
julia-xorg-libxau-jll, julia-xorg-libxcb-jll, julia-xorg-libxcursor-jll,
julia-xorg-libxdmcp-jll, julia-xorg-libxext-jll,
julia-xorg-libxfixes-jll, julia-xorg-libxi-jll,
julia-xorg-libxinerama-jll, julia-xorg-libxkbfile-jll,
julia-xorg-libxrandr-jll, julia-xorg-libxrender-jll,
julia-xorg-xcb-util-jll, julia-xorg-xcb-util-keysyms-jll,
julia-xorg-xcb-util-renderutil-jll, julia-xorg-xcb-util-wm-jll,
julia-xorg-xkbcomp-jll, julia-xorg-xkeyboard-config-jll,
julia-xorg-xtrans-jll, julia-xslt-jll, julia-zlib-jll, julia-zstd-jll)
[argument]: Adjust the order of the phases to the change in the
julia-build-system.
* gnu/packages/julia-xyz.scm (julia-bufferedstreams, julia-calculus,
julia-dataframes, julia-datavalues, julia-distances, julia-documenter,
julia-dualnumbers, julia-ellipsisnotation, julia-expronicon,
julia-fileio, julia-fixedpointnumbers, julia-functionwrappers,
julia-fuzzycompletions, julia-genericlinearalgebra, julia-genericschur,
julia-geometrybasics, julia-imagemagick, julia-infinity,
julia-matrixfactorizations, julia-media, julia-missings, julia-nnlib,
julia-optimtestproblems, julia-orderedcollections, julia-prettytables,
julia-pycall, julia-quadmath, julia-safetests, julia-stackviews)
[arguments]: Correct paths to reflect change of %package-path modify
order of phases as link-depot needs to run on an unmodified src
directory add package-name-uuid keyword argument to packages without
Project.toml file.
* gnu/packages/julia.scm (julia)[native-search-paths]: Correct paths to
reflect change of %package-path modify order of phases as link-depot
needs to run on an unmodified src directory.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-11-16 14:39:51 +02:00
Pierre Neidhardt e31d48d8db
gnu: Add cl-https-everywhere.
* gnu/packages/lisp-xyz.scm (cl-https-everywhere, sbcl-cl-https-everywhere):
New variables.
2021-11-16 12:51:45 +01:00
Pierre Neidhardt 2d55463053
gnu: Add vernacular.
* gnu/packages/lisp-xyz.scm (cl-vernacular, sbcl-vernacular): New variables.
2021-11-16 12:51:45 +01:00
Pierre Neidhardt f1dd327996
gnu: Add fxml.
* gnu/packages/lisp-xyz.scm (cl-fxml, sbcl-fxml): New variables.
2021-11-16 12:51:45 +01:00
Pierre Neidhardt 3ddfe4c1a0
gnu: Add xpath.
* gnu/packages/lisp-xyz.scm (cl-xpath, sbcl-xpath): New variables.
2021-11-16 12:51:45 +01:00
Pierre Neidhardt e37bb39971
gnu: Add overlord.
* gnu/packages/lisp-xyz.scm (cl-overlord, sbcl-overlord): New variables.
2021-11-16 12:51:45 +01:00
Pierre Neidhardt 3f6953b54e
gnu: Add cxml-rng.
* gnu/packages/lisp-xyz.scm (cl-cxml-rng, sbcl-cxml-rng): New variables.
2021-11-16 12:51:45 +01:00
Pierre Neidhardt d0c3efb78a
gnu: Add bit-smasher.
* gnu/packages/lisp-xyz.scm (cl-bit-smasher, ecl-bit-smasher, sbcl-bit-smasher): New variables.
2021-11-16 12:51:44 +01:00
Pierre Neidhardt de28e45e0f
gnu: Add cl-base58.
* gnu/packages/lisp-xyz.scm (cl-base58, ecl-cl-base58, sbcl-cl-base58): New variables.
2021-11-16 12:51:44 +01:00
Pierre Neidhardt 6366aaf7cc
gnu: Add exit-hooks.
* gnu/packages/lisp-xyz.scm (cl-exit-hooks, ecl-exit-hooks, sbcl-exit-hooks):
New variables.
2021-11-16 12:47:00 +01:00
Pierre Neidhardt 462bb6cca8
gnu: Add cl-strftime.
* gnu/packages/lisp-xyz.scm (cl-strftime, ecl-cl-strftime, sbcl-cl-strftime):
New variables.
2021-11-16 12:46:59 +01:00
Pierre Neidhardt 342f3de742
gnu: Add sbcl-cl-tld.
* gnu/packages/lisp-xyz.scm (sbcl-cl-tld): New variable.
2021-11-16 12:46:59 +01:00
Pierre Neidhardt 66cfc6ad12
gnu: sbcl-cl-webkit: Update to 3.2.0.
* gnu/packages/lisp-xyz.scm (sbcl-cl-webkit): Update to 3.2.0.
2021-11-16 12:46:59 +01:00
Pierre Neidhardt 95a0f249ab
gnu: sbcl-cmd: Update to 20211009.
* gnu/packages/lisp-xyz.scm (sbcl-cmd): Update to 20211009.
2021-11-16 12:46:59 +01:00
Tobias Geerinckx-Rice 122396075f
services: cups: Update default timeouts.
Upstream raised these back in 2019 with CUPS 2.3.0.

* gnu/services/cups.scm (<cups-configuration>): Raise default
‘multiple-operation-timeout’ and ‘timeout’ from 300 to 900 seconds.
* doc/guix.texi (Printing Services): Adjust accordingly.
2021-11-16 01:15:04 +01:00
Tobias Geerinckx-Rice 58649b8747
doc: Remove obsolete example module import.
This follows up on commit a247f5c753.

* doc/guix.texi (X Window): Remove unused (srfi srfi-1) from
the modify-services example.
2021-11-16 01:15:04 +01:00
Christopher Baines db5907138c
gnu: guix-build-coordinator: Update to 0-37.200ffe7.
* gnu/packages/package-management.scm (guix-build-coordinator): Update to
0-37.200ffe7.
2021-11-15 21:49:21 +00:00
Jelle Licht 63915955e2
gnu: libuv-for-node: Update to 1.42.0.
* gnu/packages/libevent.scm (libuv-for-node): Update to 1.42.0.
2021-11-15 22:43:24 +01:00
Jelle Licht f3cd70ff8c
gnu: node-lts: Update to 14.18.1 [security fixes].
* gnu/packages/node.scm (node-lts): Update to 14.18.1.
[native-inputs]: Replace c-ares with c-ares-for-node.
[inputs]: Replace c-ares with c-ares-for-node.

Includes fixes for CVE-2021-22918, CVE-2021-22930, CVE-2021-22931,
CVE-2021-22939, and CVE-2021-22940.
2021-11-15 22:43:24 +01:00
Jelle Licht cae7c3f389
gnu: llhttp-bootstrap: Update to 2.1.4 [security-fixes].
* gnu/packages/node.scm (llhttp-bootstrap): Update to 2.1.4.

Includes fixes for CVE-2021-22959 and CVE-2021-22960.
2021-11-15 22:43:23 +01:00
Jelle Licht ecbf59abad
gnu: Add c-ares-for-node.
* gnu/packages/adns.scm (c-ares-for-node): New variable.

Co-authored-by: Marius Bakke <marius@gnu.org>
2021-11-15 22:43:23 +01:00
Jelle Licht a69076e792
gnu: node: Add cpe-name.
* gnu/packages/node.scm (node)[properties]: Add cpe-name.
2021-11-15 22:43:23 +01:00
Lenny Händler 847f2ae859
gnu: taskwarrior: Update to 2.6.1.
* gnu/packages/task-management.scm (taskwarrior): Update to 2.6.1.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2021-11-15 22:26:50 +01:00
Nicolas Goaziou ae14076578
gnu: emacs-helm: Update to 3.8.1.
* gnu/packages/emacs-xyz.scm (emacs-helm): Update to 3.8.1.
2021-11-15 21:43:39 +01:00
Nicolas Goaziou 1a925d3af7
gnu: pdfarranger: Update to 1.8.0.
* gnu/packages/pdf.scm (pdfarranger): Update to 1.8.0.
2021-11-15 21:41:26 +01:00
Jean-Baptiste Volatier a1a7e2b951
gnu: julia: Fix llvm-julia version.
LLVM bundled in the binary julia distributed by upstream has its
version with a "jl" suffix. The llvm-julia package does not have
this suffix, which causes some packages (e. g. LLVM.jl) to fail to
load.

LLVM.jl does this in order to be sure that it is loading a LLVM as
patched for julia and not LLVM from the distribution which will
lack the correct patches on distribs other than GUIX.

I guess there might be other packages that rely on this, so we
should fix our llvm-julia package.

* gnu/packages/julia.scm (llvm)
[source]: Add missing upstream patch
[arguments]: Add configure-flag to set a "jl" suffix to llvm version
(julia)[arguments]: Symlink llvm to llvm-11jl.so

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-11-15 22:38:09 +02:00
Nicolas Goaziou 2b56e477f3
gnu: emacs-consult: Update to 0.13.
* gnu/packages/emacs-xyz.scm (emacs-consult): Update to 0.13.
2021-11-15 21:35:33 +01:00
Nicolas Goaziou 9784e14817
gnu: emacs-exwm: Update to 0.26.
* gnu/packages/emacs-xyz.scm (emacs-exwm): Update to 0.26.
2021-11-15 21:33:51 +01:00
Nicolas Goaziou d24333c29c
gnu: emacs-rustic: Update to 2.1.
* gnu/packages/emacs-xyz.scm (emacs-rustic): Update to 2.1.
2021-11-15 21:31:38 +01:00
Nicolas Goaziou 563354db48
gnu: emacs-marginalia: Update to 0.10.
* gnu/packages/emacs-xyz.scm (emacs-marginalia): Update to 0.10.
2021-11-15 21:29:47 +01:00
Nicolas Goaziou fb8e5f530e
gnu: borgmatic: Fix typo in description.
* gnu/packages/backup.scm (borgmatic): Fix typo, "software" being a mass noun.
2021-11-15 21:17:21 +01:00
Ludovic Courtès 21332f3b8c
gnu: hpcguix-web: Update to 0.2.0.
* gnu/packages/web.scm (hpcguix-web): Update to 0.2.0.
[arguments]: In 'wrap-program' phase, add guile-zlib to DEPS.
[native-inputs]: Add GUILE.
[inputs]: Add GUILE-ZLIB, GUILE-COMMONMARK, and GUILE-JSON.
[propagated-inputs]: Remove.  These were pointless.
* gnu/services/web.scm (<hpcguix-web-configuration>)[address, port]: New
fields.
* doc/guix.texi (Web Services): Document them.
* gnu/tests/web.scm (%hpcguix-web-os): Add 'address'.
2021-11-15 17:55:50 +01:00
Ludovic Courtès 782e9975dc
gnu: python-pytorch: Update to 1.10.0.
* gnu/packages/machine-learning.scm (python-pytorch): Update to 1.10.0.
* gnu/packages/patches/python-pytorch-system-libraries.patch: Adjust.
2021-11-15 17:55:50 +01:00
Ryan Prior 1a501646f5
gnu: Add python-minikanren.
* gnu/packages/python-xyz.scm (python-minikanren): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-15 17:55:50 +01:00
Ryan Prior f661fa8e8f
gnu: Add python-etuples.
* gnu/packages/python-xyz.scm (python-etuples): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-15 17:55:50 +01:00
Ryan Prior 37e6f02880
gnu: Add python-cons.
* gnu/packages/python-xyz.scm (python-cons): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-15 17:55:50 +01:00
Ryan Prior 9373007321
gnu: Add python-logical-unification.
* gnu/packages/python-xyz.scm (python-logical-unification): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-15 17:55:50 +01:00
Ryan Prior 0ace339cbe
gnu: Add python-multipledispatch.
* gnu/packages/python-xyz.scm (python-multipledispatch): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-15 17:55:49 +01:00
Ludovic Courtès 2a32c99b38
gnu: clang-toolchain: Add libomp.
* gnu/packages/llvm.scm (make-clang-toolchain)[inputs]: Add LIBOMP.
2021-11-15 17:55:49 +01:00
Vinicius Monego 3288d6bf76
gnu: Add python-rtree.
* gnu/packages/geo.scm (python-rtree): New variable.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-11-15 17:49:24 +01:00
Foo Chuan Wei 386db367c9
gnu: Add python-ta-lib.
* gnu/packages/finance.scm (python-ta-lib): New variable.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-11-15 17:40:30 +01:00
Foo Chuan Wei f50c9b45ad
gnu: Add cl-chemboy.
* gnu/packages/lisp-xyz.scm (cl-chemboy, ecl-chemboy, sbcl-chemboy):
  New variables.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-11-15 17:38:14 +01:00
Foo Chuan Wei 8e18eb8cdf
gnu: Add cl-chemical-compounds.
* gnu/packages/lisp-xyz.scm (cl-chemical-compounds,
  ecl-chemical-compounds, sbcl-chemical-compounds): New variables.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-11-15 17:32:36 +01:00