aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
koszkoAllow unauthorized `guix pull`W. Kosior5 days
koszko-scriptsAdd `httpd-cross-compile-wip' branch.W. Kosior5 days
 
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 2024-06-13tests: Fix ‘beautify-description’ test....This is a followup to 510ad5d93c0ba6208aa42815863853ec522352e6. * tests/import-utils.scm ("beautify-description: transform fragment into sentence"): Fix. Change-Id: I331cb38a3460a024a789846772a074ba0b6c857c Ludovic Courtès 2024-06-03import: utils: End package descriptions with period....* guix/import/utils.scm (beautify-description): Append period to last words which do not end with one. * tests/crate.scm: Append period to descriptions. * tests/elm.scm: Append period to descriptions. * tests/gem.scm: Append period to descriptions. * tests/hexpm.scm: Append period to descriptions. * tests/minetest.scm: Append period to descriptions. * tests/pypi.scm: Append period to descriptions. * tests/import-utils.scm ("beautify-description: transform fragment into sentence"): Likewise. Change-Id: I0b12c4d94cb26cf62fab5b7cbf7885e66ff6c10f Signed-off-by: Ludovic Courtès <ludo@gnu.org> Herman Rimm 2024-06-03import: crate: Include a main verb in crate importer descriptions....* guix/import/crate.scm (make-crate-sexp): Start description with 'This package provides '. * tests/crate.scm: Set descriptions to "This package provides summary". Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: If0f47a68f986b9e878fd5caa3e365c5ad863089a Herman Rimm 2024-06-03style: Fix conversion of ‘unquote-splicing’ by ‘-S arguments’....* guix/scripts/style.scm (unquote->ungexp): Add missing comma for ‘ungexp-splicing’. * tests/style.scm ("gexpify arguments, substitute-keyword-arguments + unquote-splicing"): New test. Change-Id: I17dcdd9b4812d54ddba1137e369360706b137bb4 Ludovic Courtès 2024-05-25deduplication: Detect holes and create sparse files....This reduces disk usage of sparse files that are substituted such as Guile object files (ELF files). As of Guile 3.0.9, .go files are sparse due to ELF sections being aligned on 64 KiB boundaries. This reduces disk usage reported by “du -sh” by 9% for the ‘guix’ package, by 23% for ‘guile’, and by 35% for ‘guile-git’. * guix/store/deduplication.scm (hole-size, find-holes): New procedures. (tee)[seekable?]: New variable. [read!]: Add case when SEEKABLE? is true. * tests/store-deduplication.scm (cartesian-product): New procedure. ("copy-file/deduplicate, sparse files (holes: ~a/~a/~a)"): New test set. Change-Id: Iad2ab7830dcb1220e2026f4a127a6c718afa8964 Ludovic Courtès 2024-05-19import: Add binary npm importer....* guix/scripts/import.scm: (importers): Add "npm-binary". * doc/guix.texi (Invoking guix import): Document npm-binary importer. * guix/import/npm-binary.scm: New file. * guix/scripts/import/npm-binary.scm: New file. * tests/npm-binary.scm: New file. * Makefile.am: Add them. Co-authored-by: Timothy Sample <samplet@ngyro.com> Co-authored-by: Lars-Dominik Braun <lars@6xq.net> Change-Id: I98a45068cf5b9c42790664cc743feaa7ac76f807 Jelle Licht 2024-05-13tests: Skip ‘terminal-string-width’ test on encodings other than UTF-8....* tests/syscalls.scm ("terminal-string-width Japanese"): Skip when the encoding of (current-output-port) is not UTF-8. Reported-by: Ashvith Shetty <ashvithshetty10@gmail.com> Change-Id: Ic284dd088d6b148d6fcb457290a28fdb0838b83d Ludovic Courtès 2024-05-13tests: Remove interference from the user’s Git config....* tests/guix-download.sh: Set ‘GIT_CONFIG_GLOBAL’ and ‘GIT_CONFIG_SYSTEM’. Reported-by: Ashvith Shetty <ashvithshetty10@gmail.com> Change-Id: Ibe14d23db2e8af58b85c78248997c6dde78e11e0 Ludovic Courtès 2024-05-01git authenticate: Record introduction and keyring in ‘.git/config’....* guix/scripts/git/authenticate.scm (%default-options): Remove ‘keyring-reference’. (config-value, configured-introduction, configured-keyring-reference) (configured?, record-configuration, current-branch): New procedures. (guix-git-authenticate)[missing-arguments]: New procedure. Use ‘configured-introduction’ when zero arguments are given. Use ‘configured-keyring-reference’ when ‘-k’ is not passed. Add call to ‘record-configuration’. * doc/guix.texi (Invoking guix git authenticate): Document it. Change-Id: I66e111a83f50407b52da71662629947f83a78bbc Ludovic Courtès 2024-04-15utils: Don’t re-export ‘call-with-temporary-output-file’....* guix/utils.scm: Remove re-export of ‘call-with-temporary-output-file’. Autoload a number of modules. * guix/download.scm, guix/import/hackage.scm, guix/import/hexpm.scm, guix/import/opam.scm, guix/import/pypi.scm, tests/cpio.scm, tests/egg.scm, tests/opam.scm, tests/publish.scm, tests/store-database.scm, tests/utils.scm: Adjust imports accordingly. Change-Id: I3f5e94631397996a30be2ea4ff8b50a3371e8ee7 Ludovic Courtès 2024-04-08gexp: Add #:guile parameter to ‘gexp->file’ and ‘scheme-file’....This brings ‘gexp->file’ in line with its documentation and mirrors what’s done for ‘gexp->script’ and ‘program-file’. Fixes <https://issues.guix.gnu.org/69401>. * guix/gexp.scm (gexp->file): Add #:guile, as was already documented. (<scheme-file>)[guile]: New field. (scheme-file): Add #:guile. (scheme-file-compiler): Honor ‘guile’ field. * tests/gexp.scm ("gexp->file") ("gexp->file + file-append", "gexp->file + #:splice?") ("gexp->file, cross-compilation") ("gexp->file, cross-compilation with default target") Add #:guile to ‘gexp->file’ calls. ("gexp-modules deletes duplicates") ("gexp->derivation & with-imported-module & computed module") ("gexp->derivation & with-extensions", "scheme-file"): Likewise for ‘scheme-file’ calls. Change-Id: I47536063d5e411e561ec321e535267e92dd06044 Reported-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: I58d653c7fbe65c665bafcbd332ac9b264ddeab64 Ludovic Courtès 2024-04-03store: database: Rename a couple of procedures....These names should be more descriptive. * guix/store/database.scm (path-id): Rename to select-valid-path-id. (sqlite-register): Rename to register-valid-path. (register-items): Update accordingly. Change-Id: I6d4a14d4cde9d71ab34d6ffdbfbfde51b2c0e1db Christopher Baines