This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:
grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
--exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'
Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
The change was automated via:
git grep -l maxim.cournoyer@gmail.com |
xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'
* .mailmap: New entry.
Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
* guix/ui.scm (number->size): New procedure.
* guix/scripts/gc.scm (guix-gc)[actions]: Display the amount of
collected-garbage using more specific units.
[ensure-free-space]: Display the size using an appropriate size unit.
* nix/libstore/gc.cc (deletePathRecursive, removeUnusedLinks): Same.
* nix/libstore/optimise-store.cc (showBytes): Move function ...
* nix/libstore/misc.cc: ... to here. Expand to adjust the output based
on the amount of bytes received.
Change-Id: Idceb1a13f8e45f959d327f53d1a8accb29d2678b
This can be useful when evaluating a scheme-file store output for example,
which has multiple top level expressions.
* guix/ui.scm (read/eval): Also accept a port object as argument. Read and
evaluate all expressions from input port or string.
Change-Id: I0213706fa4824c3a8ffe5d93f44f263048cb62c2
* guix/describe.scm (append-channels-to-load-path!): New function.
* gnu/packages.scm (%package-module-path): Call new function. Remove
the code that the function call replaces.
* guix/ui.scm (extension-directories): Call new function. Search
channels for guix extensions.
* guix/self.scm (compiled-guix)[*core-modules*]: Add 'guile-git' to
the list of extensions.
Change-Id: I53af828dc554485ca28389c9e2653ea6b4fb6b7e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This is a followup to ed0cd12a82, which
adds the C.UTF-8 locale to the glibc package, and
ee4e79f871, which changed the default to
“C.UTF-8” for ‘guix’ commands.
Fixes a bug whereby starting ‘guix’ in an environment where the LC_*
variables are unset would start it in the “C” locale:
echo '(pk (setlocale LC_ALL))' | guix shell -CW coreutils -- guix repl
This would lead to breakage for commands such as ‘guix substitute’ that
need to run in a UTF-8 locale.
* gnu/packages/aux-files/guile-launcher.c (main): Try “C.UTF-8” before
“en_US.UTF-8”. Do that also when the current locale is “C”.
* guix/ui.scm (install-locale): Likewise.
Change-Id: I36da4db8f898f1083b33760e1ab46c3a257de811
That gives something like:
$ ./pre-inst-env guix build vim --no-grafts --no-substitutes -n
The following derivations would be built:
/gnu/store/…-tcsh-6.24.01.tar.gz.drv
/gnu/store/…-tcsh-6.24.01.tar.zst.drv
/gnu/store/…-tcsh-6.24.01.drv
/gnu/store/…-vim-9.1.0744-checkout.drv
/gnu/store/…-vim-9.1.0744.drv
… with the derivation(s) being asked for coming last.
* guix/ui.scm (show-what-to-build): Reverse ‘build/full’ before folding it.
Change-Id: Ic0da9f4f8a58c7ed5e2d10f6ec2226f0865aed75
* guix/packages.scm (&unsupported-cross-compilation-target-error): New
variable.
* guix/ui.scm (call-with-error-handling): Handle this new condition type.
Change-Id: I9e7782ee4799b5fecb3c890a75008c35c003f55d
Some packages don't support cross building to specific targets, so add a error
type to signal this.
* guix/packages.scm (&package-unsupported-target-error): New condition type.
[package-unsupported-target-error? package-unsupported-target-error-target):
New procedures.
* guix/ui.scm (call-with-error-handling): Handle this new condition type.
Change-Id: Ib47813399e04b20d616a95f545b6aabe25736e92
This ensures (guix build syscalls) is loaded only when needed.
* guix/ui.scm (%text-width): Unconditionally alias ‘*line-width*’.
Remove initialization.
<top level>: Remove code for Guile < 2.2.7.
(package->recutils): Change default #:width to (terminal-columns).
Change-Id: I990a1b5b0f20a6243e47e314d1d3d4f8298b7151
This allows users to write Bash commands like:
guix time-machine -C <(echo %default-channels) -- ...
or:
guix build -m <(echo '(specifications->manifest (list "guile"))')
Previously, on GNU/Linux, they would fail with:
error: failed to load '/dev/fd/63': No such file or directory
* guix/ui.scm (try-canonicalize-path): New procedure.
(load*): Use it.
* tests/guix-build.sh: Test 'guix build -m' with a /dev/fd/N file.
With this change, commands such as 'guix build' or 'guix package' report
obvious package-level cycles upfront. Derivation-level cycles are not
detected.
* guix/packages.scm (&package-cyclic-dependency-error): New condition
type.
(package-transitive-supported-systems): Define 'visited', check it, and
parameterize it.
* guix/ui.scm (call-with-error-handling): Handle
'&package-cyclic-dependency-error'.
* tests/packages.scm ("package-transitive-supported-systems detects
cycles"): Add test.
When display-hint is given format specifiers such as "~%" but no arguments,
it does not format the output, causing the specifiers to be visible in the
displayed text.
* guix/ui.scm (display-hint): Format output when no arguments are passed.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes <https://issues.guix.gnu.org/61201>.
Previously, common practice was to splice arbitrary strings (user names,
file names, etc.) into Texinfo snippets passed to 'display-hint'. This
is unsafe in the general case because at signs and braces need to be
escaped to produced valid Texinfo. This commit addresses that.
* guix/ui.scm (texinfo-quote): New procedure.
(display-hint): When ARGUMENTS is non-empty, pass it to 'texinfo-quote'
and call 'format'.
(report-unbound-variable-error, check-module-matches-file)
(display-collision-resolution-hint, run-guix-command): Remove explicit
'format' call; pass 'format' arguments as extra arguments to 'display-hint'.
* gnu/services/monitoring.scm (zabbix-front-end-config): Likewise.
* guix/scripts.scm (warn-about-disk-space): Likewise.
* guix/scripts/build.scm (%standard-cross-build-options)
(%standard-native-build-options): Likewise.
* guix/scripts/describe.scm (display-checkout-info): Likewise.
* guix/scripts/environment.scm (suggest-command-name): Likewise.
* guix/scripts/home.scm (process-command): Likewise.
* guix/scripts/home/edit.scm (service-type-not-found): Likewise.
* guix/scripts/import.scm (guix-import): Likewise.
* guix/scripts/package.scm (display-search-path-hint): Likewise.
* guix/scripts/pull.scm (build-and-install): Likewise.
* guix/scripts/shell.scm (auto-detect-manifest): Likewise.
* guix/scripts/system.scm (check-file-system-availability): Likewise.
(guix-system): Likewise.
* guix/scripts/system/edit.scm (service-type-not-found): Likewise.
* guix/status.scm (print-build-event): Likewise.
The current reference to Intel's Appendix H appears too obscure and confusing.
* guix/ui.scm (package->recutils)[output->recutils]: Replace “see Appendix H”
with “[description missing]”.
The current code says "out" contains "everything else", even if there's no
other output to contain anything.
* guix/ui.scm (package->recutils)[default-output-synopses]: New variable.
[output->recutils]: Take default synopses as argument.
["outputs"]: Distinguish single and multiple outputs.
* guix/ui.scm (package->recutils): Output outputs with their descriptions,
one per line.
* po/packages/Makevars (XGETTEXT_OPTIONS): Add ‘output-synopsis’ as keyword.
* guix/ui.scm (package->recutils): Add #:highlighting parameter and use it.
(display-search-results): Add #:regexps parameter; call
'colorize-full-matches' and pass #:highlighting.
* guix/scripts/package.scm (process-query): Pass #:regexps to
'display-search-results'.
* guix/scripts/home.scm (search): Likewise.
* guix/scripts/system/search.scm (service-type->recutils): Add #:highlighting
parameter and use it.
* guix/scripts/system/search.scm (service-type->recutils): Highlight the
value of the 'name' field.
* guix/ui.scm (package->recutils): Likewise for 'name' and 'version'.
This makes sure that, say, 'guix pull -l' benefits from colors when its
output is piped to a pager, as long as the underlying terminal supports
it.
* guix/ui.scm (display-generation): Add second argument to 'highlight'.
Previously, long system lines would not be split, which would confuse
'less', possibly leading it to hide the first line of the package
recutils record (the "name:" line).
* guix/ui.scm (package->recutils)[split-lines]: New procedure.
[dependencies->recutils]: Use it.
Use it for the "systems:" value.
Previously, 'read-error' exceptions other than "missing closing paren"
would not be reported; instead, we'd directly call (exit 1) without
printing anything.
Fixes <https://issues.guix.gnu.org/51463>.
Reported by Alice BRENON <alice.brenon@ens-lyon.fr>.
* guix/ui.scm (report-load-error): Report the error without re-throwing
upon 'read-error'.
* tests/guix-build.sh: Add test.
This also makes automated ‘guix --h<Tab>’ completion possible.
* guix/ui.scm (show-guix-help): Document that an OPTION's an option,
and all valid options.
Previously 'guix search' & co. would crash when encountering invalid
Texinfo.
* guix/ui.scm (texi->plain-text*): New procedure.
(package-field-string, package->recutils): Use it.
* guix/ui.scm (display-profile-content-diff): Use pretty-print-table to format
output.
(display-profile-content): Likewise.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This reduces the number of syscalls for:
env -i $(type -P strace) -c $(type -P guix) help
from 4.3K to 2.2K, thereby reducing startup time.
Reported by Julien Lepiller.
* guix/ui.scm (run-guix-command): Move %FILE-PORT-NAME-CANONICALIZATION
to...
(run-guix): ... here.
With this change, the wall-clock time of:
guix system build --no-grafts -d gnu/system/install.scm
goes from 5.0s to 2.3s on Guile 3.0.5.
* guix/ui.scm (without-compiler-optimizations): New macro.
(load*): Use it.