Accepting request 489777 from Base:System

----------------------- --------------------------------------------
- Ensure hisi_sas_v2_hw gets included (bsc#1034597)
  * adds 0515-90kernel-modules-also-add-block-device-driver-revers.patch (forwarded request 489776 from dmolkentin)

OBS-URL: https://build.opensuse.org/request/show/489777
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dracut?expand=0&rev=106
This commit is contained in:
Dominique Leuenberger 2017-04-25 06:55:37 +00:00 committed by Git OBS Bridge
commit 7c42192506
7 changed files with 306 additions and 63 deletions

View File

@ -0,0 +1,51 @@
From f8d2fa4312ba7989e30b60e5f287c91a1f4b7450 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <dmolkentin@suse.com>
Date: Mon, 3 Apr 2017 15:23:37 +0200
Subject: [PATCH] Make binutils optional when elfutils are available
Binutils increase the size of initramfs by 36 MB. We only need "strip",
which exists as eu-strip in elfutils, which in turn is < 1 MB in size.
Note that the tests (TEST-04-FULL-SYSTEMD/test.sh) still depend on
strip from binutils. It could use sstrip in the future.
---
dracut.sh | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index d25da8e3..f4794d1d 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1624,7 +1624,11 @@ fi
# strip binaries
if [[ $do_strip = yes ]] ; then
- for p in strip xargs find; do
+ # Prefer strip from elfutils for package size
+ declare strip_cmd=$(command -v eu-strip)
+ test -z "$strip_cmd" && strip_cmd="strip"
+
+ for p in $strip_cmd xargs find; do
if ! type -P $p >/dev/null; then
dinfo "Could not find '$p'. Not stripping the initramfs."
do_strip=no
@@ -1636,14 +1640,14 @@ if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
dinfo "*** Stripping files ***"
find "$initdir" -type f \
-executable -not -path '*/lib/modules/*.ko' -print0 \
- | xargs -r -0 strip -g 2>/dev/null
+ | xargs -r -0 $strip_cmd -g 2>/dev/null
# strip kernel modules, but do not touch signed modules
find "$initdir" -type f -path '*/lib/modules/*.ko' -print0 \
| while read -r -d $'\0' f || [ -n "$f" ]; do
SIG=$(tail -c 28 "$f" | tr -d '\000')
[[ $SIG == '~Module signature appended~' ]] || { printf "%s\000" "$f"; }
- done | xargs -r -0 strip -g
+ done | xargs -r -0 $strip_cmd -g
dinfo "*** Stripping files done ***"
fi
--
2.12.0

View File

@ -0,0 +1,56 @@
From 31445aa3a415f9586f3bd6f6b14f0ae668d30ff9 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <dmolkentin@suse.com>
Date: Thu, 9 Mar 2017 11:45:47 +0100
Subject: [PATCH 1/2] Fix regression caused by
6f9bf2b8ac436259bdccb11054562aedaa78c496
This was trying to fix bsc#998860, but introduced a regression:
62-md-dracut-uuid.rules was not generated in /etc/udev/rules.d and
therefore not processed.
Also, force reassembly of raid arrays given at the command line
and ensure IMSM_NO_PLATFORM is set correctly.
Reference: bsc#1028542
Signed-Off-By: Daniel Molkentin <dmolkentin@suse.com>
Signed-Off-By: Thomas Blume <thomas.blume@suse.com>
---
modules.d/90mdraid/parse-md.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
index c187a916..91e52f2d 100755
--- a/modules.d/90mdraid/parse-md.sh
+++ b/modules.d/90mdraid/parse-md.sh
@@ -1,7 +1,7 @@
#!/bin/sh
MD_UUID=$(getargs rd.md.uuid -d rd_MD_UUID=)
-MD_RULES=/etc/udev/62-md-dracut-uuid.rules
+MD_RULES=/etc/udev/rules.d/62-md-dracut-uuid.rules
if ( ! [ -n "$MD_UUID" ] && ! getargbool 0 rd.auto ) || ! getargbool 1 rd.md -d -n rd_NO_MD; then
info "rd.md=0: removing MD RAID activation"
@@ -13,6 +13,8 @@ else
printf 'SUBSYSTEM!="block", GOTO="md_uuid_end"\n' >> $MD_RULES
printf 'ENV{ID_FS_TYPE}!="ddf_raid_member", ENV{ID_FS_TYPE}!="isw_raid_member", ENV{ID_FS_TYPE}!="linux_raid_member", GOTO="md_uuid_end"\n' >> $MD_RULES
+ #check for array components
+ printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n' >> $MD_RULES
for uuid in $MD_UUID; do
printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid >> $MD_RULES
printf 'ENV{ID_FS_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid >> $MD_RULES
@@ -20,7 +22,7 @@ else
printf 'ENV{ID_FS_TYPE}="unknown"\n' >> $MD_RULES
printf 'GOTO="md_uuid_end"\n' >> $MD_RULES
printf 'LABEL="md_uuid_ok"\n' >> $MD_RULES
- printf 'ENV{IMSM_NO_PLATFORM}="1"' >> $MD_RULES
+ printf 'ENV{IMSM_NO_PLATFORM}="1"\n' >> $MD_RULES
printf 'LABEL="md_uuid_end"\n' >> $MD_RULES
fi
fi
--
2.12.0

View File

@ -0,0 +1,33 @@
From fff87a6a53c322448ddd42a47c839570091cb824 Mon Sep 17 00:00:00 2001
From: Lidong Zhong <lidong.zhong@suse.com>
Date: Fri, 2 Dec 2016 14:32:09 +0800
Subject: [PATCH 2/2] man: make the -k option clear using mkinitrd
For example under x86, someone maybe missunderstand that the vmlinuz
is the link /boot/vmlinuz points to a specific kernel image and use
the following command directly.
mkinitrd -k vmlinuz
---
mkinitrd-suse.8.asc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
index cdb8e3aa..91ec4695 100644
--- a/mkinitrd-suse.8.asc
+++ b/mkinitrd-suse.8.asc
@@ -29,8 +29,9 @@ OPTIONS
**-k** _<kernel_list>_::
List of kernel images for which initrd files are created (relative
- to _boot_dir_), defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x
- and _vmlinuz_ for everything else.
+ to _boot_dir_), Image name should begin with the following string,
+ defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and _vmlinuz_
+ for everything else.
**-i** _<initrd_list>_::
List of file names (relative to _boot_dir_) for the initrd; positions
--
2.12.0

View File

@ -0,0 +1,67 @@
From a929c6f1b19cc945c119802feff2d8e111954f5c Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <dmolkentin@suse.com>
Date: Thu, 20 Apr 2017 21:54:38 +0200
Subject: [PATCH] 90kernel-modules: also add block device driver reverse
dependencies
The code finds relevant modules by symbol. Some drivers, such as
the hisi_sas has two slightly different implementations with
a common backend which contain the relevant symbols. However,
we also need to include the modules that depend on these
implementations.
Ex: hisi_sas_v{1,2}_hw -> hisi_sas_main
We use a simple reverse lookup for all modules via modules.dep to
include direct reverse dependencies.
Reference: bnc#1034597
---
modules.d/90kernel-modules/module-setup.sh | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 67d0e01e..bc00991d 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -3,6 +3,28 @@
# called by dracut
installkernel() {
if [[ -z $drivers ]]; then
+ # modules with symbols might have abstractions that depend on them, so let's add those
+ add_rev_deps() {
+ local _module
+ local _line
+ [[ -f "$srcmods/modules.dep" ]] || return 0
+ while read _module; do
+ local _mod
+ local _deps
+ _module=${_module##$srcmods/}
+ printf "%s\n" "$_module"
+ egrep ".*:.*$_module.*" $srcmods/modules.dep | (
+ local _OLDIFS=$IFS
+ IFS=:
+ while read _mod _deps; do
+ printf "%s\n" "$srcmods/$_mod"
+ done
+ IFS=$_OLDIFS
+ )
+ done | sort -u
+ return 0
+ }
+
block_module_filter() {
local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host'
# subfunctions inherit following FDs
@@ -65,7 +87,7 @@ installkernel() {
instmods virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
"=drivers/pcmcia" =ide "=drivers/usb/storage"
- find_kernel_modules | block_module_filter | instmods
+ find_kernel_modules | block_module_filter | add_rev_deps | instmods
# if not on hostonly mode, install all known filesystems,
# if the required list is not set via the filesystems variable
--
2.12.0

View File

@ -1,3 +1,28 @@
----------------------- --------------------------------------------
Thu Apr 20 20:28:43 UTC 2017 - daniel.molkentin@suse.com
- Ensure hisi_sas_v2_hw gets included (bsc#1034597)
* adds 0515-90kernel-modules-also-add-block-device-driver-revers.patch
-------------------------------------------------------------------
Fri Apr 7 10:03:36 UTC 2017 - daniel.molkentin@suse.com
- Fix mdraid regression (bsc#1028542)
* adds 0513-Fix-regression-caused-by-6f9bf2b8ac436259bdccb110545.patch
- man: make the -k option clear using mkinitrd (bsc#1012656)
* adds 0514-man-make-the-k-option-clear-using-mkinitrd.patch
-------------------------------------------------------------------
Thu Apr 6 09:35:11 UTC 2017 - daniel.molkentin@suse.com
- Fix typo in installkernel script (bsc#1032576)
-------------------------------------------------------------------
Mon Apr 3 13:30:20 UTC 2017 - daniel.molkentin@suse.com
- Drop binutils dependency in favor of elfutils
* add 0512-Make-binutils-optional-when-elfutils-are-available.patch
-------------------------------------------------------------------
Fri Mar 17 10:09:57 UTC 2017 - daniel.molkentin@suse.com

View File

@ -191,6 +191,10 @@ Patch504: 0504-ibft-fix-boot-flag-check.patch
Patch505: 0505-Allow-booting-from-degraded-MD-RAID-arrays.patch
Patch507: 0507-Set-TaskMax-inifinite-for-the-emergency-shell.patch
Patch508: 0508-90multipath-start-before-local-fs-pre.target.patch
Patch512: 0512-Make-binutils-optional-when-elfutils-are-available.patch
Patch513: 0513-Fix-regression-caused-by-6f9bf2b8ac436259bdccb110545.patch
Patch514: 0514-man-make-the-k-option-clear-using-mkinitrd.patch
Patch515: 0515-90kernel-modules-also-add-block-device-driver-revers.patch
BuildRequires: asciidoc
BuildRequires: bash
@ -201,9 +205,9 @@ BuildRequires: pkgconfig(systemd) >= 219
Requires: %{_bindir}/get_kernel_version
Requires: bash
# systemd-sysvinit provides: poweroff, reboot, halt
Requires: binutils
Requires: coreutils
Requires: cpio
Requires: elfutils
Requires: file
Requires: filesystem
Requires: findutils
@ -406,6 +410,10 @@ chmod a+x modules.d/91zipl/install_zipl_cmdline.sh
%patch509 -p1
%patch510 -p1
%patch511 -p1
%patch512 -p1
%patch513 -p1
%patch514 -p1
%patch515 -p1
%build
%configure\
@ -537,6 +545,9 @@ ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-redhat.sh %{buildroot}/%{dra
%ifarch %ix86 x86_64
%config %{_sysconfdir}/dracut.conf.d/02-early-microcode.conf
%endif
%ifarch s390 s390x
%config %{_sysconfdir}/dracut.conf.d/10-s390x_persistent_device.conf
%endif
%{_mandir}/man8/dracut.8*
%{_mandir}/man8/mkinitrd.8*