blob: 602ee8bf948af0395259a47c9217f91a562d8cdb [file] [log] [blame]
Arthur Heymans81deae92026-06-24 23:01:30 +02001FROM debian:bookworm-slim
Nico Huberc0b52db2022-12-15 12:42:32 +00002
3USER root
4RUN \
Arthur Heymans81deae92026-06-24 23:01:30 +02005 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 Huberc0b52db2022-12-15 12:42:32 +000010
Arthur Heymans81deae92026-06-24 23:01:30 +020011RUN mkdir -p -m 1777 /ccache && \
12 mkdir -p /opt/djgpp
Nico Huberfb433ba2023-03-04 19:09:47 +000013
Arthur Heymans81deae92026-06-24 23:01:30 +020014ARG DJGPP_RELEASE=v3.4
15ARG DJGPP_ARCHIVE=djgpp-linux64-gcc1220.tar.bz2
16RUN 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
20ENV PATH=/opt/djgpp/bin:$PATH
Nico Huberc0b52db2022-12-15 12:42:32 +000021ENV GIT_SSL_NO_VERIFY=1
22USER mani
23
Nico Huberc3b02dc2023-08-12 01:13:45 +020024ARG ORIGIN=https://review.sourcearcade.org/flashprog.git
Arthur Heymans81deae92026-06-24 23:01:30 +020025ARG PCIUTILS_TAG=v3.15.0
26ARG GETOPT_VERSION=2.5
Nico Huberc0b52db2022-12-15 12:42:32 +000027RUN cd && \
Arthur Heymans81deae92026-06-24 23:01:30 +020028 mkdir .ccache && \
Nico Huberc3b02dc2023-08-12 01:13:45 +020029 git clone ${ORIGIN} flashprog && \
Arthur Heymans81deae92026-06-24 23:01:30 +020030 git clone --depth 1 --branch ${PCIUTILS_TAG} \
31 https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git && \
Nico Huberc0b52db2022-12-15 12:42:32 +000032 cd pciutils && \
Nico Huberc0b52db2022-12-15 12:42:32 +000033 make ZLIB=no DNS=no HOST=i386-djgpp-djgpp \
34 CROSS_COMPILE=i586-pc-msdosdjgpp- \
35 PREFIX=/ DESTDIR=$PWD/../ \
Arthur Heymans81deae92026-06-24 23:01:30 +020036 install-lib && \
Nico Huberc0b52db2022-12-15 12:42:32 +000037 cd ../ && \
Arthur Heymans81deae92026-06-24 23:01:30 +020038 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 Huberc0b52db2022-12-15 12:42:32 +000047
Nico Huberfb433ba2023-03-04 19:09:47 +000048ARG IDENT=mani
49ARG CCACHE_MAX=32M
50RUN \
51 ccache --set-config cache_dir=/ccache/${IDENT} && \
52 ccache --set-config max_size=${CCACHE_MAX}
53
Nico Huberc0b52db2022-12-15 12:42:32 +000054ENV DEVSHELL /bin/bash
55COPY mani-wrapper.sh /home/mani/
56ENTRYPOINT ["/bin/sh", "/home/mani/mani-wrapper.sh"]