As the lack of handling other systems, say aarch64-linux here seemed to cause
problems with guix pull on these systems. This should work around #64609.
* gnu/packages/hurd.scm (rumpkernel)[arguments]: Don't error for any system.
As noted in the comment, I think using git-fetch caused problems computing
derivaations for i586-linux (Guix would just use more and more memory).
This reverts commit 999a6ac0cf.
See also
https://logs.guix.gnu.org/hurd/2023-05-25.log#163610
* gnu/packages/hurd.scm (gnumach)[arguments]: Add --disable-net-group,
--disable-pcmcia-group, and --disable-wireless-group.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* gnu/packages/patches/netdde-build-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/hurd.scm (netdde)[source]: Update to
e67c284ac113d939b10b4578334f27dab29d5b08 and use it.
[inputs]: Add zlib:static.
[arguments]: Remove #true from build phases. In 'build' phase, remove
obsolete CFLAGS, and also build static version. In 'install' phase,
install them in <out>/hurd. There is no check target, so set #:tests?
to #false.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* gnu/packages/patches/gnumach-support-noide.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/hurd.scm (gnumach-headers): Use it.
* doc/guix.texi (Bootloader Configuration): Document it.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* gnu/packages/hurd.scm (hurd-minimal)[inputs]: Add gnumach-headers.
[arguments]: Rewrite to include libshouldbeinlibc and libstore.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Update xhurd-minimal
accordingly: Add xgnumach-headers, add them to cpath, use gexps for
modify-phases, add delete-shared-target phase.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
This uses the Debian Salsa rumpkernel package git as upstream as that is where
delopment happens. Once things have stabalized upstream may change to the
NetBSD git from where Debian takes their snapshots.
* gnu/packages/hurd.scm (rumpkernel): New variable.
(hurd-headers)[native-inputs]: Use cross-mig directly.
(gnumach)[native-inputs]: Likewise.
(hurd)[native-inputs]: Likewise.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
As suggested by youpi on IRC
https://logs.guix.gnu.org/hurd/2023-05-17.log#132259
libpciaccess-0.16 is too old for the Hurd and would need Hurd-specific patches
while libpciaccess-0.17 works out of the box.
* gnu/packages/hurd.scm (hurd)[inputs]: Use libpciaccess-0.17.
(netdde)[inputs]: Likewise.
Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* gnu/packages/hurd.scm (mig)[source]: Update to 1.8+git20230520.
* gnu/packages/patches/gnumach-add-missing-const_mach_port_name_array_t-type.patch:
Drop patch.
* gnu/local.mk (dist_patch_DATA): Unregister it.
* gnu/packages/hurd.scm (gnumach-headers): Remove configure flags where we
say the builder is running x86.
* gnu/packages/cross-base.scm (cross-gnumach-headers): Work around limitation
of build system, by manually changing the target host_cpu without relying on
--host, because we don't have a working cross-compiler yet.
* gnu/packages/hurd.scm (hurd-headers): Do it. Also backport some patches to
make it build, and remove older patches. Also stop pretending we're on
i586-pc-gnu.
(hurd): Remove unneeded patches.
* gnu/packages/patches/hurd-add-without-rump-configure-option.patch:
* gnu/packages/patches/hurd-fix-types-of-read-write-and-readables-methods-2.patch:
* gnu/packages/patches/hurd-fix-types-of-read-write-and-readables-methods.patch:
New files.
* gnu/packages/patches/hurd-cross.patch:
* gnu/packages/patches/hurd-xattr.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Register and unregister them.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/hurd.scm (gnumach-headers): Do it.
* gnu/packages/patches/gnumach-add-missing-const_mach_port_name_array_t-type.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/hurd.scm (mig): Do it.
* gnu/packages/patches/mig-cpu.h-generation.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
That way, 'xmig' inherits the 'avoid-perl-dependency' build phase.
* gnu/packages/hurd.scm (mig)[arguments]: In 'avoid-perl-dependency',
use 'find-files' to locate the "mig" executable(s).
* gnu/packages/cross-base.scm (cross-kernel-headers*)[xmig]: Use
'substitute-keyword-arguments'.
This is a followup to 0dc019e19a, which
inadvertently led the Hurd to fail to boot.
* gnu/packages/hurd.scm (hurd)[arguments]: In 'create-runsystem' phase,
expect "gnu.system=" instead of "--system=".
* gnu/packages/arcan.scm (arcan)[arguments]: Use
'search-input-directory' for "include/libdrm" and "include/apr-1".
* gnu/packages/bioinformatics.scm (sailfish): Likewise for jellyfish.
* gnu/packages/boost.scm (boost-for-irods): Likewise for libcxx headers.
* gnu/packages/cedille.scm (cedille): Likewise for IAL headers.
* gnu/packages/compression.scm (snappy-with-clang6): Likewise for libcxx
headers.
* gnu/packages/cups.scm (hplip): Likewise for libusb headers.
* gnu/packages/emulators.scm (pcsxr): Likewise for libcdio headers.
* gnu/packages/game-development.scm (python2-renpy): Likewise for
fribidi headers.
* gnu/packages/games.scm (pokerth): Likewise for libircclient.
* gnu/packages/guile-xyz.scm (guile-persist): Likewise for Guile.
* gnu/packages/hurd.scm (hurd): Likewise for libtirpc.
* gnu/packages/irods.scm (irods, irods-client-icommands): Likewise for
libcxx, catch2, and nlohmann-json-cpp.
* gnu/packages/julia.scm (julia): Use 'search-input-file' for libuv's
errno.h.
* gnu/packages/kde-pim.scm (kdepim-runtime): Use
'search-input-directory' for "include/KF5".
(kmessagelib): Likewise.
* gnu/packages/kde.scm (kdeconnect): Likewise.
* gnu/packages/llvm.scm (clang-runtime-3.5): Likewise for libtirpc.
* gnu/packages/mpi.scm (openmpi): Likewise for "include/infiniband".
* gnu/packages/pumpio.scm (pumpa): Use 'search-input-file' for "tidy.h"
and "aspell.h".
* gnu/packages/radio.scm (dream): Use 'search-input-file' and
'search-input-directory' for pulseaudio, sndfile, etc.
* gnu/packages/selinux.scm (policycoreutils): Likewise for PAM and
libaudit.
* gnu/packages/serialization.scm (avro-cpp-1.9-for-irods): Likewise for
libcxx.
* gnu/packages/sync.scm (nextcloud-client): Likewise for "include/KF5".
* gnu/packages/video.scm (mkvtoolnix): Likewise for "include/gtest".
(libopenshot): Likewise for "include/UnitTest++".
* gnu/packages/virtualization.scm (criu): Likewise for libnl3 and for
protobuf file.
It behaves similarily to the other target-...? procedures.
The usage of hurd-triplet? / target-hurd? in libgc appears
incorrect to me, as (%current-system) is normally never false.
* gnu/packages/hurd.scm (hurd-triplet?): Move to ...
* guix/util.scm (target-hurd?): ... here, let its argument
default to (%current-target-system) or (%current-system),
and write a docstring.
* gnu/packages/hurd.scm
(hurd-target?, hurd-system?): Use target-hurd? instead of
hurd-triplet?.
* gnu/packages/bdw-gc.scm (libgc): Likewise.
* gnu/packages/cross-base.scm
(cross-libc)[arguments]<#:configure-flags>: Likewise.
(cross-libc)[arguments]<#:phases>: Likewise.
(cross-libc)[arguments]<#:native-inputs>: Likewise.
* gnu/packages/make-boostrap.scm
(%glibc-stripped)[inputs]: Likewise.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* gnu/packages/hurd.scm (mig/32-bit): New variable.
(hurd)[native-inputs]: Use it. Previous inline variant would drop the
'patch-non-shebang-references' phase.
* gnu/packages/hurd.scm (mig)[inputs]: Include perl.
[arguments]: Substitute "perl" with full store file name in bin/mig.
* gnu/packages/cross-base.scm (cross-kernel-headers): Adjust mig-cross
accordingly.
This decouples startup of the Hurd from the "hurd" package, moving the RC
script into SYSTEM.
* gnu/packages/hurd.scm (hurd)[inputs]: Remove hurd-rc-script.
[arguments]: Do not substitute it. Update "runsystem.sh" to parse kernel
arguments and exec into --system=SYSTEM/rc.
(hurd-rc-script): Move to...
* gnu/services.scm (%hurd-rc-file): ...this new variable.
(hurd-rc-entry): New procedure.
(%hurd-startup-service): Use it in new variable.
* gnu/system.scm (hurd-default-essential-services): Use it.
This moves towards a regular Guix startup, loading SYSTEM/boot to activate the
system and start the shepherd.
* gnu/packages/hurd.scm (hurd-rc-script): Update to handle "runsystem" tasks.
Load system/boot to activate the system and start the shepherd. Create /hurd
symlink.
(hurd)[arguments]: Add 'create-runsystem' phase. Do not substitute now unused
init.c, runsystem.hurd. Substitute "/hurd/" for the fixed 'out + "/hurd/"' in
boot.c, console-run.c and startup.c. Also substitute
_HURD_STARTUP ("/hurd/startup") to the fixed 'out + "/hurd/startup"' in
libdiskfs/boot-start.c and libdiskfs/opts-std-startup.c.
This enables setting (and reading) passive translators when preparing a Hurd
file system from GNU/Linux.
* gnu/packages/patches/hurd-xattr.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/hurd.scm (hurd): Use it.
* gnu/packages/hurd.scm (hurd)[inputs]: Add libtirpc/hurd.
[arguments]: Add configure flags to use libtirpc; add phase "find-tirpc" to
find the RPC headers; add phase "fix-rpc-headers" to include missing headers.
Specifying 10.0.2.77 also works
-device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:2228-10.0.2.77:22
but using this default allows us to use the widely advertised
-device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:2228-:22
* gnu/packages/hurd.scm (hurd-rc-script): Used from (hurd)[inputs]: Use
10.0.2.15; the default QEMU guest IP.