diff options
Diffstat (limited to 'gnu/packages/hurd.scm')
-rw-r--r-- | gnu/packages/hurd.scm | 214 |
1 files changed, 150 insertions, 64 deletions
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index e6ea920714..4342686517 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> -;;; Copyright © 2018, 2020-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2020-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020, 2022, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> @@ -57,21 +57,20 @@ version ".tar.gz")) (define-public gnumach-headers - (let ((revision "0") - (commit "2556fdece900d67529d5eda01f1bdaae4ffe96b0")) + (let ((commit "v1.8+git20240714")) (package (name "gnumach-headers") - (version (git-version "1.8" revision commit)) + (version (string-drop commit 1)) (source (origin (method git-fetch) (uri (git-reference (url "https://git.savannah.gnu.org/git/hurd/gnumach.git") (commit commit))) + (patches (search-patches "gnumach-version.patch")) (file-name (git-file-name "gnumach" version)) (sha256 - (base32 - "1lzsbix0l4jhab38pvwnmk7ip1lsn7m5smhnrciqajsqnadsnlzs")))) + (base32 "0ykav1kx0bgxcxw04bpcsh5s4531fzdkahjgrlsfs2h3w3vfkga0")))) (build-system gnu-build-system) (arguments `(#:phases @@ -93,7 +92,7 @@ (define-public mig (package (name "mig") - (version "1.8+git20230520") + (version "1.8+git20231217") (source (origin (method git-fetch) (uri (git-reference @@ -102,7 +101,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "10r0fdjqjzqsy6ajb21rifvhw0wpjvrw6a1zdyliqlzqny5k0qlz")))) + "1mx7w5vzw5ws0zplm1y6s679jb1g2hjkiwl3dlk5lxys0dxs5g4g")))) (build-system gnu-build-system) ;; Flex is needed both at build and run time. (inputs (list gnumach-headers flex)) @@ -133,7 +132,7 @@ communication.") (define-public hurd-headers (let ((revision "3") - (commit "v0.9.git20231217")) + (commit "v0.9.git20240714")) (package (name "hurd-headers") (version (string-drop commit 1)) @@ -144,7 +143,7 @@ communication.") (commit commit))) (sha256 (base32 - "1d138kzhil6s5gf9di8grpz1iziakyfv037wkc8s7qyd61imm31d")) + "0wvzil3llmrjg7ymwqs86d11bm5fl771jwncv7kk679lsvqca0ll")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -295,7 +294,7 @@ Hurd-minimal package which are needed for both glibc and GCC.") (define dde-sources ;; This is the current tip of the dde branch - (let ((commit "066797b576ebf8364ad157f50bef2a655597deeb")) + (let ((commit "b6c8526c703f3ba76294d9002f195c63897ec661")) (origin (method git-fetch) (uri (git-reference @@ -303,7 +302,7 @@ Hurd-minimal package which are needed for both glibc and GCC.") (commit commit))) (sha256 (base32 - "19f2awlfnar5gyhi0w5zawla5brzck2s88iv0f20022pd1l5v9hl")) + "0k1ilj8ghli8x43xaksbc4y419pqh0w16k374914c07svq419bbr")) (file-name (git-file-name "dde" (string-take commit 7)))))) (define %import-from-dde @@ -317,7 +316,10 @@ Hurd-minimal package which are needed for both glibc and GCC.") (name "hurd") (source (origin (inherit (package-source hurd-headers)) - (patches (search-patches "hurd-rumpdisk-no-hd.patch")))) + (patches (search-patches "hurd-refcounts-assert.patch" + "hurd-rumpdisk-no-hd.patch" + "hurd-startup.patch" + "hurd-64bit.patch")))) (version (package-version hurd-headers)) (arguments `(#:tests? #f ;no "check" target @@ -336,7 +338,7 @@ Hurd-minimal package which are needed for both glibc and GCC.") ;; Makefile. libdde_linux26 is built later in its own phase. (substitute* "Makefile" (("libbpf ") - "libbpf libmachdevdde libddekit rumpdisk")))) + "libbpf libmachdevdde libddekit ")))) (add-after 'unpack 'find-tirpc (lambda* (#:key inputs #:allow-other-keys) (for-each (lambda (var) @@ -362,6 +364,12 @@ Hurd-minimal package which are needed for both glibc and GCC.") (("#include <rpc/pmap_prot.h>" m) (string-append "#include <rpc/types.h>\n#include <rpc/xdr.h>\n" m))) #t)) + ,@(if (%current-target-system) + '((add-after 'configure 'fixup-cross-configure + (lambda _ + (substitute* "config.make" + (("HAVE_LIBRUMP = no") "HAVE_LIBRUMP = yes"))))) + '()) (add-before 'build 'pre-build (lambda _ ;; Don't change the ownership of any file at this time. @@ -388,6 +396,9 @@ rm -f /servers/socket/1 # Note: this /hurd/ gets substituted settrans --create /servers/socket/1 /hurd/pflocal +# Upon second boot, (file-exists? /dev/null) in hurd-boot-system hangs unless: +rm -f /dev/urandom + # parse multiboot arguments for i in \"$@\"; do case $i in @@ -458,48 +469,92 @@ exec ${system}/rc \"$@\" (find-files (string-append out "/libexec"))) #t))) (add-after 'build 'build-libdde-linux - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (invoke (string-append (assoc-ref (or native-inputs inputs) "make") - "/bin/make") - ;; XXX There can be a race condition because subdirs - ;; aren't interdependent targets in the Makefile. - "-j1" "-C" "libdde_linux26" - (string-append "SHELL=" - (assoc-ref (or native-inputs inputs) "bash") - "/bin/bash") - (string-append "CC=" - ,(cc-for-target)) - "ARCH=x86"))) + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((arch ,(match (or (%current-target-system) + (%current-system)) + ((? target-x86-32?) + "x86") + ((? target-x86-64?) + "amd64") + (_ + ;; XXX: Cross-compiling this package to an + ;; unsupported system. + "UNSUPPORTED_SYSTEM")))) + (when ,(target-hurd64?) + (let ((dir "libdde_linux26/build/include")) + (mkdir-p (string-append dir "/x86")) + (format #t "symlink ~a -> ~a\n" + (string-append dir "/x86/amd64") "x86") + (symlink "x86" (string-append dir "/amd64")) + (format #t "symlink ~a -> ~a\n" + (string-append dir "/amd64/asm-x86_64") "asm-x86") + (symlink "asm-x86" (string-append dir "/amd64/asm-x86_64")))) + (invoke (string-append (assoc-ref (or native-inputs inputs) "make") + "/bin/make") + ;; XXX There can be a race condition because subdirs + ;; aren't interdependent targets in the Makefile. + "-j1" "-C" "libdde_linux26" + (string-append "SHELL=" + (assoc-ref (or native-inputs inputs) "bash") + "/bin/bash") + (string-append "CC=" + ,(cc-for-target)) + (string-append "WARNINGS=" + " -Wno-declaration-missing-parameter-type" + " -Wno-implicit-function-declaration" + " -Wno-implicit-int" + " -Wno-int-conversion" + " -Wno-strict-prototypes") + (string-append "ARCH=" arch))))) (add-after 'install 'install-goodies - (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) - ;; Install additional goodies. - ;; TODO: Build & install *.msgids for rpctrace. - (let* ((out (assoc-ref outputs "out")) - (datadir (string-append out "/share/hurd"))) - ;; Install libdde_linux26. - (invoke (string-append (assoc-ref (or native-inputs inputs) "make") - "/bin/make") - "-C" "libdde_linux26" "install" - (string-append "SHELL=" - (assoc-ref (or native-inputs inputs) "bash") - "/bin/bash") - (string-append "INSTALLDIR=" - out - "/share/libdde_linux26/build/include") - "ARCH=x86") - ;; Install the fancy UTF-8 motd. - (mkdir-p (string-append out "/etc")) - (copy-file "console/motd.UTF8" - (string-append out "/etc/motd")) + (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) + ;; Install additional goodies. + ;; TODO: Build & install *.msgids for rpctrace. + (let* ((out (assoc-ref outputs "out")) + (datadir (string-append out "/share/hurd")) + (arch ,(match (or (%current-target-system) + (%current-system)) + ((? target-x86-32?) + "x86") + ((? target-x86-64?) + "amd64") + (_ + ;; XXX: Cross-compiling this package to an + ;; unsupported system. + "UNSUPPORTED_SYSTEM"))) + (dir (string-append out "/share/libdde_linux26/build/include"))) + (mkdir-p dir) + (when ,(target-hurd64?) + (mkdir-p (string-append dir "/amd64")) + (format #t "symlink ~a -> ~a\n" + (string-append dir "/amd64/asm-x86_64") + "x86") + (symlink "x86" (string-append dir "/amd46"))) + (invoke (string-append (assoc-ref (or native-inputs inputs) "make") + "/bin/make") + "-C" "libdde_linux26" "install" + (string-append "SHELL=" + (assoc-ref (or native-inputs inputs) "bash") + "/bin/bash") + (string-append "INSTALLDIR=" dir) + (string-append "ARCH=" arch)) + (when ,(target-hurd64?) + (format #t "symlink ~a -> ~a\n" + (string-append dir "/amd64/asm-x86_64") + "asm-x86") + (symlink "asm-x86" (string-append dir "/amd64/asm-x86_64"))) + ;; Install the fancy UTF-8 motd. + (mkdir-p (string-append out "/etc")) + (copy-file "console/motd.UTF8" + (string-append out "/etc/motd")) - ;; Install the BDF font for use by the console client. - (copy-file (assoc-ref inputs "unifont") - "unifont.gz") - (invoke "gunzip" "unifont.gz") - (mkdir-p datadir) - (copy-file "unifont" - (string-append datadir "/vga-system.bdf")) - #t)))) + ;; Install the BDF font for use by the console client. + (copy-file (assoc-ref inputs "unifont") + "unifont.gz") + (invoke "gunzip" "unifont.gz") + (mkdir-p datadir) + (copy-file "unifont" + (string-append datadir "/vga-system.bdf")))))) #:configure-flags ,#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") @@ -552,8 +607,8 @@ implementing them.") (license gpl2+))) (define-public netdde - (let ((commit "e67c284ac113d939b10b4578334f27dab29d5b08") - (revision "2")) + (let ((commit "c0ef248dc7c5ccc1273e2a796f3ece30c5b645df") + (revision "3")) (package (name "netdde") ;; The version prefix corresponds to the version of Linux from which the @@ -564,10 +619,11 @@ implementing them.") (uri (git-reference (url "https://git.savannah.gnu.org/git/hurd/incubator.git") (commit commit))) - (patches (list (search-patch "netdde-build-fix.patch"))) + (patches (search-patches "netdde-build-fix.patch" + "netdde-csum.patch")) (sha256 (base32 - "0vnkls7sr7srzib5mnw6gybzl5qa8c5a4zf3h08w6gdr7zqbndh0")) + "070fpmd4nvn3mp8dj9w4if63iwz7j2m0h6ywq888znw70wlrc6sh")) (file-name (git-file-name name commit)))) (build-system gnu-build-system) (arguments @@ -577,7 +633,23 @@ implementing them.") (search-input-file %build-inputs "/bin/bash")) "PKGDIR=libdde_linux26" (string-append "CC=" ,(cc-for-target)) - "ARCH=x86") + (string-append "WARNINGS=" + " -Wno-declaration-missing-parameter-type" + " -Wno-implicit-function-declaration" + " -Wno-implicit-int" + " -Wno-int-conversion" + " -Wno-strict-prototypes") + (let ((arch ,(match (or (%current-target-system) + (%current-system)) + ((? target-x86-32?) + "x86") + ((? target-x86-64?) + "amd64") + (_ + ;; XXX: Cross-compiling this package to an + ;; unsupported system. + "UNSUPPORTED_SYSTEM")))) + (string-append "ARCH=" arch))) #:configure-flags ,#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")) #:phases @@ -595,6 +667,15 @@ implementing them.") (("/bin/bash") (which "bash"))))) (add-after 'patch-generated-file-shebangs 'build-libdde-linux26 (lambda* (#:key make-flags #:allow-other-keys) + (when ,(target-hurd64?) + (let ((dir "libdde_linux26/build/include")) + (mkdir-p (string-append dir "/x86")) + (format #t "symlink ~a -> ~a\n" + (string-append dir "/x86/amd64") "x86") + (symlink "x86" (string-append dir "/amd64")) + (format #t "symlink ~a -> ~a\n" + (string-append dir "/amd64/asm-x86_64") "asm-x86") + (symlink "asm-x86" (string-append dir "/amd64/asm-x86_64")))) (with-directory-excursion "libdde_linux26" (apply invoke "make" (delete "PKGDIR=libdde_linux26" make-flags))))) @@ -638,8 +719,8 @@ in userland processes thanks to the DDE layer.") (license gpl2)))) (define-public rumpkernel - (let ((commit "81043d42fabda9baed7ac9ca36e3f3f5ed11ba81") - (revision "3")) + (let ((commit "f1ffd6405f225336e595a0f99f01095ed7438337") + (revision "0")) (package (name "rumpkernel") (version (git-version "0-20211031" revision commit)) @@ -653,7 +734,7 @@ in userland processes thanks to the DDE layer.") (commit commit))) (sha256 (base32 - "0fv0k52qqcg3nq9012hibgsamvsd7mnvn2ikdasmzjhsp8qh5q3r")) + "1ygn3ysji06ik3k44sf906fjpdmabznkspw70llldbk2zkrcdw7i")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -754,6 +835,9 @@ in userland processes thanks to the DDE layer.") "-V" "MKBINUTILS=no" "-V" "MKGDB=no" "-V" "MKGROFF=no" + "-V" "MKDTRACE=no" + "-V" "MKZFS=no" + "-V" (string-append "TOPRUMP=" toprump) "-V" "BUILDRUMP_CPPFLAGS=-Wno-error=stringop-overread" "-V" "RUMPUSER_EXTERNAL_DPLIBS=pthread" @@ -764,7 +848,8 @@ in userland processes thanks to the DDE layer.") " -DRUMP_REGISTER_T=int" " -DRUMPUSER_CONFIG=yes" " -DNO_PCI_MSI_MSIX=yes" - " -DNUSB_DMA=1") + " -DNUSB_DMA=1" + " -DPAE") "-V" (string-append "CWARNFLAGS=" " -Wno-error=maybe-uninitialized" @@ -773,7 +858,8 @@ in userland processes thanks to the DDE layer.") " -Wno-error=stack-protector" " -Wno-error=array-parameter" " -Wno-error=array-bounds" - " -Wno-error=stringop-overflow") + " -Wno-error=stringop-overflow" + " -Wno-error=sign-compare") "-V" "LIBCRTBEGIN=" "-V" "LIBCRTEND=" "-V" "LIBCRT0=" |