From 09878bc6886bb24e5c951b0a3b75a6f680da196a Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Wed, 13 Mar 2024 19:19:41 -0700 Subject: [PATCH] feat: package icu --- packages/icu/Containerfile | 49 ++++++++++++++++++++++++++++++++++++++ src/packages.mk | 13 ++++++++++ 2 files changed, 62 insertions(+) create mode 100644 packages/icu/Containerfile diff --git a/packages/icu/Containerfile b/packages/icu/Containerfile new file mode 100644 index 0000000..639d40d --- /dev/null +++ b/packages/icu/Containerfile @@ -0,0 +1,49 @@ +FROM scratch as base +ARG ARCH=x86_64 +ENV VERSION=74.2 +ENV SRC_HASH=68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c +ENV SRC_DATA_HASH=c28c3ca5f4ba3384781797138a294ca360988d4322674ad4d51e52f5d9b0a2b6 +ENV SRC_DATA_BIN_B_HASH=42a12ebfb1a82f80bb0005d9b6e018382ccaa2462f0d086a8c69ae736fdded3e +ENV SRC_DATA_BIN_L_HASH=2acdb1b982228040963d183b2dd9d321252c613e0f4db213d4bbc10417cde569 +ENV SRC_FILE=icu4c-74_2-src.tgz +ENV SRC_SITE=https://github.com/unicode-org/icu/releases/download/release-74-2 + +FROM base as fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/${SRC_FILE} . +ADD --checksum=sha256:${SRC_DATA_HASH} ${SRC_SITE}/icu4c-74_2-data.zip . +ADD --checksum=sha256:${SRC_DATA_BIN_B_HASH} ${SRC_SITE}/icu4c-74_2-data-bin-b.zip . +ADD --checksum=sha256:${SRC_DATA_BIN_L_HASH} ${SRC_SITE}/icu4c-74_2-data-bin-l.zip . + +FROM fetch as build +COPY --from=stagex/bash . / +COPY --from=stagex/binutils . / +COPY --from=stagex/busybox . / +COPY --from=stagex/make . / +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +RUN tar -xzf ${SRC_FILE} +WORKDIR icu/source +RUN --network=none <<-EOF + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man + --with-data-packaging=archive \ + --disable-samples \ + --enable-static + make +EOF + +FROM build as install +RUN --network=none <<-EOF + make DESTDIR=/rootfs install + install -D -m644 /icu4c-74_2-data.zip /rootfs/usr/share/icu/74.2/ + install -D -m644 /icu4c-74_2-data-bin-b.zip /rootfs/usr/share/icu/74.2/ + install -D -m644 /icu4c-74_2-data-bin-l.zip /rootfs/usr/share/icu/74.2/ +EOF +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem as package +COPY --from=install /rootfs / diff --git a/src/packages.mk b/src/packages.mk index 99a159d..775da58 100644 --- a/src/packages.mk +++ b/src/packages.mk @@ -525,6 +525,19 @@ out/gzip/index.json: \ out/musl/index.json $(call build,gzip) +.PHONY: icu +icu: out/icu/index.json +out/icu/index.json: \ + packages/icu/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,icu) + .PHONY: iputils iputils: out/iputils/index.json out/iputils/index.json: \