Commit Graph

7695 Commits

Author SHA1 Message Date
Ludovic Courtès
6454788a5c
build-system/composer: Do not import host-side Guile-JSON modules.
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
2023-12-18 23:16:57 +01:00
Nicolas Graves
9dab758791
build-system: Add ‘composer-build-system’.
* guix/build-system/composer.scm: New file.
* guix/build/composer-build-system.scm: New file.
* gnu/packages/aux-files/findclass.php: New file.
* Makefile.am: Add them.
* doc/guix.texi (Build Systems): Document it.

Co-authored-by: Julien Lepiller <julien@lepiller.eu>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Ie6a05b42ff04d3ad774a0a20278a77e4820bb8f6
2023-12-18 23:16:55 +01:00
Nicolas Graves
b7e3945283
guix: import: Add composer importer.
* guix/import/composer.scm: New file.
* guix/scripts/import/composer.scm: New file.
* guix/tests/composer.scm: New file.
* Makefile.am: Add them.
* guix/scripts/import.scm: Add composer importer.
* doc/guix.texi (Invoking guix import): Mention it.

Change-Id: I44a89b8cc80ef5b4a3cd15e8fbba4a18c1cea0b1

Co-authored-by: Julien Lepiller <julien@lepiller.eu>
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-12-18 23:16:28 +01:00
Pierre-Henry Fröhring
e0e6d659b5
build-system: Add mix-build-system.
* 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>
2023-12-17 22:22:30 +01:00
Tobias Geerinckx-Rice
766822aa87
download: Update Apache mirror list.
* guix/download.scm (%mirrors): Remove several vanished hosts and all
FTP URLs.  Use HTTPS where supported.  Add some new HTTPS mirrors.

Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95
2023-12-17 01:00:00 +01:00
Tobias Geerinckx-Rice
0a7cdaec87
download: Update KDE mirror list.
* guix/download.scm (%mirrors): Update one mirror URL and remove 2 dead
ones.

Change-Id: Ibdc03f0b7df94b73bb5be0fda5a6244b017e747e
2023-12-17 01:00:00 +01:00
Tobias Geerinckx-Rice
970d956128
download: Remove dead SourceForge mirrors.
* guix/download.scm (%mirrors): Remove 2 dead mirror URLs.

Change-Id: I7f0e15ab5499df26fdf0b1702f8bea73c8ec8230
2023-12-17 01:00:00 +01:00
Felix Lechner
7f2583cf55
deprecation: Fix docstring typo.
* guix/deprecation.scm (define-deprecated/public): Fix docstring.

Change-Id: I895b1a86654b2756a9f98e858c622e8e7a6e2c27
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-22 17:47:15 +01:00
Ludovic Courtès
7578c25b93
least-authority: Add support for changing UIDs/GIDs before exec.
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
2023-12-22 00:31:41 +01:00
Ludovic Courtès
11a454f9da
gexp: #:references-graphs accepts and honors <gexp-input> records.
* guix/gexp.scm (lower-reference-graphs)[tuple->gexp-input]: Add
‘gexp-input?’ case.
(gexp->derivation): Update docstring.
* doc/guix.texi (G-Expressions): Adjust accordingly.
* tests/gexp.scm ("references-file, non-default output"): New test.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I595cb75da0867ab8ab44552887dc06ed1d23315e
2023-12-22 00:31:40 +01:00
Ludovic Courtès
d9190abbd2
gexp: Add compiler for <gexp-input>.
* guix/gexp.scm (gexp-input-compiler): New procedure.
* tests/gexp.scm ("gexp references non-existent output")
("gexp-input, as first-class input"): New tests.
* doc/guix.texi (G-Expressions): Document it.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I95b58d6e4d77a54364026b4324fbb00125a9402e
2023-12-22 00:31:40 +01:00
Efraim Flashner
6aade039e1
guix: import: Report go version for go importer.
* 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
2023-12-16 18:05:58 +02:00
Efraim Flashner
e35dd13d8a
guix: import: Don't include indirect dependencies in go.
* 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
2023-12-16 18:05:58 +02:00
Ludovic Courtès
8662741531
build-system/zig: Do not import (guix build syscalls).
* guix/build-system/zig.scm (%zig-build-system-modules): Remove (guix
build syscalls), which is unused.

Change-Id: Ie91c46c68787e0a8ffa3cbde2c5fd2294b82ed15
2023-12-14 23:12:23 +01:00
Liliana Marie Prikler
4c323c2f83
Merge branch 'master' into HEAD
Change-Id: I3f5d121162d98ef2ae61a62c4da3b0fd19d864e8
2023-12-03 07:20:53 +01:00
Janneke Nieuwenhuizen
b0715d7cd2
gnu: Use ‘libc-utf8-locales-for-target’.
* guix/packages.scm (%standard-patch-inputs): Use
‘libc-utf8-locales-for-target’ instead of ‘glibc-utf8-locales’.
* guix/self.scm (%packages): Likewise.
* gnu/home/services/ssh.scm (file-join): Likewise
* gnu/installer.scm (build-compiled-file): Likewise.
* gnu/packages/chromium.scm (ungoogled-chromium/wayland): Likewise.
* gnu/packages/gnome.scm (libgweather4, tracker): Likewise.
* gnu/packages/javascript.scm (js-mathjax): Likewise.
* gnu/packages/package-management.scm (guix, flatpak): Likewise.
* gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader): Likewise.
* gnu/packages/suckless.scm (svkbd): Likewise.
* gnu/services.scm (cleanup-gexp): Likewise.
* gnu/services/base.scm (guix-publish-shepherd-service): Likewise.
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services)
(guix-build-coordinator-agent-shepherd-services): Likewise.
* gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services):
(guix-data-service-shepherd-services)
(nar-herder-shepherd-services)
(bffe-shepherd-services): Likewise.
* gnu/services/web.scm (anonip-shepherd-service)
(mumi-shepherd-services): Likewise.
* gnu/system/image.scm (system-disk-image, system-iso9660-image)
(system-docker-image, system-tarball-image): Likewise.
* gnu/system/install.scm (%installation-services): Likewise.
* guix/profiles.scm (info-dir-file): Likewise.
(ca-certificate-bundle, profile-derivation): Likewise.
* guix/scripts/pack.scm (store-database, set-utf8-locale): Likewise.
* tests/pack.scm: Likewise.
* tests/profiles.scm ("profile-derivation, cross-compilation"):
Likewise.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Co-authored-by: Christopher Baines <mail@cbaines.net>
Change-Id: I24239f427bcc930c29d2ba5d00dc615960a6c374
2023-12-02 12:25:45 +01:00
Liliana Marie Prikler
1cc3b7e80f
Merge branch 'master' into gnome-team
Change-Id: I62da840b7600f2d3d8541e666d09e2f2a1b7d8c4
2023-11-19 10:02:15 +01:00
Tomas Volf
3493832260
build-system/guile: Add target-guile-scm+go procedure.
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>
2023-11-15 18:29:37 +01:00
Ludovic Courtès
69d9a02094
locate: Accept ‘--clear’ without additional arguments.
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
2023-11-15 18:29:37 +01:00
Liliana Marie Prikler
72e886328c
Merge branch 'master' into gnome-team
Change-Id: I88d3789460d1a89917451d80405d89a2824006ac
2023-11-04 07:43:44 +01:00
Ricardo Wurmus
7a14f9365a
guix: Upgrade to Bioconductor 3.18.
* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to
3.18.
* guix/import/cran.scm (%bioconductor-version): Same.

Change-Id: Ic3fc2e6ab6b5f6f6e55662f81baee67391158c5b
2023-11-03 22:49:10 +01:00
Liliana Marie Prikler
5de8779ad9
guix: emacs-build-system: Process package source in build tree.
* 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.
2023-11-01 20:44:28 +01:00
Liliana Marie Prikler
e38d6a9c2f
Merge branch 'master' into gnome-team
Change-Id: Ib6f55bebef2fb235fa59fd5442102a3e0ace3191
2023-10-23 21:09:49 +02:00
Sören Tempel
dae956e796
syscalls: Consistently use existing linux? definition.
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
2023-10-23 11:58:16 +02:00
Sören Tempel
54e6788267
syscalls: Add support for musl libc.
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
2023-10-23 11:56:54 +02:00
Ludovic Courtès
48c1a74b24
build-system/dub: Remove dependency on (guix build syscalls).
The (guix build syscalls) module was unused.

* guix/build-system/dub.scm (%dub-build-system-modules): Remove (guix
build syscalls).
2023-10-23 11:56:54 +02:00
Ludovic Courtès
4b5e31dc5e
build-system/android-ndk: Remove dependency on (guix build syscalls).
The (guix build syscalls) module was unused.

* guix/build-system/android-ndk.scm (%android-ndk-build-system-modules):
Remove (guix build syscalls).
2023-10-23 11:56:54 +02:00
Ludovic Courtès
542c906f16
build-system/ant: Remove dependency on (guix build syscalls).
The module has been unused since
a6343af221.

* guix/build-system/ant.scm (%ant-build-system-modules): Remove (guix
build syscalls).
2023-10-23 11:56:54 +02:00
Efraim Flashner
742554f9b9
guix: import: Don't import yanked rust crates.
* 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.
2023-10-22 16:46:39 +03:00
Efraim Flashner
84fbfa82af
build-system/go: Use gccgo when go isn't supported.
* guix/build-system/go.scm (default-gccgo): New variable.
(lower): Only use default-go when it is supported.

Change-Id: I30564d97703344df582accaf741f4fcd159b6be1
2023-10-28 22:02:32 +03:00
Liliana Marie Prikler
24fee2615c
Merge branch 'master' into gnome-team 2023-10-09 21:21:29 +02:00
Ricardo Wurmus
9d4339afb1
build-system/minify: Use esbuild.
* 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.
2023-10-06 16:37:16 +02:00
Ludovic Courtès
762fdbdef5
perform-download: Set PATH before invoking ‘git’.
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’.
2023-10-05 23:14:53 +02:00
Ricardo Wurmus
3fba8cd274
refresh: Fix sorting of updates by file and line number.
* guix/scripts/refresh.scm (guix-refresh): Add cascade-sort procedure and use
it to sort specs by package location.
2023-10-05 15:16:26 +02:00
Maxim Cournoyer
2d8aa104aa
search-paths: Add GCC search paths.
* guix/search-paths.scm ($C_INCLUDE_PATH, $CPLUS_INCLUDE_PATH)
($LIBRARY_PATH, %gcc-search-paths): New variables.
2023-10-04 23:30:41 -04:00
Jean-Pierre De Jesus DIAZ
3ba8f3f0d8
guix: meson-configuration: Fix boolean assigment.
* 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>
2023-10-04 14:58:42 +02:00
Liliana Marie Prikler
7d134b57b7
Merge branch 'master' into gnome-team 2023-09-30 11:54:32 +02:00
Liliana Marie Prikler
b18b2d1348
Merge branch 'master' into gnome-team 2023-09-24 12:19:01 +02:00
Nikolaos Chatzikonstantinou
c6eed13c87
archive: Fix ‘--version’ typo.
* guix/scripts/archive.scm (%options): Replace 'build' by 'archive'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-28 11:44:09 +02:00
Tobias Geerinckx-Rice
974b04ab80
read-print: Be more mindful of horizontal space in packages.
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.
2023-09-24 02:00:00 +02:00
Ludovic Courtès
13b0cf85eb
git-download: Use “builtin:git-download” when available.
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.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
c4a1d69a69
perform-download: Use the ‘git’ command captured at configure time.
* guix/scripts/perform-download.scm (perform-git-download): Pass #:git-command
to ‘git-fetch-with-fallback’.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
f651a35969
build: Add dependency on Git.
* 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.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
95f2123135
daemon: Add “git-download” built-in builder.
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.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
9d0e2002a5
perform-download: Remove unused one-argument clause.
Code in ‘builtins.cc’ only ever invokes ‘guix perform-download’ with two
arguments.

* guix/scripts/perform-download.scm (guix-perform-download): Remove
unused one-argument clause.
(perform-download): Make ‘output’ parameter mandatory; remove ‘output*’
variable.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
c7ed1e0160
git-download: Honor the ‘GUIX_DOWNLOAD_FALLBACK_TEST’ environment variable.
* guix/git-download.scm (git-fetch): Honor ‘%download-fallback-test’.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
811b249397
git-download: Move fallback code to (guix build git).
* 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’.
2023-09-26 17:36:57 +02:00
Simon Tournier
94f3831e5b
git: Restore 'false-if-git-not-found' in 'reference-available?'.
* guix/git/scm (reference-available?): Add 'false-if-git-not-found' for the
case 'commit.
2023-09-25 12:00:18 +02:00
Liliana Marie Prikler
cdbd81ce14
Merge branch 'master' into emacs-team 2023-09-22 23:54:34 +02:00
Simon Tournier
6d33c1f806
git: Avoid touching the network unless needed in 'reference-available?'.
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.
2023-09-22 14:42:56 +02:00
Mathieu Othacehe
e5ed1712da
image: Introduce the mbr-hybrid-raw image type.
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>
2023-09-20 09:38:36 +02:00
Janneke Nieuwenhuizen
15c5f1a2c2
self: Compile guix-packages-base in chunks of 10 files.
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".
2023-09-19 11:01:14 +02:00
Janneke Nieuwenhuizen
658de25e99
self: Build directories in chunks of max 25 files at a time.
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.
2023-09-18 06:46:03 +02:00
Liliana Marie Prikler
e9ff5d51e3
Merge branch 'master' into gnome-team. 2023-09-15 18:47:00 +02:00
Ricardo Wurmus
b6441f7bd0
upstream: Compare symbols to symbols.
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.
2023-09-13 22:17:21 +02:00
Maxim Cournoyer
f0e05411bd
search-paths: Add $TZDIR.
* guix/search-paths.scm ($TZDIR): New search path.
2023-09-12 10:03:44 -04:00
Maxim Cournoyer
2a7f031ca9
gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.
This reinstate commit a5b5df7f7f with a fix to
the inner expand-uri procedure.
2023-09-11 23:39:13 -04:00
Maxim Cournoyer
a9d5d1d9dd
Revert "gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs."
This reverts commit a5b5df7f7f.  Pushed too
early.
2023-09-11 23:30:43 -04:00
Maxim Cournoyer
a5b5df7f7f
gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.
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>
2023-09-11 22:53:38 -04:00
Jean-Pierre De Jesus DIAZ
19b6173708
transformations: tuned-package: Use target on cross-compile.
* 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>
2023-09-17 15:31:03 +02:00
Liliana Marie Prikler
94ca5b4357
Merge branch 'master' into emacs-team 2023-09-09 12:22:14 +02:00
Janneke Nieuwenhuizen
1ef4974be9
guix: shell: Don't whitelist / by typo in `shell-authorized-directories'.
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.
2023-09-08 22:51:25 +02:00
Maxime Devos
96eda590e1
lint: Check that (cc-for-target) and friends are used.
"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>
2023-09-08 19:12:15 +02:00
Liliana Marie Prikler
20e3f3e115
Merge branch 'master' into gnome-team 2023-09-07 20:42:03 +02:00
Hilton Chain
4a00fa9bea
build: emacs-utils: Adjust ‘emacs-compile-directory’ for Emacs 29.
* 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>
2023-09-07 20:25:06 +02:00
Simon Tournier
d552c2508f
guix: packages: Support package/inherit by package-field-location.
Fixes <https://issues.guix.gnu.org/65236>.

* guix/packages.scm (package-field-location): Add package/inherit case.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-09-06 16:41:06 -04:00
Maxim Cournoyer
87dab3e36b
gnu-maintenance: Do not error when there are no candidates.
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.
2023-09-06 01:03:27 -04:00
Maxim Cournoyer
a87d722570
git: Fix typo in reference-available? comment.
* guix/git.scm (reference-available?): Fix typo.
2023-09-05 23:04:26 -04:00
Maxim Cournoyer
c3d48d024b
time-machine: Also validate the reference from a channels file.
* 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>
2023-09-05 19:52:20 -04:00
Maxim Cournoyer
756e336fa0
Revert "guix: git: Avoid touching the network unless needed in 'reference-available?'."
This reverts commit a789dd5865, which broke
e.g.:

  guix time-machine -C <(echo %default-channels) -- describe

Add an explanatory comment as suggested.

Reported-by: Ludovic Courtès <ludo@gnu.org>
2023-09-05 19:52:20 -04:00
Maxim Cournoyer
fd09e7b053
gnu-maintenance: Do not crash on refresh when origin URI is a list.
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.
2023-09-05 19:52:19 -04:00
Liliana Marie Prikler
baf5b07454
Merge tracking branch 'master' into gnome-team. 2023-08-27 08:11:03 +02:00
Maxim Cournoyer
1dce887776
gnu-maintenance: Consider Qt source tarballs as "release files".
* 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.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
bdaef69556
gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater.
* 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.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
6953fb9241
gnu-maintenance: Add support to rewrite version in URL path.
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.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
6fb8cc312d
gnu-maintenance: Extract 'canonicalize-url' from 'import-html-release'.
* 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.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
2654232660
gnu-maintenance: Document nested procedures in 'import-html-release'.
* guix/gnu-maintenance.scm (import-html-release): Add docstring to the
'file->signature/guess' and 'url->release' nested procedures.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
c6b5eeac92
gnu-maintenance: Accept package object in 'import-html-release' procedure.
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.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
a5e67dec2a
gnu-maintenance: Fix indentation.
* guix/gnu-maintenance.scm: Re-indent file.
2023-08-26 11:38:55 -04:00
Maxim Cournoyer
f6cfc993ac
gnu-maintenance: Extract url->links procedure.
* guix/gnu-maintenance.scm (url->links): New procedure.
(import-html-release): Use it.
2023-08-26 11:38:55 -04:00
Maxim Cournoyer
610d0e30e0
gnu-maintenance: Fix docstring.
* guix/gnu-maintenance.scm (import-kernel.org-release): Fix docstring.
2023-08-26 11:38:55 -04:00
Maxim Cournoyer
4110cc4f75
gnu-maintenance: Make base-url argument of import-html-release required.
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.
2023-08-26 11:38:55 -04:00
Liliana Marie Prikler
9d074e16c7
Merge branch 'master' into emacs-team 2023-08-26 07:08:03 +02:00
Josselin Poiret
106ad23ae4
graph: Add GraphML backend.
* guix/graph.scm (emit-graphml-prologue, emit-graphml-epilogue,
emit-graphml-node, emit-graphml-edge): New procedures.
(%graphml-backend): New variable.
(%graph-backends): Add %graphml-backend.
2023-08-25 14:24:43 +02:00
Josselin Poiret
d57cab7641
image: Add mbr-raw-image-type and use by default.
* 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.
2023-08-25 14:24:21 +02:00
Nicolas Goaziou
738b0e4ccc
guix: profiles: Detect TeX Live packages propagated from non-TeX Live inputs.
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>
2023-08-24 16:03:18 +02:00
Ludovic Courtès
f4d0d0bd5e
Revert "self: Build gnu/packages/*.go in 26 steps."
This reverts commit 5898b2e8a3, which led
to Guix where many .go files would be missing, as reported in
<https://issues.guix.gnu.org/65456>.
2023-08-22 23:50:53 +02:00
Janneke Nieuwenhuizen
5898b2e8a3
self: Build gnu/packages/*.go in 26 steps.
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.
2023-08-22 21:21:34 +02:00
Maxim Cournoyer
c655231b72
gnu-maintenance: Improve check for disabled host names.
Found while investigating <https://issues.guix.gnu.org/65304>.

* guix/gnu-maintenance.scm (html-updatable-package?): Tighten predicate.

Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-08-22 12:38:50 -04:00
Maxim Cournoyer
91c8bd01f8
download: Add mirrors for Qt.
* guix/download.scm (%mirrors): Augment with qt mirrors.

Series-changes: 2
- Move authoritative mirror last, as it's too slow.
2023-08-22 12:32:19 -04:00
Attila Lendvai
e318b62df3
ssh: Also print the user when authentication fails.
* guix/ssh.scm (open-ssh-session): Show user in error message.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-22 11:17:53 +02:00
Liliana Marie Prikler
f62efeff76
Merge branch 'master' into gnome-team 2023-08-19 20:15:57 +02:00
Liliana Marie Prikler
50b2db40ea
guix: emacs-utils: Add ert-number-tests.
* guix/build/utils.scm (ert-number-tests): New variable.
2023-08-19 01:37:20 +02:00
宋文武
597af70fd2
Merge branch 'kde-updates' 2023-08-19 05:02:00 +08:00
Ludovic Courtès
9c8098424b
pull, time-machine: Add '-q' to ignore channel files.
This also fixes <https://issues.guix.gnu.org/63726>.

* guix/scripts/pull.scm (show-help, %options): Add '-q'.
(channel-list): Honor it.
* guix/scripts/time-machine.scm (show-help, %options): Add '-q'.
* doc/guix.texi (Invoking guix pull, Invoking guix time-machine):
Document it.

Reported-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-08-17 17:33:53 +02:00
Ludovic Courtès
3363ff1867
ui: 'load*' accepts /dev/fd/N files pointing to a pipe.
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.
2023-08-17 17:33:53 +02:00
宋文武
0ffbdf3456
Merge remote-tracking branch 'origin/master' into kde-updates 2023-08-17 18:38:23 +08:00
Maxim Cournoyer
79ec651a28
scripts: time-machine: Error when attempting to visit too old commits.
* 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>
2023-08-16 21:34:13 -04:00
Maxim Cournoyer
ecab937897
pull: Tag commit argument with 'tag-or-commit.
For compatibility with (guix git) procedures.

* guix/scripts/pull.scm (channel-list): Also accept tag-or-commit tagged
refspec.
2023-08-16 21:34:13 -04:00
Maxim Cournoyer
addffd0988
git: Clarify commit relation reference in doc.
* 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.
2023-08-16 21:34:13 -04:00
Ludovic Courtès
bb7369ba8a
guix home: Create /tmp in container if needed.
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.
2023-08-16 22:09:38 +02:00
Nicolas Goaziou
1804a99d05
guix: import: texlive importer handles Ruby linked scripts.
* guix/import/texlive.scm (linked-scripts): Also check for scripts with ".rb" extension.
(tlpdb->package): Add proper RUBY input for Ruby linked scripts.
2023-08-16 11:47:09 +02:00
Maxim Cournoyer
2884abb3df
refresh: Add --target-version option.
* guix/scripts/refresh.scm (%options): Register 'target-version' long version.
(update-specification->update-spec): Add a fallback-version argument.
(options->update-specs): Honor target-version option.
* tests/guix-refresh.sh: Test it.
* doc/guix.texi (Invoking guix refresh): Document it.

Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-08-15 09:38:29 -04:00
Nicolas Goaziou
1619f2c18c
guix: import: Do not prefix `fsf-free' with "license:" in texlive.
* guix/import/texlive.scm (tlpdb->package): For consistency with other
imported licenses, `fsf-free' need not be prefixed with "license:".
2023-08-14 13:44:06 +02:00
Nicolas Goaziou
6f03e4be85
guix: import: Handle X11 license in texlive importer.
* guix/import/texlive.scm (string->license): Recognize X11 license.
2023-08-14 13:42:52 +02:00
Nicolas Graves
9be28375cf
reconfigure: Use let* from srfi-71.
* guix/scripts/system/reconfigure.scm (upgrade-shepherd-services): Merge
'let' + 'let*' in just 'let*'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-12 23:07:40 +02:00
fanquake
bcdafd00a3
platform: Add powerpc64-linux.
* guix/platforms/powerpc.scm (powerpc64-linux): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-12 23:02:31 +02:00
宋文武
770f3f587d
Merge remote-tracking branch 'origin/master' into kde-updates 2023-08-11 20:19:52 +08:00
Zheng Junjie
3e5192e6bb
build: qt-utils: Wrap QML2_IMPORT_PATH with 'prefix' location.
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>
2023-08-02 22:27:43 +08:00
Liliana Marie Prikler
4eca7833ef
Merge branch 'master' into gnome-team 2023-07-30 08:46:42 +02:00
walky_talky
3f092e4d76
licenses: Add Arphic-1999 (Aprhic Public License).
* guix/licenses.scm (arphic-1999): New variable.
* guix/import/utils.scm (%spdx-license-identifiers): Add Arphic-1999.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-08-01 19:40:19 +08:00
MarcoFalke
d5ca4d4fd7
syscalls: Define riscv64 syscall ID for clone.
* guix/build/syscalls.scm (clone): Add an entry for riscv64.

This allows the use of --container on riscv64.

Change-Id: I12b3cb5e2aa248266d006b6e456082f4ddc70e62
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-13 12:58:43 +01:00
Efraim Flashner
c9e1a72cc2
Merge branch 'rust-team'
Change-Id: Iee33d7b9067d2180fd4b2e28d81716a251a53a01
2023-12-13 09:28:20 +02:00
Ludovic Courtès
4348947c74
weather: Report unauthorized substitute servers.
The goal is to make it easier to diagnose substitute
misconfiguration (where we’re passing a substitute URL whose
corresponding key is not authorized).

Suggested by Emmanuel Agullo.

* guix/scripts/weather.scm (check-narinfo-authorization): New procedure.
(report-server-coverage): Use it.
* doc/guix.texi (Invoking guix weather): Document it.
(Getting Substitutes from Other Servers): Add “Troubleshooting” frame.

Change-Id: I0a049c39eefb10d6a06634c8b16aa86902769791
2023-12-11 23:19:04 +01:00
Ludovic Courtès
7e11369586
weather: Use the same substitute URLs as guix-daemon.
* guix/scripts/weather.scm (%default-options): Remove ‘substitute-urls’.
(guix-weather): Call ‘substitute-urls’ when OPTS doesn’t have it.  Warn
when ‘substitute-urls’ returns #f.
* doc/guix.texi (Invoking guix weather): Adjust accordingly.

Change-Id: I3e9100074f2ad559e5c408660db70430d64f2bef
2023-12-11 23:19:00 +01:00
Ludovic Courtès
f63a8c5ca2
challenge: Use the same substitute URLs as guix-daemon.
* guix/scripts/challenge.scm (%default-options): Remove ‘substitute-urls’.
(guix-challenge): Call ‘substitute-urls’ when OPTS doesn’t have it.  Warn
when ‘substitute-urls’ returns #f.

Change-Id: I49be0e89404c1889970a3430967fbb3498d35d99
2023-12-11 23:18:57 +01:00
Ludovic Courtès
1e47148f46
daemon: Implement ‘substitute-urls’ RPC.
* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump.
(WorkerOp): Add ‘wopSubstituteURLs’.
* nix/nix-daemon/nix-daemon.cc (performOp): Implement it.
* guix/store.scm (%protocol-version): Bump.
(operation-id): Add ‘substitute-urls’.
(substitute-urls): New procedure.
* tests/store.scm ("substitute-urls, default")
("substitute-urls, client-specified URLs")
("substitute-urls, disabled"): New tests.

Change-Id: I2c0119500c3a1eecfa5ebf32463ffb0f173161de
2023-12-11 23:18:53 +01:00
Efraim Flashner
34eaf5714e
Merge remote-tracking branch 'origin/master' into rust-team
Change-Id: Ic45f7071abd6a02c2ccad411500e5103c8272ffb
2023-12-10 13:25:47 +02:00
Efraim Flashner
55faf486c7
build: cargo: Use correct config file for cargo config.
* guix/build/cargo-build-system.scm (configure): Use .cargo/config as
the config file.  Add a note.

Change-Id: Ice006c11184d4c8e1bdb765c3998b06ad299e55b
2023-11-28 12:58:36 +02:00
Efraim Flashner
e604972d9c
build/cargo-build-system: Enable cross-compiling.
* guix/build-system/cargo.scm (default-rust): Accept an argument.
(default-rust-sysroot, cargo-cross-build): New procedures.
(lower): Accept a rust-sysroot.
[private-kewords]: Add rust-sysroot.  Remove target if cross-compiling.
[bag]: Allow cross-compiling.  In host-inputs only have inputs when
cross-compiling, move crate sources to here, remove standard-packages.
In build-inputs add the inputs when not cross-compiling, add the
standard-cross-packages when cross-compiling, add the standard-packages
to here.  Add target-inputs with the standard-cross-packages and
rust-sysroot when cross-compiling.
* guix/build/cargo-build-system.scm (configure): Accept target argument.
When cross-compiling set some environment variables.  Adjust the
.config/cargo.toml to have configure options for cross-compiling.

Change-Id: I388d1e1f48943e45ff01f55af8efc0746f383b4a
2023-11-28 07:59:43 +02:00
Efraim Flashner
63ccceb976
build: cargo-build-system: Pack crates reproducibly.
This fixes reproducibility in rust crates from the package phase, again,
see <https://issues.guix.gnu.org/50015>.

Reported by: Christopher Baines (in person).

* guix/build/cargo-build-system.scm (package): When repacking the crate
tarball use standard reproducibility flags.

Change-Id: Ifb1440a023226bf0718e99ce9f95ef981e510cbc
2023-11-28 07:59:07 +02:00
Ludovic Courtès
d98a0203b7
shell: ‘--development’ honors ‘--system’.
Fixes a bug whereby ‘package->development-manifest’ would run with the
wrong system in mind, leading to errors like this:

  $ guix shell -s i586-gnu -D shepherd --no-grafts
  guix shell: error: package linux-libre-headers@5.15.49 does not support i586-gnu

* guix/scripts/environment.scm (options/resolve-packages): Define
‘system’ and pass it to ‘package->development-manifest’.’
* tests/guix-shell.sh: Test it.

Change-Id: I95c471c1918913ab80dec7d3ca64fe38583cce78
2023-12-06 23:50:04 +01:00
Ludovic Courtès
3178b1a442
monad-repl: Add REPL commands to inspect package arguments.
* guix/monad-repl.scm (keyword-argument-value, package-argument-command):
New procedures.
(phases, configure-flags, make-flags): New REPL commands.
* doc/guix.texi (package Reference): Link to “Using Guix Interactively”.
(Defining Package Variants): Add “Tips” quotation.
(Build Phases): Add “Tip” quotation.
(Using Guix Interactively): Document the new REPL commands.

Change-Id: I7049c1d8aa9241e07d7c921aa396e578a1b4ef16
2023-12-04 22:26:38 +01:00
Ludovic Courtès
06b9c1260c
substitute: Do not exit when failing to find a nar.
Fixes <https://issues.guix.gnu.org/67575>.

* guix/scripts/substitute.scm (process-substitution/fallback): Use
‘report-error’ instead of ‘leave’.  Write status line to PORT.
* tests/substitute.scm ("substitute, narinfo is available but nar is
missing"): Adjust accordingly.

Change-Id: Ic7297dbd563c007111ec2167c8d52505a07d4822
2023-12-04 22:26:36 +01:00
Efraim Flashner
1d2d6aaeaf
Revert "build/go: Don't use set!"
This causes too many rebuilds.

This reverts commit 0a4b6fd51a.
2023-12-04 13:19:53 +02:00
Efraim Flashner
0a4b6fd51a
build/go: Don't use set!
This causes build failures on powerpc-linux.

* guix/build/go-build-system.scm (unpack): When the unpack-path is unset
use the import-path but don't redefine the unpack-path.

Change-Id: I2b5a36eb738abb14307941d388038139dbaf2bdf
2023-12-04 11:52:22 +02:00
Ludovic Courtès
2447c1b608
packages: Honor target system for the inputs to ‘patch-and-repack’.
* guix/packages.scm (%standard-patch-inputs): Add ‘system’ parameter.
Parameterize ‘%current-system’.
(patch-and-repack): Pass SYSTEM to ‘%standard-patch-inputs’.

Change-Id: Ic8ad93303332fd1eefba0a93a314f99db782eda6
2023-12-03 23:55:08 +01:00
Ludovic Courtès
3dda74a546
grafts: Use the right locale package.
This is a followup to b0715d7cd2, fixing
builds of grafts on i586-gnu.

* guix/grafts.scm (graft-derivation/shallow)[glibc-locales]: Choose
symbol as a function of ‘target-hurd?’.

Change-Id: I05e50c0ed74a64986a0cea9c6302d1b5592b898d
2023-12-03 23:55:08 +01:00
Saku Laesvuori
ab8612d99e
guix: import: Fix parsing Cabal files that import many stanzas
* guix/import/cabal.scm (eval-cabal)[eval]: Split imports to a
normalized list before mapping over it.
* tests/hackage.scm: Test it.

Change-Id: I39ece019251b6a23a937c8562d2d4a545a6bc7df
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03 16:15:29 +01:00
Saku Laesvuori
5bd00bb542
guix: import: Parse cabal layout blocks correctly
Cabal consideres lines to be part of a layout block if they are indented
at least one space more than the field line the block belongs to.
Previously Guix considered lines to be a part of the block if they were
indented at least as much as the first line in it.

This also makes a workaround that enabled if statements to have multiple
elses redundant and removes it.

Fixes: https://issues.guix.gnu.org/35743

* guix/import/cabal.scm (current-indentation*): Renamed from
current-indentation.
(previous-indentation, current-indentation): New variables.
(make-cabal-parser): Remove outdated comment.
[open]: Use previous-indentation + 1 instead of
current-indentation.
[elif-else]: Split to elif and else to allow only one ELSE in an if
statement.
(read-cabal)[parameterize]: Use current-indentation* and previous-indentation.
* tests/hackage.scm (hackage->guix-package test mixed layout): Expect to
  pass.

Change-Id: I3a1495b1588a022fabbfe8dad9f3231e578af4f3
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03 09:11:29 +01:00
Saku Laesvuori
acef524961
guix: import: stackage: Fix crash on recursive import
* guix/import/stackage.scm (lts-package-version): Call
  stackage-package-version only when the package is found.

Change-Id: Ic8d7c1b7a42a9c1a6cbba567e148706507a53ee3
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03 09:11:29 +01:00
Saku Laesvuori
160385c013
guix: import: hackage: Fix crash on recursive import
Fixes: https://issues.guix.gnu.org/64734

* guix/import/hackage.scm (hackage-module->sexp): Return package names
  instead of <upstream-input> records.

Change-Id: Id428a8b903b4b59d44205ca366324a0a69a4e05b
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03 09:11:29 +01:00
Ekaitz Zarraga
2cc6e09a03
transformations: Add support for zig.
* guix/transformations.scm (tuning-compiler): Add support for zig.

Change-Id: I40bd28071c97c0dd0a907c704072b52b26d2de28
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-03 09:58:34 +02:00
Maciej Kalandyk
ce74e02078
locate: Gracefully handle busy-database error conditions.
* guix/scripts/locate.scm (SQLITE_BUSY): New variable.
(call-with-database): Catch 'sqlite-error and call ‘leave’ upon
SQLITE_BUSY.

Change-Id: Iebe76c75d45e70317bd18d2c176dcdeaf9d6964c
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-11-26 23:34:48 +01:00
Efraim Flashner
25b9d6c149
build-system/vim: Add missing keywords.
* guix/build-system/vim.scm (vim-build): Add missing build-system flags.

Change-Id: Ie0094bb0579987e8432750f883eb56bae8ccd845
2023-11-26 09:51:29 +02:00
Skyler Ferris
13bc0633e7
build-system/meson: Add #:substitutable? argument to build system.
This implemented the same as in gnu-build-system. The gexp->derivation
calls did not need to be modified because they already
passed #:substitutable?, which did not cause an error due to the
procedure exported by the (guix store) module with the same name.

* guix/build-system/meson.scm (meson-build, meson-cross-build): Add
  #:substitutable? argument

Change-Id: I2d56c8130f785a2d6af456ef9f9bfc1b10dc2a50
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-11-25 16:29:26 +01:00
Skyler Ferris
c43077076f
build-system/guile: Add #:substitutable? argument to build system.
This is implemented the same as in gnu-build-system.

* guix/build-system/guile.scm (guile-build, guile-cross-build): Add
  #:substitutable? argument

Change-Id: I04babb81ff1f322833f7ff22cd7580c048b26102
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-11-25 16:29:26 +01:00
Ludovic Courtès
9b48cf8cdd
tests: Import (guix build syscalls) when (guix build store-copy) is used.
Fixes a test failure introduced in
189525412e.

* guix/progress.scm: Autoload (guix build syscalls).
* tests/gexp.scm ("gexp->derivation, store copy"): Add (guix build
syscalls) to the list of imported modules.  Use ‘with-imported-modules’
rather than #:modules.

Change-Id: I8d3fe90f564ef4b1a340f34cee6c08a741f7b836
2023-11-25 16:29:25 +01:00
Ludovic Courtès
a14dafaa01
syscalls: Add fallback case for ‘terminal-string-width’.
This makes ‘terminal-string-width’ synonymous with ‘string-length’ when
running one a statically-linked Guile, as is the case in some unit
tests, instead of throwing ENOSYS.

* guix/build/syscalls.scm (terminal-string-width): Use ‘dynamic-func’
and ‘pointer->procedure’ instead of ‘syscall->procedure’.  Return
‘string-length’ when one of the ‘dynamic-func’ calls fails.

Change-Id: Icf55c9e7c34b46fac91b665fb4a2ecb02160f22e
2023-11-25 16:29:25 +01:00
Ludovic Courtès
5283d24062
shell: Disable caching for ‘guix shell -f guix.scm’.
Fixes <https://issues.guix.gnu.org/64858>.

* guix/scripts/shell.scm (profile-cached-gc-root): Distinguish the two
‘load’ cases; return #f and #f for (load ad-hoc-package _).

Reported-by: Pierre-Henry Fröhring <phfrohring@deeplinks.com>.
Change-Id: I00282fbd41aeed09fb927690945cf65e1f9efe4d
2023-11-22 23:55:12 +01:00
Felix Lechner
762be40098
shell: Correct cache key for ‘guix shell -f guix.scm’.
Partially fixes <https://issues.guix.gnu.org/64858>.

Fixes a bug whereby ‘guix shell -f guix.scm’ would use the same cache
key as ‘guix shell’ in an empty directory (meaning: no packages
specified) and would ignore the mtime of ‘guix.scm’.

* guix/scripts/shell.scm (profile-cached-gc-root): In ‘load’ case,
recognize both the ‘package’ and ‘ad-hoc-package’ tags.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Ice6d0ac43e1dc6bb335a17963364c2cc6bcd076d
2023-11-22 23:55:12 +01:00
Ludovic Courtès
b150c546b0
git: Shell out to ‘git gc’ when necessary.
Fixes <https://issues.guix.gnu.org/65720>.

This fixes a bug whereby libgit2-managed checkouts would keep growing as
we fetch.

* guix/git.scm (packs-in-git-repository, maybe-run-git-gc): New
procedures.
(update-cached-checkout): Use it.
2023-11-22 16:51:47 +01:00
Ludovic Courtès
2c5fb13a05
read-print: Properly indent ‘parameterize’.
Fixes <https://issues.guix.gnu.org/65427>.

* guix/read-print.scm (%special-forms): Add ‘parameterize’.
* tests/read-print.scm: Add test.

Reported-by: Maxime Devos <maximedevos@telenet.be>
Change-Id: I922bffc527ade539cf2eb304acb25bc9c705a459
2023-11-22 16:51:46 +01:00
Ludovic Courtès
c39c89c11e
style: ‘guix style -f’ warns when passed zero arguments.
* guix/scripts/style.scm (guix-style): When OPTS has ‘whole-file?’ set,
warn when FILES is empty.

Change-Id: I494f52ef5d070510d20006e6dd987a6805161bb4
2023-11-22 16:51:45 +01:00
Efraim Flashner
e6af40d7b4
Merge remote-tracking branch 'origin/rust-team' 2023-10-21 20:34:46 +03:00
Ekaitz Zarraga
e011961f99
build-system: Add zig-build-system.
* guix/build-system/zig.scm: New file.
* guix/build/zig-build-system.scm: New file.
* Makefile.am: Add them.
* doc/guix.texi: Document it.
* etc/snippets/yas/scheme-mode/guix-package (build-system): Add
  zig-build-system.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-21 00:27:25 +02:00
Efraim Flashner
003dc790fd
Revert "build: cargo-build-system: Disable tests by default."
This reverts commit 37667443074a6de29f7665868f102111d62f0af9.

This change needs more discussion.
2023-10-18 11:36:31 +03:00
Efraim Flashner
0058ed81b0
build: cargo-build-system: Find more pregenerated files.
* guix/build/cargo-build-system.scm (check-for-pregenerated-files): Also
search for MacOS dynamic libraries.
2023-10-18 11:36:21 +03:00
Efraim Flashner
d631d901d8
build: cargo-build-system: Disable tests by default.
* guix/build-system/cargo.scm (cargo-build): Disable tests by default.
* gnu/packages/admin.scm (greetd, wlgreet, du-dust),
* gnu/packages/bioinformatics.scm (circtools, python-gseapy),
* gnu/packages/crypto.scm (rust-minisign, b3sum),
* gnu/packages/gnome.scm (librsvg),
* gnu/packages/python-crypto.scm (python-blake3,
python-cryptography-rust),
* gnu/packages/python-xyz.scm (python-orjson),
* gnu/packages/rust-apps.scm (agate, alfis, bat, diffr, drill, dutree,
exa, fd, hexyl, hyperfine, i3status-rust, just, maturin, ripgrep, rot8,
rust-swc, rust-cargo-edit, git-interactive-rebase-tool, rust-cbindgen,
rust-cbindgen-0.24, rust-cbindgen-0.19, sniffglue, tectonic, treefmt,
hex, tokei, vivid, watchexec, rbw, rust-analyzer, rust-cargo-c, rtss,
skim, skim-0.7, svd2rust, swayhide, tealdeer, git-absorb, zoxide, htmlq),
* gnu/packages/sequoia.scm (sequoia-sqv),
* gnu/packages/syndication.scm (newsboat),
* gnu/packages/terminals.scm (alacritty),
* gnu/packages/text-editors.scm (kak-lsp, parinfer-rust),
* gnu/packages/tree-sitter.scm (tree-sitter-cli),
* gnu/packages/video.scm (rav1e),
* gnu/packages/web.scm (monolith, castor)
[arguments]: Enable tests.
2023-10-18 11:36:18 +03:00
Efraim Flashner
163592c843
build: cargo-build-system: Strip enough prefix in package.
* guix/build/cargo-build-system.scm (package): When using the source as
the packaged crate also strip the 'rust-' prefix.
2023-10-18 11:36:16 +03:00
Efraim Flashner
fafbad0ce2
build: cargo-build-system: Reset timestamps in crates.
This fixes reproducibility in rust crates from the package phase,
see <https://issues.guix.gnu.org/50015>.

* guix/build/cargo-build-system.scm (package): After running 'cargo
package' on the source unpack the tarball, reset the timestamps and
repack it.
2023-10-18 11:36:16 +03:00
Efraim Flashner
c2ac2e3f38
build: cargo-build-system: Check for pregenerated files.
* guix/build/cargo-build-system.scm (check-for-pregenerated-files): New
procedure.
(%standard-phases): Add 'check-for-pregenerated-files phase between
'unpack and 'unpack-rust-crates.
2023-10-18 11:35:40 +03:00
Josselin Poiret
dcc5c34504
guix: import: opam: Handle list of licenses.
Fixes <https://issues.guix.gnu.org/issue/66461>.
Reported by Simon Tournier <zimon.toutoune@gmail.com>.

* guix/import/opam.scm (opam->guix-package): Handle lists of licenses.

Signed-off-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-10-17 14:52:06 +02:00
Simon Tournier
daaebc6457
scripts: weather: Handle EPIPE errors when displaying help.
* guix/scripts/weather.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:06 +02:00
Simon Tournier
16e53f1687
scripts: upgrade: Handle EPIPE errors when displaying help.
* guix/scripts/upgrade.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:06 +02:00
Simon Tournier
a293b1cfa7
scripts: time-machine: Handle EPIPE errors when displaying help.
* guix/scripts/time-machine.scm (%options): Handle EPIPE errors when
displaying help.
2023-10-17 14:52:05 +02:00
Simon Tournier
c4aa37fde9
scripts: substitute: Handle EPIPE errors when displaying help.
* guix/scripts/substitute.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:05 +02:00
Simon Tournier
6c5516ab83
scripts: system: Handle EPIPE errors when displaying help.
* guix/scripts/system.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:05 +02:00
Simon Tournier
08b16ebcb3
scripts: style: Handle EPIPE errors when displaying help.
* guix/scripts/style.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:04 +02:00
Simon Tournier
426f52826b
scripts: size: Handle EPIPE errors when displaying help.
* guix/scripts/size.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:04 +02:00
Simon Tournier
d56940eb81
scripts: show: Handle EPIPE errors when displaying help.
* guix/scripts/show.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:04 +02:00
Simon Tournier
acdbb798d0
scripts: shell: Handle EPIPE errors when displaying help.
* guix/scripts/shell.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:03 +02:00
Simon Tournier
94e0496aa8
scripts: search: Handle EPIPE errors when displaying help.
* guix/scripts/search.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:03 +02:00
Simon Tournier
c5a5ccfa54
scripts: repl: Handle EPIPE errors when displaying help.
* guix/scripts/repl.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:03 +02:00
Simon Tournier
028de130d2
scripts: remove: Handle EPIPE errors when displaying help.
* guix/scripts/remove.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:02 +02:00
Simon Tournier
ac9b2939d6
scripts: refresh: Handle EPIPE errors when displaying help.
* guix/scripts/refresh.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:02 +02:00
Simon Tournier
0c0bcbdd83
scripts: pull: Handle EPIPE errors when displaying help.
Reported by Mathieu Othacehe <othacehe@gnu.org>.

* guix/scripts/pull.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:02 +02:00
Simon Tournier
3a665d789f
scripts: publish: Handle EPIPE errors when displaying help.
* guix/scripts/publish.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:01 +02:00
Simon Tournier
bfc6c54131
scripts: processes: Handle EPIPE errors when displaying help.
* guix/scripts/processes.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:01 +02:00
Simon Tournier
4451982ac4
scripts: package: Handle EPIPE errors when displaying help.
Reported by Mathieu Othacehe <othacehe@gnu.org>.

* guix/scripts/package.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:01 +02:00
Simon Tournier
61a7e16d8d
scripts: pack: Handle EPIPE errors when displaying help.
* guix/scripts/pack.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:52:00 +02:00
Simon Tournier
ef8a615861
scripts: offload: Handle EPIPE errors when displaying help.
* guix/scripts/offload.scm (guix-offload): Handle EPIPE errors when displaying
help.
2023-10-17 14:52:00 +02:00
Simon Tournier
55c3776023
scripts: locate: Handle EPIPE errors when displaying help.
* guix/scripts/locate.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:59 +02:00
Simon Tournier
078107289a
scripts: lint: Handle EPIPE errors when displaying help.
* guix/scripts/lint.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:59 +02:00
Simon Tournier
a5d9042663
scripts: install: Handle EPIPE errors when displaying help.
* guix/scripts/install.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:59 +02:00
Simon Tournier
79b6eef750
scripts: import: Handle EPIPE errors when displaying help.
* guix/scripts/import.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:58 +02:00
Simon Tournier
f7c274c403
scripts: home: Handle EPIPE errors when displaying help.
* guix/scripts/home.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:58 +02:00
Simon Tournier
7d36333145
scripts: hash: Handle EPIPE errors when displaying help.
* guix/scripts/hash.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:58 +02:00
Simon Tournier
ba8a43f220
scripts: graph: Handle EPIPE errors when displaying help.
* guix/scripts/graph.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:57 +02:00
Simon Tournier
cba0fa6f4f
scripts: git: Handle EPIPE errors when displaying help.
* guix/scripts/git.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:57 +02:00
Simon Tournier
330540b638
scripts: gc: Handle EPIPE errors when displaying help.
* guix/scripts/gc.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:57 +02:00
Simon Tournier
8ed377978e
scripts: edit: Handle EPIPE errors when displaying help.
* guix/scripts/edit.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:56 +02:00
Simon Tournier
25331ae62b
scripts: download: Handle EPIPE errors when displaying help.
* guix/scripts/download.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:56 +02:00
Simon Tournier
6c6071faf9
scripts: discover: Handle EPIPE errors when displaying help.
* guix/scripts/discover.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:56 +02:00
Simon Tournier
a53e5fb121
scripts: describe: Handle EPIPE errors when displaying help.
* guix/scripts/describe.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:55 +02:00
Simon Tournier
c150267648
scripts: deploy: Handle EPIPE errors when displaying help.
* guix/scripts/deploy.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:55 +02:00
Simon Tournier
fb231e09cb
scripts: copy: Handle EPIPE errors when displaying help.
* guix/scripts/copy.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:55 +02:00
Simon Tournier
f814d33cbd
scripts: container: Handle EPIPE errors when displaying help.
* guix/scripts/container.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:54 +02:00
Simon Tournier
2ac8e95dba
scripts: challenge: Handle EPIPE errors when displaying help.
* guix/scripts/challenge.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:54 +02:00
Simon Tournier
de63efc802
scripts: build: Handle EPIPE errors when displaying help.
* guix/scripts/build.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:54 +02:00
Simon Tournier
b53742def3
scripts: archive: Handle EPIPE errors when displaying help.
* guix/scripts/archive.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:53 +02:00
Simon Tournier
b4d1eb53c0
ui: Handle EPIPE errors when displaying Guix version.
Fixes <https://issues.guix.gnu.org/66254>.
Reported by Clément Lassieur <clement@lassieur.org>.

* guix/ui.scm (show-version-and-exit): Handle EPIPE errors when displaying
version.
2023-10-17 14:51:53 +02:00
Sören Tempel
435090fa3f
pack: Allow setting a custom image tag for Docker images
Previously, the image repository name was automatically computed from
the packages in the manifest without allowing the user to set a custom
one. As such, changing the packages in the manifest would result in a
new image name. Thereby requiring updating documentation et cetera when
using `docker load` directory on the resulting image.

Inspired by `docker build -t`, this commit adds a new Docker-specific
option to `guix pack` which allows setting a custom repository name for
the resulting image. If this option is not specified, pack falls back
to computing the name from the manifest. Therefore, this change is
entirely backwards compatible.

Documentation has been added with: 373ec2cf8c.

* guix/scripts/pack.scm (guix-pack): Add --image-tag option.
(%docker-format-options): New constant.
(show-docker-format-options): New procedure.
(show-docker-format-options/detailed): New procedure.
(docker-image): Allow setting a custom
repository name for the created docker image via extra-options.

Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-16 09:08:13 +02:00
Ludovic Courtès
6eb147dc31
environment: Fix typo in error messages.
* guix/scripts/environment.scm (guix-environment*): Fix typo in error
messages.

Change-Id: I0b8669cb43267d0456a70f3b157514a6bcc725e8
2023-10-28 01:23:41 +02:00
Ludovic Courtès
661672a7f8
environment: Parameterize ‘%graft?’ early on.
Previously, ‘%graft?’ would be parameterized after ‘package-derivation’
had been called for ‘%guile-for-build’, which is too late.

* guix/scripts/environment.scm (guix-environment*)[with-store/maybe]:
Parameterize ‘%graft?’.
Remove ‘%graft?’ parameterization from body.

Change-Id: I65ef4a8c5f27e19a49196005871e5f7057fabaec
2023-10-28 01:21:56 +02:00
Ludovic Courtès
344e39c928
profiles: Hooks honor the #:system parameter of ‘profile-derivation’.
Fixes <https://issues.guix.gnu.org/65225>.

* guix/profiles.scm (info-dir-file, package-cache-file)
(info-dir-file, ghc-package-cache-file, ca-certificate-bundle)
(emacs-subdirs, gdk-pixbuf-loaders-cache-file, glib-schemas)
(gtk-icon-themes, gtk-im-modules, linux-module-database)
(xdg-desktop-database, xdg-mime-database, fonts-dir-file)
(manual-database, manual-database/optional): Add optional #:system
parameter and pass it to ‘gexp->derivation’.
(profile-derivation): Pass HOOK a second parameter, SYSTEM.
* gnu/bootloader.scm (efi-bootloader-profile)[efi-bootloader-profile-hook]:
Add optional #:system parameter and pass it to ‘gexp->derivation’.
* guix/channels.scm (package-cache-file): Likewise.
* tests/profiles.scm ("profile-derivation, #:system, and hooks"): New
test.

Reported-by: Tobias Geerinckx-Rice <me@tobias.gr>
2023-10-28 00:17:24 +02:00
Ludovic Courtès
9d4b720e1f
packages: Add ‘system’ parameter for ‘set-guile-for-build’.
* guix/packages.scm (set-guile-for-build): Add ‘system’ parameter.
2023-10-28 00:17:24 +02:00
Ludovic Courtès
b3ec2a0d37
environment: Honor ‘-s’ for guile-for-build.
Partly fixes <https://issues.guix.gnu.org/65225>.

* guix/scripts/environment.scm (guix-environment*): Pass SYSTEM to
‘package-derivation’ when defining ‘%guile-for-build’.

Reported-by: Simon Tournier <zimon.toutoune@gmail.com>
Change-Id: I9d883f1e61fac72754fdc9dee9b7c8a3dea32add
2023-10-28 00:17:24 +02:00
Ludovic Courtès
67effc1560
grafts: Fix corner case involving multiple-output derivations.
Fixes a bug that would occur with references to two outputs of the same
derivation, with one of them referring to the other one.

For example, the references of libreoffice include both mariadb:dev and
mariadb:lib; additionally, mariadb:dev refers to mariadb:lib.  In this
case, the glibc graft would not be applied on one of the mariadb paths,
and both the grafted and ungrafted glibc would end up in the closure of
libreoffice.

Fixes <https://issues.guix.gnu.org/66662>.

* guix/grafts.scm (non-self-references): Simplify and include references
to outputs of DRV other than OUTPUTS.
(reference-origins): Simplify and possibly return outputs of DRV itself.
(cumulative-grafts)[graft-origin?]: Add OUTPUT parameter and honor it.
[dependency-grafts]: Adjust accordingly.
* tests/grafts.scm ("graft-derivation, multiple outputs need to be replaced"):
New test.

Change-Id: Iac2005024ab7049037537b3af55298696ec90e3c
2023-10-28 00:17:23 +02:00
Christopher Baines
98ae807643
build-system: clojure: Use the standard error regarding cross builds.
Rather than raising an error in the build system.

* guix/build-system/clojure.scm (lower): Return #f for cross builds, rather
than calling error.

Change-Id: Id97c8f5140f55fe2c52ccb0db36fd993922c6a7e
2023-11-20 14:53:59 +00:00
Ludovic Courtès
d0fed2f4df
locate: Do not return the system database when it is too old.
Fixes a bug whereby ‘guix locate’ would pick the system database, then
decide it’s too old, try to update it, and fail because it’s not
writable by unprivileged users.

Fixes <https://issues.guix.gnu.org/66612>.

* guix/scripts/locate.scm (file-age): New procedure.
(suitable-database): Add ‘age-update-threshold’ parameter and honor it.
(guix-locate): Remove ‘file-age’.  Pass ‘age-update-threshold’ to the
‘database’ option.

Reported-by: Matt Wette <matt.wette@gmail.com>
2023-10-18 18:21:04 +02:00
Ludovic Courtès
75bdf8e06a
shell: Take grafting into account when caching.
Fixes <https://issues.guix.gnu.org/64856>.

* guix/scripts/shell.scm (profile-file-cache-key)
(profile-spec-cache-key): Take (%graft?) into account.

Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-12 18:53:07 +02:00
Zheng Junjie
dd3b9e84b9
utils: Add 'strip-for-target'.
* guix/utils.scm (strip-for-target): New procedure.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-26 15:21:35 +02:00
Efraim Flashner
911c3deb40
guix: platform: Add platform-rust-target.
* guix/platform.scm <platform>: Add rust-target field.
* guix/platforms/arm.scm (armv7-linux, aarch64-linux): Add the system's
rust target triplet.
* guix/platforms/mips.scm (mips64-linux):
* guix/platforms/powerpc.scm (powerpc-linux, powerpc64-linux,
powerpc64le-linux):
* guix/platforms/riscv.scm (riscv64-linux):
* guix/platforms/x86.scm (i686-linux, x86_64-linux, i686-mingw,
x86_64-mingw, i586-pc): Same.

Change-Id: Id9dca0fb8ec2b3bf2b3876b974e4bbaa30dbc6a6
2023-12-11 13:50:48 +02:00
Jean-Pierre De Jesus DIAZ
06587003b8
guix: meson-build-system: Disable PIC for AVR.
* guix/build-system/meson.scm (make-built-in-options-alist): New procedure.
(make-cross-file): Add 'built-in options' section to cross file.

Change-Id: Ifff7f6fb1eb8b0e8ddd04881d22acb863c9e85b2
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:37:20 +02:00
Jean-Pierre De Jesus DIAZ
119edc3c9b
guix: meson-build-system: Support AVR.
* guix/build-system/meson.scm (make-machine-alist): Add cases for avr
for system, cpu_family and cpu.

Change-Id: Ie47d666099c4c48edd36812f035625dccc4a3900
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:36:52 +02:00
Jean-Pierre De Jesus DIAZ
520e3d267e
guix: Add target-avr?.
* guix/utils.scm (target-avr?): New procedure.
* tests/utils.scm: Add tests for target-avr? procedure.

Change-Id: Iaa0fa97a2b6bc45d45f907f43157f1548a0ba3fa
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 11:53:54 +02:00
Jean-Pierre De Jesus DIAZ
be5ec2ebb4
guix: Add avr platform.
* Makefile.am (MODULES): Add avr platform module.
* doc/guix.texi: Add documentation for avr platform.
* guix/platforms/avr.scm (avr): New variable.

Change-Id: I0f425eac61a71390b618e093f5a034ad4205a6f4
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 11:53:54 +02:00
Jean-Pierre De Jesus DIAZ
b40a44430f
guix: gnu-build-system: Handle missing libc.
* guix/build-system/gnu.scm (standard-cross-packages): Handle the case
  when `cross-libc` returns #f.

Change-Id: I85ee5456f10ff141d521a5f2d91267cd612c5616
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 11:53:54 +02:00
Julien Lepiller
28ca80717d
guix: Properly compute progress bar width.
* guix/progress.scm (progress-reporter/bar): Take font width into account to
compute progress bar width.
* guix/git.scm (show-progress): Take font width into account to compute
progress bar width.

Change-Id: I946e447c1ea7c6eb4ff805400280f39e8f1a7c02
2023-11-11 11:07:47 +01:00
Julien Lepiller
fd11d7fbf8
guix: syscalls: Add terminal-string-width.
* guix/build/syscalls.scm (terminal-width): New procedure.
* tests/syscalls.scm: Add tests.

Change-Id: I6c2caa9fbaffb1e8f4b8933103399be970d5a8f3
2023-11-11 11:07:27 +01:00
Tristan Cottam
9ce47b6fdd
build: minetest-build-system: Match name more strictly.
Some Minetest mods, such as the hitherto unpackaged minetest-ambience,
have trailing garbage space (e.g. carriage returns) in their name line,
that would otherwise end up as part of the mod's directory name.

* guix/build/minetest-build-system.scm (name-regexp): Only match
graphical characters in the name sub-match.

Change-Id: I95f4c201724991a10efba5c859bfef99779ea495
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-11-11 06:48:59 +01:00
Julien Lepiller
00ec39a4e4
guix: ant: Optionally build with java modules.
Modules were introduced in Java 9 and are not supported by the default
icedtea compiler, so this feature is disabled by default.

* guix/build-system/ant.scm (ant-build): Add use-java-modules?
parameter.
* guix/build/ant-build-system.scm (default-build.xml)
(configure): Use it.

Change-Id: I3b99238e4cd262332fa5c818be1af5477c7374fd
2023-11-09 19:08:42 +01:00
Jonathan Scoresby
8882ec71dd
build-system: Add vim-build-system.
* guix/build-system/vim.scm,
* guix/build/vim-build-system.scm: New modules.
* Makefile.am (MODULES): Register new files.
* doc/guix.texi: Document it.

Co-authored-by: Efraim Flashner <efraim@flashner.co.il>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-11-08 12:03:05 +02:00
Maxim Cournoyer
a4db19d8e0
git-download: Add support for Git Large File Storage (LFS).
* guix/build/git.scm (git-fetch) [lfs?]: New argument, doc and setup code.
(git-fetch-with-fallback) [lfs?]: New argument.  Pass it to git-fetch.
* guix/git-download.scm (git-lfs-package): New procedure.
(git-fetch/in-band*): New procedure, made of the logic of git-fetch/in-band,
with new git-lfs specifics, with the following changes:
New #:git-lfs argument.
<inputs>: Remove labels.  Conditionally add git-lfs.
<build>: Read "git lfs?" environment
variable and pass its value to the #:lfs? argument of git-fetch-with-fallback.
Use INPUTS directly; update comment.
<gexp->derivation>: Add "git lfs?" to #:env-vars.
(git-fetch/in-band): Express in terms of git-fetch/in-band*.
(git-fetch/lfs): New procedure.
* doc/guix.texi (origin Reference): Document it.

Change-Id: I5b233b8642a7bdb8737b9d9b740e7254a89ccb25
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-11-07 12:33:26 -05:00
Leo Famulari
cfe09c7c36
download: Replace faulty kernel mirror URL with canonical upstream.
This mirror was providing truncated files. See patch ticket #66923 for more
information about this change:

<https://issues.guix.gnu.org/issue/66923>

* guix/download.scm (%mirrors): Replace kernel mirror <uio.no> with <kernel.org>.

Change-Id: I189fc4eaa2bb3fa8b6db028aa837f0d59a460327
2023-07-23 22:26:00 -04:00
Ludovic Courtès
331d858e21
time-machine: Warn when no command is given.
* guix/scripts/time-machine.scm (guix-time-machine): Emit a warning when
COMMAND-LINE is false.

Change-Id: I26e6b608915ecaf6d9372f9b03dc5ebd1b4c68f9
2023-11-05 23:23:23 +01:00
Ludovic Courtès
ab13e2be69
time-machine: Make target commit check cheaper.
Commit 79ec651a28 introduced a check to
error out when attempting to use ‘time-machine’ to travel to a commit
before ‘v1.0.0’.

This commit fixes a performance issue with the strategy used in
79ec651a28 (the repository was opened,
updated, and traversed a second time by ‘validate-guix-channel’) as well
as a user interface issue (“Updating channel” messages would be printed
too late).

This patch reimplements the check in terms of the existing #:validate-pull
mechanism, which is designed to avoid extra repository operations.

Fixes <https://issues.guix.gnu.org/65788>.

* guix/inferior.scm (cached-channel-instance): Change default value
of #:validate-channels.  Remove call to VALIDATE-CHANNELS; pass it
as #:validate-pull to ‘latest-channel-instances’.
* guix/scripts/time-machine.scm (%reference-channels): New variable.
(validate-guix-channel): New procedure, written as a simplification of…
(guix-time-machine)[validate-guix-channel]: … this.  Remove.
Pass #:reference-channels to ‘cached-channel-instance’.

Reported-by: Simon Tournier <zimon.toutoune@gmail.com>
Change-Id: I9b0ec61fba7354fe08b04a91f4bd32b72a35460c
2023-11-05 23:23:23 +01:00
Christopher Baines
aa98a97607
lint: Speed up the formatting linter.
By using go-to-location which caches the number of bytes to seek by to get to
specific lines in a file.

* guix/lint.scm (report-formatting-issues): Use go-to-location.

Change-Id: I34e4d3acfbb1e14e026d2e7f712ba8d22b56c147
Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-11-05 17:51:38 +00:00
Simon Tournier
1eb3133355
scripts: edit: Fix relative file-name with 'load-path' option.
* guix/scripts/edit.scm (search-path*): Return 'file' if exists when
'search-path' fails.

Change-Id: I891d63d0d28577a7d1732fc59435828ecc0a5c5a
2023-11-05 16:11:17 +01:00
Simon Tournier
5025a68c71
scripts: pull: Teach 'channels-list' to use 'tag' git references.
* guix/scripts/pull.scm (channel-list): Add support for 'tag' references, to
honor the various possible references types as defined in the documentation of
the update-cached-checkout procedure.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-08-29 15:24:49 -04:00
Simon Tournier
a789dd5865
guix: git: Avoid touching the network unless needed in 'reference-available?'.
* guix/git/scm (reference-available?): Use the resolve-reference procedure
to determine whether the reference exists in the local Git checkout.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-08-29 15:23:58 -04:00
Ricardo Wurmus
c8a642de9a
import-utils: Do not include punctuation when wrapping in @code{}.
* guix/import/utils.scm (beautify-description): Exclude punctuation.
* tests/import-utils.scm: Add new test.
2023-08-28 19:08:38 +02:00
Nicolas Goaziou
3481a5cb37
guix: profiles: Do not raise error on incomplete TeX Live setups.
* guix/profiles.scm (texlive-font-maps): Check if TEXLIVE-SCRIPTS is present
in the manifest before trying to generate font maps.
2023-08-09 18:27:10 +02:00
Ludovic Courtès
5652c2e147
system: Do not check initrd modules for pseudo file systems.
Reported by hako on #guix.

* gnu/machine/ssh.scm (machine-check-initrd-modules): Filter out pseudo
file systems from 'file-systems'.
* guix/scripts/system.scm (check-initrd-modules): Likewise.
2023-08-08 18:01:54 +02:00
Liliana Marie Prikler
4c204d01d5
Merge branch 'master' into gnome-team 2023-07-23 10:11:29 +02:00
Nicolas Goaziou
c173819c8e
guix: profiles: Fix auto-generated file deletion.
* guix/profiles.scm (texlive-font-maps): Make sure auto-generated file exists
before deleting it, which is not guaranteed when creating the initial texmf
tree union.

This is a followup to e43cbeafd1.
2023-07-30 10:57:41 +02:00
Nicolas Goaziou
e43cbeafd1
guix: profiles: Delete generated files.
* guix/profiles.scm (texlive-font-maps): Delete generated files.

Fixes <https://issues.guix.gnu.org/64906>.
2023-07-29 01:09:40 +02:00
Christopher Baines
3bb3fddb5c
download-nar: Improve output.
Report errors that occur, output the "Downloading from " line before starting
to report progress and end the output with a newline.
2023-07-28 18:08:17 +01:00
Hilton Chain
8874f2da2c
scripts: system: Remove duplicated "--target=TRIPLET" in help messages.
It's already included in (show-cross-build-options-help).

* guix/scripts/system.scm (show-help): Remove "--target=TRIPLET".

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-07-28 21:52:18 +08:00
Efraim Flashner
1fd4f544b3
transformations: Wrap go binary.
* guix/transformations.scm (tuning-compiler): Adjust to wrap the go
binary with the appropriate environment variable.
(build-system-with-tuning-compiler): Remove custom 'set-microarchitecture
phase.
2023-07-25 16:07:02 +03:00
Ricardo Wurmus
b9bd1bcce9
import/utils: beautify-description: Wrap class names in @code{...}.
* guix/import/utils.scm (beautify-description): Add procedure to wrap words in
@code{...} markup.
* tests/import-utils.scm: Add two tests.
2023-07-19 15:53:28 +02:00
Ricardo Wurmus
45bf1a9a6b
import/utils: Add more initial words to beautify-description.
* guix/import/utils.scm (beautify-description): Add "Classes" and "Tools" to
initial words to be prefixed with "This package provides".
2023-07-19 15:29:22 +02:00
Maxim Cournoyer
d5f8b50365
pack: Move common build code to (guix build pack).
The rationale is to reduce the number of derivations built per pack to ideally
one, to minimize storage requirements.  The number of derivations had gone up
with 68380db4 ("pack: Extract populate-profile-root from
self-contained-tarball/builder.") as a side effect to improving code reuse.

* guix/scripts/pack.scm (guix): Add commentary comment.
(populate-profile-root, self-contained-tarball/builder): Extract to...
* guix/build/pack.scm (populate-profile-root): ... this, and...
(build-self-contained-tarball): ... that, adjusting for use on the build side.
(assert-utf8-locale): New procedure.
(self-contained-tarball, debian-archive, rpm-archive): Adjust accordingly.

Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-07-18 16:56:06 -04:00
Nicolas Goaziou
f832746ab6
guix: Fix license translation in texlive importer.
* guix/import/texlive.scm (string->license): Properly translate "artistic2"
into `artistic2.0'.
2023-07-18 18:19:02 +02:00
Nicolas Goaziou
1dc7971429
guix: texlive importer handles scripts with ".texlua" extension.
* guix/import/texlive.scm (linked-scripts): Also offer to link scripts with
a ".texlua" extension.
2023-07-18 18:18:24 +02:00
Nicolas Goaziou
985cf777b9
guix: texlive import ignores TeXworks.
* guix/import/texlive.scm (translate-depends): Ignore TeXworks files from TeX
Live, since they are Windows-only.
2023-07-18 18:18:24 +02:00
Nicolas Goaziou
b5d9ae22f5
guix: texlive importer ignores Asymptote package.
Asymptote is provided in `asymptote' Guix package.  OTOH, asy executable is
not built from TeX Live tree.  Therefore, Asymptote package from TeX Live can be ignored.

* guix/import/texlive.scm (translate-depends): Ignore Asymptote package.
2023-07-18 18:18:24 +02:00
Nicolas Goaziou
e7274a98d5
guix: licenses: Add Academic Free License 2.1.
* guix/licenses.scm (afl2.1): New variable.
2023-07-18 18:18:23 +02:00
Nicolas Goaziou
75677daa83
guix: import: texlive importer handles more licenses.
* guix/import/texlive.scm (string->license): Handle CC0 and ISC licenses.
2023-07-18 18:16:55 +02:00
Christopher Baines
c1f7156d55
svn-download: Handle the single file case when downloading a nar.
Delete the output so that download-nar doesn't error when trying to restore.

* guix/svn-download.scm (svn-multi-fetch): Delete the output if it exists
prior to calling download-nar.
2023-07-18 18:16:55 +02:00
Christopher Baines
32e48b8b43
svn-download: Use download-nar in svn-multi-fetch.
This should help if there are issues fetching from the source repository.

* guix/svn-download.scm (svn-multi-fetch): Use download-nar and adjust
accordingly.
2023-07-18 18:16:54 +02:00
Christopher Baines
a8d937d1bb
svn-download: Use download-nar.
This should help if there are issues fetching from the source repository.

* guix/svn-download.scm (svn-fetch): Use download-nar and adjust accordingly.
2023-07-18 18:16:54 +02:00
Nicolas Goaziou
026ed35ddb
guix: import: Handle texlua and TCL scripts.
* guix/import/texlive.scm (linked-scripts): Also generate scripts from files
with ".tlu" and ".tcl" extensions.
(tlpdb->package): Add appropriate inputs when providing a TCL script.
2023-07-18 18:16:53 +02:00
Nicolas Goaziou
29cc6b1cd6
gnu: Deprecate `texlive-tiny'.
At this point, there are three equivalent TeX Live sub-systems:
texlive-scheme-basic, texlive-tiny, and (texlive-updmap.cfg).  It is confusing
to keep so many around.

* doc/contributing.texi (Submitting Patches): Remove reference to
TEXLIVE-TINY.
* gnu/packages/algebra.scm (pari-gp)[native-inputs]:
(giac)[native-inputs]:
* gnu/packages/chez.scm (chez-sockets)[native-inputs]:
* gnu/packages/engineering.scm (fastcap)[native-inputs]:
* gnu/packages/gettext.scm (po4a)[native-inputs]:
* gnu/packages/maths.scm (cddlib)[native-inputs]:
(gnuplot)[native-inputs]:
(itpp)[native-inputs]:
* gnu/packages/ocaml.scm (unison)[native-inputs]:
* gnu/packages/pdf.scm (extractpdfmark)[native-inputs]:
* gnu/packages/photo.scm (enblend-enfuse): Replace TEXLIVE-TINY with a call to TEXLIVE-UPDMAP.CFG.
* gnu/packages/radio.scm (gnuradio)[native-inputs]: Remove unnecessary
TEXLIVE-TINY.
* gnu/packages/tex.scm (texlive-tiny): Deprecate it in favor of TEXLIVE-SCHEME-BASIC.
(texlive-makecmds)[native-inputs]:  Replace TEXLIVE-TINY with a call to TEXLIVE-UPDMAP.CFG.
* guix/lint.scm (check-inputs-should-be-native): Check only for
"texlive-updmap.cfg" input name.
2023-07-18 18:16:49 +02:00
Nicolas Goaziou
213cde14e3
guix: Add linter warning about texlive-updmap.cfg and texlive-tiny.
* guix/lint.scm (check-inputs-should-be-native): Warn when TEXLIVE-UPDMAP.CFG
and TEXLIVE-TINY are not native inputs.
2023-07-18 18:16:47 +02:00
Nicolas Goaziou
2e189e8863
guix: texlive importer: Do not pull all "scripts/context/" files.
* guix/import/texlive.scm (texlive-generic-locations): Add "scripts/context/"
since this location is split across multiple packages.
* guix/import/texlive.scm (files->locations): Only single out files from
generic locations, not their sub-directories.  E.g., generic location
"scripts/context/lua/" should not fetch "scripts/context/lua/third/" files.
2023-07-18 18:16:45 +02:00
Nicolas Goaziou
944ace7194
guix: Fix sub-directories in texlive importer locations.
* guix/import/texlive.scm (files->locations): When removing a sub-directory,
make sure to actually remove the sub-directory and not the parent.
2023-07-18 18:16:43 +02:00
Nicolas Goaziou
3f8b75b35c
gnu: Remove texlive-default-updmap.cfg.
* gnu/packages/tex.scm (texlive-scripts): Provide "updmap.cfg", along with
other similar files.
(texlive-default-updmap.cfg): Remove variable.
(texlive-updmap.cfg)[source]: Use TEXLIVE-SCRIPTS source.
[arguments]: Use G-expressions.  Adapt #:INSTALL-PLAN according to source change.
* guix/profiles.scm (texlive-font-maps): Use "updmap.cfg" provided by
TEXLIVE-SCRIPTS instead of now defunct TEXLIVE-DEFAULT-UPDMAP.CFG.
2023-07-18 18:16:08 +02:00
Nicolas Goaziou
19fd100413
gnu: Externalize libkpathsea in texlive and texlive-bin.
* gnu/packages/tex.scm (texlive-libkpathsea): New variable.
(texlive-bin): Inherit from above.
[arguments]<#:configure-flags>: Use "--disable-kpathsea",
"--with-system-kpathsea", "--with-kpathsea-includes" and
"--with-kpathsea-lib".
<#:phases>: Remove phases now handled by the package above.
[native-inputs]: Add GROFF-MINIMAL.
[propagated-inputs]: Add TEXLIVE-LIBKPATHSEA.
(texlive-bin-full): New variable.
(texlive-texmf)[build-system]: Use COPY-BUILD-SYSTEM.
[arguments]: Set #:INSTALL-PLAN accordingly.  Replace TEXLIVE-BIN with
TEXLIVE-BIN-FULL.
* guix/profiles.scm (texlive-font-maps): Fetch executables from
TEXLIVE-LIBKPATHSEA instead of TEXLIVE-BIN.
2023-07-18 18:16:08 +02:00