summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2022-10-27build-system: Add pyproject-build-system....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> Lars-Dominik Braun
2022-10-25Merge remote-tracking branch 'origin/master' into stagingEfraim Flashner
2022-10-20build-system/cargo: Unpack crates less verbosely....* guix/build/cargo-build-system.scm (configure): Print the crate being unpacked but don't print the contents of each crate. Efraim Flashner
2022-10-22grafts: Rewrite using gexps....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'. Ludovic Courtès
2022-10-22Remove now unnecessary uses of (guix grafts)....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). Ludovic Courtès
2022-10-22grafts: Move '%graft?' and related bindings to (guix store)....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. Ludovic Courtès
2022-10-22build-system/python: Disable grafts....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. Ludovic Courtès
2022-10-20lint: source: Handle <svn-multi-reference> origins....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. Ludovic Courtès
2022-10-20syscalls: Define 'MS_NODIRATIME' and recognize "nodiratime"....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. Ludovic Courtès
2022-10-20ci: Add 'start-time' and 'stop-time' to <build> records....* guix/ci.scm (seconds->date): New procedure. (<build>)[start-time, stop-time]: New fields. (build-duration): New procedure. Ludovic Courtès
2022-10-20environment: Update docstring of 'launch-environment'....This is a followup to 78d55b703d155d36520e1c93dc08a6502c56bd55. Reported by Maxim Cournoyer. * guix/scripts/environment.scm (launch-environment): Update docstring. Ludovic Courtès
2022-10-18self: Switch to Guile-GnuTLS....* guix/self.scm (specification->package, compiled-guix): Replace "gnutls" with "guile-gnutls". Ludovic Courtès
2022-10-17lint: source: Add check for <svn-reference> over HTTP(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. Ludovic Courtès
2022-10-17lint: 'probe-uri' honors the 'userinfo' part of URIs....* guix/lint.scm (probe-uri): Honor the 'userinfo' part of URI. Ludovic Courtès
2022-10-17svn-download: Add missing exports....* guix/svn-download.scm: Export more <svn-reference> and <svn-multi-reference> accessors. Ludovic Courtès
2022-10-17build-system/qt: Disable grafts....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'. Ludovic Courtès
2022-10-17svn-download: Pass multi-fetch parameters through environment variables....* 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'. Ludovic Courtès
2022-10-17svn-download: Pass parameters through environment variables....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'. Ludovic Courtès
2022-10-17read-print: Recognize 'define-record-type' and 'define-record-type*'....* guix/read-print.scm (%special-forms): Add 'define-record-type' and 'define-record-type*'. Ludovic Courtès
2022-10-17channels: Interpret the 'commit' field of channel as a tag or commit....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. Ludovic Courtès
2022-10-17git: 'update-cached-checkout' returns the commit ID when given a tag....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. Ludovic Courtès
2022-10-17guix: Fix typos....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. Julien Lepiller
2022-10-15git: 'update-cached-checkout' recognizes truncated commit IDs....Fixes a regression introduced in 602527ab9778165ca9a8f9cb62036038b5354688 that broke 'tests/guix-build-branch.sh'. * guix/git.scm (resolve-reference): Revert change from 602527ab9778165ca9a8f9cb62036038b5354688. Ludovic Courtès
2022-10-14guix: emacs-utils: Support disabling native-compilation....* guix/build/emacs-utils.scm (emacs-batch-disable-compilation): Add ‘native?’ argument and honour it. Liliana Marie Prikler
2022-10-13build: emacs-utils: Fix `emacs-substitute-variables'....* 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 ...). Nicolas Goaziou
2022-10-13shell: Handle '--emulate-fhs' in 'guix shell', not in 'guix environment'....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'. Ludovic Courtès
2022-10-13environment: Add '--emulate-fhs'....* guix/scripts/environment.scm (show-environment-options-help, %options): Add '--emulate-fhs'. (setup-fhs): New procedure. Setup for the Filesystem Hierarchy Standard (FHS) container. Defines and uses FHS-SYMLINKS and LINK-CONTENTS to create FHS expected directories and creates /etc/ld.so.conf. (launch-environment): Add 'emulate-fhs?' key and implement it to set $PATH and generate /etc/ld.so.cache before calling COMMAND. (launch-environment/container): Add 'emulate-fhs?' and 'setup-hook' keys and implement them. Define and use FHS-MAPPINGS, to set up additional bind mounts in the container to follow FHS expectations. (guix-environment*): Add glibc-for-fhs to the container packages when 'emulate-fhs?' key is in OPTS. * doc/guix.texi (Invoking guix shell): Document '--emulate-fhs'. (Invoking guix environment): Document '--emulate-fhs'. * tests/guix-environment-container.sh: Add tests for '--emulate-fhs'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> John Kehayias
2022-10-11Revert "guix system: Remove unused 'read-operating-system' procedure."...This reverts commit d11a432adffe9308eafec6b77cddd3145029109e. The 'read-operating-system' is used in Emacs-Guix. Ludovic Courtès
2022-10-11git: Factorize 'commit-id?' predicate....* guix/git.scm (commit-id?): New procedure, copied from (guix swh). (resolve-reference): Use it instead of inline code. * guix/inferior.scm (channel-full-commit): Likewise. Ludovic Courtès
2022-10-11guix import: Add a blank line after each package definition....Starting from commit 371a83b764c4993d198666e1674454eecbefcdf1, 'guix import crate -r' (or similar) would no longer print a blank line in between definitions. This patch fixes it. Reported by jgart <jgart@dismail.de>. * guix/scripts/import.scm (guix-import): Add second 'newline' call. Ludovic Courtès
2022-10-10packages: Raise an exception for invalid 'license' values....This is written in such a way that the type check turns into a no-op at macro-expansion time for trivial cases: > ,optimize (validate-license gpl3+) $18 = gpl3+ > ,optimize (validate-license (list gpl3+ gpl2+)) $19 = (list gpl3+ gpl2+) * guix/packages.scm (valid-license-value?, validate-license): New macros. (<package>)[license]: Add 'sanitize' option. (&package-license-error): New error condition type. * tests/packages.scm ("license type checking"): New test. Ludovic Courtès
2022-10-10licenses: Let 'license?' expand to #t in trivial cases....With this change, we have: > ,expand (license? gpl3+) $2 = #t > ,expand (license? something-else) $3 = (let ((obj something-else)) (and ((@@ (srfi srfi-9) struct?) obj) ((@@ (srfi srfi-9) eq?) ((@@ (srfi srfi-9) struct-vtable) obj) (@@ (guix licenses) <license>)))) * guix/licenses.scm (define-license-predicate) (begin-license-definitions): New macros <top level>: Wrap definitions in 'begin-license-definitions'. Ludovic Courtès
2022-10-05import/utils: beautify-description: Update to pass tests....* guix/import/utils.scm (beautify-description): Remove single quote wrapping; escape @; exclude common abbreviations and titles from double-spacing; detect more sentence fragments. Ricardo Wurmus
2022-10-04channels: Warn about missing introductions....* guix/channels.scm (latest-channel-instance): Warn when CHANNEL has no introduction and CHECKOUT contains '.guix-authorizations'. Ludovic Courtès
2022-10-04deploy: Fix error message....* guix/scripts/deploy.scm (guix-deploy): Fix error message. Andrew Tropin
2022-10-03gnu-maintenance: Remove retired 'gforge.inria.fr' site....* guix/gnu-maintenance.scm (html-updatable-package?): Remove "gforge.inria.fr". Maxim Cournoyer
2022-10-02read-print: Fix indentation rule for 'match-lambda*'....Fixes <https://issues.guix.gnu.org/58040>. Reported by Maxime Devos <maximedevos@telenet.be>. * guix/read-print.scm (%special-forms): Set 'match-lambda*' parameter count to 1. Ludovic Courtès
2022-10-02transformations: Switch to SRFI-71....* guix/transformations.scm (package-with-source) (evaluate-source-replacement-specs): Use SRFI-71 'let' instead of 'let-values'. Ludovic Courtès
2022-09-30scripts: build: Format strings before calling display-hint....* guix/scripts/build.scm(%standard-cross-build-options): Format hint string. %standard-cross-build-options: Ditto. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Zhu Zihao
2022-09-29transformations: '--with-source' now operates in depth....The '--with-source' option is the first one that was implemented, and it's the only one that would operate only on leaf packages rather than traversing the dependency graph. This change makes it consistent with the rest of the transformation options. * guix/transformations.scm (evaluate-source-replacement-specs): New procedure. (transform-package-source): Rewrite using it. * tests/transformations.scm ("options->transformation, with-source, no matches"): Rewrite since we no longer get a warning. ("options->transformation, with-source, in depth"): New test. * doc/guix.texi (Package Transformation Options): Adjust examples. Ludovic Courtès
2022-09-29import: print: Quasiquote properties...* guix/import/print.scm (package->code): Quasiquote properties. * tests/print.scm (pkg-with-properties, pkg-with-properties-source): New variables. ("package with properties"): New test Signed-off-by: Ludovic Courtès <ludo@gnu.org> itd
2022-09-29import/utils: alist->package: Include properties....* guix/import/utils.scm (alist->package): Process properties field in input data and include it in the generated package. * tests/import-utils.scm ("alist->package with properties"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> itd
2022-09-28substitute: Retry downloading when a nar is unavailable....Fixes <https://issues.guix.gnu.org/57978> Reported by Attila Lendvai <attila@lendvai.name>. Previously, if a narinfo was available but its corresponding nar was missing (for instance because the narinfo was cached and the server became unreachable in the meantime), 'guix substitute --substitute' would try to download the nar from its preferred location and abort when that fails. This change forces one retry with each of the URLs. * guix/scripts/substitute.scm (download-nar): Do not catch 'http-get-error?' exceptions. (system-error?, network-error?, process-substitution/fallback): New procedures. (process-substitution): Call 'process-substitution/fallback' upon 'network-error?'. * tests/substitute.scm ("substitute, first URL has narinfo but lacks nar, second URL unauthorized") ("substitute, first URL has narinfo but nar is 404, both URLs authorized") ("substitute, first URL has narinfo but nar is 404, one URL authorized") ("substitute, narinfo is available but nar is missing"): New tests. Ludovic Courtès
2022-09-28substitute: Split nar download....* guix/scripts/substitute.scm (download-nar): New procedure, with most of the code moved from... (process-substitution): ... here. Call it. Ludovic Courtès
2022-09-28import/cran: Process more complex license strings....* guix/import/cran.scm (string->license): Add more match clauses. (string->licenses): Split license conjunctions at "|" and apply string->license on each license. (description->package): Use string->licenses. Ricardo Wurmus
2022-09-28import/cran: Use beautify-synopsis....* guix/import/cran.scm (description->package): Use beautify-synopsis. Ricardo Wurmus
2022-09-28import/utils: Add beautify-synopsis....* guix/import/utils.scm (beautify-synopsis): New procedure. Ricardo Wurmus
2022-09-28import/cran: Transform external package names to Guix names....* guix/import/cran.scm (transform-sysname): New procedure. (description->package): Use it on inputs that are derived from "sysdepends". Ricardo Wurmus
2022-09-28import/cran: Add more strings to invalid-packages....* guix/import/cran.scm (invalid-packages): Add none, windows, and xcode. Ricardo Wurmus
2022-09-26debug-link: Clarify what CRC is....* guix/build/debug-link.scm: Clarify "CRC"; update bug URL. Signed-off-by: Ludovic Courtès <ludo@gnu.org> jgart