import coreos-installer-0.9.1-17.el8
This commit is contained in:
commit
f00e882a96
2
.coreos-installer.metadata
Normal file
2
.coreos-installer.metadata
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
9ad623e572641316d7bdb51e11e136713b019bfa SOURCES/coreos-installer-0.9.1-vendor.tar.gz
|
||||||
|
147efc72c044194209d686b78d62e3acbc761763 SOURCES/coreos-installer-0.9.1.crate
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/coreos-installer-0.9.1-vendor.tar.gz
|
||||||
|
SOURCES/coreos-installer-0.9.1.crate
|
114
SOURCES/coidracut.patch
Normal file
114
SOURCES/coidracut.patch
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
diff --git a/dracut/50rdcore/module-setup.sh b/dracut/50rdcore/module-setup.sh
|
||||||
|
index 27a2ac3..443b5cf 100755
|
||||||
|
--- a/dracut/50rdcore/module-setup.sh
|
||||||
|
+++ b/dracut/50rdcore/module-setup.sh
|
||||||
|
@@ -1,5 +1,47 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
+install_and_enable_unit() {
|
||||||
|
+ unit="$1"; shift
|
||||||
|
+ target="$1"; shift
|
||||||
|
+ inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit"
|
||||||
|
+ # note we `|| exit 1` here so we error out if e.g. the units are missing
|
||||||
|
+ # see https://github.com/coreos/fedora-coreos-config/issues/799
|
||||||
|
+ systemctl -q --root="$initdir" add-requires "$target" "$unit" || exit 1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
install() {
|
||||||
|
inst_simple "$moddir/rdcore" "/usr/bin/rdcore"
|
||||||
|
+
|
||||||
|
+ inst_simple "$moddir/coreos-installer" "/usr/bin/coreos-installer"
|
||||||
|
+
|
||||||
|
+ inst_simple "$moddir/coreos-installer-generator" \
|
||||||
|
+ "$systemdutildir/system-generators/coreos-installer-generator"
|
||||||
|
+
|
||||||
|
+ inst_script "$moddir/coreos-installer-service" \
|
||||||
|
+ "/usr/libexec/coreos-installer-service"
|
||||||
|
+
|
||||||
|
+ inst_script "$moddir/coreos-installer-disable-device-auto-activation" \
|
||||||
|
+ "/usr/libexec/coreos-installer-disable-device-auto-activation"
|
||||||
|
+
|
||||||
|
+ install_and_enable_unit "coreos-installer.service" \
|
||||||
|
+ "default.target"
|
||||||
|
+
|
||||||
|
+ install_and_enable_unit "coreos-installer-reboot.service" \
|
||||||
|
+ "default.target"
|
||||||
|
+
|
||||||
|
+# install_and_enable_unit "coreos-installer-noreboot.service" \
|
||||||
|
+# "basic.target"
|
||||||
|
+# inst_simple "$moddir/coreos-installer-reboot.service" \
|
||||||
|
+# "$systemdsystemunitdir/coreos-installer-reboot.service"
|
||||||
|
+# inst_simple "$moddir/coreos-installer-noreboot.service" \
|
||||||
|
+# "$systemdsystemunitdir/coreos-installer-noreboot.service"
|
||||||
|
+#
|
||||||
|
+# inst_simple "$moddir/coreos-installer.target" \
|
||||||
|
+# "$systemdsystemunitdir/coreos-installer.target"
|
||||||
|
+#
|
||||||
|
+# inst_simple "$moddir/coreos-installer-pre.target" \
|
||||||
|
+# "$systemdsystemunitdir/coreos-installer-pre.target"
|
||||||
|
+#
|
||||||
|
+# inst_simple "$moddir/coreos-installer-post.target" \
|
||||||
|
+# "$systemdsystemunitdir/coreos-installer-post.target"
|
||||||
|
}
|
||||||
|
diff --git a/systemd/coreos-installer-generator b/systemd/coreos-installer-generator
|
||||||
|
index 804d045..b2bcaec 100755
|
||||||
|
--- a/systemd/coreos-installer-generator
|
||||||
|
+++ b/systemd/coreos-installer-generator
|
||||||
|
@@ -30,11 +30,11 @@ karg_bool() {
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -n "$(karg coreos.inst.install_dev)" ]; then
|
||||||
|
- ln -sf "/usr/lib/systemd/system/coreos-installer-post.target" \
|
||||||
|
- "${UNIT_DIR}/default.target"
|
||||||
|
+# ln -sf "/usr/lib/systemd/system/coreos-installer-post.target" \
|
||||||
|
+# "${UNIT_DIR}/basic.target"
|
||||||
|
|
||||||
|
# Create precondition for coreos-installer-reboot.service if requested
|
||||||
|
if ! karg_bool coreos.inst.skip_reboot; then
|
||||||
|
- touch /run/coreos-installer-reboot
|
||||||
|
+ > /run/coreos-installer-reboot
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
diff --git a/systemd/coreos-installer-reboot.service b/systemd/coreos-installer-reboot.service
|
||||||
|
index 18fdb4b..ad79614 100644
|
||||||
|
--- a/systemd/coreos-installer-reboot.service
|
||||||
|
+++ b/systemd/coreos-installer-reboot.service
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Reboot after CoreOS Installer
|
||||||
|
-Requires=coreos-installer.target
|
||||||
|
-After=coreos-installer.target
|
||||||
|
+#Requires=coreos-installer.target
|
||||||
|
+After=coreos-installer.service
|
||||||
|
OnFailure=emergency.target
|
||||||
|
OnFailureJobMode=replace-irreversibly
|
||||||
|
ConditionPathExists=/run/coreos-installer-reboot
|
||||||
|
diff --git a/systemd/coreos-installer.service b/systemd/coreos-installer.service
|
||||||
|
index 5e222f2..716b783 100644
|
||||||
|
--- a/systemd/coreos-installer.service
|
||||||
|
+++ b/systemd/coreos-installer.service
|
||||||
|
@@ -1,12 +1,20 @@
|
||||||
|
[Unit]
|
||||||
|
Description=CoreOS Installer
|
||||||
|
-Before=coreos-installer.target
|
||||||
|
-After=network-online.target
|
||||||
|
-Wants=network-online.target
|
||||||
|
+#Before=coreos-installer.target
|
||||||
|
+#After=nm-run.service
|
||||||
|
+#After=network-online.target
|
||||||
|
+#Wants=network-online.target
|
||||||
|
# Until we retry HTTP requests let's wait here until
|
||||||
|
# systemd-resolved comes up if enabled.
|
||||||
|
# https://github.com/coreos/coreos-installer/issues/283
|
||||||
|
-After=systemd-resolved.service
|
||||||
|
+#After=systemd-resolved.service
|
||||||
|
+
|
||||||
|
+After=basic.target
|
||||||
|
+# Network is enabled here
|
||||||
|
+After=nm-run.service
|
||||||
|
+# compat: remove when everyone is on dracut 053+
|
||||||
|
+After=dracut-initqueue.service
|
||||||
|
+
|
||||||
|
ConditionKernelCommandLine=coreos.inst.install_dev
|
||||||
|
OnFailure=emergency.target
|
||||||
|
OnFailureJobMode=replace-irreversibly
|
27
SOURCES/coidracut2.patch
Normal file
27
SOURCES/coidracut2.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
diff --git a/dracut/50rdcore/module-setup.sh b/dracut/50rdcore/module-setup.sh
|
||||||
|
index 443b5cf..c065851 100755
|
||||||
|
--- a/dracut/50rdcore/module-setup.sh
|
||||||
|
+++ b/dracut/50rdcore/module-setup.sh
|
||||||
|
@@ -10,6 +10,10 @@ install_and_enable_unit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
+ inst_multiple gpg
|
||||||
|
+ inst_multiple gpg-agent
|
||||||
|
+ inst_multiple gpg-connect-agent
|
||||||
|
+
|
||||||
|
inst_simple "$moddir/rdcore" "/usr/bin/rdcore"
|
||||||
|
|
||||||
|
inst_simple "$moddir/coreos-installer" "/usr/bin/coreos-installer"
|
||||||
|
diff --git a/scripts/coreos-installer-service b/scripts/coreos-installer-service
|
||||||
|
index 347b5f5..239de3a 100755
|
||||||
|
--- a/scripts/coreos-installer-service
|
||||||
|
+++ b/scripts/coreos-installer-service
|
||||||
|
@@ -87,6 +87,7 @@ fi
|
||||||
|
|
||||||
|
# Other args that should just be copied over
|
||||||
|
copy_arg coreos.inst.image_url --image-url
|
||||||
|
+copy_arg coreos.inst.image_file --image-file
|
||||||
|
copy_arg coreos.inst.platform_id --platform
|
||||||
|
copy_arg coreos.inst.stream --stream
|
||||||
|
copy_arg coreos.inst.save_partlabel --save-partlabel
|
246
SOURCES/coidracut3.patch
Normal file
246
SOURCES/coidracut3.patch
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
diff --git a/dracut/50rdcore/module-setup.sh b/dracut/50rdcore/module-setup.sh
|
||||||
|
index c065851..2d689d9 100755
|
||||||
|
--- a/dracut/50rdcore/module-setup.sh
|
||||||
|
+++ b/dracut/50rdcore/module-setup.sh
|
||||||
|
@@ -14,6 +14,48 @@ install() {
|
||||||
|
inst_multiple gpg-agent
|
||||||
|
inst_multiple gpg-connect-agent
|
||||||
|
|
||||||
|
+ inst_multiple \
|
||||||
|
+ realpath \
|
||||||
|
+ basename \
|
||||||
|
+ blkid \
|
||||||
|
+ cat \
|
||||||
|
+ dirname \
|
||||||
|
+ findmnt \
|
||||||
|
+ growpart \
|
||||||
|
+ realpath \
|
||||||
|
+ resize2fs \
|
||||||
|
+ tail \
|
||||||
|
+ tune2fs \
|
||||||
|
+ touch \
|
||||||
|
+ xfs_admin \
|
||||||
|
+ xfs_growfs \
|
||||||
|
+ wc \
|
||||||
|
+ lsblk \
|
||||||
|
+ wipefs
|
||||||
|
+
|
||||||
|
+ inst_multiple \
|
||||||
|
+ awk \
|
||||||
|
+ cat \
|
||||||
|
+ dd \
|
||||||
|
+ grep \
|
||||||
|
+ mktemp \
|
||||||
|
+ partx \
|
||||||
|
+ rm \
|
||||||
|
+ sed \
|
||||||
|
+ sfdisk \
|
||||||
|
+ sgdisk \
|
||||||
|
+ find
|
||||||
|
+
|
||||||
|
+ inst_multiple -o \
|
||||||
|
+ clevis-encrypt-sss \
|
||||||
|
+ clevis-encrypt-tang \
|
||||||
|
+ clevis-encrypt-tpm2 \
|
||||||
|
+ clevis-luks-bind \
|
||||||
|
+ clevis-luks-common-functions \
|
||||||
|
+ clevis-luks-unlock \
|
||||||
|
+ pwmake \
|
||||||
|
+ tpm2_create
|
||||||
|
+
|
||||||
|
inst_simple "$moddir/rdcore" "/usr/bin/rdcore"
|
||||||
|
|
||||||
|
inst_simple "$moddir/coreos-installer" "/usr/bin/coreos-installer"
|
||||||
|
@@ -33,19 +75,8 @@ install() {
|
||||||
|
install_and_enable_unit "coreos-installer-reboot.service" \
|
||||||
|
"default.target"
|
||||||
|
|
||||||
|
-# install_and_enable_unit "coreos-installer-noreboot.service" \
|
||||||
|
-# "basic.target"
|
||||||
|
-# inst_simple "$moddir/coreos-installer-reboot.service" \
|
||||||
|
-# "$systemdsystemunitdir/coreos-installer-reboot.service"
|
||||||
|
-# inst_simple "$moddir/coreos-installer-noreboot.service" \
|
||||||
|
-# "$systemdsystemunitdir/coreos-installer-noreboot.service"
|
||||||
|
-#
|
||||||
|
-# inst_simple "$moddir/coreos-installer.target" \
|
||||||
|
-# "$systemdsystemunitdir/coreos-installer.target"
|
||||||
|
-#
|
||||||
|
-# inst_simple "$moddir/coreos-installer-pre.target" \
|
||||||
|
-# "$systemdsystemunitdir/coreos-installer-pre.target"
|
||||||
|
-#
|
||||||
|
-# inst_simple "$moddir/coreos-installer-post.target" \
|
||||||
|
-# "$systemdsystemunitdir/coreos-installer-post.target"
|
||||||
|
+ install_and_enable_unit "growfs.service" \
|
||||||
|
+ "default.target"
|
||||||
|
+ inst_script "$moddir/growfs" \
|
||||||
|
+ /usr/sbin/growfs
|
||||||
|
}
|
||||||
|
diff --git a/scripts/growfs b/scripts/growfs
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..45c495c
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/scripts/growfs
|
||||||
|
@@ -0,0 +1,100 @@
|
||||||
|
+#!/bin/bash
|
||||||
|
+set -euo pipefail
|
||||||
|
+
|
||||||
|
+# This script grows the root
|
||||||
|
+
|
||||||
|
+sleep 5
|
||||||
|
+udevadm settle
|
||||||
|
+TYPE=$(lsblk --output FSTYPE /dev/disk/by-label/root | tail -n1)
|
||||||
|
+echo ${TYPE}
|
||||||
|
+dev=$(realpath /dev/disk/by-label/root)
|
||||||
|
+
|
||||||
|
+mount -t ${TYPE} /dev/disk/by-label/root /sysroot
|
||||||
|
+
|
||||||
|
+# We run after the rootfs is mounted at /sysroot
|
||||||
|
+path=/sysroot
|
||||||
|
+
|
||||||
|
+# The use of tail is to avoid errors from duplicate mounts;
|
||||||
|
+# this shouldn't happen for us but we're being conservative.
|
||||||
|
+src=$(findmnt -nvr -o SOURCE "$path" | tail -n1)
|
||||||
|
+
|
||||||
|
+partition=$(realpath /dev/disk/by-label/root)
|
||||||
|
+
|
||||||
|
+# Go through each blockdev in the hierarchy and verify we know how to grow them
|
||||||
|
+lsblk -no TYPE "${partition}" | while read dev; do
|
||||||
|
+ case "${dev}" in
|
||||||
|
+ part|crypt) ;;
|
||||||
|
+ *) echo "error: Unsupported blockdev type ${dev}" 1>&2; exit 1 ;;
|
||||||
|
+ esac
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
+# Get the filesystem type before extending the partition. This matters
|
||||||
|
+# because the partition, once extended, might include leftover superblocks
|
||||||
|
+# from the previous contents of the disk (notably ZFS), causing blkid to
|
||||||
|
+eval $(blkid -o export "${src}")
|
||||||
|
+
|
||||||
|
+ROOTFS_TYPE=${TYPE:-}
|
||||||
|
+case "${ROOTFS_TYPE}" in
|
||||||
|
+ xfs|ext4|btrfs) ;;
|
||||||
|
+ *) echo "error: Unsupported filesystem for ${path}: '${ROOTFS_TYPE}'" 1>&2; exit 1 ;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
+# Now, go through the hierarchy, growing everything. Note we go one device at a
|
||||||
|
+# time using --nodeps, because ordering is buggy in el8:
|
||||||
|
+# https://bugzilla.redhat.com/show_bug.cgi?id=1940607
|
||||||
|
+current_blkdev=${partition}
|
||||||
|
+while true; do
|
||||||
|
+ eval "$(lsblk --paths --nodeps --pairs -o NAME,TYPE,PKNAME "${current_blkdev}")"
|
||||||
|
+ MAJMIN=$(echo $(lsblk -dno MAJ:MIN "${NAME}"))
|
||||||
|
+ case "${TYPE}" in
|
||||||
|
+ part)
|
||||||
|
+ eval $(udevadm info --query property --export "${current_blkdev}" | grep ^DM_ || :)
|
||||||
|
+ if [ -n "${DM_MPATH:-}" ]; then
|
||||||
|
+ # Since growpart does not understand device mapper, we have to use sfdisk.
|
||||||
|
+ echo ", +" | sfdisk --no-reread --no-tell-kernel --force -N "${DM_PART}" "/dev/mapper/${DM_MPATH}"
|
||||||
|
+ udevadm settle # Wait for udev-triggered kpartx to update mappings
|
||||||
|
+ else
|
||||||
|
+ partnum=$(cat "/sys/dev/block/${MAJMIN}/partition")
|
||||||
|
+ # XXX: ideally this'd be idempotent and we wouldn't `|| :`
|
||||||
|
+ growpart "${PKNAME}" "${partnum}" || :
|
||||||
|
+ fi
|
||||||
|
+ ;;
|
||||||
|
+ crypt)
|
||||||
|
+ # XXX: yuck... we need to expose this sanely in clevis
|
||||||
|
+ (. /usr/bin/clevis-luks-common-functions
|
||||||
|
+ eval $(udevadm info --query=property --export "${NAME}")
|
||||||
|
+ # lsblk doesn't print PKNAME of crypt devices with --nodeps
|
||||||
|
+ PKNAME=/dev/$(ls "/sys/dev/block/${MAJMIN}/slaves")
|
||||||
|
+ clevis_luks_unlock_device "${PKNAME}" | cryptsetup resize -d- "${DM_NAME}"
|
||||||
|
+ )
|
||||||
|
+ ;;
|
||||||
|
+ # already checked
|
||||||
|
+ *) echo "unreachable" 1>&2; exit 1 ;;
|
||||||
|
+ esac
|
||||||
|
+ holders="/sys/dev/block/${MAJMIN}/holders"
|
||||||
|
+ [ -d "${holders}" ] || break
|
||||||
|
+ nholders="$(ls "${holders}" | wc -l)"
|
||||||
|
+ if [ "${nholders}" -eq 0 ]; then
|
||||||
|
+ break
|
||||||
|
+ elif [ "${nholders}" -gt 1 ]; then
|
||||||
|
+ # this shouldn't happen since we've checked the partition types already
|
||||||
|
+ echo "error: Unsupported block device with multiple children: ${NAME}" 1>&2
|
||||||
|
+ exit 1
|
||||||
|
+ fi
|
||||||
|
+ current_blkdev=/dev/$(ls "${holders}")
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
+# Wipe any filesystem signatures from the extended partition that don't
|
||||||
|
+# correspond to the FS type we detected earlier.
|
||||||
|
+wipefs -af -t "no${ROOTFS_TYPE}" "${src}"
|
||||||
|
+
|
||||||
|
+# TODO: Add XFS to https://github.com/systemd/systemd/blob/master/src/partition/growfs.c
|
||||||
|
+# and use it instead.
|
||||||
|
+case "${ROOTFS_TYPE}" in
|
||||||
|
+ xfs) xfs_growfs "${path}" ;;
|
||||||
|
+ ext4) resize2fs "${src}" ;;
|
||||||
|
+ btrfs) btrfs filesystem resize max ${path} ;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
+# this is useful for tests
|
||||||
|
+touch /run/growfs.stamp
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/src/blockdev.rs b/src/blockdev.rs
|
||||||
|
index f9701b9..2fdd6f0 100644
|
||||||
|
--- a/src/blockdev.rs
|
||||||
|
+++ b/src/blockdev.rs
|
||||||
|
@@ -970,7 +970,7 @@ pub fn udev_settle() -> Result<()> {
|
||||||
|
// udevd hasn't yet received updates from the kernel, settle will return
|
||||||
|
// immediately, and lsblk won't pick up partition labels. Try to sleep
|
||||||
|
// our way out of this.
|
||||||
|
- sleep(Duration::from_millis(200));
|
||||||
|
+ sleep(Duration::from_millis(500));
|
||||||
|
|
||||||
|
runcmd!("udevadm", "settle")?;
|
||||||
|
Ok(())
|
||||||
|
diff --git a/systemd/coreos-installer-reboot.service b/systemd/coreos-installer-reboot.service
|
||||||
|
index ad79614..f9ba80e 100644
|
||||||
|
--- a/systemd/coreos-installer-reboot.service
|
||||||
|
+++ b/systemd/coreos-installer-reboot.service
|
||||||
|
@@ -1,6 +1,5 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Reboot after CoreOS Installer
|
||||||
|
-#Requires=coreos-installer.target
|
||||||
|
After=coreos-installer.service
|
||||||
|
OnFailure=emergency.target
|
||||||
|
OnFailureJobMode=replace-irreversibly
|
||||||
|
diff --git a/systemd/coreos-installer.service b/systemd/coreos-installer.service
|
||||||
|
index 716b783..e8199a9 100644
|
||||||
|
--- a/systemd/coreos-installer.service
|
||||||
|
+++ b/systemd/coreos-installer.service
|
||||||
|
@@ -1,13 +1,5 @@
|
||||||
|
[Unit]
|
||||||
|
Description=CoreOS Installer
|
||||||
|
-#Before=coreos-installer.target
|
||||||
|
-#After=nm-run.service
|
||||||
|
-#After=network-online.target
|
||||||
|
-#Wants=network-online.target
|
||||||
|
-# Until we retry HTTP requests let's wait here until
|
||||||
|
-# systemd-resolved comes up if enabled.
|
||||||
|
-# https://github.com/coreos/coreos-installer/issues/283
|
||||||
|
-#After=systemd-resolved.service
|
||||||
|
|
||||||
|
After=basic.target
|
||||||
|
# Network is enabled here
|
||||||
|
diff --git a/systemd/growfs.service b/systemd/growfs.service
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..6d77aaa
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/systemd/growfs.service
|
||||||
|
@@ -0,0 +1,13 @@
|
||||||
|
+[Unit]
|
||||||
|
+Description=Grow root filesystem
|
||||||
|
+DefaultDependencies=false
|
||||||
|
+
|
||||||
|
+After=coreos-installer.service
|
||||||
|
+Before=coreos-installer-reboot.service
|
||||||
|
+Requires=dev-disk-by\x2dlabel-root.device
|
||||||
|
+After=dev-disk-by\x2dlabel-root.device
|
||||||
|
+
|
||||||
|
+[Service]
|
||||||
|
+Type=oneshot
|
||||||
|
+ExecStart=/usr/sbin/growfs
|
||||||
|
+RemainAfterExit=yes
|
||||||
|
\ No newline at end of file
|
80
SOURCES/coidracut4.patch
Normal file
80
SOURCES/coidracut4.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
diff --git a/systemd/coreos-installer-generator b/systemd/coreos-installer-generator
|
||||||
|
index b2bcaec..2b85dc5 100755
|
||||||
|
--- a/systemd/coreos-installer-generator
|
||||||
|
+++ b/systemd/coreos-installer-generator
|
||||||
|
@@ -2,6 +2,8 @@
|
||||||
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
||||||
|
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
||||||
|
|
||||||
|
+command -v getarg >/dev/null || . /usr/lib/dracut-lib.sh
|
||||||
|
+
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Generators don't have logging right now
|
||||||
|
@@ -10,6 +12,14 @@ exec 1>/dev/kmsg; exec 2>&1
|
||||||
|
|
||||||
|
UNIT_DIR="${1:-/tmp}"
|
||||||
|
|
||||||
|
+add_requires() {
|
||||||
|
+ local name="$1"; shift
|
||||||
|
+ local target="$1"; shift
|
||||||
|
+ local requires_dir="${UNIT_DIR}/${target}.requires"
|
||||||
|
+ mkdir -p "${requires_dir}"
|
||||||
|
+ ln -sf "../${name}" "${requires_dir}/${name}"
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
cmdline=( $(</proc/cmdline) )
|
||||||
|
karg() {
|
||||||
|
local name="$1" value="$2"
|
||||||
|
@@ -38,3 +48,38 @@ if [ -n "$(karg coreos.inst.install_dev)" ]; then
|
||||||
|
> /run/coreos-installer-reboot
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
+
|
||||||
|
+add_requires run-media-iso.mount default.target
|
||||||
|
+
|
||||||
|
+isoroot=$(getarg edge.liveiso= ||:)
|
||||||
|
+
|
||||||
|
+mkdir -p /run/media/iso
|
||||||
|
+isosrc=dev/disk/by-label/${isoroot}
|
||||||
|
+isosrc_escaped=$(systemd-escape -p --suffix=device "${isosrc}")
|
||||||
|
+
|
||||||
|
+if [ -n "${isoroot}" ]; then
|
||||||
|
+cat >"${UNIT_DIR}/run-media-iso.mount" <<EOF
|
||||||
|
+# Automatically generated by live-generator
|
||||||
|
+[Unit]
|
||||||
|
+DefaultDependencies=false
|
||||||
|
+# HACK for https://github.com/coreos/fedora-coreos-config/issues/437
|
||||||
|
+Wants=systemd-udev-settle.service
|
||||||
|
+Wants=systemd-udevd.service
|
||||||
|
+After=systemd-udevd.service
|
||||||
|
+After=basic.target
|
||||||
|
+# Network is enabled here
|
||||||
|
+After=nm-run.service
|
||||||
|
+# compat: remove when everyone is on dracut 053+
|
||||||
|
+After=dracut-initqueue.service
|
||||||
|
+
|
||||||
|
+Before=coreos-installer.service
|
||||||
|
+After=${isosrc_escaped}
|
||||||
|
+Requires=${isosrc_escaped}
|
||||||
|
+ConditionKernelCommandLine=coreos.inst.image_file
|
||||||
|
+[Mount]
|
||||||
|
+What=/${isosrc}
|
||||||
|
+Where=/run/media/iso
|
||||||
|
+Options=ro
|
||||||
|
+Type=iso9660
|
||||||
|
+EOF
|
||||||
|
+fi
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/systemd/growfs.service b/systemd/growfs.service
|
||||||
|
index 6d77aaa..fee934d 100644
|
||||||
|
--- a/systemd/growfs.service
|
||||||
|
+++ b/systemd/growfs.service
|
||||||
|
@@ -5,7 +5,6 @@ DefaultDependencies=false
|
||||||
|
After=coreos-installer.service
|
||||||
|
Before=coreos-installer-reboot.service
|
||||||
|
Requires=dev-disk-by\x2dlabel-root.device
|
||||||
|
-After=dev-disk-by\x2dlabel-root.device
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
16
SOURCES/coidracut5.patch
Normal file
16
SOURCES/coidracut5.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
diff --git a/systemd/coreos-installer-generator b/systemd/coreos-installer-generator
|
||||||
|
index 2b85dc5..75ab3c3 100755
|
||||||
|
--- a/systemd/coreos-installer-generator
|
||||||
|
+++ b/systemd/coreos-installer-generator
|
||||||
|
@@ -39,6 +39,11 @@ karg_bool() {
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
+# if we're not running in dracut, skip
|
||||||
|
+if [ -z "$(karg edge.liveiso)" ]; then
|
||||||
|
+ exit 0
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
if [ -n "$(karg coreos.inst.install_dev)" ]; then
|
||||||
|
# ln -sf "/usr/lib/systemd/system/coreos-installer-post.target" \
|
||||||
|
# "${UNIT_DIR}/basic.target"
|
11
SOURCES/disable-lto-0.6.0.patch
Normal file
11
SOURCES/disable-lto-0.6.0.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- coreos-installer-0.6.0/Cargo.toml.orig 2020-09-02 17:43:05.348336989 -0400
|
||||||
|
+++ coreos-installer-0.6.0/Cargo.toml 2020-09-02 17:43:12.092348561 -0400
|
||||||
|
@@ -26,8 +26,6 @@
|
||||||
|
pre-release-commit-message = "cargo: coreos-installer release {{version}}"
|
||||||
|
sign-commit = true
|
||||||
|
tag-message = "coreos-installer v{{version}}"
|
||||||
|
-[profile.release]
|
||||||
|
-lto = true
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "libcoreinst"
|
10
SOURCES/enable-rdcore.patch
Normal file
10
SOURCES/enable-rdcore.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- coreos-installer-0.9.1/Cargo.toml 2021-05-14T03:33:33+00:00
|
||||||
|
+++ coreos-installer-0.9.1/Cargo.toml 2021-05-17T14:08:34.787109+00:00
|
||||||
|
@@ -120,6 +120,7 @@
|
||||||
|
version = "^1.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
+default = ["rdcore"]
|
||||||
|
rdcore = []
|
||||||
|
[target."cfg(target_arch = \"s390x\")".dependencies.mbrman]
|
||||||
|
version = ">= 0.3, < 0.5"
|
26
SOURCES/force_persist_ip-0.9.1.patch
Normal file
26
SOURCES/force_persist_ip-0.9.1.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From d3ecd9b240203b8e1eaa47bc62c2976a25ed3994 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dusty Mabe <dusty@dustymabe.com>
|
||||||
|
Date: Mon, 7 Jun 2021 18:53:29 -0400
|
||||||
|
Subject: [PATCH] add coreos.force_persist_ip to list of persisted dracut args
|
||||||
|
|
||||||
|
xref: https://github.com/coreos/fedora-coreos-config/pull/1045
|
||||||
|
---
|
||||||
|
scripts/coreos-installer-service | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/coreos-installer-service b/scripts/coreos-installer-service
|
||||||
|
index ff9ff5f..347b5f5 100755
|
||||||
|
--- a/scripts/coreos-installer-service
|
||||||
|
+++ b/scripts/coreos-installer-service
|
||||||
|
@@ -8,7 +8,7 @@ PERSIST_KERNEL_NET_PARAMS=("ipv6.disable" "net.ifnames" "net.naming-scheme")
|
||||||
|
# Dracut networking params to persist
|
||||||
|
# Everything other than rd.neednet.
|
||||||
|
# List from https://www.mankier.com/7/dracut.cmdline#Description-Network
|
||||||
|
-PERSIST_DRACUT_NET_PARAMS=("ip" "ifname" "rd.route" "bootdev" "BOOTIF" "rd.bootif" "nameserver" "rd.peerdns" "biosdevname" "vlan" "bond" "team" "bridge" "rd.net.timeout.carrier" "coreos.no_persist_ip")
|
||||||
|
+PERSIST_DRACUT_NET_PARAMS=("ip" "ifname" "rd.route" "bootdev" "BOOTIF" "rd.bootif" "nameserver" "rd.peerdns" "biosdevname" "vlan" "bond" "team" "bridge" "rd.net.timeout.carrier" "coreos.no_persist_ip" "coreos.force_persist_ip")
|
||||||
|
|
||||||
|
# IBM S390X params to persist
|
||||||
|
PERSIST_S390X_PARAMS=("rd.dasd" "rd.zfcp" "rd.znet" "zfcp.allow_lun_scan" "cio_ignore")
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
166
SOURCES/s390x-support-virtio-dasd-0.9.1.patch
Normal file
166
SOURCES/s390x-support-virtio-dasd-0.9.1.patch
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
From c4fabc7c801491019263523df3c9078cca99bb6e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nikita Dubrovskii <nikita@linux.ibm.com>
|
||||||
|
Date: Wed, 2 Jun 2021 14:27:42 +0200
|
||||||
|
Subject: [PATCH] s390: add support for virtio dasds
|
||||||
|
|
||||||
|
This is a fix for https://bugzilla.redhat.com/show_bug.cgi?id=1960485
|
||||||
|
|
||||||
|
Signed-off-by: Nikita Dubrovskii <nikita@linux.ibm.com>
|
||||||
|
---
|
||||||
|
src/blockdev.rs | 30 ++++++++++++++++++++++++++++--
|
||||||
|
src/cmdline.rs | 2 +-
|
||||||
|
src/install.rs | 6 +++---
|
||||||
|
src/s390x/dasd.rs | 15 +++++++++++----
|
||||||
|
4 files changed, 43 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/blockdev.rs b/src/blockdev.rs
|
||||||
|
index 90c6bee..df8e10a 100644
|
||||||
|
--- a/src/blockdev.rs
|
||||||
|
+++ b/src/blockdev.rs
|
||||||
|
@@ -970,10 +970,36 @@ pub fn detect_formatted_sector_size(buf: &[u8]) -> Option<NonZeroU32> {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Checks if underlying device is IBM DASD disk
|
||||||
|
-pub fn is_dasd(device: &str) -> Result<bool> {
|
||||||
|
+pub fn is_dasd(device: &str, fd: Option<&mut File>) -> Result<bool> {
|
||||||
|
let target =
|
||||||
|
canonicalize(device).with_context(|| format!("getting absolute path to {}", device))?;
|
||||||
|
- Ok(target.to_string_lossy().starts_with("/dev/dasd"))
|
||||||
|
+ if target.to_string_lossy().starts_with("/dev/dasd") {
|
||||||
|
+ return Ok(true);
|
||||||
|
+ }
|
||||||
|
+ let read_magic = |device: &str, disk: &mut File| -> Result<[u8; 4]> {
|
||||||
|
+ let offset = disk
|
||||||
|
+ .seek(SeekFrom::Current(0))
|
||||||
|
+ .with_context(|| format!("saving offset {}", device))?;
|
||||||
|
+ disk.seek(SeekFrom::Start(8194))
|
||||||
|
+ .with_context(|| format!("seeking {}", device))?;
|
||||||
|
+ let mut lbl = [0u8; 4];
|
||||||
|
+ disk.read_exact(&mut lbl)
|
||||||
|
+ .with_context(|| format!("reading label {}", device))?;
|
||||||
|
+ disk.seek(SeekFrom::Start(offset))
|
||||||
|
+ .with_context(|| format!("restoring offset {}", device))?;
|
||||||
|
+ Ok(lbl)
|
||||||
|
+ };
|
||||||
|
+ if target.to_string_lossy().starts_with("/dev/vd") {
|
||||||
|
+ let cdl_magic = [0xd3, 0xf1, 0xe5, 0xd6];
|
||||||
|
+ let lbl = if let Some(t) = fd {
|
||||||
|
+ read_magic(device, t)?
|
||||||
|
+ } else {
|
||||||
|
+ let mut disk = File::open(device).with_context(|| format!("opening {}", device))?;
|
||||||
|
+ read_magic(device, &mut disk)?
|
||||||
|
+ };
|
||||||
|
+ return Ok(cdl_magic == lbl);
|
||||||
|
+ }
|
||||||
|
+ Ok(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// create unsafe ioctl wrappers
|
||||||
|
diff --git a/src/cmdline.rs b/src/cmdline.rs
|
||||||
|
index db3d1d0..53b8179 100644
|
||||||
|
--- a/src/cmdline.rs
|
||||||
|
+++ b/src/cmdline.rs
|
||||||
|
@@ -853,7 +853,7 @@ fn parse_install(matches: &ArgMatches) -> Result<Config> {
|
||||||
|
// it changes to the recommended 4096
|
||||||
|
// https://bugzilla.redhat.com/show_bug.cgi?id=1905159
|
||||||
|
#[allow(clippy::match_bool, clippy::match_single_binding)]
|
||||||
|
- let sector_size = match is_dasd(&device)
|
||||||
|
+ let sector_size = match is_dasd(&device, None)
|
||||||
|
.with_context(|| format!("checking whether {} is an IBM DASD disk", device))?
|
||||||
|
{
|
||||||
|
#[cfg(target_arch = "s390x")]
|
||||||
|
diff --git a/src/install.rs b/src/install.rs
|
||||||
|
index baa3880..20d1f41 100644
|
||||||
|
--- a/src/install.rs
|
||||||
|
+++ b/src/install.rs
|
||||||
|
@@ -47,7 +47,7 @@ pub fn install(config: &InstallConfig) -> Result<()> {
|
||||||
|
|
||||||
|
#[cfg(target_arch = "s390x")]
|
||||||
|
{
|
||||||
|
- if is_dasd(&config.device)? {
|
||||||
|
+ if is_dasd(&config.device, None)? {
|
||||||
|
if !config.save_partitions.is_empty() {
|
||||||
|
// The user requested partition saving, but SavedPartitions
|
||||||
|
// doesn't understand DASD VTOCs and won't find any partitions
|
||||||
|
@@ -156,7 +156,7 @@ fn write_disk(
|
||||||
|
|
||||||
|
// copy the image
|
||||||
|
#[allow(clippy::match_bool, clippy::match_single_binding)]
|
||||||
|
- let image_copy = match is_dasd(&config.device)? {
|
||||||
|
+ let image_copy = match is_dasd(&config.device, Some(dest))? {
|
||||||
|
#[cfg(target_arch = "s390x")]
|
||||||
|
true => s390x::image_copy_s390x,
|
||||||
|
_ => image_copy_default,
|
||||||
|
@@ -527,7 +527,7 @@ fn reset_partition_table(
|
||||||
|
) -> Result<()> {
|
||||||
|
eprintln!("Resetting partition table");
|
||||||
|
|
||||||
|
- if is_dasd(&config.device)? {
|
||||||
|
+ if is_dasd(&config.device, Some(dest))? {
|
||||||
|
// Don't write out a GPT, since the backup GPT may overwrite
|
||||||
|
// something we're not allowed to touch. Just clear the first MiB
|
||||||
|
// of disk.
|
||||||
|
diff --git a/src/s390x/dasd.rs b/src/s390x/dasd.rs
|
||||||
|
index 7145071..b7dea78 100644
|
||||||
|
--- a/src/s390x/dasd.rs
|
||||||
|
+++ b/src/s390x/dasd.rs
|
||||||
|
@@ -35,13 +35,15 @@ pub(crate) struct Range {
|
||||||
|
pub length: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
-/// There are 2 types of DASD devices:
|
||||||
|
+/// There are 3 types of DASD devices:
|
||||||
|
/// - ECKD (Extended Count Key Data) - is regular DASD of type 3390
|
||||||
|
/// - FBA (Fixed Block Access) - is used for emulated device that represents a real SCSI device
|
||||||
|
+/// - Virt - ECKD on LPAR/zKVM as virtio-device
|
||||||
|
/// Only ECKD disks require `dasdfmt, fdasd` linux tools to be configured.
|
||||||
|
enum DasdType {
|
||||||
|
Eckd,
|
||||||
|
Fba,
|
||||||
|
+ Virt,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_dasd_type<P: AsRef<Path>>(device: P) -> Result<DasdType> {
|
||||||
|
@@ -53,6 +55,9 @@ fn get_dasd_type<P: AsRef<Path>>(device: P) -> Result<DasdType> {
|
||||||
|
.with_context(|| format!("getting name of {}", device.display()))?
|
||||||
|
.to_string_lossy()
|
||||||
|
.to_string();
|
||||||
|
+ if device.starts_with("vd") {
|
||||||
|
+ return Ok(DasdType::Virt);
|
||||||
|
+ }
|
||||||
|
let devtype_path = format!("/sys/class/block/{}/device/devtype", device);
|
||||||
|
let devtype_str = std::fs::read_to_string(&devtype_path)
|
||||||
|
.with_context(|| format!("reading {}", devtype_path))?;
|
||||||
|
@@ -66,7 +71,7 @@ fn get_dasd_type<P: AsRef<Path>>(device: P) -> Result<DasdType> {
|
||||||
|
pub fn prepare_dasd(dasd: &str) -> Result<()> {
|
||||||
|
match get_dasd_type(dasd)? {
|
||||||
|
DasdType::Eckd => eckd_prepare(dasd),
|
||||||
|
- DasdType::Fba => Ok(()),
|
||||||
|
+ DasdType::Fba | DasdType::Virt => Ok(()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -75,7 +80,7 @@ pub fn prepare_dasd(dasd: &str) -> Result<()> {
|
||||||
|
pub fn dasd_try_get_sector_size(dasd: &str) -> Result<Option<NonZeroU32>> {
|
||||||
|
match get_dasd_type(dasd)? {
|
||||||
|
DasdType::Eckd => eckd_try_get_sector_size(dasd),
|
||||||
|
- DasdType::Fba => Ok(None),
|
||||||
|
+ DasdType::Fba | DasdType::Virt => Ok(None),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -87,8 +92,10 @@ pub fn image_copy_s390x(
|
||||||
|
_saved: Option<&SavedPartitions>,
|
||||||
|
) -> Result<()> {
|
||||||
|
let ranges = match get_dasd_type(dest_path)? {
|
||||||
|
- DasdType::Eckd => eckd_make_partitions(&dest_path.to_string_lossy(), dest_file, first_mb)?,
|
||||||
|
DasdType::Fba => fba_make_partitions(&dest_path.to_string_lossy(), dest_file, first_mb)?,
|
||||||
|
+ DasdType::Eckd | DasdType::Virt => {
|
||||||
|
+ eckd_make_partitions(&dest_path.to_string_lossy(), dest_file, first_mb)?
|
||||||
|
+ }
|
||||||
|
};
|
||||||
|
|
||||||
|
// copy each partition
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
223
SPECS/coreos-installer.spec
Normal file
223
SPECS/coreos-installer.spec
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
# Generated by rust2rpm 13
|
||||||
|
%define dracutlibdir %{_prefix}/lib/dracut
|
||||||
|
%bcond_without check
|
||||||
|
%global __cargo_skip_build 0
|
||||||
|
# The library is for internal code reuse and is not a public API
|
||||||
|
%global __cargo_is_lib 0
|
||||||
|
|
||||||
|
%global crate coreos-installer
|
||||||
|
|
||||||
|
Name: %{crate}
|
||||||
|
Version: 0.9.1
|
||||||
|
Release: 17%{?dist}
|
||||||
|
Summary: Installer for Fedora CoreOS and RHEL CoreOS
|
||||||
|
|
||||||
|
# Upstream license specification: Apache-2.0
|
||||||
|
License: ASL 2.0
|
||||||
|
URL: https://github.com/fedora-iot/coreos-installer
|
||||||
|
Source: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{version}.crate
|
||||||
|
Source1: https://github.com/coreos/coreos-installer/releases/download/v%{version}/%{crate}-%{version}-vendor.tar.gz
|
||||||
|
|
||||||
|
# The RHEL 8 rust-toolset macros don't let us enable features from the
|
||||||
|
# %%cargo_* macros. Enable rdcore directly in Cargo.toml.
|
||||||
|
Patch0: enable-rdcore.patch
|
||||||
|
# LTO causes runtime crashes on s390x
|
||||||
|
# https://github.com/coreos/coreos-installer/pull/360
|
||||||
|
# https://github.com/coreos/coreos-installer/issues/372
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1863466
|
||||||
|
Patch1: disable-lto-0.6.0.patch
|
||||||
|
# Add coreos.force_persist_ip karg forwarding
|
||||||
|
# https://github.com/coreos/coreos-installer/pull/554
|
||||||
|
Patch2: force_persist_ip-0.9.1.patch
|
||||||
|
# Support s390x DASDs in VMs via virtio
|
||||||
|
# https://github.com/coreos/coreos-installer/pull/552
|
||||||
|
Patch3: s390x-support-virtio-dasd-0.9.1.patch
|
||||||
|
Patch4: coidracut.patch
|
||||||
|
Patch5: coidracut2.patch
|
||||||
|
Patch6: coidracut3.patch
|
||||||
|
Patch7: coidracut4.patch
|
||||||
|
Patch8: coidracut5.patch
|
||||||
|
|
||||||
|
ExclusiveArch: %{rust_arches}
|
||||||
|
BuildRequires: openssl-devel
|
||||||
|
BuildRequires: rust-toolset
|
||||||
|
BuildRequires: systemd
|
||||||
|
|
||||||
|
Requires: gnupg
|
||||||
|
Requires: kpartx
|
||||||
|
Requires: systemd-udev
|
||||||
|
Requires: util-linux
|
||||||
|
%ifarch s390x
|
||||||
|
# This should eventually be spelled "s390utils-core" but the binaries
|
||||||
|
# haven't been broken out of s390utils-base yet
|
||||||
|
Requires: /usr/sbin/chreipl
|
||||||
|
Requires: /usr/sbin/dasdfmt
|
||||||
|
Requires: /usr/sbin/fdasd
|
||||||
|
Requires: /usr/sbin/lszdev
|
||||||
|
Requires: /usr/sbin/zipl
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Since `rust-coreos-installer` creates a `coreos-installer`
|
||||||
|
# subpackage with a newer version number, which supersedes the
|
||||||
|
# deprecated `coreos-installer` package (https://src.fedoraproject.org/rpms/coreos-installer),
|
||||||
|
# an explicit `Obsoletes:` for `coreos-installer` is not necessary.
|
||||||
|
|
||||||
|
# Obsolete dracut modules as they are not provided in this package.
|
||||||
|
Obsoletes: coreos-installer-dracut < 0.0.1
|
||||||
|
|
||||||
|
%global _description %{expand:
|
||||||
|
coreos-installer installs Fedora CoreOS or RHEL CoreOS to bare-metal
|
||||||
|
machines (or, occasionally, to virtual machines).
|
||||||
|
}
|
||||||
|
%description %{_description}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/coreos-installer
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{crate}-%{version} -p1
|
||||||
|
%cargo_prep -V 1
|
||||||
|
# https://github.com/rust-lang-nursery/error-chain/pull/289
|
||||||
|
find -name '*.rs' -executable -exec chmod a-x {} \;
|
||||||
|
|
||||||
|
%build
|
||||||
|
%cargo_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%cargo_install
|
||||||
|
# Install binaries, dracut modules, units, targets, generators for running via systemd
|
||||||
|
install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore dracut/50rdcore/module-setup.sh
|
||||||
|
install -D -m 0755 -t %{buildroot}%{_libexecdir} scripts/coreos-installer-service
|
||||||
|
install -D -m 0755 -t %{buildroot}%{_libexecdir} scripts/coreos-installer-disable-device-auto-activation
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-disable-device-auto-activation.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-reboot.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-noreboot.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-pre.target
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer.target
|
||||||
|
install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-post.target
|
||||||
|
install -D -m 0755 -t %{buildroot}%{_systemdgeneratordir} systemd/coreos-installer-generator
|
||||||
|
mv %{buildroot}%{_bindir}/rdcore %{buildroot}%{dracutlibdir}/modules.d/50rdcore/
|
||||||
|
cp -a %{buildroot}%{_bindir}/coreos-installer %{buildroot}%{dracutlibdir}/modules.d/50rdcore/
|
||||||
|
install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore scripts/coreos-installer-service
|
||||||
|
install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore scripts/growfs
|
||||||
|
install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore scripts/coreos-installer-disable-device-auto-activation
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer-disable-device-auto-activation.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/growfs.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer-reboot.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer-noreboot.service
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer-pre.target
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer.target
|
||||||
|
install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer-post.target
|
||||||
|
install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore systemd/coreos-installer-generator
|
||||||
|
|
||||||
|
%package -n %{crate}-bootinfra
|
||||||
|
Summary: %{crate} boot-time infrastructure for use on Fedora/RHEL CoreOS
|
||||||
|
Requires: %{crate} = %{version}-%{release}
|
||||||
|
|
||||||
|
# Package was renamed from coreos-installer-systemd when rdcore was added
|
||||||
|
Provides: %{crate}-systemd = %{version}-%{release}
|
||||||
|
Obsoletes: %{crate}-systemd <= 0.3.0-2
|
||||||
|
|
||||||
|
%description -n %{crate}-bootinfra
|
||||||
|
This subpackage contains boot-time infrastructure for Fedora CoreOS and
|
||||||
|
RHEL CoreOS. It is not needed on other platforms.
|
||||||
|
|
||||||
|
%files -n %{crate}-bootinfra
|
||||||
|
%{dracutlibdir}/modules.d/*
|
||||||
|
%{_libexecdir}/*
|
||||||
|
%{_unitdir}/*
|
||||||
|
%{_systemdgeneratordir}/*
|
||||||
|
|
||||||
|
%if %{with check}
|
||||||
|
%check
|
||||||
|
%cargo_test
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Jun 10 2021 Benjamin Gilbert <bgilbert@redhat.com> - 0.9.1-3
|
||||||
|
- Support s390x DASDs in VMs via virtio
|
||||||
|
|
||||||
|
* Tue Jun 08 2021 Dusty Mabe <dustymabe@redhat.com> - 0.9.1-2
|
||||||
|
- Add coreos.force_persist_ip karg forwarding
|
||||||
|
|
||||||
|
* Wed Apr 21 2021 Benjamin Gilbert <bgilbert@redhat.com> - 0.9.0-3
|
||||||
|
- Improve error message for busy disk referenced via symlink
|
||||||
|
- Fix failure on corrupt GPT
|
||||||
|
|
||||||
|
* Fri Apr 9 2021 Sohan Kunkerkar <skunkerk@redhat.com> - 0.9.0-2
|
||||||
|
- Use macro for dracut library path
|
||||||
|
|
||||||
|
* Thu Apr 8 2021 Sohan Kunkerkar <skunkerk@redhat.com> - 0.9.0-1
|
||||||
|
- New release
|
||||||
|
|
||||||
|
* Fri Jan 15 2021 Benjamin Gilbert <bgilbert@redhat.com> - 0.8.0-3
|
||||||
|
- Fix rdcore rootmap on RAID devices
|
||||||
|
|
||||||
|
* Tue Jan 12 2021 Benjamin Gilbert <bgilbert@redhat.com> - 0.8.0-2
|
||||||
|
- Disable LTO again to avoid crashes on s390x
|
||||||
|
|
||||||
|
* Tue Jan 12 2021 Sohan Kunkerkar <skunkerk@redhat.com> - 0.8.0-1
|
||||||
|
- New release
|
||||||
|
|
||||||
|
* Mon Jan 04 2021 Benjamin Gilbert <bgilbert@redhat.com> - 0.7.2-2
|
||||||
|
- Add Requires for programs invoked by coreos-installer
|
||||||
|
- Require Rust >= 1.45, re-enable LTO
|
||||||
|
|
||||||
|
* Thu Oct 22 2020 Sohan Kunkerkar <skunkerk@redhat.com> - 0.7.2-1
|
||||||
|
- New release
|
||||||
|
|
||||||
|
* Mon Sep 21 2020 Benjamin Gilbert <bgilbert@redhat.com> - 0.6.0-3
|
||||||
|
- Fix MBR handling when partition saving is enabled
|
||||||
|
- Fix base package Obsoletes being interpreted as part of package description
|
||||||
|
|
||||||
|
* Wed Sep 02 2020 Benjamin Gilbert <bgilbert@redhat.com> - 0.6.0-2
|
||||||
|
- Disable LTO on s390x to avoid runtime crashes
|
||||||
|
- Drop legacy installer
|
||||||
|
|
||||||
|
* Tue Aug 25 2020 Benjamin Gilbert <bgilbert@redhat.com> - 0.6.0-1
|
||||||
|
- New release
|
||||||
|
|
||||||
|
* Fri Jul 31 2020 Benjamin Gilbert <bgilbert@redhat.com> - 0.5.0-1
|
||||||
|
- New release
|
||||||
|
|
||||||
|
* Sat Jul 25 2020 Benjamin Gilbert <bgilbert@redhat.com> - 0.4.0-1
|
||||||
|
- New release
|
||||||
|
- Rename -systemd subpackage to -bootinfra
|
||||||
|
- Add rdcore Dracut module to -bootinfra
|
||||||
|
|
||||||
|
* Wed Jul 22 2020 Benjamin Gilbert <bgilbert@redhat.com> - 0.3.0-1
|
||||||
|
- New release
|
||||||
|
- Make coreos-installer-{service,generator} world-readable
|
||||||
|
|
||||||
|
* Wed Jun 17 2020 Dusty Mabe <dusty@dustymabe.com> - 0.2.0-4.rhaos4.6
|
||||||
|
- Include rhaos4.6 in the rpm release field
|
||||||
|
|
||||||
|
* Thu May 28 2020 Colin Walters <walters@verbum.org> - 0.2.0-3
|
||||||
|
- Backport osmet RHCOS+LUKS patches
|
||||||
|
|
||||||
|
* Thu May 07 2020 Dusty Mabe <dusty@dustymabe.com> - 0.2.0-2
|
||||||
|
- Fix bug in dracut hook in legacy installer; see
|
||||||
|
https://github.com/coreos/coreos-installer/pull/234
|
||||||
|
|
||||||
|
* Mon Apr 27 2020 Colin Walters <walters@verbum.org> - 0.1.3-4
|
||||||
|
- Merge in legacy installer; see
|
||||||
|
https://github.com/coreos/coreos-installer/pull/220
|
||||||
|
|
||||||
|
* Mon Mar 23 2020 Colin Walters <walters@verbum.org> - 0.1.3-2
|
||||||
|
- https://github.com/coreos/coreos-installer/releases/tag/v0.1.3
|
||||||
|
|
||||||
|
* Wed Mar 04 2020 Colin Walters <walters@verbum.org> - 0.1.2-11
|
||||||
|
- Backport no-signatures-available patch
|
||||||
|
|
||||||
|
* Wed Feb 26 2020 Colin Walters <walters@verbum.org> - 0.1.2-10
|
||||||
|
- Forked from Fedora
|
||||||
|
- I forgot about the weird `rust-` package name prefixing when
|
||||||
|
asking RCM to make the dist-git repo, and rather than redo
|
||||||
|
that I decided to just go with it.
|
||||||
|
- Stop depending on systemd-rpm-macros since it's not in RHEL8 apparently
|
||||||
|
- Drop other things only applicable to Fedora Rust packaging like
|
||||||
|
dynamic buildrequires
|
Loading…
Reference in New Issue
Block a user