summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2023-12-11guix: Add avr platform....* Makefile.am (MODULES): Add avr platform module. * doc/guix.texi: Add documentation for avr platform. * guix/platforms/avr.scm (avr): New variable. Change-Id: I0f425eac61a71390b618e093f5a034ad4205a6f4 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Jean-Pierre De Jesus DIAZ
2023-12-11guix: gnu-build-system: Handle missing libc....* guix/build-system/gnu.scm (standard-cross-packages): Handle the case when `cross-libc` returns #f. Change-Id: I85ee5456f10ff141d521a5f2d91267cd612c5616 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Jean-Pierre De Jesus DIAZ
2023-12-06shell: ‘--development’ honors ‘--system’....Fixes a bug whereby ‘package->development-manifest’ would run with the wrong system in mind, leading to errors like this: $ guix shell -s i586-gnu -D shepherd --no-grafts guix shell: error: package linux-libre-headers@5.15.49 does not support i586-gnu * guix/scripts/environment.scm (options/resolve-packages): Define ‘system’ and pass it to ‘package->development-manifest’.’ * tests/guix-shell.sh: Test it. Change-Id: I95c471c1918913ab80dec7d3ca64fe38583cce78 Ludovic Courtès
2023-12-04monad-repl: Add REPL commands to inspect package arguments....* guix/monad-repl.scm (keyword-argument-value, package-argument-command): New procedures. (phases, configure-flags, make-flags): New REPL commands. * doc/guix.texi (package Reference): Link to “Using Guix Interactively”. (Defining Package Variants): Add “Tips” quotation. (Build Phases): Add “Tip” quotation. (Using Guix Interactively): Document the new REPL commands. Change-Id: I7049c1d8aa9241e07d7c921aa396e578a1b4ef16 Ludovic Courtès
2023-12-04substitute: Do not exit when failing to find a nar....Fixes <https://issues.guix.gnu.org/67575>. * guix/scripts/substitute.scm (process-substitution/fallback): Use ‘report-error’ instead of ‘leave’. Write status line to PORT. * tests/substitute.scm ("substitute, narinfo is available but nar is missing"): Adjust accordingly. Change-Id: Ic7297dbd563c007111ec2167c8d52505a07d4822 Ludovic Courtès
2023-12-04Revert "build/go: Don't use set!"...This causes too many rebuilds. This reverts commit 0a4b6fd51a2a4f87cbd85019db07984fd37096d7. Efraim Flashner
2023-12-04build/go: Don't use set!...This causes build failures on powerpc-linux. * guix/build/go-build-system.scm (unpack): When the unpack-path is unset use the import-path but don't redefine the unpack-path. Change-Id: I2b5a36eb738abb14307941d388038139dbaf2bdf Efraim Flashner
2023-12-03packages: Honor target system for the inputs to ‘patch-and-repack’....* guix/packages.scm (%standard-patch-inputs): Add ‘system’ parameter. Parameterize ‘%current-system’. (patch-and-repack): Pass SYSTEM to ‘%standard-patch-inputs’. Change-Id: Ic8ad93303332fd1eefba0a93a314f99db782eda6 Ludovic Courtès
2023-12-03grafts: Use the right locale package....This is a followup to b0715d7cd2a74bc231751f8afc9dffb2047501ac, fixing builds of grafts on i586-gnu. * guix/grafts.scm (graft-derivation/shallow)[glibc-locales]: Choose symbol as a function of ‘target-hurd?’. Change-Id: I05e50c0ed74a64986a0cea9c6302d1b5592b898d Ludovic Courtès
2023-12-03guix: import: Fix parsing Cabal files that import many stanzas...* guix/import/cabal.scm (eval-cabal)[eval]: Split imports to a normalized list before mapping over it. * tests/hackage.scm: Test it. Change-Id: I39ece019251b6a23a937c8562d2d4a545a6bc7df Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Saku Laesvuori
2023-12-03guix: import: Parse cabal layout blocks correctly...Cabal consideres lines to be part of a layout block if they are indented at least one space more than the field line the block belongs to. Previously Guix considered lines to be a part of the block if they were indented at least as much as the first line in it. This also makes a workaround that enabled if statements to have multiple elses redundant and removes it. Fixes: https://issues.guix.gnu.org/35743 * guix/import/cabal.scm (current-indentation*): Renamed from current-indentation. (previous-indentation, current-indentation): New variables. (make-cabal-parser): Remove outdated comment. [open]: Use previous-indentation + 1 instead of current-indentation. [elif-else]: Split to elif and else to allow only one ELSE in an if statement. (read-cabal)[parameterize]: Use current-indentation* and previous-indentation. * tests/hackage.scm (hackage->guix-package test mixed layout): Expect to pass. Change-Id: I3a1495b1588a022fabbfe8dad9f3231e578af4f3 Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Saku Laesvuori
2023-12-03guix: import: stackage: Fix crash on recursive import...* guix/import/stackage.scm (lts-package-version): Call stackage-package-version only when the package is found. Change-Id: Ic8d7c1b7a42a9c1a6cbba567e148706507a53ee3 Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Saku Laesvuori
2023-12-03guix: import: hackage: Fix crash on recursive import...Fixes: https://issues.guix.gnu.org/64734 * guix/import/hackage.scm (hackage-module->sexp): Return package names instead of <upstream-input> records. Change-Id: Id428a8b903b4b59d44205ca366324a0a69a4e05b Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Saku Laesvuori
2023-12-03transformations: Add support for zig....* guix/transformations.scm (tuning-compiler): Add support for zig. Change-Id: I40bd28071c97c0dd0a907c704072b52b26d2de28 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Ekaitz Zarraga
2023-12-02gnu: Use ‘libc-utf8-locales-for-target’....* guix/packages.scm (%standard-patch-inputs): Use ‘libc-utf8-locales-for-target’ instead of ‘glibc-utf8-locales’. * guix/self.scm (%packages): Likewise. * gnu/home/services/ssh.scm (file-join): Likewise * gnu/installer.scm (build-compiled-file): Likewise. * gnu/packages/chromium.scm (ungoogled-chromium/wayland): Likewise. * gnu/packages/gnome.scm (libgweather4, tracker): Likewise. * gnu/packages/javascript.scm (js-mathjax): Likewise. * gnu/packages/package-management.scm (guix, flatpak): Likewise. * gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader): Likewise. * gnu/packages/suckless.scm (svkbd): Likewise. * gnu/services.scm (cleanup-gexp): Likewise. * gnu/services/base.scm (guix-publish-shepherd-service): Likewise. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services) (guix-build-coordinator-agent-shepherd-services): Likewise. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services): (guix-data-service-shepherd-services) (nar-herder-shepherd-services) (bffe-shepherd-services): Likewise. * gnu/services/web.scm (anonip-shepherd-service) (mumi-shepherd-services): Likewise. * gnu/system/image.scm (system-disk-image, system-iso9660-image) (system-docker-image, system-tarball-image): Likewise. * gnu/system/install.scm (%installation-services): Likewise. * guix/profiles.scm (info-dir-file): Likewise. (ca-certificate-bundle, profile-derivation): Likewise. * guix/scripts/pack.scm (store-database, set-utf8-locale): Likewise. * tests/pack.scm: Likewise. * tests/profiles.scm ("profile-derivation, cross-compilation"): Likewise. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Co-authored-by: Christopher Baines <mail@cbaines.net> Change-Id: I24239f427bcc930c29d2ba5d00dc615960a6c374 Janneke Nieuwenhuizen
2023-11-26locate: 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-26build-system/vim: Add missing keywords....* guix/build-system/vim.scm (vim-build): Add missing build-system flags. Change-Id: Ie0094bb0579987e8432750f883eb56bae8ccd845 Efraim Flashner
2023-11-25build-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-25build-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-25tests: 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-25syscalls: 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-22shell: 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-22shell: 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-22git: 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-22read-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-22style: ‘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-20build-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-15build-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-15locate: 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-11guix: 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-11guix: 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-11build: 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-09guix: 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-08build-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-07git-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-23download: 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-05time-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-05time-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-05lint: 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-05scripts: 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-03guix: 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-28build-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-28environment: Fix typo in error messages....* guix/scripts/environment.scm (guix-environment*): Fix typo in error messages. Change-Id: I0b8669cb43267d0456a70f3b157514a6bcc725e8 Ludovic Courtès
2023-10-28environment: 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-28profiles: 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-28packages: Add ‘system’ parameter for ‘set-guile-for-build’....* guix/packages.scm (set-guile-for-build): Add ‘system’ parameter. Ludovic Courtès
2023-10-28environment: 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-28grafts: 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-26utils: Add 'strip-for-target'....* guix/utils.scm (strip-for-target): New procedure. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Zheng Junjie
2023-10-23syscalls: 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