summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* home: Define ‘%base-home-services’.Ludovic Courtès33 hours1-19/+21
| | | | | | | | | | | | | | | | | * 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
* import: git: Do not search pre-release words in tag prefix.宋文武6 days1-0/+9
| | | | | | | | | | | | | 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
* upstream: Define ‘preferred-upstream-source’.Ludovic Courtès9 days1-1/+20
| | | | | | | * guix/upstream.scm (preferred-upstream-source): New procedure. * tests/upstream.scm ("preferred-upstream-source"): New test. Change-Id: I4b48b44f1aa233d2e99bfe2e1359a670297efae8
* syscalls: Remove wrong syscall ID for ‘kexec_load_file’ on i686.Ludovic Courtès11 days1-4/+4
| | | | | | | | | | | 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
* channels: Adjust tests for new #:verify-certificate? parameter.Ludovic Courtès2024-12-301-2/+2
| | | | | | | | | | 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
* import: pypi: Adjust test to new setuptools and wheel requirements.Ludovic Courtès2024-12-301-3/+18
| | | | | | | | | | | | | | | 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
* daemon: Explicitly unlock output path in the has-become-valid case.Reepca Russelstein2024-12-301-0/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* syscalls: Add ‘kexec-load-file’.Ludovic Courtès2024-12-281-0/+13
| | | | | | | | * 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
* packages: Add #:recursive? to ‘package-input-rewriting’.Ludovic Courtès2024-12-181-0/+30
| | | | | | | | | * 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
* accounts: Add /etc/subid and /etc/subgid allocation logic.Giacomo Leidi2024-12-181-0/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* accounts: Add /etc/subuid and /etc/subgid support.Giacomo Leidi2024-12-181-0/+55
| | | | | | | | | | | | | | | | | | | | | | | 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>
* import: pypi: Support extracting dependencies from pyproject.toml.Lars-Dominik Braun2024-12-161-5/+96
| | | | | | | | | | | | | | | | | | | * 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>
* packages: Use origin file names as their input labels.Ludovic Courtès2024-12-161-1/+9
| | | | | | | | | | | | | | * 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>
* tests: guix-shell-export-manifest: Fix pyproject-build-system python test.Janneke Nieuwenhuizen2024-12-141-1/+2
| | | | | | | | | | | 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
* tests: guix-package: Fix guix package --search test.Janneke Nieuwenhuizen2024-12-141-1/+3
| | | | | | | | | | | | | 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
* guix: toml: Fix parsing empty strings in arrays.Lars-Dominik Braun2024-12-131-0/+27
| | | | Change-Id: Id14d4008391a01820ade754fa9c2ca8e88b8c7f9
* guix: toml: Add TOML parser.Lars-Dominik Braun2024-12-131-0/+442
| | | | | | * guix/build/toml.scm: New file. * tests/toml.scm: New file. * Makefile.am: Register new files.
* lint: More abbreviations.Gabriel Wicki2024-12-121-1/+1
| | | | | | | | | * 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>
* lint: Ignore initials from double space check.Gabriel Wicki2024-12-121-1/+1
| | | | | | | | | | | | | | 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>
* lint: Prevent false positives in description typo check.Gabriel Wicki2024-12-121-1/+7
| | | | | | | | | | * 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>
* lint: Allow texinfo markup at beginning of synopsis.Gabriel Wicki2024-12-121-0/+6
| | | | | | | | * 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>
* lint: Allow texinfo markup at beginning of description.Gabriel Wicki2024-12-121-0/+5
| | | | | | | | | * 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>
* lint: Refine description start check logic.Gabriel Wicki2024-12-121-0/+25
| | | | | | | | | | | | | | | | | 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>
* lint: Fix indentation.Gabriel Wicki2024-12-121-8/+8
| | | | | | | | * 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
* import: utils: Wrap function names in @code.Ricardo Wurmus2024-12-031-1/+5
| | | | | | | | | * 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
* tests: Adjust ‘guix build -P1’ test to new packages.Ludovic Courtès2024-12-021-1/+1
| | | | | | | | | | | | 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
* packages: 'package-input-rewriting/spec' optionally replace hidden.Greg Hogan2024-12-021-0/+15
| | | | | | | | | | | | | | | 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>
* transformations: ‘package-with-upstream-version’ can preserve patches.Ludovic Courtès2024-12-011-1/+30
| | | | | | | * guix/transformations.scm (upstream-fetch): New procedure. (package-with-upstream-version): Add #:preserve-patches? and honor it. Change-Id: Ib56b84957d8bdad2eebe2551e2a6e477506fc55e
* guix build: Add ‘--dependents’.Ludovic Courtès2024-12-011-0/+6
| | | | | | | | | | | | | | | * 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
* guix build: Add ‘--development’ option.Ludovic Courtès2024-12-011-0/+5
| | | | | | | | | | * 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
* pack: Add support for AppImage pack format.Sebastian Dümcke2024-11-231-1/+39
| | | | | | | | | | | | * 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>
* tests: Fix the 'go-module->guix-package' test.Maxim Cournoyer2024-11-171-1/+5
| | | | | | | | | | | 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
* derivations: ‘derivation-build-plan’ returns builds in topological order.Ludovic Courtès2024-11-121-2/+29
| | | | | | | | | | | | | | 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
* tests: Fix gremlin.scm for GCC 14Ting-Wei Lan2024-11-121-0/+2
| | | | | | | * 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>
* tests: Make ‘tests/print.scm’ deterministic.Ludovic Courtès2024-09-281-1/+6
| | | | | | | | | | | 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
* Revert "import: crate: Emit new-style package inputs."Ludovic Courtès2024-09-191-27/+50
| | | | | | | | | | | 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
* tests: Adjust ‘elm’ importer test to expect inputs without labels.Ludovic Courtès2024-09-171-4/+2
| | | | | | | | This is a followup af85c38b017be3d932d4665acd9ff4b5c56a9790. * tests/elm.scm ("(guix import elm)"): Expect new-style inputs. Change-Id: If3c6b17b5a5d17ad443c3ddb05f94dc2458ba182
* gexp: ‘imported-files’ does not create symlinks.Ludovic Courtès2024-09-161-0/+27
| | | | | | | | | | | | | 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
* gexp: Add ‘assume-source-relative-file-name’.Richard Sent2024-09-041-0/+6
| | | | | | | | | | | | * 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
* scripts: style: Add 'alphabetical-sort' option.Herman Rimm2024-09-031-0/+26
| | | | | | | | | | | | | * 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>
* guix: import texlive: Add UPSTREAM-NAME property when necessary.Nicolas Goaziou2024-08-311-0/+35
| | | | | | | | * 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
* guix: import texlive: Adjust to generate new source format.Nicolas Goaziou2024-08-311-30/+58
| | | | | | | | | | | | * 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
* gnu: TeX Live packages built from TEXLIVE-SOURCE use same version.Nicolas Goaziou2024-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* guix: import texlive: Handle versions.Nicolas Goaziou2024-08-311-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* guix: import texlive: Propagate binaries when necessary.Nicolas Goaziou2024-08-311-2/+128
| | | | | | | | | | | | | | * 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
* import: go: Emit new-style package inputs.Sarah Morgensen2024-08-311-1/+1
| | | | | | | | | | | | | | | 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>
* import: crate: Emit new-style package inputs.Sarah Morgensen2024-08-311-50/+27
| | | | | | | | | | | | * 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
* profiles: Use C.UTF-8 instead of ‘glibc-utf8-locales’ where possible.Ludovic Courtès2024-08-311-6/+1
| | | | | | | | | | | | | | 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
* build-systems: gnu: Export %default-gnu-imported-modules and ↵Maxim Cournoyer2024-08-311-4/+4
| | | | | | | | | | | | | | | | | | | | | %default-gnu-modules. 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
* build: utils: Raise error in modify-phases upon missing key.Carlo Zancanaro2024-08-311-6/+6
| | | | | | | | | | * 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