The upgrade to Make 4.3 and Coreutils 8.30 introduced test failures that
this commit addresses.
* gnu/packages/base.scm (coreutils-8.30): New variable.
* gnu/packages/linux.scm (proot)[native-inputs]: Add COREUTILS-8.30 and
GNU-MAKE-4.2.
The sparse03.at test apparently freezes the Hurd; messages
on the console:
165: listing sparse files bigger than 2^33
ext2fs: device:hd0s1: warning: bit already cleared for block 245780
ext2fs: device:hd0s1: warning: bit already cleared for block 245781
ext2fs: device:hd0s1: warning: bit already cleared for block 245782
...
ext2fs: BUG: unexpected fault on disk image ... err 0xa
ext2fs: disk-pager.c:98: fault_handler: Assertion 'err' failed.
the other tests just fail.
* gnu/packages/base.scm (tar)[arguments]: When compiling for the Hurd,
skip `sparse' and failing tests.
This reverts commit 67cbfeae30, which is
not longer necessary now that the 'ld.so' linker script of the cross
glibc contains "libhurduser.so libmachuser.so".
Until now cross-compilation would fail with:
i586-pc-gnu-ld: src/copy.o: undefined reference to symbol 'file_chauthor'
i586-pc-gnu-ld: /gnu/store/…-glibc-cross-i586-pc-gnu-2.29/lib/libhurduser.so.0.3: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
* gnu/packages/base.scm (coreutils)[arguments]: When 'hurd-target?', add
#:configure-flags.
* gnu/packages/base.scm (gnu-make-4.2): New public variable.
* gnu/packages/java.scm (openjdk9, openjdk10, openjdk11,
openjdk12)[native-inputs]: Add it.
* gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc): Use it.
* gnu/packages/base.scm (coreutils): Improve description and state that there
is no shell included.
Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
* gnu/packages/linux.scm (libcap)[supported-systems]: Remove the Hurd.
* gnu/packages/base.scm (coreutils)[inputs]: Include libcap only for supported
systems. Fixes building on the Hurd.
Fix coreutils cross-compilation for aarch64 that was broken by 8.32
update. The following error occured:
src/ls.c: In function 'print_dir':
src/ls.c:3026:24: error: 'SYS_getdents' undeclared (first use in this function); did you mean 'SYS_getdents64'?
if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
^~~~~~~~~~~~
SYS_getdents64
* gnu/packages/patches/coreutils-ls.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (coreutils): Apply it.
Fixes <https://bugs.gnu.org/30756>.
Initially reported by Julien Lepiller <julien@lepiller.eu>.
* gnu/packages/base.scm (make-gcc-libc): Remove
'treat-glibc-as-system-header' phase from 'arguments'.
* gnu/packages/commencement.scm (gcc-final): Likewise.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add "include/c++" to
'CPLUS_INCLUDE_PATH'.
(gcc-6)[native-search-paths]: Remove.
* gnu/packages/make-bootstrap.scm (gcc-for-bootstrap): Remove
'native-search-paths' and 'arguments'.
* gnu/packages/patches/python-2.7-search-paths.patch,
gnu/packages/patches/python-3-search-paths.patch: Replace "CPATH" with
"C_INCLUDE_PATH".
* guix/build-system/cmake.scm (lower): When not cross-compiling, move
INPUTS from the 'host-inputs' field to the 'build-inputs' field of the
bag, right after NATIVE-INPUTS.
* guix/build-system/glib-or-gtk.scm (lower): Likewise.
* guix/build-system/gnu.scm (lower): Likewise.
* guix/build-system/meson.scm (lower): Likewise.
* gnu/packages/patches/glibc-CVE-2019-19126.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/base.scm (glibc): Update to 2.30.
[source](patches): Adjust for 2.30.
(glibc-2.29): New public variable.
Until now the following wouldn't build:
--8<---------------cut here---------------start------------->8---
(use-modules (gnu packages commencement)
(gnu packages gcc)
(gnu packages base))
(make-gcc-libc gcc-9 glibc-2.27)
--8<---------------cut here---------------end--------------->8---
* gnu/packages/base.scm (make-gcc-libc)[phases]: Add environment
variables to place the target libc on the system header search path.
[make-flags]: Remove unncessary FLAGS_FOR_TARGET.
[native-inputs]: Construct in a way that doesn't require emptying
inputs.
* gnu/packages/base.scm (glibc-utf8-locales)[inputs]: Move to ...
[native-inputs]: ... here, in order to fix cross-compilation.
* gnu/packages/commencement.scm (glibc-utf8-locales-final)[inputs]: Move to ...
[native-inputs]: ... here, in order to fix cross-compilation.
* gnu/packages/base.scm (make-gcc-libc): Make public.
* gnu/packages/commencement.scm (make-gcc-toolchain): Add 'libc'
optional argument to specify using a non-default glibc package, also
make public.
The patch for glibc 2.28 and earlier replaces the same content, but the context
in the patch is different enough to fail to merge.
* gnu/packages/base.scm (make-glibc-locales)[source]: Add patch.
* gnu/packages/patches/glibc-locales.patch: Adjust for glibc 2.29 and move old
file...
* gnu/packages/patches/glibc-locales-2.28.patch: ...here.
* gnu/local.mk (dist_patch_DATA): Add it.
The 'glibc-supported-locales.patch' was updated for glibc 2.29, breaking
compatibility with 2.27. Add a 2.27-specific supported locales patch.
* gnu/packages/patches/glibc-2.27-supported-locales.patch: New file.
* gnu/packages/base.scm (glibc-2.27)[source](patches): Use
'glibc-2.27-supported-locales.patch' instead.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
Fixes <https://bugs.gnu.org/36076>.
Reported by Jack Hill <jackhill@jackhill.us>
and Giovanni Biscuolo <g@xelera.eu>
* gnu/build/locale.scm (locale->name+codeset): New file.
* gnu/packages/base.scm (make-glibc-locales): Add #:modules
and #:imported-modules. Add a 'symlink-normalized-codesets' phase.
* gnu/packages/base.scm (make-gcc-libc): New procedure, returns a gcc
that targets a specified libc.
(gcc-glibc-2.26, gcc-glibc-2.27): New public variables.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/base.scm (make-glibc-locales, make-glibc-utf8-locales): New
procedures.
(glibc-locales): Express in terms of make-glibc-locales.
(glibc-utf8-locales): Express in terms of make-glibc-utf8-locales.
(glibc-locales-2.27, glibc-utf8-locales-2.27): New variables.
This patch is missing from glibc 2.28 and is needed to support
/proc/self lookup when using the Hurd's procfs, which in turn is needed
for our 'guile-relocatable.patch'.
See <https://lists.gnu.org/archive/html/bug-hurd/2018-12/msg00024.html>.
* gnu/packages/patches/glibc-hurd-magic-pid.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc)[arguments]: Add 'apply-hurd-patch'
phase.
[native-inputs]: Add "hurd-magic-pid-patch" input.
* gnu/packages/cross-base.scm (cross-libc)[arguments]: Duplicate
'apply-hurd-patch' phase.
Version 2.28 of glibc is the first in a long time that fully supports
GNU/Hurd. This change updates the Hurd and Mach to provide the features
glibc 2.28 expects and adjusts the cross-compilation tool chain for
"i586-pc-gnu".
* gnu/packages/base.scm (glibc/linux): Rename to...
(glibc): ... this.
[propagated-inputs]: Add 'hurd-target?' case.
[arguments]: Use '--disable-werror' when 'hurd-target?'. Add
'augment-libc.so' phase when 'hurd-target?'.
[native-inputs]: Add MIG and PERL when 'hurd-target?'.
(glibc/hurd, glibc-for-target): Remove
(glibc/hurd-headers): Inherit from GLIBC, not GLIBC/HURD.
[arguments]: Remove "--enable-obsolete-rpc" configure flag and
'patch-configure-script' phase.
* gnu/packages/cross-base.scm (cross-kernel-headers)[xglibc/hurd-headers]:
Move 'set-cross-headers-path' after 'unpack'.
* gnu/packages/cross-base.scm (cross-libc)[cross-libc-for-target]:
Remove.
Pass "--disable-werror" when TARGET matches 'hurd-triplet?'.
* gnu/packages/hurd.scm (hurd-target?, patch-url): New procedures.
(gnumach-headers)[source](patches, modules, snippet): New fields.
(hurd-headers): Use Git commit 98b3390.
[native-inputs]: Add AUTOCONF and AUTOMAKE.
[arguments]: Add "ac_cv_func_*" configure flags.
(hurd-minimal)[native-inputs]: Remove.
[arguments]: In 'build' phase, build "include/assert-backtrace.h"
first.
Debian and Archlinux (at least) force the installation of the
localedata/SUPPORTED file of the glibc. This file lists all the supported
locales of the glibc.
* gnu/packages/patches/glibc-supported-locales.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc/linux): Add the previous patch,
(glibc-2.28): ditto.
* gnu/packages/patches/findutils-gnulib-libio.patch,
gnu/packages/patches/findutils-makedev.patch: New files.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (findutils)[source](patches): Use them.
* gnu/packages/patches/binutils-aarch64-symbol-relocation.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (binutils/fixed): New public variable.
* gnu/packages/linux.scm (make-linux-libre)[native-inputs]: On aarch64, define
new ld-wrapper with the above binutils and use it.
* gnu/packages/patches/glibc-reinstate-prlimit64-fallback.patch: New file.
* gnu/packages/base.scm (glibc/linux)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/patches/make-glibc-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (gnu-make)[source](patches): Use it.
* gnu/packages/base.scm (glibc/hurd)[arguments]: In the build phase procedure,
use 'invoke' instead of 'system*' and remove the vestigial result code
plumbing. Change the local macro 'make' into a normal procedure.
* gnu/packages/patches/glibc-allow-kernel-2.6.32.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc/linux)[replacement]: New field.
(glibc-2.26-patched): New variable.
Commit 62868f124c (gnu: tzdata: Preserve directory layout from before tzdata
2018a) changed the derivation of this package, which doesn't need to change yet.
* gnu/packages/base.scm (tzdata-for-tests)[arguments]: Copy the build
arguments from before commit 62868f124c.
tzdata 2018a instroduced some changes to the build and installation
procedures that commit e2832cdc3 failed to address. They are described
in the NEWS file.
This is a followup to commit e2832cdc35.
* gnu/packages/base.scm (tzdata)[arguments]: Set TZDEFAULT. Remove the
time-zone utility programs in a build phase.
This was mistakenly added in 67d527e35e and
already included in glibc 2.25.
* gnu/packages/base.scm (glibc-2.25)[source](patches): Remove
'glibc-CVE-2015-5180.patch'.
Suggested by Oleg Pykhalov <go.wigust@gmail.com>
and Roel Janssen <roel@gnu.org>.
* gnu/packages/base.scm (grep)[inputs]: New field.
* gnu/packages/commencement.scm (grep-final)[inputs]: New field.
Previously cross-compiling coreutils would fail with:
aarch64-linux-gnu-gcc -Os -g0 -Wl,--as-needed -static -pthread -o src/uptime src/uptime.o src/libver.a lib/libcoreutils.a lib/libcoreutils.a
/gnu/store/hk8615wmmzk28k5z06g69jm6vbhc8lgk-glibc-cross-aarch64-linux-gnu-2.26.105-g0890d5379c-static/lib/libc.a(mktime.o): In function `__mktime_internal':
/tmp/guix-build-glibc-cross-aarch64-linux-gnu-2.26.105-g0890d5379c.drv-0/glibc-2.26-105-g0890d5379c/time/mktime.c:353: multiple definition of `__mktime_internal'
lib/libcoreutils.a(mktime.o):mktime.c:(.text+0x214): first defined here
collect2: error: ld returned 1 exit status
* gnu/packages/base.scm (coreutils)[arguments]: Add #:configure-flags
when cross-compiling.
Previously cross-compilation would fail:
CC xvasprintf.o
xstrtol-error.c:50:16: warning: 'struct rpl_option' declared inside parameter list
int exit_status)
^
xstrtol-error.c: In function 'xstrtol_error':
xstrtol-error.c:84:5: error: invalid use of undefined type 'struct rpl_option'
* gnu/packages/patches/diffutils-getopt.patch: New file.
* gnu/packages/base.scm (diffutils)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.