build-system/gnu: ‘package-with-extra-configure-variable’ uses gexps.
This is required in cases where P uses gexps.
* guix/build-system/gnu.scm (package-with-extra-configure-variable): Use
gexps.
Change-Id: If5cbabc946cfcaf39c040a79f9495760639d44e2
man-db: Add support for zstd compressed man pages.
* guix/man-db.scm: Autoload zlib and zstd modules.
(<mandb-entry>): Adjust comment.
(abbreviate-file-name): Adjust regexp.
(gz-compressed?, zstd-compressed?): New predicates.
(entry->string): Use them.
(man-page->entry): Adjust doc. Use input port reader appropriate to the
compression type, if any.
(man-files): Adjust regexp.
(mandb-entries): Adjust link resolving predicate.
* guix/profiles.scm (manual-database): Add guile-zlib extension.
Change-Id: I6336e46e2d324c520a7d15d6cafd12bbf43c5b09
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
build: gnu-build-system: Compress man pages with zstd.
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
packages: Repack patched source archives via zstd by default.
* 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
utils: Lower xz compression memory usage limit to 20%.
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
build-system/mix: Remove #:glibc-utf8-locales parameter.
* guix/build-system/mix.scm (default-glibc-utf8-locales): Remove.
(lower): Remove #:glibc-utf8-locales and its use.
Change-Id: Ibc8e00fb19e7c3404999e53855660ea11b9825af
build-system/gnu: Make ‘%gnu-build-system-modules’ alias public.
This is a followup to a004c80cc04f535d1a74f72edea86173bc32d297, which
had no effect.
* guix/build-system/gnu.scm (%gnu-build-system-modules): Make public.
Change-Id: I2ac44060e530bc9abfe0ee3abbb586853a30ead2
search-paths: Swap $C_INCLUDE_PATH and $CPLUS_INCLUDE_PATH.
The variable name didn’t match the ‘variable’ value.
* guix/search-paths.scm ($CPLUS_INCLUDE_PATH, $C_INCLUDE_PATH): Swap.
Change-Id: I181cd259dc8778ed51ea891bf7a345df89e5b6d8
build: agda-build-system: Do not rely on "locales" being present.
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
build: guile-build-system: Remove "locales" implicit input.
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
build: copy-build-system: Allow specifying different output labels.
* 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>
build-system/gnu: Turn PID 1 into an “init”-style process by default.
Fixes <https://issues.guix.gnu.org/30948>.
* guix/build/gnu-build-system.scm (separate-from-pid1): New procedure.
(%standard-phases): Add it.
* guix/build-system/gnu.scm (gnu-build): Add #:separate-from-pid1? and
honor it.
(gnu-cross-build): Likewise.
Reported-by: Carlo Zancanaro <carlo@zancanaro.id.au>
Change-Id: I6f3bc8d8186d1a571f983a38d5e3fd178ffa2678
packages: Output and error ports are line-buffered in ‘patch-and-repack’.
* guix/packages.scm (patch-and-repack): Add ‘setvbuf’ calls.
Change-Id: I039bb6407263d5172bf0bc716bda6860dc2615fb
profiles: Use C.UTF-8 instead of ‘glibc-utf8-locales’ where possible.
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
build-system/gnu: Change default locale to C.UTF-8.
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
packages: Remove reference to ‘glibc-utf8-locales’ in ‘patch-and-repack’.
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
guix: search-paths: Fix obj-c++ search paths.
* guix/search-paths.scm ($OBJCPLUS_INCLUDE_PATH): Also search
'include/c++'.
Change-Id: I403674038c1c3bf1251c710031496363c924f19a
gnu: gcc: Support objc, objc++ by default.
* gnu/packages/gcc.scm (gcc-4.7)[configure-flags]: Adjust the
enable-languages flag to also enable objc, obj-c++.
(gcc-objc-4.8, gcc-objc-4.9, gcc-objc-5, gcc-objc-6, gcc-objc-7,
gcc-objc-8, gcc-objc-9, gcc-objc-10, gcc-objc-11, gcc-objc-12, gcc-objc,
gcc-objc++-4.8, gcc-objc++-4.9, gcc-objc++-5, gcc-objc++-6,
gcc-objc++-7, gcc-objc++-8, gcc-objc++-9, gcc-objc++-10, gcc-objc++-11,
gcc-objc++-12, gcc-objc++, %objc-search-paths, %objc++-search-paths):
Remove variables.
* guix/search-paths.scm ($OBJC_INCLUDE_PATH, $OBJCPLUS_INCLUDE_PATH):
New variables.
(%gcc-search-paths): Include $OBJC_INCLUDE_PATH, $OBJCPLUS_INCLUDE_PATH.
Change-Id: Ib4cd176eb88c733a82f2d31e8cc45b9c61720f8f
build-system/gnu: Introduce ‘%gnu-build-system-modules’ deprecated alias.
This is a followup to 9e4ce281dbd92e3c52b831824ebb1f77023c960c.
* guix/build-system/gnu.scm (%gnu-build-system-modules): New deprecated
alias.
Change-Id: Ia40c9920b2927ac00660647ab1a475e2a6d5b787
build-systems: gnu: Export %default-gnu-imported-modules and %default-gnu-modules.
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