commit:     f6f9384b423e9bb9b8cee294f4ddbeee7c518463
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 23 20:36:13 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu Jul 23 22:56:47 2020 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=f6f9384b

mdadm: Switch to UDEV usage

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

 defaults/initrd.scripts | 38 --------------------------------------
 defaults/linuxrc        |  3 ---
 defaults/software.sh    |  2 +-
 defaults/unlock-luks.sh |  1 -
 gkbuilds/mdadm.gkbuild  |  3 +++
 5 files changed, 4 insertions(+), 43 deletions(-)

diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index 9b2b32c..5515f49 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -1525,24 +1525,6 @@ start_volumes() {
                run ln -sf /dev/device-mapper /dev/mapper/control
        fi
 
-       if [ "${USE_MDADM}" = '1' ]
-       then
-               if [ -x '/sbin/mdadm' ]
-               then
-                       local mdadm_cmd="run /sbin/mdadm --assemble --scan 2>&1"
-                       is_log_enabled && mdadm_cmd="${mdadm_cmd} | tee -a 
'${GK_INIT_LOG}'"
-                       eval "${mdadm_cmd}"
-
-                       #Intel Matrix RAID (and possibly others) have a 
container layer above the actual volumes,
-                       #So we have to look for volumes that haven't been 
activated.
-                       mdadm_cmd="run /sbin/mdadm -IRs 2>&1"
-                       is_log_enabled && mdadm_cmd="${mdadm_cmd} | tee -a 
'${GK_INIT_LOG}'"
-                       eval "${mdadm_cmd}"
-               else
-                       bad_msg "domdadm invoked but /sbin/mdadm not found; 
Skipping mdadm raid assembly ..."
-               fi
-       fi
-
        if [ "${USE_MULTIPATH_NORMAL}" = '1' ]
        then
                for multipath_path in /sbin/multipath /bin/multipath MISSING
@@ -1887,7 +1869,6 @@ openLUKS() {
                                continue
                        fi
 
-                       setup_md_device ${LUKS_DEVICE}
                        if ! run cryptsetup isLuks ${LUKS_DEVICE}
                        then
                                bad_msg "The LUKS device ${LUKS_DEVICE} does 
not contain a LUKS header" ${CRYPT_SILENT}
@@ -2571,25 +2552,6 @@ setup_btrfsctl() {
        fi
 }
 
-setup_md_device() {
-       local device
-
-       [ -z "$1" ] && device="${REAL_ROOT}" || device="$1"
-       [ -z "${device}" ] && return # LiveCD
-
-       if [ $(echo ${device}|sed -e 
's#\(luks:\)\?\(/dev/md\)[[:digit:]]\+#\2#') = "/dev/md" ]
-       then
-               good_msg 'Detected real_root as a md device. Setting up the 
device node ...'
-               MD_NUMBER=$(echo ${device}|sed -e 
's#\(luks:\)\?/dev/md\([[:digit:]]\+\)#\2#')
-               if [ ! -e /dev/md${MD_NUMBER} ]
-               then
-                       run mknod /dev/md${MD_NUMBER} b 9 ${MD_NUMBER} 
>/dev/null 2>&1
-                       [ $? -ne 0 ] && bad_msg "Creation of 
/dev/md${MD_NUMBER} failed ..."
-               fi
-               run raidautorun /dev/md${MD_NUMBER}
-       fi
-}
-
 rundebugshell() {
        if is_debug
        then

diff --git a/defaults/linuxrc b/defaults/linuxrc
index 210085a..4c1b470 100644
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -625,9 +625,6 @@ sdelay
 # Setup btrfs, see bug 303529
 setup_btrfsctl
 
-# Setup md device nodes if they dont exist
-setup_md_device
-
 # Scan volumes
 start_volumes
 

diff --git a/defaults/software.sh b/defaults/software.sh
index 463d8cf..3de9470 100644
--- a/defaults/software.sh
+++ b/defaults/software.sh
@@ -165,7 +165,7 @@ 
GKPKG_LZO_BINPKG="${GKPKG_LZO_BINPKG:-%%CACHE%%/lzo-${GKPKG_LZO_PV}-%%ARCH%%.tar
 
 GKPKG_MDADM_PN="mdadm"
 GKPKG_MDADM_PV="${GKPKG_MDADM_PV:-VERSION_MDADM}"
-GKPKG_MDADM_DEPS=""
+GKPKG_MDADM_DEPS="eudev"
 
GKPKG_MDADM_SRCTAR="${GKPKG_MDADM_SRCTAR:-${DISTDIR}/mdadm-${GKPKG_MDADM_PV}.tar.xz}"
 GKPKG_MDADM_SRCDIR="${GKPKG_MDADM_SRCDIR:-mdadm-${GKPKG_MDADM_PV}}"
 
GKPKG_MDADM_BINPKG="${GKPKG_MDADM_BINPKG:-%%CACHE%%/mdadm-${GKPKG_MDADM_PV}-%%ARCH%%.tar.xz}"

diff --git a/defaults/unlock-luks.sh b/defaults/unlock-luks.sh
index 87381ab..710d951 100644
--- a/defaults/unlock-luks.sh
+++ b/defaults/unlock-luks.sh
@@ -63,7 +63,6 @@ main() {
                                exit 1
                        fi
 
-                       setup_md_device "${LUKS_DEVICE}"
                        if ! run cryptsetup isLuks "${LUKS_DEVICE}"
                        then
                                bad_msg "The LUKS device ${LUKS_DEVICE} does 
not contain a LUKS header" "${CRYPT_SILENT}"

diff --git a/gkbuilds/mdadm.gkbuild b/gkbuilds/mdadm.gkbuild
index 2307d0e..b43f753 100644
--- a/gkbuilds/mdadm.gkbuild
+++ b/gkbuilds/mdadm.gkbuild
@@ -10,6 +10,7 @@ src_prepare() {
                -e "/^CXFLAGS = /s:^CXFLAGS = \(.*\)$:CXFLAGS = ${CFLAGS} 
${defs}:" \
                -e "/^CWFLAGS = /s:^CWFLAGS = \(.*\)$:CWFLAGS = -Wall:" \
                -e "s/^# LDFLAGS = -static/LDFLAGS = -static/" \
+               -e "s|^UDEVDIR := .*|UDEVDIR = $(get_udevdir)|" \
                Makefile \
                || die "Failed to sed mdadm Makefile"
 }
@@ -19,6 +20,8 @@ src_compile() {
 }
 
 src_install() {
+       gkmake V=1 DESTDIR="${D}" install-udev
+
        mkdir -p "${D}"/sbin || die "Failed to create '${D}/sbin'!"
 
        cp -a mdadm "${D}"/sbin/ \

Reply via email to