Previously the command would crash when passed an invalid fingerprint on
the command line.
* guix/scripts/git/authenticate.scm (guix-git-authenticate)
[openpgp-fingerprint*]: New procedure.
Use it instead of ‘openpgp-fingerprint’.
Change-Id: I99e0549781382f36a684a84449b603e00b53778d
Matching the change in 2d40e6f7ab otherwise the
cross build derivations are broken, as was the case for emacs-pde.
* guix/build-system/perl.scm (perl-cross-build) [module-build-flags]: Accept
gexps.
Change-Id: I2dc85bc50bc077581e3abfc5baaedc6487118192
Previously, ‘latest-channel-instances’ would perform a depth-first
traversal of channels. Since dependencies specified in ‘.guix-channel’
are usually less specific that those provided by the user, this would
lead to the use of instances corresponding to those less specific specs,
which in turn might declare dependencies that do not exist for the more
specific instances.
This commit changes ‘latest-channel-instances’ to perform a
breadth-first traversal, thereby giving user-supplied channels higher
precedence over dependencies found via ‘.guix-channel’.
Fixes <https://issues.guix.gnu.org/68822>.
* guix/channels.scm (latest-channel-instances)[ignore?]: Remove.
[instance-name, same-named?, more-specific?]: New procedures.
Rewrite as a breadth-first traversal using a regular loop.
* tests/channels.scm ("latest-channel-instances reads dependencies from most-specific instance"):
New test.
Change-Id: Iba518145cfd209f04293a56246dbfee3b714650b
* guix/scripts/download.scm (git-download-to-store*): Add new variable.
(copy-recursively-without-dot-git): New variable.
(git-download-to-file): Add new variable.
(show-help): Add 'git', 'commit', 'branch' and 'recursive'options
help message.
(%default-options): Add default value for 'git-reference' and
'recursive' options.
(%options): Add 'git', 'commit', 'branch' and 'recursive' command
line options.
(guix-download) [hash]: Compute hash with 'file-hash*' instead of
'port-hash' from (gcrypt hash) module. This allows us to compute
hashes for directories.
* doc/guix.texi (Invoking guix-download): Add @item entries for
`git', `commit', `branch' and `recursive' options. Add a paragraph in
the introduction.
* tests/guix-download.sh: New tests. Move variables and trap definition
to the top of the file.
Change-Id: Ic2c428dca4cfcb0d4714ed361a4c46609339140a
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* guix/import/cran.scm (phases-for-inputs): Add 'set-HOME phase when
ExperimentHub is among inputs.
Change-Id: Ie3a2443934704eed8694a76a651b806209722421
* guix/import/cran.scm (latest-bioconductor-release): Determine package type
and pass it to LATEST-BIOCONDUCTOR-PACKAGE-VERSION and BIOCONDUCTOR-URI.
(%bioconductor-updater): Compose all bioconductor predicates.
Change-Id: Icef3ae05e28ed0f2796d9abf90e51821d2dfcc4c
* guix/import/cran.scm (phases-for-inputs, maybe-arguments): New procedures.
(description->package): Splice in result of MAYBE-ARGUMENTS.
Change-Id: I578e1903f37c91bf865f0be49b04187ec372ed05
These were encountered in a mass import of Bioconductor packages.
* guix/import/cran.scm (invalid-packages): Add "rtools".
(transform-sysname): Add aliases for Python and bioinformatics packages.
Change-Id: I97e13cee10c2ee85d4b9296d91afccbdbcec4946
* guix/import/crate.scm (min-element, max-crate-version-of-semver,
nonyanked-crate-versions): New procedures.
(import-release)[version]: Update to the requested version or the newest
semver-compatible version.
Co-authored by David Elsing <david.elsing@posteo.net>
Change-Id: I72b081147c4eb9faf482f159b7145aaaf9f91f29
The default value of #f led to ("..." . #f) being passed further down as an
entry point. That is not an issue for command line invocation, since in that
code path '() was already used as a default value, but it broke docker system
test with the following error:
building /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv...
tar: Removing leading `/' from member names
Backtrace:
6 (primitive-load "/gnu/store/g8hqzccfvn4mkm41jqs65c27gs7?")
In ./guix/docker.scm:
268:6 5 (build-docker-image "/gnu/store/zi2f5dfdrhviinm6jxp3cj?" ?)
In ice-9/ports.scm:
433:17 4 (call-with-output-file _ _ #:binary _ #:encoding _)
476:4 3 (_ _)
In ./guix/docker.scm:
270:21 2 (_)
123:40 1 (config "1996ead589ab366473d935c4d5bd0c38b998f3b299847?" ?)
In unknown file:
0 (list->vector ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7?" . #))
ERROR: In procedure list->vector:
In procedure vector: Wrong type argument in position 1: ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7wpvrrhfkj-profile/bin/guile" . #f)
note: keeping build directory `/tmp/guix-build-docker-pack.tar.gz.drv-16'
builder for `/gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv' failed with exit code 1
build of /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv failed
View build log at '/var/log/guix/drvs/dl/l8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv.gz'.
cannot build derivation `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv' failed
make: *** [Makefile:7044: check-system] Error 1
Breakage was introduced in 7d5168a2af.
* guix/scripts/pack.scm (docker-image)[entry-point-argument]: Default to '().
Change-Id: If5fc1f8bcb0981df11409636e71f2ca91b05612f
* doc/guix.texi (Invoking guix import): Mention '--allow-yanked'.
* guix/import/crate.scm (make-crate-sexp): Add yanked? argument. For
yanked packages, use the full version suffixed by "-yanked" for
generated variable names and add a comment and package property.
(crate->guix-package): Add allow-yanked? argument and if it is set to #t,
allow importing yanked crates if no other version matching the
requirements exists.
[find-package-version]: Packages previously marked as yanked are only
included if allow-yanked? is #t and then take the lowest priority.
[find-crate-version]: If allow-yanked? is #t, also consider yanked
versions with the lowest priority.
[dependency-name+version]: Rename to ...
[dependency-name+version+yanked] ...this. Honor allow-yanked? and choose
between an existing package and an upstream package. Exit with an error
message if no version fulfilling the requirement is found.
[version*]: Exit with an error message if the crate version is not found.
(cargo-recursive-import): Add allow-yanked? argument.
* guix/read-print.scm: Export <comment>.
* guix/scripts/import/crate.scm: Add "--allow-yanked".
* tests/crate.scm: Add test 'crate-recursive-import-only-yanked-available'.
[sort-map-dependencies]: Adjust accordingly.
[remove-yanked-info]: New variable.
Adjust test 'crate-recursive-import-honors-existing-packages'.
(test-bar-dependencies): Add yanked dev-dependencies.
(test-leaf-bob-crate): Add yanked versions.
(rust-leaf-bob-3.0.2-yanked): New variable.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I175d89b39774e6b57dcd1f05bf68718d23866bb7
If --recursive-dev-dependencies is specified, development dependencies
are also included for all recursively imported packages.
* doc/guix.texi (Invoking guix import): Mention --recursive-dev-dependencies.
* guix/import/crate.scm (crate-recursive-import): Add
recursive-dev-dependencies? argument.
* guix/scripts/import/crate.scm (show-help, guix-import-crate): Add
"--recursive-dev-dependencies".
* tests/crate.scm: Test both #f and #t for #:recursive-dev-dependencies?
in the 'cargo-recursive-import' test.
(test-root-dependencies): Add intermediate-c as dev-dependency.
(test-intermediate-c-crate, test-intermediate-c-dependencies): New
variables.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: Iae89794681155d77f128733120e60f03bc297717
* guix/import/crate.scm (crate-recursive-import): Apply memoize outside the
lambda passed to recursive-import in order to actually use the memoization.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* guix/build/zig-build-system.scm (zig-cross-build): New function
(lower): Add cross-compilation support
* guix/build-system/zig.scm (build): Add --target flag with target input
(check): Disable with cross compilation
Change-Id: I5f42ff897bfe00c92c6576900221a15ef210d669
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add entry for
x86_64-linux-gnux32.
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add
configure-flag for x86_64-linux-gnux32.
* guix/platforms/x86.scm (x86_64-linux-gnux32): New variable.
* guix/utils.scm (gnu-triplet->nix-system): Force x86_64-linux-gnux32 to
output a different nix-system than x86_64-linux-gnu.
Change-Id: I519fea2f8357e4b9895ede05fe8a5e373e9b034a
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This fixes a regression introduced in commit
e6223017d9 causing the selected input style to
be ignored.
* guix/import/cran.scm (format-inputs): New procedure.
(maybe-inputs): Use it.
Change-Id: I0d36f972fcb9888ed2be4ec9360bbcab13c25c5d
This allows users of this module to provide e.g. caching alternatives to the
download and fetch procedures.
* guix/import/cran.scm (%bioconductor-version, download, fetch-description):
Make these variables public.
Change-Id: I9ce14db9be9b8b3314b06fa9eb50a4e24c5dd718
Importing host-side (json …) modules would make builds dependent on the
Guile-JSON version currently installed by the user. Use
‘with-extensions’ instead.
* guix/build-system/composer.scm (%composer-build-system-modules):
Remove (json …) modules.
(composer-build)[guile-json]: New variable.
[builder]: Wrap body in ‘with-extensions’.
Change-Id: Ibe565572d60481b31292d73c6fa23d42aa3ceecb
* guix/build-system/mix.scm: New file.
* guix/build/mix-build-system.scm: New file.
Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* guix/download.scm (%mirrors): Remove several vanished hosts and all
FTP URLs. Use HTTPS where supported. Add some new HTTPS mirrors.
Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95
Fixes <https://issues.guix.gnu.org/67175>.
* guix/least-authority.scm (least-authority-wrapper): Add #:user
and #:group.
[code]: Add calls to ‘setgid’ and ‘setuid’ when appropriate.
Change-Id: I2aad8e5686b42b5c92fc306b114c5c60cb8bc551
* guix/import/go.scm (go-package, go.mod-go-version): New procedures.
(go-module->guix-package): Add the #:go keyword in the generated package
definition if the required go is newer than the default go.
* tests/go.scm (mock-http-get): Use gexps for package arguments.
Change-Id: I8d005740a442330ac307a40a53764c803ceffc4f
* guix/import/go.scm (parse-go.mod)[define-peg-patern require]: Adjust
the peg pattern to reject lines with the 'indirect' comment in them.
Change-Id: I9618bbaa1cb8c6549ced875e3c8d32afc72c3b9b
The paths to .scm and .go files can be constructed given a guile version and a
base directory. However it is few lines of code that needs to be copy&pasted.
This new procedure returns both of them reducing the maintenance cost.
* guix/build/guile-build-system.scm (target-guile-scm+go): New procedure.
Change-Id: I58615f2cfe0ec1e58d3fbb47b738ed5dce1bb252
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes a bug whereby ‘guix locate --clear’ would end with the “no files
to search for” error.
Fixes <https://issues.guix.gnu.org/66799>.
* guix/scripts/locate.scm (guix-locate): Do not emit “no files to search
for” error when 'clear? is set in OPTS.
* tests/guix-locate.sh: Test it.
Reported-by: Maciej Kalandyk <m.kalandyk@outlook.com>
Change-Id: Ib8fa125c18481d7f5408bd89df9503713527641d
* guix/build/emacs-build-system.scm (ensure-package-description)
(patch-el-files, make-autoloads): Operate on the current working directory,
either implicitly, or through (getcwd).
(enable-autoloads-compilation): Deleted variable, logic moved into
make-autoloads.
(%standard-phases): Adjust accordingly.
Instead of duplicating this existing logic across the source file. This
will make it easier to add additional linux targets (e.g. linux-musl) in
the future.
* guix/build/syscalls.scm (readdir*, write-socket-address!)
(read-socket-address): Use linux? constant.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I833c1d1630dcb8319584de1ea918cb22696f0058
This commit allows using Guix on a foreign distro which uses musl libc,
for example, Alpine Linux. Usage of musl libc is detected via a new
musl-libc? variable using the Guile %host-type.
Using the new musl-libc? variable, we can now implement musl-specific
quirks. The two compatibility problems I encountered in this regard are
that musl dose not export a readdir64 and statfs64 symbol. On musl,
these two functions are implemented as CPP macros that expand to
readdir/statfs. To workaround that, a case-distinction was added.
The existing linux? variable has been modified to return true if the
%host-system contains "linux-" in order to ensure it is true for both
linux-gnu as well as linux-musl host systems.
The patch has been tested on Alpine Linux and is already used for the
downstream Guix package shipped in Alpine Linux's package repository.
* guix/build/syscalls.scm (musl-libc?): New variable.
(linux?): Truth value on any linux system.
(statfs, readdir-procedure): Support musl libc.
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Icc4101a062381240f977f4550344bde696513c52
* guix/import/crate.scm (<crate-version>): Add yanked? field.
(crate->guix-package)[find-crate-version]: Remove versions which have
been yanked.
* tests/crate.scm: Adjust tests for new yanked? field.
* guix/build-system/go.scm (default-gccgo): New variable.
(lower): Only use default-go when it is supported.
Change-Id: I30564d97703344df582accaf741f4fcd159b6be1
* guix/build-system/minify.scm (default-uglify-js): Replace this procedure...
(default-esbuild): ...with this new procedure.
(lower): Use it, and add "esbuild" to build inputs.
* guix/build/minify-build-system.scm (minify): Invoke esbuild instead of
setting up a pipe to uglifyjs.
* gnu/packages/cran.scm (r-shiny)[native-inputs]: Replace node-uglify-js with
esbuild.
* gnu/packages/statistics.scm (r-dt)[native-inputs]: Same.
Fixes <https://issues.guix.gnu.org/66305>.
Reported by Guillaume Le Vaillant <glv@posteo.net>.
* guix/scripts/perform-download.scm (perform-git-download): Add call to
‘setenv’.
* guix/build/meson-configuration.scm (write-assigment): Print true for
#t and false for #f. Previously it was inverting the values.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Perhaps due to their staged nature, packages tend to be ‘lopsided’: deeply
nested, with the most elaborate code on the {build,right-hand-,in}side, in
snippets and phases.
When we indent outer forms too eagerly, we can easily run short on
columns by the time we get to the build code, reducing readability. A
few strategically-placed newlines early on can make a big difference.
* guix/read-print.scm (%newline-forms): Add a newline after opening a
<package> source field or an argument list. Compensate by removing the
base32 special case, which is now unnecessary.
Fixes <https://issues.guix.gnu.org/63331>.
Longer-term this will remove Git from the derivation graph when its sole
use is to perform a checkout for a fixed-output derivation, thereby
breaking dependency cycles that can arise in these situations.
* guix/git-download.scm (git-fetch): Rename to…
(git-fetch/in-band): … this. Deal with GIT or GUILE being #f.
(git-fetch/built-in, built-in-builders*, git-fetch): New procedures.
* tests/builders.scm ("git-fetch, file URI"): New test.
* configure.ac: Check for ‘git’ and substitute ‘GIT’.
* guix/config.scm.in (%git): New variable.
* guix/self.scm (compiled-guix): Define ‘git’ and pass it to
‘make-config.scm’.
(make-config.scm): Add #:git; emit a ‘%git’ variable.
* doc/guix.texi (Requirements): Add it.
The new builder makes it possible to break cycles that occurs when the
fixed-output derivation for the source of a dependency of ‘git’ would
itself depend on ‘git’.
* guix/scripts/perform-download.scm (perform-git-download): New
procedure.
(perform-download): Move fixed-output derivation check to…
(guix-perform-download): … here. Invoke ‘perform-download’ or
‘perform-git-download’ depending on what ‘derivation-builder’ returns.
* nix/libstore/builtins.cc (builtins): Add “git-download”.
* tests/derivations.scm ("built-in-builders"): Update.
("'git-download' built-in builder")
("'git-download' built-in builder, invalid hash")
("'git-download' built-in builder, invalid commit")
("'git-download' built-in builder, not found"): New tests.
* guix/build/git.scm (git-fetch-with-fallback): New procedure, with code
taken from…
* guix/git-download.scm (git-fetch): … here.
[modules]: Remove modules that are no longer directly used in ‘build’.
[build]: Use ‘git-fetch-with-fallback’.
Follow-up of 756e336fa0 fixing the issue.
* guix/git/scm (reference-available?): Address case by case to determine
whether the reference exists in the local Git checkout.
Until 209204e23b and
d57cab7641, the default image type used by "guix
system image" was an MBR image with an ESP partition.
Having both an MBR image and an ESP partition is handy because the image will
boot on most x86 based systems using legacy BIOS and/or UEFI.
We now have a distinction between MBR images and EFI images. Introduce a new
MBR hybrid image type and default to it to restore the default behaviour.
This also fixes the images section of (gnu ci) that was trying to install a
BIOS bootloader on an EFI, GPT image and failing to do so.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This fixes or greatly increases the chances for `guix pull' to succeed on the
Hurd, see <https://issues.guix.gnu.org/65456>.
* guix/self.scm (compiled-modules)[process-directory]: Move hardcoded size to
keyword parameter #:size. Set it to 10 when compiling "guix-packages-base".
This increases the chances of a successful `guix pull' on the Hurd,
see <https://issues.guix.gnu.org/65456>.
* guix/self.scm (compiled-modules)[process-directory]: Split building of
directories into chunks of max 25 files. Also call gc.
The UNCHANGED? comparison would always yield #FALSE, because we have been
comparing lists of strings with lists of symbols.
* guix/upstream.scm (update-package-inputs): Convert string labels to symbols
before comparison.
Fixes <https://issues.guix.gnu.org/58697>.
* guix/gnu-maintenance.scm (import-html-updatable-release): Update doc.
<expand-uri>: New nested procedure. Apply it to the origin URI.
Reported-by: kiasoc5 <kiasoc5@disroot.org>
* guix/transformations.scm (tuned-package): Use either bag-target if
available or bag-system to select the CPU architecture of the package
that is going to be tuned. This enables the tuning of cross-compiled
packages.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes <https://issues.guix.gnu.org/65832>.
* guix/scripts/shell.scm (authorized-shell-directory?): After warning,
continue LOOP to return valid query result for DIRECTORY.
"CC=gcc" is almost always incorrect; people often just don't
notice the incorrectness because they are compiling natively.
For an exception, see tzdata.
"guix style" partially made things worse, so I partially ignored it.
* guix/lint.scm (check-compiler-for-target): New linter.
* tests/lint.scm
("compiler-for-target: unconditional CC=gcc is unacceptable")
("compiler-for-target: looks through G-expressions")
("compiler-for-target: (cc-for-target) is acceptable")
("compiler-for-target: CC=gcc is acceptable when target=#false"):
Test it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix/build/emacs-utils.scm (emacs-compile-directory): After native
compilation, write the bytecode file with ‘comp-write-bytecode-file’.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Fixes <https://issues.guix.gnu.org/65773>.
* guix/gnu-maintenance.scm (rewrite-url): Do not error when there are no
candidates. This may well be possible, depending on the site.
* guix/scripts/time-machine.scm (guix-time-machine)
<validate-guix-channel>: Update doc. Fall-back to use the Guix channel
reference when REF is #f.
Reported-by: Simon Tournier <zimon.toutoune@gmail.com>
Co-authored-by: Simon Tournier <zimon.toutoune@gmail.com>
Updating the simh package would fail with:
ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure
string-prefix?: Wrong type argument in position 2 (expecting
string): ("http://simh.trailing-edge.com/sources/simhv312-4.zip"
"http://simh.trailing-edge.com/sources/archive/simhv312-4.zip")
This is because it expects a scalar value, but lists are allowed for URIs.
* guix/gnu-maintenance.scm (import-html-updatable-release): Check that URI is
a string before checking if it has the mirror:// prefix.
* guix/gnu-maintenance.scm (release-file?): Use positive logic in doc.
Add a special case for Qt source archives.
* tests/gnu-maintenance.scm ("release-file?"): Update test.
* guix/gnu-maintenance.scm (http-url?): Extract from html-updatable-package?,
modify to return the HTTP URL, and support the mirror:// scheme.
(%disallowed-hosting-sites): New variable, extracted from
html-updatable-package.
(html-updatable-package?): Rewrite a mirror:// URL to an HTTP or HTTPS one.
* guix/download.scm (%mirrors): Update comment.
Fixes <https://issues.guix.gnu.org/64015>.
Fixes <https://issues.guix.gnu.org/65304>.
Previously, the generic HTML updater would only look for the list of files
found at the parent of its current source URL, ignoring that the URL may embed
the version elsewhere in its path. This could cause 'guix refresh' to report
no updates available, while in fact there were, such as for 'libuv'.
* guix/gnu-maintenance.scm (strip-trailing-slash): New procedure.
(%version-rx): New variable.
(rewrite-url): New procedure.
(import-html-release): New rewrite-url? argument. When true, use the above
procedure.
(import-html-updatable-release): Call import-html-release with #:rewrite-url
set to #t.
* tests/gnu-maintenance.scm ("rewrite-url, to-version specified")
("rewrite-url, without to-version"): New tests.
* guix/gnu-maintenance.scm
(canonicalize-url): New procedure, extracted from...
(import-html-release): ... here. Use it. Rename inner PACKAGE variable to
NAME, to explicit it is a string and not a package object.
This is in preparation for a new URL rewriting feature, which will need to
have the current version information available.
* guix/gnu-maintenance.scm (import-html-release): Update doc. Adjust default
value of the DIRECTORY argument. Bind PACKAGE in lexical scope so that its
value there is unchanged.
(import-savannah-release, import-kernel.org-release)
(import-html-updatable-release): Adjust accordingly.
It doesn't make sense to have it default to something like
"https://kernel.org/pub"; it should always be provided explicitly.
* guix/gnu-maintenance.scm (import-html-release) <#:base-url>: Turn keyword
argument into a positional argument. Update doc.
* guix/gnu-maintenance.scm (import-savannah-release): Adjust call accordingly.
(import-kernel.org-release): Likewise.
(import-html-updatable-release): Likewise.
* gnu/system/image.scm (mbr-disk-image, mbr-raw-image-type): New variables.
(qcow2-image-type): Inherit mbr-disk-image.
* guix/scripts/system.scm (%default-options): Use mbr-raw-image-type by
default.
* gnu/tests/install.scm (run-install): Use mbr-raw in the tests.
* doc/guix-cookbook.texi (Guix System Image API): Update the list of image
types.
* doc/guix.texi (Invoking guix system, System Images, image-type Reference):
Add mbr-raw and switch documented default to it.
This fixes <https://issues.guix.gnu.org/65474>.
* guix/profiles.scm (texlive-font-maps): Also check for TeX Live dependencies
in non "texlive-" prefixed packages.
For example, PYTHON-NBCONVERT propagates TeX Live inputs. Those need to be
found out when building ".map"" files.
Co-authored-by: Andreas Enge <andreas@enge.fr>
Similar to the Makefile.am change, this breaks-up gnu/packages into 26 chunks
when building on 32bit. Also force garbage collection.
* guix/self.scm (compiled-modules)[process-directory]: Split building of
"gnu/packages" into 26 chunks.
This allows users to write Bash commands like:
guix time-machine -C <(echo %default-channels) -- ...
or:
guix build -m <(echo '(specifications->manifest (list "guile"))')
Previously, on GNU/Linux, they would fail with:
error: failed to load '/dev/fd/63': No such file or directory
* guix/ui.scm (try-canonicalize-path): New procedure.
(load*): Use it.
* tests/guix-build.sh: Test 'guix build -m' with a /dev/fd/N file.
* doc/guix.texi (Invoking guix time-machine): Document limitation.
* guix/inferior.scm (cached-channel-instance): New VALIDATE-CHANNELS
argument. Use it to validate channels when there are no cache hit.
* guix/scripts/time-machine.scm
(%options): Tag the given reference with 'tag-or-commit instead of 'commit.
(%oldest-possible-commit): New variable.
(guix-time-machine) <validate-guix-channel>: New nested procedure. Pass it to
the 'cached-channel-instance' call.
* tests/guix-time-machine.sh: New test.
* Makefile.am (SH_TESTS): Register it.
Suggested-by: Simon Tournier <zimon.toutoune@gmail.com>
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
* guix/git.scm (update-cached-checkout): Clarify that it is the relation of
STARTING-COMMIT that is returned, relative to the new commit, not the other
way around.
Previously 'guix home container' would create a container without /tmp,
which would prevent 'least-authority-wrapper' programs from starting,
for example.
* guix/scripts/home.scm (spawn-home-container): Create /tmp if it
doesn't exist yet.
* guix/import/texlive.scm (linked-scripts): Also check for scripts with ".rb" extension.
(tlpdb->package): Add proper RUBY input for Ruby linked scripts.
Some qml files have optional or circular dependencies, use 'prefix' instead of
'=' to get those dependencies from environment/profile.
* guix/build/qt-utils.scm (variables-for-wrapping): Use 'prefix' for
QML2_IMPORT_PATH.
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>