[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
19/92: gnu: hurd: Add rumpkernel.
From: |
guix-commits |
Subject: |
19/92: gnu: hurd: Add rumpkernel. |
Date: |
Fri, 23 Jun 2023 12:45:38 -0400 (EDT) |
janneke pushed a commit to branch hurd-team
in repository guix.
commit b525c22f8f29eb10830f6f308cfdf24ca157334d
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Mon May 15 11:38:50 2023 +0200
gnu: hurd: Add rumpkernel.
* gnu/packages/patches/hurd-fix-rumpdisk-build.patch,
gnu/packages/patches/hurd-rumpdisk-no-hd.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/hurd.scm (hurd): Use them.
(hurd)[inputs]: Replace util-linux with util-linux:static, add parted,
rumpkernel.
[arguments]: Rename `prepare-dde' phase to 'prepare-addons'. Add "rumpdisk"
directory. Add --enable-static-progs=... option to #:configure-flags, and
remove --without-parted.
---
gnu/local.mk | 2 ++
gnu/packages/hurd.scm | 21 +++++++----
gnu/packages/patches/hurd-fix-rumpdisk-build.patch | 41 ++++++++++++++++++++++
gnu/packages/patches/hurd-rumpdisk-no-hd.patch | 26 ++++++++++++++
4 files changed, 83 insertions(+), 7 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 2b30603fbc..e18bb36653 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1365,6 +1365,8 @@ dist_patch_DATA =
\
%D%/packages/patches/hubbub-maybe-uninitialized.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-add-without-rump-configure-option.patch \
+ %D%/packages/patches/hurd-fix-rumpdisk-build.patch \
+ %D%/packages/patches/hurd-rumpdisk-no-hd.patch \
%D%/packages/patches/hurd-fix-types-of-read-write-and-readables-methods-2.patch
\
%D%/packages/patches/hurd-fix-types-of-read-write-and-readables-methods.patch \
%D%/packages/patches/hwloc-1-test-btrfs.patch \
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 7ff4a61a00..f3e5368460 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -34,6 +34,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
+ #:use-module (gnu packages disk)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gnupg)
@@ -310,12 +311,15 @@ Hurd-minimal package which are needed for both glibc and
GCC.")
(define-public hurd
(package
(name "hurd")
- (source (package-source hurd-headers))
+ (source (origin
+ (inherit (package-source hurd-headers))
+ (patches (search-patches "hurd-fix-rumpdisk-build.patch"
+ "hurd-rumpdisk-no-hd.patch"))))
(version (package-version hurd-headers))
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'prepare-dde
+ (add-after 'unpack 'prepare-addons
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; First we import the things we want from dde.
(for-each make-file-writable (find-files "."))
@@ -329,7 +333,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"))))
+ "libbpf libmachdevdde libddekit rumpdisk"))))
(add-after 'unpack 'find-tirpc
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (var)
@@ -492,10 +496,10 @@ exec ${system}/rc \"$@\"
#:configure-flags
,#~(list (string-append "LDFLAGS=-Wl,-rpath="
#$output "/lib")
+
"--enable-static-progs=ext2fs,iso9660fs,rumpdisk,pci-arbiter,acpi"
"--disable-ncursesw"
"--without-libbz2"
"--without-libz"
- "--without-parted"
;; This is needed to pass the configure check for
;; clnt_create
"ac_func_search_save_LIBS=-ltirpc"
@@ -516,7 +520,9 @@ exec ${system}/rc \"$@\"
("coreutils" ,coreutils)
("sed" ,sed)
("grep" ,grep)
- ("util-linux" ,util-linux)))
+ ("util-linux" ,util-linux "static") ;libuuid.a, for parted
+ ("parted" ,parted) ;for rumpdisk
+ ("rumpkernel" ,rumpkernel)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@@ -748,8 +754,9 @@ in userland processes thanks to the DDE layer.")
(replace 'build
(lambda* (#:key parallel-build? #:allow-other-keys)
(let* ((jobs (if parallel-build? (parallel-job-count) 1))
- (host-cpu (match #$(or (%current-target-system
- (%current-system)))
+ (host-cpu (match #$(or (%current-target-system)
+ (%current-system))
+ ("i586-gnu" "i386")
("i586-pc-gnu" "i386")
("i686-linux" "i386")
("x86_64-linux" "amd64")))
diff --git a/gnu/packages/patches/hurd-fix-rumpdisk-build.patch
b/gnu/packages/patches/hurd-fix-rumpdisk-build.patch
new file mode 100644
index 0000000000..4ecd5ed0ee
--- /dev/null
+++ b/gnu/packages/patches/hurd-fix-rumpdisk-build.patch
@@ -0,0 +1,41 @@
+Upstream status: taken from upstream.
+
+From a2b0f721d077fdc5c9decb21b975b58fb51a3e8f Mon Sep 17 00:00:00 2001
+From: Janneke Nieuwenhuizen <janneke@gnu.org>
+Date: Mon, 22 May 2023 19:21:47 +0200
+Subject: [PATCH] rumpdisk: Do not assume FHS /usr/lib, fixes Guix cross-build.
+
+---
+ rumpdisk/Makefile | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/rumpdisk/Makefile b/rumpdisk/Makefile
+index 60a209b3..b59aaf9a 100644
+--- a/rumpdisk/Makefile
++++ b/rumpdisk/Makefile
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (C) 2019 Free Software Foundation, Inc.
++# Copyright (C) 2019, 2023 Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU General Public License as
+@@ -15,7 +15,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+-RUMPPATH=/usr/lib
+ RUMPLIBS=rump rumpuser rumpdev rumpdev_disk rumpdev_pci rumpvfs
rumpdev_ahcisata rumpdev_piixide rumpdev_ata
+ RUMPEXTRA=rumpdev_scsipi
+
+@@ -38,6 +37,6 @@ target = rumpdisk
+ OBJS = $(SRCS:.c=.o)
+ HURDLIBS = machdev ports trivfs shouldbeinlibc iohelp ihash fshelp
+ LDLIBS += -lpthread -lpciaccess -ldl
+-LDLIBS += -Wl,--whole-archive $(RUMPLIBS:%=$(RUMPPATH)/lib%_pic.a)
-Wl,--no-whole-archive $(RUMPEXTRA:%=$(RUMPPATH)/lib%_pic.a)
++LDLIBS += -Wl,--whole-archive $(RUMPLIBS:%=-l%_pic) -Wl,--no-whole-archive
$(RUMPEXTRA:%=-l%_pic)
+
+ include ../Makeconf
+--
+2.40.1
+
diff --git a/gnu/packages/patches/hurd-rumpdisk-no-hd.patch
b/gnu/packages/patches/hurd-rumpdisk-no-hd.patch
new file mode 100644
index 0000000000..4e5d41917d
--- /dev/null
+++ b/gnu/packages/patches/hurd-rumpdisk-no-hd.patch
@@ -0,0 +1,26 @@
+This avoids rumpdisk crash when booting without "noide".
+
+Upstream status: Taken from Debian Salsa package git
+
+
https://salsa.debian.org/hurd-team/hurd/-/blob/f40ff84260b5a98bea949013415a1c92c127a43e/debian/patches/rumpdisk-no-hd
+
+Index: hurd-debian/rumpdisk/block-rump.c
+===================================================================
+--- hurd-debian.orig/rumpdisk/block-rump.c
++++ hurd-debian/rumpdisk/block-rump.c
+@@ -143,7 +143,6 @@ rumpdisk_device_init (void)
+ {
+ device_t device;
+
+-#if 0
+ if (! device_open (device_master, D_READ, "hd0", &device)
+ || ! device_open (device_master, D_READ, "hd1", &device)
+ || ! device_open (device_master, D_READ, "hd3", &device)
+@@ -154,7 +153,6 @@ rumpdisk_device_init (void)
+ disabled = 1;
+ return;
+ }
+-#endif
+
+ if (! device_open (device_master, D_READ, "sd0", &device)
+ || ! device_open (device_master, D_READ, "sd1", &device)
- 03/92: gnu: gnumach-headers: Cross-build without relying on x86., (continued)
- 03/92: gnu: gnumach-headers: Cross-build without relying on x86., guix-commits, 2023/06/23
- 04/92: gnu: hurd: Update supported systems., guix-commits, 2023/06/23
- 06/92: squash! gnu: Add libc-for-target and glibc/hurd., guix-commits, 2023/06/23
- 07/92: squash! gnu: Add libc-for-target and glibc/hurd., guix-commits, 2023/06/23
- 01/92: hurd-boot: Add urandom and default-pager translators., guix-commits, 2023/06/23
- 02/92: gnu: glibc/hurd-headers: Properly cross-build., guix-commits, 2023/06/23
- 05/92: gnu: Add libc-for-target and glibc/hurd., guix-commits, 2023/06/23
- 10/92: gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3., guix-commits, 2023/06/23
- 14/92: gnu: Add libpciaccess-0.17., guix-commits, 2023/06/23
- 16/92: gnu: Add rumpkernel., guix-commits, 2023/06/23
- 19/92: gnu: hurd: Add rumpkernel.,
guix-commits <=
- 08/92: gnu: gnumach: Update to 1.8+git20221224., guix-commits, 2023/06/23
- 12/92: gnu: hurd: Update to v0.9.git20230216., guix-commits, 2023/06/23
- 13/92: Revert "hurd-boot: Add urandom and default-pager translators.", guix-commits, 2023/06/23
- 15/92: gnu: hurd: Update libpciaccess to 0.17., guix-commits, 2023/06/23
- 09/92: gnu: Add libc-locales-for-target and glibc-locales/hurd., guix-commits, 2023/06/23
- 11/92: squash! gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3., guix-commits, 2023/06/23
- 17/92: gnu: hurd-minimal: Include libshouldbeinlibc and libstore., guix-commits, 2023/06/23
- 18/92: gnu: parted: Support building for the Hurd., guix-commits, 2023/06/23
- 21/92: services: childhurd: Bump default qemu memory to 2048MB., guix-commits, 2023/06/23
- 20/92: hurd-boot: Setup pci-arbiter and rumpdisk translators., guix-commits, 2023/06/23