Age | Commit message (Expand) | Author |
2023-11-26 | locate: Gracefully handle busy-database error conditions....* guix/scripts/locate.scm (SQLITE_BUSY): New variable.
(call-with-database): Catch 'sqlite-error and call ‘leave’ upon
SQLITE_BUSY.
Change-Id: Iebe76c75d45e70317bd18d2c176dcdeaf9d6964c
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Maciej Kalandyk |
2023-11-26 | build-system/vim: Add missing keywords....* guix/build-system/vim.scm (vim-build): Add missing build-system flags.
Change-Id: Ie0094bb0579987e8432750f883eb56bae8ccd845
| Efraim Flashner |
2023-11-25 | build-system/meson: Add #:substitutable? argument to build system....This implemented the same as in gnu-build-system. The gexp->derivation
calls did not need to be modified because they already
passed #:substitutable?, which did not cause an error due to the
procedure exported by the (guix store) module with the same name.
* guix/build-system/meson.scm (meson-build, meson-cross-build): Add
#:substitutable? argument
Change-Id: I2d56c8130f785a2d6af456ef9f9bfc1b10dc2a50
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Skyler Ferris |
2023-11-25 | build-system/guile: Add #:substitutable? argument to build system....This is implemented the same as in gnu-build-system.
* guix/build-system/guile.scm (guile-build, guile-cross-build): Add
#:substitutable? argument
Change-Id: I04babb81ff1f322833f7ff22cd7580c048b26102
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Skyler Ferris |
2023-11-25 | tests: Import (guix build syscalls) when (guix build store-copy) is used....Fixes a test failure introduced in
189525412e3d803f3f77e15ec4a62aaa57f65a2d.
* guix/progress.scm: Autoload (guix build syscalls).
* tests/gexp.scm ("gexp->derivation, store copy"): Add (guix build
syscalls) to the list of imported modules. Use ‘with-imported-modules’
rather than #:modules.
Change-Id: I8d3fe90f564ef4b1a340f34cee6c08a741f7b836
| Ludovic Courtès |
2023-11-25 | syscalls: Add fallback case for ‘terminal-string-width’....This makes ‘terminal-string-width’ synonymous with ‘string-length’ when
running one a statically-linked Guile, as is the case in some unit
tests, instead of throwing ENOSYS.
* guix/build/syscalls.scm (terminal-string-width): Use ‘dynamic-func’
and ‘pointer->procedure’ instead of ‘syscall->procedure’. Return
‘string-length’ when one of the ‘dynamic-func’ calls fails.
Change-Id: Icf55c9e7c34b46fac91b665fb4a2ecb02160f22e
| Ludovic Courtès |
2023-11-22 | shell: Disable caching for ‘guix shell -f guix.scm’....Fixes <https://issues.guix.gnu.org/64858>.
* guix/scripts/shell.scm (profile-cached-gc-root): Distinguish the two
‘load’ cases; return #f and #f for (load ad-hoc-package _).
Reported-by: Pierre-Henry Fröhring <phfrohring@deeplinks.com>.
Change-Id: I00282fbd41aeed09fb927690945cf65e1f9efe4d
| Ludovic Courtès |
2023-11-22 | shell: Correct cache key for ‘guix shell -f guix.scm’....Partially fixes <https://issues.guix.gnu.org/64858>.
Fixes a bug whereby ‘guix shell -f guix.scm’ would use the same cache
key as ‘guix shell’ in an empty directory (meaning: no packages
specified) and would ignore the mtime of ‘guix.scm’.
* guix/scripts/shell.scm (profile-cached-gc-root): In ‘load’ case,
recognize both the ‘package’ and ‘ad-hoc-package’ tags.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Ice6d0ac43e1dc6bb335a17963364c2cc6bcd076d
| Felix Lechner |
2023-11-22 | git: Shell out to ‘git gc’ when necessary....Fixes <https://issues.guix.gnu.org/65720>.
This fixes a bug whereby libgit2-managed checkouts would keep growing as
we fetch.
* guix/git.scm (packs-in-git-repository, maybe-run-git-gc): New
procedures.
(update-cached-checkout): Use it.
| Ludovic Courtès |
2023-11-22 | read-print: Properly indent ‘parameterize’....Fixes <https://issues.guix.gnu.org/65427>.
* guix/read-print.scm (%special-forms): Add ‘parameterize’.
* tests/read-print.scm: Add test.
Reported-by: Maxime Devos <maximedevos@telenet.be>
Change-Id: I922bffc527ade539cf2eb304acb25bc9c705a459
| Ludovic Courtès |
2023-11-22 | style: ‘guix style -f’ warns when passed zero arguments....* guix/scripts/style.scm (guix-style): When OPTS has ‘whole-file?’ set,
warn when FILES is empty.
Change-Id: I494f52ef5d070510d20006e6dd987a6805161bb4
| Ludovic Courtès |
2023-11-20 | build-system: clojure: Use the standard error regarding cross builds....Rather than raising an error in the build system.
* guix/build-system/clojure.scm (lower): Return #f for cross builds, rather
than calling error.
Change-Id: Id97c8f5140f55fe2c52ccb0db36fd993922c6a7e
| Christopher Baines |
2023-11-15 | build-system/guile: Add target-guile-scm+go procedure....The paths to .scm and .go files can be constructed given a guile version and a
base directory. However it is few lines of code that needs to be copy&pasted.
This new procedure returns both of them reducing the maintenance cost.
* guix/build/guile-build-system.scm (target-guile-scm+go): New procedure.
Change-Id: I58615f2cfe0ec1e58d3fbb47b738ed5dce1bb252
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Tomas Volf |
2023-11-15 | locate: Accept ‘--clear’ without additional arguments....Fixes a bug whereby ‘guix locate --clear’ would end with the “no files
to search for” error.
Fixes <https://issues.guix.gnu.org/66799>.
* guix/scripts/locate.scm (guix-locate): Do not emit “no files to search
for” error when 'clear? is set in OPTS.
* tests/guix-locate.sh: Test it.
Reported-by: Maciej Kalandyk <m.kalandyk@outlook.com>
Change-Id: Ib8fa125c18481d7f5408bd89df9503713527641d
| Ludovic Courtès |
2023-11-11 | guix: Properly compute progress bar width....* guix/progress.scm (progress-reporter/bar): Take font width into account to
compute progress bar width.
* guix/git.scm (show-progress): Take font width into account to compute
progress bar width.
Change-Id: I946e447c1ea7c6eb4ff805400280f39e8f1a7c02
| Julien Lepiller |
2023-11-11 | guix: syscalls: Add terminal-string-width....* guix/build/syscalls.scm (terminal-width): New procedure.
* tests/syscalls.scm: Add tests.
Change-Id: I6c2caa9fbaffb1e8f4b8933103399be970d5a8f3
| Julien Lepiller |
2023-11-11 | build: minetest-build-system: Match name more strictly....Some Minetest mods, such as the hitherto unpackaged minetest-ambience,
have trailing garbage space (e.g. carriage returns) in their name line,
that would otherwise end up as part of the mod's directory name.
* guix/build/minetest-build-system.scm (name-regexp): Only match
graphical characters in the name sub-match.
Change-Id: I95f4c201724991a10efba5c859bfef99779ea495
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Tristan Cottam |
2023-11-09 | guix: ant: Optionally build with java modules....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
| Julien Lepiller |
2023-11-08 | build-system: Add vim-build-system....* 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>
| Jonathan Scoresby |
2023-11-07 | git-download: Add support for Git Large File Storage (LFS)....* 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>
| Maxim Cournoyer |
2023-07-23 | download: Replace faulty kernel mirror URL with canonical upstream....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
| Leo Famulari |
2023-11-05 | time-machine: Warn when no command is given....* guix/scripts/time-machine.scm (guix-time-machine): Emit a warning when
COMMAND-LINE is false.
Change-Id: I26e6b608915ecaf6d9372f9b03dc5ebd1b4c68f9
| Ludovic Courtès |
2023-11-05 | time-machine: Make target commit check cheaper....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
| Ludovic Courtès |
2023-11-05 | lint: Speed up the formatting linter....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>
| Christopher Baines |
2023-11-05 | scripts: edit: Fix relative file-name with 'load-path' option....* guix/scripts/edit.scm (search-path*): Return 'file' if exists when
'search-path' fails.
Change-Id: I891d63d0d28577a7d1732fc59435828ecc0a5c5a
| Simon Tournier |
2023-11-03 | guix: Upgrade to Bioconductor 3.18....* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to
3.18.
* guix/import/cran.scm (%bioconductor-version): Same.
Change-Id: Ic3fc2e6ab6b5f6f6e55662f81baee67391158c5b
| Ricardo Wurmus |
2023-10-28 | build-system/go: Use gccgo when go isn't supported....* guix/build-system/go.scm (default-gccgo): New variable.
(lower): Only use default-go when it is supported.
Change-Id: I30564d97703344df582accaf741f4fcd159b6be1
| Efraim Flashner |
2023-10-28 | environment: Fix typo in error messages....* guix/scripts/environment.scm (guix-environment*): Fix typo in error
messages.
Change-Id: I0b8669cb43267d0456a70f3b157514a6bcc725e8
| Ludovic Courtès |
2023-10-28 | environment: Parameterize ‘%graft?’ early on....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
| Ludovic Courtès |
2023-10-28 | profiles: Hooks honor the #:system parameter of ‘profile-derivation’....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>
| Ludovic Courtès |
2023-10-28 | packages: Add ‘system’ parameter for ‘set-guile-for-build’....* guix/packages.scm (set-guile-for-build): Add ‘system’ parameter.
| Ludovic Courtès |
2023-10-28 | environment: Honor ‘-s’ for guile-for-build....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
| Ludovic Courtès |
2023-10-28 | grafts: Fix corner case involving multiple-output derivations....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
| Ludovic Courtès |
2023-10-26 | utils: Add 'strip-for-target'....* guix/utils.scm (strip-for-target): New procedure.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| Zheng Junjie |
2023-10-23 | syscalls: Consistently use existing linux? definition....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
| Sören Tempel |
2023-10-23 | syscalls: Add support for musl libc....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
| Sören Tempel |
2023-10-23 | build-system/dub: Remove dependency on (guix build syscalls)....The (guix build syscalls) module was unused.
* guix/build-system/dub.scm (%dub-build-system-modules): Remove (guix
build syscalls).
| Ludovic Courtès |
2023-10-23 | build-system/android-ndk: Remove dependency on (guix build syscalls)....The (guix build syscalls) module was unused.
* guix/build-system/android-ndk.scm (%android-ndk-build-system-modules):
Remove (guix build syscalls).
| Ludovic Courtès |
2023-10-23 | build-system/ant: Remove dependency on (guix build syscalls)....The module has been unused since
a6343af22161b21ddbc4143a2b6a60d1ee860eb0.
* guix/build-system/ant.scm (%ant-build-system-modules): Remove (guix
build syscalls).
| Ludovic Courtès |
2023-10-22 | guix: import: Don't import yanked rust crates....* 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.
| Efraim Flashner |
2023-10-21 | Merge remote-tracking branch 'origin/rust-team' | Efraim Flashner |
2023-10-21 | build-system: Add zig-build-system....* 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>
| Ekaitz Zarraga |
2023-10-18 | Revert "build: cargo-build-system: Disable tests by default."...This reverts commit 37667443074a6de29f7665868f102111d62f0af9.
This change needs more discussion.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Find more pregenerated files....* guix/build/cargo-build-system.scm (check-for-pregenerated-files): Also
search for MacOS dynamic libraries.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Disable tests by default....* 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.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Strip enough prefix in package....* guix/build/cargo-build-system.scm (package): When using the source as
the packaged crate also strip the 'rust-' prefix.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Reset timestamps in crates....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.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Check for pregenerated files....* 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.
| Efraim Flashner |
2023-10-17 | guix: import: opam: Handle list of licenses....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>
| Josselin Poiret |
2023-10-17 | scripts: weather: Handle EPIPE errors when displaying help....* guix/scripts/weather.scm (%options): Handle EPIPE errors when displaying
help.
| Simon Tournier |