diff --git a/images/aarch64/fedora/6.19/Dockerfile b/images/aarch64/fedora/6.19/Dockerfile new file mode 100644 index 0000000..3e7a220 --- /dev/null +++ b/images/aarch64/fedora/6.19/Dockerfile @@ -0,0 +1,35 @@ +FROM fedora:44 + +ARG VERSION=6.19.7-300 +ARG HDR_VERSION=6.19.6-300 +ARG ARCHITECTURE=aarch64 +# Ensure we use the correct variable name consistently +ARG URL='https://archives.fedoraproject.org/pub/fedora/linux/development/44/Everything/aarch64/os/Packages' +ARG CMAKE_VERSION + +# Use bash for all RUN steps with some safety options enabled. +SHELL ["/bin/bash", "-euo", "pipefail", "-c"] + +RUN dnf install --disablerepo=updates-testing -y @development-tools \ + clang \ + iproute \ + libcap-devel \ + llvm \ + openssh-server \ + rsync \ + systemd && \ + curl -Lo devel.rpm "${URL}/k/kernel-devel-${VERSION}.fc44.${ARCHITECTURE}.rpm" && \ + curl -Lo headers.rpm "${URL}/k/kernel-headers-${HDR_VERSION}.fc44.${ARCHITECTURE}.rpm" && \ + dnf install -y ./*.rpm && \ + rm -v ./*.rpm && \ + dnf clean all && \ + rm -rf /var/cache/yum +RUN mkdir -p /lib/modules/${VERSION}.fc44.${ARCHITECTURE} && \ + ln -s /usr/src/kernels/${VERSION}.fc44.${ARCHITECTURE}/ /lib/modules/${VERSION}.fc44.${ARCHITECTURE}/build +RUN CMAKE_ARCH="aarch64" && \ + CMAKE_RELEASE_NAME="cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}" && \ + curl -L "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_RELEASE_NAME}.tar.gz" | \ + tar -C /usr --strip-components 1 "${CMAKE_RELEASE_NAME}/bin" "${CMAKE_RELEASE_NAME}/share" -xzpvf - +RUN sed -i -e 's/^AcceptEnv LANG LC_\*$/#AcceptEnv LANG LC_*/' /etc/ssh/sshd_config && \ + echo 'UseDNS no' >> /etc/ssh/sshd_config && \ + echo "root:root" | chpasswd diff --git a/images/aarch64/fedora/6.19/Dockerfile.kernel b/images/aarch64/fedora/6.19/Dockerfile.kernel new file mode 100644 index 0000000..2bd0a0e --- /dev/null +++ b/images/aarch64/fedora/6.19/Dockerfile.kernel @@ -0,0 +1,65 @@ +ARG VERSION=6.19.7-300 +ARG HVERSION=6.19.6-300 +ARG ARCHITECTURE=aarch64 +ARG URL='https://archives.fedoraproject.org/pub/fedora/linux/development/44/Everything/aarch64/os/Packages/k/' + +FROM initrd-builder:0.0.1 AS stage1 + +ARG VERSION +ARG HVERSION +ARG ARCHITECTURE +ARG URL + +WORKDIR /home/ubuntu + +RUN touch .placeholder && \ + curl -Lo kernel.rpm ${URL}kernel-core-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo headers.rpm ${URL}kernel-headers-${HVERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo modules.rpm ${URL}kernel-modules-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo sources.rpm ${URL}kernel-devel-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo modules-core.rpm ${URL}kernel-modules-core-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + rpm2cpio kernel.rpm > kernel.cpio && \ + rpm2cpio headers.rpm > headers.cpio && \ + rpm2cpio modules.rpm > modules.cpio && \ + rpm2cpio sources.rpm > sources.cpio && \ + rpm2cpio modules-core.rpm > modules-core.cpio && \ + mkdir extracted && \ + cd extracted && \ + cpio -idmv < ../kernel.cpio && \ + cpio -idmv < ../headers.cpio && \ + cpio -idmv < ../modules.cpio && \ + cpio -idmv < ../sources.cpio && \ + cpio -idmv < ../modules-core.cpio +RUN cd /home/ubuntu/extracted && \ + find . -name '*.xz' -exec xz -d {} \; && \ + extract-vmlinux $(find lib/modules -name vmlinuz) > /home/ubuntu/extracted/vmlinux + +FROM fedora:44 AS kmod-builder + +ARG VERSION +ARG HVERSION +ARG URL +ARG ARCHITECTURE + +WORKDIR /home/ubuntu +COPY --from=stage1 /home/ubuntu/extracted /home/ubuntu/extracted/ +COPY --from=stage1 /opt/initrd-builder/* /opt/initrd-builder/ + + +RUN dnf install --disablerepo=updates-testing -y @development-tools && \ + cp -v /opt/initrd-builder/Makefile.virtio_mmio Makefile && \ + curl -LO 'https://gitlab.com/cki-project/kernel-ark/-/raw/fedora-6.19/drivers/virtio/virtio_mmio.c' && \ + KERNEL_DIR="/home/ubuntu/extracted/usr/src/kernels/${VERSION}.fc44.${ARCHITECTURE}/" make + + +FROM initrd-builder:0.0.1 AS stage2 +COPY --from=stage1 /home/ubuntu/extracted /home/ubuntu/extracted/ +COPY --from=kmod-builder /home/ubuntu/virtio_mmio.ko /home/ubuntu/ +RUN cd /home/ubuntu/extracted && \ + /opt/initrd-builder/create.sh + +FROM scratch + +COPY --from=stage1 /home/ubuntu/.placeholder /lib/modules/ +COPY --from=stage1 /home/ubuntu/extracted/vmlinux /boot/ +COPY --from=stage2 /home/ubuntu/out/initrd /boot/ diff --git a/images/x86_64/fedora/6.19/Dockerfile b/images/x86_64/fedora/6.19/Dockerfile new file mode 100644 index 0000000..2668e39 --- /dev/null +++ b/images/x86_64/fedora/6.19/Dockerfile @@ -0,0 +1,35 @@ +FROM fedora:44 + +ARG VERSION=6.19.7-300 +ARG HDR_VERSION=6.19.6-300 +ARG ARCHITECTURE=x86_64 +# Ensure we use the correct variable name consistently +ARG URL='https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/38/Everything/x86_64/os/Packages' +ARG CMAKE_VERSION + +# Use bash for all RUN steps with some safety options enabled. +SHELL ["/bin/bash", "-euo", "pipefail", "-c"] + +RUN dnf install --disablerepo=updates-testing -y @development-tools \ + clang \ + iproute \ + libcap-devel \ + llvm \ + openssh-server \ + rsync \ + systemd && \ + curl -Lo devel.rpm "${URL}/k/kernel-devel-${VERSION}.fc44.${ARCHITECTURE}.rpm" && \ + curl -Lo headers.rpm "${URL}/k/kernel-headers-${HDR_VERSION}.fc44.${ARCHITECTURE}.rpm" && \ + dnf install -y ./*.rpm && \ + rm -v ./*.rpm && \ + dnf clean all && \ + rm -rf /var/cache/yum +RUN mkdir -p /lib/modules/${VERSION}.fc44.${ARCHITECTURE} && \ + ln -s /usr/src/kernels/${VERSION}.fc44.${ARCHITECTURE}/ /lib/modules/${VERSION}.fc44.${ARCHITECTURE}/build +RUN CMAKE_ARCH="x86_64" && \ + CMAKE_RELEASE_NAME="cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}" && \ + curl -L "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_RELEASE_NAME}.tar.gz" | \ + tar -C /usr --strip-components 1 "${CMAKE_RELEASE_NAME}/bin" "${CMAKE_RELEASE_NAME}/share" -xzpvf - +RUN sed -i -e 's/^AcceptEnv LANG LC_\*$/#AcceptEnv LANG LC_*/' /etc/ssh/sshd_config && \ + echo 'UseDNS no' >> /etc/ssh/sshd_config && \ + echo "root:root" | chpasswd diff --git a/images/x86_64/fedora/6.19/Dockerfile.kernel b/images/x86_64/fedora/6.19/Dockerfile.kernel new file mode 100644 index 0000000..beed8e1 --- /dev/null +++ b/images/x86_64/fedora/6.19/Dockerfile.kernel @@ -0,0 +1,65 @@ +ARG VERSION=6.19.7-300 +ARG HVERSION=6.19.6-300 +ARG ARCHITECTURE=x86_64 +ARG URL='https://archives.fedoraproject.org/pub/fedora/linux/development/44/Everything/aarch64/os/Packages/k/' + +FROM initrd-builder:0.0.1 AS stage1 + +ARG VERSION +ARG HVERSION +ARG ARCHITECTURE +ARG URL + +WORKDIR /home/ubuntu + +RUN touch .placeholder && \ + curl -Lo kernel.rpm ${URL}kernel-core-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo headers.rpm ${URL}kernel-headers-${HVERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo modules.rpm ${URL}kernel-modules-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo sources.rpm ${URL}kernel-devel-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + curl -Lo modules-core.rpm ${URL}kernel-modules-core-${VERSION}.fc44.${ARCHITECTURE}.rpm && \ + rpm2cpio kernel.rpm > kernel.cpio && \ + rpm2cpio headers.rpm > headers.cpio && \ + rpm2cpio modules.rpm > modules.cpio && \ + rpm2cpio sources.rpm > sources.cpio && \ + rpm2cpio modules-core.rpm > modules-core.cpio && \ + mkdir extracted && \ + cd extracted && \ + cpio -idmv < ../kernel.cpio && \ + cpio -idmv < ../headers.cpio && \ + cpio -idmv < ../modules.cpio && \ + cpio -idmv < ../sources.cpio && \ + cpio -idmv < ../modules-core.cpio +RUN cd /home/ubuntu/extracted && \ + find . -name '*.xz' -exec xz -d {} \; && \ + extract-vmlinux $(find lib/modules -name vmlinuz) > /home/ubuntu/extracted/vmlinux + +FROM fedora:44 AS kmod-builder + +ARG VERSION +ARG HVERSION +ARG URL +ARG ARCHITECTURE + +WORKDIR /home/ubuntu +COPY --from=stage1 /home/ubuntu/extracted /home/ubuntu/extracted/ +COPY --from=stage1 /opt/initrd-builder/* /opt/initrd-builder/ + + +RUN dnf install --disablerepo=updates-testing -y @development-tools && \ + cp -v /opt/initrd-builder/Makefile.virtio_mmio Makefile && \ + curl -LO 'https://gitlab.com/cki-project/kernel-ark/-/raw/fedora-6.19/drivers/virtio/virtio_mmio.c' && \ + KERNEL_DIR="/home/ubuntu/extracted/usr/src/kernels/${VERSION}.fc44.${ARCHITECTURE}/" make + + +FROM initrd-builder:0.0.1 AS stage2 +COPY --from=stage1 /home/ubuntu/extracted /home/ubuntu/extracted/ +COPY --from=kmod-builder /home/ubuntu/virtio_mmio.ko /home/ubuntu/ +RUN cd /home/ubuntu/extracted && \ + /opt/initrd-builder/create.sh + +FROM scratch + +COPY --from=stage1 /home/ubuntu/.placeholder /lib/modules/ +COPY --from=stage1 /home/ubuntu/extracted/vmlinux /boot/ +COPY --from=stage2 /home/ubuntu/out/initrd /boot/