[packages/geninitrd] - rel 5; add fixes from git

arekm arekm at pld-linux.org
Mon Nov 25 20:18:03 CET 2019


commit e48d916d51e912c5b34ae50e4abc6a857ec50deb
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Nov 25 20:17:56 2019 +0100

    - rel 5; add fixes from git

 geninitrd-git.patch | 349 +++++++++++++++++++++++++++++++++++++---------------
 geninitrd.spec      |   2 +-
 2 files changed, 254 insertions(+), 97 deletions(-)
---
diff --git a/geninitrd.spec b/geninitrd.spec
index 549e4f8..c311cb2 100644
--- a/geninitrd.spec
+++ b/geninitrd.spec
@@ -2,7 +2,7 @@ Summary:	Creates an initial ramdisk image for preloading modules
 Summary(pl.UTF-8):	Narzędzie do tworzenia inicjalnego ramdysku używanego przy starcie systemu
 Name:		geninitrd
 Version:	12787
-Release:	4
+Release:	5
 License:	GPL
 Group:		Applications/System
 Source0:	%{name}-%{version}.tar.gz
diff --git a/geninitrd-git.patch b/geninitrd-git.patch
index 438da92..2287221 100644
--- a/geninitrd-git.patch
+++ b/geninitrd-git.patch
@@ -1,123 +1,130 @@
-commit 33cc4751b8f80fc3b800928b9ad93866b2569915
+commit 43d2f37d89034a2e409bb4f66cca1a64b12130b8
 Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
-Date:   Tue Dec 18 14:33:12 2018 +0100
+Date:   Mon Nov 25 20:15:24 2019 +0100
 
-    Install blkid in /sbin because udevd expects it to be there.
+    Accept d/D symbols, too (ffffffff825ca52c D __initramfs_start) as noticed in recent 4.19.85-1 kernel.
 
 diff --git a/geninitrd b/geninitrd
-index a79b9c3..118333c 100755
+index 05e290a..052f553 100755
 --- a/geninitrd
 +++ b/geninitrd
-@@ -1530,7 +1530,7 @@ chmod a+rx "$RCFILE"
- ln -s linuxrc $DESTDIR/init
- 
- # create dirs that we really need
--inst_d /{lib,bin,etc,dev{,/pts,/shm},loopfs,var,proc,run,sys,tmp}
-+inst_d /{lib,bin,sbin,etc,dev{,/pts,/shm},loopfs,var,proc,run,sys,tmp}
- 
- modules_install "$MODULES"
- 
-diff --git a/mod-blkid.sh b/mod-blkid.sh
-index 8ee2a48..92df9ae 100644
---- a/mod-blkid.sh
-+++ b/mod-blkid.sh
-@@ -22,12 +22,12 @@ initrd_gen_blkid() {
+@@ -1097,7 +1097,7 @@ sym_exists() {
+ 		return 1
  	fi
- 	verbose "Adding BLKID support to initrd"
  
--	inst_exec $blkid /bin/blkid
-+	inst_exec $blkid /sbin/blkid
- 	initrd_gen_devices
- 	add_linuxrc <<-'EOF'
- 		# if built with blkid change ROOT=LABEL=something into ROOT=/dev/device parsed by blkid
- 		if [ "${ROOT##LABEL=}" != "${ROOT}" -o "${ROOT##UUID=}" != "${ROOT}" ]; then
--			blkid="$(/bin/blkid -t $ROOT -o device -l)"
-+			blkid="$(/sbin/blkid -t $ROOT -o device -l)"
- 			if [ -n "$blkid" ]; then
- 				ROOT=$blkid
- 			fi
+-	awk -vc=1 -vsymbol="$symbol" '($2 == "T" || $2 == "t") && $3 == symbol {c = 0} END {exit c}' $mapfile
++	awk -vc=1 -vsymbol="$symbol" '(tolower($2) == "t" || tolower($2) == "d") && $3 == symbol {c = 0} END {exit c}' $mapfile
+ }
+ 
+ # find best compressor (or forced one) for initrd
 
-commit dc5ca733ed6fe57dfa39d4598a6586069e41d0b0
+commit 04b32086569a126d5d6f9bd0ad1b0db9f142f50e
 Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
-Date:   Tue Dec 18 14:34:38 2018 +0100
+Date:   Sun Jul 21 21:04:05 2019 +0200
 
-    Install mdadm in /sbin because udevd expects it to be there.
+    Try to detect a need for nvme driver. If you know better method then share with us.
 
-diff --git a/mod-md.sh b/mod-md.sh
-index 2b6f587..a358517 100644
---- a/mod-md.sh
-+++ b/mod-md.sh
-@@ -133,7 +133,7 @@ initrd_gen_md() {
+diff --git a/geninitrd b/geninitrd
+index b5d405a..05e290a 100755
+--- a/geninitrd
++++ b/geninitrd
+@@ -673,6 +673,11 @@ find_modules_for_devpath() {
+ 		return
  	fi
- 	verbose "Setting up mdadm..."
  
--	inst_exec $mdadm /bin/mdadm
-+	inst_exec $mdadm /sbin/mdadm
++	if [[ "$devpath" == /dev/nvme* ]]; then
++		find_module "nvme"
++		return
++	fi
++
+ 	if [[ "$devpath" == /dev/bcache* ]]; then
+ 		find_modules_bcache "$devpath"
+ 		return
+
+commit 4de5a3333e772ad198381f157c014e452e42c129
+Author: Elan Ruusamäe <glen at pld-linux.org>
+Date:   Mon Jul 15 23:56:58 2019 +0300
+
+    fix indent
+
+diff --git a/mod-usbkbd.sh b/mod-usbkbd.sh
+index ff8f442..35543b7 100644
+--- a/mod-usbkbd.sh
++++ b/mod-usbkbd.sh
+@@ -10,22 +10,22 @@ find_modules_usbkbd() {
  
- 	echo "DEVICE partitions containers" >> "$DESTDIR/etc/mdadm.conf"
+ 	local modules i module bInterfaceClass bInterfaceProtocol
  
-@@ -181,7 +181,7 @@ initrd_gen_md() {
+-        for i in /sys/bus/usb/devices/*-*:*; do
+-                # standard usb keyboards
+-                if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
+-                        bInterfaceClass=$(cat $i/bInterfaceClass)
+-                        bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
+-                        if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
+-                                module=$(readlink $i/driver/module)
+-                                module=$(basename $module)
++	for i in /sys/bus/usb/devices/*-*:*; do
++		# standard usb keyboards
++		if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
++			bInterfaceClass=$(cat $i/bInterfaceClass)
++			bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
++			if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
++				module=$(readlink $i/driver/module)
++				module=$(basename $module)
  
- 	echo "wait_for_files $cr_dev_list" | add_linuxrc
- 	add_linuxrc <<-'EOF'
--	mdadm --assemble --scan
-+	/sbin/mdadm --assemble --scan
+-                                if [ -n "$module" ]; then
+-                                        verbose "Found USB Keyboard driver: $module"
+-                                        modules="$modules $module"
+-                                fi
+-                        fi
+-                fi
+-        done
++				if [ -n "$module" ]; then
++					verbose "Found USB Keyboard driver: $module"
++					modules="$modules $module"
++				fi
++			fi
++		fi
++	done
  
- 	if [ "$DEBUGINITRD" ]; then
- 		[ -e /proc/mdstat ] && echo "/proc/mdstat contents:" && cat /proc/mdstat
+ 	for i in /sys/class/input/input*; do
+ 		# standard usb keyboards
 
-commit 3d81f1cd0bc557ad9a1f157b403f0396866c648c
+commit 662fd5a3adac2080640fa4eacd34d72504526175
 Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
-Date:   Tue Dec 18 14:38:55 2018 +0100
+Date:   Mon Jul 15 19:59:46 2019 +0200
 
-    udevd uses ata_id and scsi_id, so install these.
+    Another way for findings usb keyboard drivers that works on newer kernels.
 
-diff --git a/mod-udev.sh b/mod-udev.sh
-index 422ef3e..a2491ee 100644
---- a/mod-udev.sh
-+++ b/mod-udev.sh
-@@ -41,9 +41,11 @@ setup_mod_udev() {
- initrd_gen_udev() {
- 	verbose "Setting up udev..."
+diff --git a/mod-usbkbd.sh b/mod-usbkbd.sh
+index 0dd0d20..ff8f442 100644
+--- a/mod-usbkbd.sh
++++ b/mod-usbkbd.sh
+@@ -10,6 +10,23 @@ find_modules_usbkbd() {
  
--	inst_d /sbin /etc/udev
-+	inst_d /sbin /etc/udev /lib/udev
- 	inst_exec $udevd /sbin/udevd
- 	inst_exec $udevadm /sbin/udevadm
-+	inst_exec /lib/udev/ata_id  /lib/udev/ata_id
-+	inst_exec /lib/udev/scsi_id /lib/udev/scsi_id
- 	inst /etc/udev/udev.conf /etc/udev/udev.conf
- 	# standard udev rules
- 	inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
-
-commit 21ad0f7980ce6a0135e4a3c37a94472ed4f1320c
-Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
-Date:   Tue Dec 18 14:43:20 2018 +0100
-
-    Use existing mechanism for installing udev apps but install regular variants, too if initrd-variants don't exist.
-
-diff --git a/mod-udev.sh b/mod-udev.sh
-index a2491ee..87f4b68 100644
---- a/mod-udev.sh
-+++ b/mod-udev.sh
-@@ -44,8 +44,6 @@ initrd_gen_udev() {
- 	inst_d /sbin /etc/udev /lib/udev
- 	inst_exec $udevd /sbin/udevd
- 	inst_exec $udevadm /sbin/udevadm
--	inst_exec /lib/udev/ata_id  /lib/udev/ata_id
--	inst_exec /lib/udev/scsi_id /lib/udev/scsi_id
- 	inst /etc/udev/udev.conf /etc/udev/udev.conf
- 	# standard udev rules
- 	inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
-@@ -57,6 +55,8 @@ initrd_gen_udev() {
- 	for e in ata_id cdrom_id collect firmware scsi_id v4l_id; do
- 		if [ -e "$initrd_dir/udev/$e" ]; then
- 			inst_exec $initrd_dir/udev/$e /lib/udev/$e
-+		elif [ -e "/lib/udev/$e" ]; then
-+			inst_exec /lib/udev/$e /lib/udev/$e
- 		fi
- 	done
+ 	local modules i module bInterfaceClass bInterfaceProtocol
  
++        for i in /sys/bus/usb/devices/*-*:*; do
++                # standard usb keyboards
++                if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
++                        bInterfaceClass=$(cat $i/bInterfaceClass)
++                        bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
++                        if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
++                                module=$(readlink $i/driver/module)
++                                module=$(basename $module)
++
++                                if [ -n "$module" ]; then
++                                        verbose "Found USB Keyboard driver: $module"
++                                        modules="$modules $module"
++                                fi
++                        fi
++                fi
++        done
++
+ 	for i in /sys/class/input/input*; do
+ 		# standard usb keyboards
+ 		if [ -f $i/device/bInterfaceClass -a -f $i/device/bInterfaceProtocol ]; then
+
 commit b565e95c147bea4e68e4ccf5ad19906d51d2375b
 Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
 Date:   Wed May 15 21:04:45 2019 +0200
@@ -182,3 +189,153 @@ index ccf177c..1268324 100644
  ## Use udev to create /dev?
  USE_UDEV=yes
  
+
+commit ad5033d7e704edaf52f2be18d4aa98c378179ede
+Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
+Date:   Fri Jan 25 20:38:24 2019 +0100
+
+    Timeout here is not a good idea. rootfs cannot be mounted and kernel oopses due to that.
+
+diff --git a/mod-luks.sh b/mod-luks.sh
+index ff877f7..ffe87cb 100644
+--- a/mod-luks.sh
++++ b/mod-luks.sh
+@@ -162,7 +162,7 @@ luks_crypttab() {
+ 			done
+ 			IFS="$old_IFS"
+ 
+-			verbose "+ cryptsetup --timeout=120 ${keyfile:+-d $keyfile} open $crypttab_opt '$src' '$dst'"
++			verbose "+ cryptsetup ${keyfile:+-d $keyfile} open $crypttab_opt '$src' '$dst'"
+ 			add_linuxrc <<-EOF
+ 			debugshell
+ 
+@@ -189,7 +189,7 @@ luks_crypttab() {
+ 				crypt_status=\$(cryptsetup \$cryptsetup_opt status '$dst')
+ 				if [ "\${crypt_status%%is inactive*}" != "\$crypt_status" ]; then
+ 					# is inactive
+-					cryptsetup \$cryptsetup_opt ${keyfile:+-d $keyfile} --timeout 120 open $crypttab_opt "\$luksdev" '$dst' <&1
++					cryptsetup \$cryptsetup_opt ${keyfile:+-d $keyfile} open $crypttab_opt "\$luksdev" '$dst' <&1
+ 				fi
+ 			fi
+ 
+
+commit 21ad0f7980ce6a0135e4a3c37a94472ed4f1320c
+Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
+Date:   Tue Dec 18 14:43:20 2018 +0100
+
+    Use existing mechanism for installing udev apps but install regular variants, too if initrd-variants don't exist.
+
+diff --git a/mod-udev.sh b/mod-udev.sh
+index a2491ee..87f4b68 100644
+--- a/mod-udev.sh
++++ b/mod-udev.sh
+@@ -44,8 +44,6 @@ initrd_gen_udev() {
+ 	inst_d /sbin /etc/udev /lib/udev
+ 	inst_exec $udevd /sbin/udevd
+ 	inst_exec $udevadm /sbin/udevadm
+-	inst_exec /lib/udev/ata_id  /lib/udev/ata_id
+-	inst_exec /lib/udev/scsi_id /lib/udev/scsi_id
+ 	inst /etc/udev/udev.conf /etc/udev/udev.conf
+ 	# standard udev rules
+ 	inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
+@@ -57,6 +55,8 @@ initrd_gen_udev() {
+ 	for e in ata_id cdrom_id collect firmware scsi_id v4l_id; do
+ 		if [ -e "$initrd_dir/udev/$e" ]; then
+ 			inst_exec $initrd_dir/udev/$e /lib/udev/$e
++		elif [ -e "/lib/udev/$e" ]; then
++			inst_exec /lib/udev/$e /lib/udev/$e
+ 		fi
+ 	done
+ 
+
+commit 3d81f1cd0bc557ad9a1f157b403f0396866c648c
+Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
+Date:   Tue Dec 18 14:38:55 2018 +0100
+
+    udevd uses ata_id and scsi_id, so install these.
+
+diff --git a/mod-udev.sh b/mod-udev.sh
+index 422ef3e..a2491ee 100644
+--- a/mod-udev.sh
++++ b/mod-udev.sh
+@@ -41,9 +41,11 @@ setup_mod_udev() {
+ initrd_gen_udev() {
+ 	verbose "Setting up udev..."
+ 
+-	inst_d /sbin /etc/udev
++	inst_d /sbin /etc/udev /lib/udev
+ 	inst_exec $udevd /sbin/udevd
+ 	inst_exec $udevadm /sbin/udevadm
++	inst_exec /lib/udev/ata_id  /lib/udev/ata_id
++	inst_exec /lib/udev/scsi_id /lib/udev/scsi_id
+ 	inst /etc/udev/udev.conf /etc/udev/udev.conf
+ 	# standard udev rules
+ 	inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
+
+commit dc5ca733ed6fe57dfa39d4598a6586069e41d0b0
+Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
+Date:   Tue Dec 18 14:34:38 2018 +0100
+
+    Install mdadm in /sbin because udevd expects it to be there.
+
+diff --git a/mod-md.sh b/mod-md.sh
+index 2b6f587..a358517 100644
+--- a/mod-md.sh
++++ b/mod-md.sh
+@@ -133,7 +133,7 @@ initrd_gen_md() {
+ 	fi
+ 	verbose "Setting up mdadm..."
+ 
+-	inst_exec $mdadm /bin/mdadm
++	inst_exec $mdadm /sbin/mdadm
+ 
+ 	echo "DEVICE partitions containers" >> "$DESTDIR/etc/mdadm.conf"
+ 
+@@ -181,7 +181,7 @@ initrd_gen_md() {
+ 
+ 	echo "wait_for_files $cr_dev_list" | add_linuxrc
+ 	add_linuxrc <<-'EOF'
+-	mdadm --assemble --scan
++	/sbin/mdadm --assemble --scan
+ 
+ 	if [ "$DEBUGINITRD" ]; then
+ 		[ -e /proc/mdstat ] && echo "/proc/mdstat contents:" && cat /proc/mdstat
+
+commit 33cc4751b8f80fc3b800928b9ad93866b2569915
+Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
+Date:   Tue Dec 18 14:33:12 2018 +0100
+
+    Install blkid in /sbin because udevd expects it to be there.
+
+diff --git a/geninitrd b/geninitrd
+index a79b9c3..118333c 100755
+--- a/geninitrd
++++ b/geninitrd
+@@ -1530,7 +1530,7 @@ chmod a+rx "$RCFILE"
+ ln -s linuxrc $DESTDIR/init
+ 
+ # create dirs that we really need
+-inst_d /{lib,bin,etc,dev{,/pts,/shm},loopfs,var,proc,run,sys,tmp}
++inst_d /{lib,bin,sbin,etc,dev{,/pts,/shm},loopfs,var,proc,run,sys,tmp}
+ 
+ modules_install "$MODULES"
+ 
+diff --git a/mod-blkid.sh b/mod-blkid.sh
+index 8ee2a48..92df9ae 100644
+--- a/mod-blkid.sh
++++ b/mod-blkid.sh
+@@ -22,12 +22,12 @@ initrd_gen_blkid() {
+ 	fi
+ 	verbose "Adding BLKID support to initrd"
+ 
+-	inst_exec $blkid /bin/blkid
++	inst_exec $blkid /sbin/blkid
+ 	initrd_gen_devices
+ 	add_linuxrc <<-'EOF'
+ 		# if built with blkid change ROOT=LABEL=something into ROOT=/dev/device parsed by blkid
+ 		if [ "${ROOT##LABEL=}" != "${ROOT}" -o "${ROOT##UUID=}" != "${ROOT}" ]; then
+-			blkid="$(/bin/blkid -t $ROOT -o device -l)"
++			blkid="$(/sbin/blkid -t $ROOT -o device -l)"
+ 			if [ -n "$blkid" ]; then
+ 				ROOT=$blkid
+ 			fi
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/geninitrd.git/commitdiff/e48d916d51e912c5b34ae50e4abc6a857ec50deb



More information about the pld-cvs-commit mailing list