FROM alpine:latest AS fetcher
ARG CACHE_BUST=2
RUN apk add --no-cache git ca-certificates
WORKDIR /src
RUN echo "$CACHE_BUST" && git clone --depth 1 --branch retrodebian --single-branch https://gitea.chacha.ddns.net/chacha/glide.git


# building a modified Kernel + modules + libs
FROM lpenz/debian-etch-i386-minbase AS kernel-builder
ARG DEBIAN_FRONTEND=noninteractive
ARG ARCH=i386
ARG CONCURRENCY_LEVEL=4
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 
 #   rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src
COPY --from=fetcher /src/glide glide
COPY unionfs-2.2.3_for_2.6.24.diff.gz ./    
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/

COPY nvidia.patch ./
RUN 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 && \
    patch -d modules/nvidia-kernel-legacy-71xx -p1 < nvidia.patch

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

#RUN rm *.gz *.bz2 && rm -Rf glide

# 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=kernel-builder /usr/src/*.deb .
COPY update-initramfs.sh .
COPY zzz-config-live.sh .
COPY desktop .
COPY wallpaper.jpg .
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