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