Skip to content

Commit 12eba64

Browse files
authored
Build libpng 1.6.56 package (#1690)
2 parents 99843d3 + abdf94b commit 12eba64

3 files changed

Lines changed: 86 additions & 4 deletions

File tree

.dockerignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
!deno.json
1313
!deno.lock
1414

15+
!libpng/APKBUILD
16+
1517
!imagemagick-policy.xml
1618
!setup.cfg
1719
!setup.py

Dockerfile

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
4969
FROM docker.io/library/alpine:3.22 AS imagemagick6-src
5070
RUN --network=none adduser -S build -h /imagemagick6-build
5171
USER build
@@ -58,12 +78,18 @@ FROM docker.io/library/alpine:3.22 AS imagemagick6-build
5878
RUN --network=none adduser -S build -h /imagemagick6-build
5979
RUN --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
6793
USER build
6894
COPY --from=mozjpeg --chown=root:root --link /mozjpeg-build/package-root/include/ /usr/include/
6995
COPY --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
158184
RUN --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
163196
RUN adduser -S weasyl -h /weasyl -u 1000

libpng/APKBUILD

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
2+
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
3+
pkgname=libpng
4+
pkgver=1.6.56
5+
_apng_version=1.6.55
6+
pkgrel=0
7+
pkgdesc="Portable Network Graphics library"
8+
url="http://www.libpng.org"
9+
arch="all"
10+
license="Libpng"
11+
makedepends_build="gawk autoconf automake libtool"
12+
makedepends_host="zlib-dev"
13+
subpackages="$pkgname-doc $pkgname-static $pkgname-dev $pkgname-utils"
14+
source="libpng-$pkgver.tar.xz
15+
libpng-$_apng_version-apng.patch.gz
16+
"
17+
18+
build() {
19+
./configure \
20+
--build=$CBUILD \
21+
--host=$CHOST \
22+
--prefix=/usr \
23+
--sysconfdir=/etc \
24+
--mandir=/usr/share/man \
25+
--localstatedir=/var
26+
make
27+
}
28+
29+
check() {
30+
make check
31+
}
32+
33+
package() {
34+
make DESTDIR="$pkgdir" install
35+
rm -f "$pkgdir"/usr/lib/*.la
36+
}
37+
38+
utils() {
39+
pkgdesc="$pkgdesc (pngfix utils)"
40+
41+
amove usr/bin
42+
}
43+
44+
sha512sums="
45+
e405c46d7c9cf8c6c9fb6cf35b7e8498bb863bb24a918f4a6b1aca9f1e61d8b9feb46cb67a5478b6d87da74b2baf1d1f25c43889866408fc23c0ac498094081f libpng-1.6.56.tar.xz
46+
2f85d3b7c6341245a56029f2dd8de6fd59f2950f9030ecb3f8b7c07ba753f3deb8345077aa167f3efe0628089818608e7e780415530a8ca51fa77fc256daaa74 libpng-1.6.55-apng.patch.gz
47+
"

0 commit comments

Comments
 (0)