* gnu/packages/patches/fontconfig-hurd-path-max.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/fontutils.scm (fontconfig): Use it.
This allows for native builds on the Hurd, doing
sudo ./pre-inst-env guix-daemon --disable-chroot --build-users-group=guixbuild &
./pre-inst-env guix build hello
* nix/libutil/util.cc (killUser)[__GNU__]: Avoid kill -1 bug; kill only
current process and ignore SIGKILL status in parent.
Co-authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
Checking for CLONE_NEWNS is only needed for using tha Linux specific clone(2),
otherwise we can use fork(2). Using clone on the Hurd needs some work, only
support LINUX for now. See
https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00190.html
* nix/libstore/build.cc (CHROOT_ENABLED): Break into CHROOT_ENABLED
and CLONE_ENABLED.
(DerivationGoal::startBuilder): Replace CHROOT_ENABLED with __linux__.
(DerivationGoal::runChild): Only define pivot_root() if SYS_pivot_root is
defined.
Co-authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
The 'hurd-minimal' package (via hurd-headers) now uses a git checkout and
added dependencies on autoconf, automake and teiinfo to build. Using those in
commencement creates a bootstrap loop. So, revert to a tarball release.
* gnu/packages/commencement.scm (hurd-minimal-boot0): Build from tarball;
remove autoconf, automake, texinfo bootstrap dependencies.
The 'hurd-headers' package now uses a git checkout and added dependencies on
autoconf and automake to build. Using those in commencement creates a
bootstrap loop. So, revert to a tarball release.
* gnu/packages/commencement.scm (hurd-version-boot0, hurd-source-boot0): New
variable.
(hurd-headers-boot0): Use it to build from tarball; remove autoconf, automake,
texinfo bootstrap dependencies.
The 'gnumach-headers' package now uses a git checkout and added dependencies
on autoconf, automake and texinfo to build. Using those in commencement
creates a bootstrap loop. So, revert to a tarball release.
* gnu/packages/commencement.scm (gnumach-headers-boot0): Build from tarball;
remove autoconf, automake, texinfo bootstrap dependencies.
On 3342a1182b
gnu: make-bootstrap: Use _IOLBF on Guile 2.0 only.
Run
./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs --verbosity=1
Producing
/gnu/store/lhca65c997pvic5cfrpm0dasniwqlg2a-bootstrap-tarballs-0
With guix hash -rx /gnu/store/lhca65c997pvic5cfrpm0dasniwqlg2a-bootstrap-tarballs-0
07jnq2by98f2a45k8wd2gj62iazvwfa4z7p3w3id4m1g0fdsvc3b
* gnu/packages/bootstrap.scm (%bootstrap-executables): Add entries for the
Hurd.
(bootstrap-executable-url): Use lilypond url for the Hurd.
(bootstrap-guile-url-path): Likewise.
(bootstrap-guile-hash): Add entry for the Hurd.
(%bootstrap-coreutils&co): Likewise.
(%bootstrap-binutils): Likewise.
(%bootstrap-glibc): Likewise.
(%bootstrap-gcc): Likewise.
* guix/packages.scm (%supported-systems): Add i586-gnu.
Co-authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
* gnu/packages/make-bootstrap.scm (%binutils-static-stripped, %gcc-stripped,
%bootstrap-tarballs)[arguments]: Wrap use of '_IOLBF' in 'cond-expand' and use
'line instead on Guile > 2.0.
* gnu/packages/bootstrap.scm (%bootstrap-executable-base-urls): New variable.
Add lilypond.org url as a fall-back.
(bootstrap-executable-file-name): New function.
(bootstrap-executable): Use them to implement fall-back for donwloads of
bootstrap executables.
* gnu/packages/make-bootstrap.scm (gcc-static): Use gcc-5. This fixes
building libstdc++-boot0 with a newly built %bootstrap-gcc.
(%gcc-stripped): Likewise.
(gcc-for-bootstrap): Likewise.
* gnu/packages/patches/gcc-5-hurd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gcc.scm (gcc-5): Use it.
As discussed on IRC, keeping bootstrap Guile on 2.0 simplifies adding new
architectures and removes the need for parameterizing
gnu/packages/bootstrap.scm.
This reverts commit 2acfe022a7.
* gnu/packages/make-bootstrap.scm (%guile-static): Revert to guile-2.0. Retain
build recipe.
* gnu/packages/patches/guile-relocatable.patch: Update for Guile 2.0.14.
This fixes cross building of coreutils, e.g.
./pre-inst-env guix build --target=i586-pc-gnu coreutils
* gnu/packages/cross-base.scm (cross-libc): Add -lhurduser, -lmachuser for the
Hurd.
* 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/hurd.scm (hurd-target?): Bugfix; the arguments to
string-suffix? to test (%current-system) were transposed, always resulting
in #f. Use hurd-triplet?.
(hurd-system?): New exported variable.
This follows up commit 2e9c43aa9a, which was
incomplete. Fixes <https://bugs.gnu.org/39358>.
* gnu/packages/patches/ghc-testsuite-dlopen-pie.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly. Also use tabs instead
of spaces on surrounding patches.
* gnu/packages/haskell.scm (ghc-8.6)[native-inputs]: Add patch for
"ghc-testsuite".
[arguments]: Remove incomplete workaround for the same issue.
Add a "lib" output to cross-gcc. This requires an upstream GCC patch adding
support for --with-toolexeclibdir configure option. This option allows to
install cross-built GCC libraries in a specific location.
This also fixes the computation of TOOLDIR_BASE_PREFIX, that fails when
/gnu/store/... directories are involved.
* gnu/packages/patches/gcc-7-cross-toolexeclibdir.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/cross-base.scm (cross-gcc)[source]: Apply it,
[outputs]: add a "lib" output,
(cross-gcc-snippet): fix TOOLDIR_BASE_PREFIX.
Incidentally, this fixes a build failure where GHC's build processes fail to
link libffi and libgmp for 'ghc-cabal'.
* gnu/packages/haskell.scm (ghc-8.4)[inputs]: Remove BINUTILS, GCC, and
MAKE-LD-WRAPPER.
[arguments]: Adjust accordingly.