summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2023-11-09guix: ant: Optionally build with java modules.Julien Lepiller
Modules were introduced in Java 9 and are not supported by the default icedtea compiler, so this feature is disabled by default. * guix/build-system/ant.scm (ant-build): Add use-java-modules? parameter. * guix/build/ant-build-system.scm (default-build.xml) (configure): Use it. Change-Id: I3b99238e4cd262332fa5c818be1af5477c7374fd
2023-11-08build-system: Add vim-build-system.Jonathan Scoresby
* guix/build-system/vim.scm, * guix/build/vim-build-system.scm: New modules. * Makefile.am (MODULES): Register new files. * doc/guix.texi: Document it. Co-authored-by: Efraim Flashner <efraim@flashner.co.il> Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-11-07git-download: Add support for Git Large File Storage (LFS).Maxim Cournoyer
* guix/build/git.scm (git-fetch) [lfs?]: New argument, doc and setup code. (git-fetch-with-fallback) [lfs?]: New argument. Pass it to git-fetch. * guix/git-download.scm (git-lfs-package): New procedure. (git-fetch/in-band*): New procedure, made of the logic of git-fetch/in-band, with new git-lfs specifics, with the following changes: New #:git-lfs argument. <inputs>: Remove labels. Conditionally add git-lfs. <build>: Read "git lfs?" environment variable and pass its value to the #:lfs? argument of git-fetch-with-fallback. Use INPUTS directly; update comment. <gexp->derivation>: Add "git lfs?" to #:env-vars. (git-fetch/in-band): Express in terms of git-fetch/in-band*. (git-fetch/lfs): New procedure. * doc/guix.texi (origin Reference): Document it. Change-Id: I5b233b8642a7bdb8737b9d9b740e7254a89ccb25 Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-07-23download: Replace faulty kernel mirror URL with canonical upstream.Leo Famulari
This mirror was providing truncated files. See patch ticket #66923 for more information about this change: <https://issues.guix.gnu.org/issue/66923> * guix/download.scm (%mirrors): Replace kernel mirror <uio.no> with <kernel.org>. Change-Id: I189fc4eaa2bb3fa8b6db028aa837f0d59a460327
2023-11-05time-machine: Warn when no command is given.Ludovic Courtès
* guix/scripts/time-machine.scm (guix-time-machine): Emit a warning when COMMAND-LINE is false. Change-Id: I26e6b608915ecaf6d9372f9b03dc5ebd1b4c68f9
2023-11-05time-machine: Make target commit check cheaper.Ludovic Courtès
Commit 79ec651a286c71a3d4c72be33a1f80e76a560031 introduced a check to error out when attempting to use ‘time-machine’ to travel to a commit before ‘v1.0.0’. This commit fixes a performance issue with the strategy used in 79ec651a286c71a3d4c72be33a1f80e76a560031 (the repository was opened, updated, and traversed a second time by ‘validate-guix-channel’) as well as a user interface issue (“Updating channel” messages would be printed too late). This patch reimplements the check in terms of the existing #:validate-pull mechanism, which is designed to avoid extra repository operations. Fixes <https://issues.guix.gnu.org/65788>. * guix/inferior.scm (cached-channel-instance): Change default value of #:validate-channels. Remove call to VALIDATE-CHANNELS; pass it as #:validate-pull to ‘latest-channel-instances’. * guix/scripts/time-machine.scm (%reference-channels): New variable. (validate-guix-channel): New procedure, written as a simplification of… (guix-time-machine)[validate-guix-channel]: … this. Remove. Pass #:reference-channels to ‘cached-channel-instance’. Reported-by: Simon Tournier <zimon.toutoune@gmail.com> Change-Id: I9b0ec61fba7354fe08b04a91f4bd32b72a35460c
2023-11-05lint: Speed up the formatting linter.Christopher Baines
By using go-to-location which caches the number of bytes to seek by to get to specific lines in a file. * guix/lint.scm (report-formatting-issues): Use go-to-location. Change-Id: I34e4d3acfbb1e14e026d2e7f712ba8d22b56c147 Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-11-05scripts: edit: Fix relative file-name with 'load-path' option.Simon Tournier
* guix/scripts/edit.scm (search-path*): Return 'file' if exists when 'search-path' fails. Change-Id: I891d63d0d28577a7d1732fc59435828ecc0a5c5a
2023-11-03guix: Upgrade to Bioconductor 3.18.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.18. * guix/import/cran.scm (%bioconductor-version): Same. Change-Id: Ic3fc2e6ab6b5f6f6e55662f81baee67391158c5b
2023-10-28build-system/go: Use gccgo when go isn't supported.Efraim Flashner
* guix/build-system/go.scm (default-gccgo): New variable. (lower): Only use default-go when it is supported. Change-Id: I30564d97703344df582accaf741f4fcd159b6be1
2023-10-28environment: Fix typo in error messages.Ludovic Courtès
* guix/scripts/environment.scm (guix-environment*): Fix typo in error messages. Change-Id: I0b8669cb43267d0456a70f3b157514a6bcc725e8
2023-10-28environment: Parameterize ‘%graft?’ early on.Ludovic Courtès
Previously, ‘%graft?’ would be parameterized after ‘package-derivation’ had been called for ‘%guile-for-build’, which is too late. * guix/scripts/environment.scm (guix-environment*)[with-store/maybe]: Parameterize ‘%graft?’. Remove ‘%graft?’ parameterization from body. Change-Id: I65ef4a8c5f27e19a49196005871e5f7057fabaec
2023-10-28profiles: Hooks honor the #:system parameter of ‘profile-derivation’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/65225>. * guix/profiles.scm (info-dir-file, package-cache-file) (info-dir-file, ghc-package-cache-file, ca-certificate-bundle) (emacs-subdirs, gdk-pixbuf-loaders-cache-file, glib-schemas) (gtk-icon-themes, gtk-im-modules, linux-module-database) (xdg-desktop-database, xdg-mime-database, fonts-dir-file) (manual-database, manual-database/optional): Add optional #:system parameter and pass it to ‘gexp->derivation’. (profile-derivation): Pass HOOK a second parameter, SYSTEM. * gnu/bootloader.scm (efi-bootloader-profile)[efi-bootloader-profile-hook]: Add optional #:system parameter and pass it to ‘gexp->derivation’. * guix/channels.scm (package-cache-file): Likewise. * tests/profiles.scm ("profile-derivation, #:system, and hooks"): New test. Reported-by: Tobias Geerinckx-Rice <me@tobias.gr>
2023-10-28packages: Add ‘system’ parameter for ‘set-guile-for-build’.Ludovic Courtès
* guix/packages.scm (set-guile-for-build): Add ‘system’ parameter.
2023-10-28environment: Honor ‘-s’ for guile-for-build.Ludovic Courtès
Partly fixes <https://issues.guix.gnu.org/65225>. * guix/scripts/environment.scm (guix-environment*): Pass SYSTEM to ‘package-derivation’ when defining ‘%guile-for-build’. Reported-by: Simon Tournier <zimon.toutoune@gmail.com> Change-Id: I9d883f1e61fac72754fdc9dee9b7c8a3dea32add
2023-10-28grafts: Fix corner case involving multiple-output derivations.Ludovic Courtès
Fixes a bug that would occur with references to two outputs of the same derivation, with one of them referring to the other one. For example, the references of libreoffice include both mariadb:dev and mariadb:lib; additionally, mariadb:dev refers to mariadb:lib. In this case, the glibc graft would not be applied on one of the mariadb paths, and both the grafted and ungrafted glibc would end up in the closure of libreoffice. Fixes <https://issues.guix.gnu.org/66662>. * guix/grafts.scm (non-self-references): Simplify and include references to outputs of DRV other than OUTPUTS. (reference-origins): Simplify and possibly return outputs of DRV itself. (cumulative-grafts)[graft-origin?]: Add OUTPUT parameter and honor it. [dependency-grafts]: Adjust accordingly. * tests/grafts.scm ("graft-derivation, multiple outputs need to be replaced"): New test. Change-Id: Iac2005024ab7049037537b3af55298696ec90e3c
2023-10-26utils: Add 'strip-for-target'.Zheng Junjie
* guix/utils.scm (strip-for-target): New procedure. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-23syscalls: Consistently use existing linux? definition.Sören Tempel
Instead of duplicating this existing logic across the source file. This will make it easier to add additional linux targets (e.g. linux-musl) in the future. * guix/build/syscalls.scm (readdir*, write-socket-address!) (read-socket-address): Use linux? constant. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I833c1d1630dcb8319584de1ea918cb22696f0058
2023-10-23syscalls: Add support for musl libc.Sören Tempel
This commit allows using Guix on a foreign distro which uses musl libc, for example, Alpine Linux. Usage of musl libc is detected via a new musl-libc? variable using the Guile %host-type. Using the new musl-libc? variable, we can now implement musl-specific quirks. The two compatibility problems I encountered in this regard are that musl dose not export a readdir64 and statfs64 symbol. On musl, these two functions are implemented as CPP macros that expand to readdir/statfs. To workaround that, a case-distinction was added. The existing linux? variable has been modified to return true if the %host-system contains "linux-" in order to ensure it is true for both linux-gnu as well as linux-musl host systems. The patch has been tested on Alpine Linux and is already used for the downstream Guix package shipped in Alpine Linux's package repository. * guix/build/syscalls.scm (musl-libc?): New variable. (linux?): Truth value on any linux system. (statfs, readdir-procedure): Support musl libc. Signed-off-by: Sören Tempel <soeren@soeren-tempel.net> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: Icc4101a062381240f977f4550344bde696513c52
2023-10-23build-system/dub: Remove dependency on (guix build syscalls).Ludovic Courtès
The (guix build syscalls) module was unused. * guix/build-system/dub.scm (%dub-build-system-modules): Remove (guix build syscalls).
2023-10-23build-system/android-ndk: Remove dependency on (guix build syscalls).Ludovic Courtès
The (guix build syscalls) module was unused. * guix/build-system/android-ndk.scm (%android-ndk-build-system-modules): Remove (guix build syscalls).
2023-10-23build-system/ant: Remove dependency on (guix build syscalls).Ludovic Courtès
The module has been unused since a6343af22161b21ddbc4143a2b6a60d1ee860eb0. * guix/build-system/ant.scm (%ant-build-system-modules): Remove (guix build syscalls).
2023-10-22guix: import: Don't import yanked rust crates.Efraim Flashner
* guix/import/crate.scm (<crate-version>): Add yanked? field. (crate->guix-package)[find-crate-version]: Remove versions which have been yanked. * tests/crate.scm: Adjust tests for new yanked? field.
2023-10-21Merge remote-tracking branch 'origin/rust-team'Efraim Flashner
2023-10-21build-system: Add zig-build-system.Ekaitz Zarraga
* guix/build-system/zig.scm: New file. * guix/build/zig-build-system.scm: New file. * Makefile.am: Add them. * doc/guix.texi: Document it. * etc/snippets/yas/scheme-mode/guix-package (build-system): Add zig-build-system. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-18Revert "build: cargo-build-system: Disable tests by default."Efraim Flashner
This reverts commit 37667443074a6de29f7665868f102111d62f0af9. This change needs more discussion.
2023-10-18build: cargo-build-system: Find more pregenerated files.Efraim Flashner
* guix/build/cargo-build-system.scm (check-for-pregenerated-files): Also search for MacOS dynamic libraries.
2023-10-18build: cargo-build-system: Disable tests by default.Efraim Flashner
* guix/build-system/cargo.scm (cargo-build): Disable tests by default. * gnu/packages/admin.scm (greetd, wlgreet, du-dust), * gnu/packages/bioinformatics.scm (circtools, python-gseapy), * gnu/packages/crypto.scm (rust-minisign, b3sum), * gnu/packages/gnome.scm (librsvg), * gnu/packages/python-crypto.scm (python-blake3, python-cryptography-rust), * gnu/packages/python-xyz.scm (python-orjson), * gnu/packages/rust-apps.scm (agate, alfis, bat, diffr, drill, dutree, exa, fd, hexyl, hyperfine, i3status-rust, just, maturin, ripgrep, rot8, rust-swc, rust-cargo-edit, git-interactive-rebase-tool, rust-cbindgen, rust-cbindgen-0.24, rust-cbindgen-0.19, sniffglue, tectonic, treefmt, hex, tokei, vivid, watchexec, rbw, rust-analyzer, rust-cargo-c, rtss, skim, skim-0.7, svd2rust, swayhide, tealdeer, git-absorb, zoxide, htmlq), * gnu/packages/sequoia.scm (sequoia-sqv), * gnu/packages/syndication.scm (newsboat), * gnu/packages/terminals.scm (alacritty), * gnu/packages/text-editors.scm (kak-lsp, parinfer-rust), * gnu/packages/tree-sitter.scm (tree-sitter-cli), * gnu/packages/video.scm (rav1e), * gnu/packages/web.scm (monolith, castor) [arguments]: Enable tests.
2023-10-18build: cargo-build-system: Strip enough prefix in package.Efraim Flashner
* guix/build/cargo-build-system.scm (package): When using the source as the packaged crate also strip the 'rust-' prefix.
2023-10-18build: cargo-build-system: Reset timestamps in crates.Efraim Flashner
This fixes reproducibility in rust crates from the package phase, see <https://issues.guix.gnu.org/50015>. * guix/build/cargo-build-system.scm (package): After running 'cargo package' on the source unpack the tarball, reset the timestamps and repack it.
2023-10-18build: cargo-build-system: Check for pregenerated files.Efraim Flashner
* guix/build/cargo-build-system.scm (check-for-pregenerated-files): New procedure. (%standard-phases): Add 'check-for-pregenerated-files phase between 'unpack and 'unpack-rust-crates.
2023-10-17guix: import: opam: Handle list of licenses.Josselin Poiret
Fixes <https://issues.guix.gnu.org/issue/66461>. Reported by Simon Tournier <zimon.toutoune@gmail.com>. * guix/import/opam.scm (opam->guix-package): Handle lists of licenses. Signed-off-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-10-17scripts: weather: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/weather.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: upgrade: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/upgrade.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: time-machine: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/time-machine.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: substitute: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/substitute.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: system: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/system.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: style: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/style.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: size: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/size.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: show: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/show.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: shell: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/shell.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: search: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/search.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: repl: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/repl.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: remove: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/remove.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: refresh: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/refresh.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: pull: Handle EPIPE errors when displaying help.Simon Tournier
Reported by Mathieu Othacehe <othacehe@gnu.org>. * guix/scripts/pull.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: publish: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/publish.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: processes: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/processes.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: package: Handle EPIPE errors when displaying help.Simon Tournier
Reported by Mathieu Othacehe <othacehe@gnu.org>. * guix/scripts/package.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17scripts: pack: Handle EPIPE errors when displaying help.Simon Tournier
* guix/scripts/pack.scm (%options): Handle EPIPE errors when displaying help.