2024-04-13 15:06:52 -08:00
|
|
|
#!/usr/bin/bash
|
|
|
|
|
|
2025-01-21 19:57:03 -09:00
|
|
|
echo "::group:: ===$(basename "$0")==="
|
|
|
|
|
|
2026-04-05 05:45:08 -08:00
|
|
|
set -ouex pipefail
|
2024-04-13 15:06:52 -08:00
|
|
|
|
2025-10-24 11:11:49 -08:00
|
|
|
KERNEL_VERSION=$(rpm -q --queryformat="%{evr}.%{arch}" kernel-core)
|
2026-09-28 20:58:49 -08:00
|
|
|
INITRAMFS="/usr/lib/modules/${KERNEL_VERSION}/initramfs.img"
|
2024-04-13 15:06:52 -08:00
|
|
|
|
2026-10-11 07:28:06 -08:00
|
|
|
V4L2_PATH="$(rpm -ql kmod-v4l2loopback)"
|
|
|
|
|
|
|
|
|
|
DRACUT_REMOVE=(
|
|
|
|
|
# makes no difference if in initramfs or not
|
|
|
|
|
# this is a hack FIXME in ublue-os/akmods
|
|
|
|
|
${V4L2_PATH} # ko.kz file has build id's changing -> non-reproducible
|
|
|
|
|
)
|
|
|
|
|
|
2026-09-28 20:58:49 -08:00
|
|
|
# https://github.com/ublue-os/aurora/issues/2568
|
|
|
|
|
# these strings change with every build
|
|
|
|
|
TMP_OS_RELEASE=$(mktemp --tmpdir 'os-release-XXXXXXXXXX')
|
|
|
|
|
OS_RELEASE="/usr/lib/os-release"
|
|
|
|
|
cp "${OS_RELEASE}" "${TMP_OS_RELEASE}"
|
|
|
|
|
sed -Ei -e '/^((OSTREE_)?(IMAGE_)?VERSION|PRETTY_NAME|BUILD_ID)=/d' "${OS_RELEASE}"
|
|
|
|
|
|
|
|
|
|
DRACUT_NO_XATTR=1 /usr/bin/dracut \
|
|
|
|
|
--kver "${KERNEL_VERSION}" \
|
|
|
|
|
--reproducible \
|
|
|
|
|
--verbose \
|
|
|
|
|
--force \
|
2026-10-11 07:28:06 -08:00
|
|
|
--remove "${DRACUT_REMOVE[@]}" \
|
2026-09-28 20:58:49 -08:00
|
|
|
"${INITRAMFS}"
|
|
|
|
|
|
|
|
|
|
# mv causes permissions to change
|
|
|
|
|
cp "${TMP_OS_RELEASE}" "${OS_RELEASE}"
|
|
|
|
|
rm "${TMP_OS_RELEASE}"
|
|
|
|
|
|
|
|
|
|
chmod 0600 "${INITRAMFS}"
|
|
|
|
|
|
|
|
|
|
# for reproducibility
|
2026-10-15 23:11:44 -08:00
|
|
|
# This is done globally now
|
|
|
|
|
# touch -a -m -d "1970-01-01T00:00:00Z" "${INITRAMFS}"
|
2026-09-28 20:58:49 -08:00
|
|
|
|
|
|
|
|
# for debugging
|
|
|
|
|
sha256sum "${INITRAMFS}"
|
2025-01-21 19:57:03 -09:00
|
|
|
|
|
|
|
|
echo "::endgroup::"
|