Age | Commit message (Expand) | Author |
2022-03-07 | derivations: Coalesce inputs that have the same output path....Fixes <https://issues.guix.gnu.org/54209>.
* guix/derivations.scm (coalesce-duplicate-inputs): Use the output paths
of DRV as a hash table key.
* tests/derivations.scm ("derivation with duplicate fixed-output
inputs"): Expect a single input for FINAL.
("derivation with equivalent fixed-output inputs"): New test.
| Ludovic Courtès |
2022-03-07 | build-system/meson: Add more cross-compilation targets....* guix/build-system/meson.scm (make-machine-alist): Add riscv64-linux
option for cpu_family. Add riscv64-linux and powerpc-linux options for
endian.
| Efraim Flashner |
2022-03-06 | import: github: Reuse HTTP connection for the /tags URL fallback....* guix/import/github.scm (fetch-releases-or-tags): Call
'open-connection-for-uri' and reuse the same connection for the two
'http-fetch' calls.
* .dir-locals.el (scheme-mode): Add 'call-with-port'.
| Ludovic Courtès |
2022-03-06 | http-client: Correctly handle redirects when #:keep-alive? #t....Previously PORT would be closed unconditionally, which broke redirects
when #:keep-alive? #t is given.
* guix/http-client.scm (http-fetch): Make 'port' a parameter of 'loop'.
Upon 3xx responses, do not close PORT is KEEP-ALIVE? is true, but consume
RESP's body. Add second argument to 'loop'.
| Ludovic Courtès |
2022-03-06 | import: github: Gracefully handle rate limit exhaustion....Previously, 'guix refresh' would literally crash when the rate limit was
reached due to the call to 'error'. With this change, the updater
notices when the rate limit is reached and it turns itself into a no-op
until the rate limit has been reset.
When running "guix refresh" (with no arguments), the 'github' updater
gets used until the rate limit has been reached, after which "guix
refresh" automatically picks up the next valid updater, typically
'generic-git'.
* guix/import/github.scm (fetch-releases-or-tags): Use 'http-fetch'
directly instead of 'json-fetch' to let 'http-get-error?' exceptions
through. Handle 403 errors with an 'X-RateLimit-Remaining' header.
(%rate-limit-reset-time): New variable.
(update-rate-limit-reset-time!, request-rate-limit-reached?): New
procedures.
(latest-released-version): Remove calls to 'error'.
| Ludovic Courtès |
2022-03-06 | http-client: Add response headers to '&http-get-error'....* guix/http-client.scm (&http-get-error)[headers]: New field.
(http-fetch): Initialize the 'headers' field.
| Ludovic Courtès |
2022-03-03 | download: Fix typo in procedure name....* guix/build/download.scm (make-credendials-with-ca-trust-files): Rename
to...
(make-credentials-with-ca-trust-files): ... this.
| Ludovic Courtès |
2022-03-03 | download: Load X.509 certificates only once....Previously we'd load /etc/ssl/certs/*.pem (or similar) every time
'http-fetch' is called.
* guix/build/download.scm (make-credendials-with-ca-trust-files): Wrap
in 'mlambda'.
| Ludovic Courtès |
2022-03-03 | download: Remove obsolete bit from docstring....This is a followup to f4cde9ac4aedb516c050a30fd999673da434bfa0.
* guix/build/download.scm (open-connection-for-uri): Remove bit about
'close-connection' from the docstring.
| Ludovic Courtès |
2022-03-02 | shell: Disable caching when '-p' is passed....Fixes <https://issues.guix.gnu.org/53658>.
Reported by Guillaume Le Vaillant <glv@posteo.net>.
Previously we would wrongfully cache things, by adding a
new (profile . _) pair to the option alist, when the user runs:
guix shell -p /path/to/profile -q
* guix/scripts/shell.scm (profile-cached-gc-root): Add ('profile . _) case.
| Ludovic Courtès |
2022-03-02 | guix: Index the man-db database via man pages names....Fixes <https://issues.guix.gnu.org/38838>.
* guix/man-db.scm (write-mandb-database): Use the abbreviated base name of the
man page as the key, not its full file name.
| Maxim Cournoyer |
2022-02-27 | pull: No longer print upgraded/added packages upon completion....* guix/scripts/pull.scm (build-and-install): Remove call to
'display-profile-news' and adjust accordingly.
| Ludovic Courtès |
2022-02-27 | pull: '--news' no longer shows package lists....* guix/scripts/pull.scm (display-channel-news): Return #t when news were
displayed.
(display-news): Add #:profile-news? parameter and honor it. Print
something there were no news.
(process-query): For 'display-news', call 'display-channel-news'
directly.
* doc/guix.texi (Invoking guix pull): Adjust accordingly.
| Ludovic Courtès |
2022-02-24 | build: julia-build-system: Fix corner-case for parallel tests....* guix/build/julia-build-system.scm (check): Do not run parallel tests when
'--cores=1'.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
| zimoun |
2022-02-24 | build: julia: Add 'julia-package-dependencies' as keyword....* guix/build-system/julia.scm (link-depot): Accept julia-package-dependencies
keyword and use it for 'julia-create-package-toml' function.
(julia-create-package-toml): Use pattern matching.
(julia-build): Add 'julia-pacakge-dependencies'.
* guix/build/julia-build-system.scm (julia-build): Add
'#:julia-package-dependencies' keyword.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
| Efraim Flashner |
2022-02-18 | guix build: Warn when attempting to build an unsupported package....Fixes <https://issues.guix.gnu.org/51801>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.
* guix/scripts/build.scm (options->derivations)[warn-if-unsupported]:
New procedure.
[compute-derivation]: Use it.
* tests/guix-build.sh: Add test.
| Ludovic Courtès |
2022-02-18 | profiles: 'profile-derivation' rejects unsupported packages....Previously user-facing commands would happily start building packages
even if they do not support that system. With this change, all the
user-facing commands reject unsupported packages without going further.
* guix/profiles.scm (profile-derivation): Add #:allow-unsupported-packages?.
Define 'check-supported-packages' and honor #:allow-unsupported-packages?.
* tests/guix-pack.sh, tests/guix-package.sh, tests/guix-shell.sh: Ensure
that unsupported packages are rejected.
* tests/guix-system.sh: Pass "--system=armhf-linux" when attempting to
build gnu/system/examples/asus-c201.tmpl.
| Ludovic Courtès |
2022-02-18 | packages: 'package-transitive-supported-systems' ignores '%current-target-sys......Previously 'package-transitive-supported-systems' would enter an
infinite loop over the cross-compilation tool chain if
%CURRENT-TARGET-SYSTEM was set.
* guix/packages.scm (package-transitive-supported-systems)[supported-systems-procedure]:
Pass explicit SYSTEM and TARGET parameters.
* tests/packages.scm ("supported-package? vs. %current-target-system"):
New test.
| Ludovic Courtès |
2022-02-16 | status: Do not pass a non-literal format string to 'format'....* guix/status.scm (print-build-event): Use 'display' instead of 'format'
for hooks.
| Ludovic Courtès |
2022-02-16 | status: Use bold more sparsely at -v1....Until now, at -v1, all the "apply N grafts" messages (for instance)
would be displayed in bold. This would typically result in several
subsequent lines all bold, although none of them is particularly
interesting. This improves on that by avoiding bold at -v1 for these
messages.
* guix/status.scm (print-build-event)[emph]: New variable.
Use it for the "View build log", "expected hash", and "offloading build"
messages.
[info]: Default to 'identity' when PRINT-URLS? and PRINT-LOG? are both
false.
| Ludovic Courtès |
2022-02-16 | status: Do not print .drv file names for grafts....With this change, "guix build vim-full" prints:
applying 15 grafts for vim-full-8.2.4306 ...
instead of showing /gnu/store/…-vim-full-8.2.4306.drv.
* guix/status.scm (print-build-event): In the 'graft' case, print just
the "package name" part of DRV.
| Ludovic Courtès |
2022-02-16 | gexp: Preserve source location for #~ and #$ read extensions....Read hash extensions preserve source location info as source properties
on their result. However, in Guile 3.0.8, that location would be
dismissed, leading 'local-file' to fail to resolve file names relative
to the source directory.
Fixes <https://issues.guix.gnu.org/54003>.
Reported by Aleksandr Vityazev <avityazev@posteo.org>.
* guix/gexp.scm <eval-when> [read-syntax-redefined?, read-procedure]
[read-syntax*]: New variables.
[read-ungexp]: Adjust to expect either sexps or syntax objects.
[read-gexp]: Call 'read-procedure'.
* tests/gexp.scm ("local-file, relative file name, within gexp")
("local-file, relative file name, within gexp, compiled"): New tests.
| Ludovic Courtès |
2022-02-15 | guix system: Fix 'describe' when booting the latest generation....Fixes a regression introduced in
9679123ce083c69cdfd1505d95a4066d41280394, whereby 'guix system describe'
would error out when /run/current-system points to /gnu/store/…-system,
which is the case when booting the latest generation or after
reconfigure.
* guix/scripts/system.scm (process-command): For 'describe'. Try
'generation-number' with and without the optional argument.
| Ludovic Courtès |
2022-02-15 | gexp: 'computed-file' always uses a native Guile....Fixes a regression whereby, when cross-compiling, 'computed-file' would
use a cross-compiled Guile as its builder, which would fail to run.
Regression introduced in af57d1bf6c46f47d82dbc234dde1e16fa8634e9d (the
problem had always been there but was hidden before behind the (not guile)
condition.)
* guix/gexp.scm (computed-file-compiler): For 'guile', pass #:target #f.
* tests/gexp.scm ("lower-object, computed-file, #:target"): New test.
| Ludovic Courtès |
2022-02-14 | profiles: texlive-font-maps: Create ls-R file....* guix/profiles.scm (texlive-font-maps): Run mktexlsr on resulting tree to
provide ls-R file.
| Ricardo Wurmus |
2022-02-14 | pull: '--list-generations' pipes its output to the pager....* guix/scripts/pull.scm (process-query): For 'list-generations queries,
use 'with-paginated-output-port'.
(display-news-entry-title): Pass second argument to 'highlight'.
(display-news-entry): Pass second argument to 'dim'.
| Ludovic Courtès |
2022-02-14 | ui: 'display-generation' uses color when talking to a pager....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'.
| Ludovic Courtès |
2022-02-14 | ui: 'with-paginated-output-port' gives access to the wrapped port....* guix/ui.scm (pager-port-mapping): New variable.
(pager-wrapped-port): New procedure.
(call-with-paginated-output-port): Parameterize 'pager-port-mapping'.
| Ludovic Courtès |
2022-02-14 | pull: '--list-generations' lists packages only with '--details'....* guix/scripts/pull.scm (show-help, %options): Add "--details".
(process-query): Honor it.
* doc/guix.texi (Invoking guix pull): Document it.
| Ludovic Courtès |
2022-02-14 | publish: Do not sign the URL/Compression/FileSize narinfo fields....This will allow mirror operators to alter these non-normative bits of a
narinfo without having to resign narinfos.
* guix/scripts/publish.scm (narinfo-string): Remove
URL/Compression/FileSize from BASE-INFO. Move them after "Signature".
* tests/publish.scm ("/*.narinfo")
("/*.narinfo with properly encoded '+' sign")
("/*.narinfo with lzip + gzip")
("with cache, lzip + gzip"): Adjust accordingly.
* tests/substitute.scm ("query narinfo with signature over relevant subset"):
New test.
| Ludovic Courtès |
2022-02-14 | git-authenticate: Ensure the target is a descendant of the introductory commit....Fixes a bug whereby authentication of a commit *not* descending from the
introductory commit could succeed, provided the commit verifies the
authorization invariant.
In the example below, A is a common ancestor of the introductory commit
I and of commit X. Authentication of X would succeed, even though it is
not a descendant of I, as long as X is authorized according to the
'.guix-authorizations' in A:
X I
\ /
A
This is because, 'authenticate-repository' would not check whether X
descends from I, and the call (commit-difference X I) would return X.
In practice that only affects forks because it means that ancestors of
the introductory commit already contain a '.guix-authorizations' file.
* guix/git-authenticate.scm (authenticate-repository): Add call to
'commit-descendant?'.
* tests/channels.scm ("authenticate-channel, not a descendant of introductory commit"):
New test.
* tests/git-authenticate.scm ("authenticate-repository, target not a descendant of intro"):
New test.
* tests/guix-git-authenticate.sh: Expect earlier test to fail since
9549f0283a78fe36f2d4ff2a04ef8ad6b0c02604 is not a descendant of
$intro_commit. Add new test targeting an ancestor of the introductory
commit, and another test targeting the v1.2.0 commit.
* doc/guix.texi (Specifying Channel Authorizations): Add a sentence.
| Ludovic Courtès |
2022-02-14 | git: Add 'commit-descendant?'....* guix/git.scm (commit-descendant?): New procedure.
* tests/git.scm ("commit-descendant?"): New test.
| Ludovic Courtès |
2022-02-14 | tests: Set a hard build timeout....* guix/tests.scm (open-connection-for-tests): Pass #:timeout to
'set-build-options'.
(call-with-external-store): Add call to 'set-build-options'.
| Ludovic Courtès |
2022-02-13 | gnu: cpu: Add detection for AMD CPUs....* guix/cpu.scm <cpu>: Add vendor field.
(current-cpu): Also fill in the 'vendor' field.
(cpu->gcc-architecture): Add detection logic for AMD CPUs.
| Efraim Flashner |
2022-02-13 | guix: cpu: Rewrite based on feature flags....* guix/cpu.scm (cpu->gcc-architecture): Rewrite detection based on
detected feature flags.
| Efraim Flashner |
2022-02-11 | tests: Pass #:guile to 'computed-file' & co....Fixes a regression introduced in
af57d1bf6c46f47d82dbc234dde1e16fa8634e9d whereby tests would end up
building the world.
* guix/gexp.scm (mixed-text-file): Add #:guile parameter and honor it.
* tests/gexp.scm ("mixed-text-file"): Pass #:guile to 'mixed-text-file'.
("file-union"): Pass #:guile to 'file-union'.
("lower-object, computed-file"): Pass #:guile to 'computed-file'.
("lower-object, computed-file + grafts"): Likewise.
* tests/packages.scm ("origin->derivation, single file with snippet"):
Likewise.
* tests/profiles.scm ("profile-derivation, ordering & collisions"):
Likewise.
* guix/tests.scm (test-file): Likewise.
| Ludovic Courtès |
2022-02-11 | build-system/texlive: Be explicit about #:guile-for-build....This ensures package derivations are not a function of the value
of (%guile-for-build).
* guix/build-system/texlive.scm (texlive-build): Explicitly pass
#:guile-for-build to 'gexp->derivation'.
| Ludovic Courtès |
2022-02-11 | gexp: <computed-file> does not honor (%guile-for-build)....* guix/gexp.scm (computed-file-compiler): Default to (default-guile).
That way, lowering of <computed-file> is not affected by the
'%guile-for-build' parameter.
(file-union): Add #:guile parameter and honor it.
* gnu/packages/ruby.scm (ruby-tzinfo-data): Pass #:guile to 'file-union'.
| Ludovic Courtès |
2022-02-08 | deprecation: Refine the old daemon deprecation warning message....* guix/deprecation.scm (warn-about-old-daemon): Mention a direct consequence
of failing to upgrade the daemon.
* guix/store.scm (build-things): Add a comment explaining the rationale to
emit a deprecation warning for a daemon older than version 0x163.
Suggested-by: Ricardo Wurmus <rekado@elephly.net>
| Maxim Cournoyer |
2022-02-08 | store: Warn about daemon deprecation....* guix/deprecation.scm (warn-about-old-daemon): New procedure.
* guix/store.scm (build-things): Use it to warn about old daemons.
| Mathieu Othacehe |
2022-02-08 | import: utils: Harden beautify-description....* guix/import/utils.scm (beautify-description): Handle non-string
arguments.
[use-modules]: Explicitly import G_ from (guix i18n) and make (guix ui)
import explicit.
* guix/import/opam.scm: [use-modules] Make imports explicit for module
(guix import utils).
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Alice BRENON |
2022-02-07 | build: Fix typo in file-size docstring....* guix/build/store-copy.scm (file-size): Fix typo.
| Maxim Cournoyer |
2022-02-07 | guix: Restore profile hook for TeX Live font maps....Long ago we had a profile hook, called “texlive-configuration”, which would
operate on the texlive-* packages that have actually been installed in the
profile, build a union directory, and then install a texmf.cnf file that
declared the prefix of the TeX Live tree to be the union directory. It then
generated font maps based on the fonts that had actually been installed.
This approach had multiple disadvantages, the worst of which was that you
could only really have one TeX Live tree. Commit
04a0b1e09abce99857e7930336421ca6d15ae630 addressed this, where texmf.cnf was
modified *once* and for all in texlive-bin to reference the GUIX_TEXMF
variable to determine the root of the tree. This made much of
“texlive-configuration” obsolete, because we didn’t need to have any union
directories at all, because we had no need for a customized per-profile
variant of texmf.cnf.
Unfortunately, with the loss of the profile hook we would no longer build font
maps. This patch resurrects the profile hook: we’re again generating font
maps (such as pdftex.map) based on the contents of the profile.
* gnu/packages/tex.scm (texlive-default-updmap.cfg): New variable.
* guix/profiles.scm (texlive-configuration): Rename this...
(texlive-font-maps): ...to this; update to run updmap-sys on the contents of
the profile to generate only font maps.
(%default-profile-hooks): Add texlive-font-maps.
* guix/status.scm (hook-message): Rename unused texlive-configuration to
texlive-font-maps.
| Ricardo Wurmus |
2022-02-05 | guix: maven: Fix java parser....* guix/build/maven/java.scm (comment, comment-chr): Support more comment
styles.
| Julien Lepiller |
2022-02-02 | deploy: Add '--execute'....* guix/scripts/deploy.scm (show-help, %options): Add '--execute'.
(invoke-command): New procedure.
(guix-deploy): Break arguments at "--" and handle '-x' and associated
command.
* doc/guix.texi (Invoking guix deploy): Document it.
| Ludovic Courtès |
2022-02-02 | guix system: 'describe' shows the running system, not the current one....* guix/profiles.scm (generation-number): Add optional 'base-profile'
parameter and use it.
* guix/scripts/system.scm (process-command): Add "/run/current-system"
as first argument to 'generation-number'.
* doc/guix.texi (Invoking guix system): Clarify that 'guix system
describe' shows the running system.
| Ludovic Courtès |
2022-02-02 | import: pypi: Display a hint upon "no source release" errors....Fixes <https://issues.guix.gnu.org/49083>.
* guix/import/pypi.scm (pypi->guix-package): Upon
'missing-source-error?', raise a compound condition with a hint.
| Ludovic Courtès |
2022-02-02 | import: pypi: Use 'with-error-handling'....* guix/scripts/import/pypi.scm (guix-import-pypi): Wrap body in
'with-error-handling'.
| Ludovic Courtès |
2022-01-29 | build-system: emacs: Ensure that package descriptions are generated....This patch addresses the second part of <https://bugs.gnu.org/48331>.
While existing -pkg.el files were previously installed, no such files
were generated for packages lacking them, resulting in packages not
being listed as installed and not being available towards
“describe-package”.
* guix/build/emacs-build-system.scm (find-root-library-file)
(ensure-package-description): New variables.
(%standard-phases): Add ‘ensure-package-description’.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Andrew Tropin |
2022-01-28 | home: 'reconfigure' checks for potential downgrades....* guix/scripts/home.scm (show-help, %options): Add "--allow-downgrades".
(%default-options): Remove 'build-mode'; add 'validate-reconfigure'.
(perform-action): Add #:validate-reconfigure. Call
'check-forward-update' when ACTION is 'reconfigure.
(process-action): Pass #:validate-reconfigure to 'perform-action'.
* gnu/home/services.scm (home-provenance): Export.
* doc/guix.texi (Invoking guix home): Document '--allow-downgrades'.
| Ludovic Courtès |