summaryrefslogtreecommitdiff
path: root/sys-kernel/dracut/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-07-19 22:59:15 +0100
committerV3n3RiX <venerix@redcorelinux.org>2019-07-19 22:59:15 +0100
commita9b7d6d041be3ac011bf87b47d33cdd3cdf9346b (patch)
treed98c727eb328946550806f49efdb5e8f7b5defcd /sys-kernel/dracut/files
parent10acd8a455d7551227220b3445bcb5351afc15ce (diff)
sys-kernel/dracut : version bump
Diffstat (limited to 'sys-kernel/dracut/files')
-rw-r--r--sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch32
-rw-r--r--sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch24
-rw-r--r--sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch23
-rw-r--r--sys-kernel/dracut/files/044-0004-redcore-change-default-initramfs-name.patch12
-rw-r--r--sys-kernel/dracut/files/048-dracut-install-simplify-ldd-parsing-logic.patch41
-rw-r--r--sys-kernel/dracut/files/048-redcore-change-default-initramfs-name.patch17
-rw-r--r--sys-kernel/dracut/files/048-remove_JobRunningTimeoutSec.patch40
-rw-r--r--sys-kernel/dracut/files/048-sort-fixup-creating-early-microcode.patch (renamed from sys-kernel/dracut/files/sort-fixup-creating-early-microcode.patch)0
-rw-r--r--sys-kernel/dracut/files/dracut-044-backport-fix-for-microcode-loading.patch12
-rw-r--r--sys-kernel/dracut/files/dracut-044-bash-4.4.patch80
-rw-r--r--sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch30
-rw-r--r--sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch51
12 files changed, 98 insertions, 264 deletions
diff --git a/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch b/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch
deleted file mode 100644
index fd6f1185..00000000
--- a/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c41df7e1db1adc51399ab2c22f251b15eb2065b1 Mon Sep 17 00:00:00 2001
-From: Alexander Tsoy <alexander@tsoy.me>
-Date: Tue, 5 Jan 2016 22:11:57 +0300
-Subject: [PATCH] base/dracut-lib.sh:dev_unit_name() guard against $dev
- beginning with "-"
-
-crypt/parse-crypt.sh generate initqueue job which always call
-dev_unit_name() with an argument beginning with "-". This results
-in the following error:
-
-dracut-initqueue[307]: + systemd-escape -p -cfb4aa43-2f02-4c6b-a313-60ea99288087
-dracut-initqueue[307]: systemd-escape: invalid option -- 'c'
----
- modules.d/99base/dracut-lib.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
-index ad03394..0a0b1b9 100755
---- a/modules.d/99base/dracut-lib.sh
-+++ b/modules.d/99base/dracut-lib.sh
-@@ -874,7 +874,7 @@ dev_unit_name()
- local dev="$1"
-
- if command -v systemd-escape >/dev/null; then
-- systemd-escape -p "$dev"
-+ systemd-escape -p -- "$dev"
- return
- fi
-
---
-2.10.2
-
diff --git a/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch b/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch
deleted file mode 100644
index 21cb6792..00000000
--- a/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From d4efc0aeeecc470d9a267b7f3c130f472488905c Mon Sep 17 00:00:00 2001
-From: Harald Hoyer <harald@redhat.com>
-Date: Wed, 25 May 2016 15:06:29 +0200
-Subject: [PATCH] systemd-initrd: add initrd-root-device.target
-
----
- modules.d/01systemd-initrd/module-setup.sh | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh
-index fb6a9ea..c1ccd2a 100755
---- a/modules.d/01systemd-initrd/module-setup.sh
-+++ b/modules.d/01systemd-initrd/module-setup.sh
-@@ -28,6 +28,7 @@ install() {
- inst_multiple -o \
- $systemdsystemunitdir/initrd.target \
- $systemdsystemunitdir/initrd-fs.target \
-+ $systemdsystemunitdir/initrd-root-device.target \
- $systemdsystemunitdir/initrd-root-fs.target \
- $systemdsystemunitdir/initrd-switch-root.target \
- $systemdsystemunitdir/initrd-switch-root.service \
---
-2.10.2
-
diff --git a/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch b/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch
deleted file mode 100644
index 85ebc7e6..00000000
--- a/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 69395a528aed99ec04b16c14ebacf4c2e10afd26 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Fri, 4 Nov 2016 13:09:28 -0400
-Subject: [PATCH] 50-dracut.install: use /bin/bash shebang
-
-This script utilizes several bash-specific constructs.
----
- 50-dracut.install | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/50-dracut.install b/50-dracut.install
-index 7d081d5..54c71d4 100755
---- a/50-dracut.install
-+++ b/50-dracut.install
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
-
- COMMAND="$1"
- KERNEL_VERSION="$2"
---
-2.10.2
-
diff --git a/sys-kernel/dracut/files/044-0004-redcore-change-default-initramfs-name.patch b/sys-kernel/dracut/files/044-0004-redcore-change-default-initramfs-name.patch
deleted file mode 100644
index 39163375..00000000
--- a/sys-kernel/dracut/files/044-0004-redcore-change-default-initramfs-name.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur a/dracut.sh b/dracut.sh
---- a/dracut.sh 2015-11-25 13:22:28.000000000 +0000
-+++ b/dracut.sh 2017-12-30 00:26:04.680751115 +0000
-@@ -627,7 +627,7 @@
- if [[ $MACHINE_ID ]] && ( [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]] ); then
- outfile="/boot/${MACHINE_ID}/$kernel/initrd"
- else
-- outfile="/boot/initramfs-$kernel.img"
-+ outfile="/boot/initrd-$kernel"
- fi
- fi
-
diff --git a/sys-kernel/dracut/files/048-dracut-install-simplify-ldd-parsing-logic.patch b/sys-kernel/dracut/files/048-dracut-install-simplify-ldd-parsing-logic.patch
new file mode 100644
index 00000000..aa9c543f
--- /dev/null
+++ b/sys-kernel/dracut/files/048-dracut-install-simplify-ldd-parsing-logic.patch
@@ -0,0 +1,41 @@
+From 6d886bb74d1608e4565d926aa259ea5afc9df7b9 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Thu, 4 Oct 2018 16:45:47 -0400
+Subject: [PATCH] dracut-install: simplify ldd parsing logic
+
+The previous logic would not handle absolute paths on the left side of
+the "=>" properly. For example, on Gentoo ARM64, ldd outputs this:
+
+ /lib/ld-linux-aarch64.so.1 => /lib64/ld-linux-aarch64.so.1
+
+At runtime, the kernel tries to load the file from /lib, and fails if we
+only provide it in /lib64.
+
+Instead of looking for the first slash after the "=>", just look for the
+first slash, period. This would fail if we somehow had a relative path
+on the left side (foo/libbar.so), but I'm not aware of any binaries that
+would contain such an entry in DT_NEEDED.
+
+Bug: https://bugs.gentoo.org/667752
+Signed-off-by: Mike Gilbert <floppym@gentoo.org>
+---
+ install/dracut-install.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/install/dracut-install.c b/install/dracut-install.c
+index 88bca1d44..5f352b360 100644
+--- a/install/dracut-install.c
++++ b/install/dracut-install.c
+@@ -479,11 +479,7 @@ static int resolve_deps(const char *src)
+ if (strstr(buf, destrootdir))
+ break;
+
+- p = strstr(buf, "=>");
+- if (!p)
+- p = buf;
+-
+- p = strchr(p, '/');
++ p = strchr(buf, '/');
+ if (p) {
+ char *q;
+
diff --git a/sys-kernel/dracut/files/048-redcore-change-default-initramfs-name.patch b/sys-kernel/dracut/files/048-redcore-change-default-initramfs-name.patch
new file mode 100644
index 00000000..82519600
--- /dev/null
+++ b/sys-kernel/dracut/files/048-redcore-change-default-initramfs-name.patch
@@ -0,0 +1,17 @@
+diff -Nur a/dracut.sh b/dracut.sh
+--- a/dracut.sh 2018-07-06 09:37:51.000000000 +0100
++++ b/dracut.sh 2019-07-19 22:33:11.571832132 +0100
+@@ -791,11 +791,11 @@
+ outfile="$efidir/Linux/linux-$kernel${MACHINE_ID:+-${MACHINE_ID}}${BUILD_ID:+-${BUILD_ID}}.efi"
+ else
+ if [[ -e "/boot/vmlinuz-$kernel" ]]; then
+- outfile="/boot/initramfs-$kernel.img"
++ outfile="/boot/initrd-$kernel"
+ elif [[ $MACHINE_ID ]] && ( [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]] ); then
+ outfile="/boot/${MACHINE_ID}/$kernel/initrd"
+ else
+- outfile="/boot/initramfs-$kernel.img"
++ outfile="/boot/initrd-$kernel"
+ fi
+ fi
+ fi
diff --git a/sys-kernel/dracut/files/048-remove_JobRunningTimeoutSec.patch b/sys-kernel/dracut/files/048-remove_JobRunningTimeoutSec.patch
new file mode 100644
index 00000000..4953bb1c
--- /dev/null
+++ b/sys-kernel/dracut/files/048-remove_JobRunningTimeoutSec.patch
@@ -0,0 +1,40 @@
+diff -Naur dracut-047/modules.d/90dmsquash-live/dmsquash-generator.sh dracut-047.new/modules.d/90dmsquash-live/dmsquash-generator.sh
+--- dracut-047/modules.d/90dmsquash-live/dmsquash-generator.sh 2018-02-19 10:00:33.000000000 +0100
++++ dracut-047.new/modules.d/90dmsquash-live/dmsquash-generator.sh 2018-04-03 09:27:39.770986599 +0200
+@@ -78,5 +78,4 @@
+ {
+ echo "[Unit]"
+ echo "JobTimeoutSec=3000"
+- echo "JobRunningTimeoutSec=3000"
+ } > "$GENERATOR_DIR/$_dev.device.d/timeout.conf"
+diff -Naur dracut-047/modules.d/90livenet/livenet-generator.sh dracut-047.new/modules.d/90livenet/livenet-generator.sh
+--- dracut-047/modules.d/90livenet/livenet-generator.sh 2018-02-19 10:00:33.000000000 +0100
++++ dracut-047.new/modules.d/90livenet/livenet-generator.sh 2018-04-03 09:27:47.559986347 +0200
+@@ -57,5 +57,4 @@
+ {
+ echo "[Unit]"
+ echo "JobTimeoutSec=3000"
+- echo "JobRunningTimeoutSec=3000"
+ } > "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d/timeout.conf"
+diff -Naur dracut-047/modules.d/98dracut-systemd/rootfs-generator.sh dracut-047.new/modules.d/98dracut-systemd/rootfs-generator.sh
+--- dracut-047/modules.d/98dracut-systemd/rootfs-generator.sh 2018-02-19 10:00:33.000000000 +0100
++++ dracut-047.new/modules.d/98dracut-systemd/rootfs-generator.sh 2018-04-03 09:27:32.335986840 +0200
+@@ -32,7 +32,6 @@
+ {
+ echo "[Unit]"
+ echo "JobTimeoutSec=$_timeout"
+- echo "JobRunningTimeoutSec=$_timeout"
+ } > "$GENERATOR_DIR"/${_name}.device.d/timeout.conf
+ fi
+ }
+diff -Naur dracut-047/modules.d/99base/dracut-lib.sh dracut-047.new/modules.d/99base/dracut-lib.sh
+--- dracut-047/modules.d/99base/dracut-lib.sh 2018-02-19 10:00:33.000000000 +0100
++++ dracut-047.new/modules.d/99base/dracut-lib.sh 2018-04-03 09:27:21.155987203 +0200
+@@ -938,7 +938,6 @@
+ {
+ echo "[Unit]"
+ echo "JobTimeoutSec=$_timeout"
+- echo "JobRunningTimeoutSec=$_timeout"
+ } > ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
+ type mark_hostonly >/dev/null 2>&1 && mark_hostonly /etc/systemd/system/${_name}.device.d/timeout.conf
+ _needreload=1
diff --git a/sys-kernel/dracut/files/sort-fixup-creating-early-microcode.patch b/sys-kernel/dracut/files/048-sort-fixup-creating-early-microcode.patch
index 1dc95158..1dc95158 100644
--- a/sys-kernel/dracut/files/sort-fixup-creating-early-microcode.patch
+++ b/sys-kernel/dracut/files/048-sort-fixup-creating-early-microcode.patch
diff --git a/sys-kernel/dracut/files/dracut-044-backport-fix-for-microcode-loading.patch b/sys-kernel/dracut/files/dracut-044-backport-fix-for-microcode-loading.patch
deleted file mode 100644
index a7454d3b..00000000
--- a/sys-kernel/dracut/files/dracut-044-backport-fix-for-microcode-loading.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur a/dracut-functions.sh b/dracut-functions.sh
---- a/dracut-functions.sh 2015-11-25 13:22:28.000000000 +0000
-+++ b/dracut-functions.sh 2018-01-10 06:32:03.255256206 +0000
-@@ -652,7 +652,7 @@
- if [[ "$(get_cpu_vendor)" == "AMD" ]]; then
- # If family greater or equal than 0x15
- if [[ $family -ge 21 ]]; then
-- printf "microcode_amd_fam15h.bin"
-+ printf "microcode_amd_fam%xh.bin" $family
- else
- printf "microcode_amd.bin"
- fi
diff --git a/sys-kernel/dracut/files/dracut-044-bash-4.4.patch b/sys-kernel/dracut/files/dracut-044-bash-4.4.patch
deleted file mode 100644
index 3144c8e6..00000000
--- a/sys-kernel/dracut/files/dracut-044-bash-4.4.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -urN dracut-044.orig/modules.d/50drm/module-setup.sh dracut-044/modules.d/50drm/module-setup.sh
---- dracut-044.orig/modules.d/50drm/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
-+++ dracut-044/modules.d/50drm/module-setup.sh 2016-09-28 02:50:08.914967926 +0300
-@@ -24,9 +24,9 @@
- local _fname _fcont
- while read _fname || [ -n "$_fname" ]; do
- case "$_fname" in
-- *.ko) _fcont="$(< $_fname)" ;;
-- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
-- *.ko.xz) _fcont="$(xz -dc $_fname)" ;;
-+ *.ko) _fcont="$(< $_fname tr -d \\0)" ;;
-+ *.ko.gz) _fcont="$(gzip -dc $_fname | tr -d \\0)" ;;
-+ *.ko.xz) _fcont="$(xz -dc $_fname | tr -d \\0)" ;;
- esac
- [[ $_fcont =~ $_drm_drivers
- && ! $_fcont =~ iw_handler_get_spy ]] \
-diff -urN dracut-044.orig/modules.d/90kernel-modules/module-setup.sh dracut-044/modules.d/90kernel-modules/module-setup.sh
---- dracut-044.orig/modules.d/90kernel-modules/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
-+++ dracut-044/modules.d/90kernel-modules/module-setup.sh 2016-09-28 02:49:11.725390294 +0300
-@@ -10,9 +10,9 @@
- function bmf1() {
- local _f
- while read _f || [ -n "$_f" ]; do case "$_f" in
-- *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;;
-- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
-- *.ko.xz) [[ $(xz -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;;
-+ *.ko) [[ $(< $_f tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;;
-+ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;;
-+ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;;
- esac
- done
- return 0
-diff -urN dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh dracut-044/modules.d/90kernel-network-modules/module-setup.sh
---- dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
-+++ dracut-044/modules.d/90kernel-network-modules/module-setup.sh 2016-09-28 02:51:08.202422231 +0300
-@@ -26,9 +26,9 @@
- while read _fname; do
- [[ $_fname =~ $_unwanted_drivers ]] && continue
- case "$_fname" in
-- *.ko) _fcont="$(< $_fname)" ;;
-- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;;
-- *.ko.xz) _fcont="$(xz -dc $_fname)" ;;
-+ *.ko) _fcont="$(< $_fname tr -d \\0)" ;;
-+ *.ko.gz) _fcont="$(gzip -dc $_fname | tr -d \\0)" ;;
-+ *.ko.xz) _fcont="$(xz -dc $_fname | tr -d \\0)" ;;
- esac
- [[ $_fcont =~ $_net_drivers
- && ! $_fcont =~ iw_handler_get_spy ]] \
-diff -urN dracut-044.orig/modules.d/90multipath/module-setup.sh dracut-044/modules.d/90multipath/module-setup.sh
---- dracut-044.orig/modules.d/90multipath/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
-+++ dracut-044/modules.d/90multipath/module-setup.sh 2016-09-28 02:49:11.726390235 +0300
-@@ -58,9 +58,9 @@
- local _f
- while read _f || [ -n "$_f" ]; do
- case "$_f" in
-- *.ko) [[ $(< $_f) =~ $_funcs ]] && echo "$_f" ;;
-- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
-- *.ko.xz) [[ $(xz -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
-+ *.ko) [[ $(< $_f tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
-+ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
-+ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
- esac
- done
- return 0
-diff -urN dracut-044.orig/modules.d/95iscsi/module-setup.sh dracut-044/modules.d/95iscsi/module-setup.sh
---- dracut-044.orig/modules.d/95iscsi/module-setup.sh 2015-11-25 16:22:28.000000000 +0300
-+++ dracut-044/modules.d/95iscsi/module-setup.sh 2016-09-28 02:49:11.726390235 +0300
-@@ -168,9 +168,9 @@
- local _f
- while read _f || [ -n "$_f" ]; do
- case "$_f" in
-- *.ko) [[ $(< $_f) =~ $_funcs ]] && echo "$_f" ;;
-- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
-- *.ko.xz) [[ $(xz -dc <$_f) =~ $_funcs ]] && echo "$_f" ;;
-+ *.ko) [[ $(< $_f tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
-+ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
-+ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;;
- esac
- done
- return 0
diff --git a/sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch b/sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch
deleted file mode 100644
index dad12c9b..00000000
--- a/sys-kernel/dracut/files/dracut-044-ext4-and-f2fs-need-crc32X-too.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -Naur dracut-044/modules.d/99fs-lib/module-setup.sh dracut-044-p/modules.d/99fs-lib/module-setup.sh
---- dracut-044/modules.d/99fs-lib/module-setup.sh 2015-11-25 14:22:28.000000000 +0100
-+++ dracut-044-p/modules.d/99fs-lib/module-setup.sh 2018-04-26 16:30:19.960345610 +0200
-@@ -38,20 +38,23 @@
- include_fs_helper_modules() {
- local dev=$1 fs=$2
- case "$fs" in
-- xfs|btrfs)
-+ xfs|btrfs|ext4)
- instmods crc32c
- ;;
-+ f2fs)
-+ instmods crc32
-+ ;;
- esac
- }
-
- # called by dracut
- installkernel() {
-- # xfs and btrfs needs crc32c...
-+ # xfs, btrfs , ext4, f2fs needs crc32c / crc32
- if [[ $hostonly ]]; then
- for_each_host_dev_fs include_fs_helper_modules
- :
- else
-- instmods crc32c
-+ instmods crc32c crc32
- fi
- }
-
diff --git a/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch b/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch
deleted file mode 100644
index 3146d848..00000000
--- a/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 61c761bc2c35fb244d46fbbde97161f5927071dc Mon Sep 17 00:00:00 2001
-From: Stefan Berger <stefanb@us.ibm.com>
-Date: Tue, 25 Oct 2016 15:09:49 -0400
-Subject: [PATCH] dracut-install: preserve extended attributes when copying
- files
-
-Preserve extended attributes when copying files using dracut-install.
-
-The copying of extended attributes avoids file execution denials when
-the Linux Integrity Measurement's Appraisal mode is active. In that mode
-executables need their file signatures copied. In particular, this patch
-solves the problem that dependent libaries are not included in the
-initramfs since the copied programs could not be executed due to missing
-signatures. The following audit record shows the type of failure that
-is now prevented:
-
-type=INTEGRITY_DATA msg=audit(1477409025.492:30065): pid=922 uid=0
- auid=4294967295 ses=4294967295
- subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- op="appraise_data" cause="IMA-signature-required"
- comm="ld-linux-x86-64"
- name="/var/tmp/dracut.R6ySa4/initramfs/usr/bin/journalctl"
- dev="dm-0" ino=37136 res=0
-
-Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
----
- install/dracut-install.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/install/dracut-install.c b/install/dracut-install.c
-index fe30bba..c0f1c17 100644
---- a/install/dracut-install.c
-+++ b/install/dracut-install.c
-@@ -294,7 +294,7 @@ static int cp(const char *src, const char *dst)
- normal_copy:
- pid = fork();
- if (pid == 0) {
-- execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps", "-fL", src, dst,
-+ execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps,xattr", "-fL", src, dst,
- NULL);
- _exit(EXIT_FAILURE);
- }
-@@ -302,7 +302,7 @@ static int cp(const char *src, const char *dst)
- while (waitpid(pid, &ret, 0) < 0) {
- if (errno != EINTR) {
- ret = -1;
-- log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps -fL %s %s", src,
-+ log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps,xattr -fL %s %s", src,
- dst);
- break;
- }