Commit graph

81392 commits

Author SHA1 Message Date
Ludovic Courtès
04b2f3dd80
packages: Add 'modify-inputs'.
* guix/packages.scm (inputs-sans-labels, replace-input): New procedures.
(prepend, replace, modify-inputs): New macros.
* doc/guix.texi (Defining Package Variants): Document 'modify-inputs'.
* dir-locals.el: Add 'modify-inputs' and its keywords.
2021-07-11 00:49:14 +02:00
Ludovic Courtès
ba32f63638
packages: Add 'lookup-package-input' & co.
* guix/packages.scm (lookup-input, lookup-package-input)
(lookup-package-native-input, lookup-package-propagated-input)
(lookup-package-direct-input): New procedures.
* doc/guix.texi (package Reference): Document them.
2021-07-11 00:49:14 +02:00
Ludovic Courtès
b7f1b4c1d0
lint: Add 'input-labels' checker.
* guix/lint.scm (check-input-labels): New procedure.
(%local-checkers): Add 'input-labels' checker.
* tests/lint.scm ("input labels: no warnings")
("input labels: one warning"): New tests.
* doc/guix.texi (Invoking guix lint): Mention it.
2021-07-11 00:49:14 +02:00
Ludovic Courtès
8524349f78
packages: Allow inputs to be plain package lists.
* guix/packages.scm (add-input-label, sanitize-inputs): New procedures.
(<package>)[inputs, propagated-inputs, native-inputs]: Add 'sanitize' property.
* doc/guix.texi (Defining Packages, package Reference):
(Defining Package Variants): Adjust examples accordingly.
* tests/packages.scm ("transaction-upgrade-entry, zero upgrades, propagated inputs")
("transaction-upgrade-entry, grafts")
("package-transitive-inputs")
("package-transitive-supported-systems")
("package-closure")
("supported-package?")
("package-derivation, inputs deduplicated")
("package-transitive-native-search-paths")
("package-grafts, indirect grafts")
("package-grafts, indirect grafts, propagated inputs")
("package-grafts, same replacement twice")
("package-grafts, dependency on several outputs")
("replacement also grafted")
("package->bag, sensitivity to %current-target-system")
("package->bag, propagated inputs")
("package->bag, sensitivity to %current-system")
("package-input-rewriting/spec, identity")
("package-input-rewriting, identity"): Use the label-less input style.
2021-07-11 00:49:14 +02:00
Ludovic Courtès
8be1632199
records: Support field sanitizers.
* guix/records.scm (make-syntactic-constructor): Add #:sanitizers.
[field-sanitizer]: New procedure.
[wrap-field-value]: Honor F's sanitizer.
(define-record-type*)[field-sanitizer]: New procedure.
Pass #:sanitizer to 'make-syntactic-constructor'.
* tests/records.scm ("define-record-type* & sanitize")
("define-record-type* & sanitize & thunked"): New tests.
2021-07-11 00:49:14 +02:00
Ludovic Courtès
2a3cd4ee35
environment: Adjust to earlier 'gcc-bootstrap' search paths changes.
This is a followup to fe6775f52b.

* tests/guix-environment.sh: Expect C_INCLUDE_PATH rather than CPATH in
environment containing 'gcc-bootstrap'.
2021-07-11 00:46:54 +02:00
Ludovic Courtès
152b167cfa
pack: Adjust test to earlier <compressor> changes.
This is a followup to 5a0997ef7f, which
broke the "self-contained tarball" test.

* tests/pack.scm (%gzip-compressor): Add 'list' in third field.
2021-07-11 00:39:56 +02:00
Ludovic Courtès
ac815ecd63
ci: Build commencement packages supported on the target system.
This is a followup to df49fe2a13.

* gnu/ci.scm (%bootstrap-packages): Rename to...
(commencement-packages): ... this, and turn into a procedure.  Filter
packages that pass 'supported-package?'.
(cuirass-jobs): Adjust accordingly.
2021-07-10 19:59:31 +02:00
Julien Lepiller
80506bc6da
gnu: python-pyyaml: Fix build.
python-cython is required to generate the C source for the libyaml
extension, which is required for the `_yaml' module to work.  This in
turn lets the `sanity-check' phase succeed.

* gnu/packages/python-xyz.scm (python-pyyaml)[inputs]: Add
python-cython.
2021-07-10 01:39:07 +02:00
Ludovic Courtès
c823b95825
gnu: coreutils: Patch broken Gnulib tests.
Fixes <https://bugs.gnu.org/49459>.

* gnu/packages/patches/coreutils-gnulib-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (coreutils)[source]: Use it.
2021-07-10 01:31:42 +02:00
Mathieu Othacehe
df49fe2a13
ci: Add bootstrap packages to the core subset.
* gnu/ci.scm (%bootstrap-packages): New variable.
(cuirass-jobs): Add it to the core subset.
2021-07-09 14:12:40 +02:00
Brice Waegeneire
7bb9c3ebbb
gnu: kmod: Add zstd support.
* gnu/packages/linux.scm (kmod)[inputs]: Add zstd:lib.
[arguments]: Enable zstd support.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-07-08 19:21:11 +02:00
Brice Waegeneire
25041719da
gnu: kmod: Update to 29.
* gnu/packages/linux.scm (kmod): Update to 29.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-07-08 19:20:46 +02:00
Matthew James Kraai
64b8e004fd
gnu: xkbcomp: Update to 1.4.5.
* gnu/packages/xorg.scm (xkbcomp): Update to 1.4.5.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-07-08 16:18:10 +02:00
Ludovic Courtès
f670c11c5b
gnu: libdatrie: Turn configure flags into a gexp.
* gnu/packages/gtk.scm (libdatrie)[arguments]: Turn #:configure-flags
into a gexp.
2021-07-08 14:15:20 +02:00
Ludovic Courtès
5f919605e9
gnu: libdatrie: Run tests sequentially.
Fixes <https://bugs.gnu.org/49463>.

* gnu/packages/gtk.scm (libdatrie)[arguments]: Add #:parallel-tests?.
2021-07-08 14:12:05 +02:00
Ludovic Courtès
7a9f4822c0
utils: Add 'search-input-directory'.
* guix/build/utils.scm (search-input-directory): New procedure.
* doc/guix.texi (Build Utilities): Document it next to
'search-input-file'.  Tweak wording.
2021-07-08 00:28:57 +02:00
Maxime Devos
198df03756
build-system/gnu: patch-shebangs: Also patch shebangs in "/libexec".
Shebangs in "/bin" and "/sbin" subdirectories are currently
patched by patch-shebangs. But shebangs in "/libexec" currently
aren't, even though they occasionally need to be. E.g. when using
wrap-program on an executable in "libexec" without an explicit #:sh
when cross-compiling.

* guix/build/gnu-build-system.scm (patch-shebangs):
  Add "/libexec" to 'bin-directories'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-08 00:28:57 +02:00
Ludovic Courtès
285f3b58c6
gnu: guile: Skip 'test-stack-overflow'.
* gnu/packages/guile.scm (guile-3.0)[arguments]: Add
'disable-stack-overflow-test' phase.
2021-07-08 00:28:57 +02:00
Ludovic Courtès
145a5a5797
gnu: glibc: Fix cross-compilation to powerpc64le-linux-gnu.
Fixes <https://bugs.gnu.org/49417>.
Reported by Maxime Devos <maximedevos@telenet.be>.

* gnu/packages/patches/glibc-cross-objcopy.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc)[source]: Use it.
2021-07-08 00:28:56 +02:00
Chris Marusich
68b0e0d511
gnu: Disable more LuaJIT components on powerpc64le systems.
Fixes: <https://bugs.gnu.org/49218>.

* gnu/packages/tex.scm (texlive-bin)[#:configure-flags]: Add
"--disable-luajithbtex" on powerpc64le systems.
(texlive-latex-base)[#:phases][build]: Add "mfluajit" to the disabled-formats
list on powerpc64le systems.
2021-07-06 17:54:20 -07:00
Efraim Flashner
4407ad0fd7
gnu: bc: Don't duplicate bootstrap phase.
* gnu/packages/algebra.scm (bc)[arguments]: Use custom 'autoconf phase
to replace standard 'bootstrap phase.
2021-07-06 12:49:52 +03:00
Ludovic Courtès
eeedb328da
gnu: gcc: Fix cross-compilation.
This fixes cross-compilation of GCC, as in:

  guix build --target=aarch64-linux-gnu -e '(@ (gnu packages gcc) gcc-10)'

* gnu/packages/gcc.scm (gcc-canadian-cross-objdump-snippet): New variable.
(gcc-5)[source]: Use it instead of inline 'snippet'.
(gcc-8)[source]: Add 'modules' and 'snippet'.
(gcc-9)[source]: Likewise.
(gcc-10)[source]: Likewise.
(gcc-11)[source]: Likewise.
2021-07-06 08:50:31 +02:00
Ludovic Courtès
dbacdb8c03
gnu: bootstrap-tarballs: Turn builder into a gexp.
* gnu/packages/make-bootstrap.scm (%bootstrap-tarballs)[arguments]: Turn
 #:builder into a gexp.
2021-07-05 23:57:20 +02:00
Ludovic Courtès
8740a62b6b
gnu: bootstrap-tarballs: Fix build.
* gnu/packages/make-bootstrap.scm (%bootstrap-tarballs)[arguments]: Make
'use-modules' the first expression.  Failing that, 'match' would not be
properly expanded when running on Guile 3.0.
2021-07-05 22:18:23 +02:00
Ludovic Courtès
6265c004cb
gnu: texlive: Fix Texinfo markup in descriptions.
* gnu/packages/tex.scm (texlive-latex-atveryend)[description]: Fix
Texinfo markup.
(texlive-generic-etexcmds)[description]: Likewise.
(texlive-generic-kvdefinekeys)[description]: Likewise.
2021-07-05 16:54:25 +02:00
Ludovic Courtès
87d37a02f7
tests: Fix typo in 'tests/store.scm'.
This typo had always been there since the test was introduced in commit
ce72c78074.  Presumably, it became visible
with 9e5812ac59, where caching was no
longer global and thus the 'store' argument of 'package-derivation' was
actually being used.

* tests/store.scm ("current-build-output-port, UTF-8"): Refer to
'%store' rather than 's' in 'package-derivation' call.
2021-07-05 16:43:37 +02:00
Ludovic Courtès
7d8c8b3194
build-system/trivial: Honor build inputs when cross-compiling.
Fixes a regression introduced in
7d873f194c whereby host inputs would be
missing altogether from '%build-inputs', which broke cross-compilation.

* guix/build-system/trivial.scm (trivial-cross-build): Append
HOST-INPUTS to the 'with-build-variables' argument.
2021-07-05 16:26:54 +02:00
Ludovic Courtès
9ac9df25a1
ci: Change "core" subset to include the latest GCC and Guile.
* gnu/ci.scm (%core-packages): Replace GCC-7 by GCC-11 and GUILE-2.0 by
GUILE-3.0.
2021-07-05 16:09:03 +02:00
Ludovic Courtès
d8fdd1c74a
tests: Adjust Python "sanity" check tests.
This is a followup to 09448c0994.

The 'check-build-failure' procedure would not actually check anything
since it did not call 'build-derivations'.  However, it was throwing an
exception for unrelated reasons, so the tests would pass.

* tests/builders.scm (check-build-failure): Use 'guard' instead of
'false-if-exception'.  Call 'build-derivations' to actually check for
build failures.
2021-07-05 15:41:45 +02:00
Ludovic Courtès
99ea6a2996
tests: Unset NIX_STORE_DIR when running external tests.
This is a followup to cfcead2e51 and
47a6a938c3, which made (guix packages)
dependent on the value of NIX_STORE_DIR.

* guix/tests.scm (call-with-external-store): Unset NIX_STORE_DIR before
calling PROC.
2021-07-05 15:34:24 +02:00
Sarah Morgensen
5318bade32
gnu: custom-gcc: Update regex for removing executables.
Do not match "gccgo". Match "gcov-dump" and "gcov-tool", as well as
"lto-dump" (which was introduced in GCC 10).

* gnu/packages/gcc.scm (custom-gcc)[arguments]: Update regex used for
matching broken or conflicting executables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-05 13:12:03 +02:00
Ludovic Courtès
a159586f8a
gnu: bison-boot0: Replace 'posix_spawn' on non-x86 platforms.
* gnu/packages/commencement.scm (bison-boot0)[arguments]: Pass #:configure-flags
on non-x86 platforms.
2021-07-05 12:53:05 +02:00
Ludovic Courtès
8a48302318
build-system/gnu: Define '%build-inputs' when cross-compiling.
Reported by Maxime Devos.

* guix/build-system/gnu.scm (gnu-cross-build)[builder]: Define
'%build-inputs' as it existed before
7d873f194c.
2021-07-05 12:35:29 +02:00
Thiago Jung Bauermann
04f9f9158d
build-system/texlive: Change default format to pdftex
LuaTeX has a bug where sometimes it corrupts the heap and aborts. This
causes the build of texlive packages to fail at random. The problem is
being tracked at https://issues.guix.gnu.org/48064.

While a fix isn't found, switch the default TeX format (and consequently
also the engine) to pdftex to avoid the issue.

* guix/build-system/texlive.scm (texlive-build): Change default value of
the ‘tex-format’ key parameter to “pdftex”.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-05 11:13:46 +02:00
Ludovic Courtès
949ed7aae1
gnu: glibc: Fix cross-compilation to aarch64-linux-gnu.
Fixes <https://bugs.gnu.org/49113>.
Reported by Maxime Devos <maximedevos@telenet.be>.

Previously, the cross-compiled libc.so linker script would read:

  OUTPUT_FORMAT(elf64-little)

instead of:

  OUTPUT_FORMAT(elf64-littleaarch64)

This is because glibc 2.33 runs "objdump -f" instead of
"aarch64-linux-gnu-objdump -f" to determine the output format.

* gnu/packages/patches/glibc-cross-objdump.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc)[source]: Use it.
2021-07-04 22:10:06 +02:00
Raghav Gururajan
9d9a8b079a
gnu: glib-networking: Disable openssl support.
Revert openssl support enabled in a1dd57ce83,
as GnuTLS is preferred over OpenSSL in Guix.

* gnu/packages/gnome.scm (glib-networking)[arguments](openssl): Remove flag.
[inputs]: Remove openssl.
2021-07-03 21:55:15 -04:00
Ludovic Courtès
f436723ce7
gnu: make-boot0: Build with "--disable-posix-spawn".
Fixes <https://bugs.gnu.org/49367>.

* gnu/packages/commencement.scm (gnu-make-boot0)[arguments]: Pass
"--disable-posix-spawn" on non-x86.
2021-07-04 00:08:33 +02:00
Brice Waegeneire
331ec572d1
gnu: libxkbcommon: Update to 1.3.0.
* gnu/packages/xdisorg.scm (libxkbcommon): Update to 1.3.0.
2021-07-03 23:04:38 +02:00
Ludovic Courtès
39f1486efd
ci: Remove duplicate ".SYSTEM" extension for cross-compilation jobs.
* gnu/ci.scm (package-cross-job): Remove ".SYSTEM".
2021-07-03 20:01:05 +02:00
Ludovic Courtès
fb40ec8aab
gnu: findutils-boot0: Really disable 'test-fnmatch' on i686-linux.
Commit f08b070019 intended to skip
'test-fnmatch' on both x86_64-linux and i686-linux but it ended up
skipping it on x86_64-linux only.

* gnu/packages/commencement.scm (findutils-boot0)[arguments]: Use
'member' to test whether (%current-system) is "x86_64-linux" or
"i686-linux".
2021-07-02 11:47:17 +02:00
Ludovic Courtès
98c075c24e
packages: 'package-derivation' honors 'system' again.
Fixes a regression introduced in
7d873f194c.

Starting from 7d873f194c, running

  guix build -s aarch64-linux sed

on an x86_64-linux machine would return an x86_64-linux machine, whereby
only the top derivation of the graph would be aarch64-linux while all
its dependencies would be x86_64-linux.

* guix/packages.scm (expand-input): Add 'system' parameter and honor it.
(bag->derivation, bag->cross-derivation): Pass SYSTEM to 'expand-input'.
* tests/packages.scm ("package-derivation, different system"): New test.
2021-07-01 21:34:42 +02:00
Ludovic Courtès
6bd8501e68
gnu: gcc-toolchain: Remove duplicate gcc-toolchain@10.
This is a followup to 4796b5d6d1.

Fixes the "fold-available-packages with/without cache" test in
'tests/packages.scm'.

* gnu/packages/commencement.scm (gcc-toolchain-8): Explicitly refer to
GCC-8.
(gcc-toolchain-10): Turn into an alias for GCC-TOOLCHAIN.
2021-07-01 14:10:18 +02:00
Tobias Geerinckx-Rice
4c0cf61afd
gnu: cups-filters: Update to 1.28.9.
* gnu/packages/cups.scm (cups-filters): Update to 1.28.9.
2021-06-27 01:12:52 +02:00
Chris Marusich
45dd2b4505
gnu: Simplify the use of --with-long-double-128.
Fixes <https://bugs.gnu.org/48825>.

In short, this change adds the hard-coded "--with-long-double-128" configure
option in one place and removes it from two other places.  This changes and
simplifies the use of this option for various architectures that start with
the string "powerpc".

* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add a clause for
targets starting with "powerpc64le-" or "powerpc-" which adds the
"--with-long-double-128" option.  This causes any package using this procedure
to be built using this new option on these architectures.  In particular, this
affects the gcc package and the gcc-final package, in addition to all the
other versions of GCC defined in (gnu packages gcc).
* gnu/packages/commencement.scm (gcc-boot0)[#:configure-flags]: Remove the
code that adds the "--with-long-double-128" configure option for all
architectures starting with "powerpc", since it is now redundant on the
architectures where it is needed. The gcc-boot0 package uses (and adds to) the
gcc package's configure options. This means that the above change in gcc.scm
is sufficient to ensure that the gcc-boot0 package's configure options will
include "--with-long-double-128" on powerpc64le and powerpc architectures.
Additionally, since the option is apparently not required on the big-endian
powerpc64 architecture, this change also has the nice effect of omitting the
option in that case.
* gnu/packages/cross-base.scm (cross-gcc-arguments)[#:configure-flags]: Remove
the code that adds the "--with-long-double-128" configure option for
powerpc64le, since it is now redundant. The cross-gcc-arguments procedure uses
(and adds to) the configure options of its xgcc argument (a package).  This
means that regardless of which gcc from gcc.scm is used as the xgcc, the above
change in gcc.scm is sufficient to ensure that the cross-gcc-arguments
procedure's configure options will include "--with-long-double-128" on the
powerpc64le and powerpc architectures.
2021-06-24 20:45:48 -07:00
Chris Marusich
50fed5b522
gnu: valgrind: Update to 3.17.0.
* gnu/packages/valgrind.scm (valgrind): Update to 3.17.0.
2021-06-23 20:59:05 -07:00
Chris Marusich
e4b5a23841
tests: gremlin: Skip file-needed/recursive if DT_NEEDED is empty.
* tests/gremlin.scm (file-needed/recursive): Skip the test when (file-runpath
%guile-executable) evaluates to the empty list.  This causes the test to be
correctly skipped in the case where Guix has been built using a foreign
distro's toolchain and libraries.
2021-06-23 20:30:22 -07:00
Tobias Geerinckx-Rice
a3d9af5eb1
gnu: Remove dead cups-CVE-2020-10001.patch.
* gnu/packages/patches/cups-CVE-2020-10001.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
2021-06-23 18:53:11 +02:00
Tobias Geerinckx-Rice
9dea3f101f
Merge branch 'master' into core-updates
Conflicts:
	gnu/packages/cups.scm
	gnu/packages/python-web.scm
	gnu/packages/web.scm
	guix/build/maven/pom.scm
2021-06-23 18:45:21 +02:00
Tobias Geerinckx-Rice
620669fd17
gnu: cups: Add replacement to fix CVE-2020-10001.
* gnu/packages/patches/cups-CVE-2020-10001.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/cups.scm (cups-minimal/fixed): New variable.
(cups-minimal)[replacement]: Assign it to new field.
2021-06-23 18:41:23 +02:00