diff --git a/Containerfile.common b/Containerfile.common index 9992d9c4..69ddefef 100644 --- a/Containerfile.common +++ b/Containerfile.common @@ -17,21 +17,24 @@ ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-main}" ARG RPMFUSION_MIRROR="" ARG DUAL_SIGN="true" -COPY build*.sh dual-sign*.sh /tmp/ +COPY build_files/common build_files/shared /tmp/ COPY certs /tmp/certs # cached kernel rpms COPY --from=kernel_cache /tmp/rpms /tmp/kernel_cache # files for akmods -COPY ublue-os-akmods-addons.spec /tmp/ublue-os-akmods-addons/ublue-os-akmods-addons.spec -COPY ublue-os-ucore-addons.spec /tmp/ublue-os-ucore-addons/ublue-os-ucore-addons.spec ADD https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/repo/fedora-${FEDORA_MAJOR_VERSION}/ublue-os-akmods-fedora-${FEDORA_MAJOR_VERSION}.repo \ /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/_copr_ublue-os-akmods.repo ADD https://negativo17.org/repos/fedora-multimedia.repo \ /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo RUN --mount=type=cache,dst=/var/cache/dnf \ + if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ + export KERNEL_NAME="kernel" \ + ; else \ + export KERNEL_NAME="kernel-surface" \ + ; fi && \ /tmp/build-prep.sh && \ if [[ "${KERNEL_FLAVOR}" =~ "coreos" ]]; then \ /tmp/build-ublue-os-ucore-addons.sh && \ @@ -41,11 +44,6 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-ublue-os-akmods-addons.sh && \ cp /tmp/ublue-os-akmods-addons/rpmbuild/RPMS/noarch/ublue-os-akmods-addons*.rpm \ /var/cache/rpms/ublue-os/ && \ - if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ - export KERNEL_NAME="kernel" \ - ; else \ - export KERNEL_NAME="kernel-surface" \ - ; fi && \ /tmp/build-kmod-framework-laptop.sh && \ /tmp/build-kmod-kvmfr.sh && \ /tmp/build-kmod-openrazer.sh && \ @@ -54,28 +52,7 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-kmod-xpadneo.sh && \ /tmp/build-kmod-xone.sh && \ /tmp/dual-sign.sh && \ - for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - for RPM in $(find /root/rpmbuild/RPMS/"$(uname -m)"/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - find /var/cache/rpms - -# Remove kernel version from kmod package names -# FIXME: The sed is a gross hack, maybe PR upstream? -RUN set -e; \ - sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \ - kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \ - for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \ - basename=$(basename ${rpm}); \ - name=${basename%%-${kernel_version}*}; \ - if [[ "$basename" == *"$kernel_version"* ]]; then \ - fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \ - else \ - echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \ - fi; \ - done + /tmp/build-post.sh FROM scratch diff --git a/Containerfile.extra b/Containerfile.extra index e531a6b4..df74f05c 100644 --- a/Containerfile.extra +++ b/Containerfile.extra @@ -17,26 +17,25 @@ ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-main}" ARG RPMFUSION_MIRROR="" ARG DUAL_SIGN="true" -COPY build*.sh dual-sign*.sh /tmp/ +COPY build_files/extra build_files/shared /tmp/ COPY certs /tmp/certs # cached kernel rpms COPY --from=kernel_cache /tmp/rpms /tmp/kernel_cache # files for akmods -COPY ublue-os-akmods-addons.spec /tmp/ublue-os-akmods-addons/ublue-os-akmods-addons.spec ADD https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/repo/fedora-${FEDORA_MAJOR_VERSION}/ublue-os-akmods-fedora-${FEDORA_MAJOR_VERSION}.repo \ /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/_copr_ublue-os-akmods.repo ADD https://negativo17.org/repos/fedora-multimedia.repo \ /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo RUN --mount=type=cache,dst=/var/cache/dnf \ - /tmp/build-prep.sh && \ if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ export KERNEL_NAME="kernel" \ ; else \ export KERNEL_NAME="kernel-surface" \ ; fi && \ + /tmp/build-prep.sh && \ if grep -qv "asus" <<< "${KERNEL_FLAVOR}"; then \ /tmp/build-kmod-zenergy.sh && \ /tmp/build-kmod-evdi.sh \ @@ -58,28 +57,7 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-kmod-vhba.sh && \ /tmp/build-kmod-VirtualBox.sh && \ /tmp/dual-sign.sh && \ - for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - for RPM in $(find /root/rpmbuild/RPMS/"$(uname -m)"/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - find /var/cache/rpms - -# Remove kernel version from kmod package names -# FIXME: The sed is a gross hack, maybe PR upstream? -RUN set -e; \ - sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \ - kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \ - for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \ - basename=$(basename ${rpm}); \ - name=${basename%%-${kernel_version}*}; \ - if [[ "$basename" == *"$kernel_version"* ]]; then \ - fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \ - else \ - echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \ - fi; \ - done + /tmp/build-post.sh FROM scratch diff --git a/Containerfile.nvidia b/Containerfile.nvidia index cca26cb5..74594a6e 100644 --- a/Containerfile.nvidia +++ b/Containerfile.nvidia @@ -17,15 +17,13 @@ ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-main}" ARG RPMFUSION_MIRROR="" ARG DUAL_SIGN="true" -COPY build*.sh dual-sign*.sh /tmp/ +COPY build_files/nvidia build_files/shared /tmp/ COPY certs /tmp/certs # cached kernel rpms COPY --from=kernel_cache /tmp/rpms /tmp/kernel_cache # files for nvidia -COPY ublue-os-nvidia-addons.spec /tmp/ublue-os-nvidia-addons/ublue-os-nvidia-addons.spec -COPY ublue-os-ucore-nvidia.spec /tmp/ublue-os-ucore-nvidia/ublue-os-ucore-nvidia.spec COPY files/etc/sway/environment /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/environment COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service @@ -34,6 +32,11 @@ COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules RUN --mount=type=cache,dst=/var/cache/dnf \ + if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ + export KERNEL_NAME="kernel" \ + ; else \ + export KERNEL_NAME="kernel-surface" \ + ; fi && \ /tmp/build-prep.sh && \ if [[ "${KERNEL_FLAVOR}" =~ "coreos" ]]; then \ /tmp/build-ublue-os-ucore-nvidia.sh && \ @@ -43,35 +46,9 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-ublue-os-nvidia-addons.sh && \ cp /tmp/ublue-os-nvidia-addons/rpmbuild/RPMS/noarch/ublue-os-nvidia-addons*.rpm \ /var/cache/rpms/ublue-os/ && \ - if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ - export KERNEL_NAME="kernel" \ - ; else \ - export KERNEL_NAME="kernel-surface" \ - ; fi && \ /tmp/build-kmod-nvidia.sh kernel && \ /tmp/dual-sign.sh && \ - for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - for RPM in $(find /root/rpmbuild/RPMS/"$(uname -m)"/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - find /var/cache/rpms - -# Remove kernel version from kmod package names -# FIXME: The sed is a gross hack, maybe PR upstream? -RUN set -e; \ - sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \ - kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \ - for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \ - basename=$(basename ${rpm}); \ - name=${basename%%-${kernel_version}*}; \ - if [[ "$basename" == *"$kernel_version"* ]]; then \ - fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \ - else \ - echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \ - fi; \ - done + /tmp/build-post.sh FROM scratch diff --git a/Containerfile.nvidia-open b/Containerfile.nvidia-open index e0c25203..eb921f36 100644 --- a/Containerfile.nvidia-open +++ b/Containerfile.nvidia-open @@ -17,15 +17,13 @@ ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-main}" ARG RPMFUSION_MIRROR="" ARG DUAL_SIGN="true" -COPY build*.sh dual-sign*.sh /tmp/ +COPY build_files/nvidia build_files/shared /tmp/ COPY certs /tmp/certs # cached kernel rpms COPY --from=kernel_cache /tmp/rpms /tmp/kernel_cache # files for nvidia -COPY ublue-os-nvidia-addons.spec /tmp/ublue-os-nvidia-addons/ublue-os-nvidia-addons.spec -COPY ublue-os-ucore-nvidia.spec /tmp/ublue-os-ucore-nvidia/ublue-os-ucore-nvidia.spec COPY files/etc/sway/environment /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/environment COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service @@ -34,6 +32,11 @@ COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules RUN --mount=type=cache,dst=/var/cache/dnf \ + if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ + export KERNEL_NAME="kernel" \ + ; else \ + export KERNEL_NAME="kernel-surface" \ + ; fi && \ /tmp/build-prep.sh && \ if [[ "${KERNEL_FLAVOR}" =~ "coreos" ]]; then \ /tmp/build-ublue-os-ucore-nvidia.sh && \ @@ -43,35 +46,9 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-ublue-os-nvidia-addons.sh && \ cp /tmp/ublue-os-nvidia-addons/rpmbuild/RPMS/noarch/ublue-os-nvidia-addons*.rpm \ /var/cache/rpms/ublue-os/ && \ - if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ - export KERNEL_NAME="kernel" \ - ; else \ - export KERNEL_NAME="kernel-surface" \ - ; fi && \ /tmp/build-kmod-nvidia.sh kernel-open && \ /tmp/dual-sign.sh && \ - for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - for RPM in $(find /root/rpmbuild/RPMS/"$(uname -m)"/ -type f -name \*.rpm); do \ - cp "${RPM}" /var/cache/rpms/kmods/; \ - done && \ - find /var/cache/rpms - -# Remove kernel version from kmod package names -# FIXME: The sed is a gross hack, maybe PR upstream? -RUN set -e; \ - sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \ - kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \ - for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \ - basename=$(basename ${rpm}); \ - name=${basename%%-${kernel_version}*}; \ - if [[ "$basename" == *"$kernel_version"* ]]; then \ - fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \ - else \ - echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \ - fi; \ - done + /tmp/build-post.sh FROM scratch diff --git a/Containerfile.test b/Containerfile.test index 39bccb23..3936df13 100644 --- a/Containerfile.test +++ b/Containerfile.test @@ -21,8 +21,7 @@ ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-main}" ARG RPMFUSION_MIRROR="" ARG DUAL_SIGN="true" -COPY test-prep.sh dual-sign-check.sh /tmp/ -COPY check-signatures.sh / +COPY build_files/shared /tmp/ COPY certs /tmp/certs # cached kernel rpms @@ -37,4 +36,4 @@ RUN --mount=type=cache,dst=/var/cache/dnf \ ; fi && \ /tmp/test-prep.sh -CMD ["/check-signatures.sh"] +CMD ["/tmp/check-signatures.sh"] diff --git a/Containerfile.zfs b/Containerfile.zfs index 5a581a38..9229cd56 100644 --- a/Containerfile.zfs +++ b/Containerfile.zfs @@ -18,7 +18,7 @@ ARG DUAL_SIGN="true" ARG RPMFUSION_MIRROR="" ARG ZFS_MINOR_VERSION="${ZFS_MINOR_VERSION:-2.2}" -COPY build*.sh dual-sign*.sh /tmp/ +COPY build_files/zfs build_files/shared /tmp/ COPY certs /tmp/certs # cached kernel rpms @@ -26,29 +26,15 @@ COPY --from=kernel_cache /tmp/rpms /tmp/kernel_cache # Set kernel name RUN --mount=type=cache,dst=/var/cache/dnf \ - /tmp/build-prep.sh && \ if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \ export KERNEL_NAME="kernel" \ ; else \ export KERNEL_NAME="kernel-surface" \ ; fi && \ + /tmp/build-prep.sh && \ /tmp/build-kmod-zfs.sh && \ - /tmp/dual-sign-zfs.sh - -# Remove kernel version from kmod package names -# FIXME: The sed is a gross hack, maybe PR upstream? -RUN set -e; \ - sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \ - kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \ - for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \ - basename=$(basename ${rpm}); \ - name=${basename%%-${kernel_version}*}; \ - if [[ "$basename" == *"$kernel_version"* ]]; then \ - fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \ - else \ - echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \ - fi; \ - done + /tmp/dual-sign-zfs.sh && \ + /tmp/build-post.sh FROM scratch diff --git a/build-kmod-framework-laptop.sh b/build_files/common/build-kmod-framework-laptop.sh similarity index 100% rename from build-kmod-framework-laptop.sh rename to build_files/common/build-kmod-framework-laptop.sh diff --git a/build-kmod-kvmfr.sh b/build_files/common/build-kmod-kvmfr.sh similarity index 100% rename from build-kmod-kvmfr.sh rename to build_files/common/build-kmod-kvmfr.sh diff --git a/build-kmod-openrazer.sh b/build_files/common/build-kmod-openrazer.sh similarity index 100% rename from build-kmod-openrazer.sh rename to build_files/common/build-kmod-openrazer.sh diff --git a/build-kmod-v4l2loopback.sh b/build_files/common/build-kmod-v4l2loopback.sh similarity index 100% rename from build-kmod-v4l2loopback.sh rename to build_files/common/build-kmod-v4l2loopback.sh diff --git a/build-kmod-wl.sh b/build_files/common/build-kmod-wl.sh similarity index 100% rename from build-kmod-wl.sh rename to build_files/common/build-kmod-wl.sh diff --git a/build-kmod-xone.sh b/build_files/common/build-kmod-xone.sh similarity index 100% rename from build-kmod-xone.sh rename to build_files/common/build-kmod-xone.sh diff --git a/build-kmod-xpadneo.sh b/build_files/common/build-kmod-xpadneo.sh similarity index 100% rename from build-kmod-xpadneo.sh rename to build_files/common/build-kmod-xpadneo.sh diff --git a/build-ublue-os-akmods-addons.sh b/build_files/common/build-ublue-os-akmods-addons.sh similarity index 100% rename from build-ublue-os-akmods-addons.sh rename to build_files/common/build-ublue-os-akmods-addons.sh diff --git a/build-ublue-os-ucore-addons.sh b/build_files/common/build-ublue-os-ucore-addons.sh similarity index 100% rename from build-ublue-os-ucore-addons.sh rename to build_files/common/build-ublue-os-ucore-addons.sh diff --git a/ublue-os-akmods-addons.spec b/build_files/common/ublue-os-akmods-addons/ublue-os-akmods-addons.spec similarity index 100% rename from ublue-os-akmods-addons.spec rename to build_files/common/ublue-os-akmods-addons/ublue-os-akmods-addons.spec diff --git a/ublue-os-ucore-addons.spec b/build_files/common/ublue-os-ucore-addons/ublue-os-ucore-addons.spec similarity index 100% rename from ublue-os-ucore-addons.spec rename to build_files/common/ublue-os-ucore-addons/ublue-os-ucore-addons.spec diff --git a/build-kmod-VirtualBox.sh b/build_files/extra/build-kmod-VirtualBox.sh similarity index 100% rename from build-kmod-VirtualBox.sh rename to build_files/extra/build-kmod-VirtualBox.sh diff --git a/build-kmod-ayaneo-platform.sh b/build_files/extra/build-kmod-ayaneo-platform.sh similarity index 100% rename from build-kmod-ayaneo-platform.sh rename to build_files/extra/build-kmod-ayaneo-platform.sh diff --git a/build-kmod-ayn-platform.sh b/build_files/extra/build-kmod-ayn-platform.sh similarity index 100% rename from build-kmod-ayn-platform.sh rename to build_files/extra/build-kmod-ayn-platform.sh diff --git a/build-kmod-bmi260.sh b/build_files/extra/build-kmod-bmi260.sh similarity index 100% rename from build-kmod-bmi260.sh rename to build_files/extra/build-kmod-bmi260.sh diff --git a/build-kmod-evdi.sh b/build_files/extra/build-kmod-evdi.sh similarity index 100% rename from build-kmod-evdi.sh rename to build_files/extra/build-kmod-evdi.sh diff --git a/build-kmod-facetimehd.sh b/build_files/extra/build-kmod-facetimehd.sh similarity index 100% rename from build-kmod-facetimehd.sh rename to build_files/extra/build-kmod-facetimehd.sh diff --git a/build-kmod-gcadapter_oc.sh b/build_files/extra/build-kmod-gcadapter_oc.sh similarity index 100% rename from build-kmod-gcadapter_oc.sh rename to build_files/extra/build-kmod-gcadapter_oc.sh diff --git a/build-kmod-gpd-fan.sh b/build_files/extra/build-kmod-gpd-fan.sh similarity index 100% rename from build-kmod-gpd-fan.sh rename to build_files/extra/build-kmod-gpd-fan.sh diff --git a/build-kmod-nct6687d.sh b/build_files/extra/build-kmod-nct6687d.sh similarity index 100% rename from build-kmod-nct6687d.sh rename to build_files/extra/build-kmod-nct6687d.sh diff --git a/build-kmod-rtl8814au.sh b/build_files/extra/build-kmod-rtl8814au.sh similarity index 100% rename from build-kmod-rtl8814au.sh rename to build_files/extra/build-kmod-rtl8814au.sh diff --git a/build-kmod-rtl88xxau.sh b/build_files/extra/build-kmod-rtl88xxau.sh similarity index 100% rename from build-kmod-rtl88xxau.sh rename to build_files/extra/build-kmod-rtl88xxau.sh diff --git a/build-kmod-ryzen-smu.sh b/build_files/extra/build-kmod-ryzen-smu.sh similarity index 100% rename from build-kmod-ryzen-smu.sh rename to build_files/extra/build-kmod-ryzen-smu.sh diff --git a/build-kmod-system76-io.sh b/build_files/extra/build-kmod-system76-io.sh similarity index 100% rename from build-kmod-system76-io.sh rename to build_files/extra/build-kmod-system76-io.sh diff --git a/build-kmod-system76.sh b/build_files/extra/build-kmod-system76.sh similarity index 100% rename from build-kmod-system76.sh rename to build_files/extra/build-kmod-system76.sh diff --git a/build-kmod-vhba.sh b/build_files/extra/build-kmod-vhba.sh similarity index 100% rename from build-kmod-vhba.sh rename to build_files/extra/build-kmod-vhba.sh diff --git a/build-kmod-zenergy.sh b/build_files/extra/build-kmod-zenergy.sh similarity index 100% rename from build-kmod-zenergy.sh rename to build_files/extra/build-kmod-zenergy.sh diff --git a/build-kmod-nvidia.sh b/build_files/nvidia/build-kmod-nvidia.sh similarity index 100% rename from build-kmod-nvidia.sh rename to build_files/nvidia/build-kmod-nvidia.sh diff --git a/build-ublue-os-nvidia-addons.sh b/build_files/nvidia/build-ublue-os-nvidia-addons.sh similarity index 100% rename from build-ublue-os-nvidia-addons.sh rename to build_files/nvidia/build-ublue-os-nvidia-addons.sh diff --git a/build-ublue-os-ucore-nvidia.sh b/build_files/nvidia/build-ublue-os-ucore-nvidia.sh similarity index 100% rename from build-ublue-os-ucore-nvidia.sh rename to build_files/nvidia/build-ublue-os-ucore-nvidia.sh diff --git a/ublue-os-nvidia-addons.spec b/build_files/nvidia/ublue-os-nvidia-addons/ublue-os-nvidia-addons.spec similarity index 100% rename from ublue-os-nvidia-addons.spec rename to build_files/nvidia/ublue-os-nvidia-addons/ublue-os-nvidia-addons.spec diff --git a/ublue-os-ucore-nvidia.spec b/build_files/nvidia/ublue-os-ucore-nvidia/ublue-os-ucore-nvidia.spec similarity index 100% rename from ublue-os-ucore-nvidia.spec rename to build_files/nvidia/ublue-os-ucore-nvidia/ublue-os-ucore-nvidia.spec diff --git a/build_files/shared/build-post.sh b/build_files/shared/build-post.sh new file mode 100755 index 00000000..cd6d2676 --- /dev/null +++ b/build_files/shared/build-post.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +set -oeux pipefail + +# Ensure packages get copied to /var/cache/rpms +if [ -d /var/cache/akmods ]; then + for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do + cp "${RPM}" /var/cache/rpms/kmods/ + done +fi + +if [ -d /root/rpmbuild/RPMS/"$(uname -m)" ]; then + for RPM in $(find /root/rpmbuild/RPMS/"$(uname -m)"/ -type f -name \*.rpm); do + cp "${RPM}" /var/cache/rpms/kmods/ + done +fi + +# Remove kernel version from kmod package names +# FIXME: The sed is a gross hack, maybe PR upstream? +sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb +kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" "${KERNEL_NAME}" | head -n 1) +for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do + basename=$(basename ${rpm}) + name=${basename%%-${kernel_version}*} + if [[ "$basename" == *"$kernel_version"* ]]; then + fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm} + else + echo "Skipping $basename rebuild as its name does not contain $kernel_version" + fi +done + +find /var/cache/rpms diff --git a/build-prep.sh b/build_files/shared/build-prep.sh similarity index 95% rename from build-prep.sh rename to build_files/shared/build-prep.sh index a4912473..c89b1f1c 100755 --- a/build-prep.sh +++ b/build_files/shared/build-prep.sh @@ -16,11 +16,7 @@ mkdir -p /var/lib/alternatives echo "Installing ${KERNEL_FLAVOR} kernel-cache RPMs..." # fedora image has no kernel so this needs nothing fancy, just install dnf install -y /tmp/kernel_cache/*.rpm -if [[ "${KERNEL_FLAVOR}" == "surface" ]]; then - KERNEL_VERSION=$(rpm -q kernel-surface|cut -d '-' -f2-) -else - KERNEL_VERSION=$(rpm -q kernel|cut -d '-' -f2-) -fi +KERNEL_VERSION=$(rpm -q "${KERNEL_NAME}" | cut -d '-' -f2-) # enable more repos RPMFUSION_MIRROR_RPMS="https://mirrors.rpmfusion.org" diff --git a/check-signatures.sh b/build_files/shared/check-signatures.sh similarity index 100% rename from check-signatures.sh rename to build_files/shared/check-signatures.sh diff --git a/dual-sign-check.sh b/build_files/shared/dual-sign-check.sh similarity index 100% rename from dual-sign-check.sh rename to build_files/shared/dual-sign-check.sh diff --git a/dual-sign.sh b/build_files/shared/dual-sign.sh similarity index 100% rename from dual-sign.sh rename to build_files/shared/dual-sign.sh diff --git a/test-prep.sh b/build_files/shared/test-prep.sh similarity index 100% rename from test-prep.sh rename to build_files/shared/test-prep.sh diff --git a/build-kmod-zfs.sh b/build_files/zfs/build-kmod-zfs.sh similarity index 100% rename from build-kmod-zfs.sh rename to build_files/zfs/build-kmod-zfs.sh diff --git a/dual-sign-zfs.sh b/build_files/zfs/dual-sign-zfs.sh similarity index 95% rename from dual-sign-zfs.sh rename to build_files/zfs/dual-sign-zfs.sh index d0127541..75d28eff 100755 --- a/dual-sign-zfs.sh +++ b/build_files/zfs/dual-sign-zfs.sh @@ -45,9 +45,3 @@ if [[ "${DUAL_SIGN}" == "true" ]]; then done mv -f /root/rpmbuild/RPMS/"$(uname -m)"/kmod-*.rpm /var/cache/rpms/kmods/zfs/ fi - -for RPM in $(find /var/cache/akmods/ -type f -name \*.rpm); do - cp "${RPM}" /var/cache/rpms/kmods/ -done - -find /var/cache/rpms