summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/hurd.scm18
-rw-r--r--gnu/packages/patches/hurd-cross.patch33
-rw-r--r--gnu/packages/patches/hurd-fix-eth-multiplexer-dependency.patch26
4 files changed, 42 insertions, 37 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 1b268fd1c7..f80f577f00 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1038,7 +1038,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/hdf-eos5-fortrantests.patch		\
   %D%/packages/patches/higan-remove-march-native-flag.patch	\
   %D%/packages/patches/hubbub-sort-entities.patch		\
-  %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch        \
+  %D%/packages/patches/hurd-cross.patch				\
   %D%/packages/patches/hplip-remove-imageprocessor.patch	\
   %D%/packages/patches/hydra-disable-darcs-test.patch		\
   %D%/packages/patches/icecat-makeicecat.patch			\
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 59d5c31e33..b2a53b5f41 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -282,14 +282,9 @@ Hurd-minimal package which are needed for both glibc and GCC.")
 (define-public hurd
   (package
     (name "hurd")
-    (version "0.9")
-    (source (origin
-              (method url-fetch)
-              (uri (hurd-source-url version))
-              (sha256
-               (base32
-                "1nw9gly0n7pyv3cpfm4mmxy4yccrx4g0lyrvd3vk2vil26jpbggw"))
-              (patches (search-patches "hurd-fix-eth-multiplexer-dependency.patch"))))
+    (version (package-version hurd-headers))
+    (source (origin (inherit (package-source hurd-headers))
+                    (patches (search-patches "hurd-cross.patch"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -308,8 +303,11 @@ Hurd-minimal package which are needed for both glibc and GCC.")
     (build-system gnu-build-system)
     (inputs `(("glibc-hurd-headers" ,glibc/hurd-headers)))
     (native-inputs
-     `(("mig" ,mig)
-       ("perl" ,perl)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("mig" ,mig)
+       ("perl" ,perl)
+       ("texinfo" ,texinfo-4)))
     (supported-systems %hurd-systems)
     (home-page "https://www.gnu.org/software/hurd/hurd.html")
     (synopsis "The kernel servers for the GNU operating system")
diff --git a/gnu/packages/patches/hurd-cross.patch b/gnu/packages/patches/hurd-cross.patch
new file mode 100644
index 0000000000..cc95dddccc
--- /dev/null
+++ b/gnu/packages/patches/hurd-cross.patch
@@ -0,0 +1,33 @@
+This fixes linking libfstest/test-fcntl (and others).
+
+As discussed with upstream: https://lists.gnu.org/archive/html/bug-hurd/2020-03/msg00018.html
+
+From 96a9f67a8685e713f25259c18306797d54cc27a5 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Sat, 14 Mar 2020 11:28:31 +0100
+Subject: [PATCH] build: Fix cross build on Guix.
+
+As discussed in https://lists.gnu.org/archive/html/bug-hurd/2020-03/msg00018.html.
+
+* Makeconf (lpath): Add -Wl,-rpath-link=<dir> next to -L<dir>.
+---
+ Makeconf | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makeconf b/Makeconf
+index 67f7ab1c..f68ff6e3 100644
+--- a/Makeconf
++++ b/Makeconf
+@@ -325,7 +325,8 @@ _libsubst=${libsubst$(patsubst %,-override,${libsubst-override})}
+ 
+ # Direct the linker where to find shared objects specified in the
+ # dependencies of other shared objects it encounters.
+-lpath := -L. $(patsubst %,-L%,$(dir $(wildcard ../lib*/lib*.so)))
++lib_dirs := $(dir $(wildcard ../lib*/lib*.so))
++lpath := -L. $(lib_dirs:%=-L%) $(lib_dirs:%=-Wl,-rpath-link=%)
+ 
+ # Main rule to link executables
+ #
+-- 
+2.24.0
+
diff --git a/gnu/packages/patches/hurd-fix-eth-multiplexer-dependency.patch b/gnu/packages/patches/hurd-fix-eth-multiplexer-dependency.patch
deleted file mode 100644
index 5f0da3eab3..0000000000
--- a/gnu/packages/patches/hurd-fix-eth-multiplexer-dependency.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ef0399bad41e60cb30d5073129abeb206076394a Mon Sep 17 00:00:00 2001
-From: Manolis Ragkousis <manolis837@gmail.com>
-Date: Sat, 8 Apr 2017 16:44:52 +0300
-Subject: [PATCH] eth-multiplexer: Fix iohelp missing dependency.
-
-* eth-multiplexer/Makefile (HURDLIBS): Add iohelp.
----
- eth-multiplexer/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/eth-multiplexer/Makefile b/eth-multiplexer/Makefile
-index 07f909e7..cefa0abd 100644
---- a/eth-multiplexer/Makefile
-+++ b/eth-multiplexer/Makefile
-@@ -26,7 +26,7 @@ MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
- device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name"
- OBJS = $(SRCS:.c=.o) $(MIGSTUBS)
- LCLHDRS = ethernet.h util.h vdev.h netfs_impl.h
--HURDLIBS = ports ihash fshelp shouldbeinlibc netfs bpf
-+HURDLIBS = ports ihash iohelp fshelp shouldbeinlibc netfs bpf
- LDLIBS = -lpthread
- 
- CFLAGS += -I$(top_srcdir)/libbpf
--- 
-2.12.2
-