Hello community, here is the log from the commit of package dracut for openSUSE:Factory checked in at 2013-11-29 16:22:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-10-21 19:52:04.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes 2013-11-29 16:22:26.000000000 +0100 @@ -1,0 +2,56 @@ +Thu Nov 28 09:56:36 CET 2013 - [email protected] + +- Update with patches from git repository: + * kernel-modules: add ohci-pci to the list of forced module installs + * Run 'xz' and 'lzma' with multiple threads + * systemd: do not exit the initqueue, if systemd asks a password + * iscsi,nbd: do not fail in hostonly mode + * dracut-functions.sh: Avoid loading unnecessary 32-bit libraries + for 64-bit initrds + * fips: also install /etc/system-fips in the initramfs + * dracut.modules.7.asc: removed empty section + * dracut.sh: fixed PATH shortener + * dracut.spec: move /sbin/dracut to /usr/sbin/dracut + * iscsi/nbd: do not try to mount the whole disk, if root= is missing + * fips: include crct10dif_generic + * Handle crypto modules with and without modaliases + * usrmount/module-setup.sh: fixed typo + * lvm: always install thin utils for lvm + * kernel-modules(ARM): add mmc_block usb_storage to static list of + kernel mods + * dracut-functions.sh:check_block_and_slaves*() skip LVM internal devs + * mkdir basic dirs in /run + * network/fcoe: only redirect output to loginit.pipe, if exists + * dracut.sh: no need to make subdirs in run + * dracut.sh: also mkdir /run/lock, which is copied to + * lvm: fix thin recognition + * Add lzo, lz4 compression and read INITRD_COMPRESS + * remove resume-genrules.sh + * resume: fix swap detection in hostonly + * base/init.sh: also mkdir /run/lock + * dmsquash-live: add /dev/mapper/live-base + * Doc: cleanup, extend and split and reuse + * dracut.sh: do not bail out, if kernel modules dir is missing + * 10i18n/parse-i18n.sh: parse rd.vconsole and rd.locale + * */module-setup.sh: add comments for dracut called functions + * lvm: install thin utils for non-hostonly +- Patches for S/390 support + * 95dasd: Install kernel modules only once + * 95dasd: Only install module if normalize_dasd_arg is present + * 95dasd_mod: make dasd_cio_free optional + * 95zfcp: Make installation optional + * 95znet: Make installation optional + * Install /bin/mount + * Fixup keymap setting for openSUSE + * Add DASD configuration for SuSE + * Add zfcp scripts for SUSE + * Make logfile configurable + * Add SUSE compability wrapper for dracut + * Add manpage for SUSE compat mkinitrd + * Work around xsltproc bug + * Correct paths for openSUSE + * Check for plymouth lib directories +- Drop obsolete patches +- Install mkinitrd-suse + +------------------------------------------------------------------- Old: ---- correct-paths-for-opensuse.patch mkinitrd-fix-boot-dir-detection.patch mkinitrd_update_bootloader.diff suse_only_logger.patch use_initrd_insteadof_initramfs.patch use_sysconfig_values_correctly.patch New: ---- 0001-95dasd-Install-kernel-modules-only-once.patch 0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch 0003-95dasd_mod-make-dasd_cio_free-optional.patch 0004-95zfcp-Make-installation-optional.patch 0005-95znet-Make-installation-optional.patch 0006-Install-bin-mount.patch 0007-Fixup-keymap-setting-for-openSUSE.patch 0008-Add-DASD-configuration-for-SuSE.patch 0009-Add-zfcp-scripts-for-SUSE.patch 0010-Make-logfile-configurable.patch 0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch 0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch 0013-Correct-paths-for-openSUSE.patch 0014-Check-for-plymouth-lib-directories.patch 0015-Fixup-script-permissions.patch 0016-Remove-shebang-from-shell-completion-files.patch dracut-git-update.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dracut.spec ++++++ --- /var/tmp/diff_new_pack.CcQ3xx/_old 2013-11-29 16:22:28.000000000 +0100 +++ /var/tmp/diff_new_pack.CcQ3xx/_new 2013-11-29 16:22:28.000000000 +0100 @@ -28,29 +28,35 @@ License: GPL-2.0+ and LGPL-2.1+ Group: System/Base Url: https://dracut.wiki.kernel.org/ -# Source can be generated by -# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz -Source0: dracut-%{version}.tar.xz +Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz # openSUSE / SLE module to convert initrd command line parameters to dracut one # (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 - [email protected] -Patch0: correct-paths-for-opensuse.patch -# PATCH-FIX-OPENSUSE change the default naming from initramfs to initrd - [email protected] -Patch1: use_initrd_insteadof_initramfs.patch -# PATCH-FIX-OPENSUSE Strip the gz extension from the keymap mentioned in /etc/sysconfig/keyboard - [email protected] -Patch2: use_sysconfig_values_correctly.patch -# PATCH-FIX-OPENSUSE Write caller and used parameters to syslog if mkinitrd is called - [email protected] -Patch4: suse_only_logger.patch -# PATCH-FIX-OPENSUSE Call the update-bootloader after dracut finished creating the initrd - [email protected] -Patch5: mkinitrd_update_bootloader.diff -# PATCH-FIX-OPENSUSE Validate the initrd parameter first, before just blindly add the boot_dir parameter in front of it -Patch6: mkinitrd-fix-boot-dir-detection.patch + +Patch0: dracut-git-update.patch +# S/390 fixes, send to upstream +Patch1: 0001-95dasd-Install-kernel-modules-only-once.patch +Patch2: 0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch +Patch3: 0003-95dasd_mod-make-dasd_cio_free-optional.patch +Patch4: 0004-95zfcp-Make-installation-optional.patch +Patch5: 0005-95znet-Make-installation-optional.patch +Patch6: 0006-Install-bin-mount.patch +Patch7: 0007-Fixup-keymap-setting-for-openSUSE.patch +Patch8: 0008-Add-DASD-configuration-for-SuSE.patch +Patch9: 0009-Add-zfcp-scripts-for-SUSE.patch +Patch10: 0010-Make-logfile-configurable.patch +Patch11: 0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch +Patch12: 0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch + +# SUSE specific patches +Patch20: 0013-Correct-paths-for-openSUSE.patch +Patch21: 0014-Check-for-plymouth-lib-directories.patch +Patch22: 0015-Fixup-script-permissions.patch +Patch23: 0016-Remove-shebang-from-shell-completion-files.patch BuildRequires: bash -BuildRequires: dash BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -78,6 +84,7 @@ Requires: util-linux >= 2.21 Requires: xz Recommends: binutils +Recommends: logrotate Requires: pigz %{?systemd_requires} @@ -123,9 +130,20 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 +%patch23 -p1 %build %configure\ @@ -137,13 +155,13 @@ %install make %{?_smp_mflags} install DESTDIR=%{buildroot} -echo "DRACUT_VERSION=%{version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh +echo -e "#!/bin/bash\nDRACUT_VERSION=%{version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh rm -fr %{buildroot}%{dracutlibdir}/modules.d/01fips rm -fr %{buildroot}%{dracutlibdir}/modules.d/02fips-aesni # we do not support dash in the initramfs -# rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash +rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash # add suse cmline conversion mkdir -p %{buildroot}%{dracutlibdir}/modules.d/99suse @@ -165,7 +183,6 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/dracut/overlay mkdir -p %{buildroot}%{_localstatedir}/log touch %{buildroot}%{_localstatedir}/log/dracut.log -#mkdir -p %{buildroot}%{_localstatedir}/initramfs install -m 0644 dracut.conf.d/suse.conf.example %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf echo 'add_drivers+="autofs4"' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf @@ -173,16 +190,17 @@ %ifarch %ix86 x86_64 echo 'early_microcode="yes"' > %{buildroot}%{_sysconfdir}/dracut.conf.d/02-early-microcode.conf %endif +rm %{buildroot}%{_bindir}/mkinitrd %if !%{replace_mkinitrd} rm %{buildroot}/etc/bash_completion.d/lsinitrd -rm %{buildroot}%{_bindir}/mkinitrd 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 mkinitrd-suse.sh %{buildroot}/sbin/mkinitrd +mv %{buildroot}%{_mandir}/man8/mkinitrd-suse.8 %{buildroot}%{_mandir}/man8/mkinitrd.8 install -m 0755 %{S:3} %{buildroot}/sbin/mkinitrd_setup %endif @@ -200,7 +218,7 @@ /sbin/mkinitrd /sbin/mkinitrd_setup %{_bindir}/lsinitrd -/etc/bash_completion.d/lsinitrd +%config /etc/bash_completion.d/lsinitrd %endif %dir %{dracutlibdir} %dir %{dracutlibdir}/modules.d @@ -226,6 +244,7 @@ %{_mandir}/man7/dracut.kernel.7* %{_mandir}/man7/dracut.cmdline.7* %{_mandir}/man7/dracut.bootup.7* +%{_mandir}/man7/dracut.modules.7* %{_mandir}/man8/dracut-cmdline.service.8* %{_mandir}/man8/dracut-initqueue.service.8* %{_mandir}/man8/dracut-pre-pivot.service.8* @@ -244,7 +263,6 @@ %{dracutlibdir}/modules.d/00systemd-bootchart/module-setup.sh %{dracutlibdir}/modules.d/03rescue/module-setup.sh %{dracutlibdir}/modules.d/00bootchart -%{dracutlibdir}/modules.d/00dash %{dracutlibdir}/modules.d/04watchdog %{dracutlibdir}/modules.d/05busybox %{dracutlibdir}/modules.d/10i18n @@ -271,8 +289,10 @@ %{dracutlibdir}/modules.d/95rootfs-block %{dracutlibdir}/modules.d/95dasd %{dracutlibdir}/modules.d/95dasd_mod +%{dracutlibdir}/modules.d/95dasd_rules %{dracutlibdir}/modules.d/95fstab-sys %{dracutlibdir}/modules.d/95zfcp +%{dracutlibdir}/modules.d/95zfcp_rules %{dracutlibdir}/modules.d/95terminfo %{dracutlibdir}/modules.d/95udev-rules %{dracutlibdir}/modules.d/95virtfs @@ -305,7 +325,7 @@ %{_unitdir}/*.service %{_unitdir}/*/*.service %endif -%{_sysconfdir}/bash_completion.d/dracut +%config %{_sysconfdir}/bash_completion.d/dracut %files network %defattr(-,root,root,0755) ++++++ 0001-95dasd-Install-kernel-modules-only-once.patch ++++++ >From 0c3400336c7916819fd24b8081e24098880ef244 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 11:51:30 +0100 Subject: [PATCH] 95dasd: Install kernel modules only once Move kernel module selection to 95dasd_mod and make 95dasd depend on that module. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/95dasd/module-setup.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh index 861df29..16207bc 100755 --- a/modules.d/95dasd/module-setup.sh +++ b/modules.d/95dasd/module-setup.sh @@ -11,15 +11,11 @@ check() { # called by dracut depends() { + echo "dasd_mod" return 0 } # called by dracut -installkernel() { - instmods dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod -} - -# called by dracut install() { inst_hook cmdline 30 "$moddir/parse-dasd.sh" inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg -- 1.8.1.4 ++++++ 0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch ++++++ >From 3d10724ecd78a62ec8c987c97f9b5f4236c681a4 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 11:53:09 +0100 Subject: [PATCH] 95dasd: Only install module if normalize_dasd_arg is present normalize_dasd_arg is a RedHat specific script, so no point installing this module if the script isn't present. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/95dasd/module-setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh index 16207bc..9c93d40 100755 --- a/modules.d/95dasd/module-setup.sh +++ b/modules.d/95dasd/module-setup.sh @@ -5,6 +5,7 @@ # called by dracut check() { local _arch=$(uname -m) + [ -x /sbin/normalize_dasd_arg ] || return 1 [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 return 0 } -- 1.8.1.4 ++++++ 0003-95dasd_mod-make-dasd_cio_free-optional.patch ++++++ >From 7d00da419fcbdb8736cbbe7caf13209589b43d9c Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 12:33:57 +0100 Subject: [PATCH] 95dasd_mod: make dasd_cio_free optional dasd_cio_free is a RedHat-specific tool, so make it optional. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/95dasd_mod/module-setup.sh | 3 ++- modules.d/95dasd_mod/parse-dasd-mod.sh | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh index 011010d..8fde525 100755 --- a/modules.d/95dasd_mod/module-setup.sh +++ b/modules.d/95dasd_mod/module-setup.sh @@ -23,6 +23,7 @@ installkernel() { # called by dracut install() { inst_hook cmdline 31 "$moddir/parse-dasd-mod.sh" - inst_multiple dasd_cio_free grep sed seq + inst_multiple grep sed seq + inst_multiple -o dasd_cio_free } diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh index 87c88ed..0236d12 100755 --- a/modules.d/95dasd_mod/parse-dasd-mod.sh +++ b/modules.d/95dasd_mod/parse-dasd-mod.sh @@ -15,4 +15,6 @@ if [ -n "$mod_args" ]; then fi unset dasd_arg -dasd_cio_free +if [ -x /sbin/dasd_cio_free ] ; then + dasd_cio_free +fi -- 1.8.1.4 ++++++ 0004-95zfcp-Make-installation-optional.patch ++++++ >From f0c233bc4396d3e47a8e660d2d27d78bd32762d7 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 11:58:31 +0100 Subject: [PATCH] 95zfcp: Make installation optional zfcp_cio_free is a RedHat-specific tool, so do not install this module if the program isn't present. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/95zfcp/module-setup.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh index 5d9b506..dfbeed5 100755 --- a/modules.d/95zfcp/module-setup.sh +++ b/modules.d/95zfcp/module-setup.sh @@ -5,6 +5,7 @@ # called by dracut check() { arch=$(uname -m) + [ -x /sbin/zfcp_cio_free ] || return 1 [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 return 0 @@ -12,9 +13,6 @@ check() { # called by dracut depends() { - arch=$(uname -m) - [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 - return 0 } -- 1.8.1.4 ++++++ 0005-95znet-Make-installation-optional.patch ++++++ >From 8a7276ae8aae5694c40d977580c7db6c5c47a81a Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 12:00:14 +0100 Subject: [PATCH] 95znet: Make installation optional znet_cio_free is a RedHat-specific tool, so do not install this module on systems where the program is missing. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/95znet/module-setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh index 4c211a9..5012b77 100755 --- a/modules.d/95znet/module-setup.sh +++ b/modules.d/95znet/module-setup.sh @@ -5,6 +5,7 @@ # called by dracut check() { arch=$(uname -m) + [ -z /sbin/znet_cio_free ] || return 1 [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 return 0 -- 1.8.1.4 ++++++ 0006-Install-bin-mount.patch ++++++ >From 9e87dcb25f82122be3ee16ca8f3c198dd3d02d77 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Wed, 27 Nov 2013 14:35:19 +0100 Subject: [PATCH] Install /bin/mount systemd relies on /bin/mount to be present, so install it. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/99fs-lib/module-setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules.d/99fs-lib/module-setup.sh b/modules.d/99fs-lib/module-setup.sh index 7979bab..b24207d 100755 --- a/modules.d/99fs-lib/module-setup.sh +++ b/modules.d/99fs-lib/module-setup.sh @@ -85,4 +85,5 @@ install() { fi inst_multiple -o $_helpers fsck + inst /usr/bin/mount /bin/mount } -- 1.8.1.4 ++++++ 0007-Fixup-keymap-setting-for-openSUSE.patch ++++++ >From 4b40f3a3361d5267d9987c57945ef006e90e964d Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Wed, 27 Nov 2013 14:42:24 +0100 Subject: [PATCH] Fixup keymap setting for openSUSE openSUSE is using compressed keymaps. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/10i18n/module-setup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh index 0741c64..f07b148 100755 --- a/modules.d/10i18n/module-setup.sh +++ b/modules.d/10i18n/module-setup.sh @@ -161,6 +161,9 @@ install() { # Gentoo user may have KEYMAP set to something like "-u pl2", KEYMAP=${KEYMAP#-* } + # openSUSE user may have KEYMAP set to something like ".gz" + KEYMAP=${KEYMAP/.gz/} + # KEYTABLE is a bit special - it defines base keymap name and UNICODE # determines whether non-UNICODE or UNICODE version is used -- 1.8.1.4 ++++++ 0008-Add-DASD-configuration-for-SuSE.patch ++++++ >From 60265e04911e2cfb980d048e378fb2e510b8370d Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 12:23:44 +0100 Subject: [PATCH] Add DASD configuration for SuSE On SuSE the DASD configuration is kept in udev rules, one rule file per device. So add a new module for copying and creating these rules during boot. Signed-off-by: Hannes Reinecke <[email protected]> --- dracut-functions.sh | 28 +++++++++++++++++ modules.d/95dasd_rules/module-setup.sh | 27 ++++++++++++++++ modules.d/95dasd_rules/parse-dasd.sh | 56 ++++++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100755 modules.d/95dasd_rules/module-setup.sh create mode 100755 modules.d/95dasd_rules/parse-dasd.sh diff --git a/dracut-functions.sh b/dracut-functions.sh index 2872516..0337c13 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -899,6 +899,34 @@ inst_rules() { done } +inst_rules_wildcard() { + local _target=/etc/udev/rules.d _rule _found + + inst_dir "${udevdir}/rules.d" + inst_dir "$_target" + for _rule in ${udevdir}/rules.d/$1 ${dracutbasedir}/rules.d/$1 ; do + if [[ -e $_rule ]]; then + inst_rule_programs "$_rule" + inst_rule_group_owner "$_rule" + inst_rule_initqueue "$_rule" + inst_simple "$_rule" + _found=$_rule + fi + done + if [ -n ${hostonly} ] ; then + for _rule in ${_target}/$1 ; do + if [[ -f $_rule ]]; then + inst_rule_programs "$_rule" + inst_rule_group_owner "$_rule" + inst_rule_initqueue "$_rule" + inst_simple "$_rule" + _found=$_rule + fi + done + fi + [[ $_found ]] || dinfo "Skipping udev rule: $_rule" +} + prepare_udev_rules() { [ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version) diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh new file mode 100755 index 0000000..d313171 --- /dev/null +++ b/modules.d/95dasd_rules/module-setup.sh @@ -0,0 +1,27 @@ +#!/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) + [ -x /sbin/dasd_configure ] || return 1 + [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 + return 0 +} + +# called by dracut +depends() { + echo 'dasd_mod' + return 0 +} + +# called by dracut +install() { + inst_multiple /usr/lib/udev/collect + inst_hook cmdline 30 "$moddir/parse-dasd.sh" + if [[ $hostonly ]] ; then + inst_rules_wildcard 51-dasd-*.rules + fi + inst_rules 59-dasd.rules +} diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh new file mode 100755 index 0000000..9389c44 --- /dev/null +++ b/modules.d/95dasd_rules/parse-dasd.sh @@ -0,0 +1,56 @@ +#!/bin/sh +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +create_udev_rule() { + local ccw=$1 + local _drv _cu_type _dev_type + local _rule=/etc/udev/rules.d/51-dasd-${ccw}.rules + + if [ -e /sys/bus/ccw/devices/${ccw} ] ; then + read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype + read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype + fi + case "$_cu_type" in + 3990/*|2105/*|2107/*|1750/*|9343/*) + _drv=dasd-eckd + ;; + 6310/*) + _drv=dasd-fba + ;; + 3880/*) + case "$_dev_type" in + 3380/*) + _drv=dasd_eckd + ;; + 3370/*) + _drv=dasd-fba + ;; + esac + ;; + esac + [ -z "${_drv}" ] && return 0 + + [ -e ${_rule} ] && return 0 + + cat > $_rule <<EOF +ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} $_drv" +ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect $ccw %k ${ccw} $_drv" +ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1" +EOF +} + +for dasd_arg in $(getargs root=) $(getargs resume=); do + ( + case $dasd_arg in + /dev/disk/by-path/ccw-*) + ccw_arg=${dasd_arg##*/} + break; + esac + if [ -n "$ccw_arg" ] ; then + IFS="-" + set -- $ccw_arg + create_udev_rule $2 + fi + ) +done -- 1.8.1.4 ++++++ 0009-Add-zfcp-scripts-for-SUSE.patch ++++++ >From f6ed21cbdd3f5a34ed094c38a81faad1e8f6fdbb Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 21 Nov 2013 13:47:17 +0100 Subject: [PATCH] Add zfcp scripts for SUSE SuSE is storing the zfcp configuration in udev files, so we should be including these. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/95zfcp_rules/module-setup.sh | 25 +++++++++++++ modules.d/95zfcp_rules/parse-zfcp.sh | 65 ++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100755 modules.d/95zfcp_rules/module-setup.sh create mode 100755 modules.d/95zfcp_rules/parse-zfcp.sh diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh new file mode 100755 index 0000000..9a1ab20 --- /dev/null +++ b/modules.d/95zfcp_rules/module-setup.sh @@ -0,0 +1,25 @@ +#!/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) + [ -x /sbin/zfcp_disk_configure ] || return 1 + [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 + return 0 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +install() { + inst_multiple /usr/lib/udev/collect + inst_hook cmdline 30 "$moddir/parse-zfcp.sh" + if [[ $hostonly ]] ; then + inst_rules_wildcard 51-zfcp-*.rules + fi +} diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh new file mode 100755 index 0000000..24dbdd3 --- /dev/null +++ b/modules.d/95zfcp_rules/parse-zfcp.sh @@ -0,0 +1,65 @@ +#!/bin/sh +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +create_udev_rule() { + local ccw=$1 + local wwpn=$2 + local lun=$3 + local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules + + local _cu_type _dev_type + local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules + + if [ -e /sys/bus/ccw/devices/${ccw} ] ; then + read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype + read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype + fi + if [ "$_cu_type" != "1731/03" ] ; then + return 0; + fi + if [ "$_dev_type" != "1732/03" ] && [ "$_dev_type" != "1732/04" ] ; then + return 0; + fi + + [ -e ${_rule} ] && return 0 + + if [ ! -f "$_rule" ] ; then + cat > $_rule <<EOF +ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} zfcp" +ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", IMPORT{program}="collect $ccw %k ${ccw} zfcp" +ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1" +EOF + fi + m=$(sed -n "/.*${wwpn}.*${lun}.*/p" $_rule) + if [ -z "$m" ] ; then + cat >> $_rule <<EOF +ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun" +EOF + fi +} + +for zfcp_arg in $(getargs rd.zfcp); do + ( + IFS="," + set $zfcp_arg + create_udev_rule $1 $2 $3 + ) +done + +for zfcp_arg in $(getargs root=) $(getargs resume=); do + ( + case $zfcp_arg in + /dev/disk/by-path/ccw-*) + ccw_arg=${zfcp_arg##*/} + break; + esac + if [ -n "$ccw_arg" ] ; then + IFS="-" + set -- $ccw_arg + wwpn=${4%:*} + lun=${4#*:} + create_udev_rule $2 $wwpn $lun + fi + ) +done -- 1.8.1.4 ++++++ 0010-Make-logfile-configurable.patch ++++++ >From bd9556ea50348e21d59e022433df05fe35ddfc14 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 28 Nov 2013 13:21:30 +0100 Subject: [PATCH] Make logfile configurable Add '--logfile' option to make the log file configurable during runtime. Signed-off-by: Hannes Reinecke <[email protected]> --- dracut.8.asc | 6 ++++++ dracut.sh | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/dracut.8.asc b/dracut.8.asc index 2ea6744..d381dcf 100644 --- a/dracut.8.asc +++ b/dracut.8.asc @@ -275,6 +275,12 @@ Default: **--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module. +**--logfile** _<logfile>_:: logfile to use; overrides any setting from + the configuration files. ++ +Default: + _/var/log/dracut.log_ + **-l, --local**:: activates the local mode. dracut will use modules from the current working directory instead of the system-wide installed modules in diff --git a/dracut.sh b/dracut.sh index bce2662..5f63d94 100755 --- a/dracut.sh +++ b/dracut.sh @@ -183,6 +183,7 @@ Creates initial ramdisk images for preloading modules --keep Keep the temporary initramfs for debugging purposes --printsize Print out the module install size --sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module) + --logfile [FILE] Logfile to use (overrides configuration setting) If [LIST] has multiple arguments, then you have to put these in quotes. @@ -335,6 +336,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \ --long debug \ --long profile \ --long sshkey: \ + --long logfile: \ --long verbose \ --long quiet \ --long local \ @@ -418,6 +420,7 @@ while :; do --debug) debug="yes";; --profile) profile="yes";; --sshkey) sshkey="$2"; shift;; + --logfile) logfile_l="$2"; shift;; -v|--verbose) ((verbosity_mod_l++));; -q|--quiet) ((verbosity_mod_l--));; -l|--local) @@ -690,6 +693,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l)) [[ $ro_mnt_l ]] && ro_mnt="yes" [[ $early_microcode_l ]] && early_microcode=$early_microcode_l [[ $early_microcode ]] || early_microcode=no +[[ $logfile_l ]] && logfile="$logfile_l" # eliminate IFS hackery when messing with fw_dir fw_dir=${fw_dir//:/ } -- 1.8.1.4 ++++++ 0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch ++++++ >From 48b0614371e7fabee84a45132771b9427091efa9 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 28 Nov 2013 10:53:57 +0100 Subject: [PATCH] mkinitrd-suse: Add SUSE compability wrapper for dracut SUSE has its own mkinitrd system. As the arguments clash with the dracut-provided mkinitrd script I've added a new mkinitrd-suse.sh wrapper. Signed-off-by: Hannes Reinecke <[email protected]> --- mkinitrd-suse.sh | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 354 insertions(+) create mode 100755 mkinitrd-suse.sh diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh new file mode 100755 index 0000000..d20270a --- /dev/null +++ b/mkinitrd-suse.sh @@ -0,0 +1,354 @@ +#!/bin/bash --norc +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +# +# mkinitrd compability wrapper for SUSE. +# +# Copyright (c) 2013 SUSE Linux Products GmbH. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +boot_dir="/boot" +quiet=0 +host_only=1 +force=0 +logfile=/var/log/YaST2/mkinitrd.log +dracut_cmd=dracut + +error() { echo "$@" >&2; } + +usage () { + [[ $1 = '-n' ]] && cmd=echo || cmd=error + + $cmd "usage: ${0##*/} [options]" + $cmd "" + $cmd " Create initial ramdisk images that contain all kernel modules needed" + $cmd " in the early boot process, before the root file system becomes" + $cmd " available." + $cmd " This usually includes SCSI and/or RAID modules, a file system module" + $cmd " for the root file system, or a network interface driver module for dhcp." + $cmd "" + $cmd " options:" + $cmd " -f \"feature list\" Features to be enabled when generating initrd." + $cmd " Available features are:" + $cmd " iscsi, md, multipath, lvm, lvm2," + $cmd " ifup, fcoe, dcbd" + $cmd " -k \"kernel list\" List of kernel images for which initrd files are" + $cmd " created. Defaults to all kernels found in /boot." + $cmd " -i \"initrd list\" List of file names for the initrd; position have" + $cmd " match to \"kernel list\". Defaults to all kernels" + $cmd " found in /boot." + $cmd " -b boot_dir Boot directory. Defaults to /boot." + $cmd " -t tmp_dir Temporary directory. Defaults to /var/tmp." + $cmd " -M map System.map file to use." + $cmd " -A Create a so called \"monster initrd\" which" + $cmd " includes all features and modules possible." + $cmd " -B Do not update bootloader configuration." + $cmd " -v Verbose mode." + $cmd " -L Disable logging." + $cmd " -h This help screen." + $cmd " -m \"module list\" Modules to include in initrd. Defaults to the" + $cmd " INITRD_MODULES variable in /etc/sysconfig/kernel" + $cmd " -u \"DomU module list\" Modules to include in initrd. Defaults to the" + $cmd " DOMU_INITRD_MODULES variable in" + $cmd " /etc/sysconfig/kernel." + $cmd " -d root_device Root device. Defaults to the device from" + $cmd " which / is mounted. Overrides the rootdev" + $cmd " enviroment variable if set." + $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 " -s size Add splash animation and bootscreen to initrd." + + [[ $1 = '-n' ]] && exit 0 + exit 1 +} + +# Little helper function for reading args from the commandline. +# it automatically handles -a b and -a=b variants, and returns 1 if +# we need to shift $3. +read_arg() { + # $1 = arg name + # $2 = arg value + # $3 = arg parameter + param="$1" + local rematch='^[^=]*=(.*)$' result + if [[ $2 =~ $rematch ]]; then + 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 +} + +# Helper functions to calculate ipconfig command line +calc_netmask() { + local prefix=$1 + + [ -z "$prefix" ] && return + mask=$(echo "(2 ^ 32) - (2 ^ $prefix)" | bc -l) + byte1=$(( mask >> 24 )) + byte2=$(( mask >> 16 )) + byte3=$(( mask >> 8 )) + byte4=$(( mask & 0xff )) + netmask=$(printf "%d.%d.%d.%d" $(( byte1 & 0xff )) $(( byte2 & 0xff )) $(( byte3 & 0xff )) $byte4); + + echo $netmask +} + +ipconfig() { + local interface=$1 + local iplink macaddr broadcast gateway ipaddr prefix netmask + + iplink=$(ip addr show dev $interface | sed -n 's/ *inet \(.*\) brd.*/\1/p') + macaddr=$(ip addr show dev $interface | sed -n 's/.*ether \(.*\) brd.*/\1/p') + broadcast=$(ip addr show dev $interface | sed -n 's/.*brd \(.*\) scope.*/\1/p') + gateway=$(ip route show dev $interface | sed -n 's/default via \([0-9\.]*\).*/\1/p') + + ipaddr=${iplink%%/*} + prefix=${iplink##*/} + netmask=$(calc_netmask $prefix) + + echo "${ipaddr}:${serveraddr}:${gateway}:${netmask}:${hostname}:${interface}:none::${macaddr}" +} + +is_xen_kernel() { + local kversion=$1 + local root_dir=$2 + local cfg + + for cfg in ${root_dir}/boot/config-$kversion $root_dir/lib/modules/$kversion/build/.config + do + test -r $cfg || continue + grep -q "^CONFIG_XEN=y\$" $cfg + return + done + test $kversion != "${kversion%-xen*}" + return +} + + +# 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 + + 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 + host_only=1 + force=1 +} + +while (($# > 0)); do + case ${1%%=*} in + -f) read_arg feature_list "$@" || shift $? + # Could be several features + ;; + -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 + host_only=1 + force=1 + ;; + -i) read_arg initrd_images "$@" || shift $? + for initrd_image in $initrd_images;do + # Check if the initrd_image contains a path. + # if not, then add the default boot_dir + dname=`dirname $initrd_image` + if [ "$dname" == "." ]; then + targets="$targets $boot_dir/$initrd_image"; + else + targets="$targets $initrd_image"; + fi + done + ;; + -b) read_arg boot_dir "$@" || shift $? + if [ ! -d $boot_dir ];then + error "Boot directory $boot_dir does not exist" + exit 1 + fi + ;; + -t) read_arg tmp_dir "$@" || shift $? + dracut_args="${dracut_args} --tmpdir $tmp_dir" + ;; + -M) read_arg map_file "$@" || shift $? + ;; + -A) host_only=0;; + -B) skip_update_bootloader=1;; + -v|--verbose) dracut_args="${dracut_args} -v";; + -L) logfile=;; + -h|--help) usage -n;; + -m) read_arg module_list "$@" || shift $? ;; + -u) read_arg domu_module_list "$@" || shift $? + echo "mkinitrd: DomU modules not yet supported" ;; + -d) read_arg rootfs "$@" || shift $? + dracut_args="${dracut_args} --filesystems $rootfs" ;; + -D) read_arg dhcp_if "$@" || shift $? + dracut_cmdline="${dracut_cmdline} ip=${dhcp_if}:dhcp" + ;; + -I) read_arg static_if "$@" || shift $? + dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)": + ;; + -a) read_arg acpi_dsdt "$@" || shift $? + echo "mkinitrd: custom DSDT not yet supported" + exit 1 + ;; + -s) read_arg boot_splash "$@" || shift $? + echo "mkinitrd: boot splash not yet supported" + exit 1 + ;; + -V) echo "mkinitrd: vendor scipts are no longer supported" + exit 1;; + --dracut) + read_arg dracut_cmd "$@" || shift $? ;; + --version|-R) + echo "mkinitrd: dracut compatibility wrapper" + exit 0;; + --force) force=1;; + --quiet|-q) quiet=1;; + *) if [[ ! $targets ]]; then + targets=$1 + elif [[ ! $kernels ]]; then + kernels=$1 + else + usage + fi;; + esac + shift +done + +[[ $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 ) +[[ $kernels ]] && kernels=( $kernels ) + +[[ $logfile ]] && dracut_args="${dracut_args} --logfile $logfile" +[[ $host_only == 1 ]] && dracut_args="${dracut_args} --hostonly" +[[ $force == 1 ]] && dracut_args="${dracut_args} --force" +[[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}" +[ -z "$(type -p update-bootloader)" ] && skip_update_bootloader=1 + +# Update defaults from /etc/sysconfig/kernel +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}" + +echo "Creating: target|kernel|dracut args|basicmodules " +for ((i=0 ; $i<${#targets[@]} ; i++)); do + + if [[ $img_vers ]];then + target="${targets[$i]}-${kernels[$i]}" + else + target="${targets[$i]}" + fi + kernel="${kernels[$i]}" + + # Duplicate code: No way found how to redirect output based on $quiet + if [[ $quiet == 1 ]];then + echo "$target|$kernel|$dracut_args|$basicmodules" + 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 + 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 + fi +done + +if [ "$skip_update_bootloader" ] ; then + echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually." +else + update-bootloader --refresh +fi -- 1.8.1.4 ++++++ 0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch ++++++ >From ed220c000020db2d883e798cbfa51e80e289b218 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Fri, 29 Nov 2013 08:01:34 +0100 Subject: [PATCH] mkinitrd-suse.8.asc: Add manpage for SUSE compat mkinitrd Signed-off-by: Hannes Reinecke <[email protected]> --- Makefile | 1 + mkinitrd-suse.8.asc | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 mkinitrd-suse.8.asc diff --git a/Makefile b/Makefile index e7da948..ba551cf 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ man7pages = dracut.cmdline.7 \ man8pages = dracut.8 \ dracut-catimages.8 \ mkinitrd.8 \ + mkinitrd-suse.8 \ modules.d/98systemd/dracut-cmdline.service.8 \ modules.d/98systemd/dracut-initqueue.service.8 \ modules.d/98systemd/dracut-mount.service.8 \ diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc new file mode 100644 index 0000000..9eb8fc9 --- /dev/null +++ b/mkinitrd-suse.8.asc @@ -0,0 +1,106 @@ +MKINITRD(8) +=========== +:doctype: manpage +:man source: dracut +:man manual: dracut + +NAME +---- +mkinitrd-suse - is a compat wrapper, which calls dracut to generate an initramfs + +SYNOPSIS +-------- +*mkinitrd* ['OPTION...'] + +DESCRIPTION +----------- +*mkinitrd* creates an initramfs image <initrd-image> for the kernel with +version <kernel-version> by calling *dracut*. + +[IMPORTANT] +This version of mkinitrd is provided for compability with older +versions of mkinitrd. If a more fine grained control over the +resulting image is needed, *dracut* should be called directly. + +OPTIONS +------- +**-R, --version**:: + print info about the version + +**-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. + +**-i** _<initrd_list>_:: + List of file names (relative to _boot_dir_) for the initrd; positions + have to match the _kernel_list_. Defaults to _initrd_. + +**-m** _<module_list>_:: + Modules to include in initrd, defaults to _INITRD_MODULES_ variable + in */etc/sysconfig/kernel*. + +**-f** _<feature_list>_:: + Features to be enabled for the initrd. In general mkinitrd + configures the initrd for the root device it is started from. With + this option additional feature can be enabled. + +**-b** _<bootdir>_:: + Boot directory, defaults to */boot*, where the initrd is created. + +**-d** _<root_device>_:: + Root device, defaults to the device from which the root_dir is + mounted; overwrites the rootdev enviroment variable if set + +**-s** _<size>_:: + Add splash animation and bootscreen to initrd. + +**-D** _<interface>:: + Run dhcp on the specified interface (for example "eth0"). + +**-I** _<interface>:: + Configure the specified interface statically. + +**-a** _<acpi_dsdt>:: + Attach compiled ACPI DSDT (Differentiated System Description Table) + to initrd. This replaces the DSDT of the BIOS. Defaults to the + _ACPI_DSDT_ variable in */etc/sysconfig/kernel*. + +**-M** _<map>:: + System.map file to use. + +**-B**:: + Don’t run the *update-bootloader(8)* script after the initrd(s) have + been created. This is useful if you call mkinitrd(8) for anything + else than the running system. + +**-A**:: + Create a so called "monster initrd" which includes all available + features and modules. + +**-v, --verbose**:: + increase verbosity level + +**-L**:: + Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for + testing if you don’t want to clutter the system log. + +**--force**:: + overwrite existing initramfs file. + +**--help**:: + print a help message and exit. + +AVAILABILITY +------------ +The mkinitrd command is part of the dracut package and is available from +link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org] + +AUTHORS +------- +Harald Hoyer, Hannes Reinecke + +SEE ALSO +-------- +*dracut*(8) +*update-bootloader*(8) -- 1.8.1.4 ++++++ 0013-Correct-paths-for-openSUSE.patch ++++++ >From 16b73ffc6f9c67800811f39641c484123d2a159a Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Thu, 28 Nov 2013 10:07:59 +0100 Subject: [PATCH] Correct paths for openSUSE openSUSE has things stored in different places, so fixup the paths here. Signed-off-by: Christian Rodrigues <[email protected]> Signed-off-by: Hannes Reinecke <[email protected]> --- dracut.sh | 2 +- modules.d/10i18n/module-setup.sh | 2 ++ modules.d/98systemd/rescue.service | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dracut.sh b/dracut.sh index 5f63d94..8680874 100755 --- a/dracut.sh +++ b/dracut.sh @@ -683,7 +683,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l)) [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l [[ $lvmconf_l ]] && lvmconf=$lvmconf_l [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut -[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware" +[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware /lib/firmware/$kernel" [[ $tmpdir_l ]] && tmpdir="$tmpdir_l" [[ $tmpdir ]] || tmpdir=/var/tmp [[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh index f07b148..3854a38 100755 --- a/modules.d/10i18n/module-setup.sh +++ b/modules.d/10i18n/module-setup.sh @@ -102,6 +102,8 @@ install() { install_base() { inst_multiple setfont loadkeys kbd_mode stty + inst /usr/bin/setfont /bin/setfont + inst /usr/bin/loadkeys /bin/loadkeys if ! dracut_module_included "systemd"; then inst ${moddir}/console_init.sh /lib/udev/console_init diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service index edc2461..d80900f 100644 --- a/modules.d/98systemd/rescue.service +++ b/modules.d/98systemd/rescue.service @@ -16,7 +16,7 @@ Environment=HOME=/ Environment=DRACUT_SYSTEMD=1 Environment=NEWROOT=/sysroot WorkingDirectory=/ -ExecStartPre=-/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth quit ExecStart=-/bin/sh -i -l ExecStopPost=-/bin/rm -f -- /.console_lock ExecStopPost=-/usr/bin/systemctl --fail --no-block default -- 1.8.1.4 ++++++ 0014-Check-for-plymouth-lib-directories.patch ++++++ >From cc0ec0cdcef806efe2315931ba4705fb35b82c6a Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Wed, 27 Nov 2013 15:54:00 +0100 Subject: [PATCH] Check for plymouth lib directories SUSE installs plymount files in /usr/lib, not /usr/libexec. So check for both when including plymouth support. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/50plymouth/module-setup.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh index 1360924..7ccf9e4 100755 --- a/modules.d/50plymouth/module-setup.sh +++ b/modules.d/50plymouth/module-setup.sh @@ -15,12 +15,19 @@ depends() { # called by dracut install() { - if grep -q nash /usr/libexec/plymouth/plymouth-populate-initrd \ - || [ ! -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then + if [ -d /usr/libexec/plymouth ] ; then + _plymouth=/usr/libexec/plymouth; + elif [ -d /usr/lib/plymouth ] ; then + _plymouth=/usr/lib/plymouth + fi + if [ -n "$_plymouth" ] ; then + if grep -q nash ${_plymouth}/plymouth-populate-initrd \ + || [ ! -x ${_plymouth}/plymouth-populate-initrd ]; then . "$moddir"/plymouth-populate-initrd.sh - else - PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \ - /usr/libexec/plymouth/plymouth-populate-initrd -t "$initdir" + else + PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \ + ${_plymouth}/plymouth-populate-initrd -t "$initdir" + fi fi inst_hook emergency 50 "$moddir"/plymouth-emergency.sh -- 1.8.1.4 ++++++ 0015-Fixup-script-permissions.patch ++++++ >From 96a44d8e982838a01e3d8f2a62941a9af0952b95 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Fri, 29 Nov 2013 11:36:02 +0100 Subject: [PATCH] Fixup script permissions Scripts with a shebang should be marked as executable. Signed-off-by: Hannes Reinecke <[email protected]> --- modules.d/03modsign/load-modsign-keys.sh | 0 modules.d/03modsign/module-setup.sh | 0 modules.d/40network/net-lib.sh | 0 modules.d/40network/parse-vlan.sh | 0 modules.d/50drm/module-setup.sh | 0 modules.d/91crypt-loop/crypt-loop-lib.sh | 0 modules.d/98pollcdrom/pollcdrom.sh | 0 7 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 modules.d/03modsign/load-modsign-keys.sh mode change 100644 => 100755 modules.d/03modsign/module-setup.sh mode change 100644 => 100755 modules.d/40network/net-lib.sh mode change 100644 => 100755 modules.d/40network/parse-vlan.sh mode change 100644 => 100755 modules.d/50drm/module-setup.sh mode change 100644 => 100755 modules.d/91crypt-loop/crypt-loop-lib.sh mode change 100644 => 100755 modules.d/98pollcdrom/pollcdrom.sh diff --git a/modules.d/03modsign/load-modsign-keys.sh b/modules.d/03modsign/load-modsign-keys.sh old mode 100644 new mode 100755 diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh old mode 100644 new mode 100755 diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh old mode 100644 new mode 100755 diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/40network/parse-vlan.sh old mode 100644 new mode 100755 diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh old mode 100644 new mode 100755 diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh old mode 100644 new mode 100755 diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh old mode 100644 new mode 100755 -- 1.8.1.4 ++++++ 0016-Remove-shebang-from-shell-completion-files.patch ++++++ >From d29f993d5a4205f918c5fefb7e03dabc1062e11b Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <[email protected]> Date: Fri, 29 Nov 2013 12:46:24 +0100 Subject: [PATCH] Remove shebang from shell-completion files Shell-completion files are meant to be sourced, not executed. So they shouldn't have a shebang at the start. Signed-off-by: Hannes Reinecke <[email protected]> --- dracut-bash-completion.sh | 2 +- lsinitrd-bash-completion.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh index d796c35..9f359c6 100644 --- a/dracut-bash-completion.sh +++ b/dracut-bash-completion.sh @@ -1,4 +1,4 @@ -#!/bin/bash +# # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # diff --git a/lsinitrd-bash-completion.sh b/lsinitrd-bash-completion.sh index 78ab165..3df2965 100644 --- a/lsinitrd-bash-completion.sh +++ b/lsinitrd-bash-completion.sh @@ -1,4 +1,4 @@ -#!/bin/bash +# # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # -- 1.8.1.4 ++++++ dracut-git-update.patch ++++++ ++++ 5557 lines (skipped) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
