summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2022-07-22Merge branch 'staging' into core-updatesMarius Bakke
2022-07-19build-system/mozilla: Fix typo in the cross-compilation case.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56633>. Reported by Marius Bakke <marius@gnu.org>. * guix/build-system/mozilla.scm (lower-mozilla): Pass NAME as the first argument to LOWER when TARGET is true.
2022-07-19import: Enable recursive import for texlive packages.Ricardo Wurmus
* guix/import/texlive.scm (tlpdb->package): Add VERSION argument; include explicit version field in output. (texlive->guix-package): Set default value for VERSION argument; adjust call of tlpdb->package. (texlive-recursive-import): Accept REPO and VERSION keyword arguments. * guix/import/utils.scm (package->definition): Add a clause to deal with output from tlpdb->package. * guix/scripts/import/texlive.scm (%options): Add "recursive" option. (guix-import-texlive): Honor "recursive" option. * doc/guix.texi (Using TeX and LaTeX): Mention "recursive" option.
2022-07-19system: Add -I, --list-installed option.Antero Mejr
* guix/scripts/system.scm (display-system-generation): Add #:list-installed-regex and honor it. (list-generations): Likewise. (show-help, %options): Add "--list-installed". (process-command): For 'describe' and 'list-generation', honor the 'list-installed option. * doc/guix.texi (Invoking Guix System): Add information for --list-installed flag. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-07-19home: Add -I, --list-installed option.Antero Mejr
* guix/scripts/package.scm (list-installed): New procedure. * guix/scripts/home.scm (%options, show-help): Add '--list-installed'. (process-command): For 'describe' and 'list-generations', honor the 'list-installed option. (display-home-environment-generation): Add #:list-installed-regex and honor it. (list-generations): Likewise. * guix/scripts/utils.scm (pretty-print-table): New argument "left-pad". * doc/guix.texi (Invoking Guix Home): Add information and example for --list-installed flag. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-07-19upstream: Sort '%updaters' alphabetically.Ludovic Courtès
Previously the output of 'guix refresh --list-updaters' would be non-deterministic, and likewise the order in which updaters are tried would be non-deterministic. Reported by zimoun <zimon.toutoune@gmail.com>. * guix/upstream.scm (%updaters): Add call to 'sort'.
2022-07-15import: pypi: Fix coding style.Hartmut Goebel
I missed this remark from the review when pushing the last change. * guix/import/pypi.scm(python->package-name): Replace the trailing '#t'-case by a 'else'.
2022-07-15import: pypi: Add special treatment for Tryton package names,Hartmut Goebel
Trytond modules are Python packages, and treated like this in guix. Anyhow, since they are add-ons for the “Trytond“ application, their guix package name do not get the "python-" prefix like other Python modules, (see also https://issues.guix.gnu.org/46057#1). This change disables adding the "python-" prefix to the guix package name for Trytond modules when importing and updating, thus inhibiting irritating messages like in this example: $ guix refresh -u trytond-party … trytond-party: consider adding this propagated input: python-trytond-country trytond-party: consider removing this propagated input: trytond-country Handling this special case seems appropriate since (as of now) there are about 165 packages for Trytond and the number is growing. * guix/import/pypi.scm(python->package-name): Don't add "python-" prefix for trytond packages.
2022-07-15import: egg: Fix updater.Hartmut Goebel
'egg-source-url' did not return the URL, but the quoted expression. This did break the updater, which expects the URL as a string. * guix/import/egg.scm(egg-source-url): Remove. (egg->guix-package)[egg-content]: Use quoted expression directly. (latest-release): Call egg-uri instead of egg-source-url.
2022-07-15monad-repl: Add "build", "lower", and "verbosity" commands.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56114>. Reported by Maxime Devos <maximedevos@telenet.be>. * guix/monad-repl.scm (%build-verbosity): New variable. (evaluate/print-with-store): New procedure. (run-in-store): Rewrite in terms of 'evaluate/print-with-store'. (verbosity, lower, build): New meta-commands. * doc/guix.texi (Using Guix Interactively): New node. (The Store Monad): Link to it. (Invoking guix repl): Likewise. * doc/contributing.texi (Running Guix Before It Is Installed): Refer to it. (The Perfect Setup): Suggest 'guix install' rather than 'guix package -i'.
2022-07-15shell: Ignore cached profiles when using '--export-manifest'.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56539>. Fixes a bug where "guix shell -D pkg --export-manifest" would provide the expansion of PKG's dependencies instead of a call to 'package-development-manifest' if that profile happened to be cached. * guix/scripts/shell.scm (profile-cached-gc-root): Add clause for 'export-manifest?.
2022-07-12style: Gracefully handle failure to locate a source file.Ludovic Courtès
* guix/scripts/style.scm (absolute-location): Raise an error when 'search-path' returns #f.
2022-07-11import: github: Use correct URL scheme.Hartmut Goebel
This effects packages hosted at github with source-uri like …/releases/download/REPO-VERSION/REPO-VERSION.EXT. E.g. ‘guix refresh udisks’ would fail to find the new release of ‘udisks’ before this change. * guix/import/github.scm(updated-url): For one one of the cases add missing 'prefix' and set new version.
2022-07-10monads: Add 'mparameterize'.Ludovic Courtès
* etc/system-tests.scm (mparameterize): Move to... * guix/monads.scm (mparameterize): ... here. * tests/monads.scm ("mparameterize"): New test. * .dir-locals.el (c-mode): Add it.
2022-07-08channels: Emit version 3 profiles.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56441>. Reported by zimoun <zimon.toutoune@gmail.com>. Fixes a bug introduced in 4ff12d1de7cd617b791996ee7ca1240660b4c20e with version 4 of the manifest format. A new 'guix time-machine' would create a v4 manifest; when targeting an old revision (v3), 'generate-package-cache' would fail to read that manifest and abort. Furthermore, an old Guix living in a new profile with a v4 manifest would be unable to describe itself via (guix describe). * guix/channels.scm (package-cache-file): Add 'format-version' field to PROFILE. (channel-instances->derivation): Pass #:format-version to 'profile-derivation'.
2022-07-08profiles: Support the creation of profiles with version 3 manifests.Ludovic Courtès
* guix/profiles.scm (%manifest-format-version): New variable. (manifest->gexp): Add optional 'format-version' parameter. [optional, entry->gexp]: Honor it. (profile-derivation): Add #:format-version parameter and honor it. (<profile>)[format-version]: New field. (profile-compiler): Honor it. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Support both versions 3 and 4. Remove unused 'properties' variable. * tests/profiles.scm ("profile-derivation format version 3"): New test.
2022-07-08profiles: Remove support for reading versions 0 and 1.Ludovic Courtès
Version 2 was introduced in commit dedb17ad010ee9ef67f3f4f3997dd17f226c8090 (May 2015), which made it into Guix 0.9.0. * guix/profiles.scm (find-package): Remove. (sexp->manifest)[infer-search-paths]: Remove. Remove clauses for versions 0 and 1.
2022-07-08guix: inferior: Fix the behaviour of open-inferior #:error-port.Christopher Baines
I'm looking at this as the Guix Data Service uses this behaviour to record and display logs from inferior processes. * guix/inferior.scm (open-bidirectional-pipe): Call dup2 for file descriptor 2, passing either the file number for the current error port, or a file descriptor for /dev/null. * tests/inferior.scm ("#:error-port stderr", "#:error-port pipe"): Add two new tests that cover some of the #:error-port behaviour.
2022-07-04style: For 'let' and similar forms, emit one binding per line.Ludovic Courtès
Previously, 'let' bindings could be rendered like this: (let ((x 1) (y 2) (z 3)) ...) With this change, each bindings goes in its own line. Partly fixes <https://issues.guix.gnu.org/56297>. Reported by Maxime Devos <maximedevos@telenet.be>. * guix/scripts/style.scm (pretty-print-with-comments)[list-of-lists?]: New procedure. Use it. * tests/style.scm: Add tests with 'let' and 'substitute-keyword-arguments'.
2022-07-04style: Add option '--list-stylings'.Hartmut Goebel
* guix/scripts/style.scm (show-stylings): New procedure. (%options, show-help): Add "--list-stylings". * doc/guix.texi (Invoking guix style): Document "-l".
2022-07-03challenge: Do nothing when passed zero arguments.Ludovic Courtès
Previously, 'guix challenge' without arguments would list live store items that had been locally built. This was deemed confusing, especially since 'list-live' is an expensive operation. * guix/scripts/challenge.scm (guix-challenge): Warn and exit with 0 when FILES is empty. * doc/guix.texi (Invoking guix challenge): Update accordingly.
2022-07-01profiles: Do not repeat entries in 'manifest' file.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/55499>. Reported by Ricardo Wurmus <rekado@elephly.net>. With this change, the manifest file created for: guix install r r-seurat r-cistopic r-monocle3 r-cicero-monocle3 r-assertthat goes from 5.7M to 176K. Likewise, on this profile, wall-clock time of: GUIX_PROFILING=gc guix package -I goes from 0.7s to 0.1s, with heap usage going from 55M to 9M. * guix/profiles.scm (manifest->gexp)[optional]: New procedure. [entry->gexp]: Turn into a monadic procedure. Return a 'repeated' sexp if ENTRY was already visited before. Adjust caller accordingly. Bump manifest version. (sexp->manifest)[sexp->manifest-entry]: Turn into a monadic procedure. Add case for 'repeated' nodes. Add each entry to the current state vhash. Add clause for version 4 manifests. [sexp->manifest-entry/v3]: New procedure, with former 'sexp->manifest-entry' code. * tests/profiles.scm ("deduplication of repeated entries"): New test. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths)[let-fields]: New macro. Use it. Expect version 4. Add clause for 'repeated' nodes.
2022-07-01upstream: 'guix refresh -u' no longer stops when upstream info is lacking.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56338>. Starting from 53b9c27aa59bebf955f0aa24fef60a101480ef5c, 'guix refresh -u' would stop upon the first failure to determine upstream releases. This fixes that. * guix/upstream.scm (package-update): Warn rather than update.
2022-06-27Merge branch 'master' into core-updatesMarius Bakke
2022-06-26substitute: Use SRFI-71 instead of SRFI-11.Ludovic Courtès
* guix/scripts/substitute.scm (display-narinfo-data) (open-connection-for-uri/cached) (process-substitution): Use SRFI-71 instead of SRFI-11.
2022-06-26status: Relay "updating substitutes" messages.Ludovic Courtès
Until now, those messages would be accumulated and displayed all at once, when a '\n' was finally emitted by 'guix substitute'. In the meantime, clients would remain silent. * guix/status.scm (bytevector-index): Change 'number' parameter to 'numbers' and adjust accordingly. (build-event-output-port): Pass both #\newline and #\return to 'bytevector-index'. * tests/status.scm ("build-output-port, daemon messages with LF"): New test.
2022-06-26self: 'guix-daemon' wrapper refers to the right Guile.Ludovic Courtès
Partly fixes <https://issues.guix.gnu.org/56030>. Reported by Julien Lepiller <julien@lepiller.eu>. * guix/self.scm (whole-package)[wrap]: Pass #:guile to 'program-file'.
2022-06-25utils: Make switch-symlinks robust against interruption.Arun Isaac
* guix/build/utils.scm (switch-symlinks): Delete pivot link if it already exists. Co-authored-by: Maxime Devos <maximedevos@telenet.be>
2022-06-25utils: Move switch-symlinks to (guix build utils).Arun Isaac
* guix/utils.scm (switch-symlinks): Move to ... * guix/build/utils.scm (switch-symlinks): ... here. * guix/profiles.scm, guix/scripts/home.scm, guix/scripts/package.scm: Import switch-symlinks from (guix build utils). * guix/scripts/system/reconfigure.scm (switch-system-program): Import (guix build utils) in G-expression.
2022-06-22python-build-system: Fix typo in module-level comment paragraph.jgart
* guix/build/python-build-system.scm: Fix typo in comment paragraph. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-06-22Merge branch master into core-updatesLudovic Courtès
2022-06-19challenge: Colorize output.Ludovic Courtès
* guix/scripts/challenge.scm (good-news, bad-news): New procedures. (summarize-report, summarize-report-list): Use them and 'highlight'.
2022-06-19build-system/dub: Don't expect ‘.dub/dub.json’.(
This file is no longer produced by our version of Dub. * guix/build/dub-build-system.scm (build, check): Remove obsolete substitutions. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-19build-system/dub: Fix configure docstring indentation.(
* guix/build/dub-build-system.scm (configure): Reflow docstring. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-19build-system/dub: Use the gold linker.(
* guix/build-system/dub.scm (default-ld-gold-wrapper): New procedure. (lower): Add a LD-GOLD-WRAPPER to the keyword arguments, and to the resulting bag's… [build-inputs]: …build inputs. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-19build-system/dub: Don't explicitly return #t from phases.(
* guix/build/dub-build-system.scm (configure, build, check, install): Remove trailing #t. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-24utils: Define 'target-x86?' predicate.Denis 'GNUtoo' Carikli
* guix/utils.scm (target-x86?): New predicate. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-06-23guix system: Inline menu-entries in to bootcfg in perform-action.Christopher Baines
This avoids an exception when generating images, where the reading of boot parameters fails. * guix/scripts/system.scm (perform-action): Inline menu-entries in to bootcfg.
2022-06-22refresh: Repurpose '-L' for '--load-path'.Ludovic Courtès
This incompatible change fixes an inconsistency with other commands where '-L' is short for '--load-path'. * guix/scripts/refresh.scm (%options): Add --load-path option from %STANDARD-BUILD-OPTIONS. Remove #\L shortcut for --list-updaters, and remove --load-path option that lacked the #\L shortcut. (show-help): Update accordingly. * doc/guix.texi (Invoking guix refresh): Update accordingly.
2022-06-22style: Keep values next to their keyword.Ludovic Courtès
This ensures we print '#:key value' rather than insert a newline between '#:key' and 'value' as was the case before. * guix/scripts/style.scm (pretty-print-with-comments)[print-sequence]: When ITEM is a keyword, loop with FIRST? = true. * tests/style.scm: Add test.
2022-06-21build-system: chicken: Add version information to eggs if missing.Michal Atlas
Chicken eggs do not always contain version information, yet dependant packages often rely on this information being present. Thus, add a version field if it is missing. * guix/build/chicken-build-system.scm (stamp-egg-version): New variable. (%standard-phases): Add ‘stamp-egg-version’. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-06-18guix: self: Do not record reference to gcc-toolchain.Julien Lepiller
The ld-wrapper from gcc-toolchain records a reference to the library path through rpath, but this is not needed. By explicitely using rpath flags instead, we save 150 MB of closure. * guix/self.scm (quiet-guile): Do not record reference to gcc-toolchain.
2022-06-17guix: emacs-utils: Add emacs-header-parse.Fredrik Salomonsson
* guix/build/emacs-utils.scm (emacs-header-parse): New procedure. * tests/build-emacs-utils.scm ("emacs-header-parse: fetch version", "emacs-header-parse: fetch keywords", "emacs-header-parse: fetch nonexistent author"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-17guix: emacs-utils: Add emacs-batch-script.Fredrik Salomonsson
* guix/build/emacs-utils.scm (emacs-batch-script): New procedure. * tests/build-emacs-utils.scm: New file. * Makefile.am (TESTS): Add `tests/build-emacs-utils.scm'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-17guix: Modernize renpy-build-system.Liliana Marie Prikler
* guix/build-system/renpy.scm (build): Drop trailing #t. (install, install-desktop-file): Likewise. Also add inputs and use search-input-file for /bin/sh and /bin/renpy.
2022-06-16ui: Improve pager selection logic when less is not installed.Taiju HIGASHI
* guix/ui.scm (find-available-pager): New procedure. (call-with-paginated-output-port): Use it. * guix/utils.scm (call-with-environment-variables): Allow clearing of specified environment variables. * tests/ui.scm (make-empty-file, assert-equals-find-available-pager): New procedures. ("find-available-pager, GUIX_PAGER takes precedence") ("find-available-pager, PAGER takes precedence") ("find-available-pager, 'less' takes precedence") ("find-available-pager, 'more' takes precedence") ("find-available-pager, no pager"): New tests. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-06-16shell: Fix '--export-manifest' for cached profiles and when '-p' is used.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/55521>. * guix/scripts/shell.scm (export-manifest): When computing 'manifest', honor the 'profile key. * tests/guix-shell-export-manifest.sh: Add test.
2022-06-16shell: Do not auto-detect manifest when '-p' is used.Ludovic Courtès
Previous, "guix shell -p /path/to/profile" would have manifest/guix.scm auto-detection turned on. * guix/scripts/shell.scm (auto-detect-manifest)[options-contain-payload?]: Return #t for 'profile.
2022-06-16packages: Change the order of %SUPPORTED-SYSTEMS.Ludovic Courtès
Commit 2a34333d0c238fa0983659ea71f0e1af4ff0ac7b led to a couple of test failures in tests/packages.scm and tests/lint.scm due to the different ordering. * guix/packages.scm (%supported-systems): Move %64BIT-SUPPORTED-SYSTEMS first.
2022-06-16channels: Print backtrace when generating package cache fails.Josselin Poiret
* guix/channels.scm (package-cache-file): Add a throw handler around the generate-package-cache call, and print backtrace in it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>