summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/hurd.scm40
-rw-r--r--gnu/packages/patches/netdde-build-fix.patch28
3 files changed, 51 insertions, 18 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 30dd32fdce..53f59a830d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1618,6 +1618,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ncompress-fix-softlinks.patch		\
   %D%/packages/patches/ncftp-reproducible.patch			\
   %D%/packages/patches/netcdf-date-time.patch			\
+  %D%/packages/patches/netdde-build-fix.patch			\
   %D%/packages/patches/netpbm-CVE-2017-2586.patch		\
   %D%/packages/patches/netpbm-CVE-2017-2587.patch		\
   %D%/packages/patches/netsurf-message-timestamp.patch		\
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 3a9797009b..5072b7de2b 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -553,8 +553,8 @@ implementing them.")
     (license gpl2+)))
 
 (define-public netdde
-  (let ((commit "4a1016f130b6f2065d3f088325e5fb0b2997ae12")
-        (revision "1"))
+  (let ((commit "e67c284ac113d939b10b4578334f27dab29d5b08")
+        (revision "2"))
     (package
       (name "netdde")
       ;; The version prefix corresponds to the version of Linux from which the
@@ -565,20 +565,19 @@ 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")))
                 (sha256
                  (base32
-                  "1njv9dszq4lj05yq4v9j5v247hfghpzvvz4hzy0khjjr35mw7hr8"))
+                  "0vnkls7sr7srzib5mnw6gybzl5qa8c5a4zf3h08w6gdr7zqbndh0"))
                 (file-name (git-file-name name commit))))
       (build-system gnu-build-system)
       (arguments
-       `(#:make-flags
+       `(#:tests? #f                    ;no "check" target
+         #:make-flags
          (list (string-append "SHELL="
                               (search-input-file %build-inputs "/bin/bash"))
                "PKGDIR=libdde_linux26"
-               ,@(if (%current-target-system)
-                     (list "CC=i586-pc-gnu-gcc"
-                           "LINK_PROGRAM=i586-pc-gnu-gcc")
-                     (list "CC=gcc")))
+               (string-append "CC=" ,(cc-for-target)))
          #:configure-flags
          ,#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
          #:phases
@@ -594,8 +593,7 @@ implementing them.")
                               (string-append dde "/" dir ) dir))
                            '("libdde_linux26" "libddekit")))
                (substitute* "libdde_linux26/mk/rel2abs.sh"
-                 (("/bin/bash") (which "bash")))
-               #t))
+                 (("/bin/bash") (which "bash")))))
            (add-after 'patch-generated-file-shebangs 'build-libdde-linux26
              (lambda* (#:key make-flags #:allow-other-keys)
                (with-directory-excursion "libdde_linux26"
@@ -606,17 +604,23 @@ implementing them.")
                (apply invoke "make" "convert" make-flags)))
            (replace 'build
              (lambda* (#:key make-flags #:allow-other-keys)
-               ;; no-common can be dropped with GCC 10+ where this is the
-               ;; default.
-               (apply invoke "make" "CFLAGS=-fno-common" make-flags)))
+               (apply invoke "make"
+                      ,(string-append "LINK_PROGRAM=" (cc-for-target))
+                      make-flags)
+               ;; This hack to build netdde.static was found in
+               ;; https://salsa.debian.org/hurd-team/netdde/-/blob/b539b2ad7a171371f140c3da58cce33f1a91ac12/debian/rules
+               (delete-file "Makefile.inc")
+               (apply invoke "make"
+                      ,(string-append "LINK_PROGRAM=" (cc-for-target) " -static")
+                      "TARGET=netdde.static"
+                      make-flags)))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
-               (install-file "netdde"
-                             (string-append (assoc-ref outputs "out")
-                                            "/bin"))
-               #t)))))
+               (let ((hurd (string-append (assoc-ref outputs "out") "/hurd")))
+                 (install-file "netdde" hurd)
+                 (install-file "netdde.static" hurd)))))))
       (inputs
-       (list hurd libpciaccess-0.17 zlib))
+       (list hurd libpciaccess-0.17 zlib `(,zlib "static")))
       (native-inputs
        `(("coreutils" ,coreutils)
          ("gawk" ,gawk)
diff --git a/gnu/packages/patches/netdde-build-fix.patch b/gnu/packages/patches/netdde-build-fix.patch
new file mode 100644
index 0000000000..f7f0fc35a9
--- /dev/null
+++ b/gnu/packages/patches/netdde-build-fix.patch
@@ -0,0 +1,28 @@
+Upstream status: Presented upstream.
+
+    https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00449.html
+
+From b0a7e4f2706bea8d1c80d5af7a095941f9635033 Mon Sep 17 00:00:00 2001
+From: Janneke Nieuwenhuizen <janneke@gnu.org>
+Date: Fri, 26 May 2023 17:39:17 +0200
+Subject: [PATCH] Update for .../rumpdisk: Fix race condition in bootstrap
+
+---
+ machdev.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/machdev.c b/machdev.c
+index dda5eb8ba..1a6811072 100644
+--- a/machdev.c
++++ b/machdev.c
+@@ -18,5 +18,6 @@ void machdev_run1 (void *arg)
+ 
+ void machdev_run2(void)
+ {
+-	machdev_trivfs_server(bootstrap);
++	machdev_trivfs_server_startup(bootstrap);
++	machdev_trivfs_server_loop(NULL);
+ }
+-- 
+2.40.1
+