@@ -46,6 +46,26 @@ RUN --mount=type=bind,from=mozjpeg-src,source=/mozjpeg-build/mozjpeg-4.1.5,targe
4646 && cmake --build . --parallel --target install
4747
4848
49+ FROM docker.io/library/alpine:3.22 AS libpng-package
50+ RUN --network=none adduser -S build -h /libpng-build
51+ RUN --mount=type=cache,id=apk,target=/var/cache/apk,sharing=locked \
52+ ln -s /var/cache/apk /etc/apk/cache && apk upgrade && apk add \
53+ abuild \
54+ musl-dev gcc make \
55+ gawk autoconf automake libtool \
56+ zlib-dev
57+ USER build
58+ WORKDIR /libpng-build/libpng
59+ ADD --checksum=sha256:f7d8bf1601b7804f583a254ab343a6549ca6cf27d255c302c47af2d9d36a6f18 --chown=build --link https://sourceforge.net/projects/libpng/files/libpng16/1.6.56/libpng-1.6.56.tar.xz/download ./libpng-1.6.56.tar.xz
60+ ADD --checksum=sha256:017c06f75ffed25f6cda9b5369ec6da0ac35a6616adf7abe4222516a0237f37a --chown=build --link https://sourceforge.net/projects/libpng-apng/files/libpng16/1.6.55/libpng-1.6.55-apng.patch.gz/download ./libpng-1.6.55-apng.patch.gz
61+ # TODO: craft deterministic dummy-abuild.key and copy it in alongside APKBUILD
62+ RUN --network=none openssl genrsa -out dummy-abuild.key 512
63+ COPY --chown=build --link ./libpng/APKBUILD ./
64+ RUN --network=none \
65+ PACKAGER_PRIVKEY=/libpng-build/libpng/dummy-abuild.key \
66+ abuild -P /libpng-build/packages -c verify unpack prepare build rootpkg clean
67+
68+
4969FROM docker.io/library/alpine:3.22 AS imagemagick6-src
5070RUN --network=none adduser -S build -h /imagemagick6-build
5171USER build
@@ -58,12 +78,18 @@ FROM docker.io/library/alpine:3.22 AS imagemagick6-build
5878RUN --network=none adduser -S build -h /imagemagick6-build
5979RUN --mount=type=cache,id=apk,target=/var/cache/apk,sharing=locked \
6080 ln -s /var/cache/apk /etc/apk/cache && apk upgrade && apk add \
81+ zlib-dev
82+ RUN --network=none \
83+ --mount=type=bind,from=libpng-package,source=/libpng-build/packages/libpng-build/x86_64,target=/run/libpng-packages,ro \
84+ apk add --no-network --allow-untrusted \
85+ /run/libpng-packages/libpng-1.6.56-r0.apk \
86+ /run/libpng-packages/libpng-dev-1.6.56-r0.apk
87+ RUN --mount=type=cache,id=apk,target=/var/cache/apk,sharing=locked \
88+ apk add \
6189 musl-dev gcc make \
6290 lcms2-dev \
63- libpng-dev \
6491 libxml2-dev \
65- libwebp-dev \
66- zlib-dev
92+ libwebp-dev
6793USER build
6894COPY --from=mozjpeg --chown=root:root --link /mozjpeg-build/package-root/include/ /usr/include/
6995COPY --from=mozjpeg --chown=root:root --link /mozjpeg-build/package-root/lib64/ /usr/lib/
@@ -157,7 +183,14 @@ FROM docker.io/library/python:3.10-alpine3.22 AS package
157183# libpq: psycopg2
158184RUN --mount=type=cache,id=apk,target=/var/cache/apk,sharing=locked \
159185 ln -s /var/cache/apk /etc/apk/cache && apk upgrade && apk add \
160- libgcc libgomp lcms2 libpng libxml2 libwebpdemux libwebpmux \
186+ zlib
187+ RUN --network=none \
188+ --mount=type=bind,from=libpng-package,source=/libpng-build/packages/libpng-build/x86_64,target=/run/libpng-packages,ro \
189+ apk add --no-network --allow-untrusted \
190+ /run/libpng-packages/libpng-1.6.56-r0.apk
191+ RUN --mount=type=cache,id=apk,target=/var/cache/apk,sharing=locked \
192+ apk add \
193+ libgcc libgomp lcms2 libxml2 libwebpdemux libwebpmux \
161194 libmemcached-libs \
162195 libpq
163196RUN adduser -S weasyl -h /weasyl -u 1000
0 commit comments