public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/genkernel:master commit in: /, patches/dmraid/1.0.0.rc16-3/, gkbuilds/, defaults/
@ 2019-07-14 13:00 Thomas Deutschmann
  0 siblings, 0 replies; only message in thread
From: Thomas Deutschmann @ 2019-07-14 13:00 UTC (permalink / raw
  To: gentoo-commits

commit:     179e5b5c4e6b9869d5a0f0dab21b875ab3a5a0f3
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 14 09:25:09 2019 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sun Jul 14 11:58:15 2019 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=179e5b5c

Rework --dmraid support

Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 defaults/software.sh                               | 10 ++-
 gen_cmdline.sh                                     | 12 ---
 gen_compile.sh                                     | 55 ------------
 gen_initramfs.sh                                   | 46 +++++-----
 gkbuilds/dmraid.gkbuild                            | 31 +++++++
 ...h => dmraid-1.0.0_rc16-001-undo-p-rename.patch} |  0
 .../dmraid-1.0.0_rc16-002-return-all-sets.patch    | 11 +++
 ...dmraid-1.0.0_rc16-003-static-build-fixes.patch} | 98 +++++++++++-----------
 ...atch => dmraid-1.0.0_rc16-004-staticlink.patch} |  0
 ...h => dmraid-1.0.0_rc16-005-parallel-make.patch} |  0
 .../dmraid-1.0.0_rc16-return-all-sets.patch        | 11 ---
 11 files changed, 120 insertions(+), 154 deletions(-)

diff --git a/defaults/software.sh b/defaults/software.sh
index 9c6ba70..532c520 100644
--- a/defaults/software.sh
+++ b/defaults/software.sh
@@ -21,10 +21,12 @@ MDADM_DIR="${MDADM_DIR:-mdadm-${MDADM_VER}}"
 MDADM_SRCTAR="${MDADM_SRCTAR:-${DISTDIR}/mdadm-${MDADM_VER}.tar.xz}"
 MDADM_BINCACHE="${MDADM_BINCACHE:-%%CACHE%%/mdadm-${MDADM_VER}-%%ARCH%%.tar.bz2}"
 
-DMRAID_VER="${DMRAID_VER:-VERSION_DMRAID}"
-DMRAID_DIR="${DMRAID_DIR:-dmraid/${DMRAID_VER}/dmraid}"
-DMRAID_SRCTAR="${DMRAID_SRCTAR:-${DISTDIR}/dmraid-${DMRAID_VER}.tar.bz2}"
-DMRAID_BINCACHE="${DMRAID_BINCACHE:-%%CACHE%%/dmraid-${DMRAID_VER}-%%ARCH%%.tar.bz2}"
+GKPKG_DMRAID_PN="dmraid"
+GKPKG_DMRAID_PV="${GKPKG_DMRAID_PV:-VERSION_DMRAID}"
+GKPKG_DMRAID_DEPS="lvm"
+GKPKG_DMRAID_SRCDIR="${GKPKG_DMRAID_SRCDIR:-dmraid/${GKPKG_DMRAID_PV}/dmraid}"
+GKPKG_DMRAID_SRCTAR="${GKPKG_DMRAID_SRCTAR:-${DISTDIR}/dmraid-${GKPKG_DMRAID_PV}.tar.bz2}"
+GKPKG_DMRAID_BINPKG="${GKPKG_DMRAID_BINPKG:-%%CACHE%%/dmraid-${GKPKG_DMRAID_PV}-%%ARCH%%.tar.xz}"
 
 GKPKG_DROPBEAR_PN="dropbear"
 GKPKG_DROPBEAR_PV="${GKPKG_DROPBEAR_PV:-VERSION_DROPBEAR}"

diff --git a/gen_cmdline.sh b/gen_cmdline.sh
index 0a1b1c8..5a1b481 100755
--- a/gen_cmdline.sh
+++ b/gen_cmdline.sh
@@ -379,18 +379,6 @@ parse_cmdline() {
 			;;
 		--dmraid|--no-dmraid)
 			CMD_DMRAID=$(parse_optbool "$*")
-			if isTrue "${CMD_DMRAID}" && [ ! -e /usr/sbin/dmraid ]
-			then
-				echo 'Error: --dmraid requires sys-fs/dmraid' \
-					'to be installed on the host system.'
-				exit 1
-			fi
-			if isTrue "${CMD_DMRAID}" && [ ! -e /usr/include/libdevmapper.h ]
-			then
-				echo 'Error: --dmraid requires sys-fs/lvm2' \
-					'to be installed on the host system.'
-				exit 1
-			fi
 			print_info 2 "CMD_DMRAID: ${CMD_DMRAID}"
 			;;
 		--e2fsprogs|--no-e2fsprogs)

diff --git a/gen_compile.sh b/gen_compile.sh
index 438a251..1c096cb 100755
--- a/gen_compile.sh
+++ b/gen_compile.sh
@@ -572,61 +572,6 @@ compile_mdadm() {
 	fi
 }
 
-compile_dmraid() {
-	compile_device_mapper
-
-	if [[ -f "${DMRAID_BINCACHE}" && "${DMRAID_BINCACHE}" -nt "${LVM_BINCACHE}" ]]
-	then
-		print_info 1 "$(getIndent 2)dmraid: >> Using cache ..."
-	else
-		[ -f "${DMRAID_SRCTAR}" ] ||
-			gen_die "Could not find DMRAID source tarball: ${DMRAID_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
-		cd "${TEMP}"
-		rm -rf ${DMRAID_DIR} > /dev/null
-		/bin/tar -xpf ${DMRAID_SRCTAR} ||
-			gen_die 'Could not extract DMRAID source tarball!'
-		[ -d "${DMRAID_DIR}" ] ||
-			gen_die "DMRAID directory ${DMRAID_DIR} is invalid!"
-
-		rm -rf "${TEMP}/lvm" > /dev/null
-		mkdir -p "${TEMP}/lvm"
-		/bin/tar -xpf "${LVM_BINCACHE}" -C "${TEMP}/lvm" ||
-			gen_die "Could not extract LVM2 binary cache!";
-
-		cd "${DMRAID_DIR}" || gen_die "cannot chdir into '${DMRAID_DIR}'"
-		apply_patches dmraid ${DMRAID_VER}
-
-		print_info 1 "$(getIndent 2)dmraid: >> Configuring ..."
-		DEVMAPPEREVENT_CFLAGS="-I${TEMP}/lvm/include" \
-		LIBS="-lm -lrt -lpthread" \
-		./configure --enable-static_link \
-			--with-devmapper-prefix="${TEMP}/lvm" \
-			--prefix=${TEMP}/dmraid >> ${LOGFILE} 2>&1 ||
-			gen_die 'Configure of dmraid failed!'
-
-		# We dont necessarily have selinux installed yet... look into
-		# selinux global support in the future.
-		sed -i tools/Makefile -e "/DMRAID_LIBS +=/s|-lselinux||g"
-		###echo "DMRAIDLIBS += -lselinux -lsepol" >> tools/Makefile
-		mkdir -p "${TEMP}/dmraid"
-		print_info 1 "$(getIndent 2)dmraid: >> Compiling ..."
-		compile_generic '' utils
-		#compile_generic 'install' utils
-		mkdir ${TEMP}/dmraid/sbin
-		install -m 0755 -s tools/dmraid "${TEMP}/dmraid/sbin/dmraid"
-
-		print_info 1 "$(getIndent 2)dmraid: >> Copying to bincache ..."
-		cd "${TEMP}/dmraid" || gen_die "cannot chdir into '${TEMP}/dmraid'"
-		/bin/tar -cjf "${DMRAID_BINCACHE}" sbin/dmraid ||
-			gen_die 'Could not create binary cache'
-
-		cd "${TEMP}"
-		isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${TEMP}/lvm" > /dev/null
-		isTrue "${CMD_DEBUGCLEANUP}" && rm -rf "${DMRAID_DIR}" dmraid
-		return 0
-	fi
-}
-
 determine_busybox_config_file() {
 	print_info 2 "$(get_indent 3)busybox: >> Checking for suitable busybox configuration ..."
 

diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 7b282d2..b15f1bf 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -389,33 +389,33 @@ append_multipath(){
 	rm -r "${TEMP}/initramfs-multipath-temp/"
 }
 
-append_dmraid(){
-	if [ -d "${TEMP}/initramfs-dmraid-temp" ]
-	then
-		rm -r "${TEMP}/initramfs-dmraid-temp/"
-	fi
-	print_info 1 "$(getIndent 2)DMRAID: Adding support (compiling binaries)..."
-	compile_dmraid
-	mkdir -p "${TEMP}/initramfs-dmraid-temp/"
-	/bin/tar -xpf "${DMRAID_BINCACHE}" -C "${TEMP}/initramfs-dmraid-temp" ||
-		gen_die "Could not extract dmraid binary cache!";
-	[ -x /sbin/dmsetup -a -x /sbin/kpartx ] && copy_binaries \
-		"${TEMP}/initramfs-dmraid-temp/" \
-		/sbin/{kpartx,dmsetup}
-	cd "${TEMP}/initramfs-dmraid-temp/"
-	module_ext=$(modules_kext)
-	RAID456=`find . -type f -name raid456${module_ext}`
-	if [ -n "${RAID456}" ]
+append_dmraid() {
+	local PN=dmraid
+	local TDIR="${TEMP}/initramfs-${PN}-temp"
+	if [ -d "${TDIR}" ]
 	then
-		cd "${RAID456/raid456${module_ext}/}"
-		ln -sf raid456.kp $(basename ${RAID456})
-		cd "${TEMP}/initramfs-dmraid-temp/"
+		rm -r "${TDIR}" || gen_die "Failed to clean out existing '${TDIR}'!"
 	fi
+
+	populate_binpkg ${PN}
+
+	mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
+
+	unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
+
+	cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
+
+	# Delete unneeded files
+	rm -rf \
+		usr/lib \
+		usr/share \
+		usr/include
+
+	mkdir -p "${TDIR}"/var/lock/dmraid || gen_die "Failed to create '${TDIR}/var/lock/dmraid'!"
+
 	log_future_cpio_content
 	find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
-			|| gen_die "compressing dmraid cpio"
-	cd "${TEMP}"
-	rm -r "${TEMP}/initramfs-dmraid-temp/"
+		|| gen_die "Failed to append dmraid to cpio!"
 }
 
 append_iscsi() {

diff --git a/gkbuilds/dmraid.gkbuild b/gkbuilds/dmraid.gkbuild
new file mode 100644
index 0000000..2c6810c
--- /dev/null
+++ b/gkbuilds/dmraid.gkbuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_prepare() {
+	# pkg_check_modules is not in aclocal.m4 by default, and autoreconf doesn't add it
+	cat /usr/share/aclocal/pkg.m4 >>"${S}"/aclocal.m4 \
+		|| die "Failed to append '/usr/share/aclocal/pkg.m4' to '${S}/aclocal.m4'!"
+
+	default
+}
+
+src_configure() {
+	local myconf=(
+		--enable-static_link
+	)
+
+	gkconf "${myconf[@]}"
+}
+
+src_install() {
+	default
+
+	"${STRIP}" --strip-all "${D}"/usr/sbin/dmraid \
+		|| die "Failed to strip '${D}/usr/sbin/dmraid'!"
+
+	# For backward compatibility
+	mkdir "${D}"/sbin || die "Failed to create '${D}/sbin'!"
+
+	ln -s ../usr/sbin/dmraid "${D}"/sbin/dmraid \
+		|| die "Failed to create symlink '${D}/sbin/dmraid' to '${D}/usr/sbin/dmraid'!"
+}

diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-undo-p-rename.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-001-undo-p-rename.patch
similarity index 100%
rename from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-undo-p-rename.patch
rename to patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-001-undo-p-rename.patch

diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch
new file mode 100644
index 0000000..4ac153a
--- /dev/null
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-002-return-all-sets.patch
@@ -0,0 +1,11 @@
+--- a/1.0.0.rc16-3/dmraid/lib/metadata/metadata.c
++++ b/1.0.0.rc16-3/dmraid/lib/metadata/metadata.c
+@@ -839,7 +839,7 @@ _discover_partitions(struct lib_context *lc, struct list_head *rs_list)
+ 		 */
+ 		if (T_GROUP(rs)) {
+ 			_discover_partitions(lc, &rs->sets);
+-			return;
++			continue;
+ 		}
+ 
+ 		/*

diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-static-build-fixes.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-003-static-build-fixes.patch
similarity index 87%
rename from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-static-build-fixes.patch
rename to patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-003-static-build-fixes.patch
index 2988117..3ca491d 100644
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-static-build-fixes.patch
+++ b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-003-static-build-fixes.patch
@@ -1,50 +1,6 @@
---- tools/Makefile.in.old	2010-05-31 07:18:31.000000000 -0400
-+++ tools/Makefile.in	2010-12-13 13:15:22.000000000 -0500
-@@ -60,17 +60,23 @@
- ifeq ("@KLIBC@", "no")
- 	ifeq ("@STATIC_LINK@", "no")
- 		LDFLAGS += -rdynamic
-+		MYLIBOBJ=$(top_builddir)/lib/libdmraid.so
- 	else
- 		LDFLAGS += -static
-+		MYLIBOBJ=$(top_builddir)/lib/libdmraid.a
-+		DMRAIDLIBS += \
-+			$(DEVMAPPEREVENT_LIBS) \
-+			$(DEVMAPPER_LIBS) \
-+			$(DL_LIBS)
- 	endif
- endif
- 
- .PHONY: install_dmraid_tools
- 
--dmraid: $(OBJECTS) $(top_builddir)/lib/libdmraid.a
-+dmraid: $(OBJECTS) $(MYLIBOBJ)
- 	$(CC) -o $@ $(OBJECTS) $(LDFLAGS) -L$(top_builddir)/lib $(DMRAIDLIBS) $(LIBS)
- 
--dmevent_tool: $(OBJECTS2) $(top_builddir)/lib/libdmraid.a
-+dmevent_tool: $(OBJECTS2) $(MYLIBOBJ)
- 	$(CC) -o $@ $(OBJECTS2) $(INCLUDES) $(LDFLAGS) -L$(top_builddir)/lib \
- 		$(DMEVENTTOOLLIBS) $(DMRAIDLIBS) $(LIBS)
- 
---- lib/Makefile.in.old	2010-10-27 07:31:46.000000000 -0400
-+++ lib/Makefile.in	2010-12-13 13:04:16.000000000 -0500
-@@ -60,11 +60,11 @@
- USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \
-   $(AWK) -f $(top_srcdir)/tools/relpath.awk)
- 
--TARGETS = $(LIB_STATIC)
-+TARGETS = $(LIB_STATIC) $(LIB_SHARED) $(LIB_EVENTS_SHARED)
- 
- ifeq ("@KLIBC@", "no")
- 	ifeq ("@STATIC_LINK@", "no")
--		TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
-+		TARGETS = $(LIB_SHARED) $(LIB_EVENTS_SHARED)
- 	endif
- endif
- 
---- configure.in	2010-05-31 07:18:30.000000000 -0400
-+++ configure.in.new	2010-12-07 13:30:40.000000000 -0500
-@@ -155,6 +155,15 @@
+--- a/1.0.0.rc16-3/dmraid/configure.in
++++ b/1.0.0.rc16-3/dmraid/configure.in
+@@ -155,6 +155,15 @@ AC_ARG_ENABLE(static_link,
      Default is dynamic linking]),
    [STATIC_LINK=$enableval], [STATIC_LINK=no])
  
@@ -60,7 +16,7 @@
  dnl Enables shared libdmraid
  AC_ARG_ENABLE(shared_lib,
    AC_HELP_STRING([--enable-shared_lib], [Use this to generate shared
-@@ -248,23 +257,31 @@
+@@ -248,23 +257,31 @@ AC_ARG_WITH(devmapper-prefix,
  	AC_HELP_STRING([--with-devmapper-prefix=PFX],
  		[Where is devmapper library installed]),
  	[DEVMAPPER_LIBS="-L$withval/lib"
@@ -107,4 +63,48 @@
 +fi
  
  VERSION=$srcdir/tools/VERSION
- DMRAID_LIB_MAJOR=$(cut -d. -f1 $VERSION)
\ No newline at end of file
+ DMRAID_LIB_MAJOR=$(cut -d. -f1 $VERSION)
+--- a/1.0.0.rc16-3/dmraid/lib/Makefile.in
++++ b/1.0.0.rc16-3/dmraid/lib/Makefile.in
+@@ -60,11 +60,11 @@ LIB_EVENTS_SHARED=$(LIB_EVENTS_NAME).so
+ USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \
+   $(AWK) -f $(top_srcdir)/tools/relpath.awk)
+ 
+-TARGETS = $(LIB_STATIC)
++TARGETS = $(LIB_STATIC) $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+ 
+ ifeq ("@KLIBC@", "no")
+ 	ifeq ("@STATIC_LINK@", "no")
+-		TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
++		TARGETS = $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+ 	endif
+ endif
+ 
+--- a/1.0.0.rc16-3/dmraid/tools/Makefile.in
++++ b/1.0.0.rc16-3/dmraid/tools/Makefile.in
+@@ -60,17 +60,23 @@ endif
+ ifeq ("@KLIBC@", "no")
+ 	ifeq ("@STATIC_LINK@", "no")
+ 		LDFLAGS += -rdynamic
++		MYLIBOBJ=$(top_builddir)/lib/libdmraid.so
+ 	else
+ 		LDFLAGS += -static
++		MYLIBOBJ=$(top_builddir)/lib/libdmraid.a
++		DMRAIDLIBS += \
++			$(DEVMAPPEREVENT_LIBS) \
++			$(DEVMAPPER_LIBS) \
++			$(DL_LIBS)
+ 	endif
+ endif
+ 
+ .PHONY: install_dmraid_tools
+ 
+-dmraid: $(OBJECTS) $(top_builddir)/lib/libdmraid.a
++dmraid: $(OBJECTS) $(MYLIBOBJ)
+ 	$(CC) -o $@ $(OBJECTS) $(LDFLAGS) -L$(top_builddir)/lib $(DMRAIDLIBS) $(LIBS)
+ 
+-dmevent_tool: $(OBJECTS2) $(top_builddir)/lib/libdmraid.a
++dmevent_tool: $(OBJECTS2) $(MYLIBOBJ)
+ 	$(CC) -o $@ $(OBJECTS2) $(INCLUDES) $(LDFLAGS) -L$(top_builddir)/lib \
+ 		$(DMEVENTTOOLLIBS) $(DMRAIDLIBS) $(LIBS)
+ 

diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0.rc16-3-staticlink.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-004-staticlink.patch
similarity index 100%
rename from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0.rc16-3-staticlink.patch
rename to patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-004-staticlink.patch

diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-parallel-make.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-005-parallel-make.patch
similarity index 100%
rename from patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-parallel-make.patch
rename to patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-005-parallel-make.patch

diff --git a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch b/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch
deleted file mode 100644
index 1e6c713..0000000
--- a/patches/dmraid/1.0.0.rc16-3/dmraid-1.0.0_rc16-return-all-sets.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/1.0.0.rc16/lib/metadata/metadata.c	2009-11-27 21:57:50.182129589 -0800
-+++ b/1.0.0.rc16/lib/metadata/metadata.c	2009-11-27 21:57:58.950964293 -0800
-@@ -839,7 +839,7 @@
- 		 */
- 		if (T_GROUP(rs)) {
- 			_discover_partitions(lc, &rs->sets);
--			return;
-+			continue;
- 		}
- 
- 		/*


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-07-14 13:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-14 13:00 [gentoo-commits] proj/genkernel:master commit in: /, patches/dmraid/1.0.0.rc16-3/, gkbuilds/, defaults/ Thomas Deutschmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox