summaryrefslogtreecommitdiff
path: root/gnu/packages/hurd.scm
diff options
context:
space:
mode:
authorJosselin Poiret <dev@jpoiret.xyz>2023-03-20 23:10:48 +0100
committerLudovic Courtès <ludo@gnu.org>2023-03-30 12:44:20 +0200
commit99f6cc0e54ceee66f3b7434139536678b91fb5bf (patch)
tree44b4cf8fc97984c778231c6060dd5b7bdc43f353 /gnu/packages/hurd.scm
parentd509aab2304c7ed8cd730ac97268d2b3a807fadf (diff)
gnu: hurd: Update DDE and use libdde_linux26.
* gnu/packages/hurd.scm (dde-sources): Update. (hurd): Build libdde_linux26 and install it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/hurd.scm')
-rw-r--r--gnu/packages/hurd.scm46
1 files changed, 38 insertions, 8 deletions
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 80fa061175..270bbd1862 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -342,7 +342,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 "ac1c7eb7a8b24b7469bed5365be38a968d59a136"))
+ (let ((commit "ce8810277fa3584eb36ecb23da58394153fabe6f"))
(origin
(method git-fetch)
(uri (git-reference
@@ -350,9 +350,15 @@ Hurd-minimal package which are needed for both glibc and GCC.")
(commit commit)))
(sha256
(base32
- "1vryinbg75xpydfrv9dbgfnds6knlh8l8bk2rxp32y9dc58z0692"))
+ "0ygk7jm4jmhpvh0zzi5bk638242z7sbcab2i57fkb4y2mmdkjjbw"))
(file-name (git-file-name "dde" commit)))))
+(define %import-from-dde
+ (list "libmachdevdde" "libddekit" "libdde_linux26"))
+
+(define %add-to-hurd-subdirs
+ (list "libmachdevdde" "libddekit"))
+
(define-public hurd
(package
(name "hurd")
@@ -363,17 +369,19 @@ Hurd-minimal package which are needed for both glibc and GCC.")
(modify-phases %standard-phases
(add-after 'unpack 'prepare-dde
(lambda* (#:key native-inputs inputs #:allow-other-keys)
- (substitute* "Makefile"
- (("libbpf ")
- "libbpf libmachdev libmachdevdde libddekit"))
+ ;; First we import the things we want from dde.
(for-each make-file-writable (find-files "."))
(let ((dde (or (assoc-ref inputs "dde-sources")
(assoc-ref native-inputs "dde-sources"))))
(for-each (lambda (dir)
(copy-recursively
(string-append dde "/" dir ) dir))
- '("libmachdev" "libmachdevdde" "libddekit")))
- #t))
+ '("libmachdevdde" "libddekit" "libdde_linux26")))
+ ;; And we add some as subdirs so that they're built by the main
+ ;; Makefile. libdde_linux26 is built later in its own phase.
+ (substitute* "Makefile"
+ (("libbpf ")
+ "libbpf libmachdevdde libddekit"))))
(add-after 'unpack 'find-tirpc
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (var)
@@ -492,12 +500,34 @@ exec ${system}/rc \"$@\"
(patch-shebang file path))
(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 native-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 native-inputs "bash")
+ "/bin/bash")
+ (string-append "CC="
+ ,(cc-for-target)))))
(add-after 'install 'install-goodies
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (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 native-inputs "make")
+ "/bin/make")
+ "-C" "libdde_linux26" "install"
+ (string-append "SHELL="
+ (assoc-ref native-inputs "bash")
+ "/bin/bash")
+ (string-append "INSTALLDIR="
+ out
+ "/share/libdde_linux26/build/include"))
;; Install the fancy UTF-8 motd.
(mkdir-p (string-append out "/etc"))
(copy-file "console/motd.UTF8"