* guix/build/gnu-build-system.scm (compress-documentation)
[maybe-compress]: Expand regex to include man sections with alphabetic
suffixes.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* guix/build-system/font.scm (font-build): Add #:license-file-regexp argument
and honour it.
* guix/build/font-build-system.scm (%license-file-regexp): New variable,
duplicated from (gnu build gnu-build-system).
This is required in cases where P uses gexps.
* guix/build-system/gnu.scm (package-with-extra-configure-variable): Use
gexps.
Change-Id: If5cbabc946cfcaf39c040a79f9495760639d44e2
The aim is to improve the efficiency of computing the man pages database,
which must decompress the man pages. Zstd is faster than gzip, especially for
decompression, and has a similar compression ratio.
* gnu/packages/commencement.scm (%final-inputs): Add zstd.
* guix/build/gnu-build-system.scm
(compress-documentation) Update doc.
<info-compressor, info-compressor-flags, man-compressor, man-compressor-flags>
<man-compressor-file-extension>: New arguments.
<compressed-documentation-extension>: Rename argument to...
<info-compressor-file-extension>: ... this. Add an 'extension' argument to
the retarget-symlink nested procedure. Use new arguments in nested
'maybe-compress' procedure.
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Ibaad4658f8e5151633714d263d9198f56d255020
* guix/build/utils.scm (compressor): Register zst file name extension.
* guix/packages.scm (%standard-patch-inputs): Add zstd.
(patch-and-repack): Rename tarxz-name nested procedure to tar-file-name, and
accept a new 'ext' argument; adjust accordingly. Add zstd binding, and
replace the XZ_DEFAULTS environment variable with ZSTD_NBTHREADS. Fallback to
xz when zstd is not available.
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I614a6be8c87a4a0858eadce616c51d8e9b9fc020
There were sometimes out of memory errors on the Berlin build farm, especially
for i686 or arm machines having less memory.
* guix/build/utils.scm (%xz-parallel-args): Reduce --memlimit value from 50%
to 20%.
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: If848bed92ef4c42d11a96057e59ee51a019d0573
This is a followup to a004c80cc04f535d1a74f72edea86173bc32d297, which
had no effect.
* guix/build-system/gnu.scm (%gnu-build-system-modules): Make public.
Change-Id: I2ac44060e530bc9abfe0ee3abbb586853a30ead2
The variable name didn’t match the ‘variable’ value.
* guix/search-paths.scm ($CPLUS_INCLUDE_PATH, $C_INCLUDE_PATH): Swap.
Change-Id: I181cd259dc8778ed51ea891bf7a345df89e5b6d8
A "locales" package is no longer included in the 'standard-packages'
collection, per commit de9d6d12 (gnu: commencement: Remove
‘glibc-utf8-locales’ from ‘%final-inputs’."), which is made because glibc now
embeds a C.UTF8 locale.
* guix/build-system/agda.scm (lower): Remove "locales" implicit input.
* guix/build/agda-build-system.scm (set-locpath): Do not fail when a locales
package is not available.
Change-Id: If14e074e457c625960d70fcaf46c7e829d5d58d1
This error was introduced by the removal of "locales" from the
standard-packages in commit de9d6d12 (gnu: commencement: Remove
‘glibc-utf8-locales’ from ‘%final-inputs’."), which is made because glibc now
embeds a C.UTF8 locale.
* guix/build-system/guile.scm (lower): Remove the "locales" implicit input.
Change-Id: Id28a95757309aba6a6be89b2c8a6e08847e35f58
* guix/build/copy-build-system.scm: Introduce '#:output' parameter to specify
which output label to use for a given rule.
* doc/guix.texi (Build Systems): Document it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This is a followup to 1cebc334a77030c0c94955981652f4df7608c9e3.
* guix/profiles.scm (ca-certificate-bundle)[libc-utf8-locales-for-target]:
Remove.
[build]: Use “C.UTF-8” instead of “en_US.utf8”.
(profile-derivation)[libc-utf8-locales-for-target]: Remove.
[set-utf8-locale]: Rewrite to a gexp that calls ‘setlocale’ for “C.UTF-8”.
* tests/profiles.scm ("profile-derivation, cross-compilation"): Remove
‘locales’ variable and related check.
Change-Id: I7cb148b9149fe5fbe5b9b1b25fdce1002ad1f37e
This is a followup to 1cebc334a77030c0c94955981652f4df7608c9e3.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): #:locale now
defaults to "C.UTF-8".
* guix/build/gnu-build-system.scm (install-locale): Likewise.
* gnu/packages/linux.scm (util-linux)[arguments]: In ‘pre-check’ phase,
remove ‘invalid-multibyte’ modification so the test runs under C.UTF-8.
Change-Id: I9a4bfe564bcd8bbd0d57ba04568eb6b8020bd051
This is a followup to 1cebc334a77030c0c94955981652f4df7608c9e3.
* guix/packages.scm (%standard-patch-inputs): Remove “locales” entry.
(patch-and-repack): Remove ‘locales’ variable.
[build]: Remove reference to ‘locales’. Use “C.UTF-8” unconditionally.
Change-Id: I54219b232880e05534599fbba8738cc00fb5d568
This is a followup to 9e4ce281dbd92e3c52b831824ebb1f77023c960c.
* guix/build-system/gnu.scm (%gnu-build-system-modules): New deprecated
alias.
Change-Id: Ia40c9920b2927ac00660647ab1a475e2a6d5b787
Until now users would have to cargo cult or inspect the private
%default-modules variable of (guix build-systems gnu) to discover which
modules to include when extending the used modules via the #:modules argument.
The renaming was automated via the command:
$ git grep -l %gnu-build-system-modules
| xargs sed 's/%gnu-build-system-modules/%default-gnu-imported-modules/' -i
* guix/build-system/gnu.scm (%gnu-build-system-modules): Rename to...
(%default-gnu-imported-modules): ... this.
(%default-modules): Rename to...
(%default-gnu-modules): ... this. Export.
(dist-package, gnu-build, gnu-cross-build): Adjust accordingly.
Change-Id: Idef307fff13cb76f3182d782b26e1cd3a5c757ee
According to xsltproc manpage it supports both XML_CATALOG_FILES and
SGML_CATALOG_FILES for catalog lookup.
Since the native-search-paths field is not thunked,
doing (package-native-search-paths libxslt) can lead to module import cycles
so we define a %libxslt-search-paths variable to avoid this kind of trouble.
* guix/search-paths.scm (%libxslt-search-paths): New variable.
* gnu/packages/xml.scm (libxslt)[native-search-paths]: Set to
%libxslt-search-paths.
* gnu/packages/perl.scm
(perl-app-xml-docbook-builder)[native-search-paths]: Ditto.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
These variables are used by some packages for XML/SGML catalog lookups.
* guix/search-paths ($XML_CATALOG_FILES, $SGML_CATALOG_FILES): New variable,
extracted from …
* gnu/packages/xml.scm (libxml2, opensp)[native-search-paths]: … here. Refer
to the variables from (guix search-paths) respectively.
* gnu/packages/perl.scm
(perl-app-xml-docbook-builder)[native-search-paths]: Use $XML_CATALOG_FILES.
* doc/guix.texi (Search Paths): Update documentation to reflect changes.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* guix/build/utils.scm (alist-cons-before)
(alist-cons-after): Error with a match failure if the
reference is not found, instead of appending to the alist.
* tests/build-utils.scm: Update tests to match the new behavior.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I3044b101bd06231d5cd55a544ac1009e6ce6f9a0
Reported by Christopher Baines <guix@cbaines.net>.
* guix/cache.scm (maybe-remove-expired-cache-entries): Define
‘expiry-port’; create it with ‘lock-file’. Change ‘last-expiry-date’
accordingly. Write timestamp straight to ‘expiry-port’.
* tests/cache.scm ("maybe-remove-expired-cache-entries, cleanup needed
but lock taken"): New test.
Change-Id: I22441d9d2c4a339d3d3878de131864db5a0ae826
THe gexp->derivation, store copy test involves building derivations which
compile a bunch of Guile code, which can be quite slow on slow platforms like
riscv64-linux.
* guix/tests.scm (open-connection-for-tests): Increase #:timeout to 10
minutes.
Change-Id: Iccfd976ce21a8902d776b36f17f5fb91b957d90d
* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Only create
the parent directories when they don't already exist.
Change-Id: I802aac4d6090ed07effddde3eb3195f64aca31d3
Fixes <https://issues.guix.gnu.org/issue/65979>.
* guix/hash.scm (%vcs-directories): New variable.
(vcs-file?): Add optional argument for passing VCS kind of the
file/repository.
(file-hash*): Adjust accordingly.
(vcs-file-predicate): New procedure and export it.
* guix/scripts/hash.scm (guix-hash)[file-hash]: Use it.
Change-Id: I8e286c3426ddefd664dc3a471d5a09e309824faa
* guix/ci.scm (channel-with-substitutes-available): Catch all error when
running 'find-latest-commit-with-substitutes'. Move the warning when failing.
Change-Id: I352e07f14417f77c7ebf0f40a01c6a2e58b15d78
* guix/build/cargo-build-system.scm (configure): Add an environment
variable to use pkg-config to find the zstd library.
Change-Id: Id53296c4a18fffd8aa2f2b9e4d52d98ff3486293
Fixes <https://issues.guix.gnu.org/71979>.
* guix/modules.scm (file-name->module-name): Strip leading “.” component
from FILE.
* tests/modules.scm ("file-name->module-name")
("file-name->module-name, leading dot"): New tests.
Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I3d1b9f3f21448050cac4f3b1aed5f8f03758d4c9
Cached checkouts could end up with stale untracked files, for example
because the checkout was interrupted. As a result, when this happens
for the Guix checkout, users would not get substitutes for ‘guix pull’.
* guix/git.scm (delete-untracked-files): New procedure.
(switch-to-ref): Use it.
* tests/git.scm ("update-cached-checkout, untracked files removed"): New
test.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
Change-Id: Iccbe644ade396ad27a037db7e0ef1c2a68ef91ce
* guix/scripts/build.scm (options->derivations)[compute-derivation]:
Pass ‘system’ to ‘package-source-derivation’.
* tests/guix-build.sh: Test ‘-S’ together with ‘-s’.
Change-Id: If35f116285dd9caaf939221163ad0ba831eea993
Rather than querying the built-in-builders from the inferior, as using the
host value allows specifying it when opening the connection.
* guix/inferior.scm (port->inferior): Have cached-store-connection take the
built-in-builders.
(inferior-eval-with-store): Call cached-store-connection with the store
connection built-in-builders.
Change-Id: I27c20732355c0c6aa646748a02df39db302cd568
When computing channel instance derivations.
This is useful when you want to generate compatible derivations that can be
run with a daemon that potentially doesn't support builtin builders that the
daemon you're using to generate the derivations has.
I'm looking at this in particular because I want to use this in the data
service, since it provides substitutes for derivations, and since these can be
built on other machines, it's useful to control which builtin builders they
depend on.
Fixes: <https://issues.guix.gnu.org/67250>.
* build-aux/build-self.scm (build-program): Accept
#:built-in-builders and pass along to port->connection or
open-connection as approriate.
(build): Accept and pass on #:built-in-builders.
* guix/channels.scm (build-from-source, build-channel-instance,
channel-instance-derivations, channel-instances->manifest,
channel-instances->derivation): Accept and pass on
#:built-in-builders.
Change-Id: I315c990de66c6f7dca25a859165a5568abe385ea
To open-connection and port->connection. This overrides the discovered
builtin builders that the daemon says it provides.
This is useful when you want to generate compatible derivations that can be
run with a daemon that potentially doesn't support builtin builders that the
daemon you're using to generate the derivations has.
I'm looking at this in particular because I want to use this in the data
service, since it provides substitutes for derivations, and since these can be
built on other machines, it's useful to control which builtin builders they
depend on.
* guix/store.scm (open-connection, port->connection): Accept
#:built-in-builders and use this instead of %built-in-builders.
Fixes: <https://issues.guix.gnu.org/67250>.
Change-Id: I45d58ab93b6d276d280552858fc81ebc2b58828a
This is handled by (guix ui).
* guix/build-system/meson.scm (make-machine-alist): Use a more specific
exception.
Change-Id: I842ba63739fdefe04460e938c7bc8aa54ea57b96
* 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
* guix/build-system/composer.scm (create-autoload):
Do not use the delete-duplicates function, stale code that should have
been removed in an earlier cleanup.
Change-Id: I778c1cfba7ef8de16a1ba297b583595b391b7e00
Signed-off-by: jgart <jgart@dismail.de>
* guix/import/github.scm (import-release): Use package-upstream-name instead
of package-name.
Change-Id: I9a4999a01156ce02584270837ceab70996b49106
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>