summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2026-05-18guix: build-system: Set pypi-uri in pyproject, drop python module.Nicolas Graves
After this commit, when both modules are imported: - if pyproject is imported before, the warning is 'pypi-uri' is deprecated, use '(@ (guix build-system pyproject) pypi-uri)' instead - if python is imported before, the warning is `pypi-uri' imported from both (guix build-system python) and (guix build-system pyproject) This seems convenient enough to warn for deprecation in the short term, while avoiding any breaking changes. * guix/build-system/pyproject.scm (pypi-uri): Move the procedure from (guix build-system python) here. * guix/build-system/python (pypi-uri): Drop definition, import it from (guix build-system pyproject) and deprecate it. * gnu/packages/openldap.scm: Reorder modules to get the right warning. * gnu/packages/pypy.scm: Likewise. * gnu/packages/*.scm : Drop module (guix build-system python). * tests/import/pypi.scm: Likewise. Merges: https://codeberg.org/guix/guix/pulls/7448 Change-Id: Ib42f53bc545052eb7918a25afe9db6d5fc2cb834 Reviewed-by: Nguyễn Gia Phong <cnx@loang.net> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-18tests: pypi: Switch to pyproject-build-system.Nicolas Graves
* tests/import/pypi.scm ("package-latest-release"): Switch to pyproject-build-system. Change-Id: I8ba5cdd45e793cd2aae7b3025f7598245de6c87e Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-18tests: packages: Switch to pyproject-build-system.Nicolas Graves
* tests/packages.scm ("package-input-rewriting, deep") ("package-input-rewriting/spec, no duplicates"): Switch to pyproject-build-system. Change-Id: I428af596a021e16ba6226e55910be24424e4a625 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-18tests: builders: Switch to pyproject-build-system.Nicolas Graves
* guix/build/pyproject-build-system.scm (set-version): Ensure source is not #f before using it. * tests/builders.scm (make-python-dummy)[build-system]: Switch to pyproject-build-system. [native-inputs]: Add python-setuptools. (python-dummy-no-setuptools): Drop it. (check-build-success, check-build-failure): Refresh tests. (check-build-failure): Drop python-dummy-no-setuptools. Change-Id: I892b45c34b506ff27634e2ef706009dc81e831ec Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-05-16tests: guix-system: Use dhcpcd-service-type instead of ISC dhcp.Sören Tempel
dhcp-client-service-type has been deprecated for a while as the ISC implementation has reached end-of-life upstream in 2022. This is the last remaining user of dhcp-client-service-type in the Guix repository. * tests/guix-system.sh: Use dhcpcd-service-type. Change-Id: Iaf8dd4bc888c99815d2d6c8c195fe92644186625
2026-05-10pull, time-machine: ‘--allow-untrusted-channels’ takes an argument.Ludovic Courtès
* guix/scripts/pull.scm (%default-options): Change ‘require-trusted-channels?’ to ‘require-trusted-channels’. (show-help, %options): Support optional argument to ‘--allow-untrusted-channels’. (channel-list): Adjust accordingly. * guix/scripts/time-machine.scm (show-help, %options) (%default-options): Likewise. * tests/guix-time-machine.sh: Add test. * doc/guix.texi (Invoking guix pull) (Invoking guix time-machine): Adjust accordingly. Suggested-by: Reepca Russelstein <reepca@russelstein.xyz> Change-Id: I342ebbcc7355953487a5c6c8ac85048943a5ac46 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10pull, time-machine: Accept content SWHIDs as arguments to ‘--channels’.Ludovic Courtès
* guix/swh.scm (swhid-content-data): New procedure. (call): Do not close ‘port’ when ‘result’ is the same as ‘port’. * guix/scripts/pull.scm (swhid-content-data*): New procedure. (channel-list): Accept ‘file’ as a SWHID. * tests/guix-time-machine.sh: Add test. * doc/guix.texi (Invoking guix pull): Document it. (Invoking guix time-machine): Likewise. Change-Id: I8145cd8685fe2926b1548d4a2dcd54804d89228a Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10pull, time-machine: Support transparent download of channel files.Ludovic Courtès
* guix/scripts/pull.scm (%default-options): Add ‘require-trusted-channels?’. (show-help, %options): Add ‘--allow-untrusted-channels’. (trusted-channels, equivalent-channels?, check-trusted-channels): New procedures. (channel-list)[require-trusted-channels?]: New variable. [load-channels]: Honor it and call ‘check-trusted-channels’. * guix/scripts/time-machine.scm (show-help, %options): Add ‘--allow-untrusted-channels’. (%default-options): Add ‘require-trusted-channels?’. * tests/guix-time-machine.sh: Add test. * doc/guix.texi (Invoking guix pull): Update ‘--channels’ documentation and document ‘allow-untrusted-channels’. (Invoking guix time-machine): Likewise. (Channels with Substitutes): Add example of ‘guix pull’ with a URL. Change-Id: If0bb6acaedf324e35a21c9c7d285f3e423ae49aa Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10ui: ‘load*’ accepts a file name or a port.Ludovic Courtès
* guix/ui.scm (load/isolated): Change ‘file’ parameter to ‘port’ and adjust accordingly. (load*): Change ‘file’ to ‘file-or-port’ and adjust accordingly. * tests/ui.scm ("load/isolated, reading exceeds limits") ("load/isolated, attempt to import module") ("load/isolated, attempt to allocate with 'cons'") ("load/isolated, attempt to allocate with 'make-vector'") ("load/isolated, use of allowed bindings"): New tests. Change-Id: I0ec8fa2717c02041d409f6dc59b753d4501107f9 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10pull, time-machine: Evaluate channels in a sandbox by default.Ludovic Courtès
* guix/scripts/pull.scm (%default-options): Add ‘isolated-channel-evaluation?’. (show-help, %options): Add ‘--unsafe-channel-evaluation’. (%safe-channel-bindings): New variable. (channel-list): Honor ‘isolated-channel-evaluation?’. * guix/scripts/time-machine.scm (show-help, %options): Add ‘--unsafe-channel-evaluation’. (%default-options): Add ‘isolated-channel-evaluation?’. * tests/guix-time-machine.sh: Test use of unauthorized bindings in channel files. * doc/guix.texi (Invoking guix time-machine): Document ‘--unsafe-channel-evaluation’. (Invoking guix pull): Likewise. (Channels with Substitutes): Add index entry for ‘channel-with-substitutes-available’. Mention that it requires ‘--unsafe-channel-evaluation’. Change-Id: I75f60dba516f42ef62a9d779cde8e2f0a9d0c140 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-10ui: ‘load*’ takes a list of modules to import.Ludovic Courtès
* guix/ui.scm (load*): Change ‘module’ to ‘imports’. Define ‘user-module’. * guix/scripts/build.scm (options->things-to-build): Update to new ‘load*’ calling convention. * guix/scripts/deploy.scm (load-source-file): Likewise. * guix/scripts/environment.scm (load-manifest) (options/resolve-packages): Likewise. * guix/scripts/home.scm (process-action): Likewise. (%user-module): Rename to… (%user-modules): … this, and change to a list of module names. * guix/scripts/pack.scm (guix-pack): Update ‘load*’ calls. * guix/scripts/package.scm (load-manifest, %options): Likewise. * guix/scripts/pull.scm (channel-list): Likewise. * guix/scripts/refresh.scm (packages-from-manifest): Likewise. * guix/scripts/system.scm (%user-module): Rename to… (%user-modules): … this, and change to a list of module names. (read-operating-system): Adjust accordingly. (process-action): Likewise. * guix/scripts/weather.scm (load-manifest): Likewise. * tests/gexp.scm ("local-file, relative file name, within gexp, compiled"): Likewise. Change-Id: Ic838e66719d89de556ac0872c3ce0c8ff6de8790 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-07style: Add ‘remove-input’ and related styling rules.Nicolas Graves
* guix/scripts/style.scm (input-matches?, package-list->string, %field-accessors, remove-from-package-field, transform-package-field): Add variables. (%options): Add options --remove-input, --remove-native-input, --remove-propagated-input, and --parameter. (guix-style): Implement those options. To keep ony one autoload, use specification->package+output rather than specification->package. * tests/style.scm ("remove-input, single input removed", "remove-input, one of multiple inputs removed", "remove-input, middle input removed from list", "remove-input, non-existent input unchanged", "remove-input, input with output specifier", "remove-native-input, single input removed", "remove-native-input, one of multiple inputs removed", "remove-native-input, does not affect inputs field", "remove-propagated-input, single input removed", "remove-propagated-input, one of multiple inputs removed", "remove-propagated-input, does not affect other fields", "remove-input from all three fields independently", "remove-input, dry-run does not modify file"): New tests. ("url-fetch->git-fetch, preserved field"): Drop the use of %patch-path and %package-module-path, which are not necessary because of -L. Change the mocked procedure from specification->package to specification->package+output, as in the implementation. * doc/guix.texi (Invoking guix style): Add description for guix style -S remove-*input rules. Change-Id: I449c87930310a73ad316b4cb5db72d0906ea495d Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5862
2026-04-30shell: Add --cwd.Danny Milosavljevic
* guix/scripts/environment.scm (show-environment-options-help): Document --cwd. (%options): Add cwd. (launch-environment/container): Add cwd parameter. Implement passing it to the container. (guix-environment*): Reject --cwd without --container. * doc/guix.texi (Invoking guix shell): Document it. * tests/guix-environment-container.sh: Add tests. * tests/guix-shell.sh: Add tests. Fixes: guix/guix# 7825 Change-Id: Iba4ff3d2058e92f504fbcbf688346357ce913213
2026-04-29tests: toml: Fix nested array-of-tables test.Dariqq
* tests/toml.scm (parse-toml: Array of tables): Adjust the expected value for nested arrays. Change-Id: I4dbe27c0120f147226f82cda5ae3c27cb2ed6f49 Merges: https://codeberg.org/guix/guix/pulls/3245 Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-24tests: style: Fix tests for guile > 3.0.9.Nicolas Graves
* tests/style.scm : Drop the snippet that skipped all tests. (read-package-field): Return S-expressions with comments rather than a string. Rewrite all tests accordingly. Change-Id: I478611e7c58747a1b80598366c2b5510d9625498 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7632
2026-04-22tests: gexp: Fix test shadowing replacement field.Roman Scherer
Fixes a regression introduced in a7c8e68dc51144a6d3981b770aca9c4897fc7c0c. * tests/gexp.scm (gexp): Rename replacement binding to replacement-pkg in order to not shadow the replacement field of the package record. Change-Id: I70ceafc92f52e588b3cac8f74bffa274bf0da352 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7846
2026-04-19gnu: time: Update to 1.10.Andy Tai
* gnu/packages/time.scm (time): Update to 1.10. * tests/guix-build.sh: Adjust accordingly. Change-Id: Ia21a99e992f7b4b6e940756918ce7d11b9602a4f Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-04-12services: configuration: Add environment variable serializer.Giacomo Leidi
This patch implements a general API to serialize configuration records to list of pairs representing environment variables. The car of each pair represents the variable name and the cdr the variable value. * gnu/services/configuration/environment-variables.scm: New file. (serialize-string-environment-variable) (serialize-maybe-string-environment-variable) (serialize-boolean-environment-variable) (serialize-maybe-boolean-environment-variable) (serialize-number-environment-variable) (serialize-maybe-number-environment-variable): New variables. (serialize-environment-variables): New variable. * gnu/services/configuration/utils.scm: New file. (uglify-snake-case): New variable. * tests/services/configuration.scm: Add tests for environment serializer. (wrong type for a field): Adjust error location. * doc/guix.texi: Document it. Change-Id: I81a166576f94d3c8f5bf78c82a02183689a3091c Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-10tests: Fix non-deterministic AppImage tests.Noé Lopez
The tested AppImages were not actually relocatable and would rely on items being available on the environment’s store (apart from glibc). * guix/scripts/pack.scm (wrapped-manifest): New function. (guix-pack): Extract relocatable manifest to wrapped-manifest. * tests/pack.scm: Use relocatable profiles in AppImage tests. Fixes: <https://issues.guix.gnu.org/76850> Change-Id: Ib3123054913fce903d215dc0629d806e9fceebc7 Reported-by: Reepca Russelstein <reepca@russelstein.xyz> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2026-04-10tests: openpgp: Migrate to (srfi srfi-71).Nicolas Graves
* tests/openpgp.scm ("read-radix-64", "get-openpgp-keyring") ("verify-openpgp-signature, missing key") ("verify-openpgp-signature, good signatures") ("verify-openpgp-signature, bad signature"): Migrate tests to from (srfi srfi-11) to (srfi srfi-71). Change-Id: I5c4939dd5217fc15f5c1071c4223ecb194a693b3 Merges: https://codeberg.org/guix/guix/pulls/6794 Reviewed-by: Danny Milosavljevic <dannym@friendly-machines.com> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-10tests: keys: Moving to openpgp subdirectory.Nicolas Graves
* tests/keys/*.(pub|sec): Move to tests/keys/openpgp/*.(pub|sec) * build-aux/test-env.in: Adapt accordingly. * Makefile.am: Likewise. * guix/tests/gnupg.scm: Likewise. * tests/guix-authenticate.sh: Likewise. * tests/openpgp.scm: Likewise. Change-Id: If8897cec9851cc51a4ebadcc5927dc0e0520b881 Reviewed-by: Danny Milosavljevic <dannym@friendly-machines.com> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-10guix: openpgp: Refactor openpgp-fingerprint->bytevector.Nicolas Graves
Both (guix channel) and (guix git-authenticate) use similar procedures. To refactor the one in (guix git-authenticate), move the procedure to (guix openpgp). * guix/channels.scm: Replace autoloaded import openpgp-public-key-fingerprint with openpgp-fingerprint->bytevector. (openpgp-fingerprint->bytevector): Move function definition from here... * guix/openpgp.scm (openpgp-fingerprint->bytevector): ...to here. * guix/git-authenticate.scm (read-authorizations): Use openpgp-fingerprint->bytevector. * guix/scripts/git/authenticate.scm: Avoid using the (guix channels) module. * tests/git-authenticate.scm : Likewise. Change-Id: Ifd20588fcfaab601990098bd8575ee985e87394a Reviewed-by: Danny Milosavljevic <dannym@friendly-machines.com> Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-03-29records: Warn about shadowing due to inherited field value bindings.Ludovic Courtès
This is a followup to a7c8e68dc51144a6d3981b770aca9c4897fc7c0c: this commit introduced a new binding in the body of field values, which could silently shadow outer bindings. This new warning catches potentially unwanted shadowing. * guix/records.scm (make-syntactic-constructor)[check-shadowing]: New procedure. [wrap-field-value]: Use it. * tests/records.scm ("define-record-type* & inherited value shadowing"): New test. Change-Id: I81ad14cf10da7213e9f8db987c8b0bd4c41acba2 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7424
2026-03-29tests: Pass ‘User-Agent’ header when downloading from www.gnu.org.Ludovic Courtès
This test had been failing for a few months in part due to this change at www.gnu.org. * tests/derivations.scm ("fixed-output derivation, network access, external host"): Pass #:headers to ‘http-get’. Change-Id: Ife54e65b2665704af433df669df0d4010b49884c Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7470
2026-03-29gexp: improve &gexp-input-error with &error-location.Yarl Baudig
* guix/gexp.scm (gexp->sexp): raise &error-location along &gexp-input-error. * guix/ui.scm (call-with-error-handling): use this. * tests/gexp.scm (lower-gexp, invalid input location): New test. Change-Id: Iee761e5f99502065182d9e6fc8d21399e99ec6c3 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7538
2026-03-25channels: Resolve dependencies recursively.Ludovic Courtès
* guix/channels.scm (closure): New procedure. (resolve-dependencies): Use it. * tests/channels.scm ("channel-instance-dependency-resolver"): New test. Fixes: https://issues.guix.gnu.org/68797 Change-Id: Iaba4f54261e33e18bd57a0a319aa099f259b8570 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #7137
2026-03-20derivations: Let ‘map-derivation’ correctly handle directories.Sergio Pastor Pérez
The 'map-derivation' procedure was trying to process directories as files. When a derivation had a 'module import' directory as input, it threw an exception since it tried to open it as a file. * guix/derivations.scm (map-derivation): In ‘sources’, add ‘file-is-directory?’ case. * tests/derivations.scm ("map-derivation, modules"): New test. Fixes: https://issues.guix.gnu.org/71941 Change-Id: I9b766f9aaa03ea9307f73e8abb36bc347af4b5e6 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-20records: Let thunked fields refer to their inherited value.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor)[field-index]: New procedure. [wrap-field-value]: Add optional argument ‘parent’. When it is true, bind F to the inherited field value. [field-bindings/inheritance]: New procedure. Use it. * tests/records.scm ("define-record-type* & thunked & no inherited value") ("define-record-type* & thunked & inherited value") ("define-record-type* & thunked & inherited value & this-record"): New tests. * doc/guix.texi (Defining Package Variants): Update ‘modify-inputs’ example to refer to ‘inputs’. (Writing Manifests): Likewise. * doc/guix-cookbook.texi (Package Variants): Likewise for ‘substitute-keyword-arguments’. Fixes: https://issues.guix.gnu.org/50335 Change-Id: If4e18155ce203637ff9e116ee8098f8997bfebe2
2026-03-17tests: Fix guix-build-branch.sh.Hugo Buddelmeijer
* tests/guix-build-branch.sh: Use main branch instead of master after move of guile-gcrypt to codeberg. Merges guix/guix!6832 Change-Id: I6699cc20440a05d733d7d2bc93d820ca3a162e30 Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-03-10style: git-source: Handle more URLs.Ludovic Courtès
* guix/import/utils.scm (tarball-url->git-repository-url): New procedure. * guix/scripts/style.scm (url-fetch->git-fetch)[transform-source]: Add ‘repository-url’ parameter. Use ‘tarball-url->git-repository-url’ when ‘home-page’ is not a Git URL. (transform-to-git-fetch): Rename ‘home-page’ to ‘repository-url’. * tests/import/utils.scm ("tarball-url->git-repository-url, guile"): New test. * tests/style.scm ("url-fetch->git-fetch, mirror:// URL"): New test. Change-Id: I4f8ca7c67a58f917d69380678b62c00962b0f9cd Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-08guix: import: cpan: Fill in description field in template.jgart
* guix/import/cpan.scm (cpan-module->sexp): Fill in description field in template. * tests/import/cpan.scm (test-source): Update test to account for change in description text. Change-Id: I3bc3e4c2cc90f7a1f1f0d56e9213b6a1d0b8e841 Signed-off-by: jgart <jgart@dismail.de>
2026-03-07import/cran: Fix import of packages in single quotes.Ricardo Wurmus
* guix/import/cran.scm (import-pattern): Also match on single quotes. (needed-vignettes-inputs-in-directory): Use EXTRACT-IMPORTS. * tests/import/cran.scm: Add test. Change-Id: Ie69027992519bd8d886860346f4a359514d8e822
2026-02-27daemon: Actually remove unreadable directories.Reepca Russelstein
Fixes a regression introduced in 7173c2c0ca. Additional discussion at https://codeberg.org/guix/guix/pulls/5977. * nix/libutil/util.cc (_deletePathAt): chmod directory and retry open when it fails with EACCES. Do this using an O_PATH file descriptor referenced via /proc/self/fd whenever possible to avoid it being replaced by a non-directory immediately before being chmod'ed. * nix/libutil/util.hh (deletePath): document TOCTTOU race on non-linux systems where hardlinks aren't protected. * tests/derivations.scm ("unreadable directories in build tree can be removed"): new test. Fixes: guix/guix#5891 Reported-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Change-Id: I749127fe5254ebabc8387a2f0ef47e3c116bfcc5 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #6460
2026-02-12tests: Do not refer to ‘texlive’ package.Ludovic Courtès
This is a followup to 7f46cd4becbb82240c676d1024055eeb04efca95, which broke this test. * tests/guix-package.sh: Replace ‘texlive’ with ‘tzdata’. Change-Id: Ib7fadfaa4f6a19845064ba8dd737b65a16e93064 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #6332
2026-02-10gexp: Add 'delayed-object'.David Elsing
* guix/gexp.scm (<delayed-object>): New record type. (delayed-object): New macro. (delayed-object-compiler): New gexp compiler. * tests/gexp.scm ("delayed-object"): New test. * doc/guix.texi (G-Expressions): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-10store: Make derivation-path? use direct-store-path?.Yarl Baudig
* guix/store.scm (derivation-path?): Use direct-store-path? instead of store-path?. * tests/store.scm (derivation-path?): New test. Change-Id: Ib54b9e2045f19f26039cf072eeb79dab8f0195be Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #6192
2026-02-07import: pypi: Fix tests.Nicolas Graves
* guix/import/pypi.scm (unzip-command): Use invoke instead of system*. (read-wheel-metadata): Adapt accordingly. (guess-requirements-from-wheel): Improve readability. * tests/import/pypi.scm (parse-wheel-metadata): Add test (used to isolate the issue in another test). (pypi->guix-package, no wheel): Remove python-wheel from the result. (pypi->guix-package, no usable requirement file, no wheel.): Likewise. (pypi->guix-package, package name contains \"-\" followed by digits): Likewise. (package-latest-release): Likewise. (pypi->guix-package, no requires.txt, but wheel): Likewise. Also improve readability. Change-Id: I49e6ae549437a068acd85fa0f13471bc0af5a399 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-07import: pypi: Ignore pypi-ignored-inputs.Nicolas Graves
* guix/import/pypi.scm (pypi-ignored-inputs): New variable. (compute-inputs): Use it. * tests/pypi.scm (parse-requires.txt): Add ignored input to test the feature. * guix/lint.scm (check-inputs-should-be-native): Adapt list. (check-inputs-should-not-be-an-input-at-all): Use pypi-ignored-list. Change-Id: I297793b71f9ffdfbe7cc4e883777f8823941adf0 Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-02-06tests: Fix (getcwd) failing without chroot.Łukasz Stelmach
In case chroot and unshare are not available, $test_directory remains the current directory. When the directory gets removed (line 119), ‘guix pack’ on line 121 fails due to (getcwd) failing with ENOENT. The bug was already present in 272c07096251ea3dae237fd016fc5d66fe25e147. * tests/guix-pack.sh: Always do “cd -”. Change-Id: Ib02bf3714f0c6706b5e759dbb28cf86edf0f1317 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #6013
2026-01-29transformations: Fix `recursive?' inheritance for `with-git-url'.Maxim Cournoyer
* guix/transformations.scm (transform-package-source-git-url): Use the second value of `package-git-url+recursive?'. * tests/transformations.scm ("options->transformation, with-git-url, recursive? inheritance"): New test. Change-Id: Ifd89bf1b0267f2b080b872cc7b318b9ae3706422
2026-01-28scripts: substitute: Default to fast decompression.Christopher Baines
This changes the behaviour for the first one or few nars the substitute script downloads, with uncompressed and zstd compressed nars prefered rather than picking by file size. * guix/scripts/substitute.scm: (%default-fast-decompression?): Change to #t. * tests/substitute.scm ("substitute, preferred nar URL is 404, other is 200"): Adjust test. Change-Id: I89202f084cd6b9d506bcb3d46f75de690c6986b5
2026-01-25transformations: Add ‘--amd-gpu’ transformation option.Ludovic Courtès
* guix/transformations.scm (split-on-commas): New procedure, moved from… (transform-package-toolchain): … here. (package-amd-gpu-specialization, transform-package-amd-gpu-targets): New procedures. (%transformations, %options): Add ‘amd-gpu’. * tests/transformations.scm ("options->transformations, amd-gpu") ("options->transformations, amd-gpu, not applicable") ("options->transformations, amd-gpu, missing clang-rocm input") ("options->transformations, amd-gpu, wrong GPU"): New tests. * doc/guix.texi (Package Transformation Options): Document it. Change-Id: I56bf0dffbf12bc08cf6318fe56952473b395c303 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5583 Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-25tests: Adjust to Guile 3.0.10+.Ludovic Courtès
Guile 3.0.11 introduced a new implementation of (srfi srfi-34) with subtle changes wrt. exceptionm handling. This adjusts to these changes. Changes in ‘tests/style.scm’ are due to the new output of (ice-9 pretty-print) in 3.0.10. * tests/file-systems.scm ("btrfs-store-subvolume-file-name (subvolid)"): Specify the exception type. * tests/services/file-sharing.scm ("transmission-password-hash, salt value too short") ("transmission-password-hash, salt value too long"): Likewise. * tests/store.scm ("store-path-package-name #f"): Change to ‘test-error’ with #t as the exception type. * tests/style.scm: Skip all the tests on Guile > 3.0.9. * tests/toml.scm <top level>: Set ‘raise’ in (guix build toml). ("parse-toml: No key"): Use ‘test-error’ instead of ‘test-equal’. ("parse-toml: Assignment to non-table"): Likewise. ("parse-toml: Invalid assignment to implicit table"): Change exception type to #t ("parse-toml: Assignment to statically defined array"): Likewise. Change-Id: I54ea77f22d3e95f72dad90690631876e7f013054 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-19import: nuget: Add tests and documentation.Danny Milosavljevic
* guix/import/nuget.scm: Prevent optimizing small functions away completely. * tests/import/nuget.scm: New file. * doc/guix.texi (nuget): Document it. * Makefile.am (SCM_TESTS): Add reference to it. Fixes: guix/guix#5483 Change-Id: Id58932fe404a11a03e61a91d3b6177b39548f1bc
2026-01-18import: crate: Generate comments with ‘TODO REVIEW:’ prefix.Hilton Chain
This distinguishes them from manually added ones. When committing changes, these ‘TODO REVIEW’ comments should be addressed and removed first. If you're working with Rust packaging, please update your local Guix to this commit to apply the change. * guix/import/crate.scm (cargo-lock->expressions): Generate comments with ‘TODO REVIEW:’ prefix. * tests/import/crate.scm ("crate-lockfile-import"): Don't check the exact comment string. * doc/guix-cookbook.texi (Common Workflow for Rust Packaging), * gnu/packages/rust-crates.scm: Adjust accordingly. Change-Id: I76b914b49be46d04cc61b101b6bc9e31cadb7f07 Signed-off-by: Rutherther <rutherther@ditigal.xyz> Merges: #4567
2026-01-01gnu: services: Name xorg tests.Ian Eure
* tests/services/xorg.scm: Name tests. Change-Id: I7be7438a69a5d55d5904c3b76a2888393291b6bb Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-01-01gnu: services: Fix xorg configuration merging.Ian Eure
A bug in #21 causes the default configuration to be omitted from the xorg merging process. This can cause users not using set-xorg-configuration or service extensions to end up with a broken configuration. Fixes #5267. * tests/services/xorg.scm: Add a regression test. * gnu/services/xorg.scm (handle-xorg-configuration): Include the xorg-configuration record from config in merges. Change-Id: I6bed8c109057cb9b5de36db68b78e3ccc88e6bcb Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2025-12-26gnu: Merge xorg configurations when extending.Ian Eure
Configuration for xorg is embedded in the various display-manager configuration records, and extension support is factored out into the `handle-xorg-configuration' macro. However, the extension mechanism replaces the existing xorg-configuration with the supplied one, making it impossible to compose configuration from multiple sources. This patch adds a procedure to merge two xorg-configuration records, and calls it within handle-xorg-configuration, allowing the config to be built piecemeal. * gnu/services/xorg.scm (merge-xorg-configurations): New variable. (handle-xorg-configuration): Merge xorg configs. Change-Id: I20e9db911eef5d4efe98fdf382f3084e4defc1ba Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2025-12-22authenticate: Report failure to load keys to the daemon.Ludovic Courtès
Previously, when failing to load a signing key, ‘guix authenticate’ would print a backtrace and exit with a non-zero code. That, in turn, would lead the guix-daemon child process to crash with: nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed. This patch fixes it by reporting the error to the daemon as was intended. * guix/scripts/authenticate.scm (guix-authenticate): Arrange to call ‘load-key-pair’ from within ‘with-reply’. * tests/guix-authenticate.sh: Test it. Fixes: guix/guix#4928 Reported-by: Rutherther <rutherther@ditigal.xyz> Change-Id: I8654ad6fdfbe18c55e1e85647d0c49f408d0574a Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #4961
2025-12-13tests: Use ‘https’ for ‘home-page’ in ‘guix import pypi’ tests.Ludovic Courtès
Fixes a regression introduced in d66e9698a18a6be2d6b670f5a31c23f87afece68. * tests/import/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, no wheel, no requires.txt, but pyproject.toml") ("pypi->guix-package, no wheel, but requires.txt and pyproject.toml") ("pypi->guix-package, no requires.txt, but wheel.") ("pypi->guix-package, no usable requirement file, no wheel.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Change ‘home-page’ to ‘https://’. Fixes: guix/guix#4646 Reported-by: Rutherther <rutherther@ditigal.xyz> Change-Id: Id3ddac832d9688f2eb8a055c13f62a9642a20766