summaryrefslogtreecommitdiff
path: root/guix/scripts
AgeCommit message (Collapse)Author
2025-03-05refresh: Set default value of `key-download' option to 'auto.Maxim Cournoyer
This is a follow-up to commit 79a46d6537 ("gnupg: Automatically fallback to 'always policy when non-interactive."), which introduced the following problem: guix refresh --update libvirt -> guix refresh: error: invalid key-download policy: #f * guix/scripts/refresh.scm (%default-options): Set default key-download option value to 'auto. (%options): Accept auto as a valid value from the command line. Change-Id: I45ceee8e07d1a3a3c377e12ed017813f92289565
2025-03-05services: ‘shepherd-service-upgrade’ handles canonical name changes.Ludovic Courtès
Partly fixes <https://issues.guix.gnu.org/76315>. Fixes a bug whereby a service whose canonical name has changed would not be restarted—e.g., if '(syslogd) has a replacement providing '(system-log syslogd). * gnu/services/shepherd.scm (shepherd-service-upgrade)[running?]: Remove. [to-restart]: Change to a subset of LIVE. Look up all the names of each element of TARGET. * guix/scripts/system/reconfigure.scm (upgrade-shepherd-services): TO-RESTART is now a list of <live-service>; adjust accordingly. * tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new"): ("shepherd-service-upgrade: service depended on is not unloaded"): ("shepherd-service-upgrade: obsolete services that depend on each other"): ("shepherd-service-upgrade: transient service"): Adjust accordingly. ("shepherd-service-upgrade: service has new canonical name"): New test. Reported-by: Tomas Volf <~@wolfsden.cz> Change-Id: I7cec495b4e824da5fad5518f039607cf92f935d9
2025-03-03publish: Call (current-processor-count) later.Christopher Baines
So that this is evaluated when the main part of the script runs. I'm looking at this to allow using setaffinity in the publish tests. * guix/scripts/publish.scm (%default-options): Remove workers default. (guix-publish): Move the default to here. Change-Id: I83cd0d048f2641291b5bd8a932b479b23dd92d29
2025-03-02guix build: Honor '--system' with '--manifest'.Efraim Flashner
* guix/scripts/build.scm (options->things-to-build): Wrap the manifest build option with the result of the '--system' option. Change-Id: I1c3ff93af56bb659ddc00e1872c769cfc5e7a0d5
2025-03-01deploy: Add --roll-back option.Arun Isaac
* guix/scripts/deploy.scm (guix-deploy): Add the --roll-back option. (show-what-to-deploy): Add #:roll-back? argument. (roll-back-machine*): New function. (show-help): Document the --roll-back option. * doc/guix.texi (Invoking guix deploy): Document the --roll-back option. Change-Id: Ic5084f287aefb2d1d28380ca4ba1c6971cb913e7
2025-02-28refresh: Add support for partial target versions.Maxim Cournoyer
* guix/import/utils.scm (find-version): New procedure. * guix/scripts/refresh.scm (<update-spec>) [partial?]: New field. (update-spec-partial?): New accessor. (update-spec): Add a PARTIAL? optional argument. (update-specification->update-spec) <update-spec>: Call with its new PARTIAL? optional argument when FALLBACK-VERSION is provided, i.e. when '--target-version' was used. (update-package): Remove the PACKAGE and VERSION positional arguments, and replace them with UPDATE-SPEC. Update doc. Call `package-update' with its new #:partial-version? argument. (check-for-package-update) <package-latest-release>: Pass the new #:partial-version? argument to it. (guix-refresh) <update-package>: Adjust call accordingly. (show-help): Udate doc. * guix/upstream.scm (package-latest-release): Add #:partial-version? argument, and apply it to the importer call. (package-update): Add #:partial-version?> argument. Update doc. Pass it to the `package-latest-release' call. * guix/gnu-maintenance.scm (rewrite-url): Add #:partial-version? argument. Update doc. Crawl URL for newer compatible versions when provided. (import-html-release): Add #:partial-version? argument, and pass it to the `rewrite-url' call. Use `find-version' to find the best version. (import-release, import-ftp-release, import-gnu-release) (import-release*): Add #:partial-version? argument and honor it. (import-html-updatable-release): Add #:partial-version? argument, and pass it to the `import-html-release' call. * guix/import/gnome.scm (import-gnome-release) <#:partial-version?>: Add new argument and honor it. * guix/import/texlive.scm (latest-texlive-tag): Rename to... (texlive-tags): ... this, and have it return all tags. (texlive->guix-package): Adjust accordingly. (latest-release): Add a #:partial-version? argument. Update doc. * guix/import/stackage.scm (latest-lts-release): New #:partial-version? argument. * guix/import/pypi.scm (import-release): New #:partial-version? argument; pass it to `pypi-package->upstream-source'. * guix/import/opam.scm (latest-release): New #:partial-version? argument. * guix/import/minetest.scm (latest-minetest-release): New #:partial-version? argument. (pypi-package->upstream-source): New #:partial-version? argument. Update doc. * guix/import/launchpad.scm (latest-released-version): Rename to... (release-versions): ... this, making it return all versions. (import-release) <#:partial-version?>: New argument. * guix/import/kde.scm (import-kde-release) <#:partial-version?>: New argument. Update doc. Refactor to honor argument. * guix/import/hexpm.scm (lookup-hexpm): Update doc. (hexpm-latest-release): Rename to... (hexpm-releases): ... this; return all release strings. (hexpm->guix-package): Adjust accordingly. (import-release): Add and honor a #:partial-version? argument. Update doc. * guix/import/hackage.scm (import-release): New #:partial-version? argument. * guix/import/cpan.scm (latest-release): New #:partial-version? argument. * guix/import/crate.scm (max-crate-version-of-semver): Improve doc. (import-release): Add a #:partial-version? argument and honor it. * guix/import/egg.scm (find-latest-version): Rename to... (get-versions): ... this, returning all versions. (egg-metadata): Adjust accordingly. (egg->guix-package): Likewise. (import-release): Add a new #:partial-version? argument and honor it. * guix/import/elpa.scm (latest-release): New #:partial-version? argument. * guix/import/gem.scm (get-versions): New procedure. (import-release): Add a new #:partial-version? argument and honor it. * guix/import/git.scm (version-mapping): Update doc; streamline a bit. (latest-tag): Rename to... (get-tags): ... this, dropping the #:version keyword and returning the complete tags alist. Update doc. (latest-git-tag-version): Rename to... (get-package-tags): ... this, returning the complete tags alist of the package. Update doc. (import-git-release): Add a new #:partial-version? argument and honor it. Update doc. * guix/import/github.scm (latest-released-version): Rename to... (get-package-tags): ... this, returning all tags. Update doc. (import-release): Add a new #:partial-version? argument and honor it. * guix/import/cran.scm (latest-cran-release) (latest-bioconductor-release): Add #:partial-version? argument. * guix/import/composer.scm (latest-version): Delete procedure. (composer-fetch): Add #:partial-version? keyword and honor it. Update doc. (import-release): Likewise. * guix/import/test.scm (import-release): Add #:partial-version? argument. * tests/guix-refresh.sh: Add test. * tests/gem.scm (test-foo-versions-json): New variable. (package-latest-release): Mock new URL. * tests/import-git.scm (latest-git-tag-version): New procedure. * tests/gnu-maintenance.scm (libuv-dist-html) (libuv-dist-1.46.0-html, libuv-dist-1.44.2-html) (libuv-html-data): New variables. (mock-http-fetch/cached): New procedure. ("rewrite-url, without to-version"): Rewrite using the above. ("rewrite-url, partial to-version"): New test. * doc/guix.texi <"Invoking guix refresh">: Update doc. Series-to: 75871@debbugs.gnu.org Change-Id: I092a58b57ac42e54a2fa55e7761e8c6993af8ad4
2025-02-28gnupg: Automatically fallback to 'always policy when non-interactive.Maxim Cournoyer
Previously to this change, the 'guix refresh' download policy (--key-download)would default to 'interactive', which would throw a backtrace when guix was invoked with its stdin not connected to a peusdo terminal (tty). This change makes the new default value 'auto' use interactive only in an interactive environment, with 'always' used as fallback. * doc/guix.texi (Invoking guix refresh): Adjust doc. * etc/completion/fish/guix.fish: Adjust accordingly. * etc/completion/zsh/_guix (_guix_list_installed_packages): Likewise. * guix/gnupg.scm (gnupg-verify*): Change default #:key-download argument value to 'auto. Update doc. Validate argument. Raise an error in case read-line returns #<eof>. * guix/import/gnu.scm (gnu-package->sexp): <#:key-download>: Change default value to 'auto. * guix/import/gnu.scm (gnu->guix-package): <#:key-download>: Likewise. * guix/scripts/import/gnu.scm (%options): Add "auto" to accepted --key-download values. (%default-options): Set default key-download option to the 'auto value. (show-help): Update doc. * guix/scripts/refresh.scm (show-help): Update doc. (update-package) <#:key-download>: Change default value to 'auto. Update doc. * guix/upstream.scm (download-tarball): <#:key-download>: Likewise. (package-update): Likewise. Change-Id: Id1ca8fd6d453ca4bc5b372534445e3beab9133a8 Fixes: https://issues.guix.gnu.org/76112 Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-02-24time-machine: Remove unused binding from #:select.Ludovic Courtès
* guix/scripts/time-machine.scm: Remove unused binding from #:select. Change-Id: I2e6ff09f02659a8967d10f98ad30d638808dbf1c
2025-02-20guix: Fix typos.Vagrant Cascadian
* guix/build/kconfig.scm (modify-deconfig): Fix spelling of "abbreviation". * guix/docker.scm (build-docker-image): Fix spelling of "split". * guix/scripts/pack.scm (docker-image): Fix spelling of "split".
2025-02-19guix: Fix some misspellings.Efraim Flashner
Change-Id: Ia036217dadc1624c5f0d59fd44f646d46315c1f3
2025-02-09scripts: style: Only sort packages with string literal name.Herman Rimm
* guix/scripts/style.scm (order-packages): Only match string literals. Change-Id: I48a5976930501c20415b5413966b5294958bc23b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09scripts: style: Sort more kinds of package definitions.Herman Rimm
* guix/scripts/style.scm (order-packages): Match comments before package S-exp. and its fields. Match in let. Match package/inherit. * tests/guix-style.sh: Add pkg-baz variable and package/inherit to test. Change-Id: I48a5976930501c20415b5413966b5294958bc23b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09scripts: style: Refactor order-packages.Herman Rimm
* guix/scripts/style.scm (order-packages): Combine package-name and package-version procedures into package-fields. (format-whole-file): Do not sort copyright headers or module definition. Change-Id: I5507bf8ed221f7017f972f0e0e64d149bea4854b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09import: crate: Comment out missing dependencies.Herman Rimm
* guix/import/crate.scm (package-names->package-inputs): Emit comments. (make-crate-sexp): Make input into comment if missing. (crate->guix-package): Take #:mark-missing? argument. [dependency-name+missing+version+yanked]: Mark as missing. Rename from dependency-name+version+yanked. [sort-map-dependencies]: Adjust. [remove-missing+yanked-info]: Remove missing info. Rename from remove-yanked-info. * guix/scripts/import/crate.scm (show-help): Explain --mark-missing. (%options): Add mark-missing option. (guix-import-crate): Pass mark-missing option as #:mark-missing?. * doc/guix.texi (Invoking guix import): Document --mark-missing. * tests/crate.scm ("crate->guix-package-marks-missing-packages"): Add test. Change-Id: I065d394e1c04fdc332b8f7f8b9fcbd87c14c6512 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-09scripts: import: crate: show-help: Reformat.Herman Rimm
* guix/scripts/import/crate.scm (show-help): Reformat and reword --allow-yanked message. Change-Id: I43a50b201be86cd71f6ab51a7161e4009d4918bf Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-24pack: Support localstatedir in AppImage format.Noé Lopez
* guix/scripts/pack.scm (self-contained-appimage): Support localstatedir option. Change-Id: I296b3d3e442aa90f36de62a9b23aba4a2c3de9a0 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-16home: Define ‘%base-home-services’.Ludovic Courtès
* gnu/home.scm (%base-home-services): New variable. (<home-environment>)[services]: Change default to ‘%base-home-services’. * guix/scripts/home/import.scm (manifest+configuration-files->code): Use ‘%base-home-services’ by default. * tests/home-import.scm (match-home-environment-no-services) (match-home-environment-transformations) (match-home-environment-no-services-nor-packages) (match-home-environment-bash-service) (match-home-environment-bash-service-with-alias): Adjust accordingly. * doc/he-config-bare-bones.scm: Use ‘%base-home-services’. * doc/guix.texi (Declaring the Home Environment): Add index entry for ‘%base-home-services’. Change-Id: Id95ede62b97a976aad138bfc4b63fc0bdf37c7de
2025-01-07reconfigure: Make ‘load-system-for-kexec’ errors non-fatal.Ludovic Courtès
Partially fixes <https://issues.guix.gnu.org/75215>. * guix/scripts/system/reconfigure.scm (load-system-for-kexec): Catch exceptions in the gexp. Report them outside. Reported-by: Luis Guilherme Coelho <lgcoelho@disroot.org> Change-Id: Iebcdc92e29b8623a55967d58a4f353abab01631a
2025-01-07reconfigure: Do not pass KEXEC_FILE_DEBUG.Ludovic Courtès
This flag is unsupported in Linux 6.6 and causes ‘kexec_file_load’ to fail with EINVAL. Fixes <https://issues.guix.gnu.org/75211>. * guix/scripts/system/reconfigure.scm (kexec-loading-program): Remove KEXEC_FILE_DEBUG. * guix/build/syscalls.scm (KEXEC_FILE_DEBUG): Add comment. Suggested-by: nathan <nathan_mail@nborghese.com> Reported-by: Simen Endsjø <contact@simendsjo.me> Change-Id: Ia48be7f4cfa9c6352908e4bea6472cd648f866ed
2024-12-28reconfigure: Support loading the system for kexec reboot.Ludovic Courtès
This allows rebooting straight into the new system with ‘reboot -k’. * guix/scripts/system/reconfigure.scm (kexec-loading-program) (load-system-for-kexec): New procedures. * gnu/tests/reconfigure.scm (run-kexec-test): New procedure. (%test-upgrade-kexec): New variable. * guix/scripts/system.scm (perform-action): Add #:load-for-kexec?. Call ‘load-system-for-kexec’. (show-help, %options): Add ‘--no-kexec’. (%default-options): Add ‘load-for-kexec?’. (process-action): Honor it and pass it to ‘perform-action’. * gnu/machine/ssh.scm (deploy-managed-host): Add call to ‘load-system-for-kexec’. * doc/guix.texi (Invoking guix system): Document it. Change-Id: I86d11f1c348e4359bc9e73c86e5aebff60fe875c
2024-12-25time-machine: Add ‘--no-check-certificate’.Ludovic Courtès
This can be tested with: guix shell libfaketime -- faketime 2019-01-01 \ guix time-machine -q --no-check-certificate * guix/scripts/time-machine.scm (%options, show-help): Add ‘--no-check-certificate’. (%default-options): Add ‘verify-certificate?’ key. (guix-time-machine): Honor it. Change-Id: I25a29d03d4df78d1618c6a416ec85fd8e90fec6c
2024-12-25pull: Add ‘--no-check-certificate’.Ludovic Courtès
This can be tested with: guix shell libfaketime -- faketime 2019-01-01 \ guix pull -q --no-check-certificate -p /tmp/p * guix/scripts/pull.scm (%options, show-help): Add ‘--no-check-certificate’. (%default-options): Add ‘verify-certificate?’ key. (guix-pull): Honor it. * doc/guix.texi (Invoking guix pull): Document it. Change-Id: Ia9d7af1c64156b112e86027fb637e2e02dae6e3c
2024-12-25guix download: Honor ‘--no-check-certificate’ for ‘--git’.Ludovic Courtès
Until now ‘--no-check-certificate’ had no effect when combined with ‘--git’. This can be tested with: guix shell libfaketime -- faketime 2019-01-01 \ guix download --no-check-certificate --git \ https://git.savannah.gnu.org/git/shepherd.git * guix/scripts/download.scm (git-download-to-file): Add #:verify-certificate? and honor it. (git-download-to-store*): Likewise. (add-git-download-option): Likewise. (%options): Likewise. Change-Id: Ib3905398199d814a02319ed3328eb8a4ed219bd5
2024-12-23deploy: Add ‘--expression’.Richard Sent
* guix/scripts/deploy.scm (show-help): Add help. (%options): Add -e and --expression. (guix-deploy): Use expression and check for invalid flag combinations. Change-Id: I200c9ff0c9a8c686efff4a21cd33c10429f3c73e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-23weather: Reword the help message for the expression flag.Richard Sent
* guix/scripts/weather.scm (show-help): Reword help. Change-Id: I670dc0c8f89b81e2f7f8b5d7a9a05f74b3ac9cdd Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18environment: Suppress all output with --verbosity=0Brian Kubisiak
* guix/scripts/environment.scm (guix-environment*): Call 'with-status-verbosity' earlier. Fixes: <https://issues.guix.gnu.org/71298> Change-Id: I69c7dd1058b44d587312d957312a130a8703cfca Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18scripts/substitute: Refine 'updating substitutes' message.Maxim Cournoyer
* guix/scripts/substitute.scm (process-query): Attempt to precise the 'update substitutes' message. Suggested-by: Tobias Geerinckx-Rice <me@tobias.gr> Reported-by: Felix Lechner <felix.lechner@lease-up.com> Reviewed-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I7b3f93f32b73a6a6175a035a09ab51a6e74e384b
2024-12-16pack: Allow cross-compiling with '--relocatable'.Brian Kubisiak
* guix/scripts/pack.scm (c-compiler-compiler): Remove exception when cross-compiling and always build gexp->script for the host. [toolchain]: Use standard-cross-packages when cross-compiling. [search-paths]: Use package-search-paths instead of package-native-search-paths when cross-compiling. [run]: Use cc-for-target and strip-for-target. Change-Id: I5503e48b3394fdfee06999f8d1ad82f5f0d9af96 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-12guix build: Last argument of ‘dependents’ is optional.Ludovic Courtès
* guix/scripts/build.scm (dependents): Make ‘max-depth’ optional. Improve docstring. Change-Id: Ibeffcf15297ecba3d4000b3adb4e3bc7853f6957
2024-12-03system: Add "installer" sub-command.Janneke Nieuwenhuizen
* guix/scripts/system/installer.scm: New file. * Makefile.am (MODULES)[ENABLE_INSTALLER]: Register it. (MODULES_NOT_COMPILED)[!ENABLE_INSTALLER]: Likewise. * guix/scripts/system.scm (show-help): Add help for "installer" sub-command. (actions): Register "installer". (guix-system): Invoke `guix-system-installer' sub-command. * doc/guix.texi (Invoking guix system): Document it. * gnu/installer.scm (run-installer): Remove "./pre-inst env". Change-Id: I5a05b941c060682c17d45d871df3cf34e3f8643a
2024-12-02pack: Add ‘--file=FILE’ with the same meaning as for ‘guix build’.Arne Babenhauserheide
* guix/scripts/pack.scm (%options): add --file=FILE, but no shorthand (that’s already taken for format). * doc/guix.texi (Invoking guix pack): Document it. Change-Id: I87797fccdf218ead3b7f471a84034e8a8d566245 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-01etc: Add upgrade manifest.Ludovic Courtès
* guix/scripts/build.scm (dependents): Export. * etc/upgrade-manifest.scm: New file. * Makefile.am (EXTRA_DIST): Add it. Change-Id: I1b2a2ebd09e559c68da9f25772bf33caacb4c031
2024-12-01guix build: Validate that the file passed to ‘-m’ returns a manifest.Ludovic Courtès
* guix/scripts/build.scm (options->things-to-build)[ensure-manifest]: New procedure. Use it. Change-Id: If64c483d7079f441a296d5bd4e06e67f44cbb7bf
2024-12-01guix build: Add ‘--dependents’.Ludovic Courtès
* guix/scripts/build.scm (show-help, %options): Add ‘--dependents’. (dependents): New procedure. (options->things-to-build): Add ‘store’ parameter; honor ‘dependents’ option. [for-type]: Handle ‘dependents’ type. (options->derivations): Update call to ‘options->things-to-build’. * tests/guix-build.sh: Add test. * doc/guix.texi (Additional Build Options): Document ‘--dependents’. (Invoking guix refresh): Cross-reference it. * doc/contributing.texi (Submitting Patches): Mention it. Change-Id: I00b6d5831e1f1d35dc8b84a82605391d5a8f417c
2024-12-01packages: Factorize ‘all-packages’.Ludovic Courtès
* gnu/packages.scm (all-packages): New procedure. * etc/source-manifest.scm (all-packages): Remove. * guix/scripts/graph.scm (all-packages): Remove. * guix/scripts/refresh.scm (all-packages): Remove. * guix/scripts/weather.scm (all-packages): Remove. Change-Id: I6072952c4b877b541037ce86402cfb7744eeb0a0
2024-12-01guix build: Add ‘--development’ option.Ludovic Courtès
* guix/scripts/build.scm (show-help, %options): Add ‘-D’. (options->things-to-build): Change ‘append-map’ to a loop. Honor ‘-D’. * tests/guix-build.sh: Add test. * doc/guix.texi (Additional Build Options): Document it. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I99227aadfe861e43c001a4872292bd687b37f5d4
2024-11-23pack: Add support for AppImage pack format.Sebastian Dümcke
* guix/scripts/pack.scm (self-contained-appimage): New procedure. (%formats, show-formats): Add it. (guix-pack): Honor it. * doc/guix.texi: Document AppImage pack. * tests/pack.scm ("appimage", "appimage + localstatedir"): New tests. Co-authored-by: Noé Lopez <noelopez@free.fr> Change-Id: I33ebfec623cff1cfcd6f029d2d3054c23ab1949a Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-23import: cpan: Support recursive imports.zero@fedora
* guix/import/cpan.scm (cpan-module->sexp): Return two values. (cpan->guix-package): Add #:version. Return two values. (cpan-recursive-import): New procedure. * guix/scripts/import/cpan.scm (show-help, %options): Add ‘-r’. (guix-import-cpan): Adjust accordingly. Change-Id: Id167c7ddd079f4e04650ce7cc1692a9de36cd8fe Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-14describe: Add hyperlinks for codeberg.org commits.Ludovic Courtès
* guix/scripts/describe.scm (%vcs-web-views): Add “codeberg.org”. Change-Id: I6749649f9c73434ba6ed424d049e50e6741b0a11
2024-11-11guix system: When installing the Hurd, create essential devices.Janneke Nieuwenhuizen
* guix/scripts/system.scm (install): When installing the Hurd, invoke `make-hurd-device-nodes'. Change-Id: If84d5fe0b5bf4a93452f0b5241650f325d583543
2024-11-11reconfigure: Use native bootloader package for running the installer.Janneke Nieuwenhuizen
This fixes running grub-install when using guix system init --target. * guix/scripts/system/reconfigure.scm (install-bootloader): Use native package when invoking install-bootloader-program. Change-Id: I48d80a8dff866ada3625d827dd3036fb966eee9a
2024-10-24environment: Gracefully handle preexistence of /bin/cc in FHS.Ludovic Courtès
* guix/scripts/environment.scm (setup-fhs): When /bin/cc already exists, keep it. Reported-by: Marco Fortina <marco_fortina@hotmail.it> Change-Id: I73d39d2aa6fbafd236061a0e3b8d1fe327b2bb19
2024-10-22shell: Enable caching when using deterministic package transformations.Ludovic Courtès
Until now, using any package transformation would disable the automatic GC root creation and caching in ‘guix shell’. This change introduces a finer-grain distinction: a command like: guix shell --tune inkscape is now subject to caching, whereas: guix shell --with-latest=inkscape inkscape remains non-cacheable. * guix/transformations.scm (%transformations-with-external-dependencies): New variable. (cacheable-transformation-option-key?): New procedure. * guix/scripts/shell.scm (profile-cached-gc-root): In the ‘transformation-option-key?’ clause, call ‘loop’ when ‘cacheable-transformation-option-key?’ returns true. Change-Id: I847b661dfea20ecf851db2023a5c7ea8c5b5ca7c
2024-10-15guix build: Avoid “could not determine …” warning when unnecessary.Ludovic Courtès
This is a followup to 0629af7c2a47171fe8699b4d45662e605fea2fa6. * guix/scripts/build.scm (guix-build): Move ‘urls’ definition to (assoc-ref opts 'log-file?) case so that the “could not determine current substitute URLs” warning is not displayed when ‘urls’ is unused. Change-Id: I9434621b00a80bdbcf54d2a46d1a1e5f49cc7669
2024-10-14style: Fix cli flag typo.Aaron Covrig
* guix/scripts/style.scm (%options): Fix cli flag expanded name typo. Change-Id: I6abfb5fd4ba0dc9b58f368437d10ccbe63ae28fa
2024-10-07time-machine: Print profile path if no command is given.Tomas Volf
Instead of warning, print the profile path of the cached-channel-instance. * guix/scripts/time-machine.scm (guix-time-machine)[not command-line]: Print the profile directory. (show-help): Adjust usage message. * doc/guix.texi (Invoking guix time-machine): Document it. Change-Id: Id2c1ded514e6c5af45af9008ad1ef91beb509177 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-10-04locate: Move to ‘main’ category.Ludovic Courtès
That way ‘locate’ is listed in the same category as ‘search’, ‘install’, etc., which is more consistent. * guix/scripts/locate.scm (guix-locate): Move to ‘main’ category. Change-Id: I7f86f1124fedc2c7a9166fe191036530c382bfaf
2024-09-08Add some missing header comment header comments.Tobias Geerinckx-Rice
* gnu/packages/minetest.scm: Add the ‘GNU Guix’ header comment. * gnu/packages/notcurses.scm: Likewise. * gnu/packages/presentation.scm: Likewise. * gnu/packages/solidity.scm: Likewise. * guix/build/minetest-build-system.scm: Likewise. * gnu/packages/vnc.scm: Add missing ‘;’. * guix/scripts/import/crate.scm: Remove leading newline. Change-Id: I5294e6067b9348f2929d823a07d4ec335eaa5ecd
2024-09-06guix build: ‘--log-file’ honors the configured substitute URLs.Ludovic Courtès
* guix/scripts/build.scm (guix-build): When defining ‘urls’, add ‘substitute-urls’ call. * doc/guix.texi (Additional Build Options): Adjust ‘--log-file’ documentation. Change-Id: I40f0647efe64ba3a63a6379b8da80b0da8910f48
2024-09-03scripts: style: Add 'alphabetical-sort' option.Herman Rimm
* guix/scripts/style.scm (show-help): Describe option. (order-packages): Add procedure. (format-whole-file): Add 'order?' argument. (%options): Add 'alphabetical-sort' option. (guix-style): Alphabetically order packages in files. * tests/guix-style.sh: Test alphabetical ordering. * doc/guix.texi (Invoking guix style): Document option. Change-Id: I4aa7c0bd0b6d42529ae7d304587ffb10bf5f4006 Signed-off-by: Ludovic Courtès <ludo@gnu.org>