aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Expand)Author
2024-12-18packages: Add #:recursive? to ‘package-input-rewriting’....* 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 Ludovic Courtès
2024-12-18accounts: Add /etc/subid and /etc/subgid allocation logic....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> Giacomo Leidi
2024-12-18accounts: Add /etc/subuid and /etc/subgid support....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> Giacomo Leidi
2024-12-16import: pypi: Support extracting dependencies from pyproject.toml....* 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> Lars-Dominik Braun
2024-12-16packages: Use origin file names as their input labels....* 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> Ludovic Courtès
2024-12-14tests: guix-shell-export-manifest: Fix pyproject-build-system python test....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 Janneke Nieuwenhuizen
2024-12-14tests: guix-package: Fix guix package --search test....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 Janneke Nieuwenhuizen
2024-12-13guix: toml: Fix parsing empty strings in arrays....Change-Id: Id14d4008391a01820ade754fa9c2ca8e88b8c7f9 Lars-Dominik Braun
2024-12-13guix: toml: Add TOML parser....* guix/build/toml.scm: New file. * tests/toml.scm: New file. * Makefile.am: Register new files. Lars-Dominik Braun
2024-12-12lint: More abbreviations....* 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> Gabriel Wicki
2024-12-12lint: Ignore initials from double space check....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> Gabriel Wicki
2024-12-12lint: Prevent false positives in description typo check....* 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> Gabriel Wicki
2024-12-12lint: Allow texinfo markup at beginning of synopsis....* 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> Gabriel Wicki
2024-12-12lint: Allow texinfo markup at beginning of description....* 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> Gabriel Wicki
2024-12-12lint: Refine description start check logic....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> Gabriel Wicki
2024-12-12lint: Fix indentation....* 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 Gabriel Wicki
2024-12-03import: utils: Wrap function names in @code....* 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 Ricardo Wurmus
2024-12-02tests: Adjust ‘guix build -P1’ test to new packages....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 Ludovic Courtès
2024-12-02packages: 'package-input-rewriting/spec' optionally replace hidden....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> Greg Hogan
2024-12-01transformations: ‘package-with-upstream-version’ can preserve patches....* guix/transformations.scm (upstream-fetch): New procedure. (package-with-upstream-version): Add #:preserve-patches? and honor it. Change-Id: Ib56b84957d8bdad2eebe2551e2a6e477506fc55e Ludovic Courtès
2024-12-01guix build: Add ‘--dependents’....* 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 Ludovic Courtès
2024-12-01guix build: Add ‘--development’ option....* 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 Ludovic Courtès
2024-11-23pack: Add support for AppImage pack format....* 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> Sebastian Dümcke
2024-11-17tests: Fix the 'go-module->guix-package' test....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 Maxim Cournoyer
2024-11-12derivations: ‘derivation-build-plan’ returns builds in topological order....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 Ludovic Courtès
2024-11-12tests: Fix gremlin.scm for GCC 14...* 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> Ting-Wei Lan
2024-09-28tests: Make ‘tests/print.scm’ deterministic....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 Ludovic Courtès
2024-09-19Revert "import: crate: Emit new-style package inputs."...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 Ludovic Courtès
2024-09-17tests: Adjust ‘elm’ importer test to expect inputs without labels....This is a followup af85c38b017be3d932d4665acd9ff4b5c56a9790. * tests/elm.scm ("(guix import elm)"): Expect new-style inputs. Change-Id: If3c6b17b5a5d17ad443c3ddb05f94dc2458ba182 Ludovic Courtès
2024-09-16gexp: ‘imported-files’ does not create symlinks....Fixes <https://issues.guix.gnu.org/73275>. This is presumably what e529d46828c359b449fc570bdc293fc12534647c meant to do, except that it wrongfully pass #:symlink? a true value instead, most likely due to a typo. * guix/gexp.scm (imported-files): Pass #:symlink? #f. * tests/gexp.scm ("imported-files does not create symlinks"): New test. Change-Id: Ic31be56a2adf4dfa55e1ec390c53cc9ba5f8a96c Ludovic Courtès
2024-09-04gexp: Add ‘assume-source-relative-file-name’....* guix/gexp.scm (assume-source-relative-file-name): New macro. (local-file): Use assume-source-relative-file-name to look up a non-literal file relative to the current source directory. * doc/guix.texi (G-expressions): Document it. * tests/gexp.scm ("local-file, non-literal source relative file name"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I18573c8c7a6c87e8351b34412f9d26bb23b068b4 Richard Sent
2024-09-03scripts: style: Add 'alphabetical-sort' option....* guix/scripts/style.scm (show-help): Describe option. (order-packages): Add procedure. (format-whole-file): Add 'order?' argument. (%options): Add 'alphabetical-sort' option. (guix-style): Alphabetically order packages in files. * tests/guix-style.sh: Test alphabetical ordering. * doc/guix.texi (Invoking guix style): Document option. Change-Id: I4aa7c0bd0b6d42529ae7d304587ffb10bf5f4006 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Herman Rimm
2024-08-31guix: import texlive: Add UPSTREAM-NAME property when necessary....* guix/import/texlive.scm (tlpdb->package): Add UPSTREAM-NAME property when necessary. * tests/texlive.scm ("texlive->guix-package, with upstream-name property"): Add new test. Change-Id: I134a065cbe0a7f0ff4d72b0929dba4e4d46cfaeb Nicolas Goaziou
2024-08-31guix: import texlive: Adjust to generate new source format....* guix/import/texlive.scm (tlpdb->package): Adjust source according to new format. * tests/texlive.scm (%fake-tlpdb): Add database revision. ("texlive->guix-package, no docfiles"): ("texlive->guix-package"): ("texlive->guix-package, with catalogue entry, no inputs"): ("texlive->guix-package, multiple licenses"): ("texlive->guix-package, with TeX format"): Update checks. Change-Id: I60d5fe0f5f8db194c679dcb262f64c824cd19909 Nicolas Goaziou
2024-08-31gnu: TeX Live packages built from TEXLIVE-SOURCE use same version....* gnu/packages/tex.scm (%texlive-version): New variable. (texlive-source): (texlive-libkpathsea)[version]: (texlive-libptexenc)[version]: (texlive-bin)[version]: (texlive-scheme-basic)[version]: (texlive-scheme-bookpub)[version]: (texlive-scheme-context)[version]: (texlive-scheme-full)[version]: (texlive-scheme-gust)[version]: (texlive-scheme-medium)[version]: (texlive-scheme-minimal)[version]: (texlive-scheme-small)[version]: (texlive-scheme-tetex)[version]: (texlive-collection-basic)[version]: (texlive-collection-bibtexextra)[version]: (texlive-collection-binextra)[version]: (texlive-collection-context)[version]: (texlive-collection-fontsextra)[version]: (texlive-collection-fontsrecommended)[version]: (texlive-collection-fontutils)[version]: (texlive-collection-formatsextra)[version]: (texlive-collection-games)[version]: (texlive-collection-humanities)[version]: (texlive-collection-langarabic)[version]: (texlive-collection-langchinese)[version]: (texlive-collection-langcjk)[version]: (texlive-collection-langcyrillic)[version]: (texlive-collection-langczechslovak)[version]: (texlive-collection-langenglish)[version]: (texlive-collection-langeuropean)[version]: (texlive-collection-langfrench)[version]: (texlive-collection-langgerman)[version]: (texlive-collection-langgreek)[version]: (texlive-collection-langitalian)[version]: (texlive-collection-langjapanese)[version]: (texlive-collection-langkorean)[version]: (texlive-collection-langother)[version]: (texlive-collection-langpolish)[version]: (texlive-collection-langportuguese)[version]: (texlive-collection-langspanish)[version]: (texlive-collection-latex)[version]: (texlive-collection-latexextra)[version]: (texlive-collection-latexrecommended)[version]: (texlive-collection-luatex)[version]: (texlive-collection-mathscience)[version]: (texlive-collection-metapost)[version]: (texlive-collection-music)[version]: (texlive-collection-pictures)[version]: (texlive-collection-plaingeneric)[version]: (texlive-collection-pstricks)[version]: (texlive-collection-publishers)[version]: (texlive-collection-xetex)[version]: Use new variable. * guix/import/texlive.scm (tlpdb->package): Always use version from %TEXLIVE-VERSION. * tests/texlive.scm ("texlive->guix-package, meta-package"): Test change to importer. Since meta-packages are empty, they are not going through an updater. This change makes sure they always refer to an up-to-date version when the rest of TeX Live is updated. Change-Id: I55445e3337c1dea22158103d9ed952f75c3c4964 texlive-source Change-Id: I198a361fd6df3c5dd2b4fa376e1ad623937f08cc Nicolas Goaziou
2024-08-31guix: import texlive: Handle versions....* guix/import/texlive.scm (texlive-repository): (texlive-repository-location): (svn-command): (version->revision): (current-day): (latest-texlive-tag): (texlive->svn-multi-reference): New variables. (tlpdb-file) Remove function. (tlpdb): Add VERSION argument. * guix/import/texlive.scm (list-upstream-inputs): Add VERSION and DATABASE arguments. (tlpdb->package): Do not use fixed version. Instead, make use of the version provided as an argument. Add DATABASE argument for testing. (texlive->guix-package): Do not memoize. Allow providing any TeX Live release tag as version. Default to latest tag. Add DATABASE argument for testing. Improve docstring. * tests/texlive.scm ("texlive->guix-package, no docfiles"): ("texlive->guix-package"): ("texlive->guix-package, with METAFONT files"): ("texlive->guix-package, with catalogue entry, no inputs"): ("texlive->guix-package, multiple licenses"): ("texlive->guix-package, meta-package"): ("texlive->guix-package, with TeX format"): ("texlive->guix-package, execute but no TeX format"): ("texlive->guix-package, translate dependencies"): ("texlive->guix-package, lonely `hyphen-base' dependency and ARCH"): ("texlive->guix-package, single script, no extension"): ("texlive->guix-package, multiple scripts, with extensions"): ("texlive->guix-package, script with associated input"): ("texlive->guix-package, propagated binaries, no script"): ("texlive->guix-package, propagated binaries and scripts"): ("texlive->guix-package, with skipped propagated binaries"): Update tests. Change-Id: I7576b6e31e9ec3ff84258b71d0c4dd180d2b5c38 Nicolas Goaziou
2024-08-31guix: import texlive: Propagate binaries when necessary....* guix/import/texlive.scm (no-bin-propagation-packages): New variable. (list-binfiles): New function. (linked-scripts): Renamed to... (list-linked-scripts): ... this. Now always return a list. (tlpdb->package): Handle binary propagation. * tests/texlive.scm (%fake-tlpdb): Add data for new tests. ("texlive->guix-package, propagated binaries, no script"): ("texlive->guix-package, propagated binaries and scripts"): ("texlive->guix-package, with skipped propagated binaries"): New tests. Change-Id: I707ba33a10aa98ad27151724d3ecc4158db6b7cc Nicolas Goaziou
2024-08-31import: go: Emit new-style package inputs....Since PACKAGE-NAMES->PACKAGE-INPUTS is used by both the go and crate importers, give the crate importer a copy of the original so it continues to use old-style inputs until it is updated. * guix/import/utils.scm (package-names->package-inputs)[make-input]: Return new-style package inputs. (maybe-inputs): Wrap PACKAGE-INPUTS in 'list' instead of 'quasiquote'. * guix/import/crate.scm (package-names->package-inputs): New variable. * tests/go.scm ("go-module->guix-package"): Adjust to new-style package inputs. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Sarah Morgensen
2024-08-31import: crate: Emit new-style package inputs....* guix/import/crate.scm (maybe-cargo-development-inputs) (maybe-cargo-inputs): Wrap PACKAGE-INPUTS in unquoted 'list'. * tests/crate.scm ("crate->guix-package") ("cargo-recursive-import") ("cargo-recursive-import-honors-existing-packages"): Adjust accordingly. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I4dfb745272ecbc893926446872514fb815c07236 Sarah Morgensen
2024-08-31profiles: Use C.UTF-8 instead of ‘glibc-utf8-locales’ where possible....This is a followup to 1cebc334a77030c0c94955981652f4df7608c9e3. * guix/profiles.scm (ca-certificate-bundle)[libc-utf8-locales-for-target]: Remove. [build]: Use “C.UTF-8” instead of “en_US.utf8”. (profile-derivation)[libc-utf8-locales-for-target]: Remove. [set-utf8-locale]: Rewrite to a gexp that calls ‘setlocale’ for “C.UTF-8”. * tests/profiles.scm ("profile-derivation, cross-compilation"): Remove ‘locales’ variable and related check. Change-Id: I7cb148b9149fe5fbe5b9b1b25fdce1002ad1f37e Ludovic Courtès
2024-08-31build-systems: gnu: Export %default-gnu-imported-modules and %default-gnu-mod......Until now users would have to cargo cult or inspect the private %default-modules variable of (guix build-systems gnu) to discover which modules to include when extending the used modules via the #:modules argument. The renaming was automated via the command: $ git grep -l %gnu-build-system-modules | xargs sed 's/%gnu-build-system-modules/%default-gnu-imported-modules/' -i * guix/build-system/gnu.scm (%gnu-build-system-modules): Rename to... (%default-gnu-imported-modules): ... this. (%default-modules): Rename to... (%default-gnu-modules): ... this. Export. (dist-package, gnu-build, gnu-cross-build): Adjust accordingly. Change-Id: Idef307fff13cb76f3182d782b26e1cd3a5c757ee Maxim Cournoyer
2024-08-31build: utils: Raise error in modify-phases upon missing key....* guix/build/utils.scm (alist-cons-before) (alist-cons-after): Error with a match failure if the reference is not found, instead of appending to the alist. * tests/build-utils.scm: Update tests to match the new behavior. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I3044b101bd06231d5cd55a544ac1009e6ce6f9a0 Carlo Zancanaro
2024-08-21cache: Avoid cache cleanup storms from concurrent processes....Reported by Christopher Baines <guix@cbaines.net>. * guix/cache.scm (maybe-remove-expired-cache-entries): Define ‘expiry-port’; create it with ‘lock-file’. Change ‘last-expiry-date’ accordingly. Write timestamp straight to ‘expiry-port’. * tests/cache.scm ("maybe-remove-expired-cache-entries, cleanup needed but lock taken"): New test. Change-Id: I22441d9d2c4a339d3d3878de131864db5a0ae826 Ludovic Courtès
2024-08-21syscalls: Add ‘mode’ parameter to ‘lock-file’....* guix/build/syscalls.scm (lock-file): Add ‘mode’ parameter and honor it. * tests/syscalls.scm ("lock-file + unlock-file"): New test. Change-Id: I113fb4a8b35dd8782b9c0991574e39a4b4393333 Ludovic Courtès
2024-08-01tests: gexp: Handle incorrect guile-bootstrap version for riscv....The tests currently fail when run on riscv-linux (affecting the guix package) because Guile 3 is used as the bootstrap guile. Correcting the package version seems hard, so I'm just tweaking the tests to use the right effective version for riscv64-linux. * tests/gexp.scm (bootstrap-guile-effective-version): New procedure. ("gexp->derivation & with-extensions", "lower-gexp", "lower-gexp, raw-derivation-file"): Use bootstrap-guile-effective-version. Change-Id: I3995e1f6b58ada1baf38a8ec55b0173059dd0079 Christopher Baines
2024-07-18modules: ‘file-name->module-name’ strips leading “./”....Fixes <https://issues.guix.gnu.org/71979>. * guix/modules.scm (file-name->module-name): Strip leading “.” component from FILE. * tests/modules.scm ("file-name->module-name") ("file-name->module-name, leading dot"): New tests. Reported-by: Tomas Volf <~@wolfsden.cz> Change-Id: I3d1b9f3f21448050cac4f3b1aed5f8f03758d4c9 Ludovic Courtès
2024-07-18git: Remove untracked files from cached checkouts....Cached checkouts could end up with stale untracked files, for example because the checkout was interrupted. As a result, when this happens for the Guix checkout, users would not get substitutes for ‘guix pull’. * guix/git.scm (delete-untracked-files): New procedure. (switch-to-ref): Use it. * tests/git.scm ("update-cached-checkout, untracked files removed"): New test. Co-authored-by: Ricardo Wurmus <rekado@elephly.net> Change-Id: Iccbe644ade396ad27a037db7e0ef1c2a68ef91ce Ludovic Courtès
2024-07-18guix build: Take ‘--system’ into account together with ‘-S’....* guix/scripts/build.scm (options->derivations)[compute-derivation]: Pass ‘system’ to ‘package-source-derivation’. * tests/guix-build.sh: Test ‘-S’ together with ‘-s’. Change-Id: If35f116285dd9caaf939221163ad0ba831eea993 Ludovic Courtès
2024-07-10pack: Create /tmp in Apptainer images....Related to <https://bugs.gnu.org/37161> and <https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7979a287f8eb84cbbfa44629951572408939a756>. * guix/scripts/pack.scm (squashfs-image)[build]: Add /tmp to the set of directories created. * tests/pack.scm ("squashfs-image + localstatedir"): Check for /tmp. Change-Id: I576aaa6ba8cb8478acf4c3144d492ae5caf411ca Signed-off-by: Ludovic Courtès <ludo@gnu.org> Lars Bilke
2024-06-13tests: Adjust ‘guix system’ test for EFI bootloader....This is a followup to e5078ff3210f4a9863b641a60430b2cb3c9c15ee, which broke this test: $ guix system disk-image -n gnu/system/examples/desktop.tmpl guix system: warning: 'disk-image' is deprecated: use 'image' instead guix system: error: EFI bootloader required with GPT partitioning * tests/guix-system.sh: Use ‘guix system image’ instead of ‘guix system disk-image’. Pass ‘-t efi-raw’ for ‘desktop.tmpl’. Change-Id: I6877085ab33d9e8b471315b806fed22a7d1241a3 Ludovic Courtès