Hello community, here is the log from the commit of package dracut for openSUSE:Factory checked in at 2017-04-25 08:55:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dracut (Old) and /work/SRC/openSUSE:Factory/.dracut.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut" Tue Apr 25 08:55:37 2017 rev:106 rq:489777 version:044 Changes: -------- --- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2017-03-29 13:21:55.850859250 +0200 +++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes 2017-04-25 08:55:38.932633431 +0200 @@ -1,0 +2,25 @@ +Thu Apr 20 20:28:43 UTC 2017 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- Fix typo in installkernel script (bsc#1032576) + +------------------------------------------------------------------- +Mon Apr 3 13:30:20 UTC 2017 - [email protected] + +- Drop binutils dependency in favor of elfutils + * add 0512-Make-binutils-optional-when-elfutils-are-available.patch + +------------------------------------------------------------------- New: ---- 0512-Make-binutils-optional-when-elfutils-are-available.patch 0513-Fix-regression-caused-by-6f9bf2b8ac436259bdccb110545.patch 0514-man-make-the-k-option-clear-using-mkinitrd.patch 0515-90kernel-modules-also-add-block-device-driver-revers.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dracut.spec ++++++ --- /var/tmp/diff_new_pack.fS9rlI/_old 2017-04-25 08:55:41.292299770 +0200 +++ /var/tmp/diff_new_pack.fS9rlI/_new 2017-04-25 08:55:41.292299770 +0200 @@ -191,6 +191,10 @@ 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 @@ 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 @@ %patch509 -p1 %patch510 -p1 %patch511 -p1 +%patch512 -p1 +%patch513 -p1 +%patch514 -p1 +%patch515 -p1 %build %configure\ @@ -537,6 +545,9 @@ %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* ++++++ 0512-Make-binutils-optional-when-elfutils-are-available.patch ++++++ >From f8d2fa4312ba7989e30b60e5f287c91a1f4b7450 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin <[email protected]> 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 ++++++ 0513-Fix-regression-caused-by-6f9bf2b8ac436259bdccb110545.patch ++++++ >From 31445aa3a415f9586f3bd6f6b14f0ae668d30ff9 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin <[email protected]> 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 <[email protected]> Signed-Off-By: Thomas Blume <[email protected]> --- 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 ++++++ 0514-man-make-the-k-option-clear-using-mkinitrd.patch ++++++ >From fff87a6a53c322448ddd42a47c839570091cb824 Mon Sep 17 00:00:00 2001 From: Lidong Zhong <[email protected]> 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 ++++++ 0515-90kernel-modules-also-add-block-device-driver-revers.patch ++++++ >From a929c6f1b19cc945c119802feff2d8e111954f5c Mon Sep 17 00:00:00 2001 From: Daniel Molkentin <[email protected]> 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 ++++++ dracut-installkernel ++++++ --- /var/tmp/diff_new_pack.fS9rlI/_old 2017-04-25 08:55:41.944207589 +0200 +++ /var/tmp/diff_new_pack.fS9rlI/_new 2017-04-25 08:55:41.948207023 +0200 @@ -75,7 +75,7 @@ cp -fp $BOOTIMAGE $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION cp -fp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION -[ -f .config] && cp -fp .config $INSTALL_PATH/$CONFIGFILE +[ -f .config ] && cp -fp .config $INSTALL_PATH/$CONFIGFILE # If the kernel has module support, recreate modules.dep using depmod
