summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2024-01-22guix: download: Add support for git repositories.Romain GARBAGE
* 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>
2024-01-22import/cran: Set HOME when ExperimentHub is among the inputs.Ricardo Wurmus
* guix/import/cran.scm (phases-for-inputs): Add 'set-HOME phase when ExperimentHub is among inputs. Change-Id: Ie3a2443934704eed8694a76a651b806209722421
2024-01-22import/cran: Also update annotation and experiment packages.Ricardo Wurmus
* 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
2024-01-22guix: Add ork1-elf platform.Jean-Pierre De Jesus DIAZ
* 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
2024-01-21import/cran: Generate rudimentary ARGUMENTS field.Ricardo Wurmus
* guix/import/cran.scm (phases-for-inputs, maybe-arguments): New procedures. (description->package): Splice in result of MAYBE-ARGUMENTS. Change-Id: I578e1903f37c91bf865f0be49b04187ec372ed05
2024-01-18build: perl: Accept Gexps for #:module-build-flags.Maxim Cournoyer
* guix/build-system/perl.scm (perl-build) [module-build-flags]: Accept gexps. Change-Id: If1daa4d9a8cf97824b75f2113f4d7d83256463ce
2024-01-18import/cran: Add transformation for "packaging".Ricardo Wurmus
* guix/import/cran.scm (transform-sysname): Add case for "python-packaging". Change-Id: I0d125fb3858c009a8527d60f56754b9b9c90b409
2024-01-17import/cran: Accept optional alternative download procedure.Ricardo Wurmus
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
2024-01-16import/cran: Add more invalid package names and translations.Ricardo Wurmus
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
2024-01-16import/cran: Add more invalid package names and translations.Ricardo Wurmus
* guix/import/cran.scm (invalid-packages): Add "build-essential". (transform-sysname): Add aliases for openssl, libxml2, and zlib. Change-Id: Ia142ebc388dbcd47caf3b2c5165bc21227bc1832
2024-01-16import: crate: Simplify find-crate-version.Efraim Flashner
* guix/import/crate.scm (find-crate-version): Reuse nonyanked-crate-versions, max-crate-version-of-semver. Change-Id: I976a3b5a397f0d6a7d723804a98356544bfc7da3
2024-01-16import: crate: Update to latest semver version.Efraim Flashner
* 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
2024-01-13scripts: pack: Set correct default value for entry-point-argument.Tomas Volf
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
2024-01-12scripts: size: Fix `guix size` with --system argument.Zheng Junjie
guix/scripts/size.scm (guix-size): Parameterize %current-system. Change-Id: Ia0c1ebff4397aa211f73360925f7c688d59b515a Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-01-09guix: import: Optionally import necessary yanked crates.David Elsing
* 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
2024-01-09import: crate: Optionally import dev-dependencies recursively.David Elsing
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
2024-01-09gnu: import: Fix memoization in crate-recursive-import.David Elsing
* 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>
2024-01-08scripts: system: Build layered images.Oleg Pykhalov
* 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
2024-01-08guix: pack: Build layered images.Oleg Pykhalov
* 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
2024-01-08guix: docker: Build layered images.Oleg Pykhalov
* 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
2024-01-08guix: pack: Add '--entry-point-argument' option.Graham James Addis
* 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
2024-01-07build-system/zig: Add cross-compilation support.Ekaitz Zarraga
* 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>
2024-01-05ui: It’s 2024 now!Ludovic Courtès
* guix/ui.scm (show-version-and-exit): Change year to 2024. Change-Id: I00fc2754da2b93d8b595a35aacdff087124df706
2024-01-04gnu: Add target-x32?.Efraim Flashner
* guix/utils.scm (target-x32?): New procedure. Change-Id: Ia16c7edce64de01d5ccb126c7bd9a6736f327b5f Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2024-01-04gnu: Add support for x86_64-linux-gnux32.Efraim Flashner
* 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>
2024-01-01import/cran: Restore format-inputs.Ricardo Wurmus
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
2024-01-01import/cran: Add invalid package.Ricardo Wurmus
* guix/import/cran.scm (invalid-packages): Add libR. Change-Id: I1e06b44785051dfc4fb85ba06062aa8c8e003495
2023-12-27scripts: download: Fix docstring typo.Romain GARBAGE
* guix/scripts/download.scm (ensure-valid-store-file-name name): Fix the docstring. Change-Id: If3fe3a923f514bb69297b566e0642c5e80fe4648 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-12-17download: Update Apache mirror list.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove several vanished hosts and all FTP URLs. Use HTTPS where supported. Add some new HTTPS mirrors. Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95
2023-12-17download: Update KDE mirror list.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Update one mirror URL and remove 2 dead ones. Change-Id: Ibdc03f0b7df94b73bb5be0fda5a6244b017e747e
2023-12-17download: Remove dead SourceForge mirrors.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove 2 dead mirror URLs. Change-Id: I7f0e15ab5499df26fdf0b1702f8bea73c8ec8230
2023-12-22deprecation: Fix docstring typo.Felix Lechner
* guix/deprecation.scm (define-deprecated/public): Fix docstring. Change-Id: I895b1a86654b2756a9f98e858c622e8e7a6e2c27 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-12-22least-authority: Add support for changing UIDs/GIDs before exec.Ludovic Courtès
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
2023-12-22gexp: #:references-graphs accepts and honors <gexp-input> records.Ludovic Courtès
* 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
2023-12-22gexp: Add compiler for <gexp-input>.Ludovic Courtès
* 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
2023-12-19import/cran: Export a few more variables and procedures.Ricardo Wurmus
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
2023-12-18build-system/composer: Do not import host-side Guile-JSON modules.Ludovic Courtès
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
2023-12-18build-system: Add ‘composer-build-system’.Nicolas Graves
* 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
2023-12-18guix: import: Add composer importer.Nicolas Graves
* 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>
2023-12-17build-system: Add mix-build-system.Pierre-Henry Fröhring
* 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>
2023-12-16guix: import: Report go version for go importer.Efraim Flashner
* 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
2023-12-16guix: import: Don't include indirect dependencies in go.Efraim Flashner
* 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
2023-12-14build-system/zig: Do not import (guix build syscalls).Ludovic Courtès
* guix/build-system/zig.scm (%zig-build-system-modules): Remove (guix build syscalls), which is unused. Change-Id: Ie91c46c68787e0a8ffa3cbde2c5fd2294b82ed15
2023-12-13syscalls: Define riscv64 syscall ID for clone.MarcoFalke
* 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>
2023-12-13Merge branch 'rust-team'Efraim Flashner
Change-Id: Iee33d7b9067d2180fd4b2e28d81716a251a53a01
2023-12-11weather: Report unauthorized substitute servers.Ludovic Courtès
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
2023-12-11weather: Use the same substitute URLs as guix-daemon.Ludovic Courtès
* 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
2023-12-11challenge: Use the same substitute URLs as guix-daemon.Ludovic Courtès
* guix/scripts/challenge.scm (%default-options): Remove ‘substitute-urls’. (guix-challenge): Call ‘substitute-urls’ when OPTS doesn’t have it. Warn when ‘substitute-urls’ returns #f. Change-Id: I49be0e89404c1889970a3430967fbb3498d35d99
2023-12-11daemon: Implement ‘substitute-urls’ RPC.Ludovic Courtès
* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump. (WorkerOp): Add ‘wopSubstituteURLs’. * nix/nix-daemon/nix-daemon.cc (performOp): Implement it. * guix/store.scm (%protocol-version): Bump. (operation-id): Add ‘substitute-urls’. (substitute-urls): New procedure. * tests/store.scm ("substitute-urls, default") ("substitute-urls, client-specified URLs") ("substitute-urls, disabled"): New tests. Change-Id: I2c0119500c3a1eecfa5ebf32463ffb0f173161de
2023-12-10Merge remote-tracking branch 'origin/master' into rust-teamEfraim Flashner
Change-Id: Ic45f7071abd6a02c2ccad411500e5103c8272ffb