[packages/geninitrd] - rel 2; allow discard for LUKS devices
arekm
arekm at pld-linux.org
Wed Nov 26 21:42:46 CET 2014
commit e4008f8c2ec3a6d9f8adf63247425faeec8482d5
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Wed Nov 26 21:42:20 2014 +0100
- rel 2; allow discard for LUKS devices
geninitrd-git.patch | 138 ++++++++++++++++------------------------------------
geninitrd.spec | 4 +-
2 files changed, 43 insertions(+), 99 deletions(-)
---
diff --git a/geninitrd.spec b/geninitrd.spec
index 2d22741..53ad2dc 100644
--- a/geninitrd.spec
+++ b/geninitrd.spec
@@ -7,7 +7,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: 12744
-Release: 1
+Release: 2
License: GPL
Group: Applications/System
Source0: %{name}-%{version}.tar.gz
@@ -84,7 +84,7 @@ bieżących informacji zawartych w /etc/modules.conf.
%prep
%setup -qc
mv %{name}-%{version}*/* .
-#%patch0 -p1
+%patch0 -p1
%build
%{__make}
diff --git a/geninitrd-git.patch b/geninitrd-git.patch
index 864d1ea..6c1b268 100644
--- a/geninitrd-git.patch
+++ b/geninitrd-git.patch
@@ -1,101 +1,45 @@
-commit c6e700c36a25dd8c8438bbac6d53f5d558100d46
-Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
-Date: Wed May 14 19:05:42 2014 +0200
-
- Install 95-dm-notify.rules. Fixes problems with using dmcrypt and errors (in debug mode) like 'Udev cookie 0xd4dc311 (semid 229380) waiting for zero'
-
-diff --git a/mod-udev.sh b/mod-udev.sh
-index dbb7c53..6e3008d 100644
---- a/mod-udev.sh
-+++ b/mod-udev.sh
-@@ -47,7 +47,7 @@ initrd_gen_udev() {
- 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 \
-- 60-pcmcia.rules 50-firmware.rules 10-dm.rules 11-dm-lvm.rules 13-dm-disk.rules
-+ 60-pcmcia.rules 50-firmware.rules 10-dm.rules 11-dm-lvm.rules 13-dm-disk.rules 95-dm-notify.rules
- # initrd dedicated rules
- inst_rules 01-ignore.rules 59-persistent-storage.rules 61-persistent-storage.rules 11-dm.rules
+diff --git a/mod-luks.sh b/mod-luks.sh
+index 8cd9959..43bdcaa 100644
+--- a/mod-luks.sh
++++ b/mod-luks.sh
+@@ -134,15 +134,27 @@ luks_crypttab() {
+ if key_is_random "$key"; then
+ die "$dst: LUKS requires non-random key, skipping"
+ fi
+- if [ -n "$opt" ]; then
+- warn "$dst: options are invalid for LUKS partitions, ignoring them"
+- fi
+ if [ "$key" ]; then
+ keyfile=/etc/.$dst.key
+ inst $key $keyfile
+ fi
-commit ff9aded51db8fa19316dde7864ec193f5fdf22b6
-Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
-Date: Mon Jun 9 11:19:10 2014 +0200
-
- Load configured font and do it early.
-
-diff --git a/geninitrd b/geninitrd
-index 2478063..f31f00d 100755
---- a/geninitrd
-+++ b/geninitrd
-@@ -202,6 +202,25 @@ mount_dev() {
- EOF
- }
-
-+# load font
-+load_font() {
-+ local font
-+ [ ! -r /etc/sysconfig/console ] && return
-+ . /etc/sysconfig/console
-+ if [ -n "$CONSOLEFONT" ]; then
-+ font=$(ls -1 /lib/kbd/consolefonts/${CONSOLEFONT}*.gz 2> /dev/null)
-+ if [ -n "$font" ]; then
-+ verbose "Loading font $font"
-+ busybox_applet loadfont
-+ inst_d "/lib/kbd/consolefonts"
-+ cp -a "$font" "$DESTDIR/lib/kbd/consolefonts/"
-+ gunzip ${DESTDIR}/lib/kbd/consolefonts/${CONSOLEFONT}*.gz
-+ font=${font%.gz}
-+ echo "loadfont < $font" | add_linuxrc
-+ fi
-+ fi
-+}
+- verbose "+ cryptsetup ${keyfile:+-d $keyfile} luksOpen '$src' '$dst'"
++ crypttab_opt=""
++ old_IFS="$IFS"
++ IFS=","
++ for option in $opt; do
++ case "$option" in
++ discard|allow-discards)
++ crypttab_opt="$crypttab_opt --allow-discards"
++ ;;
++ *)
++ warn "$dst: option \'$opt\' is invalid for LUKS partitions, ignored"
++ ;;
++ esac
++ done
++ IFS="$old_IFS"
+
- # generate code to mount /proc on initrd
- # can be called multiple times
- mount_proc() {
-@@ -1478,6 +1497,7 @@ add_linuxrc <<EOF
- # on $(LC_ALL=C date)
-
- EOF
-+load_font
- mount_proc
++ verbose "+ cryptsetup ${keyfile:+-d $keyfile} open --type luks $crypttab_opt '$src' '$dst'"
+ add_linuxrc <<-EOF
+ debugshell
- kmsg "geninitrd/$VERSION starting"
-diff --git a/geninitrd b/geninitrd
-index f31f00d..74d8b70 100755
---- a/geninitrd
-+++ b/geninitrd
-@@ -784,9 +784,22 @@ modules_install() {
- MODULEDIR=${mod%/*}
- inst_d "/lib/modules/$kernel/$MODULEDIR"
- cp -a "/lib/modules/$kernel/$mod" "$DESTDIR/lib/modules/$kernel/$mod"
-- gunzip "$DESTDIR/lib/modules/$kernel/$mod" 2> /dev/null
-+ case $mod in
-+ *.gz)
-+ gunzip "$DESTDIR/lib/modules/$kernel/$mod"
-+ mod=${mod%.gz}
-+ ;;
-+ *.xz)
-+ xz -d "$DESTDIR/lib/modules/$kernel/$mod"
-+ mod=${mod%.xz}
-+ ;;
-+ *.bz2)
-+ bzip2 -d "$DESTDIR/lib/modules/$kernel/$mod"
-+ mod=${mod%.bz2}
-+ ;;
-+ esac
- if [ "$STRIP" ] && [ -x "$STRIP" ]; then
-- $STRIP -g --remove-section=.comment "$DESTDIR/lib/modules/$kernel/${mod%.gz}"
-+ $STRIP -g --remove-section=.comment "$DESTDIR/lib/modules/$kernel/${mod}"
- fi
- done
- }
-@@ -797,6 +810,8 @@ modules_add_linuxrc() {
- for mod in "$@"; do
- # module path without optional compression
- modpath=${mod%.gz}
-+ modpath=${modpath%.xz}
-+ modpath=${modpath%.bz2}
+@@ -169,7 +181,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} luksOpen "\$luksdev" '$dst' <&1
++ cryptsetup \$cryptsetup_opt ${keyfile:+-d $keyfile} open --type luks $crypttab_opt "\$luksdev" '$dst' <&1
+ fi
+ fi
- # name of the module
- local module=${modpath##*/}; module=${module%$modext}
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/geninitrd.git/commitdiff/e4008f8c2ec3a6d9f8adf63247425faeec8482d5
More information about the pld-cvs-commit
mailing list