summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2024-01-31channels: ‘latest-channel-instances’ traverses user-provided channels first....Previously, ‘latest-channel-instances’ would perform a depth-first traversal of channels. Since dependencies specified in ‘.guix-channel’ are usually less specific that those provided by the user, this would lead to the use of instances corresponding to those less specific specs, which in turn might declare dependencies that do not exist for the more specific instances. This commit changes ‘latest-channel-instances’ to perform a breadth-first traversal, thereby giving user-supplied channels higher precedence over dependencies found via ‘.guix-channel’. Fixes <https://issues.guix.gnu.org/68822>. * guix/channels.scm (latest-channel-instances)[ignore?]: Remove. [instance-name, same-named?, more-specific?]: New procedures. Rewrite as a breadth-first traversal using a regular loop. * tests/channels.scm ("latest-channel-instances reads dependencies from most-specific instance"): New test. Change-Id: Iba518145cfd209f04293a56246dbfee3b714650b Ludovic Courtès
2024-01-24scripts: describe: Support 'channels-sans-intro' format for local checkouts....* guix/scripts/describe.scm (%display-checkout-info): Support 'channels-sans-intro' format. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sergey Trofimov
2024-01-24weather: Add ‘-e’....* guix/scripts/weather.scm (show-help, %options): Add ‘-e’. (guix-weather): Handle it. * doc/guix.texi (Invoking guix weather): Document it. Change-Id: I6dc97ec2b8226b57be33247b05a34c23b573a64f Ludovic Courtès
2024-01-22guix: download: Add support for git repositories....* guix/scripts/download.scm (git-download-to-store*): Add new variable. (copy-recursively-without-dot-git): New variable. (git-download-to-file): Add new variable. (show-help): Add 'git', 'commit', 'branch' and 'recursive'options help message. (%default-options): Add default value for 'git-reference' and 'recursive' options. (%options): Add 'git', 'commit', 'branch' and 'recursive' command line options. (guix-download) [hash]: Compute hash with 'file-hash*' instead of 'port-hash' from (gcrypt hash) module. This allows us to compute hashes for directories. * doc/guix.texi (Invoking guix-download): Add @item entries for `git', `commit', `branch' and `recursive' options. Add a paragraph in the introduction. * tests/guix-download.sh: New tests. Move variables and trap definition to the top of the file. Change-Id: Ic2c428dca4cfcb0d4714ed361a4c46609339140a Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Romain GARBAGE
2024-01-22import/cran: Set HOME when ExperimentHub is among the inputs....* guix/import/cran.scm (phases-for-inputs): Add 'set-HOME phase when ExperimentHub is among inputs. Change-Id: Ie3a2443934704eed8694a76a651b806209722421 Ricardo Wurmus
2024-01-22import/cran: Also update annotation and experiment packages....* guix/import/cran.scm (latest-bioconductor-release): Determine package type and pass it to LATEST-BIOCONDUCTOR-PACKAGE-VERSION and BIOCONDUCTOR-URI. (%bioconductor-updater): Compose all bioconductor predicates. Change-Id: Icef3ae05e28ed0f2796d9abf90e51821d2dfcc4c Ricardo Wurmus
2024-01-22guix: Add ork1-elf platform....* doc/guix.texi: Document or1k-elf platform. * guix/platforms/or1k.scm (or1k-elf): New variable. * Makefile.am (MODULES): Add guix/platforms/or1k.scm. Change-Id: I3f71a0fa97f1ebd2bbdbf6cd00a93b477a123648 Jean-Pierre De Jesus DIAZ
2024-01-21import/cran: Generate rudimentary ARGUMENTS field....* guix/import/cran.scm (phases-for-inputs, maybe-arguments): New procedures. (description->package): Splice in result of MAYBE-ARGUMENTS. Change-Id: I578e1903f37c91bf865f0be49b04187ec372ed05 Ricardo Wurmus
2024-01-18build: perl: Accept Gexps for #:module-build-flags....* guix/build-system/perl.scm (perl-build) [module-build-flags]: Accept gexps. Change-Id: If1daa4d9a8cf97824b75f2113f4d7d83256463ce Maxim Cournoyer
2024-01-18import/cran: Add transformation for "packaging"....* guix/import/cran.scm (transform-sysname): Add case for "python-packaging". Change-Id: I0d125fb3858c009a8527d60f56754b9b9c90b409 Ricardo Wurmus
2024-01-17import/cran: Accept optional alternative download procedure....This is useful for cached mass imports. * guix/import/cran.scm (fetch-description-from-tarball): Accept optional download keyword. (fetch-description): Accept optional replacement-download argument. Change-Id: Ic917074656ac34a24c8e7eea3d3e0528fc5180b3 Ricardo Wurmus
2024-01-16import/cran: Add more invalid package names and translations....These were encountered in a mass import of Bioconductor packages. * guix/import/cran.scm (invalid-packages): Add "rtools". (transform-sysname): Add aliases for Python and bioinformatics packages. Change-Id: I97e13cee10c2ee85d4b9296d91afccbdbcec4946 Ricardo Wurmus
2024-01-16import/cran: Add more invalid package names and translations....* guix/import/cran.scm (invalid-packages): Add "build-essential". (transform-sysname): Add aliases for openssl, libxml2, and zlib. Change-Id: Ia142ebc388dbcd47caf3b2c5165bc21227bc1832 Ricardo Wurmus
2024-01-16import: crate: Simplify find-crate-version....* guix/import/crate.scm (find-crate-version): Reuse nonyanked-crate-versions, max-crate-version-of-semver. Change-Id: I976a3b5a397f0d6a7d723804a98356544bfc7da3 Efraim Flashner
2024-01-16import: crate: Update to latest semver version....* guix/import/crate.scm (min-element, max-crate-version-of-semver, nonyanked-crate-versions): New procedures. (import-release)[version]: Update to the requested version or the newest semver-compatible version. Co-authored by David Elsing <david.elsing@posteo.net> Change-Id: I72b081147c4eb9faf482f159b7145aaaf9f91f29 Efraim Flashner
2024-01-13scripts: pack: Set correct default value for entry-point-argument....The default value of #f led to ("..." . #f) being passed further down as an entry point. That is not an issue for command line invocation, since in that code path '() was already used as a default value, but it broke docker system test with the following error: building /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv... tar: Removing leading `/' from member names Backtrace: 6 (primitive-load "/gnu/store/g8hqzccfvn4mkm41jqs65c27gs7?") In ./guix/docker.scm: 268:6 5 (build-docker-image "/gnu/store/zi2f5dfdrhviinm6jxp3cj?" ?) In ice-9/ports.scm: 433:17 4 (call-with-output-file _ _ #:binary _ #:encoding _) 476:4 3 (_ _) In ./guix/docker.scm: 270:21 2 (_) 123:40 1 (config "1996ead589ab366473d935c4d5bd0c38b998f3b299847?" ?) In unknown file: 0 (list->vector ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7?" . #)) ERROR: In procedure list->vector: In procedure vector: Wrong type argument in position 1: ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7wpvrrhfkj-profile/bin/guile" . #f) note: keeping build directory `/tmp/guix-build-docker-pack.tar.gz.drv-16' builder for `/gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv' failed with exit code 1 build of /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv failed View build log at '/var/log/guix/drvs/dl/l8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv.gz'. cannot build derivation `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv': 1 dependencies couldn't be built guix build: error: build of `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv' failed make: *** [Makefile:7044: check-system] Error 1 Breakage was introduced in 7d5168a2af3ed922c6a46985124fb73402cc8844. * guix/scripts/pack.scm (docker-image)[entry-point-argument]: Default to '(). Change-Id: If5fc1f8bcb0981df11409636e71f2ca91b05612f Tomas Volf
2024-01-12scripts: size: Fix `guix size` with --system argument....guix/scripts/size.scm (guix-size): Parameterize %current-system. Change-Id: Ia0c1ebff4397aa211f73360925f7c688d59b515a Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Zheng Junjie
2024-01-09guix: import: Optionally import necessary yanked crates....* doc/guix.texi (Invoking guix import): Mention '--allow-yanked'. * guix/import/crate.scm (make-crate-sexp): Add yanked? argument. For yanked packages, use the full version suffixed by "-yanked" for generated variable names and add a comment and package property. (crate->guix-package): Add allow-yanked? argument and if it is set to #t, allow importing yanked crates if no other version matching the requirements exists. [find-package-version]: Packages previously marked as yanked are only included if allow-yanked? is #t and then take the lowest priority. [find-crate-version]: If allow-yanked? is #t, also consider yanked versions with the lowest priority. [dependency-name+version]: Rename to ... [dependency-name+version+yanked] ...this. Honor allow-yanked? and choose between an existing package and an upstream package. Exit with an error message if no version fulfilling the requirement is found. [version*]: Exit with an error message if the crate version is not found. (cargo-recursive-import): Add allow-yanked? argument. * guix/read-print.scm: Export <comment>. * guix/scripts/import/crate.scm: Add "--allow-yanked". * tests/crate.scm: Add test 'crate-recursive-import-only-yanked-available'. [sort-map-dependencies]: Adjust accordingly. [remove-yanked-info]: New variable. Adjust test 'crate-recursive-import-honors-existing-packages'. (test-bar-dependencies): Add yanked dev-dependencies. (test-leaf-bob-crate): Add yanked versions. (rust-leaf-bob-3.0.2-yanked): New variable. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: I175d89b39774e6b57dcd1f05bf68718d23866bb7 David Elsing
2024-01-09import: crate: Optionally import dev-dependencies recursively....If --recursive-dev-dependencies is specified, development dependencies are also included for all recursively imported packages. * doc/guix.texi (Invoking guix import): Mention --recursive-dev-dependencies. * guix/import/crate.scm (crate-recursive-import): Add recursive-dev-dependencies? argument. * guix/scripts/import/crate.scm (show-help, guix-import-crate): Add "--recursive-dev-dependencies". * tests/crate.scm: Test both #f and #t for #:recursive-dev-dependencies? in the 'cargo-recursive-import' test. (test-root-dependencies): Add intermediate-c as dev-dependency. (test-intermediate-c-crate, test-intermediate-c-dependencies): New variables. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: Iae89794681155d77f128733120e60f03bc297717 David Elsing
2024-01-09gnu: import: Fix memoization in crate-recursive-import....* guix/import/crate.scm (crate-recursive-import): Apply memoize outside the lambda passed to recursive-import in order to actually use the memoization. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> David Elsing
2024-01-08scripts: system: Build layered images....* guix/scripts/system.scm (show-help, %docker-format-options, %options, %default-options, show-docker-format-options, show-docker-format-options/detailed, process-action): Handle '--max-layers' option. * gnu/system/image.scm (system-docker-image): Same. * gnu/image.scm (<image>)[max-layers]: New record field. Change-Id: I2726655aefd6688b976057fd5a38e9972ebfc292 Oleg Pykhalov
2024-01-08guix: pack: Build layered images....* guix/scripts/pack.scm (docker-image, guix-pack, %default-options, %docker-format-options, show-docker-format-options/detailed): Handle '--max-layers' option. * doc/guix.texi (Invoking guix pack): Document this. Change-Id: I90660b2421fcdde891f003469fe2e2edaac7da41 Oleg Pykhalov
2024-01-08guix: docker: Build layered images....* guix/docker.scm (%docker-image-max-layers): New variable. (size-sorted-store-items, create-empty-tar): New procedures. (config, manifest, build-docker-image): Build layered images. Change-Id: I4c8846bff0a3ceccb77e6bdf95d4942e5c3efe41 Oleg Pykhalov
2024-01-08guix: pack: Add '--entry-point-argument' option....* guix/scripts/pack.scm: (entry-point-argument-spec-option-parser): New procedure. (docker-image, %default-options, %docker-format-options, show-docker-format-options/detailed, %options, show-docker-format-options, guix-pack): Handle '--entry-point-argument' option. * doc/guix.texi: (Invoking guix pack): Document this Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> Change-Id: I1124feff6af39dcc63c85fd6cc7ad50f398489dc Graham James Addis
2024-01-07build-system/zig: Add cross-compilation support....* guix/build/zig-build-system.scm (zig-cross-build): New function (lower): Add cross-compilation support * guix/build-system/zig.scm (build): Add --target flag with target input (check): Disable with cross compilation Change-Id: I5f42ff897bfe00c92c6576900221a15ef210d669 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ekaitz Zarraga
2024-01-05ui: It’s 2024 now!...* guix/ui.scm (show-version-and-exit): Change year to 2024. Change-Id: I00fc2754da2b93d8b595a35aacdff087124df706 Ludovic Courtès
2024-01-04gnu: Add target-x32?....* guix/utils.scm (target-x32?): New procedure. Change-Id: Ia16c7edce64de01d5ccb126c7bd9a6736f327b5f Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Efraim Flashner
2024-01-04gnu: Add support for x86_64-linux-gnux32....* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add entry for x86_64-linux-gnux32. * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add configure-flag for x86_64-linux-gnux32. * guix/platforms/x86.scm (x86_64-linux-gnux32): New variable. * guix/utils.scm (gnu-triplet->nix-system): Force x86_64-linux-gnux32 to output a different nix-system than x86_64-linux-gnu. Change-Id: I519fea2f8357e4b9895ede05fe8a5e373e9b034a Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Efraim Flashner
2024-01-01import/cran: Restore format-inputs....This fixes a regression introduced in commit e6223017d95bc615b2648f0798d9a3904d5b5f57 causing the selected input style to be ignored. * guix/import/cran.scm (format-inputs): New procedure. (maybe-inputs): Use it. Change-Id: I0d36f972fcb9888ed2be4ec9360bbcab13c25c5d Ricardo Wurmus
2024-01-01import/cran: Add invalid package....* guix/import/cran.scm (invalid-packages): Add libR. Change-Id: I1e06b44785051dfc4fb85ba06062aa8c8e003495 Ricardo Wurmus
2023-12-27scripts: download: Fix docstring typo....* guix/scripts/download.scm (ensure-valid-store-file-name name): Fix the docstring. Change-Id: If3fe3a923f514bb69297b566e0642c5e80fe4648 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Romain GARBAGE
2023-12-17download: Update Apache mirror list....* guix/download.scm (%mirrors): Remove several vanished hosts and all FTP URLs. Use HTTPS where supported. Add some new HTTPS mirrors. Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95 Tobias Geerinckx-Rice
2023-12-17download: Update KDE mirror list....* guix/download.scm (%mirrors): Update one mirror URL and remove 2 dead ones. Change-Id: Ibdc03f0b7df94b73bb5be0fda5a6244b017e747e Tobias Geerinckx-Rice
2023-12-17download: Remove dead SourceForge mirrors....* guix/download.scm (%mirrors): Remove 2 dead mirror URLs. Change-Id: I7f0e15ab5499df26fdf0b1702f8bea73c8ec8230 Tobias Geerinckx-Rice
2023-12-22deprecation: Fix docstring typo....* guix/deprecation.scm (define-deprecated/public): Fix docstring. Change-Id: I895b1a86654b2756a9f98e858c622e8e7a6e2c27 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Felix Lechner
2023-12-22least-authority: Add support for changing UIDs/GIDs before exec....Fixes <https://issues.guix.gnu.org/67175>. * guix/least-authority.scm (least-authority-wrapper): Add #:user and #:group. [code]: Add calls to ‘setgid’ and ‘setuid’ when appropriate. Change-Id: I2aad8e5686b42b5c92fc306b114c5c60cb8bc551 Ludovic Courtès
2023-12-22gexp: #:references-graphs accepts and honors <gexp-input> records....* guix/gexp.scm (lower-reference-graphs)[tuple->gexp-input]: Add ‘gexp-input?’ case. (gexp->derivation): Update docstring. * doc/guix.texi (G-Expressions): Adjust accordingly. * tests/gexp.scm ("references-file, non-default output"): New test. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I595cb75da0867ab8ab44552887dc06ed1d23315e Ludovic Courtès
2023-12-22gexp: Add compiler for <gexp-input>....* guix/gexp.scm (gexp-input-compiler): New procedure. * tests/gexp.scm ("gexp references non-existent output") ("gexp-input, as first-class input"): New tests. * doc/guix.texi (G-Expressions): Document it. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I95b58d6e4d77a54364026b4324fbb00125a9402e Ludovic Courtès
2023-12-19import/cran: Export a few more variables and procedures....This allows users of this module to provide e.g. caching alternatives to the download and fetch procedures. * guix/import/cran.scm (%bioconductor-version, download, fetch-description): Make these variables public. Change-Id: I9ce14db9be9b8b3314b06fa9eb50a4e24c5dd718 Ricardo Wurmus
2023-12-18build-system/composer: Do not import host-side Guile-JSON modules....Importing host-side (json …) modules would make builds dependent on the Guile-JSON version currently installed by the user. Use ‘with-extensions’ instead. * guix/build-system/composer.scm (%composer-build-system-modules): Remove (json …) modules. (composer-build)[guile-json]: New variable. [builder]: Wrap body in ‘with-extensions’. Change-Id: Ibe565572d60481b31292d73c6fa23d42aa3ceecb Ludovic Courtès
2023-12-18build-system: Add ‘composer-build-system’....* guix/build-system/composer.scm: New file. * guix/build/composer-build-system.scm: New file. * gnu/packages/aux-files/findclass.php: New file. * Makefile.am: Add them. * doc/guix.texi (Build Systems): Document it. Co-authored-by: Julien Lepiller <julien@lepiller.eu> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: Ie6a05b42ff04d3ad774a0a20278a77e4820bb8f6 Nicolas Graves
2023-12-18guix: import: Add composer importer....* guix/import/composer.scm: New file. * guix/scripts/import/composer.scm: New file. * guix/tests/composer.scm: New file. * Makefile.am: Add them. * guix/scripts/import.scm: Add composer importer. * doc/guix.texi (Invoking guix import): Mention it. Change-Id: I44a89b8cc80ef5b4a3cd15e8fbba4a18c1cea0b1 Co-authored-by: Julien Lepiller <julien@lepiller.eu> Co-authored-by: Ludovic Courtès <ludo@gnu.org> Nicolas Graves
2023-12-17build-system: Add mix-build-system....* guix/build-system/mix.scm: New file. * guix/build/mix-build-system.scm: New file. Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Pierre-Henry Fröhring
2023-12-16guix: import: Report go version for go importer....* guix/import/go.scm (go-package, go.mod-go-version): New procedures. (go-module->guix-package): Add the #:go keyword in the generated package definition if the required go is newer than the default go. * tests/go.scm (mock-http-get): Use gexps for package arguments. Change-Id: I8d005740a442330ac307a40a53764c803ceffc4f Efraim Flashner
2023-12-16guix: import: Don't include indirect dependencies in go....* guix/import/go.scm (parse-go.mod)[define-peg-patern require]: Adjust the peg pattern to reject lines with the 'indirect' comment in them. Change-Id: I9618bbaa1cb8c6549ced875e3c8d32afc72c3b9b Efraim Flashner
2023-12-14build-system/zig: Do not import (guix build syscalls)....* guix/build-system/zig.scm (%zig-build-system-modules): Remove (guix build syscalls), which is unused. Change-Id: Ie91c46c68787e0a8ffa3cbde2c5fd2294b82ed15 Ludovic Courtès
2023-12-13syscalls: Define riscv64 syscall ID for clone....* guix/build/syscalls.scm (clone): Add an entry for riscv64. This allows the use of --container on riscv64. Change-Id: I12b3cb5e2aa248266d006b6e456082f4ddc70e62 Signed-off-by: Ludovic Courtès <ludo@gnu.org> MarcoFalke
2023-12-13Merge branch 'rust-team'...Change-Id: Iee33d7b9067d2180fd4b2e28d81716a251a53a01 Efraim Flashner
2023-12-11weather: Report unauthorized substitute servers....The goal is to make it easier to diagnose substitute misconfiguration (where we’re passing a substitute URL whose corresponding key is not authorized). Suggested by Emmanuel Agullo. * guix/scripts/weather.scm (check-narinfo-authorization): New procedure. (report-server-coverage): Use it. * doc/guix.texi (Invoking guix weather): Document it. (Getting Substitutes from Other Servers): Add “Troubleshooting” frame. Change-Id: I0a049c39eefb10d6a06634c8b16aa86902769791 Ludovic Courtès
2023-12-11weather: Use the same substitute URLs as guix-daemon....* guix/scripts/weather.scm (%default-options): Remove ‘substitute-urls’. (guix-weather): Call ‘substitute-urls’ when OPTS doesn’t have it. Warn when ‘substitute-urls’ returns #f. * doc/guix.texi (Invoking guix weather): Adjust accordingly. Change-Id: I3e9100074f2ad559e5c408660db70430d64f2bef Ludovic Courtès