Age | Commit message (Expand) | Author |
2022-08-04 | environment: Report "command not found" from the child process....Fixes a bug whereby, for example:
guix shell bash -- bash -c xyz
would erroneously print:
guix shell: error: bash: command not found
simply because the parent process could not distinguish that 127 from a
"genuine" 127 used by convention for "command not found".
* guix/scripts/environment.scm (launch-environment): Before exiting,
report a "command not found" error and suggest a command name.
(validate-exit-status): Remove.
(launch-environment/fork): Remove call
(launch-environment/container)[exit/status*]: Remove.
Call 'exit/status' instead of it.
| Ludovic Courtès |
2022-08-04 | guix build: Print hints when -s or --target is passed an invalid string....* guix/scripts/build.scm (%standard-cross-build-options)
(%standard-native-build-options): Print hints when the target/system is
not found.
| Ludovic Courtès |
2022-08-03 | download: Do not wrap TLS port on GnuTLS >= 3.7.7....The custom input/output port wrapping the TLS session record port would
introduce overhead, and it would also prevent its uses in a non-blocking
context--e.g., with Fibers. The port close mechanism added in GnuTLS
3.7.7 allows us to get rid of that wrapper.
* guix/build/download.scm (wrap-record-port-for-gnutls<3.7.7): New
procedure, with code formerly in 'tls-wrap'.
(tls-wrap): Check for 'set-session-record-port-close!' and use it when
available; otherwise call 'wrap-record-port-for-gnutls<3.7.7'.
| Ludovic Courtès |
2022-08-03 | build-system: asdf: Add asd-operation parameter....The 'asd-operation' parameter can be used to specify the ASDF operation to use
in the build phase. It's default value is "load-system".
* guix/build-system/asdf.scm (package-with-build-system, asdf-build): Add
'asd-operation' parameter.
* guix/build/asdf-buid-system.scm (build): Add 'asd-operation' parameter and
use it.
* guix/build/lisp-utils.scm (compile-systems): Add 'asd-operation' parameter
and use it.
| Guillaume Le Vaillant |
2022-08-03 | build-system: asdf: Let ASDF locate the .asd files....This approach has many benefits:
- It simplifies the build system.
- The package definitions are easier to write.
- It fixes a bug with systems that call asdf:clear-system which would cause
the load to fail. See for instance test systems using Prove.
* guix/build-system/asdf.scm (package-with-build-system): Remove 'asd-files'
and replace 'test-asd-file' by 'asd-test-systems'.
(lower): Same.
* guix/build/asdf-build-system.scm (source-asd-file): Remove since ASDF does
it better than us.
(find-asd-files): Same.
(build): Remove unused asd-files argument.
(check): Remove asd-files argument and replace asd-systems by
asd-test-systems.
* guix/build/lisp-utils.scm (compile-systems): Call to ASDF to find the
systems.
(test-system): Same.
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
| Pierre Neidhardt |
2022-08-03 | guix: build: Switch from asdf:compile-system to asdf:load-system....According to the ASDF manual:
This will make sure all the files in the system are compiled, but not
necessarily load any of them in the current image; on most systems, it
will _not_ load all compiled files in the current image. This function
exists for symmetry with 'load-system' but is not recommended unless you
are writing build scripts and know what you're doing.
* guix/build/lisp-utils.scm (compile-systems): Switch from asdf:compile-system
to asdf:load-system.
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
| Pierre Neidhardt |
2022-08-01 | build-system: qt: Ensure a default value is provided for #:qtbase....* guix/build-system/qt.scm (qt-build)[qtbase]: Specify a default value. Lower
it using ungexp-native.
(qt-cross-build): Likewise.
Reported-by: Maxime Devos <maximedevos@telenet.be> and others.
| Maxim Cournoyer |
2022-08-01 | download: 'url-fetch' closes its HTTP/HTTPS port....* guix/build/download.scm (url-fetch)[fetch]: In the http/https case,
close PORT before returning.
| Ludovic Courtès |
2022-07-31 | build: qt: Add qtbase argument and wrap Qt environment variables exactly....* guix/build-system/qt.scm (default-qtbase): New variable.
(lower) <#:qtbase>: Add argument...
[build-inputs]: ... and propagate it here.
(qt-build): Add qtbase argument.
(qt-cross-build): Likewise.
* guix/build/qt-utils.scm (%default-qt-major-version): New variable.
(variables-for-wrapping): Add qt-major-version argument, and use it to format
the various path prefixes. Wrap QT environment variables exactly.
(wrap-qt-program*): Add qt-major-version argument, and pass it to
variables-for-wrapping.
(wrap-qt-program): Add qt-major-version argument, and pass it to
wrap-qt-program*.
(wrap-all-qt-programs): Add qtbase argument, and extract the major version
from it, passing it to wrap-qt-program*.
| Maxim Cournoyer |
2022-07-31 | gnu: qttools: Rename to qttools-5....Automated with:
git grep -l qttools | xargs sed 's/\bqttools\b/\0-5/g' -i
git checkout NEWS
| Maxim Cournoyer |
2022-08-01 | guix gc: '--delete-generations' now deletes old Home generations....This reverts commit 24c0518dd404cbb3c434fb6704f4f551bbc78693,
thereby reinstating ba22560627f848f40891a56355ff26b6de1380bc, with an
additional fix in (guix self).
Fixes <https://issues.guix.gnu.org/56722>.
Reported by "(" <paren@disroot.org>.
* guix/scripts/gc.scm (guix-gc)[delete-generations]: Add call to
'home-generation-base'.
* guix/self.scm (compiled-guix)[*core-cli-modules*]: Remove (guix
scripts gc).
* doc/guix.texi (Invoking guix gc): Document the change.
| Ludovic Courtès |
2022-07-24 | download: Refresh KDE mirror list....* guix/download.scm (%mirrors)[kde]: Update list, using HTTPS wherever
possible.
| Tobias Geerinckx-Rice |
2022-07-17 | Revert "guix gc: '--delete-generations' now deletes old Home generations."...This reverts commit ba22560627f848f40891a56355ff26b6de1380bc.
| Tobias Geerinckx-Rice |
2022-07-23 | gnu: clojure: Update to 1.11.1....This patch updates Clojure to 1.11.1. It also adds the 'reset-class-timestamps
phase to the Clojure build system.
This phase makes sure the timestamp of compiled class files is set to a later
point in time than the timestamp of the corresponding Clojure source files. If
the timestamps of the class and source files are the same, the Clojure
compiler will compile the sources again which can lead to issues. This problem
has been discussed here [1]. The suggested solution was to keep/adjust the
timestamps of the class files.
[1] https://www.mail-archive.com/clojure@googlegroups.com/msg99928.html
* gnu/packages/clojure.scm (clojure): Update to 1.11.1 and update all of
LIBRARIES accordingly.
[arguments]: In 'unpack-library-sources' phase, copy from
"core-specs-alpha-src" and "spec-alpha-src" as well. Add
phases 'closure-spec-skip-macros', 'clojure-spec-compile',
'maven-classpath-properties', and 'reset-class-timestamps'.
* guix/build/clojure-build-system.scm (regular-jar-file?)
(reset-class-timestamps): New procedures.
(%standard-phases): Add 'reset-class-timestamps' phase.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| r0man |
2022-07-23 | guix gc: '--delete-generations' now deletes old Home generations....Previously, 'guix gc -d4m' would ignore Home generations. With this
change, they are treated like profiles and generations that match the
pattern are deleted.
* guix/scripts/gc.scm (guix-gc)[delete-generations]: Add call to
'home-generation-base'.
* doc/guix.texi (Invoking guix gc): Document the change.
| Ludovic Courtès |
2022-07-23 | deploy: Honor '--dry-run'....* guix/scripts/deploy.scm (%options): Add "dry-run".
(show-what-to-deploy): Add #:dry-run? and honor it.
(guix-deploy): Honor --dry-run.
| Ludovic Courtès |
2022-07-19 | import: Enable recursive import for texlive packages....* 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.
| Ricardo Wurmus |
2022-07-19 | system: Add -I, --list-installed option....* 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>
| Antero Mejr |
2022-07-19 | home: Add -I, --list-installed option....* 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>
| Antero Mejr |
2022-07-19 | upstream: Sort '%updaters' alphabetically....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'.
| Ludovic Courtès |
2022-07-15 | import: pypi: Fix coding style....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'.
| Hartmut Goebel |
2022-07-15 | import: pypi: Add special treatment for Tryton package names,...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.
| Hartmut Goebel |
2022-07-15 | import: egg: Fix updater....'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.
| Hartmut Goebel |
2022-07-15 | monad-repl: Add "build", "lower", and "verbosity" commands....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'.
| Ludovic Courtès |
2022-07-15 | shell: Ignore cached profiles when using '--export-manifest'....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?.
| Ludovic Courtès |
2022-07-12 | style: Gracefully handle failure to locate a source file....* guix/scripts/style.scm (absolute-location): Raise an error when
'search-path' returns #f.
| Ludovic Courtès |
2022-07-11 | import: github: Use correct URL scheme....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.
| Hartmut Goebel |
2022-07-10 | monads: Add 'mparameterize'....* 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.
| Ludovic Courtès |
2022-07-08 | channels: Emit version 3 profiles....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'.
| Ludovic Courtès |
2022-07-08 | profiles: Support the creation of profiles with version 3 manifests....* 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.
| Ludovic Courtès |
2022-07-08 | profiles: Remove support for reading versions 0 and 1....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.
| Ludovic Courtès |
2022-07-08 | guix: inferior: Fix the behaviour of open-inferior #:error-port....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.
| Christopher Baines |
2022-07-04 | style: For 'let' and similar forms, emit one binding per line....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'.
| Ludovic Courtès |
2022-07-04 | style: Add option '--list-stylings'....* guix/scripts/style.scm (show-stylings): New procedure.
(%options, show-help): Add "--list-stylings".
* doc/guix.texi (Invoking guix style): Document "-l".
| Hartmut Goebel |
2022-07-03 | challenge: Do nothing when passed zero arguments....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.
| Ludovic Courtès |
2022-07-01 | profiles: Do not repeat entries in 'manifest' file....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.
| Ludovic Courtès |
2022-07-01 | upstream: 'guix refresh -u' no longer stops when upstream info is lacking....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.
| Ludovic Courtès |
2022-06-26 | substitute: Use SRFI-71 instead of SRFI-11....* guix/scripts/substitute.scm (display-narinfo-data)
(open-connection-for-uri/cached)
(process-substitution): Use SRFI-71 instead of SRFI-11.
| Ludovic Courtès |
2022-06-26 | status: Relay "updating substitutes" messages....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.
| Ludovic Courtès |
2022-06-26 | self: 'guix-daemon' wrapper refers to the right Guile....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'.
| Ludovic Courtès |
2022-06-19 | build-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-19 | build-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-19 | build-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-19 | build-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-24 | utils: Define 'target-x86?' predicate....* guix/utils.scm (target-x86?): New predicate.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| Denis 'GNUtoo' Carikli |
2022-06-23 | guix system: Inline menu-entries in to bootcfg in perform-action....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.
| Christopher Baines |
2022-06-22 | refresh: Repurpose '-L' for '--load-path'....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.
| Ludovic Courtès |
2022-06-22 | style: Keep values next to their keyword....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.
| Ludovic Courtès |
2022-06-21 | build-system: chicken: Add version information to eggs if missing....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>
| Michal Atlas |
2022-06-19 | challenge: Colorize output....* guix/scripts/challenge.scm (good-news, bad-news): New procedures.
(summarize-report, summarize-report-list): Use them and 'highlight'.
| Ludovic Courtès |