mirror-ublue-os-akmods/Containerfile.in
2026-03-16 13:24:50 -07:00

197 lines
4.9 KiB
Text

FROM BUILDER AS build_prep
ARG DUAL_SIGN="true"
ARG KERNEL_FLAVOR_ARG
ARG KERNEL_NAME_ARG
ARG RPMFUSION_MIRROR_ARG
ARG VERSION_ARG
#ifdef CI_SETX
ARG CI=1
#endif /* CI_SETX */
#ifdef NVIDIA
ARG KMOD_REPO_ARG
#endif /* NVIDIA */
# /*
# common copy/add
# */
COPY certs /tmp/certs
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
COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset
COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset
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
#ifndef CENTOS
ADD https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/repo/fedora-${VERSION}/ublue-os-akmods-fedora-${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
#endif
# /*
# Preperation
# */
COPY build_files/prep /tmp/
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
set "${CI+-x}" -euo pipefail
ls -sh /tmp/kernel_cache
/tmp/build-prep.sh
RUNEOF
FROM build_prep AS builder
ARG DUAL_SIGN="true"
ARG KERNEL_FLAVOR_ARG
ARG KERNEL_NAME_ARG
ARG RPMFUSION_MIRROR_ARG
ARG VERSION_ARG
#ifdef CI_SETX
ARG CI=1
#endif /* CI_SETX */
#ifdef NVIDIA
ARG KMOD_REPO_ARG
#endif /* NVIDIA */
#ifdef ZFS
ARG ZFS_MINOR_VERSION_ARG
#endif /* ZFS */
#if defined COMMON
# /*
# common akmods
# */
COPY build_files/common /tmp/
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
set "${CI+-x}" -euo pipefail
/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/
RUNEOF
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
/tmp/build-kmod-framework-laptop.sh
/tmp/build-kmod-openrazer.sh
/tmp/build-kmod-v4l2loopback.sh
/tmp/build-kmod-wl.sh
/tmp/build-kmod-xone.sh
RUNEOF
#elif defined EXTRA
# /*
# extra akmods
# */
COPY build_files/extra /tmp/
#elif defined NVIDIA
# /*
# nvidia kmods
# */
COPY build_files/nvidia /tmp/
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
/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/
RUNEOF
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
/tmp/build-kmod-nvidia.sh "$KMOD_REPO"
RUNEOF
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
/tmp/download-nvidia-rpms.sh "$KMOD_REPO"
install -m755 -t /var/cache/rpms/ublue-os /tmp/nvidia-install.sh
RUNEOF
#elif defined ZFS
# /*
# zfs akmods
# */
COPY build_files/zfs /tmp/
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
set "${CI+-x}" -euo pipefail
if [[ "${KERNEL_FLAVOR}" =~ (coreos|longterm) ]]; then
/tmp/build-ublue-os-ucore-addons.sh
cp /tmp/ublue-os-ucore-addons/rpmbuild/RPMS/noarch/ublue-os-ucore-addons*.rpm /var/cache/rpms/ucore/
fi
RUNEOF
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
set "${CI+-x}" -euo pipefail
/tmp/build-kmod-zfs.sh
RUNEOF
#endif
# /*
# Signing
# */
COPY build_files/post /tmp/
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
set "${CI+-x}" -euo pipefail
#ifdef ZFS
/tmp/dual-sign-zfs.sh
#else
/tmp/dual-sign.sh
#endif /* ZFS */
/tmp/build-post.sh
RUNEOF
FROM scratch AS RPM_CACHE
COPY --from=builder /var/cache/kernel-rpms /kernel-rpms
COPY --from=builder /var/cache/rpms /rpms
FROM build_prep AS test
ARG DUAL_SIGN="true"
ARG KERNEL_FLAVOR_ARG
ARG KERNEL_NAME_ARG
ARG RPMFUSION_MIRROR_ARG
ARG VERSION_ARG
#ifdef NVIDIA
ARG KMOD_REPO_ARG
#endif /* NVIDIA */
#ifdef CI_SETX
ENV CI=1
#endif
COPY --from=RPM_CACHE /kernel-rpms /tmp/kernel_cache
COPY --from=RPM_CACHE /rpms /tmp/akmods-rpms
COPY build_files/test/test-prep.sh /tmp/
COPY certs /tmp/certs
RUN --mount=type=cache,dst=/var/cache/dnf \
--mount=type=cache,dst=/var/cache/libdnf5 \
bash <<'RUNEOF'
set "${CI+-x}" -euo pipefail
/tmp/test-prep.sh
RUNEOF
COPY build_files/test/check-signatures.sh /tmp/
CMD ["/tmp/check-signatures.sh"]
FROM scratch AS RPMS
COPY --from=RPM_CACHE / /