FROM i386/alpine:latest AS glide-fetcher ARG CACHE_BUST=10 RUN apk add --no-cache git ca-certificates COPY .docker-cache/glide.ref /tmp/glide.ref WORKDIR /src RUN cat /tmp/glide.ref > /dev/null && \ echo "$CACHE_BUST" > /dev/null && \ git clone --depth 1 --branch retrodebian --single-branch https://gitea.chacha.ddns.net/chacha/glide.git && \ rm -Rf glide/.git FROM i386/alpine:latest AS icons-fetcher ARG CACHE_BUST=11 RUN apk add --no-cache git ca-certificates COPY .docker-cache/icons.ref /tmp/icons.ref WORKDIR /root RUN cat /tmp/icons.ref > /dev/null && \ echo "$CACHE_BUST" > /dev/null && \ git clone --depth 1 --branch main --single-branch https://gitea.chacha.ddns.net/chacha/icons-collection.git && \ rm -Rf icons-collection/.git # building a modified Kernel + modules + libs FROM lpenz/debian-etch-i386-minbase AS packages-builder ARG DEBIAN_FRONTEND=noninteractive ARG ARCH=i386 ARG CONCURRENCY_LEVEL=4 # Preparing Environment RUN (echo "deb http://archive.debian.org/debian etch main non-free" > /etc/apt/sources.list) && \ (echo "deb-src http://archive.debian.org/debian etch main non-free" >> /etc/apt/sources.list) && \ mkdir -p /usr/src/modules &&\ apt-get update && \ apt-get install -y aptitude build-essential quilt cvs unzip git-core ncurses-dev\ linux-headers-2.6.24-etchnhalf.1-686 \ squashfs-source-etchnhalf \ linux-source-2.6.24 && \ apt-get build-dep -y linux-image-2.6.24-etchnhalf.1-686 && \ apt-get clean # Preparing Kernel + patchs + modules WORKDIR /usr/src COPY --from=glide-fetcher /src/glide glide COPY unionfs-2.2.3_for_2.6.24.diff.gz ./ COPY nvidia.patch ./ RUN tar xjf linux-source-2.6.24.tar.bz2 && \ tar xjf etchnhalf/squashfs.tar.bz2 && \ ln -s linux-headers-2.6.24-etchnhalf.1-686/ linux-headers && \ mv glide/Device3Dfx modules/ &&\ wget http://archive.debian.org/debian-archive/debian/pool/non-free/n/nvidia-graphics-drivers-legacy-71xx/nvidia-kernel-legacy-71xx-source_71.86.15-3_i386.deb && \ dpkg-deb -x nvidia-kernel-legacy-71xx-source_71.86.15-3_i386.deb / && \ tar xjf nvidia-kernel-legacy-71xx.tar.bz2 && \ rm nvidia-kernel-legacy-71xx-source_71.86.15-3_i386.deb && \ patch -d modules/nvidia-kernel-legacy-71xx -p1 < nvidia.patch # Building Kernel + patchs + modules WORKDIR /usr/src/linux-source-2.6.24 COPY config-kernel ./ RUN (zcat /usr/src/unionfs-2.2.3_for_2.6.24.diff.gz | patch -p1) && \ (cat config-kernel > .config) && \ make oldconfig &&\ make-kpkg --initrd --arch $ARCH kernel_headers kernel_image modules_image # Modified urxvt terminal WORKDIR /usr/src RUN apt-get build-dep -y rxvt-unicode && \ apt-get source rxvt-unicode &&\ cd rxvt-unicode-* && \ cp debian/rules debian/rules.orig && \ cp debian/changelog debian/changelog.orig && \ sed -i '/\.\/configure/ s/$/ --disable-iso14755/' debian/rules && \ perl -0pi -e 's/#if ENABLE_FRILLS \|\| ISO_14755\n\s*\/\/ ISO 14755 support/#if 0\n \/\/ ISO 14755 support/' src/command.C && \ sed -i '1s/^\([^)]* (\)\([^)]*\)\(.*\)$/\1\2+retrodebian1\3/' debian/changelog && \ dpkg-buildpackage -us -uc -b # Building userspace libs # 3Dfx WORKDIR /usr/src COPY buildglidepkg.sh ./ RUN apt-get install -y nasm && \ chmod +x buildglidepkg.sh # cvg / voodoo2 WORKDIR /usr/src/glide # glide2x RUN mv swlibs glide2x/ WORKDIR /usr/src/glide/glide2x/ RUN make -f Makefile.linux clean RUN make -f Makefile.linux FX_GLIDE_HW=cvg USE_X86=1 USE_MMX=1 RUN mv swlibs ../glide3x/ # glide3x WORKDIR /usr/src/glide/glide3x/ RUN make -f Makefile.linux clean RUN make -f Makefile.linux FX_GLIDE_HW=cvg USE_X86=1 USE_MMX=1 RUN mv swlibs ../ WORKDIR /usr/src/ RUN /usr/src/buildglidepkg.sh cvg # h3 / voodoo3 & Banshee RUN apt-get install -y libx11-dev x11proto-xf86dga-dev libxxf86vm-dev libxxf86dga-dev WORKDIR /usr/src/glide # glide2x RUN mv swlibs glide2x/ WORKDIR /usr/src/glide/glide2x/ RUN make -f Makefile.linux clean RUN make -f Makefile.linux FX_GLIDE_HW=h3 USE_X86=1 USE_MMX=1 # glide3x RUN mv swlibs ../glide3x/ WORKDIR /usr/src/glide/glide3x/ RUN make -f Makefile.linux clean RUN make -f Makefile.linux FX_GLIDE_HW=h3 USE_X86=1 USE_MMX=1 RUN mv swlibs ../ WORKDIR /usr/src/ RUN /usr/src/buildglidepkg.sh h3 # sst1 / voodoo1 WORKDIR /usr/src/glide # glide2x RUN mv swlibs glide2x/ WORKDIR /usr/src/glide/glide2x/ RUN make -f Makefile.linux clean RUN make -f Makefile.linux FX_GLIDE_HW=sst1 USE_X86=1 USE_MMX=1 # glide3x RUN mv swlibs ../glide3x/ WORKDIR /usr/src/glide/glide3x/ RUN make -f Makefile.linux clean RUN make -f Makefile.linux FX_GLIDE_HW=sst1 USE_X86=1 USE_MMX=1 RUN mv swlibs ../ WORKDIR /usr/src/ RUN /usr/src/buildglidepkg.sh sst1 # sst96 / voodoo Rush # cannot build driver because of missing xf86rush lib... #WORKDIR /usr/src/glide # # glide2x # RUN mv swlibs glide2x/ # WORKDIR /usr/src/glide/glide2x/ # RUN make -f Makefile.linux clean # RUN make -f Makefile.linux FX_GLIDE_HW=sst96 # # glide3x # RUN mv swlibs ../glide3x/ # WORKDIR /usr/src/glide/glide3x/ # RUN make -f Makefile.linux clean # RUN make -f Makefile.linux FX_GLIDE_HW=sst96 USE_X86=1 USE_MMX=1 # RUN mv swlibs ../ #WORKDIR /usr/src/ #RUN /usr/src/buildglidepkg.sh sst96 #RUN rm *.gz *.bz2 && rm -Rf glide && rm -rf /var/lib/apt/lists/* FROM i386/alpine:latest AS ut99-builder RUN apk add --no-cache git ca-certificates dos2unix ARG CACHE_BUST=10 COPY .docker-cache/ut99.ref /tmp/ut99.ref # Package UT99 WORKDIR /root RUN cat /tmp/ut99.ref > /dev/null && \ echo "$CACHE_BUST" && \ git clone --depth 1 --branch master --single-branch https://gitea.chacha.ddns.net/chacha/UT99-Official.git ut-game && \ rm -Rf ut-game/.git COPY games/ut99/ut-install-436.run ./ RUN chmod +x ut-install-436.run && \ ./ut-install-436.run --target ./ut || true && \ tar xzf ./ut/data.tar.gz -C ut-game && \ cp ./ut/bin/x86/ut ut-game/ && \ rm ut-game/System/*.frt && \ rm ut-game/System/*.itt && \ rm ut-game/System/*.est && \ rm ut-game/System/*.exe && \ rm ut-game/System/*.dll && \ rm ut-game/System/*.url && \ rm ut-game/System/*.bat && \ rm ut-game/System/de.* && \ rm ut-game/System/UnrealTournament.ini && \ rm ut-game/System/Default.ini && \ rm ut-game/System/libSDL-1.1.so.0 && \ rm ut-game/Sounds/*est_uax && \ rm ut-game/Sounds/*frt_uax && \ rm ut-game/Sounds/*itt_uax && \ rm ut-game/DoConfig.py && \ rm ut-game/DoConfig.sh && \ rm -Rf ut-game/Web && \ rm -Rf ut-game/Help/* &&\ tar xzf ./ut/Glide.ini.tar.gz -C ut-game && \ mv ut-game/System/UnrealTournament.ini ut-game/System/Default-glide.ini && \ ls -al ./ut/ && \ tar xzf ./ut/OpenGL.ini.tar.gz -C ut-game && \ cp ut-game/System/UnrealTournament.ini ut-game/System/Default.ini && \ mv ut-game/System/UnrealTournament.ini ut-game/System/Default-opengl.ini && \ dos2unix ut-game/System/*.ini COPY games/ut99/ut ./ut-game/ut RUN chmod a+x,o-w ./ut-game/ut # Note: we need to use Lenny because of live-helper # it allows creating Etch live image though ! FROM lpenz/debian-lenny-i386-minbase WORKDIR /root COPY --from=packages-builder /usr/src/*.deb . COPY --from=ut99-builder /root/ut-game ./ut-game COPY --from=icons-fetcher /root/icons-collection ./icons-collection COPY /deps ./deps COPY update-initramfs.sh . COPY zzz-config-live.sh . COPY desktop . COPY wallpaper.jpg . COPY neofetch . COPY editions ./editions COPY internal ./internal RUN apt-get update && \ apt-get -y --force-yes install live-helper genisoimage syslinux squashfs-tools aptitude && \ apt-get clean # rm -rf /var/lib/apt/lists/* WORKDIR /root/live FROM packages-builder WORKDIR /usr/src #RUN apt-get build-dep -y debian-edu-artwork-usplash && \ # apt-get source debian-edu-artwork-usplash &&\ # ls -al && \ # cd debian-edu-artwork-*