Commit graph

8245 commits

Author SHA1 Message Date
Liliana Marie Prikler
3455034376
build-system: emacs: Enable tests when not cross-compiling.
This is a first effort towards making emacs-build-system more suitable for
cross-compilation.

* guix/build-system/emacs.scm (emacs-build)[#:tests?]: Enable when not
cross-compiling.
* gnu/packages/emacs-xyz.scm (emacs-ac-php, emacs-chatgpt-shell)
(emacs-inspector, emacs-tree-inspector, emacs-pug-mode, emacs-llama)
(emacs-magit, emacs-ezf, emacs-speed-type, emacs-graphql)
(emacs-fb2-reader, emacs-ample-regexps, emacs-rescript-mode)
(emacs-relative-buffers, emacs-emms, emacs-aio, emacs-async)
(emacs-latex-extra, emacs-auto-themer, emacs-bm, emacs-varuga)
(emacs-ellama, emacs-org-fc, emacs-go-mode, emacs-dash, emacs-undo-fu-session)
(emacs-s, emacs-lemon, emacs-fringe-helper, emacs-git-link)
(emacs-explain-pause-mode, emacs-zig-mode, emacs-calc-currency)
(emacs-string-inflection, emacs-ob-go, emacs-robot-log, emacs-rspec)
(emacs-sqlite3-api, emacs-shx, emacs-el-job, emacs-elisp-demos)
(emacs-sudo-edit, emacs-subed, emacs-deferred, emacs-company-lsp, emacs-jack)
(emacs-elquery, emacs-cov, emacs-god-mode, emacs-org-pomodoro)
(emacs-eglot-tempel, emacs-dumbparens, emacs-perspective, emacs-realgud)
(emacs-hydra, emacs-avy, emacs-lispy, emacs-clojure-mode, emacs-qt-pro-mode)
(emacs-sphinx-doc, emacs-julia-mode, emacs-js2-mode, emacs-nodejs-repl)
(emacs-projectile, emacs-skeletor, emacs-elfeed, emacs-elfeed-org)
(emacs-mocker, emacs-find-file-in-project, emacs-pyvenv, emacs-elpy)
(emacs-rainbow-delimiters, emacs-visual-fill-column, emacs-visual-replace)
(emacs-wucuo, emacs-yaml, emacs-yari, emacs-wgrep, emacs-islisp-mode)
(emacs-lua-mode, emacs-evil-collection, emacs-evil-owl, emacs-evil-exchange)
(emacs-evil-lion, emacs-evil-expat), emacs-monky, emacs-org, emacs-ht)
(emacs-yasnippet, emacs-memoize, emacs-use-package, emacs-xmlgen)
(emacs-cc-mode, emacs-php-mode, emacs-evil-surround, emacs-org-transclusion)
(emacs-json-reformat, emacs-display-wttr, emacs-git-messenger)
(emacs-enh-ruby-mode, emacs-browse-at-remote, emacs-tiny, emacs-unidecode)
(emacs-circe, emacs-evil-quickscope, emacs-groovy-modes, emacs-kotlin-mode_)
(emacs-kv, emacs-auth-source-pass, emacs-emacsql, emacs-org-recur)
(emacs-org-super-agenda, emacs-ts, emacs-circadian, emacs-eldev, emacs-citar)
(emacs-loop, emacs-elisp-refs, emacs-esup, emacs-macrostep, emacs-parent-mode)
(emacs-helpful, emacs-suggest, emacs-auto-yasnippet)
(emacs-git-auto-commit-mode, emacs-devil, emacs-devil-multiedit)
(emacs-go-translate, emacs-langtool, emacs-helm-company, emacs-picpocket)
(emacs-srht, emacs-github-review, emacs-deadgrep, emacs-adoc-mode)
(emacs-racer, emacs-sesman, emacs-buttercup, emacs-cort, emacs-annalist)
(emacs-general, emacs-libmpdel, emacs-navigel, emacs-eat, emacs-detached)
(emacs-repology, emacs-bfuture, emacs-undo-propose-el, emacs-tco-el)
(emacs-vdiff, emacs-exwm-firefox, emacs-rjsx-mode, emacs-dash-docs)
(emacs-casual-lib, emacs-evil-numbers, emacs-evil-traces, emacs-ox-tufte)
(emacs-org-jira, emacs-systemd-mode, emacs-doom-themes, emacs-exiftool)
(emacs-qrencode, emacs-org-journal, emacs-weblorg, emacs-execline)
(emacs-webpaste, emacs-keystore-mode, emacs-ein, emacs-straight-el)
(emacs-vundo, emacs-org-cliplink, emacs-x509-mode)[arguments]:
Remove #:tests?.
(emacs-f, emacs-shut-up, emacs-ansi, emacs-commander)
(emacs-ert-runner)[arguments]: Add #:tests? #f.
(emacs-with-editor, emacs-tablist, emacs-pkg-info, emacs-el-x, emacs-helm)
(emacs-xelb, emacs-repo): Likewise.
2025-06-15 16:56:45 +02:00
Morgan Smith
cea0ecb60b
build-system/emacs: Provide allowed and disallowed references.
* guix/build-system/emacs.scm (emacs-build): Pass #:allowed-references and

Change-Id: Ib9a35a7b2115365b96675fb7ca3914b0ae7e67c7
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-06-15 16:56:45 +02:00
Morgan Smith
4e40362553
guix: emacs-utils: Be more verbose in build phase.
* guix/build/emacs-utils.scm (emacs-compile-directory): Display the filename
of each file before compiling.

Change-Id: I275a086ed92f7cfb2907aea9b4feb59012cc8dd5
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-06-15 16:56:44 +02:00
Rutherther
65bb0d92d8
pack: Singularity environemt sources the profile's 'etc/profile'.
Fixes #419 where the same search path is used multiple times, leading to the
last one overriding the previous one.

The solution relies on the #$profile/etc/profile file that is already verified
and in case of errors, it is just one place to repair instead of repairing at
multiple places, like in singularity-environment-file

* guix/pack.scm (singularity-environment-file): Source #$profile/etc/profile

Reported-by: Alexis Simon <alexis.simon@runbox.com>
Change-Id: Ic304fef99ad34d83e4e10cdd2b26d3b1802b5251
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-13 14:01:38 +02:00
Morgan Arnold
b5745a327e
publish: Prevent publication of non-substitutable derivation outputs.
This commit prevents Guix substitute servers from distributing binaries
which are marked non-substitutable.  This prevents substitute servers
from accidentally committing copyright violations by distributing
binaries that are non-substitutable for copyright reasons.

* guix/scripts/publish.scm (render-nar): Query the derivers of
‘store-path’ and do nothing if one of them does not match
‘substitutable-derivation?’.
* tests/publish.scm ("non-substitutable derivation"): New test.

Change-Id: Iaca81f5bdb430a12a3ad41e9b83e0bcc535af607
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-06-06 18:41:19 +02:00
Efraim Flashner
ed69ed73c1
guix: gnu-dist: Fix distcheck.
* guix/build/gnu-dist.scm (build): Add a configure-flag during the
distcheck rebuild to use a shell we have in the build environment.

Change-Id: I3519ab498ef47728729297a70ac1dce8e1b922ee
2025-06-06 14:41:30 +03:00
Tomas Volf
5c5c5a6e58
environment: Set LANG by default.
* guix/scripts/environment.scm (launch-environment/container): Set LANG
to C.UTF-8 unless already set.

Change-Id: I2dba595c8d5f4e9b45264f8185c72779fead2ce6
Signed-off-by: Ekaitz Zarraga <ekaitz@elenq.tech>
2025-06-03 19:28:35 +02:00
Ray Miller
b48b2bcf42
pack: Include store parent directories in the Docker layer.
Fixes <https://issues.guix.gnu.org/78210>.

This patch adds the /gnu and /gnu/store directories to the Docker layer
created by ‘guix pack -f docker …’, which enables the Docker image to be
used to create an AWS Lambda function.  Without the patch, creating the
AWS Lambda function fails with this error:

  "MissingParentDirectory: Parent directory does not exist for file: gnu/store/…-info-dir/"

* guix/scripts/pack.scm (docker-image)[build]: Add store directory to
the docker layer.
* guix/docker.scm (build-docker-image): Change order of arguments to
‘tar’ so parent directories are added before their contents.

Change-Id: I2b103c59981e828c965564ccc5d2415b00a7e52e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-03 15:09:54 +02:00
Nicolas Graves
ec6757d00c
scripts: environment: Export launch-environment/container.
* guix/scripts/environment.scm (launch-environment/container): Export.

Change-Id: I98d1b3e785015b34f4b434ccd931d8cf8988ee3c
Signed-off-by: Hilton Chain <hako@ultrarare.space>
2025-05-31 21:42:58 +08:00
Efraim Flashner
178a45bc72
build/go: Set correct GOOS for Windows.
* guix/build/go-build-system.scm (setup-go-environment): When building
for windows override the inherited GOOS and set it to 'windows'.

Change-Id: I310aa490bb010370112cfa00c69df2d36387c323
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-05-26 16:50:02 +01:00
Hilton Chain
585929d18c
build/zig: Support specifying test target.
* guix/build/zig-build-system.scm (check): Accept #:test-target.

Change-Id: I5b8c449b1668d98b365f897a2692085b02c7ead4
2025-05-26 10:41:05 +08:00
Hilton Chain
14e0c9817d
build-system: zig: Expose #:zig-build-target.
* guix/build-system/zig.scm (zig-build, zig-cross-build)[#:zig-build-target]:
Expose.

Change-Id: Iedb75eced4ebc512251348246459653d5e4b9cd2
2025-05-26 10:41:03 +08:00
Ludovic Courtès
096dedd0bb
import: texlive: Import the given version when specified.
Fixes a regression in ‘tests/texlive.scm’ introduced in commit
f13f076968 whereby ‘texlive-tags’ would be
called unconditionally, leading to an attempt to build Subversion.

* guix/import/texlive.scm (texlive->guix-package): Honor VERSION when it
is true.

Change-Id: I05e158fe55c65f7547c7150f00a589b4f600a40a
2025-05-24 15:29:10 +02:00
Ludovic Courtès
f8527e7f20
environment: Provide a writable /run/user/$UID.
* guix/scripts/environment.scm (launch-environment/container): Add
/run/user/UID to ‘file-systems’.
* tests/guix-environment-container.sh: Test it.

Change-Id: I44c70a7554a06f40d073c25929ea7c6ded356d08
2025-05-24 12:48:05 +02:00
Ludovic Courtès
3b6e499d5e
maint: Change main repository URL to git.guix.gnu.org.
Throughout, replace “https://git.savannah.gnu.org/git/guix.git” by
“https://git.guix.gnu.org/guix.git”.

Change-Id: Ieb82464f92a806b85c79e629f952e68c39323740
2025-05-23 11:19:07 +02:00
Ludovic Courtès
5e47bafb37
describe: Recognize git.guix.gnu.org for commit hyperlinks.
* guix/scripts/describe.scm (%vcs-web-views): Add git.guix.gnu.org.

Change-Id: I47ded4618dec3073925efdfa5df87ab47643f8c4
2025-05-23 11:17:59 +02:00
Liliana Marie Prikler
9013a53705
import/elpa: Improve CLI documentation for archive flag.
* guix/import/elpa.scm (elpa-url)[elpa-archives]: Move from here…
(%elpa-archives): … to here.
* guix/scripts/import/elpa.scm (%options): Add “list-archives”.
(show-help): Adjust accordingly.

Change-Id: Ib686bd9ff5eff2d4c37b8751ec1410666d568c1f
Co-authored-by: jgart <jgart@dismail.de>
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-05-22 11:18:08 +02:00
Sergey Trofimov
b989e503ac
gexp: Add symlink-to procedure.
* guix/gexp.scm (symlink-to): New procedure.
* doc/guix.texi (G-Expressions): Document it.

Change-Id: I7c1ba3a29a4e5350cb4f196185b7171c4750b6b8
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-21 08:05:27 +09:00
Sergey Trofimov
9b7213fc11
gexp: Allow file-unions with dangling symlinks.
* guix/gexp.scm (file-union): Add #:dangling-symlinks? parameter.

Change-Id: I09d44ec785fd7141b02dee2d8dc23ccc499aa933
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-21 08:05:27 +09:00
Maxim Cournoyer
271a8fc249
refresh: Allow specifying a partial version via the version specification.
* guix/scripts/refresh.scm (update-specification->update-spec): Flag the
update-spec as partial when it is prefixed with '~'.
* tests/guix-refresh.sh: Test it.  Remove extraneous 'guix refresh'
invocation.
* doc/guix.texi (Invoking guix refresh): Document it.

Change-Id: Iab4482d9367105f6ffcd2d6a49148736c93d53e4
Reviewed-by: Florian Pelz <pelzflorian@pelzflorian.de>
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-05-19 10:07:24 +09:00
Tomas Volf
11e88de060
environment: Make home writable.
Fixes <https://issues.guix.gnu.org/78363>.

* guix/scripts/environment.scm (launch-environment/container): Add tmpfs for
home.
* tests/guix-environment-container.sh: Add test.

Change-Id: Iadd9b838f6442a8080998ed7e07414db562068bf
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-18 22:55:54 +02:00
Tomas Volf
7a888d9841
environment: Translate only file names under home directory.
* guix/scripts/environment.scm (file-name-equal-or-under?): New procedure.
(override-user-mappings, override-user-dir): Use it.

Change-Id: Iadd9b838f6442a8080998ed7e07414db562068bf
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-18 22:55:54 +02:00
Tomas Volf
8654aecf74
environment: Use inherit for new mapping.
* guix/scripts/environment.scm (override-user-mappings): Use inherit.

Change-Id: Iadd9b838f6442a8080998ed7e07414db562068bf
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-18 22:55:54 +02:00
Ludovic Courtès
86022e994e
git: Remove code for Guile-Git < 0.10.0.
* guix/git.scm (commit-relation, commit-descendant?): Remove code for
Guile-Git < 0.10.0.
(set-git-timeouts): Remove code for Guile-Git < 0.9.0.
(report-git-error): Remove code for ancient Guile-Git.

Change-Id: Ie597151ce4c1e5ea006e2783fcc510caed3f566c
2025-05-18 22:55:53 +02:00
Ludovic Courtès
6d6d897b54
channels: Speed up ‘channel-news-for-commit’.
Partly fixes <https://issues.guix.gnu.org/78194>.

This makes the wall-clock time of:

  guix pull --list-generations > /dev/null

shrink from 33s to 4s on a profile with 8 generations.

* guix/channels.scm (channel-news-for-commit): Rewrite in terms of
‘commit-descendant?’.

Reported-by: Ian Eure <ian@retrospec.tv>
Change-Id: I387e3dc37437e2d98bfd7ab710417f68d16146ad
2025-05-18 22:55:53 +02:00
Maxim Cournoyer
3fadea4254
import: Guard against potential type error.
The import-gnu-release could crash with a "Wrong type (expecting pair): ()"
error, as seen when attempting to recursively refresh a package, e.g.:

  $ guix refresh -r xdg-desktop-portal-gnome

It would crash on attempting to refresh 'bash-static'.

* guix/gnu-maintenance.scm (import-gnu-release): Guard against a potentially
empty VERSIONS list.

Change-Id: Ib4edb4b721e6053b09ef144a1b16fe23b35649b0
2025-05-17 13:10:11 +09:00
Ricardo Wurmus
24dd164ead
import/cran: Record more invalid package names.
* guix/import/cran.scm (invalid-packages): Add more bogus names.

Change-Id: I279996db792ed1677bd596fc7a6b5c1886a0ead4
2025-05-13 14:50:05 +02:00
Ricardo Wurmus
3071ef9397
guix: Update to Bioconductor 3.21.
* guix/build-system/r.scm (bioconductor-uri): Update version in URI to 3.21.
* guix/import/cran.scm (%bioconductor-version): Update to 3.21.

Change-Id: I216576d42d013a00310cc2230e89567ffb1487a2
2025-05-12 08:53:55 +02:00
Maxim Cournoyer
18ed22536d
ui: Allow evaluating multi-expressions strings with read/eval.
This can be useful when evaluating a scheme-file store output for example,
which has multiple top level expressions.

* guix/ui.scm (read/eval): Also accept a port object as argument.  Read and
evaluate all expressions from input port or string.

Change-Id: I0213706fa4824c3a8ffe5d93f44f263048cb62c2
2025-05-09 23:05:26 +09:00
Ludovic Courtès
edc799dabf
environment, home: Make /tmp writable.
Fixes <https://issues.guix.gnu.org/78272>.

Fixes a bug caused by commit ce363c1dc7,
which inadvertently made /tmp read-only as well.

* guix/scripts/environment.scm (launch-environment/container)[tmpfs]:
New variable.
Add it to ‘file-systems’.
* guix/scripts/home.scm (spawn-home-container): Add /tmp file system
to #:mounts.
* tests/guix-environment-container.sh: Add test.

Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I5cb449e6d0c213d4b5866cbcbd14990437a7d4c5
2025-05-06 12:22:34 +02:00
Nicolas Goaziou
af54888314
guix: texlive importer: Fix recursive calls.
* guix/import/texlive.scm (texlive-recursive-import): Make sure #:guix-name
value accepts only one argument.

Change-Id: Ie3c7f7cee7860e0d926ba95a708f16e147f4d550
2025-05-06 11:25:07 +02:00
Nicolas Goaziou
df887f679f
guix: texlive importer: Improve output for texlive-biber-ms.
* guix/import/texlive.scm (no-bin-propagation-packages): Add "biber-ms".

Change-Id: Id9dadd2194e8d59d68c395b513e4c94673c97bb2
2025-05-06 11:25:07 +02:00
Nicolas Goaziou
9192c195ff
guix: texlive importer: Fix version error when importing a package.
* guix/import/texlive.scm (texlive->guix-package): Use find-version instead of
returning the first version tag.

Change-Id: Ib144d56c034c9ce3e5a4cddcffb78be58cd05e62
2025-05-06 11:25:07 +02:00
Nicolas Goaziou
3cf3880212
guix: texlive importer: Adjust version for meta packages.
* guix/import/texlive.scm (tlpdb->package): Use (package-version
package-source) instead of %texlive-revision when importing a meta package.
* tests/texlive.scm ("texlive->guix-package, meta-package"): Test it.

Change-Id: I2a5d2eb6529dafe0c888b2a7a5a1b38af1160235
2025-05-06 11:25:06 +02:00
Nicolas Goaziou
9712d8daec
gnu: Make modular TeX Live reproducible.
Fixes: https://issues.guix.gnu.org/73613

* gnu/packages/tex.scm (texlive-aleph):
(texlive-amstex):
(texlive-eplain):
(texlive-hitex):
(texlive-lollipop):
(texlive-mex):
(texlive-mltex):
(texlive-texsis):
(texlive-luatex):
(texlive-xmltex):
(texlive-latex-bin):
(texlive-cslatex):
(texlive-mptopdf):
(texlive-mflua):
(texlive-luajittex):
(texlive-csplain):
(texlive-luahbtex):
(texlive-jadetex):
(texlive-pdftex):
(texlive-optex):
(texlive-context-legacy):
(texlive-everyshi):
(texlive-xetex): Add libfaketime to native inputs.
* guix/build/texlive-build-system.scm (enforce-source-date-epoch): New function.
(create-formats): Wrap format generation within a `faketime' or `datefudge'
call, depending on the system.
(%standard-phases): Add a phase to obey to SOURCE_DATE_EPOCH.

Change-Id: Ieef6adb18b7f4373194e3550d41761f75334e574
2025-05-06 11:25:06 +02:00
Nicolas Goaziou
f6d9057ff2
gnu: texlive-libkpathsea: Enforce ls-R usage by default.
Fixes: https://issues.guix.gnu.org/75893

* gnu/packages/tex.scm (texlive-libkpathsea): Set TEXMF so that ls-R database
is mandatory and must contain the file looked after in the TeX Live tree.
* guix/build/texlive-build-system.scm (configure-texmf): Relax requirements
for "ls-R" database.  Renamed from `set-texmfvar'.
(%standard-phases): Apply phase renaming.
* gnu/packages/python-xyz.scm (python-nbconvert)[native-inputs]: Add TeX Live
packages required for tests to pass since propagated packages are no longer
accessible during build.
* gnu/packages/books.scm (book-sparc)[inputs]: Move TeX Live related inputs
to...
[native-inputs]: ... here, and wrap them within texlive-local-tree for the
same reason as above.

Change-Id: I3430bc84ce35f4aa8f0537b512f472ef88f8e5e9
2025-05-06 11:25:06 +02:00
Nicolas Goaziou
4e04035d36
gnu: profiles.scm: Ignore ls-R databases when building font maps.
* guix/profiles.scm (texlive-font-maps): Ignore ls-R databases when building
font maps.

Change-Id: I942886a89497e94c51e492657150540c6cd35603
2025-05-06 11:25:06 +02:00
Nicolas Goaziou
4df6eda30f
gnu: Rename texlive-updmap.cfg' into texlive-local-tree'.
* doc/build.scm (pdf-manual):
* doc/contributing.texi (Submitting Patches):
* gnu/packages/algebra.scm (pari-gp):
(giac):
* gnu/packages/assembly.scm (asl):
* gnu/packages/audio.scm (chow-tape-model):
* gnu/packages/bioconductor.scm (r-biocstyle):
* gnu/packages/bioinformatics.scm (discrover):
(phyml):
(velvet):
* gnu/packages/chemistry.scm (yaehmop):
* gnu/packages/chez.scm (chez-scheme-for-racket):
(stex-bootstrap):
(chez-web):
(chez-sockets):
* gnu/packages/cran.scm (r-papaja):
(r-prereg):
* gnu/packages/docbook.scm (dblatex):
* gnu/packages/emacs-xyz.scm (emacs-auctex):
* gnu/packages/engineering.scm (fastcap):
* gnu/packages/finance.scm (optionmatrix):
* gnu/packages/fsf.scm (book-faif):
* gnu/packages/gettext.scm (po4a):
(po4a-minimal):
* gnu/packages/graphics.scm (mmg):
* gnu/packages/graphviz.scm (dot2tex):
* gnu/packages/guile-xyz.scm (emacsy):
(guile-cv):
* gnu/packages/lisp.scm (sbcl):
* gnu/packages/maths.scm (cddlib):
(gnuplot):
(itpp):
(octave):
(suitesparse-amd):
(suitesparse-camd):
(suitesparse-cholmod):
(suitesparse-klu):
(suitesparse-ldl):
(suitesparse-mongoose):
(suitesparse-spex):
(suitesparse-spqr):
(suitesparse-umfpack):
(hypre):
* gnu/packages/music.scm (lilypond):
* gnu/packages/ocaml.scm (unison):
(ocaml-bibtex2html):
* gnu/packages/pdf.scm (extractpdfmark):
* gnu/packages/photo.scm (enblend-enfuse):
* gnu/packages/plotutils.scm (asymptote):
* gnu/packages/python-xyz.scm (python-numpy-documentation):
(python-ipython-documentation):
(python-pypandoc):
* gnu/packages/radio.scm (gnuradio):
(libosmo-dsp):
* gnu/packages/scheme.scm (mit-scheme):
* gnu/packages/security-token.scm (yubico-piv-tool):
* gnu/packages/sphinx.scm (python-sphinx):
(python-sphinx-5):
* gnu/packages/statistics.scm (r-with-tests):
(r-spams):
* gnu/packages/tex.scm (texlive-local-tree): Renamed from…
(texlive-updmap.cfg): … this. Deprecate the latter.
(texlive-biblatex-philosophy):
(texlive-bropd):
(texlive-fontsize):
(texlive-poetrytex):
(texlive-reverxii):
(texlive-stix):
(texlive-suftesi):
(texlive-thucoursework):
(texlive-ulqda):
(texlive-yathesis):
(texlive-makecell):
(texlive-robotarm):
(texlive-bbold):
(texlive-babel-romansh):
(texlive-polyglossia):
(texlive-innerscript):
(teximpatient):
(texlive-xkeyval):
(texlive-arabxetex):
(texlive-blox):
(texlive-ecgdraw):
(texlive-gradientframe):
(texlive-everyhook):
(texlive-actuarialangle):
(texlive-actuarialsymbol):
(texlive-autopdf):
(texlive-etaremune):
(texlive-extract):
(texlive-forarray):
(texlive-graphicx-psmin):
(texlive-ha-prosper):
(texlive-namespc):
(texlive-newspaper):
(texlive-powerdot):
(texlive-recipecard):
(texlive-show2e):
(texlive-tablists):
(texlive-ted):
(texlive-xargs):
(texlive-xpeek):
* gnu/packages/xdisorg.scm (xforms):
* gnu/packages/algebra.scm (gap):
* gnu/packages/cpp.scm (jthread):
* guix/lint.scm (check-inputs-should-be-native): Rename `texlive-updmap.cfg' into `texlive-local-tree'.

Change-Id: I129280807c418e57acbcbda399545ab27a9e0a33
2025-05-06 11:25:06 +02:00
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