summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2024-02-23import: Do not return package name with json importer.Herman Rimm
* guix/import/json.scm (json->code): Do not return package names after package expressions. * doc/package-hello.json: Fix comma errors and use valid greeter URL. Change-Id: Id71924e72f690a9bda5fbfdb65a443029adfd158 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23import: Discard args after --version and --help.Herman Rimm
* guix/scripts/import.scm (guix-import): Discard args. Change-Id: Icce5cd0daf9011f7ddde7904113b31b547f063ef Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23import: Insert packages into modules alphabetically.Herman Rimm
* guix/scripts/import.scm (guix-import): Add 'insert' option. (import-as-definitions): Add procedure. * doc/guix.texi (Invoking guix import): Describe 'insert' option. Change-Id: Id87ea707123630e12bcb6788599acac6895b26c4 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23utils: Add find-definition-insertion-location procedure.Herman Rimm
* guix/utils.scm (find-definition-insertion-location): Add and export procedure. * tests/utils.scm ("find-definition-insertion-location"): Add test. Change-Id: Ie17e1b4a94790f58518ce121411a38d357f49feb Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23utils: Add insert-expression procedure.Herman Rimm
* guix/utils.scm (define-module): Use (guix read-print) and export (insert-expression). (insert-expression): Add procedure. * tests/utils.scm ("insert-expression"): Add test. Change-Id: I971a43a78aa6ecaaef33c1a7a0db4b287eb85036 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23import: Wrap package expressions with define-public.Herman Rimm
* guix/scripts/import.scm (guix-import): Wrap package expressions. Change-Id: Ic4d986a4706a692b2fecd6fded8ac72ab6311687 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-20syscalls: ‘processes’ really omits kernel threads.Ludovic Courtès
Fixes a bug whereby ‘processes’ would include kernel threads, thereby leading the ‘stop’ method of ‘user-processes’ to wait indefinitely for a kernel thread. Code taken from the Shepherd. Fixes <https://issues.guix.gnu.org/68800>. * guix/build/syscalls.scm (kernel?): Remove. (linux-process-flags, linux-kernel-thread?, pseudo-process?): New procedures. (PF_KTHREAD): New variable. (processes): Use ‘pseudo-process?’ instead of ‘kernel?’. Reported-by: Tomas Volf <~@wolfsden.cz> Change-Id: I8c439cdaf868a8f899de7fe500ce8bf10e5fc290
2024-02-20import/cran: Use downstream name when using specifications.Ricardo Wurmus
Reported by Alexander Blume at <https://github.com/BIMSBbioinfo/guix.install/issues/4>. * guix/import/cran.scm (format-inputs): Use UPSTREAM-INPUT-DOWNSTREAM-NAME when %INPUT-STYLE is set to 'SPECIFICATION. Change-Id: I2f0963af197896aafd613b253d8712e41a716e52
2024-02-19upstream: update-package-inputs: Sort extra inputs.Ricardo Wurmus
Ensure that extra inputs end up in the correct order. * guix/upstream.scm (update-package-inputs)[filtered-inputs]: Sort new list of inputs. Change-Id: Ia5fddd8103a33c79426995057fcce61c2e9e5a72
2024-02-12gnu: disarchive: Update to 0.6.0.Timothy Sample
* gnu/packages/backup.scm (disarchive): Update to 0.6.0; add 'guile-bzip2' as an input. * gnu/packages/package-management.scm (guix): Add 'guile-bzip2' as an input to enable bzip2 support when using Disarchive. * guix/self.scm (%packages): Add 'guile-bzip2'. (compiled-guix): Include 'guile-bzip2' as a dependency when building the 'guix' command. * etc/disarchive-manifest.scm (tarball-origin?): Include bzip2 tarballs. Co-authored-by: Ludovic Courtès <ludovic.courtes@inria.fr> Change-Id: I4da479054f6bef225f5ea979c091152f8a9e51d5
2024-02-12swh: Fix docstring of ‘lookup-directory’.Ludovic Courtès
* guix/swh.scm (lookup-directory): Fix docstring. Change-Id: Ia1fd9b2bc9184364cebbd30ee84c9fdea4ba897c
2024-02-12git-download: Download from SWH by nar hash when possible.Ludovic Courtès
* guix/build/git.scm (git-fetch-with-fallback): Add #:hash and #:hash-algorithm. Try ‘swh-download-directory-by-nar-hash’ before ‘swh-download’ when #:hash is provided. * guix/git-download.scm (git-fetch/in-band*): Pass #:hash and #:hash-algorithm to ‘git-fetch-with-fallback’. * guix/scripts/perform-download.scm (perform-git-download): Likewise. Change-Id: Ic875a7022fd78c9fac32e92ad4f8ce4d81646ec5
2024-02-12lint: archival: Check with ‘lookup-directory-by-nar-hash’.Ludovic Courtès
While this method is new and nar-sha256 ExtIDs are currently available only for new visits, it is fundamentally more reliable than the other methods, which is why it comes first. * guix/lint.scm (check-archival)[lookup-by-nar-hash]: New procedure. Call ‘lookup-by-nar-hash’ before the other lookup methods. * tests/lint.scm ("archival: content available") ("archival: content unavailable but disarchive available") ("archival: missing revision") ("archival: revision available"): Add a 404 response corresponding to the ‘lookup-external-id’ request. * tests/lint.scm ("archival: nar-sha256 extid available"): New test. Change-Id: I4a81d6e022a3b72e6484726549d7fbae627f8e73
2024-02-12swh: Add ‘swh-download-directory-by-nar-hash’.Ludovic Courtès
This allows us to take advantage of content addressing by giving SWH the expected nar hash. * guix/swh.scm (swh-download-directory-by-nar-hash): New procedure. Change-Id: I0494ee15a3cde390a22552de7c2246e0314ba7b5
2024-02-12swh: Add bindings for the “ExtID” API.Ludovic Courtès
This interface was deployed at archive.softwareheritage.org a few days ago. Our main use case will be looking up directories by “nar-sha256” hashes. * guix/swh.scm (<external-id>): New JSON-mapped record type. (lookup-external-id, lookup-directory-by-nar-hash): New procedures. * tests/swh.scm (%external-id): New variable. ("lookup-directory-by-nar-hash"): New test. Change-Id: Ib671c7798aeb6f8132ac78f2b06b9285da8e7bd5
2024-02-12swh: ‘vault-fetch’ follows redirects.Ludovic Courtès
Today, URLs like https://archive.softwareheritage.org/api/1/vault/flat/swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153/raw/ redirect to https://swhvaultstorage.blob.core.windows.net/…. This change fixes ‘vault-fetch’ to follow these. Fixes <https://issues.guix.gnu.org/69058>. * guix/swh.scm (http-get/follow): New procedure. (vault-fetch): Use it instead of ‘http-get*’. Change-Id: Id6b9585a9ce6699a2274b99c9a6d4edda1018b02
2024-02-12git authenticate: Gracefully handle invalid fingerprints.Ludovic Courtès
Previously the command would crash when passed an invalid fingerprint on the command line. * guix/scripts/git/authenticate.scm (guix-git-authenticate) [openpgp-fingerprint*]: New procedure. Use it instead of ‘openpgp-fingerprint’. Change-Id: I99e0549781382f36a684a84449b603e00b53778d
2024-02-10build-system: perl: Accept Gexps for #:module-build-flags.Christopher Baines
Matching the change in 2d40e6f7ab04ec367a9a7fc1af3daa507fb60d3c otherwise the cross build derivations are broken, as was the case for emacs-pde. * guix/build-system/perl.scm (perl-cross-build) [module-build-flags]: Accept gexps. Change-Id: I2dc85bc50bc077581e3abfc5baaedc6487118192
2024-01-31channels: ‘latest-channel-instances’ traverses user-provided channels first.Ludovic Courtès
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
2024-01-24scripts: describe: Support 'channels-sans-intro' format for local checkouts.Sergey Trofimov
* guix/scripts/describe.scm (%display-checkout-info): Support 'channels-sans-intro' format. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-24weather: Add ‘-e’.Ludovic Courtès
* guix/scripts/weather.scm (show-help, %options): Add ‘-e’. (guix-weather): Handle it. * doc/guix.texi (Invoking guix weather): Document it. Change-Id: I6dc97ec2b8226b57be33247b05a34c23b573a64f
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