Commit graph

8057 commits

Author SHA1 Message Date
Nicolas Goaziou
f5914d5b2e
gnu: texlive build system: Un-dumbify a comment.
* guix/build/texlive-build-system.scm (build): Clarify a poorly explained
design choice.

Change-Id: Ida4e4ccb3934f8b5cc7a6e36e33cec7a5e5581e8
2025-05-06 11:25:05 +02:00
Ludovic Courtès
e1a0171a56
linux-container: Set up “lo” and generate /etc/hosts by default.
* gnu/build/linux-container.scm (run-container): Add #:loopback-network?
and honor it via #:populate-file-system.
(call-with-container): Add #:loopback-network? and pass it to
‘run-container’.
* guix/scripts/environment.scm (launch-environment/container): Remove
call to ‘set-network-interface-up’ and remove generation of /etc/hosts.
* guix/scripts/home.scm (spawn-home-container): Likewise.

Change-Id: I5933a4e8dc6d8e19235a79696b62299d74d1ba21
2025-05-05 14:34:00 +02:00
Ludovic Courtès
3aa132e8c3
syscalls: Add ‘get-user-ns’.
* guix/build/syscalls.scm (NS_GET_USERNS): New variable.
(get-user-ns): New procedure.

Change-Id: I0cfba6a7cdf2ab64ef658b0f821ba4e7c6c89eab
2025-05-05 14:34:00 +02:00
Ludovic Courtès
ce363c1dc7
environment: Add ‘--writable-root’ and default to read-only root.
This is an incompatible change where the root file system in
‘guix shell -C’ is now read-only by default.

* guix/scripts/environment.scm (show-environment-options-help)
(%options): Add ‘--writable-root’.
* guix/scripts/environment.scm (setup-fhs): Invoke /sbin/ldconfig; moved
from…
(launch-environment): … here.
(launch-environment/container): Add #:writable-root? and pass it to
‘call-with-container’.  Move root file system setup to #:populate-file-system.
(guix-environment*): Honor ‘--writable-root’.
* tests/guix-environment-container.sh: Test it.
* doc/guix.texi (Invoking guix shell): Document ‘--writable-root’.
(Debugging Build Failures): Mention it before “rm /bin/sh”.

Change-Id: I2e8517d6f01eb8093160bffc0f9f56071ad6fee6
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-05 14:33:59 +02:00
Ludovic Courtès
7d28e6512c
guix home: ‘container’ provides a read-only root file system.
* guix/scripts/home.scm (spawn-home-container): Move creation of
accounts, /etc/hosts, /tmp, and HOME-DIRECTORY from the first argument
of ‘eval/container’ to #:populate-file-system.  Remove #:writable-root?.
* tests/guix-home.sh: Test that the root file system is read-only.

Change-Id: Icda54706321d51b95b563c86c3fb2238cc65ee20
2025-05-05 14:33:59 +02:00
Ludovic Courtès
a391394a22
linux-container: Support having a read-only root file system.
Until now, the read-only file system set up by ‘call-with-container’
would always be writable.  With this change, it can be made read-only.
With this patch, only ‘least-authority-wrapper’ switches to a read-only
root file system.

* gnu/build/linux-container.scm (remount-read-only): New procedure.
(mount-file-systems): Add #:writable-root? and #:populate-file-system
and honor them.
(run-container): Likewise.
(call-with-container): Likewise.
* gnu/system/linux-container.scm (container-script): Pass #:writable-root?
to ‘call-with-container’.
(eval/container): Add #:populate-file-system and #:writable-root? and
honor them.
* guix/scripts/environment.scm (launch-environment/container):
Pass #:writable-root? to ‘call-with-container’.
* guix/scripts/home.scm (spawn-home-container): Likewise.
* tests/containers.scm ("call-with-container, mnt namespace, read-only root")
("call-with-container, mnt namespace, writable root"): New tests.

Change-Id: I603e2fd08851338b737bb16c8af3f765e2538906
2025-05-05 14:33:59 +02:00
Ludovic Courtès
acc4215644
guix home: ‘container’ explicitly mounts $HOME and /run/user/1000.
* guix/scripts/home.scm (spawn-home-container): Pass #:mounts to
‘eval/container’.

Change-Id: I1986c1411711cebaf623f97897d91436d8167037
2025-05-05 14:33:59 +02:00
Tomas Volf
a2282c68ff
environment: Restore action for SIGPIPE.
Code in `ui.scm' in `initialize-guix' procedure changes the handling of
SIGPIPE to SIG_IGN.  So restore the handling to SIG_DFL so that process
executed will have the usual action.  Technically we should record what the
handling was, and restore it to the previous value, but that would be much
more invasive change.

Always setting it to SIG_DFL is at least less surprising than always setting
to SIG_IGN.

* guix/scripts/environment.scm (launch-environment): Restore default action
for SIGPIPE.

Change-Id: Ifabae1d3e71aa44e63078cea5bd3824b8f61ba14
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-05 12:15:55 +02:00
Romain GARBAGE
79bc4ebb33
transformations: Git source transformations honour RECURSIVE?.
* guix/transformations.scm (package-git-url+recursive?): New variable.
(package-git-url): Remove variable.
(evaluate-git-replacement-specs): Use package-git-url+recursive?.
(transform-package-source-branch, transform-package-source-commit, transform-package-source-git-url): Update
according to changes above.
* doc/guix.texi (Package Transformation Options): Update documentation.
* tests/transformations.scm: Update tests. Add tests for RECURSIVE?
inheritance with WITH-COMMIT and WITH-SOURCE.

Change-Id: Id6a5e6957a9955c8173b06b3e14f2986c6dfc4bc
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-05 12:15:47 +02:00
Hilton Chain
415e3d98d6
scripts: home: Support extracting home-environment from Guix System declaration.
* guix/scripts/home.scm (process-action): Handle operating-system declaration
and extract home environment for current user.
* doc/guix.texi (Guix Services)[Guix Home Service]: Document it.

Change-Id: I995f79c2549e6edc76322542d0422159e0b79996
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>
2025-05-03 15:53:46 +08:00
Maxim Cournoyer
f87204b2b2
build/cmake: Add #:implicit-inputs? and #:implicit-cross-inputs? arguments.
* guix/build-system/cmake.scm (lower) <#:implicit-inputs?>
<#:implicit-cross-inputs?>: New arguments.

Change-Id: I1f077f78f5836ce325827e7ef8d58ba554a8ed4f
Reviewed-by: Greg Hogan <code@greghogan.com>
2025-05-02 09:53:54 +09:00
Rutherther
d47379b8dc
profiles: gtk-icon-themes: Fix build error for when there are no icon themes.
* guix/profiles.scm (gtk-icon-themes): Always create the output directory.

Change-Id: I2aa5ab0023c9c584182c67f79102fb66b46a3a7d
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-04-28 21:03:42 +08:00
Nicolas Graves
ac026164be
build-system: android-ndk: Improve style.
Like in other build-systems, make proper procedures to resolve the
build-system build-inputs bindings.

* guix/build-system/android-ndk.scm (default-android-build,
default-android-googletest): Add procedures.
(lower): Use them.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
97a25bb484
build-system: ruby: Improve ruby-cross-build style.
* guix/build-system/ruby.scm
(ruby-cross-build): Use with-imported-modules around the
ruby-cross-build builder gexp.

Change-Id: I1051124f034f2082ccef531e9bcf37913d5a9449
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
9092b1f59b
build-system: waf: Improve waf-build style.
* guix/build-system/waf.scm
(waf-build): Use with-imported-modules around the waf-build builder gexp.

Change-Id: Id242046eb4bfef90dba60d7c3b1b68597ddf502e
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
4c4e29cebb
build-system: glib-or-gtk: Improve glib-or-gtk-cross-build style.
* guix/build-system/glib-or-gtk.scm
(glib-or-gtk-cross-build): Use with-imported-modules around the
glib-or-gtk-cross-build builder gexp.

Change-Id: I8eaa032ffc0a3f8dbf02c96a4ecee85475c32111
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Nicolas Graves
aa7b1abf2c
build-system: gnu: Improve gnu-cross-build style.
* guix/build-system/gnu.scm
(gnu-cross-build): Use with-imported-modules around the
gnu-cross-build builder gexp.

Change-Id: I47246571b1d84a82a67a8c289fd5ad4b5a3b5aeb
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-28 07:55:06 +01:00
Maxim Cournoyer
a369932d04
upstream: Do not update to same version.
Previously, 'guix refresh --update' would do actually rewrite the file with
the same version/hash information when the target version was the same as the
current version:

  guix refresh --update idutils=4.6
  idutils.scm: warning: downgrading 'idutils' from 4.6 to 4.6
  [...]
  idutils.scm: idutils: updating from version 4.6 to version 4.6...

This changes handles this case so that it does and prints nothing.

* guix/upstream.scm (package-update): Use `version-compare' to distinguish the
equal versions case.

Change-Id: I079e030d573f5968725ef13b3f626e2f8d02cb2f
Signed-off-by: Christopher Baines <mail@cbaines.net>
2025-04-27 13:01:48 +01:00
Rutherther
32575294ee
profiles: gtk-icon-themes: Produce only 'icon-theme.cache' files.
Previously the profile will produce a new symlink for each icon file, now it
will reuse existed ones if possible.

* guix/profiles.scm (gtk-icon-themes): Only install 'icon-theme.cache' files
into the output.  Adjust produce docstring.

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

Change-Id: Ia452565768753b8a60baf4fc075f6fe5ebb4fa39
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-04-27 10:25:00 +08:00
Romain GARBAGE
7e90241586
git: Add support for symbolic references.
The #:refspecs argument was added in Guile-Git 0.10.0.

* guix/git.scm (update-cached-checkout): Define ‘symref-list’.  Pass it
as #:refspecs to ‘remote-fetch’.

Change-Id: Ib7874e2a30f97e51fdfdc2231a3bc5a3b45a177d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-25 20:25:28 +02:00
Romain GARBAGE
f3021149a8
channels: Add symref support.
* guix/channels.scm (channel-reference): Add symref support.

Change-Id: Iea93aa22479ec21900af947c4df79a3ed97b5e62
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-04-25 20:25:27 +02:00
Zheng Junjie
1a0f9a3689
packages: Add riscv64-linux to %cuirass-supported-systems.
* guix/packages.scm (%cuirass-supported-systems): Add riscv64-linux.

Change-Id: I81f55613333b8aa2c3f00275cc170dc6c61d303d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-25 20:25:27 +02:00
Ludovic Courtès
182e76d1a9
git: Remove compatibility shim for Guile-Git <= 0.5.2.
Guile-Git 0.5.2 was released in July 2021.

* guix/git.scm (GITERR_HTTP): Remove.

Change-Id: I05b2ee36f786bd83ca91c8989912f83f6dde59c0
2025-04-23 12:25:45 +02:00
Ludovic Courtès
ee6d2a77a3
git: Use ‘graph-descendant?’ from Guile-Git >= 0.10.0 when available.
Fixes <https://issues.guix.gnu.org/66268>.

Fixes a bug whereby ‘commit-relation’ and ‘commit-descendant?’ would
provide an incorrect result when two distinct <commit> objects would
exist for the same commit, which happens when the commit’s metadata is
beyond 4 KiB at least as of libgit2 1.8/1.9.

This, in turn, would lead ‘guix pull’ & co. to wrongfully report an
attempt to downgrade and pull to an unrelated commit.

* guix/git.scm (commit-relation): When (git graph) is available,
rewrite in terms of ‘graph-descendant?’.
(commit-descendant?): Likewise.

Change-Id: Ie52b188a8dfa90c95a73387c3ab2fdd04d2bf3e9
Reported-by: Tomas Volf <~@wolfsden.cz>
2025-04-23 12:25:45 +02:00
Ludovic Courtès
c990405607
syscalls: Add ‘unshare’.
* guix/build/syscalls.scm (unshare): New procedure.

Change-Id: I344273b8bdeaa9366334e6e20ee7efc37eb6c8f7
2025-04-20 18:50:51 +02:00
Ludovic Courtès
efcce99acb
self: Install systemd ‘.service’ files.
This is consistent with the ‘guix’ package and will prove helpful when
people want to replace /etc/systemd/system/guix*.service with newer
versions thereof.

* guix/self.scm (parameterized-file): New procedure, based on…
(selinux-policy): … this. Use ‘parameterized-file’.
(systemd-file): New procedure.
(miscellaneous-files): Add systemd files.

Change-Id: Ia489a955347cf648a86000cc1265769d66c3f0e8
2025-04-20 17:58:11 +02:00
Maxim Cournoyer
b444fc05b5
least-authority: Export default preserved environment variables.
* guix/least-authority.scm (%precious-variables): Rename to...
(%default-preserved-environment-variables): ... this, and export it.
(least-authority-wrapper): Adjust accordingly.

Change-Id: Idd259b15463920965f530e1917d76bf97def3b7b
2025-04-19 21:13:21 +09:00
Yelninei
c9ac6c8715
locate: Request writable db for --clear.
Fixes <https://issues.guix.gnu.org/76141>.

* guix/scripts/locate.scm (guix-locate): Use writable db when --clear is given.

Change-Id: I2e4e945cef022b08dd6af4c252e67c2a4d5bf38c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-16 18:20:44 +02:00
Morgan Smith
0772d36076
import/utils: beautify-description: Validate argument.
* guix/import/utils.scm (beautify-description): Fix broken check for
non-strings.  Add a check for empty strings.
* tests/import-utils.scm: Add two tests.

Change-Id: Idf86df02aeb850fcc8808b7c9251082c1f816656
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-15 10:21:33 +02:00
Ludovic Courtès
5b158ddca9
compile: Use ‘-O2 -Ono-letrectify’ for ‘gnu/home/services’.
Partly fixes <https://issues.guix.gnu.org/74748>.

* guix/build/compile.scm (optimization-options): Add ‘gnu/home/services’
alongside ‘gnu/services’.

Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I7140c791e66f062093a32f4baf9199345560de9d
2025-04-15 10:21:01 +02:00
Ludovic Courtès
dfac0a5a95
guix: Avoid ‘fdatasync’ call for caches and regular files.
Fixes <https://issues.guix.gnu.org/77606>.

Calling ‘fdatasync’ for each and every narinfo file created by ‘guix
substitute’ proved to be too expensive on spinning HDDs and/or under
load (from 0.1s to 1.3s for the ‘fdatasync’ call alone).

* guix/git-authenticate.scm (cache-authenticated-commit): Pass #:sync? #f.
* guix/http-client.scm (http-fetch/cached): Likewise.
* guix/scripts/discover.scm (write-publish-file): Likewise.
* guix/scripts/style.scm (format-whole-file): Likewise.
* guix/substitutes.scm (cache-narinfo!): Likewise.

Reported-by: Christopher Baines <mail@cbaines.net>
Change-Id: I82297eae737bc5aae8a3f7604119e9f3d4b625bf
2025-04-14 17:31:50 +02:00
Ludovic Courtès
3271843122
substitutes: Ignore corrupt cached narinfos.
* guix/substitutes.scm (cached-narinfo): Add ‘eof-object?’ clause.

Change-Id: I2d776f64b6521f778b4ab3f956b35cdef2ddb383
2025-04-14 17:31:49 +02:00
Ludovic Courtès
5525315092
utils: Add #:sync? parameter to ‘with-atomic-file-output’.
* guix/utils.scm (with-atomic-file-output): Add #:sync? and honor it.
Add ‘force-output’ call.

Change-Id: I2479778ae55360c0fab3389ac9249045a27b3568
2025-04-14 17:31:49 +02:00
Ludovic Courtès
c44495bb10
cache: Remove unused import.
* guix/cache.scm: Remove unused import.

Change-Id: I06956534aa5342a084ebf71b61518c515ce9288c
2025-04-14 17:31:49 +02:00
Ludovic Courtès
b5e567bb2b
git: Override the user’s ‘core.autocrlf’ settings.
Fixes <https://issues.guix.gnu.org/77214>.

Fixes a bug whereby setting ‘core.autocrlf’ to ‘true’ in ~/.gitconfig
would lead ‘guix pull’ & co. to obtain non-bit-identical files,
including possibly syntactically-invalid Scheme files.

* guix/git.scm (clone*): Set ‘core.autocrlf’ to ‘input’.

Reported-by: Jodi Jodingtonstinski <jodijodingtondev@gmail.com>
Change-Id: I11fb20813a9fc1e14828ca8ebf5092c4b1181e5c
2025-04-14 16:58:44 +02:00
Maxim Cournoyer
5af2a0c390
import/pypi: Improve renaming procedure.
A package named upstream like 'tmdb-python' now gets named 'python-tmdb'
instead of 'python-tmdb-python', which is ugly and doesn't match our
convention (info "(guix) Python Modules").

* guix/import/pypi.scm (python->package-name): Turn a -python suffix into a
python- prefix.

Change-Id: I7c0227d569c0afe6b16329d7cedb51728e4365b0
2025-04-14 13:34:00 +09:00
Nicolas Graves via Guix-patches via
d3086f85e0
import: npm-binary: Handle vector of licenses.
* guix/import/npm-binary.scm (<package-revision>)[license]: Handle the
case where a vector of licenses is used.

* tests/npm-binary.scm (foo-json): Redefine as a procedure with
license keyword.
  (test-source-hash): Redefine with direct reference to test-source.
  (foo-sexp): Redefine as a procedure with license keyword.
  (npm-binary->guix-package test): Use foo-json and foo-sexp.
  (npm-binary->guix-package with multiple licenses): Add test.

Change-Id: I9d6adb2ae2820678260fed1a67e91e22feb448b8
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves via Guix-patches via
8aca24f41e
import: npm-binary: Improve-style.
* guix/import/binary.scm (resolve-package): Use and-let*.

Change-Id: I41688c319ad4a6e73c04cb5bd4ed70365e6c7e4d
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves via Guix-patches via
23e001d9cb
import: npm-binary: Improve npm-package->package-sexp.
* guix/import/npm-binary.scm (npm-package->package-sexp): Use record
matching.

Change-Id: If4e60162a84cb8d9694882eab933afa7028b02d7
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves via Guix-patches via
4b47728a6b
import: npm-binary: Fix import.
This is a follow-up to 0881a674cce3af6ebe0c1c85000e2726cbe6fc54.

* guix/import/npm-binary.scm (npm-package->package-sexp): Use modify-json.
* tests/npm-binary.scm (npm-binary->guix-package test): Use modify-json.

Change-Id: I70523a890948b218c0d82d94a6edf8775521473e
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Nicolas Graves
1f25dff3e1
build-system/tree-sitter: Add guile-json extension.
* guix/build-system/tree-sitter.scm (default-guile-json): New variable.
(tree-sitter-cross-build, tree-sitter-build): Use guile-json extension.

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: Ib6124d7bde26e6c6711905a651858e9d99a61a1f
2025-04-13 14:19:43 +02:00
Nicolas Graves
c48019577c
build-system/tree-sitter: Switch to (json).
* guix/build/tree-sitter-build-system.scm (patch-dependencies,
install): Switch from (guix build json) to (json).

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: I8de71c74475514c932e84303a20f0409419e8527
2025-04-13 14:19:43 +02:00
Nicolas Graves
93d4d16375
build-system/node: Use test-target argument.
* guix/build/node-build-system.scm (check): Use test-target argument.

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: I5b6b273d7c8ad9f9b4d48a5e50e000adcf504402
2025-04-13 14:19:43 +02:00
Nicolas Graves
7cc5ddf763
build-system/node: Add guile-json extension.
* guix/build-system/node.scm (default-guile-json): New variable.
(node-build): Use guile-json extension.

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: I68eb291410fc4943395c876ba702360b4cd7be4f
2025-04-13 14:19:43 +02:00
Daniel Khodabakhsh
3e9e164154
build-system/node: New API for modifying json.
Introduce (modify-json), (delete-fields), and (replace-fields) to node-build-system

This change introduces helper procedures (modify-json) which takes in lambdas
 which modify the target json #:file which defaults to package.json
This change also includes (delete-fields) and (replace-fields) to help deleting
 and replacing the value of fields in a package.json file.

* guix/build/node-build-system.scm
(modify-json, modify-json-fields, delete-fields, replace-fields,
delete-dev-dependencies): New API exported procedures.
(with-atomic-json-file-replacement, delete-dependencies): Change
procedures to adapt to the new API.

* gnu/packages/node.scm (node-ms-bootstrap,
node-binary-search-bootstrap, node-debug-boostrap,
node-llparse-builder-bootstrap, node-llparse-frontend-boostrap,
node-llparse-bootstrap): Use new API procedures.

* gnu/packages/node-xyz.scm (node-acorn, node-addon-api,
node-buffer-crc32, node-crx3, node-debug, node-file-uri-to-path,
node-ieee754, node-inherits, node-irc, node-irc-colors, node-minimist,
node-ms, node-nan, node-normalize-path, node-once, node-path-key,
node-pbf, node-protocol-buffers-schema, node-readable-stream,
node-resolve-protobuf-schema, node-safe-buffer,
node-safe-stable-stringify, node-semver, node-serialport,
node-serialport-bindings, node-serialport-stream, node-sqlite3,
node-string-decoder, node-tiddlywiki, node-wrappy, node-yazl): Use new
API procedures.

Change-Id: I957f7ca814078d2136d5261985174820235f1369
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:43 +02:00
Daniel Khodabakhsh
86caf257e7
build-system/node: Switch to (json).
Replace (guix build json) with (json) in node-build-system

* guix/build/node-build-system.scm
(jsobject-ref, jsobject-update, jsobject-union, newest,
unkeyed->keyed): Remove unused functions.
(with-atomic-json-file-replacement): Switch to (json) module.  Move
file argument as a second optional argument.
(alist-update): Switch to (json) module.  Remove optional default
argument.
(patch-dependencies, delete-dependencies, build): Switch to (json)
module.  Arguments are unchanged.

* guix/build-system/node.scm (%node-build-system-modules): Switch
to (json) module.

* gnu/packages/node-xyz.scm (node-acorn, node-addon-api,
node-serialport-bindings, node-sqlite3): Adapt package custom
<#:phases> to the replacement.

Change-Id: I9fd5152a98b6a241d414e9a94ab179c9cabcfb85
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2025-04-13 14:19:34 +02:00
Sergey Trofimov
c705d6e035
man-db: Support mdoc-formatted man pages.
* guix/man-db.scm (man-page->entry): Extract man name and section from
.Dt macro.

Change-Id: I02dc99d73dceecdb077315805025efad9a650e91
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-11 12:18:02 +02:00
Sergey Trofimov
80cda80489
man-db: Parse man macro arguments better.
* guix/man-db.scm (man-macro-tokenize): New procedure to parse man
macros.
(man-page->entry): Parse macro line using man-macro-tokenize.

Change-Id: Iea0ffbc65290757df746138e0a6174646b5a3eb8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-11 12:18:02 +02:00
Ludovic Courtès
21221710f2
gexp: ‘local-file’ expands its argument only once.
Fixes a bug whereby (local-file (in-vicinity (getcwd) "xyz")) would
point to different files depending on the current working directory at
the time it is lowered.

* guix/gexp.scm (local-file): Expand FILE only once.
* tests/gexp.scm ("local-file, capture at the right time"): New test.

Change-Id: I2cc23296de3799e68f7d8b7be6061be3043e1176
2025-04-06 11:23:07 +02:00
Maxim Cournoyer
e2f37229e5
download: Remove unreachable mirror URL.
This one was returning 404.

* guix/download.scm (%mirrors) <savannah>: Remove
"https://de.freedif.org/savannah/".

Change-Id: I0fd59ec87cf7c89459f07dafb9cafbbe12c11fd2
2025-04-03 22:28:10 +09:00