summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2022-11-15shell: Detect --symlink spec problems early.Maxim Cournoyer
* guix/scripts/pack.scm (symlink-spec-option-parser): Remove extraneous char-set. Raise an exception when the target is an absolute file name. (guix-pack): Move with-error-handler earlier. * guix/scripts/shell.scm (guix-shell): Likewise. * guix/scripts/environment.scm (guix-environment): Wrap the whole guix-environment* call with the with-error-handling handler. * tests/guix-environment-container.sh: Add tests. * tests/guix-pack.sh: Adjust symlink spec.
2022-11-15guix: shell: Add '--symlink' option.Maxim Cournoyer
* guix/scripts/pack.scm (%options): Extract symlink parsing logic to... (symlink-spec-option-parser): ... here. (self-contained-tarball/builder): Add a comment mentioning why a relative file name is used for the link target. * guix/scripts/environment.scm (show-environment-options-help): Document new --symlink option. (%default-options): Add default value for symlinks. (%options): Register new symlink option. (launch-environment/container): Add #:symlinks argument and extend doc, and create symlinks using evaluate-populate-directive. (guix-environment*): Pass symlinks arguments to launch-environment/container. * doc/guix.texi (Invoking guix shell): Document it. * tests/guix-shell.sh: Add a --symlink (negative) test. * tests/guix-environment-container.sh: Add tests.
2022-11-14self: Mark the generation (guix config) as non-declarative.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/58927>. Reported by Maxime Devos <maximedevos@telenet.be> and Marius Bakke <marius@gnu.org>. Starting from 076e825dc5d585943ce820a279fffe4af09757fb, "guix --version" would print "0" as the version number, due to '%guix-version' being inlined in (guix ui) when compiling '*core-modules*' in (guix self). * guix/self.scm (make-config.scm): Pass #:declarative? #f.
2022-11-11gnu-maintenance: 'release-file?' excludes "valgrind-3.20.0.RC1.tar.bz2".Ludovic Courtès
* guix/gnu-maintenance.scm (%alpha-tarball-rx): Add "." before "(alpha|beta|...)". * tests/gnu-maintenance.scm ("release-file?"): Add test for Valgrind.
2022-11-11gnu-maintenance: 'gnu' updater prefers tarball with same compression.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/59168>. Previously 'guix build make --with-latest=make' would pick ".tar.lz", rather than "tar.gz", because "tar.lz" happened to come first in the <upstream-source> 'urls' field. * guix/gnu-maintenance.scm (latest-gnu-release)[archive-type] [better-tarball?]: New variables. Sort TARBALLS according to BETTER-TARBALL?.
2022-11-11upstream: Factorize 'package-archive-type'.Ludovic Courtès
* guix/upstream.scm (package-archive-type): New procedure. (package-update/url-fetch): Use it.
2022-11-11grafts: Run with a UTF-8 locale.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/55968>. Reported by Maxime Devos <maximedevos@telenet.be>. * guix/grafts.scm (%graft-with-utf8-locale?): New parameter. (graft-derivation/shallow)[glibc-locales, set-utf8-locale]: New variables. [build]: Use 'set-utf8-locale'. * tests/gexp.scm, tests/grafts.scm, tests/packages.scm: Set '%graft-with-utf8-locale?' to #f.
2022-11-11build-system/dub: Avoid usage of (guix build syscalls).Marius Bakke
* guix/build/dub-build-system.scm (configure): Use MKDTEMP instead of MKDTEMP!.
2022-11-11build-system/clojure: Avoid usage of (guix build sycalls).Marius Bakke
* guix/build/clojure-build-system.scm (reset-class-timestamps): Use MKDTEMP from Guile core instead of MKDTEMP!.
2022-11-11build-system/ant: Avoid usage of (guix build syscalls).Marius Bakke
* guix/build/ant-build-system.scm (strip-jar-timestamps): Use MKDTEMP from Guile core rather than MKDTEMP!. * guix/build/java-utils.scm (install-jar-file-with-pom): Likewise.
2022-11-11import/cran: Add package name mapping for "booktabs".Ricardo Wurmus
* guix/import/cran.scm (transform-sysname): Add mapping for "booktabs".
2022-11-11import/cran: Add more strings to the list of invalid packages.Ricardo Wurmus
* guix/import/cran.scm (invalid-packages): Add "c++", "c++17", and "posix.1-2001" to list of invalid packages.
2022-11-10gnu: Add go-github-com-creack-pty.(unmatched-parenthesis
* gnu/packages/golang.scm (go-github-com-creack-pty): New variable. * guix/build-system/go.scm (go-target): Add to exported variables. Signed-off-by: Raghav Gururajan <rg@raghavgururajan.name>
2022-11-08build-system/gnu: Turn #:phases into a gexp when cross-compiling.Ludovic Courtès
Previously, we'd get this error: $ guix build --target=aarch64-linux-gnu r-minimal -d --no-grafts guix build: error: path ‘/gnu/store/[^-]+-glibc-[^-]+-static’ is not valid This is because the sexp would be passed as an input of the surrounding gexp in 'gnu-cross-build', and thus "/gnu/store/[^-]+-glibc-[^-]+-static" would be interpreted as a source file name, as in this example: scheme@(guix gexp)> #~(foo #$(list 'whatever "/gnu/store/[^-]+-glibc-[^-]+-static")) $11 = #<gexp (foo #<gexp-input (whatever "/gnu/store/[^-]+-glibc-[^-]+-static"):out>) 7f098badec30> scheme@(guix gexp)> (gexp-inputs $11) $12 = (#<gexp-input "/gnu/store/[^-]+-glibc-[^-]+-static":out>) Fixes <https://issues.guix.gnu.org/59073>. Reported by Christopher Baines <mail@cbaines.net>. * guix/build-system/gnu.scm (gnu-cross-build): When PHASES is a pair, pass it through 'sexp->gexp'.
2022-11-07build-system/linux-module: Add #:source-directory to linux-module-build-cross.Christopher Baines
Otherwise computing cross-compilation derivations for packages (e.g. xpadneo) using the #:source-directory argument fails with this error: Unrecognized keyword: #:source-directory * guix/build-system/linux-module.scm (linux-module-build-cross): Support #:source-directory.
2022-11-06guix gc: Add '--vacuum-database'.Efraim Flashner
* guix/scripts/gc.scm (show-help, %options): Add '--vacuum-database'. * guix/store/database.scm (vacuum-database): New procedure. * doc/guix.texi (Invoking guix gc): Document the option.
2022-11-06shell: Fix '--emulate-fhs' sometimes not including 'glibc-for-fhs'.John Kehayias
Fixes <https://issues.guix.gnu.org/58861>. Previously the order of the options giving to 'guix shell' could mean that the 'glibc-for-fhs' package included with the '--emulate-fhs' option would not appear in the container. For example, using the development option with a package using the 'gnu-build-system', e.g. 'guix shell -CFD hello', would include the regular 'glibc' package. The option ordered mattered: 'guix shell -CD hello -F' would include the expected 'glibc-for-fhs'. We fix this by having 'glibc-for-fhs' added to the package list just before calling 'options-with-caching' so the option order given by the user does not matter. * guix/scripts/shell.scm (%options): Move the '--emulate-fhs' (expression . ...) component from here... (parse-args): ... to here. * tests/guix-environment-container.sh: Add a test to check that 'glibc-for-fhs' is in the container even when 'glibc' is included in the 'guix shell' package list. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-05guix: ui: Add default synopsis for “doc” output.Liliana Marie Prikler
* guix/ui.scm (package->recutils)[%default-output-synopses]: Add “doc”.
2022-11-05guix: ui: Improve missing output descriptions.Liliana Marie Prikler
The current reference to Intel's Appendix H appears too obscure and confusing. * guix/ui.scm (package->recutils)[output->recutils]: Replace “see Appendix H” with “[description missing]”.
2022-11-05guix: ui: Handle single outputs.Liliana Marie Prikler
The current code says "out" contains "everything else", even if there's no other output to contain anything. * guix/ui.scm (package->recutils)[default-output-synopses]: New variable. [output->recutils]: Take default synopses as argument. ["outputs"]: Distinguish single and multiple outputs.
2022-11-03build-system/scons: Allow using a G-exp for scons-flags.Timotej Lazar
* guix/build-system/scons.scm (scons-build): Only call sexp->gexp on scons-flags when scons-flags is a pair. Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-10-27profiles: info-dir-file: Remove install-info '--silent' option.Maxim Cournoyer
Relates to <https://issues.guix.gnu.org/58821>. Revert 4fef1e850e4872f2bc7c1f0a10cbac176b50895f, which silenced useful information such as the following warning: install-info: warning: no info dir entry in `/gnu/store/...-rottlog-0.72.2/share/info/rottlog.info.gz' Rationale: profile hooks output is now hidden by default, and can be made visible via the --verbosity option.
2022-10-27build-system/pyproject: Always run tests verbosely for supported backends.Marius Bakke
* guix/build-system/pyproject.scm (pyproject-build): Default to '() instead of #false for TEST-FLAGS. * guix/build/pyproject-build-system.scm (check): Unconditionally enable verbose test flags. * doc/guix.texi (Build Systems): Document this change. * gnu/packages/fontutils.scm (python-glyphslib)[arguments]: Remove verbosity from #:test-flags. * gnu/packages/pdf.scm (python-pydyf, weasyprint)[arguments]: Likewise. * gnu/packages/python-web.scm (python-openapi-spec-validator)[arguments]: Likewise. * gnu/packages/python-xyz.scm (python-path, python-tempora)[arguments]: Likewise.
2022-10-27build-system/pyproject: Adjust indentation.Marius Bakke
* guix/build/pyproject-build-system.scm: Adjust indentation.
2022-10-27build-system: Add pyproject-build-system.Lars-Dominik Braun
This is an experimental build system based on python-build-system that implements PEP 517-compliant builds. * doc/guix.texi (Build Systems): Add pyproject-build-system section. * doc/contributing.texi (Python Modules): Mention pyproject.toml and the PYTHON-TOOLCHAIN package, as well as differences to python-build-system. * guix/build-system/pyproject.scm, guix/build/pyproject-build-system.scm, gnu/packages/aux-files/python/sanity-check-next.py, gnu/packages/python-commencement.scm: New files. * Makefile.am (MODULES): Register the new build systems. * gnu/local.mk (GNU_SYSTEM_MODULES): Add python-commencement.scm. * gnu/packages/python.scm (python-sans-pip, python-sans-pip-wrapper): New variables. Co-authored-by: Marius Bakke <marius@gnu.org>
2022-10-25Merge remote-tracking branch 'origin/master' into stagingEfraim Flashner
2022-10-20build-system/cargo: Unpack crates less verbosely.Efraim Flashner
* guix/build/cargo-build-system.scm (configure): Print the crate being unpacked but don't print the contents of each crate.
2022-10-22grafts: Rewrite using gexps.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/58419>. * guix/grafts.scm (graft-derivation/shallow): Rewrite using gexps and remove 'store' parameter. (graft-derivation/shallow*): New variable. (cumulative-grafts): Use it instead of 'graft-derivation/shallow'.
2022-10-22Remove now unnecessary uses of (guix grafts).Ludovic Courtès
These modules would use (guix grafts) just to access '%graft?' and related bindings, which are now in (guix store). * gnu/ci.scm, guix/gexp.scm, guix/lint.scm, guix/scripts.scm, guix/scripts/archive.scm, guix/scripts/build.scm, guix/scripts/challenge.scm, guix/scripts/deploy.scm, guix/scripts/environment.scm, guix/scripts/home.scm, guix/scripts/pack.scm, guix/scripts/package.scm, guix/scripts/pull.scm, guix/scripts/size.scm, guix/scripts/system.scm, guix/scripts/weather.scm, tests/builders.scm, tests/channels.scm, tests/cpan.scm, tests/derivations.scm, tests/gexp.scm, tests/graph.scm, tests/guix-daemon.sh, tests/monads.scm, tests/pack.scm, tests/packages.scm, tests/profiles.scm, tests/system.scm: Remove #:use-module (guix grafts).
2022-10-22grafts: Move '%graft?' and related bindings to (guix store).Ludovic Courtès
The goal is to allow (guix grafts) to use (guix gexp) without introducing a cycle between these two modules. * guix/grafts.scm (%graft?, call-without-grafting, without-grafting) (set-grafting, grafting?): Move to... * guix/store.scm: ... here.
2022-10-22build-system/python: Disable grafts.Ludovic Courtès
This is consistent with what 'gnu-build' does and makes sure origins aren't getting lowered with #:graft? #t in one case and not in the other. This is a followup to df46bef48eaa43c502fa9193371692c039b460c1 and dada5e86ed58c1869e30678c4d69582b1528ed6c. * guix/build-system/python.scm (python-build): Pass #:graft? #f.
2022-10-20lint: source: Handle <svn-multi-reference> origins.Ludovic Courtès
This is a followup to 2383e145185efb2e6f99931707ec93d65d166432. * guix/lint.scm (svn-reference-uri-with-userinfo): Accept REF being an <svn-multi-reference> record. (check-source): Handle 'svn-multi-reference?' origins like 'svn-reference?' origins.
2022-10-20syscalls: Define 'MS_NODIRATIME' and recognize "nodiratime".Ludovic Courtès
Fixes <https://issues.guix.gnu.org/58663>. This is a followup to b665dd4a9902b5722b9e06fd89c203e2221b19e0 and dcb640f02b1f9590c3bd4301a22bf31bd60c56d4, allowing "nodiratime" to be preserved for bind mounts. * guix/build/syscalls.scm (MS_NODIRATIME): New variable. (option-string->mount-flags): Recognize it. (statfs-flags->mount-flags): Likewise.
2022-10-20ci: Add 'start-time' and 'stop-time' to <build> records.Ludovic Courtès
* guix/ci.scm (seconds->date): New procedure. (<build>)[start-time, stop-time]: New fields. (build-duration): New procedure.
2022-10-20environment: Update docstring of 'launch-environment'.Ludovic Courtès
This is a followup to 78d55b703d155d36520e1c93dc08a6502c56bd55. Reported by Maxim Cournoyer. * guix/scripts/environment.scm (launch-environment): Update docstring.
2022-10-18self: Switch to Guile-GnuTLS.Ludovic Courtès
* guix/self.scm (specification->package, compiled-guix): Replace "gnutls" with "guile-gnutls".
2022-10-17lint: source: Add check for <svn-reference> over HTTP(S).Ludovic Courtès
* guix/lint.scm (svn-reference-uri-with-userinfo): New procedure. (check-source): Add 'svn-reference?' clause. * tests/lint.scm ("source: svn-reference, HTTP 200") ("source: svn-reference, HTTP 404"): New tests.
2022-10-17lint: 'probe-uri' honors the 'userinfo' part of URIs.Ludovic Courtès
* guix/lint.scm (probe-uri): Honor the 'userinfo' part of URI.
2022-10-17svn-download: Add missing exports.Ludovic Courtès
* guix/svn-download.scm: Export more <svn-reference> and <svn-multi-reference> accessors.
2022-10-17build-system/qt: Disable grafts.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/58567>. Reported by Marius Bakke <marius@gnu.org>. This is a followup to df46bef48eaa43c502fa9193371692c039b460c1. * guix/build-system/qt.scm (qt-build, qt-cross-build): Pass #:graft? #f to 'gexp->derivation'.
2022-10-17svn-download: Pass multi-fetch parameters through environment variables.Ludovic Courtès
* guix/svn-download.scm (svn-multi-fetch)[build]: Check for environment variables instead of splicing REF fields. Pass #:script-name and #:env-vars to 'gexp->derivation'.
2022-10-17svn-download: Pass parameters through environment variables.Ludovic Courtès
This ensures a single "svn-download" script is created in the store for all the origins that use 'svn-fetch'. * guix/svn-download.scm (svn-fetch)[build]: Check for environment variables instead of splicing REF fields. Pass #:script-name and #:env-vars to 'gexp->derivation'.
2022-10-17read-print: Recognize 'define-record-type' and 'define-record-type*'.Ludovic Courtès
* guix/read-print.scm (%special-forms): Add 'define-record-type' and 'define-record-type*'.
2022-10-17channels: Interpret the 'commit' field of channel as a tag or commit.Ludovic Courtès
Previously the 'commit' field would always be interpreted as a commit ID. This change adds flexibility, allowing for things like: guix time-machine --commit=v1.2.0 -- describe * guix/channels.scm (channel-reference): Use 'tag-or-commit' rather than 'commit'. * guix/inferior.scm (channel-full-commit): Likewise. * doc/guix.texi (Invoking guix pull): Document it. (Invoking guix time-machine): Likewise.
2022-10-17git: 'update-cached-checkout' returns the commit ID when given a tag.Ludovic Courtès
Previously, starting with commit efa578ecaece67366b4b0e2266de7c2faaa4ae54, 'update-cached-checkout' would return the OID of the annotated tag the tag points to. With this change it returns the OID of the commit object in all cases. * guix/git.scm (resolve-reference): In the 'tag' case, call 'tag-target-id' and 'tag-lookup' when OID designates an annotated tag. * tests/git.scm ("update-cached-checkout, tag"): New test.
2022-10-17guix: Fix typos.Julien Lepiller
These typos were found and reported through weblate. * gnu/packages/audio.scm (wildmidi)[description]: Fix typo. * gnu/packages/games.scm (cgoban)[description]: Fix typo. * gnu/services/version-control.scm (gitolite-service-type)[description]: Fix typo. * gnu/installer/newt/substitutes.scm (run-substitutes-page): Remove full stop at end of title. * gnu/machine/ssh.scm (machine-ssh-configuration-system): Move punctuation outside of quotes. * guix/scripts/home.scm (process-action): Remove trailing space before newline. * guix/scripts/system.scm (show-help): Fix typo. * guix/scripts/environment.scm (with-store/maybe): Fix typo.
2022-10-15git: 'update-cached-checkout' recognizes truncated commit IDs.Ludovic Courtès
Fixes a regression introduced in 602527ab9778165ca9a8f9cb62036038b5354688 that broke 'tests/guix-build-branch.sh'. * guix/git.scm (resolve-reference): Revert change from 602527ab9778165ca9a8f9cb62036038b5354688.
2022-10-14guix: emacs-utils: Support disabling native-compilation.Liliana Marie Prikler
* guix/build/emacs-utils.scm (emacs-batch-disable-compilation): Add ‘native?’ argument and honour it.
2022-10-13build: emacs-utils: Fix `emacs-substitute-variables'.Nicolas Goaziou
* guix/build/emacs-utils.scm (emacs-substitute-variables): Fix the regexp matching variable name. With end-of-word regexp ("\>"), the previous regexp may match the prefix of a variable only, effectively deleting the rest of its name. For example, (emacs-substitute-variables "file.el" ("foo" ...)) could match (defvar foo-bar ...) and replace it with (defvar foo ...).
2022-10-13shell: Handle '--emulate-fhs' in 'guix shell', not in 'guix environment'.Ludovic Courtès
Previously, using 'guix shell -CF coreutils' twice (such that the profile is cache) would result in: guix shell: error: '--profile' cannot be used with package options This patch fixes it by moving argument handling to (guix scripts shell), before 'options-with-caching' is called. * guix/scripts/environment.scm (show-environment-options-help) (%options): Remove '--emulate-fhs'. (guix-environment*): Pass OPTS as-is to 'options/resolve-packages'. * guix/scripts/shell.scm (show-help, %options): Add '--emulate-fhs'. Add the (expression . ...) component to RESULT right from the argument handler. * tests/guix-environment-container.sh: Change '--emulate-fhs' tests to use 'guix shell' instead of 'guix environment'.