summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2025-02-22tests: Remove extraneous 'with-store' in derivations test.Maxim Cournoyer
* tests/derivations.scm ("derivation fails but keep going"): Remove extraneous 'with-store'. Change-Id: If30c2d457504b8524cd167f1a145fbbea61b513c Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-11import/utils: Wrap terms starting with @ in descriptions.Ricardo Wurmus
* tests/import-utils.scm ("beautify-description: escape @stuff"): Add test. * guix/import/utils.scm (beautify-description): Also wrap terms in @code{...} that start with an escaped @. Change-Id: I424f626635b821af6f4c16c97b8724cdaf99de45
2025-02-11import/utils: Escape @ in synopses.Ricardo Wurmus
* tests/import-utils.scm ("beautify-synopsis: escape @"): Add tests. * guix/import/utils.scm (beautify-synopsis): Replace @ with @@. Change-Id: I011d61687a098b5b50f44c1acd6f0a4eea06e9f0
2025-02-09machine: Implement 'hetzner-environment-type'.Roman Scherer
* Makefile.am (SCM_TESTS): Add test modules. * doc/guix.texi: Add documentation. * gnu/local.mk (GNU_SYSTEM_MODULES): Add modules. * gnu/machine/hetzner.scm: Add hetzner-environment-type. * gnu/machine/hetzner/http.scm: Add HTTP API. * po/guix/POTFILES.in: Add Hetzner modules. * tests/machine/hetzner.scm: Add machine tests. * tests/machine/hetzner/http.scm Add HTTP API tests. Change-Id: I276ed5afed676bbccc6c852c56ee4db57ce3c1ea Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09scripts: style: Sort more kinds of package definitions.Herman Rimm
* guix/scripts/style.scm (order-packages): Match comments before package S-exp. and its fields. Match in let. Match package/inherit. * tests/guix-style.sh: Add pkg-baz variable and package/inherit to test. Change-Id: I48a5976930501c20415b5413966b5294958bc23b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09tests: crate: Add build dependency.Herman Rimm
* tests/crate.scm ("crate-recursive-import"): Add rust-leaf-bob-3 to rust-root-1 cargo-inputs. (test-root-dependencies): Add leaf-bob 3 build dependency. Change-Id: I1285fc6b36429f754d54def0b14f821306ba366d Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09import: crate: Comment out missing dependencies.Herman Rimm
* guix/import/crate.scm (package-names->package-inputs): Emit comments. (make-crate-sexp): Make input into comment if missing. (crate->guix-package): Take #:mark-missing? argument. [dependency-name+missing+version+yanked]: Mark as missing. Rename from dependency-name+version+yanked. [sort-map-dependencies]: Adjust. [remove-missing+yanked-info]: Remove missing info. Rename from remove-yanked-info. * guix/scripts/import/crate.scm (show-help): Explain --mark-missing. (%options): Add mark-missing option. (guix-import-crate): Pass mark-missing option as #:mark-missing?. * doc/guix.texi (Invoking guix import): Document --mark-missing. * tests/crate.scm ("crate->guix-package-marks-missing-packages"): Add test. Change-Id: I065d394e1c04fdc332b8f7f8b9fcbd87c14c6512 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-28grafts: Allow file-like objects in the ‘replacement’ field of <graft>.Ludovic Courtès
This is a followup to and simplification of 3331d675fbf5287e8cbe12af48fb2de14f1ad8bc. * guix/grafts.scm (graft-derivation/shallow)[mapping]: Wrap origin and replacement in ‘with-parameters’. (cumulative-grafts)[finalize-graft]: Remove, and remove its sole user. * guix/packages.scm (input-graft, input-cross-graft): Add ‘replacement’ straight into the ‘replacement’ field of <graft>. * tests/packages.scm ("package-grafts, indirect grafts") ("package-grafts, indirect grafts, propagated inputs") ("package-grafts, same replacement twice") ("package-grafts, dependency on several outputs") ("replacement also grafted"): Adjust accordingly. Suggested-by: David Elsing <david.elsing@posteo.net> Change-Id: I286fceae53df9d3051137bbca5f944d51d0c92f3
2025-01-28gexp: ‘with-parameters’ accepts plain store items in its body.Ludovic Courtès
* guix/gexp.scm (compile-parameterized): Return ‘obj’ as-is when it’s not a struct. * tests/gexp.scm ("with-parameters + store item"): New test. Change-Id: I5b5348b98bce923d07f6fa39b2f0948723011db8
2025-01-26tests: crate: Adjust for change in imported yanked crates.Efraim Flashner
This is a follow-up to 67950f46ef2c08a0873f7d08f61fdc14758e3ae5. * tests/crate.scm (crate-import-only-yanked-available): Adjust the imported crates to match the change in the importer. Change-Id: I9657838e51062861299fb10bc25ad0c05cb75f5a
2025-01-24tests: pack: Improve AppImage tests.Noé Lopez
* tests/pack.scm: Improve AppImage tests. Change-Id: I7890b902f65a2944ae8fa03db8a964deda3c725c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-24lint: Adjust ‘check-inputs-should-not-be-an-input-at-all’ tests for Python.Ludovic Courtès
This is a followup to bea2914b3d1b06cc8cc1d9cff88c0dd7d8ebb1be, which removed ‘python-setuptools’ from the list of “unauthorized” inputs. * tests/lint.scm ("inputs: python-pip should not be an input at all (input)") ("inputs: python-pip should not be an input at all (native-input)") ("inputs: python-pip should not be an input at all (propagated-input)"): New tests, with s/python-setuptools/python-pip/. Change-Id: Ic575825da5c64052d3d573b37b458bd61547bae1
2025-01-20guix: toml: Fix evaluation of empty inline tables.Lars-Dominik Braun
* guix/build/toml.scm (eval-toml-file): Add pattern for empty inline table. * tests/toml.scm ("parse-toml: Empty inline table"): New testcase. Change-Id: I69663af2a861716acfb801fad4474e029e102a1b
2025-01-19grafts: Only compute necessary graft derivations.David Elsing
* guix/packages.scm (input-graft, input-cross-graft): Store the monadic value of the replacement in the 'replacement' field of <graft> instead of unwrapping it. (cumulative-grafts): Turn monadic values in the 'replacement' field of applicable grafts into derivations. * tests/packages.scm ("package-grafts, indirect grafts") ("package-grafts, indirect grafts, propagated inputs") ("package-grafts, same replacement twice") ("package-grafts, dependency on several outputs") ("replacement also grafted"): Do not compare <graft> records directly, compare the relevant fields instead, calling ‘run-with-store’ on the ‘replacement’ field. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Change-Id: Idded0a402b8974df1ef2354f1a88c308b9b99777
2025-01-16home: Define ‘%base-home-services’.Ludovic Courtès
* gnu/home.scm (%base-home-services): New variable. (<home-environment>)[services]: Change default to ‘%base-home-services’. * guix/scripts/home/import.scm (manifest+configuration-files->code): Use ‘%base-home-services’ by default. * tests/home-import.scm (match-home-environment-no-services) (match-home-environment-transformations) (match-home-environment-no-services-nor-packages) (match-home-environment-bash-service) (match-home-environment-bash-service-with-alias): Adjust accordingly. * doc/he-config-bare-bones.scm: Use ‘%base-home-services’. * doc/guix.texi (Declaring the Home Environment): Add index entry for ‘%base-home-services’. Change-Id: Id95ede62b97a976aad138bfc4b63fc0bdf37c7de
2025-01-12import: git: Do not search pre-release words in tag prefix.宋文武
This fixes tags like 'xfce4-dev-tools-4.20.0'. * tests/import-git.scm ("latest-git-tag-version: prefix contains pre-release words"): New test. * guix/import/git.scm (latest-tag): Don't filter out pre-releases tags. (version-mapping): Filter out pre-releases tags from versions. * gnu/packages/xfce.scm (garcon, thunar-archive-plugin, xfce4-dev-tools): Remove FIXME comments for the 'generic-git' updater. Change-Id: I7683200fa451d7fad153aa08fa9d5761688de01d
2025-01-08upstream: Define ‘preferred-upstream-source’.Ludovic Courtès
* guix/upstream.scm (preferred-upstream-source): New procedure. * tests/upstream.scm ("preferred-upstream-source"): New test. Change-Id: I4b48b44f1aa233d2e99bfe2e1359a670297efae8
2025-01-07syscalls: Remove wrong syscall ID for ‘kexec_load_file’ on i686.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/75205>. * guix/build/syscalls.scm (kexec-load-file): Remove syscall ID for i686. * tests/syscalls.scm ("kexec-load-file"): Accept ENOSYS in addition to EPERM. Reported-by: Dariqq <dariqq@posteo.net> Change-Id: I83fe25636addb57533ed88cbfb40107d265b13a7
2024-12-30channels: Adjust tests for new #:verify-certificate? parameter.Ludovic Courtès
This is a followup to 9544a0441145b9d404bb52edbdaf11666008731c. * tests/channels.scm ("latest-channel-instances includes channel dependencies") ("latest-channel-instances excludes duplicate channel dependencies"): Add #:verify-certificate? parameter to ‘update-cached-checkout’ mock. Change-Id: Ia795b965c564e5552525327d1d748635dc66d5fd
2024-12-30import: pypi: Adjust test to new setuptools and wheel requirements.Ludovic Courtès
This is a followup to c904350a81f9ff47cc025bc9d0d48f1bd2ead30e and d7890af335ed046ba245137fb13031be964d03f5, which led to adding ‘setuptools’ and ‘wheel’ to ‘native-inputs’ in many (most?) cases. * tests/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, no requires.txt, but wheel.") ("pypi->guix-package, no usable requirement file, no wheel."): Add ‘python-setuptools’ and ‘python-wheel’ to the native inputs. ("package-latest-release"): Add ‘setuptools’ and ‘wheel’ to the expected result. Change-Id: I4d1001b0ad332836fe7d1d9ecd07d4adc32330af
2024-12-30daemon: Explicitly unlock output path in the has-become-valid case.Reepca Russelstein
Fixes <https://issues.guix.gnu.org/31785>. Similar to <https://github.com/NixOS/nix/issues/178>, fixed in <https://github.com/NixOS/nix/commit/29cde917fe6b8f2e669c8bf10b38f640045c83b8>. We can't rely on Goal deletion to release our locks in a timely manner. In the case in which multiple guix-daemon processes simultaneously try producing an output path path1, the one that gets there first (P1) will get the lock, and the second one (P2) will continue trying to acquire the lock until it is released. Once it has acquired the lock, it checks to see whether the path has already become valid in the meantime, and if so it reports success to those Goals waiting on its completion and finishes. Unfortunately, it fails to release the locks it holds first, so those stay held until that Goal gets deleted. Suppose we have the following store path dependency graph: path4 / | \ path1 path2 path3 P2 is now sitting on path1's lock, and will continue to do so until path4 is completed. Suppose there is also a P3, and it has been blocked while P1 builds path2. Now P3 is sitting on path2's lock, and can't acquire path1's lock to determine that it has been completed. Likewise P2 is sitting on path1's lock, and now can't acquire path2's lock to determine that it has been completed. Finally, P3 completes path3 while P2 is blocked. Now: - P1 knows that path1 and path2 are complete, and holds no locks, but can't determine that path3 is complete - P2 knows that path1 and path3 are complete, and holds locks on path1 and path3, but can't determine that path2 is complete - P3 knows that path2 and path3 are complete, and holds a lock on path2, but can't determine that path1 is complete And none of these locks will be released until path4 is complete. Thus, we have a deadlock. To resolve this, we should explicitly release these locks as soon as they should be released. * nix/libstore/build.cc (DerivationGoal::tryToBuild, SubstitutionGoal::tryToRun): Explicitly release locks in the has-become-valid case. * tests/store-deadlock.scm: New file. * Makefile.am (SCM_TESTS): Add it. Change-Id: Ie510f84828892315fe6776c830db33d0f70bcef8 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-28syscalls: Add ‘kexec-load-file’.Ludovic Courtès
* guix/build/syscalls.scm (string->utf-8/nul-terminated) (kexec-load-file): New procedures. * tests/syscalls.scm ("kexec-load-file"): New test. Change-Id: I3724226a14ecc07f346e77519fb5b0591096c7f6
2024-12-18packages: Add #:recursive? to ‘package-input-rewriting’.Ludovic Courtès
* guix/packages.scm (package-input-rewriting): Add #:recursive? [cut?]: Honor it. * tests/packages.scm ("package-input-rewriting, recursive"): New test. * doc/guix.texi (Defining Package Variants): Document it. Change-Id: Ie82f35ae0ae873dc68f8b1c0dd6616f552772e65
2024-12-18accounts: Add /etc/subid and /etc/subgid allocation logic.Giacomo Leidi
This commit adds allocation logic for subid ranges. Subid ranges are ranges of contiguous subids that are mapped to a user in the host system. This patch implements a flexible allocation algorithm allowing users that do not want (or need) to specify details of the subid ranges that they are requesting to avoid doing so, while upholding requests of users that need to have specific ranges. * gnu/build/accounts.scm (%subordinate-id-min): New variable; (%subordinate-id-max): new variable; (%subordinate-id-count): new variable; (subordinate-id?): new variable; (&subordinate-id-error): new variable; (&subordinate-id-overflow-error): new variable; (&illegal-subid-range-error): new variable; (&specific-subid-range-expected-error): new variable; (&generic-subid-range-expected-error): new variable; (within-interval?): new variable; (allocate-unused-range): new variable; (allocate-generic-range): new variable; (allocate-specific-range): new variable; (reserve-subids): new variable; (range->entry): new variable; (entry->range): new variable; (allocate-subids): new variable; (subuid+subgid-databases): new variable. * gnu/system/accounts.scm (subid-range-end): New variable; (subid-range-has-start?): new variable; (subid-range-less): new variable. * test/accounts.scm: Test them. Change-Id: I8de1fd7cfe508b9c76408064d6f498471da0752d Co-Authored-By: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18accounts: Add /etc/subuid and /etc/subgid support.Giacomo Leidi
This commit adds a new record type, <subid-entry> and serializers and deserializers for it in (gnu build accounts). Each instance of this record represents one line in either /etc/subuid or /etc/subgid. Since Shadow uses the same representation for both files, it should be ok if we do it as well. This commit adds also <subid-range>, a user facing representation of <subid-entry>. It is supposed to be usable directly in OS configurations. * gnu/build/accounts.scm (subid-entry): New record; (write-subgid): add serializer for subgids; (write-subuid): add serializer for subuids; (read-subgid): add serializer for subgids; (read-subuid): add serializer for subuids. * gnu/system/accounts.scm (subid-range): New record. * test/accounts.scm: Test them. Change-Id: I6b037e40e354c069bf556412bb5b626bd3ea1b2c Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-16import: pypi: Support extracting dependencies from pyproject.toml.Lars-Dominik Braun
* guix/import/pypi.scm (guess-requirements): Support extracting dependencies from pyproject.toml. * tests/pypi.scm: ("pypi->guix-package, no requires.txt, but wheel."): Renamed from "pypi->guix-package, wheels", remove requires.txt file, because the current implementation cannot detect invalid files. ("pypi->guix-package, no usable requirement file, no wheel."): Renamed from "pypi->guix-package, no usable requirement file.". (test-pyproject.toml): New variable. ("pypi->guix-package, no wheel, no requires.txt, but pyproject.toml"): New test. ("pypi->guix-package, no wheel, but requires.txt and pyproject.toml"): Ditto. Change-Id: Ib525750eb6ff4139a8209420042b28ae3c850764 Reviewed-by: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-12-16packages: Use origin file names as their input labels.Ludovic Courtès
* guix/packages.scm (add-input-label): Rely on 'origin-actual-file-name' for internal inputs labels. * tests/packages.scm ("this-package-input, origin"): New test. * doc/guix.texi (package Reference): Mention origin lookup for ‘lookup-package-input’ & co. * gnu/packages/base.scm (tzdata)[inputs]: Reintroduce label. * gnu/packages/tex.scm (texlive-hyphen-complete)[inputs]: Likewise. (texlive-newverbs)[native-inputs]: Likewise. Change-Id: I6ba5352b1b1b8ab810da3730b09cb9db61d6429c Co-authored-by: Simon Tournier <zimon.toutoune@gmail.com>
2024-12-14tests: guix-shell-export-manifest: Fix pyproject-build-system python test.Janneke Nieuwenhuizen
This is a follow-up to commit fdc0fefd46a45b70784a4e3f8900cbe593426a9e build-system/pyproject: Use python-sans-pip-wrapper as default-python. * tests/guix-shell-export-manifest.sh: Grep for python-sans-pip-wrapper, which is the python now used by the pyproject-build-system. Change-Id: I5f44e07544f80973fa6b306b2dcdf42ac3b56ad6
2024-12-14tests: guix-package: Fix guix package --search test.Janneke Nieuwenhuizen
This is a follow-up to commit 6f8c8a86d827627f503a803381bce7fbcf8f39a0 gnu: Fix synopsis in miscelaneous packages. Change-Id: I5f44e07544f80973fa6b306b2dcdf42ac3b56ad6 * tests/guix-package.sh: Search for GNU hello's changed synopsis "Example GNU package". Change-Id: I79f606afee348cb6d57d9c0d08e15cd9267d5ceb
2024-12-13guix: toml: Fix parsing empty strings in arrays.Lars-Dominik Braun
Change-Id: Id14d4008391a01820ade754fa9c2ca8e88b8c7f9
2024-12-13guix: toml: Add TOML parser.Lars-Dominik Braun
* guix/build/toml.scm: New file. * tests/toml.scm: New file. * Makefile.am: Register new files.
2024-12-12lint: More abbreviations.Gabriel Wicki
* guix/lint.scm: Allow more common abbreviations in double-space-after sentence check. * tests/lint.scm: Add tests. Change-Id: I0eedf73e5fcd0a8c67b3ae3dfa979a57fe0f6253 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12lint: Ignore initials from double space check.Gabriel Wicki
Prevent false positives in initials as the are commonly used in names, e.g. Margaret E. Hamilton - which obviously do not end sentences. Check whether a period character `.' is preceded by at least two characters. This should save us from false positives when linting. * guix/lint.scm(check-description-style)[check-end-of-sentence-space] Add condition. * tests/lint.scm: Add test case. Change-Id: I42a1365aaaed2afc7308b88ebd4b0720ad362761 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12lint: Prevent false positives in description typo check.Gabriel Wicki
* guix/lint.scm(check-description-style)[check-description-typo]: Add spaces to match strings to prevent matching false positives, like "allows tokens" or "prevents torpedoes". * tests/lint.scm: Add test. Change-Id: Ifc2ec6167a590b9d2e742dd86fecd798c4bfaa24 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12lint: Allow texinfo markup at beginning of synopsis.Gabriel Wicki
* guix/lint.scm(check-synopsis-style)[check-proper-start]: Add condition. * tests/lint.scm: Add test case. Change-Id: I2509b3a4e7e51c6a274697ceb5f776c22e27c5f9 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12lint: Allow texinfo markup at beginning of description.Gabriel Wicki
* guix/lint.scm(starts-with-texinfo-markup?): New function. (check-description-style)[check-proper-start]: Add condition. * tests/lint.scm: Add test case. Change-Id: I674988882265d9e2041d48dba0f9627cd68bf292 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12lint: Refine description start check logic.Gabriel Wicki
Fix linter warnings for the following: - packages that belong to some programming language or ecosystem, e.g. python-foo or texlive-bar, - packages whose names end in a version distinction, e.g. wlroots-0.16 and - packages where the software's real name contains an underscore `_' character where our package name replaced that with a hyphen `-', e.g. wpa_supplicant and wpa-supplicant-minimal. * guix/lint.scm (check-description-style)[check-proper-start]: Add conditions. * tests/lint.scm: New tests. Change-Id: Ifc9f5cda04db59e460e287cd93afae89c7f17e3c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12lint: Fix indentation.Gabriel Wicki
* guix/lint.scm(check-synopsis-style): Add white space. * tests/lint.scm: Fix indentation. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I8e08fa43131c586065b742fc441172c9408877a3
2024-12-03import: utils: Wrap function names in @code.Ricardo Wurmus
* guix/import/utils.scm (beautify-description): Adjust to include "()" in @code wrapper. * tests/import-utils.scm ("beautify-description: wrap function names in @code"): New test. Change-Id: I2b58728571a18ce8302c1b6f98b0c16dbe5931c3
2024-12-02tests: Adjust ‘guix build -P1’ test to new packages.Ludovic Courtès
Fixes a bug introduced in 794e079437c8687f49d294322dab3b7a8a6abacf whereby the grep patterns used in this test would also match /gnu/store/…-rust-libgit2-sys-0.17.0+1.8.1.drv, thus getting 5 matches instead of 4. * tests/guix-build.sh: Refine grep patterns for ‘guix build -P1’ test. Reported-by: Janneke Nieuwenhuizen <janneke@gnu.org> Change-Id: Iae35e6ee44b8eca0ef66c1d8ab7f9ff65a59d8d0
2024-12-02packages: 'package-input-rewriting/spec' optionally replace hidden.Greg Hogan
Commit eee95b5a879b7096dffd533f24107cf8926b621e changed package rewriting to ignore hidden packages. This patch permits the previous use by adding an option to rewrite hidden packages. * guix/packages.scm (package-input-rewriting/spec)[rewrite]: When P is hidden, return it as-is unless #:replace-hidden? has been enabled. * tests/packages.scm ("package-input-rewriting/spec, replace hidden package"): New test. * doc/guix.texi (Defining Package Variants): Update. Change-Id: I0a7988cac70e0c6b88b0fe6e27c1036fa723e030 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-01transformations: ‘package-with-upstream-version’ can preserve patches.Ludovic Courtès
* guix/transformations.scm (upstream-fetch): New procedure. (package-with-upstream-version): Add #:preserve-patches? and honor it. Change-Id: Ib56b84957d8bdad2eebe2551e2a6e477506fc55e
2024-12-01guix build: Add ‘--dependents’.Ludovic Courtès
* guix/scripts/build.scm (show-help, %options): Add ‘--dependents’. (dependents): New procedure. (options->things-to-build): Add ‘store’ parameter; honor ‘dependents’ option. [for-type]: Handle ‘dependents’ type. (options->derivations): Update call to ‘options->things-to-build’. * tests/guix-build.sh: Add test. * doc/guix.texi (Additional Build Options): Document ‘--dependents’. (Invoking guix refresh): Cross-reference it. * doc/contributing.texi (Submitting Patches): Mention it. Change-Id: I00b6d5831e1f1d35dc8b84a82605391d5a8f417c
2024-12-01guix build: Add ‘--development’ option.Ludovic Courtès
* guix/scripts/build.scm (show-help, %options): Add ‘-D’. (options->things-to-build): Change ‘append-map’ to a loop. Honor ‘-D’. * tests/guix-build.sh: Add test. * doc/guix.texi (Additional Build Options): Document it. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I99227aadfe861e43c001a4872292bd687b37f5d4
2024-11-23pack: Add support for AppImage pack format.Sebastian Dümcke
* guix/scripts/pack.scm (self-contained-appimage): New procedure. (%formats, show-formats): Add it. (guix-pack): Honor it. * doc/guix.texi: Document AppImage pack. * tests/pack.scm ("appimage", "appimage + localstatedir"): New tests. Co-authored-by: Noé Lopez <noelopez@free.fr> Change-Id: I33ebfec623cff1cfcd6f029d2d3054c23ab1949a Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-17tests: Fix the 'go-module->guix-package' test.Maxim Cournoyer
This fixes a regression that would have been introduced by commit a8b927a562a ("import: go: Add an option to use pinned versions.") which is already 3 years old (!). * tests/go.scm (fixtures-go-check-test): Register new URL and data for http-fetch and http-get mocks. Change-Id: Ie9d306612971de54ce534563731f52baf64bc8e7
2024-11-12derivations: ‘derivation-build-plan’ returns builds in topological order.Ludovic Courtès
That makes ‘derivation-build-plan’ directly usable in cases where one wants to sequentially build derivations one by one, or to report builds in the right order in the user interface. * guix/derivations.scm (derivation-build-plan): Wrap ‘loop’ in ‘traverse’. Perform a depth-first traversal. Return the list of builds in topological order. * tests/derivations.scm ("derivation-build-plan, topological ordering"): New test. Change-Id: I7cd9083f42c4381b4213794a40dbb5b234df966d
2024-11-12tests: Fix gremlin.scm for GCC 14Ting-Wei Lan
* tests/gremlin.scm: Include stdio.h before using puts since GCC 14 no longer allows implicit declarations. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-09-28tests: Make ‘tests/print.scm’ deterministic.Ludovic Courtès
The “package with inputs” test would fail non-deterministically: sometimes ‘package->code’ would pick the ‘glibc’ symbol, sometimes it would take ‘glibc/hurd’, which is an alias for ‘glibc’. * tests/print.scm (pkg-with-inputs)[inputs]: Replace ‘glibc’ with ‘gnu-make’. Change-Id: Ie192adda98d66546fae820a6bcdd5bb4b9f4dae7
2024-09-19Revert "import: crate: Emit new-style package inputs."Ludovic Courtès
This reverts commit b8af6694b9bbea96e8b0d1c9aea64b7f8e690812, which led ‘guix import crate’ to produce invalid code (missing quasiquote) and triggered a failure of ‘tests/crate.scm’. Fixes <https://issues.guix.gnu.org/72939>. Reported-by: Aleksandr Vityazev <avityazev@disroot.org> Change-Id: If309caaa594f912788e20007bfa1f55b7d581a93