| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 1 | FROM debian:bookworm-slim |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 2 | |
| 3 | USER root |
| 4 | RUN \ |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 5 | apt-get update && \ |
| 6 | apt-get install -y --no-install-recommends \ |
| 7 | bzip2 ca-certificates ccache curl flex git libfl2 make tar && \ |
| 8 | rm -rf /var/lib/apt/lists/* && \ |
| 9 | useradd -p locked -m mani |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 10 | |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 11 | RUN mkdir -p -m 1777 /ccache && \ |
| 12 | mkdir -p /opt/djgpp |
| Nico Huber | fb433ba | 2023-03-04 19:09:47 +0000 | [diff] [blame] | 13 | |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 14 | ARG DJGPP_RELEASE=v3.4 |
| 15 | ARG DJGPP_ARCHIVE=djgpp-linux64-gcc1220.tar.bz2 |
| 16 | RUN curl -L --fail \ |
| 17 | https://github.com/andrewwutw/build-djgpp/releases/download/${DJGPP_RELEASE}/${DJGPP_ARCHIVE} | \ |
| 18 | tar -xj --strip-components=1 -C /opt/djgpp |
| 19 | |
| 20 | ENV PATH=/opt/djgpp/bin:$PATH |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 21 | ENV GIT_SSL_NO_VERIFY=1 |
| 22 | USER mani |
| 23 | |
| Nico Huber | c3b02dc | 2023-08-12 01:13:45 +0200 | [diff] [blame] | 24 | ARG ORIGIN=https://review.sourcearcade.org/flashprog.git |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 25 | ARG PCIUTILS_TAG=v3.15.0 |
| 26 | ARG GETOPT_VERSION=2.5 |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 27 | RUN cd && \ |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 28 | mkdir .ccache && \ |
| Nico Huber | c3b02dc | 2023-08-12 01:13:45 +0200 | [diff] [blame] | 29 | git clone ${ORIGIN} flashprog && \ |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 30 | git clone --depth 1 --branch ${PCIUTILS_TAG} \ |
| 31 | https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git && \ |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 32 | cd pciutils && \ |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 33 | make ZLIB=no DNS=no HOST=i386-djgpp-djgpp \ |
| 34 | CROSS_COMPILE=i586-pc-msdosdjgpp- \ |
| 35 | PREFIX=/ DESTDIR=$PWD/../ \ |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 36 | install-lib && \ |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 37 | cd ../ && \ |
| Arthur Heymans | 81deae9 | 2026-06-24 23:01:30 +0200 | [diff] [blame] | 38 | curl -L --fail https://ftp.math.utah.edu/pub/getopt/getopt-${GETOPT_VERSION}.tar.gz | tar xz && \ |
| 39 | cd getopt-${GETOPT_VERSION} && \ |
| 40 | printf '%s\n' 'char *gettext(const char *msgid);' >posix/gettext.h && \ |
| 41 | sed -i -e 's,env/[gs]etenv\.c,,g' Makefile.in && \ |
| 42 | AR=i586-pc-msdosdjgpp-ar RANLIB=i586-pc-msdosdjgpp-ranlib \ |
| 43 | ./configure --host i586-pc-msdosdjgpp && \ |
| 44 | make && \ |
| 45 | cp libgetopt.a ../lib/ && \ |
| 46 | cp posix/getopt.h ../include/ |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 47 | |
| Nico Huber | fb433ba | 2023-03-04 19:09:47 +0000 | [diff] [blame] | 48 | ARG IDENT=mani |
| 49 | ARG CCACHE_MAX=32M |
| 50 | RUN \ |
| 51 | ccache --set-config cache_dir=/ccache/${IDENT} && \ |
| 52 | ccache --set-config max_size=${CCACHE_MAX} |
| 53 | |
| Nico Huber | c0b52db | 2022-12-15 12:42:32 +0000 | [diff] [blame] | 54 | ENV DEVSHELL /bin/bash |
| 55 | COPY mani-wrapper.sh /home/mani/ |
| 56 | ENTRYPOINT ["/bin/sh", "/home/mani/mani-wrapper.sh"] |