Accepting request 224246 from home:trenn:branches:Base:System

- Make sure that --add-drivers is not called with whitespace string which
  will lead to a "read line" user input request and things may get stuck at
  installation.
  - Add: dracut-fix-whitespace-add-drivers_call.patch
- Remove s390 grub module again -> this will go into grub2 package
  (ask rw@suse.de for details)
  Delete/remove: s390_add-user-space-grub-rule.patch
- Add installkernel script which installs the kernel when:
  make install
  is invoked. The script from mkinitrd has been taken over and adopted.
  Added source: dracut-installkernel
  bnc#862990

OBS-URL: https://build.opensuse.org/request/show/224246
OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=105
This commit is contained in:
Thomas Renninger 2014-02-28 15:05:59 +00:00 committed by Git OBS Bridge
parent d443be08bc
commit d1cac4a2c4
5 changed files with 206 additions and 43 deletions

View File

@ -0,0 +1,77 @@
Index: dracut-036/mkinitrd-suse.sh
===================================================================
--- dracut-036.orig/mkinitrd-suse.sh
+++ dracut-036/mkinitrd-suse.sh
@@ -70,10 +70,7 @@ usage () {
$cmd " -j device Journal device"
$cmd " -D interface Run dhcp on the specified interface."
$cmd " -I interface Configure the specified interface statically."
- $cmd " -a acpi_dsdt Attach compiled ACPI DSDT (Differentiated"
- $cmd " System Description Table) to initrd. This"
- $cmd " replaces the DSDT of the BIOS. Defaults to"
- $cmd " the ACPI_DSDT variable in /etc/sysconfig/kernel."
+ $cmd " -a acpi_dsdt Obsolete, do not use."
$cmd " -s size Add splash animation and bootscreen to initrd."
[[ $1 = '-n' ]] && exit 0
@@ -310,11 +307,10 @@ if [ -f /etc/sysconfig/kernel ] ; then
. /etc/sysconfig/kernel
fi
[[ $module_list ]] || module_list="${INITRD_MODULES}"
-basicmodules="$basicmodules ${module_list}"
[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}"
-[[ $acpi_dsdt ]] || acpi_dsdt="${ACPI_DSDT}"
+shopt -s extglob
-echo "Creating: target|kernel|dracut args|basicmodules "
+echo "Creating: target|kernel|dracut args "
for ((i=0 ; $i<${#targets[@]} ; i++)); do
if [[ $img_vers ]];then
@@ -324,28 +320,30 @@ for ((i=0 ; $i<${#targets[@]} ; i++)); d
fi
kernel="${kernels[$i]}"
+ if is_xen_kernel $kernel $rootfs ; then
+ modules_all="${module_list} ${domu_module_list}"
+ else
+ modules_all="${module_list}"
+ fi
+
+ # Remove leading and trailing spaces needs (set above): shopt -s extglob
+ modules_all=${modules_all%%+([[:space:]])}
+ modules_all=${modules_all##+([[:space:]])}
+ if [ -n "${modules_all}" ];then
+ dracut_args_all="$dracut_args --add-drivers \"${modules_all}\""
+ else
+ dracut_args_all="$dracut_args"
+ fi
+
# Duplicate code: No way found how to redirect output based on $quiet
if [[ $quiet == 1 ]];then
- echo "$target|$kernel|$dracut_args|$basicmodules"
+ echo "$target|$kernel|$dracut_args_all"
if is_xen_kernel $kernel $rootfs ; then
basicmodules="$basicmodules ${domu_module_list}"
fi
- if [[ $basicmodules ]]; then
- $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
- "$kernel" &>/dev/null
- else
- $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null
- fi
+ $dracut_cmd $dracut_args_all "$target" "$kernel" &>/dev/null
else
- if is_xen_kernel $kernel $rootfs ; then
- basicmodules="$basicmodules ${domu_module_list}"
- fi
- if [[ $basicmodules ]]; then
- $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
- "$kernel"
- else
- $dracut_cmd $dracut_args "$target" "$kernel"
- fi
+ $dracut_cmd $dracut_args_all "$target" "$kernel"
fi
done

107
dracut-installkernel Normal file
View File

@ -0,0 +1,107 @@
#! /bin/sh
#
# /sbin/installkernel - written by tyson@rwii.com
#
# May 21, 2003 - agruen@suse.de
# * Adapted for SuSE and cleaned up.
#
# This file is kept in the following CVS repository:
#
# $Source: /suse/yast2/cvsroot/mkinitrd/installkernel,v $
# $Revision: 1.8 $
#
: ${INSTALL_PATH:=/boot}
KERNEL_VERSION=$1
BOOTIMAGE=$2
MAPFILE=$3
case "$(uname -m)" in
s390|s390x)
BOOTFILE=image
;;
ppc|ppc64)
BOOTFILE=vmlinux
;;
*)
BOOTFILE=vmlinuz
;;
esac
#
# Move away files from versions up to SuSE Linux 8.2
#
if [ -f $INSTALL_PATH/$BOOTFILE -a ! -L $INSTALL_PATH/$BOOTFILE ]; then
mv $INSTALL_PATH/$BOOTFILE $INSTALL_PATH/$BOOTFILE.old
fi
if [ -L $INSTALL_PATH/System.map ]; then
rm -f $INSTALL_PATH/System.map
elif [ -f $INSTALLPATH/System.map ]; then
mv $INSTALL_PATH/System.map $INSTALL_PATH/System.map.old
fi
#
# Move away files from after SuSE Linux 8.2
#
if [ -f $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION ]; then
mv $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION \
$INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION.old;
fi
if [ -f $INSTALL_PATH/System.map-$KERNEL_VERSION ]; then
mv $INSTALL_PATH/System.map-$KERNEL_VERSION \
$INSTALL_PATH/System.map-$KERNEL_VERSION.old;
fi
#
# Install new files
#
cp -fp $BOOTIMAGE $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION
cp -fp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION
KERNTYPES=$(dirname $MAPFILE)/init/kerntypes.o
if [ -e $KERNTYPES ]; then
cp -fp $KERNTYPES $INSTALL_PATH/Kerntypes-$KERNEL_VERSION
fi
case "$(uname -m)" in
i?86 | x86_64)
KERNBIN=$(dirname $MAPFILE)/vmlinux
if [ -e $KERNBIN ]; then
if [ -f $INSTALL_PATH/vmlinux-$KERNEL_VERSION.gz ]; then
mv $INSTALL_PATH/vmlinux-$KERNEL_VERSION.gz \
$INSTALL_PATH/vmlinux-$KERNEL_VERSION.gz.old;
fi
gzip -c $KERNBIN > $INSTALL_PATH/vmlinux-$KERNEL_VERSION.gz
fi
;;
esac
if [ ! -d /lib/modules/$KERNEL_VERSION ];then
make modules_install
fi
#
# Generate initial ramdisk
#
if [ -x /usr/bin/dracut -a -d /lib/modules/$KERNEL_VERSION ]; then
/usr/bin/dracut --hostonly --force $INSTALL_PATH/initrd-$KERNEL_VERSION
else
echo "You may need to create an initial ramdisk now."
fi
#
# Update boot loader
#
if [ -x /sbin/update-bootloader ]; then
opt_initrd=
[ -e $INSTALL_PATH/initrd-$KERNEL_VERSION ] \
&& opt_initrd="--initrd $INSTALL_PATH/initrd-$KERNEL_VERSION"
/sbin/update-bootloader --name $KERNEL_VERSION \
--image $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION \
$opt_initrd --add --force
fi

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Thu Feb 27 14:08:56 UTC 2014 - trenn@suse.de
- Make sure that --add-drivers is not called with whitespace string which
will lead to a "read line" user input request and things may get stuck at
installation.
- Add: dracut-fix-whitespace-add-drivers_call.patch
- Remove s390 grub module again -> this will go into grub2 package
(ask rw@suse.de for details)
Delete/remove: s390_add-user-space-grub-rule.patch
- Add installkernel script which installs the kernel when:
make install
is invoked. The script from mkinitrd has been taken over and adopted.
Added source: dracut-installkernel
bnc#862990
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 21 14:56:20 UTC 2014 - trenn@suse.de Fri Feb 21 14:56:20 UTC 2014 - trenn@suse.de

View File

@ -33,6 +33,7 @@ Source2: parse-suse-initrd.sh
Source3: mkinitrd_setup_dummy Source3: mkinitrd_setup_dummy
Source4: purge-kernels Source4: purge-kernels
Source5: purge-kernels.service Source5: purge-kernels.service
Source6: dracut-installkernel
Patch10: 0006-Install-bin-mount.patch Patch10: 0006-Install-bin-mount.patch
Patch11: 0013-Correct-paths-for-openSUSE.patch Patch11: 0013-Correct-paths-for-openSUSE.patch
Patch12: 0014-Check-for-plymouth-lib-directories.patch Patch12: 0014-Check-for-plymouth-lib-directories.patch
@ -41,9 +42,9 @@ Patch14: suse_grub_manpage.patch
Patch15: replace_dhclient_with_wickedd_dhcp_supplicants.patch Patch15: replace_dhclient_with_wickedd_dhcp_supplicants.patch
Patch16: fix-iscsi-firmware.patch Patch16: fix-iscsi-firmware.patch
Patch17: remove-iscsiuio.patch Patch17: remove-iscsiuio.patch
Patch18: s390_add-user-space-grub-rule.patch Patch18: 0015-add-new-s390x-specific-rule-files.patch
Patch19: 0015-add-new-s390x-specific-rule-files.patch Patch19: change_write_ifcfg_to_suse.patch
Patch20: change_write_ifcfg_to_suse.patch Patch20: dracut-fix-whitespace-add-drivers_call.patch
BuildRequires: asciidoc BuildRequires: asciidoc
BuildRequires: bash BuildRequires: bash
BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook-xsl-stylesheets
@ -66,9 +67,6 @@ Requires: systemd-sysvinit
Requires: udev > 166 Requires: udev > 166
Requires: util-linux >= 2.21 Requires: util-linux >= 2.21
Requires: xz Requires: xz
%ifarch s390x
Requires: grub2
%endif
Recommends: binutils Recommends: binutils
Recommends: logrotate Recommends: logrotate
Obsoletes: mkinitrd < 2.8.2 Obsoletes: mkinitrd < 2.8.2
@ -184,7 +182,7 @@ install -m 0644 dracut.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/dracut
install -D -m 0755 %{SOURCE4} %{buildroot}/sbin/purge-kernels install -D -m 0755 %{SOURCE4} %{buildroot}/sbin/purge-kernels
install -m 644 %{SOURCE5} %{buildroot}/%{_unitdir}/purge-kernels.service install -m 644 %{SOURCE5} %{buildroot}/%{_unitdir}/purge-kernels.service
chmod 755 %{buildroot}/%{dracutlibdir}/modules.d/95grub2/* install -D -m 0755 %{SOURCE6} %{buildroot}/sbin/installkernel
%if 0%{?suse_version} %if 0%{?suse_version}
ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-suse.sh %{buildroot}/%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg.sh ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-suse.sh %{buildroot}/%{dracutlibdir}/modules.d/45ifcfg/write-ifcfg.sh
@ -203,6 +201,7 @@ ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-redhat.sh %{buildroot}/%{dra
%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg %doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
%{_bindir}/dracut %{_bindir}/dracut
/sbin/purge-kernels /sbin/purge-kernels
/sbin/installkernel
/sbin/mkinitrd /sbin/mkinitrd
/sbin/mkinitrd_setup /sbin/mkinitrd_setup
%{_bindir}/lsinitrd %{_bindir}/lsinitrd
@ -277,7 +276,6 @@ ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-redhat.sh %{buildroot}/%{dra
%{dracutlibdir}/modules.d/95dasd_mod %{dracutlibdir}/modules.d/95dasd_mod
%{dracutlibdir}/modules.d/95dasd_rules %{dracutlibdir}/modules.d/95dasd_rules
%{dracutlibdir}/modules.d/95fstab-sys %{dracutlibdir}/modules.d/95fstab-sys
%{dracutlibdir}/modules.d/95grub2
%{dracutlibdir}/modules.d/95zfcp %{dracutlibdir}/modules.d/95zfcp
%{dracutlibdir}/modules.d/95zfcp_rules %{dracutlibdir}/modules.d/95zfcp_rules
%{dracutlibdir}/modules.d/95terminfo %{dracutlibdir}/modules.d/95terminfo

View File

@ -1,35 +0,0 @@
Index: dracut-036/modules.d/95grub2/module-setup.sh
===================================================================
--- /dev/null
+++ dracut-036/modules.d/95grub2/module-setup.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_hook cmdline 30 "$moddir/s390-grub2.sh"
+ inst_multiple grub2-emu kexec
+}
+
Index: dracut-036/modules.d/95grub2/s390-grub2.sh
===================================================================
--- /dev/null
+++ dracut-036/modules.d/95grub2/s390-grub2.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+if getargbool 0 initgrub ; then
+ if [ -e /usr/bin/grub2-emu ]; then
+ /usr/bin/grub2-emu
+ fi
+fi