Hello community, here is the log from the commit of package dracut for openSUSE:Factory checked in at 2013-10-06 14:32:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dracut (Old) and /work/SRC/openSUSE:Factory/.dracut.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut" Changes: -------- --- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2013-09-23 08:52:07.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes 2013-10-06 14:32:42.000000000 +0200 @@ -1,0 +2,73 @@ +Fri Oct 4 17:23:19 UTC 2013 - tittiatc...@gmail.com + +- Add patch mkinitrd_update_bootloader.diff so that after + generating the initrd, the update-bootloader is called to update + grub2. + +------------------------------------------------------------------- +Fri Oct 4 16:26:20 UTC 2013 - tittiatc...@gmail.com + +- Validate that the parameters passed with -i (initrd file) does + not already contain the boot_dir. + +------------------------------------------------------------------- +Fri Oct 4 09:58:17 UTC 2013 - tittiatc...@gmail.com + +- Bring back the versioned Provides/Obsoletes for mkinitrd. + Otherwise we run into issues as that udev is conflicting with + mkinitrd < 2.7.0 + +------------------------------------------------------------------- +Wed Oct 2 14:54:51 UTC 2013 - tr...@suse.de + +- Remove Provides/Obsoletes: mkinitrd versioning. + Simply obsolete and provide all mkinitrd versions. + +------------------------------------------------------------------- +Wed Oct 2 13:19:23 UTC 2013 - mvysko...@suse.com + +- Mark /etc/dracut.conf.d/02-early-microcode.conf as config file + +------------------------------------------------------------------- +Wed Sep 25 15:17:57 UTC 2013 - tr...@suse.de + +- Add ACPI table override ability: + generalize_early_cpio.patch #PATCH-FIX-UPSTREAM + microcode_cleanup #PATCH-FIX-UPSTREAM + acpi_override.patch #PATCH-FIX-UPSTREAM +- This will replace mkinitrd with dracut as the default initrd generator. + Therefore Prefer: dracut tag in the project config of the repo is needed. + Otherwise OSC does not know how to build installation-images + (needing mkinitrd to build) and which package to take. +- To switch back and try mkinitrd instead of dracut will be: + Uninstall dracut: + - rpm -e dracut --nodeps + And install mkinitrd again: + - zypper install mkinitrd +- Adjust mkinitrd-dracut.sh to SUSE mkinitrd: + <none> : Before gives a "usage" error -> now scans /boot for kernels + and builds corresponding inirtrds for them + -i -k : Pass a list of kernels and initrd targets + (not sure it was worth the hassle to be able to pass) + -b : Boot directory to search for kernel images + -d : Change root file system. Not tested whether dracut's behavior + matches exactly what our mkinitrd does. + -s : Dummy (should even be obsolete in latest mkinitrd) + These patches have been submitted, but now feedback from mainline yet: + mkinitrd_allow_no_option.patch + mkinitrd_allow_multiple_args + quiet_options + implement_default + root_fs + suse_host_only +- Write caller and used parameters to syslog if mkinitrd is called. + So that those can easily be fixed and checked for correctness. + This should get reverted again before a bigger release. + This patch will never show up mainline and should also get reverted + from SUSE factory repo before the next release shows up: + suse_only_logger +- Build host only images for default paths in SUSE for faster build and + smaller images. Imply --force in this case as well. + * suse_host_only.patch + +------------------------------------------------------------------- New: ---- acpi_override.patch generalize_early_cpio.patch implement_default.patch microcode_cleanup.patch mkinitrd_allow_multiple_args.patch mkinitrd_allow_no_option.patch mkinitrd_setup_dummy mkinitrd_update_bootloader.diff quiet_options.patch root_fs.patch suse_host_only.patch suse_only_logger.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dracut.spec ++++++ --- /var/tmp/diff_new_pack.Lk4tFV/_old 2013-10-06 14:32:43.000000000 +0200 +++ /var/tmp/diff_new_pack.Lk4tFV/_new 2013-10-06 14:32:43.000000000 +0200 @@ -18,7 +18,7 @@ %define dracutlibdir %{_prefix}/lib/dracut -%define replace_mkinitrd 0 +%define replace_mkinitrd 1 Name: dracut Version: 033 @@ -35,6 +35,7 @@ # (not to be upstreamed) Source1: module-setup-initrd.sh Source2: parse-suse-initrd.sh +Source3: mkinitrd_setup_dummy # PATCH-FIX-OPENSUSE correct the paths for openSUSE - tittiatc...@gmail.com Patch0: correct-paths-for-opensuse.patch # PATCH-FIX-OPENSUSE change the default naming from initramfs to initrd - tittiatc...@gmail.com @@ -43,6 +44,29 @@ Patch2: use_sysconfig_values_correctly.patch # PATCH-FIX-OPENSUSE At the moment we have 2 paths that contain udev files (/lib/udev and /usr/lib/udev) - tittiatc...@gmail.com Patch3: use_all_paths_udev.patch +# PATCH-FIX-UPSTREAM ACPI early table override support in early cpio - tr...@suse.de +Patch4: generalize_early_cpio.patch +# PATCH-FIX-UPSTREAM Do not create early_cpio if no suitable microcode exists - tr...@suse.de +Patch5: microcode_cleanup.patch +# PATCH-FIX-UPSTREAM Implement ACPI table overriding - tr...@suse.de +Patch6: acpi_override.patch +# PATCH-FIX-OPENSUSE SUSE mkinitrd compatibility: Introduce -i -k parameters - tr...@suse.de +Patch7: mkinitrd_allow_no_option.patch +# PATCH-FIX-OPENSUSE SUSE mkinitrd compatibility: allow multiple arguments per param - tr...@suse.de +Patch8: mkinitrd_allow_multiple_args.patch +# PATCH-FIX-UPSTREAM Limit an output to essential one implementing --quiet option - tr...@suse.de +Patch9: quiet_options.patch +# PATCH-FIX-OPENSUSE SUSE mkinitrd compatibility: Allow a call w/o passing any parameters - tr...@suse.de +Patch10: implement_default.patch +# PATCH-FIX-OPENSUSE SUSE mkinitrd compatibility: add -d to pass rootfs and dummy -s - tr...@suse.de +Patch11: root_fs.patch +# PATCH-FIX-OPENSUSE Build host only images for default_kernel_images and -i/-k ones - tr...@suse.de +Patch12: suse_host_only.patch +# PATCH-FIX-OPENSUSE Write caller and used parameters to syslog if mkinitrd is called - tr...@suse.de +Patch13: suse_only_logger.patch +# PATCH-FIX-OPENSUSE Call the update-bootloader after dracut finished creating the initrd - tittiatc...@gmail.com +Patch14: mkinitrd_update_bootloader.diff + BuildRequires: bash BuildRequires: dash @@ -53,8 +77,8 @@ BuildRequires: libxslt BuildRequires: pkgconfig(systemd) >= 199 %if %{replace_mkinitrd} -Obsoletes: mkinitrd <= 2.7.2 -Provides: mkinitrd = 2.7.2 +Obsoletes: mkinitrd < 2.8.2 +Provides: mkinitrd = 2.8.2 %endif Requires: bash @@ -68,7 +92,7 @@ Requires: logrotate Requires: modutils Requires: sed -Requires: systemd > 198 +Requires: systemd >= 200 Requires: udev > 166 Requires: util-linux >= 2.21 Requires: xz @@ -119,6 +143,17 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 %build %configure\ @@ -172,6 +207,11 @@ rm %{buildroot}%{_bindir}/lsinitrd rm %{buildroot}%{_mandir}/man8/mkinitrd* rm %{buildroot}%{_mandir}/man1/lsinitrd* +%else +# moved to /sbin +mkdir -p %{buildroot}/sbin +mv %{buildroot}%{_bindir}/mkinitrd %{buildroot}/sbin/mkinitrd +install -m 0755 %{S:3} %{buildroot}/sbin/mkinitrd_setup %endif mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d @@ -185,7 +225,8 @@ %doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg %{_bindir}/dracut %if %{replace_mkinitrd} -%{_bindir}/mkinitrd +/sbin/mkinitrd +/sbin/mkinitrd_setup %{_bindir}/lsinitrd /etc/bash_completion.d/lsinitrd %endif @@ -202,7 +243,7 @@ %config %{_sysconfdir}/dracut.conf.d/01-dist.conf %endif %ifarch %ix86 x86_64 -%{_sysconfdir}/dracut.conf.d/02-early-microcode.conf +%config %{_sysconfdir}/dracut.conf.d/02-early-microcode.conf %endif %dir %{_sysconfdir}/dracut.conf.d %{_mandir}/man8/dracut.8* ++++++ acpi_override.patch ++++++ dracut: Implement ACPI table overriding An example config file for this feature could be: /etc/dracut.conf.d/03-acpi-override.conf with this content: acpi_override="yes" acpi_table_dir="/etc/dracut.conf.d/acpi_tables" Then all files ending with *.aml will be put into the early cpio (kernel/firmware/acpi) and will be used to replace the BIOS provided tables if the kernel supports this feature. Signed-off-by: Thomas Renninger <tr...@suse.de> Index: dracut-033/dracut.sh =================================================================== --- dracut-033.orig/dracut.sh +++ dracut-033/dracut.sh @@ -1322,6 +1322,17 @@ if [[ $early_microcode = yes ]]; then done fi +if [[ $acpi_override = yes ]] && [[ -d $acpi_table_dir ]]; then + dinfo "*** Packaging ACPI tables to override BIOS provided ones ***" + _dest_dir="$early_cpio_dir/d/kernel/firmware/acpi" + mkdir -p $_dest_dir + for table in $acpi_table_dir/*.aml; do + dinfo " Adding ACPI table: $table" + cp $table $_dest_dir + create_early_cpio="yes" + done +fi + rm -f -- "$outfile" dinfo "*** Creating image file ***" if [[ $create_early_cpio = yes ]]; then ++++++ generalize_early_cpio.patch ++++++ dracut: Generlize microcode early cpio usage ACPI early table override also may need to place files into an early cpio. Reflect this in variable and file names. This change is renaming only and does not introduce any real change. Signed-off-by: Thomas Renninger <tr...@suse.de> Index: dracut-033/dracut.sh =================================================================== --- dracut-033.orig/dracut.sh +++ dracut-033/dracut.sh @@ -696,9 +696,9 @@ readonly initdir="$(mktemp --tmpdir="$TM } if [[ $early_microcode = yes ]]; then - readonly microcode_dir="$(mktemp --tmpdir="$TMPDIR/" -d -t early_microcode.XXXXXX)" - [ -d "$microcode_dir" ] || { - printf "%s\n" "dracut: mktemp --tmpdir=\"$TMPDIR/\" -d -t early_microcode.XXXXXX failed." >&2 + readonly early_cpio_dir="$(mktemp --tmpdir="$TMPDIR/" -d -t early_cpio.XXXXXX)" + [ -d "$early_cpio_dir" ] || { + printf "%s\n" "dracut: mktemp --tmpdir=\"$TMPDIR/\" -d -t early_cpio.XXXXXX failed." >&2 exit 1 } fi @@ -707,7 +707,7 @@ trap ' ret=$?; [[ $outfile ]] && [[ -f $outfile.$$ ]] && rm -f -- "$outfile.$$"; [[ $keep ]] && echo "Not removing $initdir." >&2 || { [[ $initdir ]] && rm -rf -- "$initdir"; }; - [[ $keep ]] && echo "Not removing $microcode_dir." >&2 || { [[ $microcode_dir ]] && rm -Rf -- "$microcode_dir"; }; + [[ $keep ]] && echo "Not removing $early_cpio_dir." >&2 || { [[ $early_cpio_dir ]] && rm -Rf -- "$early_cpio_dir"; }; [[ $_dlogdir ]] && rm -Rf -- "$_dlogdir"; exit $ret; ' EXIT @@ -1296,7 +1296,7 @@ if [[ $early_microcode = yes ]]; then dinfo "*** Generating early-microcode cpio image ***" ucode_dir=(amd-ucode intel-ucode) ucode_dest=(AuthenticAMD.bin GenuineIntel.bin) - _dest_dir="$microcode_dir/d/kernel/x86/microcode" + _dest_dir="$early_cpio_dir/d/kernel/x86/microcode" _dest_idx="0 1" mkdir -p $_dest_dir if [[ $hostonly ]]; then @@ -1316,14 +1316,15 @@ if [[ $early_microcode = yes ]]; then fi done done - (cd "$microcode_dir/d"; find . -print0 | cpio --null -o -H newc --quiet >../ucode.cpio) + create_early_cpio="yes" fi rm -f -- "$outfile" dinfo "*** Creating image file ***" -if [[ $early_microcode = yes ]]; then +if [[ $create_early_cpio = yes ]]; then # The microcode blob is _before_ the initramfs blob, not after - mv $microcode_dir/ucode.cpio $outfile.$$ + (cd "$early_cpio_dir/d"; find . -print0 | cpio --null -o -H newc --quiet >../early.cpio) + mv $early_cpio_dir/early.cpio $outfile.$$ fi if ! ( umask 077; cd "$initdir"; find . -print0 | cpio --null -R 0:0 -H newc -o --quiet| \ $compress >> "$outfile.$$"; ); then ++++++ implement_default.patch ++++++ mkinitrd-dracut.sh: Allow mkinitrd call without passing any parameters Before this gave a "usage" error. Now boot_dir (by default /boot) is scanned for available kernels and sane initrd default targets get defined and the corresponding initramfs files are generated. Signed-off-by: Thomas Renninger <tr...@suse.de> Index: dracut-033/mkinitrd-dracut.sh =================================================================== --- dracut-033.orig/mkinitrd-dracut.sh +++ dracut-033/mkinitrd-dracut.sh @@ -46,6 +46,67 @@ read_arg() { fi } +# Taken over from SUSE mkinitrd +default_kernel_images() { + local regex kernel_image kernel_version version_version initrd_image + local qf='%{NAME}-%{VERSION}-%{RELEASE}\n' + + case "$(uname -m)" in + s390|s390x) + regex='image' + ;; + ppc|ppc64) + regex='vmlinux' + ;; + i386|x86_64) + regex='vmlinuz' + ;; + arm*) + regex='[uz]Image' + ;; + aarch64) + regex='Image' + ;; + *) regex='vmlinu.' + ;; + esac + + # user mode linux + if grep -q UML /proc/cpuinfo; then + regex='linux' + fi + + kernel_images="" + initrd_images="" + for kernel_image in $(ls $boot_dir \ + | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \ + | grep -v kdump$ ) ; do + + # Note that we cannot check the RPM database here -- this + # script is itself called from within the binary kernel + # packages, and rpm does not allow recursive calls. + + [ -L "$boot_dir/$kernel_image" ] && continue + [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue + kernel_version=$(/usr/bin/get_kernel_version \ + $boot_dir/$kernel_image 2> /dev/null) + initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|") + if [ "$kernel_image" != "$initrd_image" -a \ + -n "$kernel_version" -a \ + -d "/lib/modules/$kernel_version" ]; then + kernel_images="$kernel_images $boot_dir/$kernel_image" + initrd_images="$initrd_images $boot_dir/$initrd_image" + fi + done + for kernel_image in $kernel_images;do + kernels="$kernels ${kernel_image#*-}" + done + for initrd_image in $initrd_images;do + targets="$targets $initrd_image" + done + +} + while (($# > 0)); do case ${1%%=*} in --with-usb) read_arg usbmodule "$@" || shift $? @@ -124,7 +185,8 @@ while (($# > 0)); do shift done -[[ $targets && $kernels ]] || usage +[[ $targets && $kernels ]] || default_kernel_images +[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage) # We can have several targets/kernels, transform the list to an array targets=( $targets ) ++++++ microcode_cleanup.patch ++++++ dracut: Do not create early_cpio if no suitable microcode exist in hostonly case Intel microcodes only exist for very specific family/model/stepping CPUs. If no microcode gets added, there is no need to create an empty (only directories) cpio later that gets glued to the initrd. This also fixes: Index: dracut-033/dracut.sh =================================================================== --- dracut-033.orig/dracut.sh +++ dracut-033/dracut.sh @@ -1311,12 +1311,15 @@ if [[ $early_microcode = yes ]]; then dinfo "*** Constructing ${ucode_dest[$idx]} ****" if [[ $hostonly ]]; then _src=$(get_ucode_file) + if ! [[ -r $_fwdir/$_fw/$_src ]];then + break; + fi fi cat $_fwdir/$_fw/$_src > $_dest_dir/${ucode_dest[$idx]} + create_early_cpio="yes" fi done done - create_early_cpio="yes" fi rm -f -- "$outfile" ++++++ mkinitrd_allow_multiple_args.patch ++++++ mkinitrd-dracut.sh: Enhance param parsing: Allow multiple arguments per param Currently --with parameter had to be passed as: --with="mod1 mod2". Now one can pass: --with "mod1 mod2" or even --with mod1 mod2. Signed-off-by: Thomas Renninger <tr...@suse.de> diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh index ace7725..d8e92f3 100755 --- a/mkinitrd-dracut.sh +++ b/mkinitrd-dracut.sh @@ -26,36 +26,43 @@ read_arg() { # $1 = arg name # $2 = arg value # $3 = arg parameter - local rematch='^[^=]*=(.*)$' + param="$1" + local rematch='^[^=]*=(.*)$' result if [[ $2 =~ $rematch ]]; then - read "$1" <<< "${BASH_REMATCH[1]}" - elif [[ $3 != -* ]]; then - # Only read next arg if it not an arg itself. - read "$1" <<< "$3" - # There is no way to shift our callers args, so - # return 1 to indicate they should do it instead. - return 1 + read "$param" <<< "${BASH_REMATCH[1]}" + else + for ((i=3; $i <= $#; i++)); do + # Only read next arg if it not an arg itself. + if [[ ${@:$i:1} = -* ]];then + break + fi + result="$result ${@:$i:1}" + # There is no way to shift our callers args, so + # return "no of args" to indicate they should do it instead. + done + read "$1" <<< "$result" + return $(($i - 3)) fi } while (($# > 0)); do case ${1%%=*} in - --with-usb) read_arg usbmodule "$@" || shift + --with-usb) read_arg usbmodule "$@" || shift $? basicmodules="$basicmodules ${usbmodule:-usb-storage}" unset usbmodule;; - --with-avail) read_arg modname "$@" || shift + --with-avail) read_arg modname "$@" || shift $? basicmodules="$basicmodules $modname";; - --with) read_arg modname "$@" || shift + --with) read_arg modname "$@" || shift $? basicmodules="$basicmodules $modname";; --version) echo "mkinitrd: dracut compatibility wrapper" exit 0;; -v|--verbose) dracut_args="${dracut_args} -v";; -f|--force) dracut_args="${dracut_args} -f";; - --preload) read_arg modname "$@" || shift + --preload) read_arg modname "$@" || shift $? basicmodules="$basicmodules $modname";; --image-version) img_vers=yes;; - --rootfs) read_arg rootfs "$@" || shift + --rootfs) read_arg rootfs "$@" || shift $? dracut_args="${dracut_args} --filesystems $rootfs";; --nocompress) dracut_args="$dracut_args --no-compress";; --help) usage -n;; @@ -82,24 +89,29 @@ while (($# > 0)); do --looppath*) ;; --dsdt*) ;; --bootchart) ;; - -b) read_arg boot_dir "$@" || shift + -b) read_arg boot_dir "$@" || shift $? if [ ! -d $boot_dir ];then error "Boot directory $boot_dir does not exist" exit 1 fi ;; -k) # Would be nice to get a list of images here - read_arg kernel_images "$@" || shift + read_arg kernel_images "$@" || shift $? for kernel_image in $kernel_images;do kernels="$kernels ${kernel_image#*-}" done ;; - -i) read_arg initrd_images "$@" || shift + -i) read_arg initrd_images "$@" || shift $? for initrd_image in $initrd_images;do - targets="$targets $boot_dir/$initrd_images" + case $initrd_image in + "$boot_dir"*) + targets="$targets $initrd_image";; + *) + targets="$targets $boot_dir/$initrd_image";; + esac done ;; - *) if [[ ! $targets ]]; then + *) if [[ ! $targets ]]; then targets=$1 elif [[ ! $kernels ]]; then kernels=$1 ++++++ mkinitrd_allow_no_option.patch ++++++ mkinitrd-dracut.sh: Introduce -i -k parameters In SUSE, one can pass a list of kernel files via -k parameter. For each an initrd is generated as passed via -i parameters. Make the dracut mkinitrd wrapper compatible to those. For now only one kernel file and initrd target can be specified. This will get enhanced with a follow-up patch. Signed-off-by: Thomas Renninger <tr...@suse.de> diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh old mode 100644 new mode 100755 index ffea2d1..ace7725 --- a/mkinitrd-dracut.sh +++ b/mkinitrd-dracut.sh @@ -1,6 +1,8 @@ #!/bin/bash --norc kver=$(uname -r) +boot_dir="/boot" + error() { echo "$@" >&2; } usage () { @@ -80,10 +82,27 @@ while (($# > 0)); do --looppath*) ;; --dsdt*) ;; --bootchart) ;; - *) if [[ ! $target ]]; then - target=$1 - elif [[ ! $kernel ]]; then - kernel=$1 + -b) read_arg boot_dir "$@" || shift + if [ ! -d $boot_dir ];then + error "Boot directory $boot_dir does not exist" + exit 1 + fi + ;; + -k) # Would be nice to get a list of images here + read_arg kernel_images "$@" || shift + for kernel_image in $kernel_images;do + kernels="$kernels ${kernel_image#*-}" + done + ;; + -i) read_arg initrd_images "$@" || shift + for initrd_image in $initrd_images;do + targets="$targets $boot_dir/$initrd_images" + done + ;; + *) if [[ ! $targets ]]; then + targets=$1 + elif [[ ! $kernels ]]; then + kernels=$1 else usage fi;; @@ -91,11 +110,24 @@ while (($# > 0)); do shift done -[[ $target && $kernel ]] || usage -[[ $img_vers ]] && target="$target-$kernel" +[[ $targets && $kernels ]] || usage + +# We can have several targets/kernels, transform the list to an array +targets=( $targets ) +[[ $kernels ]] && kernels=( $kernels ) -if [[ $basicmodules ]]; then +for ((i=0 ; $i<${#targets[@]} ; i++)); do + + if [[ $img_vers ]];then + target="${targets[$i]}-${kernels[$i]}" + else + target="${targets[$i]}" + fi + kernel="${kernels[$i]}" + + if [[ $basicmodules ]]; then dracut $dracut_args --add-drivers "$basicmodules" "$target" "$kernel" -else + else dracut $dracut_args "$target" "$kernel" -fi + fi +done ++++++ mkinitrd_setup_dummy ++++++ #/bin/bash true ++++++ mkinitrd_update_bootloader.diff ++++++ diff -urNB dracut-033/mkinitrd-dracut.sh new/mkinitrd-dracut.sh --- dracut-033/mkinitrd-dracut.sh 2013-10-04 19:12:51.654775024 +0200 +++ new/mkinitrd-dracut.sh 2013-10-04 19:14:25.088173450 +0200 @@ -236,3 +236,10 @@ fi fi done + +if [ -z "$(type -p update-bootloader)" ] ; then + echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually." +else + update-bootloader --refresh +fi + ++++++ quiet_options.patch ++++++ mkinitrd-dracut.sh: Implement --quiet|-q option Dracut is rather verbose. This optional parameter is to limit the output to the essential: For each generated initrd show the kernel, target and possibly additional options passed to dracut. Signed-off-by: Thomas Renninger <tr...@suse.de> diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh index d8e92f3..803abc0 100755 --- a/mkinitrd-dracut.sh +++ b/mkinitrd-dracut.sh @@ -2,6 +2,7 @@ kver=$(uname -r) boot_dir="/boot" +quiet=0 error() { echo "$@" >&2; } @@ -89,6 +90,7 @@ while (($# > 0)); do --looppath*) ;; --dsdt*) ;; --bootchart) ;; + --quiet|-q) quiet=1;; -b) read_arg boot_dir "$@" || shift $? if [ ! -d $boot_dir ];then error "Boot directory $boot_dir does not exist" @@ -128,6 +130,7 @@ done targets=( $targets ) [[ $kernels ]] && kernels=( $kernels ) +echo "Creating: target|kernel|dracut args|basicmodules " for ((i=0 ; $i<${#targets[@]} ; i++)); do if [[ $img_vers ]];then @@ -137,9 +140,21 @@ for ((i=0 ; $i<${#targets[@]} ; i++)); do fi kernel="${kernels[$i]}" - if [[ $basicmodules ]]; then - dracut $dracut_args --add-drivers "$basicmodules" "$target" "$kernel" + # Duplicate code: No way found how to redirect output based on $quiet + if [[ $quiet == 1 ]];then + echo "$target|$kernel|$dracut_args|$basicmodules" + if [[ $basicmodules ]]; then + dracut $dracut_args --add-drivers "$basicmodules" "$target" \ + "$kernel" &>/dev/null + else + dracut $dracut_args "$target" "$kernel" &>/dev/null + fi else - dracut $dracut_args "$target" "$kernel" + if [[ $basicmodules ]]; then + dracut $dracut_args --add-drivers "$basicmodules" "$target" \ + "$kernel" + else + dracut $dracut_args "$target" "$kernel" + fi fi done ++++++ root_fs.patch ++++++ mkinitrd-dracut.sh: Also allow -d to specify the root_fs and -s dummy -d is the SUSE mkinitrd version option to pass the rootfs. -s is to enable splash which may not be needed, but some callers rely on it, not to return an error. Make this wrapper compatible to it. Signed-off-by: Thomas Renninger <tr...@suse.de> Index: dracut-033/mkinitrd-dracut.sh =================================================================== --- dracut-033.orig/mkinitrd-dracut.sh +++ dracut-033/mkinitrd-dracut.sh @@ -124,7 +124,7 @@ while (($# > 0)); do --preload) read_arg modname "$@" || shift $? basicmodules="$basicmodules $modname";; --image-version) img_vers=yes;; - --rootfs) read_arg rootfs "$@" || shift $? + --rootfs|-d) read_arg rootfs "$@" || shift $? dracut_args="${dracut_args} --filesystems $rootfs";; --nocompress) dracut_args="$dracut_args --no-compress";; --help) usage -n;; @@ -151,6 +151,7 @@ while (($# > 0)); do --looppath*) ;; --dsdt*) ;; --bootchart) ;; + -s) ;; --quiet|-q) quiet=1;; -b) read_arg boot_dir "$@" || shift $? if [ ! -d $boot_dir ];then ++++++ suse_host_only.patch ++++++ mkinitrd-dracut.sh: Build host images for default_kernel_images and -i/-k paths default_kernel_images and -i/-k paths are new (SuSE) code paths and would have resulted in usage errors before. There we want to build host only images for faster building and smaller images. Also force creation (overriding) of initrd images in these code paths. Signed-off-by: Thomas Renninger <tr...@suse.de> diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh index f7b53f1..a1519ea 100755 --- a/mkinitrd-dracut.sh +++ b/mkinitrd-dracut.sh @@ -3,6 +3,8 @@ kver=$(uname -r) boot_dir="/boot" quiet=0 +host_only=0 +force=0 error() { echo "$@" >&2; } @@ -104,7 +106,8 @@ default_kernel_images() { for initrd_image in $initrd_images;do targets="$targets $initrd_image" done - + host_only=1 + force=1 } while (($# > 0)); do @@ -119,8 +122,8 @@ while (($# > 0)); do --version) echo "mkinitrd: dracut compatibility wrapper" exit 0;; - -v|--verbose) dracut_args="${dracut_args} -v";; - -f|--force) dracut_args="${dracut_args} -f";; + -v|--verbose) dracut_args="${dracut_args} -v --keep";; + -f|--force) force=1;; --preload) read_arg modname "$@" || shift $? basicmodules="$basicmodules $modname";; --image-version) img_vers=yes;; @@ -164,6 +167,8 @@ while (($# > 0)); do for kernel_image in $kernel_images;do kernels="$kernels ${kernel_image#*-}" done + host_only=1 + force=1 ;; -i) read_arg initrd_images "$@" || shift $? for initrd_image in $initrd_images;do @@ -193,6 +198,9 @@ done targets=( $targets ) [[ $kernels ]] && kernels=( $kernels ) +[[ $host_only == 1 ]] && dracut_args="${dracut_args} -H" +[[ $force == 1 ]] && dracut_args="${dracut_args} -f" + echo "Creating: target|kernel|dracut args|basicmodules " for ((i=0 ; $i<${#targets[@]} ; i++)); do ++++++ suse_only_logger.patch ++++++ diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh index a1519ea..dacba60 100755 --- a/mkinitrd-dracut.sh +++ b/mkinitrd-dracut.sh @@ -110,6 +110,13 @@ default_kernel_images() { force=1 } +if which logger &>/dev/null && which tr &>/dev/null;then + self=$(tr "\000" " " </proc/$$/cmdline) + self=${self#/bin/bash --norc } + parent=$(tr "\000" " " </proc/$PPID/cmdline) + logger -- "$self called by $parent" +fi + while (($# > 0)); do case ${1%%=*} in --with-usb) read_arg usbmodule "$@" || shift $? -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org