Age | Commit message (Expand) | Author |
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 |
2022-06-18 | guix: self: Do not record reference to gcc-toolchain....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.
| Julien Lepiller |
2022-06-17 | guix: emacs-utils: Add emacs-header-parse....* 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>
| Fredrik Salomonsson |
2022-06-17 | guix: emacs-utils: Add emacs-batch-script....* 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>
| Fredrik Salomonsson |
2022-06-17 | guix: Modernize renpy-build-system....* 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.
| Liliana Marie Prikler |
2022-06-16 | ui: Improve pager selection logic when less is not installed....* 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>
| Taiju HIGASHI |
2022-06-16 | shell: Fix '--export-manifest' for cached profiles and when '-p' is used....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.
| Ludovic Courtès |
2022-06-16 | shell: Do not auto-detect manifest when '-p' is used....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.
| Ludovic Courtès |
2022-06-16 | packages: Change the order of %SUPPORTED-SYSTEMS....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.
| Ludovic Courtès |
2022-06-16 | channels: Print backtrace when generating package cache fails....* 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>
| Josselin Poiret |
2022-06-15 | upstream: 'package-update' reports "unknown upstream releases" errors....Fixes <https://issues.guix.gnu.org/55987>.
Reported by John Kehayias <john.kehayias@protonmail.com>.
* guix/upstream.scm (package-update): Instead of calling
'package-latest-release*', call 'package-latest-release' and distinguish
between "up-to-date" and "unknown upstream releases". Raise an error in
the latter case.
| Ludovic Courtès |
2022-06-15 | refresh: Switch to SRFI-71....* guix/scripts/refresh.scm (update-package): Use SRFI-71 'let' instead
of SRFI-11 'let-values'.
| Ludovic Courtès |
2022-06-15 | challenge: When using '--diff', do not attempt to chmod symlinks....This is a followup to 2a2856d5ccd9a9b7df8a94333a277b971a39b150.
* guix/scripts/challenge.scm (make-directory-writable): Do not call
'make-file-writable' on symlinks.
| Ludovic Courtès |
2022-06-15 | import: Add hex.pm importer....hex.pm is a package repository for Erlang and Elixir.
* guix/scripts/import.scm (importers): Add "hexpm".
* guix/scripts/import/hexpm.scm, guix/import/hexpm.scm,
guix/hexpm-download.scm: New files.
* guix/import/utils.scm (source-spec->object): Add "hexpm-fetch" to list of
fetch methods.
* guix/upstream.scm (package-update/hexpm-fetch): New function.
(%method-updates) Add it.
* Makefile.am: Add them.
| Hartmut Goebel |
2022-06-15 | build-system: Add 'rebar-build-system'....* guix/build-system/rebar.scm, guix/build/rebar-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Update rebar-build-system section.
| Hartmut Goebel |
2022-06-15 | Revert "Add (guix extracting-download)."...This reverts commit f63c79bf7674df012517f8e9148f94c611e35f32, which was missed
when reverting the #51061 patch series for now in
a1679b74c9aa20bb51bc4add82ebb7ba78926b9c.
| Hartmut Goebel |
2022-06-15 | ssh: Add #:connection-timeout parameter to 'open-ssh-session'....* guix/ssh.scm (open-ssh-session): Add #:connection-timeout parameter
and honor it.
| Ludovic Courtès |
2022-06-15 | pull: Tweak cache directory validation code....This is a followup to 7c52cad0464175370c44bd4695e4c01a62b8268f.
* guix/scripts/pull.scm (guix-pull): Move cache directory validation
code to...
(validate-cache-directory-ownership): ... here. New procedure. Use
SRFI-71 instead of SRFI-11. Use 'formatted-message' for the error
message, with ASCII quotation marks, and use Texinfo markup for
'&fix-hint'.
| Ludovic Courtès |
2022-06-12 | pull: Fix typo in error message....* guix/scripts/pull.scm (guix-pull): Report the right user name/ID.
| Tobias Geerinckx-Rice |
2022-06-13 | challenge: Actually delete nars that have been extracted....Fixes <https://issues.guix.gnu.org/55809>.
Reported by Vagrant Cascadian <vagrant@reproducible-builds.org>.
* guix/scripts/challenge.scm (make-directory-writable): New procedure.
(call-with-mismatches)[restore-file*]: New procedure.
Use it instead of 'restore-file'.
| Ludovic Courtès |
2022-06-12 | guix: packages: Add %32bit-supported-systems, %64bit-supported-systems....* guix/packages.scm (%32bit-supported-systems,
%64bit-supported-systems): New variables.
(%supported-systems): Rewrite using %32bit-supported-systems,
%64bit-supported-systems.
| Efraim Flashner |
2022-06-10 | least-authority: Fix typo....* guix/least-authority.scm (least-authority-wrapper): Fix typo in doc.
| Maxim Cournoyer |
2022-06-05 | pull: Fail if cache directory ownership is suspect....New users frequently run ‘sudo guix pull’ which breaks subsequent
unprivileged ‘guix pull’s until manually fixed with chmod -R.
* guix/scripts/pull.scm (guix-pull): Fail if the cache directory (or
its innermost extant parent) is not owned by the user pulling the Guix,
with a hint about ‘sudo -i’.
| Tobias Geerinckx-Rice |
2022-06-08 | guix: platform: Fix typo in lookup-platform-by-target....* guix/platform.scm (lookup-platform-by-target): Fix typo system ->
target.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| Josselin Poiret |