summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-15system: 'init' does not recompute the hash of each store item.Ludovic Courtès
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-15database: Remove #:deduplicate? and #:reset-timestamps? from 'register-path'.Ludovic Courtès
* guix/store/database.scm (register-path): Remove #:deduplicate? and #:reset-timestamps?. * guix/scripts/system.scm (copy-item): Adjust accordingly. * tests/store-database.scm ("register-path") ("register-path, directory"): Call 'reset-timestamps'.
2020-12-15guix system: 'init' copies, resets timestamps, and deduplicates at once.Ludovic Courtès
Partly fixes <https://bugs.gnu.org/44760>. * guix/build/store-copy.scm (copy-store-item): New procedure. (populate-store): Use it instead of the inline 'copy-recursively' call. * guix/scripts/system.scm (copy-item): Likewise. Pass #:reset-timestamps? and #:deduplicate? to 'register-path'.
2020-12-15database: Remove #:deduplicate? from 'register-items'.Ludovic Courtès
It is now up to the caller to deduplicate store contents. * guix/store/database.scm (register-items): Remove #:deduplicate? parameter and call to 'deduplicate'. (register-path): Call 'deduplicate' when #:deduplicate? is true. * gnu/build/image.scm (register-closure): Adjust call accordingly. * gnu/build/vm.scm (register-closure): Likewise. * guix/nar.scm (finalize-store-file): Likewise. * guix/scripts/pack.scm (store-database): Likewise.
2020-12-15image: 'register-closure' leaves it up to the caller to deduplicate.Ludovic Courtès
* gnu/build/image.scm (register-closure): Remove #:deduplicate? parameter and pass #:deduplicate? #f to 'register-items'. (initialize-root-partition): Adjust accordingly. * gnu/build/vm.scm (register-closure, root-partition-initializer): Likewise.
2020-12-15store-copy: 'populate-store' can optionally deduplicate files.Ludovic Courtès
Until now deduplication was performed as an additional pass after copying files, which involve re-traversing all the files that had just been copied. * guix/store/deduplication.scm (copy-file/deduplicate): New procedure. * tests/store-deduplication.scm ("copy-file/deduplicate"): New test. * guix/build/store-copy.scm (populate-store): Add #:deduplicate? parameter and honor it. * tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate? to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise. * gnu/build/install.scm (populate-single-profile-directory): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/linux-initrd.scm (build-initrd): Likewise. * guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New procedure. [build]: Pass it as an argument to 'source-module-closure'. * guix/scripts/pack.scm (squashfs-image)[build]: Wrap in 'with-extensions'. * gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New procedure. [builder]: Pass it to 'source-module-closure'. * gnu/system/install.scm (cow-store-service-type)[import-module?]: New procedure. Pass it to 'source-module-closure'.
2020-12-15database: Remove #:reset-timestamps? from 'register-items'.Ludovic Courtès
The assumption now is that the caller took care of resetting timestamps and permissions. * guix/store/database.scm (register-items): Remove #:reset-timestamps? parameter and the call to 'reset-timestamps'. (register-path): Adjust accordingly and add call to 'reset-timestamps'. * gnu/build/image.scm (register-closure): Remove #:reset-timestamps? parameter to 'register-items'. * gnu/build/vm.scm (register-closure): Likewise. * guix/nar.scm (finalize-store-file): Adjust accordingly. * guix/scripts/pack.scm (store-database)[build]: Likewise.
2020-12-15image: 'register-closure' assumes already-reset timestamps.Ludovic Courtès
* gnu/build/image.scm (register-closure): Remove #:reset-timestamps? parameter. Pass #:reset-timestamps? #f to 'register-items'. (initialize-root-partition): Adjust accordingly. * gnu/build/vm.scm (register-closure, root-partition-initializer): Likewise.
2020-12-15store-copy: 'populate-store' resets timestamps.Ludovic Courtès
Until now, 'populate-store' would reset permissions but not timestamps, so callers would resort to going through an extra directory traversal to reset timestamps. * guix/build/store-copy.scm (reset-permissions): Remove. (copy-recursively): New procedure. (populate-store): Pass #:keep-permissions? to 'copy-recursively'. Remove call to 'reset-permissions'. * tests/gexp.scm ("gexp->derivation, store copy"): In BUILD-DRV, check whether 'populate-store' canonicalizes permissions and timestamps. * gnu/build/image.scm (initialize-root-partition): Pass #:reset-timestamps? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise.
2020-12-15nar: Deduplicate files right as they are restored.Ludovic Courtès
This avoids having to traverse and re-read the files that we have just restored, thereby reducing I/O. * guix/serialization.scm (dump-file): New procedure. (restore-file): Add #:dump-file parameter and honor it. * guix/store/deduplication.scm (tee, dump-file/deduplicate): New procedures. * guix/nar.scm (restore-one-item): Pass #:dump-file to 'restore-file'. (finalize-store-file): Pass #:deduplicate? #f to 'register-items'. * tests/nar.scm <top level>: Call 'setenv' to set "NIX_STORE".
2020-12-15serialization: 'restore-file' sets canonical timestamp and permissions.Ludovic Courtès
* guix/serialization.scm (restore-file): Set the permissions and mtime of FILE. * guix/nar.scm (finalize-store-file): Pass #:reset-timestamps? #f to 'register-items'. * tests/nar.scm (rm-rf): Add 'chmod' calls to ensure files are writable. ("write-file + restore-file with symlinks"): Ensure every file in OUTPUT passes 'canonical-file?'. * tests/guix-archive.sh: Run "chmod -R +w" before "rm -rf".
2020-12-15serialization: 'fold-archive' notifies about directory processing completion.Ludovic Courtès
* guix/serialization.scm (fold-archive): Call PROC with a 'directory-complete tag when done with a directory. (restore-file): Handle it. * guix/scripts/archive.scm (list-contents): Likewise. * guix/scripts/challenge.scm (archive-contents): Likewise. * tests/nar.scm ("write-file-tree + fold-archive"): Adjust accordingly.
2020-12-15Revert "gnu: grub: Fix unicode font loading when booting over TFTP."Ludovic Courtès
This reverts commit 03fb57ff77b57de510b59485845ed7cb4e0a77a7, which breaks most system tests. Specifically, grub.cfg.drv fails to build: ERROR: In procedure canonicalize-path: In procedure canonicalize-path: No such file or directory
2020-12-15gnu: Add ocaml-reactivedata.divoplade
* gnu/packages/ocaml.scm (ocaml-reactivedata): Add ocaml-reactivedata. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-12-15gnu: maven-wagon-http: Disable a failing test.Michael Rohleder
* gnu/packages/maven.scm (maven-wagon-http)[arguments]: Add HugeFileDownloadTest to excluded tests. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-12-15offload: Print warning in context.Julien Lepiller
* guix/scripts/offload.scm (build-machine): Add `location` field. (build-machine-system): Print location with warning.
2020-12-15gnu: iproute: Fix cross compiling.Efraim Flashner
* gnu/packages/linux.scm (iproute)[arguments]: Set CC and HOSTCC in make-flags. Add custom phase to replace the value for PKG_CONFIG in hand-written configure script.
2020-12-15gnu: Add rust-ndarray-0.12.Efraim Flashner
* gnu/packages/crates-io.scm (rust-ndarray-0.12): New variable. * gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
2020-12-15gnu: rust-cblas-sys-0.1: Don't skip build.Efraim Flashner
* gnu/packages/crates-io.scm (rust-cblas-sys-0.1)[arguments]: Don't skip build.
2020-12-15gnu: Add rust-handlegraph-0.3.Efraim Flashner
* gnu/packages/crates-io.scm (rust-handlegraph-0.3): New variable.
2020-12-15gnu: esbuild: Update to 0.8.23.Ryan Prior
* gnu/packages/web.scm (esbuild): Update to 0.8.23. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: ffmpeg-2.8: Remove extraneous inputs.Leo Famulari
These inputs are not used by FFmpeg 2. * gnu/packages/video.scm (ffmpeg-2.8)[inputs]: Remove dav1d, libaom, rav1e, and srt.
2020-12-15gnu: ffmpeg-4.2: Remove extraneous input rav1e.Leo Prikler
* gnu/packages/video.scm (ffmpeg-4.2)[inputs]: Remove rav1e. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-sanic.Giacomo Leidi
* gnu/packages/python-web.scm (python-sanic): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-pytest-sanic.Giacomo Leidi
* gnu/packages/python-check.scm (python-pytest-sanic): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-pywatchman.Giacomo Leidi
* gnu/packages/python-xyz.scm (python-pywatchman): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-dataclasses.Giacomo Leidi
* gnu/packages/python-xyz.scm (python-dataclasses): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-nbsphinx.Giacomo Leidi
* gnu/packages/sphinx.scm (python-nbsphinx): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-pyre-extensions.Giacomo Leidi
* gnu/packages/python-xyz.scm (python-pyre-extensions): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-hstspreload.Giacomo Leidi
* gnu/packages/python-web.scm (python-hstspreload): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-aiofiles.Giacomo Leidi
* gnu/packages/python-xyz.scm (python-aiofiles): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add python-contextvars.Giacomo Leidi
* gnu/packages/python-xyz.scm (python-contextvars): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add kanshi.Robert Smith
* gnu/packages/wm.scm (kanshi): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add r-lpme.Aniket Patil
* gnu/packages/cran.scm (r-lpme): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add r-locpol.Aniket Patil
* gnu/packages/cran.scm (r-locpol): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15gnu: Add r-decon.Aniket Patil
* gnu/packages/cran.scm (r-decon): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-14gnu: emacs-transmission: Update to 0.12.2.Brett Gilio
* gnu/packages/emacs-xyz.scm (emacs-transmission): Update to 0.12.2.
2020-12-14gnu: grub: Fix unicode font loading when booting over TFTP.Stefan
* gnu/bootloader/grub.scm (eye-candy)(font-file): Fix unicode font loading when booting over TFTP. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-12-14doc: Note different texlive-tiny & texline-union natures.Tobias Geerinckx-Rice
* doc/contributing.texi (Submitting Patches): Add ‘package’ and ‘procedure’. Inspired-by: Jorge P. de Morais Neto
2020-12-14gnu: kitty: Re-order inputs and native-inputs alphabetically.Nicolas Goaziou
* gnu/packages/terminals.scm (kitty)[inputs, native-inputs]: Re-order alphabetically.
2020-12-14gnu: kitty: Update to 0.19.2.Nicolas Goaziou
* gnu/packages/terminals.scm (kitty): Update to 0.19.2. [inputs]: Add lcms. Switch to python-wrapper. [arguments]: Merge hard-code-libegl phase in build phase. Change build command. Disable checking for updates. Fix error in tests.
2020-12-14maint: Only run `make authenticate` when pushing commits.Leo Famulari
* etc/git/pre-push: Exit early when deleting a branch.
2020-12-14gnu: emacs-org-contrib: Update to 20201213.Nicolas Goaziou
* gnu/packages/emacs-xyz.scm (emacs-org-contrib): Update to 20201213.
2020-12-14gnu: emacs-org: Update to 9.4.2.Nicolas Goaziou
* gnu/packages/emacs-xyz.scm (emacs-org): Update to 9.4.2.
2020-12-14gnu: emacs-ivy-posframe: Update to 0.5.4.Nicolas Goaziou
* gnu/packages/emacs-xyz.scm (emacs-ivy-posframe): Update to 0.5.4.
2020-12-14gnu: pies: Update to 1.5.Efraim Flashner
* gnu/packages/admin.scm (pies): Update to 1.5.
2020-12-14gnu: ecl: Remove build-stamp to improve reproducibility.Zhu Zihao
* gnu/packages/lisp.scm (ecl)[arguments]<phases>: Add "remove-build-stamp" phase. Move "wrap" phase after "remove-build-stamp" phase. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2020-12-14gnu: ecl: Return #t in wrap phase.Zhu Zihao
* gnu/packages/lisp.scm (ecl)[arguments]<phases>: In phase "wrap", return #t. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2020-12-14gnu: emacs-helm-switch-to-repl: Update to 0.1.1.Pierre Neidhardt
* gnu/packages/emacs-xyz.scm (emacs-helm-switch-to-repl): Update to 0.1.1.
2020-12-14gnu: b4: Update to 0.6.1.Kyle Meyer
* gnu/packages/version-control.scm (b4): Update to 0.6.1. [source]: Download from pypi, which now includes the manpage. [arguments]: Remove now unnecessary install-manpages phase. [inputs]: Add python-dkimpy and python-dnspython. Signed-off-by: Ludovic Courtès <ludo@gnu.org>