Commit graph

71176 commits

Author SHA1 Message Date
Mark H Weaver 740c0f37f9
gnu: youtube-dl: Avoid using pre-generated code.
* gnu/packages/video.scm (youtube-dl)[source]: Add 'snippet' to delete
pre-generated files.
[arguments]: Add 'build-generated-files' phase.
[native-inputs]: New field, to add 'zip'.
2020-12-15 13:12:35 -05:00
Nicolas Goaziou aeb11754e0
gnu: emacs-ivy-posframe: Update to 0.5.5.
* gnu/packages/emacs-xyz.scm (emacs-ivy-posframe): Update to 0.5.5.
2020-12-15 17:50:30 +01:00
Ludovic Courtès 7530e491b5
deduplicate: Create the '.links' directory lazily.
This avoids repeated (mkdir-p "/gnu/store/.links") calls when
deduplicating lots of files.

* guix/store/deduplication.scm (deduplicate): Remove initial call to
'mkdir-p'.  Add ENOENT case in 'link' exception handler.  Reindent.
* tests/store-deduplication.scm ("deduplicate, ENOSPC"): Check
for (<= links 4) to account for the initial 'link' call.
2020-12-15 17:32:12 +01:00
Ludovic Courtès 9e6fe0e08f
database: Honor 'SOURCE_DATE_EPOCH'.
* guix/store/database.scm (timestamp): New procedure.
(sqlite-register): Use it as the default for #:time.
(register-items): Likewise for #:registeration-time.
2020-12-15 17:32:11 +01:00
Ludovic Courtès 3169c93903
database: Remove 'register-path'.
* guix/store/database.scm (register-path): Remove.
* tests/store-database.scm ("register-path"): Rename to...
("register-items"): ... this, and use 'register-items' instead of
'register-path'.
("register-path, directory"): Rename to...
("register-items, directory"): ... this, and use 'register-items'
instead of 'register-path'.
("register-path with unregistered references"): Rename to...
("sqlite-register with unregistered references"): ... this.
2020-12-15 17:32:11 +01: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
Ludovic Courtès 0682cc5936
database: Remove #:deduplicate? and #:reset-timestamps? from 'register-path'.
* 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-15 17:32:11 +01:00
Ludovic Courtès cd6c5ddfc8
guix system: 'init' copies, resets timestamps, and deduplicates at once.
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-15 17:32:11 +01:00
Ludovic Courtès 0793833c59
database: Remove #:deduplicate? from 'register-items'.
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-15 17:32:11 +01:00
Ludovic Courtès 2aa512ec28
image: 'register-closure' leaves it up to the caller to deduplicate.
* 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-15 17:32:10 +01:00
Ludovic Courtès 6a060ff27f
store-copy: 'populate-store' can optionally deduplicate files.
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-15 17:32:10 +01:00
Ludovic Courtès dea1ee1fd7
database: Remove #:reset-timestamps? from 'register-items'.
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-15 17:32:10 +01:00
Ludovic Courtès 0f15fd5c12
image: 'register-closure' assumes already-reset timestamps.
* 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-15 17:32:10 +01:00
Ludovic Courtès 7b8d239ec2
store-copy: 'populate-store' resets timestamps.
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-15 17:32:10 +01:00
Ludovic Courtès 2718c29c3f
nar: Deduplicate files right as they are restored.
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-15 17:32:09 +01:00
Ludovic Courtès ed7d02f7c1
serialization: 'restore-file' sets canonical timestamp and permissions.
* 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-15 17:32:09 +01:00
Ludovic Courtès 465d2cb286
serialization: 'fold-archive' notifies about directory processing completion.
* 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-15 17:32:09 +01:00
Ludovic Courtès 7a2897149d
Revert "gnu: grub: Fix unicode font loading when booting over TFTP."
This reverts commit 03fb57ff77, 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-15 17:32:09 +01:00
divoplade 190187326a
gnu: Add ocaml-reactivedata.
* gnu/packages/ocaml.scm (ocaml-reactivedata): Add ocaml-reactivedata.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-12-15 15:46:01 +01:00
Michael Rohleder 1962c6b286
gnu: maven-wagon-http: Disable a failing test.
* gnu/packages/maven.scm (maven-wagon-http)[arguments]: Add
HugeFileDownloadTest to excluded tests.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2020-12-15 15:06:51 +01:00
Julien Lepiller 954e4cf6a4
offload: Print warning in context.
* guix/scripts/offload.scm (build-machine): Add `location` field.
(build-machine-system): Print location with warning.
2020-12-15 15:04:06 +01:00
Efraim Flashner 8c0751505b
gnu: iproute: Fix cross compiling.
* 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-15 12:28:36 +02:00
Efraim Flashner 7d9d474dd2
gnu: Add rust-ndarray-0.12.
* 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-15 10:57:37 +02:00
Efraim Flashner f18f86c981
gnu: rust-cblas-sys-0.1: Don't skip build.
* gnu/packages/crates-io.scm (rust-cblas-sys-0.1)[arguments]: Don't skip
build.
2020-12-15 10:57:37 +02:00
Efraim Flashner d07d68b087
gnu: Add rust-handlegraph-0.3.
* gnu/packages/crates-io.scm (rust-handlegraph-0.3): New variable.
2020-12-15 10:57:36 +02:00
Ryan Prior 980013c503
gnu: esbuild: Update to 0.8.23.
* gnu/packages/web.scm (esbuild): Update to 0.8.23.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 03:09:26 -05:00
Leo Famulari c33df8ab95
gnu: ffmpeg-2.8: Remove extraneous inputs.
These inputs are not used by FFmpeg 2.

* gnu/packages/video.scm (ffmpeg-2.8)[inputs]: Remove dav1d, libaom,
rav1e, and srt.
2020-12-15 03:01:28 -05:00
Leo Prikler 54d8326806
gnu: ffmpeg-4.2: Remove extraneous input rav1e.
* gnu/packages/video.scm (ffmpeg-4.2)[inputs]: Remove rav1e.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 03:01:25 -05:00
Giacomo Leidi e779dc8be0
gnu: Add python-sanic.
* gnu/packages/python-web.scm (python-sanic): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:38 -05:00
Giacomo Leidi 7ae4571684
gnu: Add python-pytest-sanic.
* gnu/packages/python-check.scm (python-pytest-sanic): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:38 -05:00
Giacomo Leidi 6655b975a0
gnu: Add python-pywatchman.
* gnu/packages/python-xyz.scm (python-pywatchman): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:38 -05:00
Giacomo Leidi cfdad650b9
gnu: Add python-dataclasses.
* gnu/packages/python-xyz.scm (python-dataclasses): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:38 -05:00
Giacomo Leidi 83ade5bfb5
gnu: Add python-nbsphinx.
* gnu/packages/sphinx.scm (python-nbsphinx): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:38 -05:00
Giacomo Leidi f5de08ffab
gnu: Add python-pyre-extensions.
* gnu/packages/python-xyz.scm (python-pyre-extensions): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:37 -05:00
Giacomo Leidi 0386f3a69e
gnu: Add python-hstspreload.
* gnu/packages/python-web.scm (python-hstspreload): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:37 -05:00
Giacomo Leidi 56cfef4766
gnu: Add python-aiofiles.
* gnu/packages/python-xyz.scm (python-aiofiles): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:37 -05:00
Giacomo Leidi 8071877fa7
gnu: Add python-contextvars.
* gnu/packages/python-xyz.scm (python-contextvars): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:55:37 -05:00
Robert Smith 338592020a
gnu: Add kanshi.
* gnu/packages/wm.scm (kanshi): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 01:13:55 -05:00
Aniket Patil 1c6789464a
gnu: Add r-lpme.
* gnu/packages/cran.scm (r-lpme): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 00:33:35 -05:00
Aniket Patil 6b5c04034d
gnu: Add r-locpol.
* gnu/packages/cran.scm (r-locpol): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 00:33:35 -05:00
Aniket Patil 795f654b2a
gnu: Add r-decon.
* gnu/packages/cran.scm (r-decon): New variable.

Signed-off-by: Leo Famulari <leo@famulari.name>
2020-12-15 00:33:24 -05:00
Brett Gilio bd740f77ff
gnu: emacs-transmission: Update to 0.12.2.
* gnu/packages/emacs-xyz.scm (emacs-transmission): Update to 0.12.2.
2020-12-14 18:21:15 -06:00
Stefan 03fb57ff77
gnu: grub: Fix unicode font loading when booting over TFTP.
* 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-14 23:33:22 +01:00
Tobias Geerinckx-Rice 48cccf06ad
doc: Note different texlive-tiny & texline-union natures.
* doc/contributing.texi (Submitting Patches): Add ‘package’ and
‘procedure’.

Inspired-by: Jorge P. de Morais Neto
2020-12-14 19:11:03 +01:00
Nicolas Goaziou db785b7497
gnu: kitty: Re-order inputs and native-inputs alphabetically.
* gnu/packages/terminals.scm (kitty)[inputs, native-inputs]: Re-order
alphabetically.
2020-12-14 18:55:53 +01:00
Nicolas Goaziou 153b279e7b
gnu: kitty: Update to 0.19.2.
* 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-14 18:53:15 +01:00
Leo Famulari 80ebcdd100
maint: Only run make authenticate when pushing commits.
* etc/git/pre-push: Exit early when deleting a branch.
2020-12-14 12:15:06 -05:00
Nicolas Goaziou 3ef808bbeb
gnu: emacs-org-contrib: Update to 20201213.
* gnu/packages/emacs-xyz.scm (emacs-org-contrib): Update to 20201213.
2020-12-14 16:40:47 +01:00
Nicolas Goaziou 8f351e3a90
gnu: emacs-org: Update to 9.4.2.
* gnu/packages/emacs-xyz.scm (emacs-org): Update to 9.4.2.
2020-12-14 16:40:34 +01:00
Nicolas Goaziou 76d59abea3
gnu: emacs-ivy-posframe: Update to 0.5.4.
* gnu/packages/emacs-xyz.scm (emacs-ivy-posframe): Update to 0.5.4.
2020-12-14 16:33:00 +01:00