diff --git a/.forgejo/workflows/merge-main-check.yml b/.forgejo/workflows/merge-main-check.yml new file mode 100644 index 0000000..c95b1c0 --- /dev/null +++ b/.forgejo/workflows/merge-main-check.yml @@ -0,0 +1,26 @@ +name: merge-main-check +on: + pull_request: + types: + - opened + - edited + - reopened + - synchronize + +defaults: + run: + shell: 'sh -e {0}' + +jobs: + check: + runs-on: shell + if: github.base_ref == 'main' + steps: + - name: Check if non-staging -> main + if: github.head_ref != 'staging' + run: echo 'Cannot merge non-staging branch to main'; exit 1 + + - name: Check if staging -> main + if: github.head_ref == 'staging' + run: echo 'Merge from staging branch to main allowed'; exit 0 + diff --git a/.taplo.toml b/.taplo.toml new file mode 100644 index 0000000..e79f485 --- /dev/null +++ b/.taplo.toml @@ -0,0 +1 @@ +include = ["MAINTAINERS", ".taplo.toml"] diff --git a/MAINTAINERS b/MAINTAINERS index 8d5a813..993351d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1,160 +1,160 @@ [people] [people.lancevick] -Name = "Lance Vick" -Location = Silicon Valley, USA -Email = stagex@lance.vick.house -Matrix = @lance:matrix.org -Fediverse = @lrvick@mastodon.social -Keyoxide = https://keyoxide.org/E90A401336C8AAA9 -Website = https://lance.dev +name = "Lance Vick" +location = "Silicon Valley, USA" +email = "stagex@lance.vick.house" +matrix = "@lance:matrix.org" +fediverse = "@lrvick@mastodon.social" +keyoxide = "https://keyoxide.org/E90A401336C8AAA9" +website = "https://lance.dev" [people.antonlivaja] -Name = "Anton Livaja" -Location = Toronto, Canada -Email = stagex@livaja.me -Matrix = @antonleviathan:matrix.org -Fediverse = @anton@mastodon.online -Keyoxide = https://keyoxide.org/DC4B7D1F52E0BA4D -Website = https://antonlivaja.com/ +name = "Anton Livaja" +location = "Toronto, Canada" +email = "stagex@livaja.me" +matrix = "@antonleviathan:matrix.org" +fediverse = "@anton@mastodon.online" +keyoxide = "https://keyoxide.org/DC4B7D1F52E0BA4D" +website = "https://antonlivaja.com/" [people.ryanheywood] -Name = "Ryan Heywood" -Location = Florida, USA -Email = me@ryansquared.pub -Matrix = @ryansquared:beeper.com -Fediverse = @ryan@tilde.zone -Keyoxide = https://keyoxide.org/8E401478A3FBEF72 -Website = https://ryansquared.pub +name = "Ryan Heywood" +location = "Florida, USA" +email = "me@ryansquared.pub" +matrix = "@ryansquared:beeper.com" +fediverse = "@ryan@tilde.zone" +keyoxide = "https://keyoxide.org/8E401478A3FBEF72" +website = "https://ryansquared.pub" [people.dannygrove] -Name = "Danny Grove" -Location = California, USA -Email = stagex@dannygrove.com -Matrix = @dgrove:matrix.org -Keyoxide = https://keyoxide.org/C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD -Website = https://dannygrove.com +name = "Danny Grove" +location = "California, USA" +email = "stagex@dannygrove.com" +matrix = "@dgrove:matrix.org" +keyoxide = "https://keyoxide.org/C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD" +website = "https://dannygrove.com" [keys] [keys.lancevick.personal] -ID = 6B61ECD76088748C70590D55E90A401336C8AAA9 -Algorithm = RSA4096 -Servers = openpgp.org -Devices = Yubikey 4 Nano, Yubikey 5c, FST-01 -OfflineCA = Yes -Backup = Yes -Interaction = Yes +id = "6B61ECD76088748C70590D55E90A401336C8AAA9" +algorithm = "RSA4096" +servers = "openpgp.org" +devices = "Yubikey 4 Nano, Yubikey 5c, FST-01" +offline-ca = true +backup = true +interaction = true [keys.antonlivaja.personal] -ID = F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D -Algorithm = RSA4096 -Servers = openpgp.org -Devices = Yubikey 5c -OfflineCA = Yes -Backup = Yes -Interaction = Yes +id = "F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D" +algorithm = "RSA4096" +servers = "openpgp.org" +devices = "Yubikey 5c" +offline-ca = true +backup = true +interaction = true [keys.ryanheywood.personal] -ID = 88823A75ECAA786B0FF38B148E401478A3FBEF72 -Algorithm = RSA4096 -Servers = openpgp.org -Devices = Yubikey 4c Nano, Yubikey 5 NFC -OfflineCA = No -Backup = Yes -Interaction = Yes +id = "88823A75ECAA786B0FF38B148E401478A3FBEF72" +algorithm = "RSA4096" +servers = "openpgp.org" +devices = "Yubikey 4c Nano, Yubikey 5 NFC" +offline-ca = false +backup = true +interaction = true [keys.dannygrove.personal] -ID = C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD -Algorithm = RSA4096 -Servers = openpgp.org -Devices = Yubikey 5 NFC, Yubikey 5C -OfflineCA = Yes -Backup = Yes -Interaction = Yes +id = "C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD" +algorithm = "RSA4096" +servers = "openpgp.org" +devices = "Yubikey 5 NFC, Yubikey 5C" +offline-ca = true +backup = true +interaction = true [machines] [machines.lancevick.local1] -Owner = Lance Vick -Location = Silicon Valley, USA -Type = metal -Arch = x86_64 -Brand = AMD -Model = Ryzen Threadripper 2990WX -Ghz = 3 -Cores = 32 -OS = QubesOS / Debian -Runtime = Docker +owner = "Lance Vick" +location = "Silicon Valley, USA" +type = "metal" +arch = "x86_64" +brand = "AMD" +model = "Ryzen Threadripper 2990WX" +ghz = 3 +cores = 32 +os = "QubesOS / Debian" +runtime = "Docker" [machines.antonlivaja.local1] -Owner = Anton Livaja -Location = Toronto, Canada -Type = metal -Arch = x86_64 -Brand = AMD -Model = Ryzen Threadripper 2970X -Ghz = 3 -Cores = 24 -OS = QubesOS / Debian -Runtime = Docker +owner = "Anton Livaja" +location = "Toronto, Canada" +type = "metal" +arch = "x86_64" +brand = "AMD" +model = "Ryzen Threadripper 2970X" +ghz = 3 +cores = 24 +os = "QubesOS / Debian" +runtime = "Docker" [machines.lancevick.remote1] -Owner = Hetzner Online GmbH -Location = Finland, Europe -Type = metal -Arch = x86_64 -Brand = AMD -Model = EPYC 7502P -Ghz = 2.2 -Cores = 32 -OS = Debian -Runtime = Docker +owner = "Hetzner Online GmbH" +location = "Finland, Europe" +type = "metal" +arch = "x86_64" +brand = "AMD" +model = "EPYC 7502P" +ghz = 2.2 +cores = 32 +os = "Debian" +runtime = "Docker" [machines.antonlivaja.remote1] -Owner = Hetzner Online GmbH -Location = Hillsboro, OR, USA -Type = vm -Arch = x86_64 -Brand = AMD -Model = EPYC Milan -Ghz = 2.0 -Cores = 32 -OS = Debian -Runtime = Docker +owner = "Hetzner Online GmbH" +location = "Hillsboro, OR, USA" +type = "vm" +arch = "x86_64" +brand = "AMD" +model = "EPYC Milan" +ghz = 2.0 +cores = 32 +os = "Debian" +runtime = "Docker" [machines.ryanheywood.remote] -Owner = Hetzner Online GmbH -Location = Falkstein, Germany -Type = metal -Arch = x86_64 -Brand = AMD -Model = Ryzen Threadripper 2950X -Ghz = 3.5 -Cores = 16 -OS = Debian -Runtime = Docker +owner = "Hetzner Online GmbH" +location = "Falkstein, Germany" +type = "metal" +arch = "x86_64" +brand = "AMD" +model = "Ryzen Threadripper 2950X" +ghz = 3.5 +cores = 16 +os = "Debian" +runtime = "Docker" [machines.dannygrove.local1] -Owner = Danny Grove -Location = California, USA -Type = metal -Arch = x86_64 -Brand = Intel -Model = Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz -Ghz = 4.2 -Cores = 4 -OS = Arch Linux -Runtime = Docker +owner = "Danny Grove" +location = "California, USA" +type = "metal" +arch = "x86_64" +brand = "Intel" +model = "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz" +ghz = 4.2 +cores = 4 +os = "arch Linux" +runtime = "Docker" [machines.dannygrove.local2] -Owner = Danny Grove -Location = California, USA -Type = metal -Arch = x86_64 -Brand = AMD -Model = AMD Ryzen 7 7840U -Ghz = 3.3 -Cores = 8 -OS = Arch Linux -Runtime = Docker +owner = "Danny Grove" +location = "California, USA" +type = "metal" +arch = "x86_64" +brand = "AMD" +model = "AMD Ryzen 7 7840U" +ghz = 3.3 +cores = 8 +os = "arch Linux" +runtime = "Docker" diff --git a/Makefile b/Makefile index 1740431..64d948d 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ export PLATFORM := linux/amd64 export BUILDER := $(shell which docker) export REGISTRY_LOCAL := stagex-local export REGISTRY_REMOTE := stagex +export CHECK ?= 0 export NOCACHE ?= 0 export MIRRORS := \ git.distrust.co \ @@ -12,6 +13,13 @@ else NOCACHE_FLAG= endif export NOCACHE_FLAG +ifeq ($(CHECK), 1) +CHECK_FLAG=--check +else +CHECK_FLAG= +endif +export CHECK_FLAG + clean_logs := $(shell rm *.log 2>&1 >/dev/null || :) DEFAULT_GOAL := default @@ -25,8 +33,11 @@ include src/groups.mk .PHONY: all all: \ compat \ - $(shell find packages/* -type d -exec sh -c 'basename {} | tr "\n" " "' \; ) \ - digests.txt + $(shell find packages/* -type d -exec sh -c 'basename {} | tr "\n" " "' \; ) + +.PHONY: check +check: + $(MAKE) CHECK=1 all .PHONY: compat compat: diff --git a/packages/abseil-cpp/Containerfile b/packages/abseil-cpp/Containerfile index eaa3ba4..88aa9ab 100644 --- a/packages/abseil-cpp/Containerfile +++ b/packages/abseil-cpp/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=20240116.2 ENV SRC_HASH=733726b8c3a6d39a4120d7e45ea8b41a434cdacde401cba500f14236c49b39dc ENV SRC_FILE=${VERSION}.tar.gz ENV SRC_SITE=https://github.com/abseil/abseil-cpp/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/linux-headers . / @@ -20,7 +20,7 @@ COPY --from=stagex/gcc . / COPY --from=stagex/zlib . / RUN tar -xf ${SRC_FILE} -WORKDIR abseil-cpp-${VERSION} +WORKDIR /abseil-cpp-${VERSION} RUN <<-EOF set -eux cmake \ @@ -38,8 +38,8 @@ RUN <<-EOF cmake --build build EOF -FROM build as install +FROM build AS install RUN --network=none DESTDIR="/rootfs" cmake --install build -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/acl/Containerfile b/packages/acl/Containerfile new file mode 100644 index 0000000..b20b623 --- /dev/null +++ b/packages/acl/Containerfile @@ -0,0 +1,36 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=2.3.2 +ENV SRC_HASH=5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c +ENV SRC_FILE=acl-${VERSION}.tar.gz +ENV SRC_SITE=https://download.savannah.nongnu.org/releases/acl/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/attr . / +RUN tar -xf ${SRC_FILE} +WORKDIR /acl-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --libdir=/usr/lib \ + --libexecdir=/usr/libexec + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/alsa-lib/Containerfile b/packages/alsa-lib/Containerfile new file mode 100644 index 0000000..0a19048 --- /dev/null +++ b/packages/alsa-lib/Containerfile @@ -0,0 +1,41 @@ +FROM scratch AS base +ENV VERSION=1.2.12 +ENV SRC_HASH=4868cd908627279da5a634f468701625be8cc251d84262c7e5b6a218391ad0d2 +ENV SRC_FILE=alsa-lib-${VERSION}.tar.bz2 +ENV SRC_SITE=https://alsa-project.org/files/pub/lib/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/make . / +COPY --from=stagex/musl . / +RUN tar -xf ${SRC_FILE} +WORKDIR /alsa-lib-${VERSION} +RUN --network=none <<-EOF + set -eux; \ + ./configure \ + --build=x86_64-linux-musl \ + --host=x86_64-linux-musl \ + --prefix=/usr \ + --libdir=/usr/lib \ + --disable-python \ + --disable-static \ + --disable-resmgr \ + --enable-rawmidi \ + --enable-seq \ + --enable-aload \ + --disable-dependency-tracking \ + --without-versioned + make -j "$(nproc)" +EOF + +FROM build AS install +RUN --network=none make DESTDIR=/rootfs install + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/apr-util/Containerfile b/packages/apr-util/Containerfile new file mode 100644 index 0000000..9174206 --- /dev/null +++ b/packages/apr-util/Containerfile @@ -0,0 +1,53 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.6.3 +ENV SRC_HASH=a41076e3710746326c3945042994ad9a4fcac0ce0277dd8fea076fec3c9772b5 +ENV SRC_FILE=apr-util-${VERSION}.tar.bz2 +ENV SRC_SITE=https://www.apache.org/dist/apr/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/expat . / +COPY --from=stagex/gdbm . / +COPY --from=stagex/openldap . / +COPY --from=stagex/sqlite3 . / +COPY --from=stagex/openssl . / +COPY --from=stagex/postgresql . / +COPY --from=stagex/apr . / +COPY --from=stagex/libtool . / +COPY --from=stagex/util-linux . / + +RUN tar -xf ${SRC_FILE} +WORKDIR /apr-util-${VERSION} +COPY *.patch . +RUN --network=none <<-EOF + set -eux + patch -p1 < musl-fix-testsuite.patch + ./configure \ + --prefix=/usr \ + --with-apr=/usr \ + --with-ldap \ + --with-pgsql \ + --with-mysql \ + --with-sqlite3 \ + --with-crypto \ + --with-openssl \ + --without-sqlite2 \ + --with-dbm=ndbm \ + --with-ndbm + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/apr-util/musl-fix-testsuite.patch b/packages/apr-util/musl-fix-testsuite.patch new file mode 100644 index 0000000..eb2c510 --- /dev/null +++ b/packages/apr-util/musl-fix-testsuite.patch @@ -0,0 +1,19 @@ +diff --git a/test/testxlate.c b/test/testxlate.c +index 6981eff..de00fa4 100644 +--- a/test/testxlate.c ++++ b/test/testxlate.c +@@ -116,8 +116,12 @@ static void test_transformation(abts_case *tc, void *data) + } + + /* 4. Transformation using charset aliases */ +- one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p); +- one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p); ++ if (is_transform_supported(tc, "UTF-8", "UTF-7", p)) { ++ one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p); ++ } ++ if (is_transform_supported(tc, "UTF-7", "UTF-8", p)) { ++ one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p); ++ } + } + + #endif /* APR_HAS_XLATE */ diff --git a/packages/apr/Containerfile b/packages/apr/Containerfile new file mode 100644 index 0000000..7ecfc5f --- /dev/null +++ b/packages/apr/Containerfile @@ -0,0 +1,38 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.7.5 +ENV SRC_HASH=cd0f5d52b9ab1704c72160c5ee3ed5d3d4ca2df4a7f8ab564e3cb352b67232f2 +ENV SRC_FILE=apr-${VERSION}.tar.bz2 +ENV SRC_SITE=https://www.apache.org/dist/apr/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/util-linux . / +RUN tar -xf ${SRC_FILE} +WORKDIR /apr-${VERSION} +COPY *.patch . +RUN --network=none <<-EOF + set -eux \ + patch -p1 apr-1.6.2-dont-test-dlclose.patch + patch -p1 semtimedop-s390x.patch + ./configure \ + --prefix=/usr \ + --datadir=/usr/share \ + --enable-nonportable-atomics=no \ + --with-devrandom=/dev/urandom + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/apr/apr-1.6.2-dont-test-dlclose.patch b/packages/apr/apr-1.6.2-dont-test-dlclose.patch new file mode 100644 index 0000000..faf8b0b --- /dev/null +++ b/packages/apr/apr-1.6.2-dont-test-dlclose.patch @@ -0,0 +1,22 @@ +dlclose is a no-op on musl. Test will always fail. + +--- apr-1.6.2/test/testdso.c.old 2010-01-03 19:35:07.000000000 -0600 ++++ apr-1.6.2/test/testdso.c 2017-09-10 18:43:43.374983090 -0500 +@@ -244,7 +244,7 @@ + abts_run_test(suite, test_load_module, NULL); + abts_run_test(suite, test_dso_sym, NULL); + abts_run_test(suite, test_dso_sym_return_value, NULL); +- abts_run_test(suite, test_unload_module, NULL); ++ /* abts_run_test(suite, test_unload_module, NULL); */ + + #ifdef LIB_NAME + apr_filepath_merge(&libname, NULL, LIB_NAME, 0, p); +@@ -252,7 +252,7 @@ + abts_run_test(suite, test_load_library, NULL); + abts_run_test(suite, test_dso_sym_library, NULL); + abts_run_test(suite, test_dso_sym_return_value_library, NULL); +- abts_run_test(suite, test_unload_library, NULL); ++ /* abts_run_test(suite, test_unload_library, NULL); */ + #endif + + abts_run_test(suite, test_load_notthere, NULL); \ No newline at end of file diff --git a/packages/apr/semtimedop-s390x.patch b/packages/apr/semtimedop-s390x.patch new file mode 100644 index 0000000..f1bb9ea --- /dev/null +++ b/packages/apr/semtimedop-s390x.patch @@ -0,0 +1,16 @@ +the testsuite hangs on s390x when testing locking mechanism sysvsem. Work +around by avoid use semtimedop for s390x. + +diff --git a/locks/unix/proc_mutex.c b/locks/unix/proc_mutex.c +index 8e2187f..cad6c4a 100644 +--- a/locks/unix/proc_mutex.c ++++ b/locks/unix/proc_mutex.c +@@ -449,7 +449,7 @@ static const apr_proc_mutex_unix_lock_methods_t mutex_sysv_methods = + proc_mutex_sysv_create, + proc_mutex_sysv_acquire, + proc_mutex_sysv_tryacquire, +-#if defined(HAVE_SEMTIMEDOP) ++#if defined(HAVE_SEMTIMEDOP) && !defined(__s390x__) + proc_mutex_sysv_timedacquire, + #else + proc_mutex_spinsleep_timedacquire, \ No newline at end of file diff --git a/packages/argon2/Containerfile b/packages/argon2/Containerfile new file mode 100644 index 0000000..b060e58 --- /dev/null +++ b/packages/argon2/Containerfile @@ -0,0 +1,29 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=20190702 +ENV SRC_HASH=daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/P-H-C/phc-winner-argon2/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +RUN tar -xf $SRC_FILE +WORKDIR /phc-winner-argon2-${VERSION} +RUN --network=none <<-EOF + set -eux + make -j "$(nproc)" OPTTARGET=none ARGON2_VERSION=${VERSION} +EOF + +FROM build AS install +RUN make OPTTARGET=none LIBRARY_REL=lib DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/argp-standalone/Containerfile b/packages/argp-standalone/Containerfile index 316032f..533601a 100644 --- a/packages/argp-standalone/Containerfile +++ b/packages/argp-standalone/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.5.0 ENV SRC_FILE=${VERSION}.tar.gz ENV SRC_SITE=https://github.com/argp-standalone/argp-standalone/archive/refs/tags/${SRC_FILE} ENV SRC_HASH=c29eae929dfebd575c38174f2c8c315766092cec99a8f987569d0cad3c6d64f6 -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -18,7 +18,7 @@ COPY --from=stagex/autoconf . / COPY --from=stagex/automake . / COPY --from=stagex/m4 . / RUN tar -xf ${SRC_FILE} -WORKDIR argp-standalone-${VERSION} +WORKDIR /argp-standalone-${VERSION} RUN --network=none <<-EOF set -eux /usr/bin/autoreconf -vif @@ -32,12 +32,12 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN <<-EOF set -eux install -D -m644 argp.h /rootfs/usr/include/argp.h install -D -m755 libargp.a /rootfs/usr/lib/libargp.a EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/aspell/Containerfile b/packages/aspell/Containerfile new file mode 100644 index 0000000..bf0a81f --- /dev/null +++ b/packages/aspell/Containerfile @@ -0,0 +1,38 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=0.60.8.1 +ENV SRC_HASH=d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b +ENV SRC_FILE=aspell-${VERSION}.tar.gz +ENV SRC_SITE=https://ftp.gnu.org/gnu/aspell/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/perl . / +COPY --from=stagex/binutils . / +COPY --from=stagex/musl . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / +RUN tar -xf ${SRC_FILE} +WORKDIR /aspell-${VERSION} +ENV SOURCE_DATE_EPOCH=1 +RUN --network=none <<-EOF + set -ex + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-dict-dir=/usr/share/aspell \ + --enable-pkgdatadir=/usr/share/aspell + make -j "$(nproc)" +EOF + +FROM build AS install +RUN --network=none make DESTDIR="/rootfs" install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/attr/Containerfile b/packages/attr/Containerfile new file mode 100644 index 0000000..e82e935 --- /dev/null +++ b/packages/attr/Containerfile @@ -0,0 +1,43 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=2.5.2 +ENV SRC_HASH=39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87 +ENV SRC_FILE=attr-${VERSION}.tar.gz +ENV SRC_SITE=https://download.savannah.nongnu.org/releases/attr/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/perl . / + +RUN tar -xf ${SRC_FILE} +WORKDIR /attr-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --prefix=/usr \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --includedir=/usr/include \ + --mandir=/usr/share/man \ + --docdir=/usr/share/doc/attr \ + --datadir=/usr/share \ + --disable-nls + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/autoconf-archive/Containerfile b/packages/autoconf-archive/Containerfile index f174fd7..9ba90c2 100644 --- a/packages/autoconf-archive/Containerfile +++ b/packages/autoconf-archive/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2023.02.20 ENV SRC_HASH=71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33 ENV SRC_FILE=autoconf-archive-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/autoconf-archive/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / #COPY --from=stagex/gcc . / #COPY --from=stagex/binutils . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR autoconf-archive-${VERSION} +WORKDIR /autoconf-archive-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -27,8 +27,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -from build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/autoconf/Containerfile b/packages/autoconf/Containerfile index 45e4e0c..c827cfd 100644 --- a/packages/autoconf/Containerfile +++ b/packages/autoconf/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.71 ENV SRC_HASH=f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4 ENV SRC_FILE=autoconf-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/autoconf/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -16,7 +16,7 @@ COPY --from=stagex/musl . / COPY --from=stagex/m4 . / COPY --from=stagex/perl . / RUN tar -xf ${SRC_FILE} -WORKDIR autoconf-${VERSION} +WORKDIR /autoconf-${VERSION} ENV M4=/usr/bin/m4 RUN --network=none <<-EOF set -eux @@ -25,8 +25,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -from build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/automake/Containerfile b/packages/automake/Containerfile index a399055..05338a8 100644 --- a/packages/automake/Containerfile +++ b/packages/automake/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.16.5 ENV SRC_HASH=f01d58cd6d9d77fbdca9eb4bbd5ead1988228fdb73d6f7a201f5f8d6b118b469 ENV SRC_FILE=automake-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/automake/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -17,7 +17,7 @@ COPY --from=stagex/perl . / COPY --from=stagex/m4 . / COPY --from=stagex/autoconf . / RUN tar -xf automake-${VERSION}.tar.xz -WORKDIR automake-${VERSION} +WORKDIR /automake-${VERSION} ENV SOURCE_DATE_EPOCH=1 RUN --network=none <<-EOF set -eux @@ -25,8 +25,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/aws-cli/Containerfile b/packages/aws-cli/Containerfile index f6c7338..cb9590b 100644 --- a/packages/aws-cli/Containerfile +++ b/packages/aws-cli/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.15.31 ENV SRC_HASH=6507f894a30036ad002b54e12f49959c592c8507765405c52cf7b4ba4dc2509d ENV SRC_FILE=${VERSION}.tar.gz ENV SRC_SITE=https://github.com/aws/aws-cli/archive/refs/tags/${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -36,13 +36,13 @@ COPY --from=stagex/py-wcwidth . / COPY --from=stagex/py-prompt_toolkit . / COPY --from=stagex/py-ruamel.yaml . / RUN tar -xzf ${SRC_FILE} -WORKDIR aws-cli-${VERSION} +WORKDIR /aws-cli-${VERSION} RUN --network=none \ gpep517 build-wheel \ --wheel-dir .dist \ --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl @@ -50,5 +50,5 @@ RUN --network=none <<-EOF rm /rootfs/usr/lib/python*/site-packages/awscli-*.dist-info/RECORD EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/bash/Containerfile b/packages/bash/Containerfile index a2c125e..fdd7534 100644 --- a/packages/bash/Containerfile +++ b/packages/bash/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=5.2.21 ENV SRC_HASH=c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8 ENV SRC_FILE=bash-${VERSION}.tar.gz ENV SRC_SITE=https://ftp.gnu.org/gnu/bash/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / RUN tar -xzf ${SRC_FILE} -WORKDIR bash-${VERSION} +WORKDIR /bash-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -31,8 +31,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/bc/Containerfile b/packages/bc/Containerfile index 8940995..8ee91f0 100644 --- a/packages/bc/Containerfile +++ b/packages/bc/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=1.07.1 ENV SRC_HASH=62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a ENV SRC_FILE=bc-${VERSION}.tar.gz ENV SRC_SITE=https://ftp.gnu.org/gnu/bc/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/binutils . / COPY --from=stagex/coreutils . / COPY --from=stagex/musl . / @@ -29,7 +29,7 @@ COPY --from=stagex/texinfo . / COPY --from=stagex/findutils . / COPY --from=stagex/sed . / RUN tar -xf ${SRC_FILE} -WORKDIR bc-${VERSION} +WORKDIR /bc-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ @@ -42,8 +42,8 @@ RUN --network=none <<-EOF make -j1 EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/binutils/Containerfile b/packages/binutils/Containerfile index 504dd25..6c01f79 100644 --- a/packages/binutils/Containerfile +++ b/packages/binutils/Containerfile @@ -1,17 +1,17 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 -ENV VERSION=2.35 -ENV SRC_HASH=1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85 +ENV VERSION=2.43.1 +ENV SRC_HASH=13f74202a3c4c51118b797a39ea4200d3f6cfbe224da6d1d95bb938480132dfd ENV SRC_FILE=binutils-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/binutils/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/stage3 . / RUN tar -xf binutils-${VERSION}.tar.xz -WORKDIR binutils-${VERSION} +WORKDIR /binutils-${VERSION} RUN --network=none <<-EOF set -ex CFLAGS='-Os -Wformat -Werror=format-security -O2' \ @@ -49,8 +49,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/bison/Containerfile b/packages/bison/Containerfile index 663affe..77f6ba9 100644 --- a/packages/bison/Containerfile +++ b/packages/bison/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=3.4.2 ENV SRC_HASH=27d05534699735dc69e86add5b808d6cb35900ad3fd63fa82e3eb644336abfa0 ENV SRC_FILE=bison-${VERSION}.tar.xz ENV SRC_SITE=http://mirrors.kernel.org/gnu/bison/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/musl . / COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / @@ -18,7 +18,7 @@ COPY --from=stagex/automake . / COPY --from=stagex/make . / COPY --from=stagex/m4 . / RUN tar -xf ${SRC_FILE} -WORKDIR bison-${VERSION} +WORKDIR /bison-${VERSION} ENV M4=/usr/bin/m4 RUN --network=none <<-EOF set -eux @@ -28,8 +28,8 @@ RUN --network=none <<-EOF make -j1 MAKEINFO=false EOF -from build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/brotli/Containerfile b/packages/brotli/Containerfile new file mode 100644 index 0000000..4384471 --- /dev/null +++ b/packages/brotli/Containerfile @@ -0,0 +1,48 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.1.0 +ENV SRC_HASH=e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/google/brotli/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/samurai . / +COPY --from=stagex/cmake . / +COPY --from=stagex/openssl . / +RUN tar -xf ${SRC_FILE} +WORKDIR /brotli-${VERSION} +RUN --network=none <<-EOF + set -eux + cmake -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_SHARED_LIBS=OFF + cmake --build build + + cmake -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_SHARED_LIBS=ON + cmake --build build +EOF + +FROM build AS install +RUN <<-EOF + set -eux + DESTDIR=/rootfs cmake --install build + for file in common dec enc; do + install -D -m 755 build/libbrotli$file.a /rootfs/usr/lib64 + done + mv /rootfs/usr/lib64 /rootfs/usr/lib +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/buf/Containerfile b/packages/buf/Containerfile index aeba1b1..7945101 100644 --- a/packages/buf/Containerfile +++ b/packages/buf/Containerfile @@ -1,18 +1,18 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.30.1 ENV SRC_HASH=56da0c31b11bd15b99049af8b364c7bf4e11106152ab27d5ccb98d28123ab785 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/bufbuild/buf/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR buf-${VERSION} +WORKDIR /buf-${VERSION} ENV PWD=/home/user/buf-${VERSION} ENV GOPATH=${PWD}/cache/go ENV GOCACHE=${PWD}/cache/ @@ -26,11 +26,11 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/buf ./cmd/buf -from build as install +FROM build AS install RUN <<-EOF mkdir -p /rootfs/usr/bin/ cp bin/buf /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/buildkit/Containerfile b/packages/buildkit/Containerfile new file mode 100644 index 0000000..44253e2 --- /dev/null +++ b/packages/buildkit/Containerfile @@ -0,0 +1,48 @@ +FROM scratch AS base +ENV VERSION=0.15.0 +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/moby/buildkit/archive/${SRC_FILE} +ENV SRC_HASH=ebf4b82f7379818d8fcfe5c54034e7f93c062c95f663bfd3c2a622583f62a8a4 + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/bash . / +COPY --from=stagex/busybox . / +COPY --from=stagex/go . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/pkgconf . / +RUN tar -xf ${SRC_FILE} +ENV GOPROXY=https://proxy.golang.org,direct +ENV GOSUMDB=sum.golang.org +ENV GOPATH=/cache/go +ENV GOBIN=${GOPATH}/bin +ENV PATH=${GOBIN}:${PATH} +WORKDIR /buildkit-${VERSION} +RUN <<-EOF + set -eux + mkdir -p out + go build -v \ + --ldflags=" \ + -w -s -buildid= \ + -X github.com/moby/buildkit/version.Version=${VERSION} \ + -X github.com/moby/buildkit/version.Revision=stagex \ + " \ + -o out/ \ + ./cmd/... + rm -r docs/reference +EOF + +FROM build AS install +RUN <<-EOF + set -eux + mkdir -p /rootfs + install -Dm755 ./out/* -t /rootfs/usr/bin/ +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/busybox/Containerfile b/packages/busybox/Containerfile index dea74b9..db7d909 100644 --- a/packages/busybox/Containerfile +++ b/packages/busybox/Containerfile @@ -1,16 +1,16 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.36.1 ENV SRC_HASH=b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314 ENV SRC_FILE=busybox-${VERSION}.tar.bz2 ENV SRC_SITE=https://busybox.net/downloads/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/stage3 . / RUN tar -xjf ${SRC_FILE} -WORKDIR busybox-${VERSION} +WORKDIR /busybox-${VERSION} ENV KCONFIG_NOTIMESTAMP=1 RUN --network=none <<-EOF set -eux @@ -51,7 +51,7 @@ RUN --network=none <<-EOF make EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux mkdir -p /rootfs/usr/bin @@ -61,6 +61,6 @@ RUN --network=none <<-EOF /usr/bin/busybox --install -s usr/bin EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / ENTRYPOINT ["/bin/sh"] diff --git a/packages/bzip2/Containerfile b/packages/bzip2/Containerfile index cff1563..3654a7e 100644 --- a/packages/bzip2/Containerfile +++ b/packages/bzip2/Containerfile @@ -1,29 +1,29 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=1.0.8 ENV SRC_HASH=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269 ENV SRC_FILE=bzip2-${VERSION}.tar.gz ENV SRC_SITE=https://sourceware.org/pub/bzip2/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf ${SRC_FILE} -WORKDIR bzip2-${VERSION} +WORKDIR /bzip2-${VERSION} RUN --network=none <<-EOF set -ex make -j "$(nproc)" -f Makefile-libbz2_so all make -j "$(nproc)" all EOF -FROM build as install +FROM build AS install RUN --network=none make PREFIX="/rootfs/usr" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/c-ares/Containerfile b/packages/c-ares/Containerfile new file mode 100644 index 0000000..cf551f3 --- /dev/null +++ b/packages/c-ares/Containerfile @@ -0,0 +1,35 @@ +FROM scratch AS base +ENV VERSION=1.33.1 +ENV SRC_HASH=06869824094745872fa26efd4c48e622b9bd82a89ef0ce693dc682a23604f415 +ENV SRC_FILE=c-ares-${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/c-ares/c-ares/releases/download/v${VERSION}/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/musl . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / + +RUN --network=none tar -xf ${SRC_FILE} +WORKDIR /c-ares-${VERSION} +RUN --network=none < /rootfs/etc/containerd/config.toml +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/coreutils/Containerfile b/packages/coreutils/Containerfile index dd6e739..ea94a1b 100644 --- a/packages/coreutils/Containerfile +++ b/packages/coreutils/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=9.4 ENV SRC_HASH=ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52 ENV SRC_FILE=coreutils-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/coreutils/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/openssl . / @@ -16,7 +16,7 @@ COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf coreutils-${VERSION}.tar.xz -WORKDIR coreutils-${VERSION} +WORKDIR /coreutils-${VERSION} ENV FORCE_UNSAFE_CONFIGURE=1 RUN --network=none <<-EOF set -ex @@ -38,8 +38,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/cpio/Containerfile b/packages/cpio/Containerfile index 6a600b5..4322e27 100644 --- a/packages/cpio/Containerfile +++ b/packages/cpio/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.15 ENV SRC_HASH=efa50ef983137eefc0a02fdb51509d624b5e3295c980aa127ceee4183455499e ENV SRC_FILE=cpio-${VERSION}.tar.gz ENV SRC_SITE=https://ftp.gnu.org/gnu/cpio/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xzf ${SRC_FILE} -WORKDIR cpio-${VERSION} +WORKDIR /cpio-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -28,8 +28,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/curl/Containerfile b/packages/curl/Containerfile index 660f71c..8f01949 100644 --- a/packages/curl/Containerfile +++ b/packages/curl/Containerfile @@ -1,13 +1,14 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=8.9.1 ENV SRC_HASH=f292f6cc051d5bbabf725ef85d432dfeacc8711dd717ea97612ae590643801e5 ENV SRC_FILE=curl-${VERSION}.tar.xz ENV SRC_SITE=https://curl.se/download/${SRC_FILE} +ENV SOURCE_DATE_EPOCH=1 -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / @@ -17,7 +18,7 @@ COPY --from=stagex/openssl . / COPY --from=stagex/perl . / COPY --from=stagex/ca-certificates . / RUN tar -xf curl-${VERSION}.tar.xz -WORKDIR curl-${VERSION} +WORKDIR /curl-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -33,8 +34,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make install DESTDIR=/rootfs -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/cython/Containerfile b/packages/cython/Containerfile new file mode 100644 index 0000000..c2ec176 --- /dev/null +++ b/packages/cython/Containerfile @@ -0,0 +1,42 @@ +FROM scratch AS base +ENV VERSION=3.0.10 +ENV SRC_HASH=00f97476cef9fcd9a89f9d2a49be3b518e1a74b91f377fe08c97fcb44bc0f7d7 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/cython/cython/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-distro . / +COPY --from=stagex/py-dateutil . / +COPY --from=stagex/py-urllib3 . / +COPY --from=stagex/py-cffi . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /cython-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 +# +FROM build AS install +RUN --network=none <<-EOF + set -eux + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/dhcpcd/Containerfile b/packages/dhcpcd/Containerfile new file mode 100644 index 0000000..79036b4 --- /dev/null +++ b/packages/dhcpcd/Containerfile @@ -0,0 +1,49 @@ +FROM scratch AS base +ENV VERSION=10.0.10 +ENV SRC_FILE=dhcpcd-${VERSION}.tar.xz +ENV SRC_SITE=https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${VERSION}/${SRC_FILE} +ENV SRC_HASH=d582012992efddd2442bb1213c518a37d90febbcf8b11f8e76448c710dacad27 + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/musl . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/m4 . / +COPY --from=stagex/libmnl . / +COPY --from=stagex/linux-headers . / +RUN tar -xf ${SRC_FILE} +WORKDIR /dhcpcd-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --build=x86_64-linux-musl \ + --host=x86_64-linux-musl \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --libexecdir=/usr/lib/dhcpcd \ + --dbdir=/var/lib/dhcpcd \ + --rundir=/run/dhcpcd \ + --enable-ipv6 \ + --enable-privsep \ + --enable-seccomp \ + --without-dev \ + --without-udev + make -j "$(nproc)" +EOF + +FROM build AS install +RUN <<-EOF + set -eux + make DESTDIR=/rootfs install +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/diffoscope/Containerfile b/packages/diffoscope/Containerfile new file mode 100644 index 0000000..7c6c050 --- /dev/null +++ b/packages/diffoscope/Containerfile @@ -0,0 +1,46 @@ +FROM scratch AS base +ENV VERSION=274 +ENV SRC_HASH=c5398be0f26cb13344f4e27cf5a53df2b7a246a7b08944d114eee140989e5bb5 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://salsa.debian.org/reproducible-builds/diffoscope/-/archive/${VERSION}/diffoscope-${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/file . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-distro . / +COPY --from=stagex/py-dateutil . / +COPY --from=stagex/py-urllib3 . / +COPY --from=stagex/py-cffi . / +COPY --from=stagex/py-magic . / +COPY --from=stagex/py-libarchive . / +RUN tar -xzf diffoscope-${SRC_FILE} +WORKDIR /diffoscope-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 +# +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / + diff --git a/packages/diffutils/Containerfile b/packages/diffutils/Containerfile index dd17cbb..d7f6592 100644 --- a/packages/diffutils/Containerfile +++ b/packages/diffutils/Containerfile @@ -1,21 +1,21 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=3.10 ENV SRC_HASH=90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e ENV SRC_FILE=diffutils-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/diffutils/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf ${SRC_FILE} -WORKDIR diffutils-${VERSION} +WORKDIR /diffutils-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ @@ -28,8 +28,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/docbook-xml/Containerfile b/packages/docbook-xml/Containerfile index a0f7202..1c15ee8 100644 --- a/packages/docbook-xml/Containerfile +++ b/packages/docbook-xml/Containerfile @@ -1,4 +1,4 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=4.5 ENV SRC_HASH_4_5=4e4e037a2b83c98c6c94818390d4bdd3f6e10f6ec62dd79188594e26190dc7b4 ENV SRC_HASH_4_4=02f159eb88c4254d95e831c51c144b1863b216d909b5ff45743a1ce6f5273090 @@ -7,14 +7,14 @@ ENV SRC_HASH_4_2=acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa ENV SRC_HASH_4_1_2=30f0644064e0ea71751438251940b1431f46acada814a062870f486c772e7772 ENV SRC_SITE=https://docbook.org/xml -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH_4_5} ${SRC_SITE}/4.5/docbook-xml-4.5.zip . ADD --checksum=sha256:${SRC_HASH_4_4} ${SRC_SITE}/4.4/docbook-xml-4.4.zip . ADD --checksum=sha256:${SRC_HASH_4_3} ${SRC_SITE}/4.3/docbook-xml-4.3.zip . ADD --checksum=sha256:${SRC_HASH_4_2} ${SRC_SITE}/4.2/docbook-xml-4.2.zip . ADD --checksum=sha256:${SRC_HASH_4_1_2} ${SRC_SITE}/4.1.2/docbkx412.zip . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -278,8 +278,8 @@ RUN --network=none <<-EOF out/etc/xml/catalog EOF -FROM build as install +FROM build AS install RUN --network=none mv out/ /rootfs -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/docbook-xsl/Containerfile b/packages/docbook-xsl/Containerfile index 7dc1097..0286e03 100644 --- a/packages/docbook-xsl/Containerfile +++ b/packages/docbook-xsl/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.79.2 ENV SRC_HASH=966188d7c05fc76eaca115a55893e643dd01a3486f6368733c9ad974fcee7a26 ENV SRC_FILE=docbook-xsl-${VERSION}.tar.gz ENV SRC_SITE=https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/docbook-xml . / COPY --from=stagex/zlib . / COPY --from=stagex/libxml2 . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR docbook-xsl-${VERSION} +WORKDIR /docbook-xsl-${VERSION} RUN --network=none <<-EOF set -eux dest=out/usr/share/xml/docbook/xsl-stylesheets-${VERSION} @@ -51,8 +51,8 @@ RUN --network=none <<-EOF done EOF -FROM build as install +FROM build AS install RUN --network=none mv out /rootfs && ls -Rlah /rootfs -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/docker-cli-buildx/Containerfile b/packages/docker-cli-buildx/Containerfile new file mode 100644 index 0000000..a989e3e --- /dev/null +++ b/packages/docker-cli-buildx/Containerfile @@ -0,0 +1,46 @@ +FROM scratch AS base +ENV VERSION=0.16.2 +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/docker/buildx/archive/${SRC_FILE} +ENV SRC_HASH=f314635765f3dc5efe089244280cd24a577e83d339fec1970fed16977bf28382 + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/bash . / +COPY --from=stagex/busybox . / +COPY --from=stagex/go . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/pkgconf . / +RUN tar -xf ${SRC_FILE} +ENV GOPROXY=https://proxy.golang.org,direct +ENV GOSUMDB=sum.golang.org +ENV GOPATH=/cache/go +ENV GOBIN=${GOPATH}/bin +ENV PATH=${GOBIN}:${PATH} +WORKDIR /buildx-${VERSION} +RUN <<-EOF + set -eux + mkdir -p out + go build \ + -v \ + -modcacherw \ + --ldflags=" \ + -w -s -buildid= \ + -X github.com/moby/buildkit/version.Version=${VERSION} \ + -X github.com/moby/buildkit/version.Revision=stagex \ + -X github.com/moby/buildkit/version.PKG=github.com/docker/buildx \ + " \ + -o docker-buildx \ + ./cmd/buildx +EOF + +FROM build AS install +RUN install -Dm755 docker-buildx -t /rootfs/usr/libexec/docker/cli-plugins/ + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/docker/Containerfile b/packages/docker/Containerfile new file mode 100644 index 0000000..4f1571c --- /dev/null +++ b/packages/docker/Containerfile @@ -0,0 +1,88 @@ +FROM scratch AS base +ENV VERSION=27.1.2 +ENV MOBY_COMMIT=f9522e5e96c3ab5a6b8a643d15a92700ca864da6 +ENV CLI_COMMIT=d01f264bccd8bed2e3c038054a04b99533478ab8 +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE_CLI=https://github.com/docker/cli/archive/${SRC_FILE} +ENV SRC_HASH_CLI=e60fddb2bd2b4e19790d26b786c930e70fa935168373ef08055f74bbc450bce8 +ENV SRC_SITE_MOBY=https://github.com/moby/moby/archive/${SRC_FILE} +ENV SRC_HASH_MOBY=8c9b5fa44f0272726484c925d4d05f0aa189053ed8be9b27447bc116df1e99c9 + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH_MOBY} ${SRC_SITE_MOBY} moby-${SRC_FILE} +ADD --checksum=sha256:${SRC_HASH_CLI} ${SRC_SITE_CLI} cli-${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/bash . / +COPY --from=stagex/busybox . / +COPY --from=stagex/go . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/libseccomp . / +COPY --from=stagex/ca-certificates . / +RUN tar -xf moby-${SRC_FILE} +RUN tar -xf cli-${SRC_FILE} +ENV GO11MODULE=off +ENV CGO_ENABLED=1 +ENV AUTO_GOPATH=1 +ENV GITCOMMIT=${CLI_COMMIT} +ENV DOCKER_GITCOMMIT=${MOBY_COMMIT} +ENV DOCKER_BUILDTAGS=seccomp +ENV DISABLE_WARN_OUTSIDE_CONTAINER=1 +ENV GOPROXY=https://proxy.golang.org,direct +ENV GOSUMDB=sum.golang.org +ENV GOPATH=/cache/go +ENV GOBIN=${GOPATH}/bin +ENV PATH=${GOBIN}:${PATH} +ENV SOURCE_DATE_EPOCH=1 +ENV LDFLAGS="-w -s -buildid=" +ENV GO_LDFLAGS=${LDFLAGS} +WORKDIR /moby-${VERSION} +RUN <<-EOF + set -eux + sed -i '98iLDFLAGS=${GO_LDFLAGS}' hack/make.sh + hack/make.sh dynbinary +EOF +WORKDIR /cli-${VERSION} +RUN <<-EOF + set -eux + mkdir -p "$GOPATH"/src/github.com/docker/ + ln -sf /cli-${VERSION} "$GOPATH"/src/github.com/docker/cli + make -j "$(nproc)" VERSION=${VERSION} dynbinary + make manpages +EOF + +FROM build AS install +WORKDIR / +RUN <<-EOF + set -eux + install -Dm644 cli-${VERSION}/contrib/completion/fish/docker.fish \ + /rootfs/usr/share/fish/vendor_completions.d/docker.fish + + install -Dm644 cli-${VERSION}/contrib/completion/zsh/_docker \ + /rootfs/usr/share/zsh/site-functions/_docker + + install -Dm644 cli-${VERSION}/contrib/completion/bash/docker \ + /rootfs/usr/share/bash-completion/completions/docker + + install -Dm644 cli-${VERSION}/man/man1/* \ + -t /rootfs/usr/share/man/man1/ + + # 'build/docker' is a symlink to 'docker-linux-$arch' e.g. 'docker-linux-amd64' + install -Dm755 cli-${VERSION}/build/docker \ + /rootfs/usr/bin/docker + + install -Dm755 -t /rootfs/usr/bin \ + moby-${VERSION}/bundles/dynbinary-daemon/dockerd \ + moby-${VERSION}/bundles/dynbinary-daemon/docker-proxy + + # symlink externally provided tini-static binary + ln -sf /sbin/tini-static /rootfs/usr/bin/docker-init +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/dosfstools/Containerfile b/packages/dosfstools/Containerfile index daee2a5..db7b2de 100644 --- a/packages/dosfstools/Containerfile +++ b/packages/dosfstools/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=4.2 ENV SRC_HASH=64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527 ENV SRC_FILE=dosfstools-${VERSION}.tar.gz ENV SRC_SITE=https://github.com/dosfstools/dosfstools/releases/download/v${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -19,7 +19,7 @@ COPY --from=stagex/autoconf . / COPY --from=stagex/automake . / COPY --from=stagex/musl . / RUN tar -xzf ${SRC_FILE} -WORKDIR dosfstools-${VERSION} +WORKDIR /dosfstools-${VERSION} RUN --network=none <<-EOF set -eux ./autogen.sh @@ -34,8 +34,8 @@ RUN --network=none <<-EOF --enable-compat-symlinks EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/doxygen/Containerfile b/packages/doxygen/Containerfile new file mode 100644 index 0000000..89ed805 --- /dev/null +++ b/packages/doxygen/Containerfile @@ -0,0 +1,48 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.10.0 +ENV SRC_HASH=dd7c556b4d96ca5e682534bc1f1a78a5cfabce0c425b14c1b8549802686a4442 +ENV SRC_FILE=doxygen-${VERSION}.src.tar.gz +ENV SRC_SITE=https://doxygen.nl/files/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/flex . / +COPY --from=stagex/bison . / +COPY --from=stagex/coreutils . / +COPY --from=stagex/perl . / +COPY --from=stagex/python . / +COPY --from=stagex/cmake . / +COPY --from=stagex/samurai . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/libxml2 . / +COPY --from=stagex/perl . / +COPY --from=stagex/openssl . / +COPY --from=stagex/m4 . / +RUN tar -xf ${SRC_FILE} +WORKDIR /doxygen-${VERSION} +COPY *.patch . +RUN --network=none <<-EOF + set -eux \ + patch -p1 remove-usage-of-fstat64.patch + cmake -B build -G Ninja \ + -DGIT_EXECUTABLE=/bin/false \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -Dbuild_xmlparser=ON + cmake --build build +EOF + +FROM build AS install +RUN DESTDIR=/rootfs cmake --install build +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/doxygen/remove-usage-of-fstat64.patch b/packages/doxygen/remove-usage-of-fstat64.patch new file mode 100644 index 0000000..4ec3cd2 --- /dev/null +++ b/packages/doxygen/remove-usage-of-fstat64.patch @@ -0,0 +1,23 @@ +--- a/deps/spdlog/include/spdlog/details/os-inl.h ++++ b/deps/spdlog/include/spdlog/details/os-inl.h +@@ -236,20 +236,11 @@ + # else + int fd = ::fileno(f); + # endif +-// 64 bits(but not in osx or cygwin, where fstat64 is deprecated) +-# if (defined(__linux__) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64)) +- struct stat64 st; +- if (::fstat64(fd, &st) == 0) +- { +- return static_cast(st.st_size); +- } +-# else // other unix or linux 32 bits or cygwin + struct stat st; + if (::fstat(fd, &st) == 0) + { + return static_cast(st.st_size); + } +-# endif + #endif + throw_spdlog_ex("Failed getting file size from fd", errno); + return 0; // will not be reached. \ No newline at end of file diff --git a/packages/dtc/Containerfile b/packages/dtc/Containerfile new file mode 100644 index 0000000..24d88e1 --- /dev/null +++ b/packages/dtc/Containerfile @@ -0,0 +1,44 @@ +FROM scratch AS base +ENV VERSION=1.7.0 +ENV SRC_HASH=29edce3d302a15563d8663198bbc398c5a0554765c83830d0d4c0409d21a16c4 +ENV SRC_FILE=dtc-${VERSION}.tar.xz +ENV SRC_SITE=https://kernel.org/pub/software/utils/dtc/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/make . / +COPY --from=stagex/binutils . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/perl . / +COPY --from=stagex/m4 . / +COPY --from=stagex/gcc . / +COPY --from=stagex/bison . / +COPY --from=stagex/openssl . / +COPY --from=stagex/libzstd . / +COPY --from=stagex/zlib . / +COPY --from=stagex/flex . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/coreutils . / +COPY --from=stagex/python . / +COPY --from=stagex/py-setuptools . / +RUN tar -xf ${SRC_FILE} +WORKDIR /dtc-${VERSION} +RUN --network=none <<-EOF + set -eux + sed -i s:-Werror::g Makefile + sed -i "s|@VERSION@|${VERSION}|" setup.py + make -j "$(nproc)" +EOF + +FROM build AS install +RUN <<-EOF + set -eux + make DESTDIR=/rootfs PREFIX=/usr install +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/e2fsprogs/Containerfile b/packages/e2fsprogs/Containerfile index 22f9e2d..b16930b 100644 --- a/packages/e2fsprogs/Containerfile +++ b/packages/e2fsprogs/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=1.47.0 ENV SRC_HASH=74c8ea97c73294edc6c11dc5e7fbb4324f86c28efd66ad0ba50be4eec8a48be2 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/tytso/e2fsprogs/archive/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/bash . / COPY --from=stagex/binutils . / COPY --from=stagex/pkgconf . / @@ -19,7 +19,7 @@ COPY --from=stagex/util-linux . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / RUN tar -xzf ${SRC_FILE} -WORKDIR e2fsprogs-${VERSION} +WORKDIR /e2fsprogs-${VERSION} RUN --network=none <<-EOF ./configure \ --build=${ARCH}-linux-musl \ @@ -36,8 +36,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/ed/Containerfile b/packages/ed/Containerfile index 1045086..201e4a8 100644 --- a/packages/ed/Containerfile +++ b/packages/ed/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=1.20 ENV SRC_HASH=c6030defe6ae172f1687906d7354054c75a6a9130af319d4e73c50a91959c5a6 ENV SRC_FILE=ed-${VERSION}.tar.lz ENV SRC_SITE=https://ftp.gnu.org/gnu/ed/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / @@ -17,7 +17,7 @@ COPY --from=stagex/tar . / COPY --from=stagex/lzip . / COPY --from=stagex/gcc . / RUN tar --lzip -xf ${SRC_FILE} -WORKDIR ed-${VERSION} +WORKDIR /ed-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ @@ -30,8 +30,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/eif_build/Containerfile b/packages/eif_build/Containerfile index 856e53c..824abad 100644 --- a/packages/eif_build/Containerfile +++ b/packages/eif_build/Containerfile @@ -1,10 +1,10 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.2.2 ENV SRC_HASH=525514cd5b28a315564e2c4b4425189b567b71bf13584804cf266ba6dee71a0e ENV SRC_FILE=eif_build.tgz ENV SRC_SITE=https://codeload.github.com/tkhq/eif_build/legacy.tar.gz/${VERSION} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} COPY --from=stagex/busybox . / COPY --from=stagex/musl . / @@ -13,27 +13,27 @@ COPY --from=stagex/zlib . / COPY --from=stagex/openssl . / COPY --from=stagex/ca-certificates . / COPY --from=stagex/gcc . / -COPY --from=stagex/llvm . / +COPY --from=stagex/llvm16 . / COPY --from=stagex/binutils . / COPY --from=stagex/pkgconf . / COPY --from=stagex/git . / COPY --from=stagex/rust . / RUN tar -xzf ${SRC_FILE} RUN mv tkhq-eif_build-* eif_build -WORKDIR eif_build +WORKDIR /eif_build RUN cargo fetch --locked -FROM fetch as build +FROM fetch AS build RUN --network=none \ - cargo build \ - --no-default-features \ - --locked \ - --release \ - --target x86_64-unknown-linux-musl + cargo build \ + --no-default-features \ + --locked \ + --release \ + --target x86_64-unknown-linux-musl -FROM build as install -WORKDIR /rootfs/usr/bin +FROM build AS install +WORKDIR //rootfs/usr/bin RUN cp /eif_build/target/x86_64-unknown-linux-musl/release/eif_build . -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/elfutils/Containerfile b/packages/elfutils/Containerfile index da15f5e..70e72ab 100644 --- a/packages/elfutils/Containerfile +++ b/packages/elfutils/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.190 ENV SRC_HASH=8e00a3a9b5f04bc1dc273ae86281d2d26ed412020b391ffcc23198f10231d692 ENV SRC_FILE=elfutils-${VERSION}.tar.bz2 ENV SRC_SITE=https://sourceware.org/elfutils/ftp/${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -29,7 +29,7 @@ COPY --from=stagex/musl-fts . / COPY --from=stagex/musl-obstack . / COPY --from=stagex/linux-headers . / RUN tar -xjf ${SRC_FILE} -WORKDIR elfutils-${VERSION} +WORKDIR /elfutils-${VERSION} ADD *.patch . RUN --network=none <<-EOF set -eux @@ -54,8 +54,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/eudev/Containerfile b/packages/eudev/Containerfile index dcff4e6..e507bbe 100644 --- a/packages/eudev/Containerfile +++ b/packages/eudev/Containerfile @@ -17,7 +17,7 @@ COPY --from=stagex/gcc . / COPY --from=stagex/gperf . / RUN --network=none tar -xf ${SRC_FILE} -WORKDIR eudev-${VERSION} +WORKDIR /eudev-${VERSION} RUN --network=none < +Date: Fri, 9 Feb 2024 15:58:56 -0800 +Subject: [PATCH] Fix handling of static separator + +--- + include/fmt/format-inl.h | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/include/fmt/format-inl.h ++++ b/include/fmt/format-inl.h +@@ -114,7 +114,11 @@ template FMT_FUNC Char d + + FMT_FUNC auto write_loc(appender out, loc_value value, + const format_specs<>& specs, locale_ref loc) -> bool { +-#ifndef FMT_STATIC_THOUSANDS_SEPARATOR ++#ifdef FMT_STATIC_THOUSANDS_SEPARATOR ++ value.visit(loc_writer<>{ ++ out, specs, std::string(1, FMT_STATIC_THOUSANDS_SEPARATOR), "\3", "."}); ++ return true; ++#else + auto locale = loc.get(); + // We cannot use the num_put facet because it may produce output in + // a wrong encoding. +@@ -123,7 +127,6 @@ FMT_FUNC auto write_loc(appender out, lo + return std::use_facet(locale).put(out, value, specs); + return facet(locale).put(out, value, specs); + #endif +- return false; + } + } // namespace detail diff --git a/packages/freetds/Containerfile b/packages/freetds/Containerfile new file mode 100644 index 0000000..1ee05c8 --- /dev/null +++ b/packages/freetds/Containerfile @@ -0,0 +1,48 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.4.22 +ENV SRC_HASH=a9a7f24f0a7a871617e76e8cc6e6556ae788042f1c006195665505499b2334b1 +ENV SRC_FILE=freetds-${VERSION}.tar.bz2 +ENV SRC_SITE=https://www.freetds.org/files/stable/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/musl . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / +COPY --from=stagex/libtool . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/readline . / +COPY --from=stagex/unixodbc . / +COPY --from=stagex/openssl . / +COPY --from=stagex/perl . / +RUN tar -xf ${SRC_FILE} +WORKDIR /freetds-${VERSION} +RUN --network=none <<-EOF + set -ex + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --enable-msdblib \ + --with-openssl=/usr \ + --enable-odbc \ + --with-unixodbc=/usr + make -j "$(nproc)" +EOF + +FROM build AS install +RUN --network=none <<-EOF + set -eu + make DESTDIR="/rootfs" install +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/fuse-overlayfs/Containerfile b/packages/fuse-overlayfs/Containerfile new file mode 100644 index 0000000..350021c --- /dev/null +++ b/packages/fuse-overlayfs/Containerfile @@ -0,0 +1,43 @@ +FROM scratch AS base +ENV VERSION=1.13 +ENV SRC_FILE=fuse-overlayfs-${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/containers/fuse-overlayfs/archive/v${VERSION}/${SRC_FILE} +ENV SRC_HASH=96d10344921d5796bcba7a38580ae14a53c4e60399bb90b238ac5a10b3bb65b2 + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/musl . / +COPY --from=stagex/perl . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/autoconf . / +COPY --from=stagex/automake . / +COPY --from=stagex/m4 . / +COPY --from=stagex/fuse3 . / +COPY --from=stagex/linux-headers . / +RUN tar -xf ${SRC_FILE} +WORKDIR /fuse-overlayfs-${VERSION} +RUN --network=none <<-EOF + set -eux + /usr/bin/autoreconf -fis + ./configure \ + --build=x86_64-linux-musl \ + --host=x86_64-linux-musl \ + --prefix=/usr \ + --mandir=/usr/share/man + make -j "$(nproc)" +EOF + +FROM build AS install +RUN <<-EOF + set -eux + make DESTDIR=/rootfs install +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/fuse3/Containerfile b/packages/fuse3/Containerfile new file mode 100644 index 0000000..4853e47 --- /dev/null +++ b/packages/fuse3/Containerfile @@ -0,0 +1,58 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=3.16.2 +ENV SRC_HASH=f797055d9296b275e981f5f62d4e32e089614fc253d1ef2985851025b8a0ce87 +ENV SRC_FILE=fuse-${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/libfuse/libfuse/releases/download/fuse-${VERSION}/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/python . / +COPY --from=stagex/zlib . / +COPY --from=stagex/bzip2 . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/ncurses . / +COPY --from=stagex/meson . / +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/pcre2 . / +COPY --from=stagex/python . / +COPY --from=stagex/bison . / +COPY --from=stagex/flex . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/libxslt . / +COPY --from=stagex/libffi . / +COPY --from=stagex/xz . / +COPY --from=stagex/expat . / +COPY --from=stagex/rhash . / +COPY --from=stagex/libxml2 . / +COPY --from=stagex/util-linux . / +COPY --from=stagex/libxslt . / +COPY --from=stagex/gettext . / +COPY --from=stagex/ninja . / +RUN tar -xf ${SRC_FILE} +WORKDIR /fuse-${VERSION} +COPY *.patch . +RUN --network=none <<-EOF + set -eux + meson setup \ + --default-library=shared \ + --prefix=/usr \ + -Dinitscriptdir="" \ + . output + meson compile -C output +EOF + +FROM build AS install +RUN DESTDIR=/rootfs meson install --no-rebuild -C output +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/gawk/Containerfile b/packages/gawk/Containerfile index 1d240de..be111c3 100644 --- a/packages/gawk/Containerfile +++ b/packages/gawk/Containerfile @@ -1,21 +1,21 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=5.3.0 ENV SRC_HASH=ca9c16d3d11d0ff8c69d79dc0b47267e1329a69b39b799895604ed447d3ca90b ENV SRC_FILE=gawk-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/gawk/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf ${SRC_FILE} -WORKDIR gawk-${VERSION} +WORKDIR /gawk-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ @@ -30,8 +30,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/gcc/Containerfile b/packages/gcc/Containerfile index e2c88ad..faca70e 100644 --- a/packages/gcc/Containerfile +++ b/packages/gcc/Containerfile @@ -1,29 +1,29 @@ -FROM scratch as base -ENV VERSION 13.1.0 -ENV SRC_FILE gcc-$VERSION.tar.xz -ENV SRC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${VERSION}/${SRC_FILE} -ENV SRC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 -ENV DEP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/ -ENV GMP_FILE gmp-6.2.1.tar.bz2 -ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c -ENV MPFR_FILE mpfr-4.1.0.tar.bz2 -ENV MPFR_HASH feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926 -ENV MPC_FILE mpc-1.2.1.tar.gz -ENV MPC_HASH 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 -ENV ISL_FILE isl-0.24.tar.bz2 -ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0 +FROM scratch AS base +ENV VERSION=13.1.0 +ENV SRC_FILE=gcc-$VERSION.tar.xz +ENV SRC_SITE=https://mirrors.kernel.org/gnu/gcc/gcc-${VERSION}/${SRC_FILE} +ENV SRC_HASH=61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 +ENV DEP_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/ +ENV GMP_FILE=gmp-6.2.1.tar.bz2 +ENV GMP_HASH=eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c +ENV MPFR_FILE=mpfr-4.1.0.tar.bz2 +ENV MPFR_HASH=feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926 +ENV MPC_FILE=mpc-1.2.1.tar.gz +ENV MPC_HASH=17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 +ENV ISL_FILE=isl-0.24.tar.bz2 +ENV ISL_HASH=fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0 -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . ADD --checksum=sha256:${GMP_HASH} ${DEP_SITE}/${GMP_FILE} . ADD --checksum=sha256:${MPFR_HASH} ${DEP_SITE}/${MPFR_FILE} . ADD --checksum=sha256:${MPC_HASH} ${DEP_SITE}/${MPC_FILE} . ADD --checksum=sha256:${ISL_HASH} ${DEP_SITE}/${ISL_FILE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/stage3 . / RUN tar -xf ${SRC_FILE} -WORKDIR gcc-${VERSION} +WORKDIR /gcc-${VERSION} RUN --network=none <<-EOF set -eux mv ../*.tar.* . @@ -52,7 +52,7 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux make DESTDIR=/rootfs install-strip @@ -61,7 +61,7 @@ RUN --network=none <<-EOF rm -rf /rootfs/usr/lib64 EOF -FROM scratch as test +FROM scratch AS test COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / @@ -76,5 +76,5 @@ RUN <<-EOF ./main | grep "Success" EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/gdbm/Containerfile b/packages/gdbm/Containerfile new file mode 100644 index 0000000..e5c03f9 --- /dev/null +++ b/packages/gdbm/Containerfile @@ -0,0 +1,40 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.23 +ENV SRC_HASH=74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd +ENV SRC_FILE=gdbm-${VERSION}.tar.gz +ENV SRC_SITE=https://ftp.gnu.org/gnu/gdbm/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/bash . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/openssl . / +RUN tar -xf ${SRC_FILE} +WORKDIR /gdbm-${VERSION} +ENV SOURCE_DATE_EPOCH=1 +RUN --network=none <<-EOF + set -eux + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --enable-libgdbm-compat \ + --disable-largefile \ + --disable-dependency-tracking \ + --enable-fast-install + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/gen_initramfs/Containerfile b/packages/gen_initramfs/Containerfile index 184ee0f..2e29afd 100644 --- a/packages/gen_initramfs/Containerfile +++ b/packages/gen_initramfs/Containerfile @@ -1,22 +1,22 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=6.8 ENV SRC_HASH=c969dea4e8bb6be991bbf7c010ba0e0a5643a3a8d8fb0a2aaa053406f1e965f3 ENV SRC_FILE=linux-${VERSION}.tar.xz ENV SRC_SITE=http://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR linux-${VERSION} +WORKDIR /linux-${VERSION} RUN --network=none gcc usr/gen_init_cpio.c -o usr/gen_init_cpio -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux mkdir -p /rootfs/usr/bin @@ -27,5 +27,5 @@ RUN --network=none <<-EOF cp -a usr/gen_init_cpio /rootfs/usr/bin EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/gettext/Containerfile b/packages/gettext/Containerfile index 6c211f0..370c946 100644 --- a/packages/gettext/Containerfile +++ b/packages/gettext/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.21 ENV SRC_HASH=d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192 ENV SRC_FILE=gettext-${VERSION}.tar.xz ENV SRC_SITE=https://mirrors.kernel.org/gnu/gettext/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -15,7 +15,7 @@ COPY --from=stagex/libxml2 . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR gettext-${VERSION} +WORKDIR /gettext-${VERSION} RUN <<-EOF set -eux ./configure \ @@ -27,8 +27,8 @@ RUN <<-EOF make -j "$(nproc)" EOF -from build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/git/Containerfile b/packages/git/Containerfile index ed2e9f9..98144a3 100644 --- a/packages/git/Containerfile +++ b/packages/git/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.9.5 ENV SRC_HASH=a4bea37ecb9a3fb5c0c8ef18c2f7eeaf8ccbcfec91f72f3bccfc6bf72a3e3902 ENV SRC_FILE=git-${VERSION}.tar.xz ENV SRC_SITE=http://mirrors.edge.kernel.org/pub/software/scm/git/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / @@ -19,7 +19,7 @@ COPY --from=stagex/zlib . / COPY --from=stagex/perl . / COPY --from=stagex/gettext . / RUN tar -xvf $SRC_FILE -WORKDIR git-${VERSION} +WORKDIR /git-${VERSION} ENV SOURCE_DATE_EPOCH=1 RUN --network=none <<-EOF set -eux @@ -38,10 +38,10 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN make DESTDIR=/rootfs install -FROM base as test +FROM base AS test COPY --from=install /rootfs/. / COPY --from=stagex/zlib . / COPY --from=stagex/musl . / @@ -56,5 +56,5 @@ RUN /bin/sh <<-EOF fi EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/glib/Containerfile b/packages/glib/Containerfile new file mode 100644 index 0000000..af0e55e --- /dev/null +++ b/packages/glib/Containerfile @@ -0,0 +1,66 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=2.80.0 +ENV SRC_HASH=8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d +ENV SRC_FILE=glib-${VERSION}.tar.xz +ENV SRC_SITE=https://download.gnome.org/sources/glib/2.80/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/python . / +COPY --from=stagex/zlib . / +COPY --from=stagex/bzip2 . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/ncurses . / +COPY --from=stagex/meson . / +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/pcre2 . / +COPY --from=stagex/python . / +COPY --from=stagex/bison . / +COPY --from=stagex/flex . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/libxslt . / +COPY --from=stagex/libffi . / +COPY --from=stagex/xz . / +COPY --from=stagex/expat . / +COPY --from=stagex/rhash . / +COPY --from=stagex/libxml2 . / +COPY --from=stagex/util-linux . / +COPY --from=stagex/libxslt . / +COPY --from=stagex/gettext . / +COPY --from=stagex/ninja . / +RUN tar -xf ${SRC_FILE} +WORKDIR /glib-${VERSION} +COPY *.patch . +RUN --network=none <<-EOF + set -eux + export CFLAGS="-ffat-lto-objects -O2" + export CXXFLAGS="-O2" + export CPPFLAGS="-O2" + meson setup \ + --default-library=shared \ + --prefix=/usr \ + -Dman-pages=disabled \ + -Dlibmount=disabled \ + -Dtests=false \ + -Dintrospection=disabled \ + -Dnls=disabled \ + . output + meson compile -C output + meson install --no-rebuild -C output +EOF + +FROM build AS install +RUN DESTDIR=/rootfs meson install --no-rebuild -C output +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/gmp/Containerfile b/packages/gmp/Containerfile index 3f77486..a22195a 100644 --- a/packages/gmp/Containerfile +++ b/packages/gmp/Containerfile @@ -20,7 +20,7 @@ COPY --from=stagex/m4 . / COPY --from=stagex/gcc . / RUN --network=none tar -xf ${SRC_FILE} -WORKDIR gmp-${VERSION} +WORKDIR /gmp-${VERSION} RUN --network=none < usr/lib/libcursesw.so EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/nettle/Containerfile b/packages/nettle/Containerfile index 841a448..e4c0bf7 100644 --- a/packages/nettle/Containerfile +++ b/packages/nettle/Containerfile @@ -22,7 +22,7 @@ COPY --from=stagex/gcc . / COPY --from=stagex/gmp . / RUN --network=none tar -xf ${SRC_FILE} -WORKDIR nettle-nettle_${VERSION} +WORKDIR /nettle-nettle_${VERSION} RUN --network=none < +Date: Mon, 8 Apr 2024 14:58:12 +0200 +Subject: [PATCH] Fix cookie_seek_function_t signature under musl (#13890) + +Fixes GH-11678 +--- + main/streams/cast.c | 10 +++------- + 1 file changed, 3 insertions(+), 7 deletions(-) + +diff --git a/main/streams/cast.c b/main/streams/cast.c +index 3bad65fbac1f5..8d9f4a9d2d54b 100644 +--- a/main/streams/cast.c ++++ b/main/streams/cast.c +@@ -104,6 +104,9 @@ static ssize_t stream_cookie_writer(void *cookie, const char *buffer, size_t siz + + # ifdef COOKIE_SEEKER_USES_OFF64_T + static int stream_cookie_seeker(void *cookie, off64_t *position, int whence) ++# else ++static int stream_cookie_seeker(void *cookie, off_t *position, int whence) ++# endif + { + + *position = php_stream_seek((php_stream *)cookie, (zend_off_t)*position, whence); +@@ -113,13 +116,6 @@ static int stream_cookie_seeker(void *cookie, off64_t *position, int whence) + } + return 0; + } +-# else +-static int stream_cookie_seeker(void *cookie, zend_off_t position, int whence) +-{ +- +- return php_stream_seek((php_stream *)cookie, position, whence); +-} +-# endif + + static int stream_cookie_closer(void *cookie) + { diff --git a/packages/php/fix-tests-devserver.patch b/packages/php/fix-tests-devserver.patch new file mode 100644 index 0000000..ec335f2 --- /dev/null +++ b/packages/php/fix-tests-devserver.patch @@ -0,0 +1,22 @@ +From: Jakub Jirutka +Date: Mon, 01 May 2017 01:33:00 +0200 +Subject: [PATCH] Fix tests failing due to extra message from built-in web server + +Remove messages like: + + PHP 7.1.4 Development Server started at Mon May 1 00:42:39 2017 + +from test outputs, because tests do not expect them. I have no clue what +happens here... + +--- a/run-tests.php ++++ b/run-tests.php +@@ -2563,6 +2563,9 @@ + // Does the output match what is expected? + $output = preg_replace("/\r\n/", "\n", trim($out)); + ++ // Remove message from built-in development server. ++ $output = preg_replace("/^PHP [0-9.]+ Development Server started at .*\n\n?/m", "", $output); ++ + /* when using CGI, strip the headers from the output */ + $headers = [] \ No newline at end of file diff --git a/packages/php/includedir.patch b/packages/php/includedir.patch new file mode 100644 index 0000000..2aaa2cb --- /dev/null +++ b/packages/php/includedir.patch @@ -0,0 +1,40 @@ +--- a/scripts/Makefile.frag ++++ b/scripts/Makefile.frag +@@ -2,7 +2,7 @@ + # Build environment install + # + +-phpincludedir = $(includedir)/php ++phpincludedir = $(includedir)/php83 + phpbuilddir = $(libdir)/build + + BUILD_FILES = \ +--- a/ext/pdo/Makefile.frag ++++ b/ext/pdo/Makefile.frag +@@ -1,4 +1,4 @@ +-phpincludedir=$(prefix)/include/php ++phpincludedir=$(prefix)/include/php83 + + PDO_HEADER_FILES= \ + php_pdo.h \ +--- a/scripts/php-config.in ++++ b/scripts/php-config.in +@@ -6,7 +6,7 @@ + exec_prefix="@exec_prefix@" + version="@PHP_VERSION@" + vernum="@PHP_VERSION_ID@" +-include_dir="@includedir@/php" ++include_dir="@includedir@/php83" + includes="-I$include_dir -I$include_dir/main -I$include_dir/TSRM -I$include_dir/Zend -I$include_dir/ext -I$include_dir/ext/date/lib" + ldflags="@PHP_LDFLAGS@" + libs="@EXTRA_LIBS@" +--- a/scripts/phpize.in ++++ b/scripts/phpize.in +@@ -5,7 +5,7 @@ + datarootdir='@datarootdir@' + exec_prefix="`eval echo @exec_prefix@`" + phpdir="`eval echo @libdir@`/build" +-includedir="`eval echo @includedir@`/php" ++includedir="`eval echo @includedir@`/php83" + builddir="`pwd`" + SED="@SED@" diff --git a/packages/php/install-pear.patch b/packages/php/install-pear.patch new file mode 100644 index 0000000..54fc64e --- /dev/null +++ b/packages/php/install-pear.patch @@ -0,0 +1,14 @@ +--- ./pear/Makefile.frag.orig 2013-04-12 07:02:27.041602514 +0000 ++++ ./pear/Makefile.frag 2013-04-12 07:04:09.065836822 +0000 +@@ -1,7 +1,10 @@ + peardir=$(PEAR_INSTALLDIR) + ++# help the built php to find xml extension so we can install pear ++PEAR_INSTALL_XML_FLAGS = -d extension="$(top_builddir)/modules/xml.so" -d extension="$(top_builddir)/modules/phar.so" ++ + # Skip all php.ini files altogether +-PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0 ++PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0 $(PEAR_INSTALL_XML_FLAGS) + + WGET = `which wget 2>/dev/null` + FETCH = `which fetch 2>/dev/null` diff --git a/packages/php/loongarch64-support-for-fibers.patch b/packages/php/loongarch64-support-for-fibers.patch new file mode 100644 index 0000000..1a57dbb --- /dev/null +++ b/packages/php/loongarch64-support-for-fibers.patch @@ -0,0 +1,245 @@ +Patch-Source: https://github.com/php/php-src/commit/0766ac6e357282eafb51cbdc5383345e7487260b +From 0766ac6e357282eafb51cbdc5383345e7487260b Mon Sep 17 00:00:00 2001 +From: qiangxuhui +Date: Mon, 1 Apr 2024 07:16:47 +0000 +Subject: [PATCH] loongarch64 support for fibers + +Add loongarch64 assembly files from Boost, needed for fibers support, +and hook up loongarch64 fibers support during configure. + +Close GH-13914 +--- + Zend/asm/jump_loongarch64_sysv_elf_gas.S | 121 +++++++++++++++++++++++ + Zend/asm/make_loongarch64_sysv_elf_gas.S | 72 ++++++++++++++ + configure.ac | 2 + + 3 files changed, 195 insertions(+) + create mode 100644 Zend/asm/jump_loongarch64_sysv_elf_gas.S + create mode 100644 Zend/asm/make_loongarch64_sysv_elf_gas.S + +diff --git a/Zend/asm/jump_loongarch64_sysv_elf_gas.S b/Zend/asm/jump_loongarch64_sysv_elf_gas.S +new file mode 100644 +index 0000000000..74c081e07f +--- /dev/null ++++ b/Zend/asm/jump_loongarch64_sysv_elf_gas.S +@@ -0,0 +1,121 @@ ++/******************************************************* ++ * * ++ * ------------------------------------------------- * ++ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * ++ * ------------------------------------------------- * ++ * | 0 | 8 | 16 | 24 | * ++ * ------------------------------------------------- * ++ * | FS0 | FS1 | FS2 | FS3 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * ++ * ------------------------------------------------- * ++ * | 32 | 40 | 48 | 56 | * ++ * ------------------------------------------------- * ++ * | FS4 | FS5 | FS6 | FS7 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * ++ * ------------------------------------------------- * ++ * | 64 | 72 | 80 | 88 | * ++ * ------------------------------------------------- * ++ * | S0 | S1 | S2 | S3 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * ++ * ------------------------------------------------- * ++ * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * ++ * ------------------------------------------------- * ++ * | S4 | S5 | S6 | S7 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * ++ * ------------------------------------------------- * ++ * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * ++ * ------------------------------------------------- * ++ * | S8 | FP | RA | PC | * ++ * ------------------------------------------------- * ++ * * ++ * *****************************************************/ ++ ++.file "jump_loongarch64_sysv_elf_gas.S" ++.text ++.globl jump_fcontext ++.align 2 ++.type jump_fcontext,@function ++jump_fcontext: ++ # reserve space on stack ++ addi.d $sp, $sp, -160 ++ ++ # save fs0 - fs7 ++ fst.d $fs0, $sp, 0 ++ fst.d $fs1, $sp, 8 ++ fst.d $fs2, $sp, 16 ++ fst.d $fs3, $sp, 24 ++ fst.d $fs4, $sp, 32 ++ fst.d $fs5, $sp, 40 ++ fst.d $fs6, $sp, 48 ++ fst.d $fs7, $sp, 56 ++ ++ # save s0 - s8, fp, ra ++ st.d $s0, $sp, 64 ++ st.d $s1, $sp, 72 ++ st.d $s2, $sp, 80 ++ st.d $s3, $sp, 88 ++ st.d $s4, $sp, 96 ++ st.d $s5, $sp, 104 ++ st.d $s6, $sp, 112 ++ st.d $s7, $sp, 120 ++ st.d $s8, $sp, 128 ++ st.d $fp, $sp, 136 ++ st.d $ra, $sp, 144 ++ ++ # save RA as PC ++ st.d $ra, $sp, 152 ++ ++ # store SP (pointing to context-data) in A2 ++ move $a2, $sp ++ ++ # restore SP (pointing to context-data) from A0 ++ move $sp, $a0 ++ ++ # load fs0 - fs7 ++ fld.d $fs0, $sp, 0 ++ fld.d $fs1, $sp, 8 ++ fld.d $fs2, $sp, 16 ++ fld.d $fs3, $sp, 24 ++ fld.d $fs4, $sp, 32 ++ fld.d $fs5, $sp, 40 ++ fld.d $fs6, $sp, 48 ++ fld.d $fs7, $sp, 56 ++ ++ #load s0 - s7 ++ ld.d $s0, $sp, 64 ++ ld.d $s1, $sp, 72 ++ ld.d $s2, $sp, 80 ++ ld.d $s3, $sp, 88 ++ ld.d $s4, $sp, 96 ++ ld.d $s5, $sp, 104 ++ ld.d $s6, $sp, 112 ++ ld.d $s7, $sp, 120 ++ ld.d $s8, $sp, 128 ++ ld.d $fp, $sp, 136 ++ ld.d $ra, $sp, 144 ++ ++ # return transfer_t from jump ++ # pass transfer_t as first arg in context function ++ # a0 == FCTX, a1 == DATA ++ move $a0, $a2 ++ ++ # load PC ++ ld.d $a2, $sp, 152 ++ ++ # restore stack ++ addi.d $sp, $sp, 160 ++ ++ # jump to context ++ jr $a2 ++.size jump_fcontext, .-jump_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",%progbits +diff --git a/Zend/asm/make_loongarch64_sysv_elf_gas.S b/Zend/asm/make_loongarch64_sysv_elf_gas.S +new file mode 100644 +index 0000000000..55062702f1 +--- /dev/null ++++ b/Zend/asm/make_loongarch64_sysv_elf_gas.S +@@ -0,0 +1,72 @@ ++/******************************************************* ++ * * ++ * ------------------------------------------------- * ++ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * ++ * ------------------------------------------------- * ++ * | 0 | 8 | 16 | 24 | * ++ * ------------------------------------------------- * ++ * | FS0 | FS1 | FS2 | FS3 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * ++ * ------------------------------------------------- * ++ * | 32 | 40 | 48 | 56 | * ++ * ------------------------------------------------- * ++ * | FS4 | FS5 | FS6 | FS7 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * ++ * ------------------------------------------------- * ++ * | 64 | 72 | 80 | 88 | * ++ * ------------------------------------------------- * ++ * | S0 | S1 | S2 | S3 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * ++ * ------------------------------------------------- * ++ * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * ++ * ------------------------------------------------- * ++ * | S4 | S5 | S6 | S7 | * ++ * ------------------------------------------------- * ++ * ------------------------------------------------- * ++ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * ++ * ------------------------------------------------- * ++ * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * ++ * ------------------------------------------------- * ++ * | S8 | FP | RA | PC | * ++ * ------------------------------------------------- * ++ * * ++ * *****************************************************/ ++ ++.file "make_loongarch64_sysv_elf_gas.S" ++.text ++.globl make_fcontext ++.align 2 ++.type make_fcontext,@function ++make_fcontext: ++ # shift address in A0 to lower 16 byte boundary ++ bstrins.d $a0, $zero, 3, 0 ++ ++ # reserve space for context-data on context-stack ++ addi.d $a0, $a0, -160 ++ ++ # third arg of make_fcontext() == address of context-function ++ st.d $a2, $a0, 152 ++ ++ # save address of finish as return-address for context-function ++ # will be entered after context-function returns ++ la.local $a4, finish ++ st.d $a4, $a0, 144 ++ ++ # return pointer to context-data ++ jr $ra ++ ++finish: ++ # exit code is zero ++ li.d $a0, 0 ++ # call _exit(0) ++ b %plt(_exit) ++ ++.size make_fcontext, .-make_fcontext ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",%progbits +diff --git a/configure.ac b/configure.ac +index 2bf60c434d..da646ac69f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1253,6 +1253,7 @@ AS_CASE([$host_cpu], + [riscv64*], [fiber_cpu="riscv64"], + [sparc64], [fiber_cpu="sparc64"], + [s390x*], [fiber_cpu="s390x"], ++ [loongarch64*], [fiber_cpu="loongarch64"], + [mips64*], [fiber_cpu="mips64"], + [mips*], [fiber_cpu="mips32"], + [fiber_cpu="unknown"] +@@ -1275,6 +1276,7 @@ AS_CASE([$fiber_cpu], + [riscv64], [fiber_asm_file_prefix="riscv64_sysv"], + [sparc64], [fiber_asm_file_prefix="sparc64_sysv"], + [s390x], [fiber_asm_file_prefix="s390x_sysv"], ++ [loongarch64], [fiber_asm_file_prefix="loongarch64_sysv"], + [mips64], [fiber_asm_file_prefix="mips64_n64"], + [mips32], [fiber_asm_file_prefix="mips32_o32"], + [fiber_asm_file_prefix="unknown"] +-- +2.44.0 diff --git a/packages/php/php83-fpm-verson-suffix.patch b/packages/php/php83-fpm-verson-suffix.patch new file mode 100644 index 0000000..0de56c0 --- /dev/null +++ b/packages/php/php83-fpm-verson-suffix.patch @@ -0,0 +1,79 @@ +--- a/sapi/fpm/fpm/fpm_conf.c ++++ b/sapi/fpm/fpm/fpm_conf.c +@@ -1262,7 +1262,7 @@ + } + + if (!fpm_global_config.error_log) { +- fpm_global_config.error_log = strdup("log/php-fpm.log"); ++ fpm_global_config.error_log = strdup("log/php83/error.log"); + } + + #ifdef HAVE_SYSTEMD +@@ -1273,7 +1273,7 @@ + + #ifdef HAVE_SYSLOG_H + if (!fpm_global_config.syslog_ident) { +- fpm_global_config.syslog_ident = strdup("php-fpm"); ++ fpm_global_config.syslog_ident = strdup("php-fpm83"); + } + + if (fpm_global_config.syslog_facility < 0) { +@@ -1777,7 +1777,7 @@ + if (fpm_globals.prefix == NULL) { + spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR); + } else { +- spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix); ++ spprintf(&tmp, 0, "%s/etc/php83/php-fpm.conf", fpm_globals.prefix); + } + + if (!tmp) { + +--- a/sapi/fpm/php-fpm.conf.in ++++ b/sapi/fpm/php-fpm.conf.in +@@ -16,3 +16,3 @@ + ; Default Value: none +-;pid = run/php-fpm.pid ++;pid = run/php-fpm83.pid + +@@ -22,4 +22,4 @@ + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ +-; Default Value: log/php-fpm.log +-;error_log = log/php-fpm.log ++; Default Value: log/php83/error.log ++;error_log = log/php83/error.log + +@@ -35,4 +35,4 @@ + ; which must suit common needs. +-; Default Value: php-fpm +-;syslog.ident = php-fpm ++; Default Value: php-fpm83 ++;syslog.ident = php-fpm83 + +--- a/sapi/fpm/www.conf.in ++++ b/sapi/fpm/www.conf.in +@@ -273,7 +273,7 @@ + + ; The access log file + ; Default: not set +-;access.log = log/$pool.access.log ++;access.log = log/php83/$pool.access.log + + ; The access log format. + ; The following syntax is allowed +@@ -337,7 +337,7 @@ + ; The log file for slow requests + ; Default Value: not set + ; Note: slowlog is mandatory if request_slowlog_timeout is set +-;slowlog = log/$pool.log.slow ++;slowlog = log/php83/$pool.slow.log + + ; The timeout for serving a single request after which a PHP backtrace will be + ; dumped to the 'slowlog' file. A value of '0s' means 'off'. +@@ -450,6 +450,6 @@ + ; specified at startup with the -d argument + ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com + ;php_flag[display_errors] = off +-;php_admin_value[error_log] = /var/log/fpm-php.www.log ++;php_admin_value[error_log] = /var/log/php83/$pool.error.log + ;php_admin_flag[log_errors] = on + ;php_admin_value[memory_limit] = 32M diff --git a/packages/php/phpinfo-avif.patch b/packages/php/phpinfo-avif.patch new file mode 100644 index 0000000..b2af4ea --- /dev/null +++ b/packages/php/phpinfo-avif.patch @@ -0,0 +1,30 @@ +Patch-Source: https://github.com/php/php-src/pull/7526 +From d3402bfd3e9a87b1d4ce3785e393e698746c645c Mon Sep 17 00:00:00 2001 +From: Andy Postnikov +Date: Tue, 28 Sep 2021 23:35:37 +0300 +Subject: [PATCH] display libavif version and codecs via phpinfo() + +--- + ext/gd/gd.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/ext/gd/gd.c b/ext/gd/gd.c +index 880d6dddc7d7..67349e8749bf 100644 +--- a/ext/gd/gd.c ++++ b/ext/gd/gd.c +@@ -455,6 +455,15 @@ + #endif + #ifdef HAVE_GD_AVIF + php_info_print_table_row(2, "AVIF Support", "enabled"); ++#ifdef HAVE_GD_BUNDLED ++#include ++ { ++ php_info_print_table_row(2, "AVIF Version", avifVersion()); ++ char tmp[256]; ++ avifCodecVersions(tmp); ++ php_info_print_table_row(2, "AVIF Codecs", tmp); ++ } ++#endif + #endif + #ifdef HAVE_GD_TGA + php_info_print_table_row(2, "TGA Read Support", "enabled"); diff --git a/packages/php/sharedir.patch b/packages/php/sharedir.patch new file mode 100644 index 0000000..900c41d --- /dev/null +++ b/packages/php/sharedir.patch @@ -0,0 +1,11 @@ +--- a/php.ini-production ++++ b/php.ini-production +@@ -742,7 +742,7 @@ + ;;;;;;;;;;;;;;;;;;;;;;;;; + + ; UNIX: "/path1:/path2" +-;include_path = ".:/php/includes" ++include_path = ".:/usr/share/php83" + ; + ; Windows: "\path1;\path2" + ;include_path = ".;c:\php\includes" \ No newline at end of file diff --git a/packages/pkgconf/Containerfile b/packages/pkgconf/Containerfile index 344fb0a..2734e5d 100644 --- a/packages/pkgconf/Containerfile +++ b/packages/pkgconf/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.6.3 ENV SRC_HASH=61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210 ENV SRC_FILE=pkgconf-${VERSION}.tar.xz ENV SRC_SITE=https://distfiles.ariadne.space/pkgconf/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR pkgconf-${VERSION} +WORKDIR /pkgconf-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -22,12 +22,12 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux make DESTDIR=/rootfs install ln -s pkgconf /rootfs/usr/bin/pkg-config EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/po4a/Containerfile b/packages/po4a/Containerfile index 09cbc3b..37448d7 100644 --- a/packages/po4a/Containerfile +++ b/packages/po4a/Containerfile @@ -1,13 +1,14 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.73 ENV SRC_HASH=ad5edc38bf004807843622fddbf67bd5ac604fc16e14c2bfefa7b07718ad21f3 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/mquinson/po4a/archive/refs/tags/${SRC_FILE} +ENV SOURCE_DATE_EPOCH=1 -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -27,7 +28,7 @@ COPY --from=stagex/m4 . / COPY --from=stagex/autoconf . / COPY --from=stagex/pkgconf . / RUN tar -xf ${SRC_FILE} -WORKDIR po4a-${VERSION} +WORKDIR /po4a-${VERSION} RUN --network=none <<-EOF set -eux perl Build.PL \ @@ -36,8 +37,8 @@ RUN --network=none <<-EOF LC_ALL=en_US.UTF-8 perl Build EOF -FROM build as install +FROM build AS install RUN --network=none ./Build install --destdir="/rootfs" -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/postgresql/Containerfile b/packages/postgresql/Containerfile index e0c0fc7..d8bdb07 100644 --- a/packages/postgresql/Containerfile +++ b/packages/postgresql/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=16.2 ENV SRC_HASH=2b8201047ec81acd1bad29dba278d788e7891b9c3e8232eda16bb29dec8131c7 ENV SRC_FILE=postgresql-${VERSION}.tar.gz ENV SRC_SITE=https://ftp.postgresql.org/pub/source/v16.2/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / @@ -32,7 +32,7 @@ COPY --from=stagex/e2fsprogs . / COPY --from=stagex/tcl . / RUN tar -xf ${SRC_FILE} -WORKDIR postgresql-${VERSION} +WORKDIR /postgresql-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -53,8 +53,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" world EOF -FROM build as install +FROM build AS install RUN --network=none make install-world DESTDIR=/rootfs -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/protobuf/Containerfile b/packages/protobuf/Containerfile index c2ef7bc..977a788 100644 --- a/packages/protobuf/Containerfile +++ b/packages/protobuf/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=26.1 ENV SRC_HASH=4fc5ff1b2c339fb86cd3a25f0b5311478ab081e65ad258c6789359cd84d421f8 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/protocolbuffers/protobuf/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/cmake . / @@ -20,7 +20,7 @@ COPY --from=stagex/zlib . / COPY --from=stagex/abseil-cpp . / RUN tar -xf ${SRC_FILE} -WORKDIR protobuf-${VERSION} +WORKDIR /protobuf-${VERSION} RUN <<-EOF set -eux cmake \ @@ -38,8 +38,8 @@ RUN <<-EOF cmake --build build EOF -FROM build as install +FROM build AS install RUN --network=none DESTDIR="/rootfs" cmake --install build -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/protoc-gen-go-grpc/Containerfile b/packages/protoc-gen-go-grpc/Containerfile index 0512b06..f44bc3b 100644 --- a/packages/protoc-gen-go-grpc/Containerfile +++ b/packages/protoc-gen-go-grpc/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.63.2 ENV SRC_HASH=ffc7611e4989de79de4c17b015ff10db810b85f749b12520336314746e9d7095 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/grpc/grpc-go/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR grpc-go-${VERSION}/cmd/protoc-gen-go-grpc -ENV GOPATH=${PWD}/cache/go -ENV GOCACHE=${PWD}/cache/ +WORKDIR /grpc-go-${VERSION}/cmd/protoc-gen-go-grpc +ENV GOPATH=/cache/go +ENV GOCACHE=/cache/ ENV GOWORK=off ENV GOPROXY=https://proxy.golang.org,direct ENV GOSUMDB=sum.golang.org @@ -25,12 +25,12 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/protoc-gen-go-grpc ./ -from build as install +FROM build AS install RUN <<-EOF set -eux mkdir -p /rootfs/usr/bin/ cp bin/protoc-gen-go-grpc /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/protoc-gen-go/Containerfile b/packages/protoc-gen-go/Containerfile index dcce0ae..197a377 100644 --- a/packages/protoc-gen-go/Containerfile +++ b/packages/protoc-gen-go/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.5.4 ENV SRC_HASH=d75e6960ecfabaaa83a7261b1b630d24e9c63aca79615fb15bf33e11b62fd019 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/golang/protobuf/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR protobuf-${VERSION} -ENV GOPATH=${PWD}/cache/go -ENV GOCACHE=${PWD}/cache/ +WORKDIR /protobuf-${VERSION} +ENV GOPATH=/cache/go +ENV GOCACHE=/cache/ ENV GOWORK=off ENV GOPROXY=https://proxy.golang.org,direct ENV GOSUMDB=sum.golang.org @@ -25,12 +25,12 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/protoc-gen-go ./protoc-gen-go -from build as install +FROM build AS install RUN <<-EOF set -eux mkdir -p /rootfs/usr/bin/ cp bin/protoc-gen-go /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/protoc-gen-grpc-gateway/Containerfile b/packages/protoc-gen-grpc-gateway/Containerfile index c3df705..711d69e 100644 --- a/packages/protoc-gen-grpc-gateway/Containerfile +++ b/packages/protoc-gen-grpc-gateway/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.19.1 ENV SRC_HASH=89d78abbe4aca77ce7823223945e852aec31c87a8c7aac084340ef9f53fd9637 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/grpc-ecosystem/grpc-gateway/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR grpc-gateway-${VERSION} -ENV GOPATH=${PWD}/cache/go -ENV GOCACHE=${PWD}/cache/ +WORKDIR /grpc-gateway-${VERSION} +ENV GOPATH=/cache/go +ENV GOCACHE=/cache/ ENV GOWORK=off ENV GOPROXY=https://proxy.golang.org,direct ENV GOSUMDB=sum.golang.org @@ -25,12 +25,12 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/protoc-gen-grpc-gateway ./protoc-gen-grpc-gateway -from build as install +FROM build AS install RUN <<-EOF set -eux mkdir -p /rootfs/usr/bin/ cp bin/protoc-gen-grpc-gateway /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/protoc-gen-openapiv2/Containerfile b/packages/protoc-gen-openapiv2/Containerfile index eaefe57..a7c37e0 100644 --- a/packages/protoc-gen-openapiv2/Containerfile +++ b/packages/protoc-gen-openapiv2/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.17.1 ENV SRC_HASH=092bc95544d6089ccea00fb124a0a81eadf212bf06d61a4ba422ad331bf3c6da ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/grpc-ecosystem/grpc-gateway/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR grpc-gateway-${VERSION} -ENV GOPATH=${PWD}/cache/go -ENV GOCACHE=${PWD}/cache/ +WORKDIR /grpc-gateway-${VERSION} +ENV GOPATH=/cache/go +ENV GOCACHE=/cache/ ENV GOWORK=off ENV GOPROXY=https://proxy.golang.org,direct ENV GOSUMDB=sum.golang.org @@ -25,12 +25,12 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/protoc-gen-openapiv2 ./protoc-gen-openapiv2 -from build as install +FROM build AS install RUN <<-EOF set -eux mkdir -p /rootfs/usr/bin/ cp bin/protoc-gen-openapiv2 /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/protoc-go-inject-tag/Containerfile b/packages/protoc-go-inject-tag/Containerfile index 138c696..6923836 100644 --- a/packages/protoc-go-inject-tag/Containerfile +++ b/packages/protoc-go-inject-tag/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.4.0 ENV SRC_HASH=0ec154e2b8159b1e449a7d182accf925bdad3b084ba75b8a497bcc816e49f47d ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/favadi/protoc-go-inject-tag/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR protoc-go-inject-tag-${VERSION} -ENV GOPATH=${PWD}/cache/go -ENV GOCACHE=${PWD}/cache/ +WORKDIR /protoc-go-inject-tag-${VERSION} +ENV GOPATH=/cache/go +ENV GOCACHE=/cache/ ENV GOWORK=off ENV GOPROXY=https://proxy.golang.org,direct ENV GOSUMDB=sum.golang.org @@ -25,12 +25,12 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/protoc-go-inject-tag . -from build as install +FROM build AS install RUN <<-EOF set -eux mkdir -p /rootfs/usr/bin/ cp bin/protoc-go-inject-tag /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/py-alabaster/Containerfile b/packages/py-alabaster/Containerfile new file mode 100644 index 0000000..af793ff --- /dev/null +++ b/packages/py-alabaster/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=0.7.16 +ENV SRC_HASH=75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65 +ENV SRC_FILE=alabaster-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/a/alabaster/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /alabaster-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-awscrt/Containerfile b/packages/py-awscrt/Containerfile index a8bac2f..c60fa47 100644 --- a/packages/py-awscrt/Containerfile +++ b/packages/py-awscrt/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.20.3 ENV SRC_HASH=c41e471c3494287606a2c6c26b8fe97acc74b8941aae9d9a121a470c19838758 ENV SRC_FILE=awscrt-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/a/awscrt/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -24,15 +24,15 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-wheel . / COPY --from=stagex/py-gpep517 . / RUN tar -xzf ${SRC_FILE} -WORKDIR awscrt-${VERSION} +WORKDIR /awscrt-${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-babel/Containerfile b/packages/py-babel/Containerfile new file mode 100644 index 0000000..1b7024d --- /dev/null +++ b/packages/py-babel/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=2.14.0 +ENV SRC_HASH=6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363 +ENV SRC_FILE=Babel-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/B/Babel/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /Babel-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eux + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-botocore/Containerfile b/packages/py-botocore/Containerfile index a0959ca..c14c5fb 100644 --- a/packages/py-botocore/Containerfile +++ b/packages/py-botocore/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.34.68 ENV SRC_HASH=e7ae9d69cc3e7b31d926e6a1a9ae673ba02da263e35cf12ff2bae35a21755cc6 ENV SRC_FILE=botocore-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/b/botocore/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR botocore-${VERSION} +WORKDIR /botocore-${VERSION} RUN <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-build/Containerfile b/packages/py-build/Containerfile index 60aee52..f18e990 100644 --- a/packages/py-build/Containerfile +++ b/packages/py-build/Containerfile @@ -1,25 +1,25 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.7.0 ENV SRC_HASH=1aaadcd69338252ade4f7ec1265e1a19184bf916d84c9b7df095f423948cb89f ENV SRC_FILE=build-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/b/build/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/py-setuptools . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR build-${VERSION} +WORKDIR /build-${VERSION} RUN --network=none <<-EOF set -eu python setup.py install --root=/rootfs find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-certifi/Containerfile b/packages/py-certifi/Containerfile index 089f0fd..7c1cba4 100644 --- a/packages/py-certifi/Containerfile +++ b/packages/py-certifi/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2024.2.2 ENV SRC_HASH=0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f ENV SRC_FILE=certifi-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/c/certifi/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR certifi-${VERSION} +WORKDIR /certifi-${VERSION} RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-cffi/Containerfile b/packages/py-cffi/Containerfile index b96ee0b..1b77728 100644 --- a/packages/py-cffi/Containerfile +++ b/packages/py-cffi/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.16.0 ENV SRC_HASH=bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 ENV SRC_FILE=cffi-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/c/cffi/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -21,15 +21,15 @@ COPY --from=stagex/py-setuptools . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR cffi-${VERSION} +WORKDIR /cffi-${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-colorama/Containerfile b/packages/py-colorama/Containerfile index b7e8a83..6523bde 100644 --- a/packages/py-colorama/Containerfile +++ b/packages/py-colorama/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.4.6 ENV SRC_HASH=08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 ENV SRC_FILE=colorama-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/c/colorama/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR colorama-${VERSION} +WORKDIR /colorama-${VERSION} RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-cparser/Containerfile b/packages/py-cparser/Containerfile index 2a2bd91..9c184dd 100644 --- a/packages/py-cparser/Containerfile +++ b/packages/py-cparser/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.21 ENV SRC_HASH=e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 ENV SRC_FILE=pycparser-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/pycparser/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / @@ -24,15 +24,15 @@ COPY --from=stagex/py-setuptools . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR pycparser-${VERSION} +WORKDIR /pycparser-${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-cryptography/Containerfile b/packages/py-cryptography/Containerfile index c364ceb..c0c0330 100644 --- a/packages/py-cryptography/Containerfile +++ b/packages/py-cryptography/Containerfile @@ -1,19 +1,19 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=41.0.7 ENV SRC_HASH=13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc ENV SRC_FILE=cryptography-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/c/cryptography/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/pkgconf . / -COPY --from=stagex/llvm . / +COPY --from=stagex/llvm16 . / COPY --from=stagex/libunwind . / COPY --from=stagex/openssl . / COPY --from=stagex/ca-certificates . / @@ -32,15 +32,15 @@ COPY --from=stagex/py-typing-extensions . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR cryptography-${VERSION} +WORKDIR /cryptography-${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/cryptography-*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-dateutil/Containerfile b/packages/py-dateutil/Containerfile index 2181e94..ffba89c 100644 --- a/packages/py-dateutil/Containerfile +++ b/packages/py-dateutil/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.9.0 ENV SRC_HASH=78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709 ENV SRC_FILE=python-dateutil-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/python-dateutil/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR python-dateutil-${VERSION}/src +WORKDIR /python-dateutil-${VERSION}/src RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-distro/Containerfile b/packages/py-distro/Containerfile index 2219119..54b4e3f 100644 --- a/packages/py-distro/Containerfile +++ b/packages/py-distro/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.9.0 ENV SRC_HASH=2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed ENV SRC_FILE=distro-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/d/distro/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR distro-${VERSION}/src +WORKDIR /distro-${VERSION}/src RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-docutils/Containerfile b/packages/py-docutils/Containerfile index 5e535d3..3294e80 100644 --- a/packages/py-docutils/Containerfile +++ b/packages/py-docutils/Containerfile @@ -1,28 +1,33 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.20.1 ENV SRC_HASH=f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b ENV SRC_FILE=docutils-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/d/docutils/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / +COPY --from=stagex/libffi . / COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR docutils-${VERSION} +WORKDIR /docutils-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install RUN --network=none <<-EOF - set -eu - sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" - mkdir -p "/rootfs/${sitedir}" - cp -a docutils "/rootfs/$sitedir" + set -eu + python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-flit/Containerfile b/packages/py-flit/Containerfile index 4c74e57..bafe997 100644 --- a/packages/py-flit/Containerfile +++ b/packages/py-flit/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=3.9.0 ENV SRC_HASH=d75edf5eb324da20d53570a6a6f87f51e606eee8384925cd66a90611140844c7 ENV SRC_FILE=flit-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/f/flit/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/py-setuptools . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR flit-${VERSION}/flit_core +WORKDIR /flit-${VERSION}/flit_core RUN --network=none <<-EOF set -eu rm -rf flit_core/vendor @@ -25,5 +25,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-gpep517/Containerfile b/packages/py-gpep517/Containerfile index 754289c..d39d31f 100644 --- a/packages/py-gpep517/Containerfile +++ b/packages/py-gpep517/Containerfile @@ -1,19 +1,19 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=15 ENV SRC_HASH=368fa8dfb0775589e3f85d34df18395c22980de8520dc6447e778fc1d0102787 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/projg2/gpep517/archive/v${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR gpep517-${VERSION} +WORKDIR /gpep517-${VERSION} COPY <<-'EOF' gpep517-cli #!/usr/bin/python3 # -*- coding: utf-8 -*- @@ -32,5 +32,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-hatchling/Containerfile b/packages/py-hatchling/Containerfile new file mode 100644 index 0000000..60e278f --- /dev/null +++ b/packages/py-hatchling/Containerfile @@ -0,0 +1,41 @@ +FROM scratch AS base +ENV VERSION=1.25.0 +ENV SRC_HASH=7064631a512610b52250a4d3ff1bd81551d6d1431c4eb7b72e734df6c74f4262 +ENV SRC_FILE=hatchling-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/h/hatchling/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-trove-classifiers . / +COPY --from=stagex/py-pathspec . / +COPY --from=stagex/py-pluggy . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /hatchling-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eux + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-idna/Containerfile b/packages/py-idna/Containerfile new file mode 100644 index 0000000..f328044 --- /dev/null +++ b/packages/py-idna/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=3.7 +ENV SRC_HASH=07017f753632624abaa31aa2c1b243aea6409367256de4183671d95e019f7d70 +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/kjd/idna/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /idna-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eux + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-imagesize/Containerfile b/packages/py-imagesize/Containerfile new file mode 100644 index 0000000..3e43846 --- /dev/null +++ b/packages/py-imagesize/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=1.4.1 +ENV SRC_HASH=69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a +ENV SRC_FILE=imagesize-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/i/imagesize/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /imagesize-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eux + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-installer/Containerfile b/packages/py-installer/Containerfile index 140fc8b..3c03db0 100644 --- a/packages/py-installer/Containerfile +++ b/packages/py-installer/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.7.0 ENV SRC_HASH=a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631 ENV SRC_FILE=installer-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/i/installer/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -19,10 +19,10 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-packaging . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR installer-${VERSION} +WORKDIR /installer-${VERSION} RUN python -m build -wn --skip-dependency-check -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu PYTHONPATH=src python -m installer --destdir=/rootfs dist/*.whl @@ -30,5 +30,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-jinja2/Containerfile b/packages/py-jinja2/Containerfile new file mode 100644 index 0000000..a0fbf4f --- /dev/null +++ b/packages/py-jinja2/Containerfile @@ -0,0 +1,38 @@ +FROM scratch AS base +ENV VERSION=3.1.4 +ENV SRC_HASH=4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 +ENV SRC_FILE=jinja2-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/j/jinja2/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /jinja2-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-jmespath/Containerfile b/packages/py-jmespath/Containerfile index a909553..dc0af6f 100644 --- a/packages/py-jmespath/Containerfile +++ b/packages/py-jmespath/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.0.1 ENV SRC_HASH=90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe ENV SRC_FILE=jmespath-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/j/jmespath/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR jmespath-${VERSION} +WORKDIR /jmespath-${VERSION} RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-libarchive/Containerfile b/packages/py-libarchive/Containerfile new file mode 100644 index 0000000..5282f2d --- /dev/null +++ b/packages/py-libarchive/Containerfile @@ -0,0 +1,43 @@ +FROM scratch AS base +ENV VERSION=5.1 +ENV SRC_HASH=b8198dd259684f75622112eb3172800780fbedda0a83652d22d36db0d4c0433c +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/Changaco/python-libarchive-c/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/python . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/libarchive . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-distro . / +COPY --from=stagex/py-dateutil . / +COPY --from=stagex/py-urllib3 . / +COPY --from=stagex/py-cffi . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/cmake . / +COPY --from=stagex/gcc . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /python-libarchive-c-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-magic/Containerfile b/packages/py-magic/Containerfile new file mode 100644 index 0000000..3d37c30 --- /dev/null +++ b/packages/py-magic/Containerfile @@ -0,0 +1,43 @@ +FROM scratch AS base +ENV VERSION=0.4.27 +ENV SRC_HASH=3978a25d43d9a7b8a89ae9d726bd4962fc90dc4f69ae852e399f3c56d4b0bd63 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/ahupp/python-magic/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-distro . / +COPY --from=stagex/py-dateutil . / +COPY --from=stagex/py-urllib3 . / +COPY --from=stagex/py-cffi . / +COPY --from=stagex/file . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /python-magic-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 +# +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-markupsafe/Containerfile b/packages/py-markupsafe/Containerfile new file mode 100644 index 0000000..420afb8 --- /dev/null +++ b/packages/py-markupsafe/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=2.1.5 +ENV SRC_HASH=d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b +ENV SRC_FILE=MarkupSafe-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/M/MarkupSafe/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /MarkupSafe-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-packaging/Containerfile b/packages/py-packaging/Containerfile index eaf9d48..88dc8b9 100644 --- a/packages/py-packaging/Containerfile +++ b/packages/py-packaging/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=24.0 ENV SRC_HASH=eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 ENV SRC_FILE=packaging-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/packaging/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR packaging-${VERSION}/src +WORKDIR /packaging-${VERSION}/src RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-pathspec/Containerfile b/packages/py-pathspec/Containerfile new file mode 100644 index 0000000..2b2ada4 --- /dev/null +++ b/packages/py-pathspec/Containerfile @@ -0,0 +1,37 @@ +FROM scratch AS base +ENV VERSION=0.12.1 +ENV SRC_HASH=a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +ENV SRC_FILE=pathspec-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/pathspec/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /pathspec-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-pep517/Containerfile b/packages/py-pep517/Containerfile index f302063..75f8046 100644 --- a/packages/py-pep517/Containerfile +++ b/packages/py-pep517/Containerfile @@ -1,4 +1,4 @@ -FROM scratch as base +FROM scratch AS base #ENV VERSION=0.13.1 #ENV SRC_HASH=1b2fa2ffd3938bb4beffe5d6146cbcb2bda996a5a4da9f31abffd8b24e07b317 ENV VERSION=0.9.1 @@ -6,22 +6,22 @@ ENV SRC_HASH=aeb78601f2d1aa461960b43add204cc7955667687fbcf9cdb5170f00556f117f ENV SRC_FILE=pep517-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/pep517/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/py-setuptools . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR pep517-${VERSION} +WORKDIR /pep517-${VERSION} RUN --network=none <<-EOF set -eu python setup.py install --root=/rootfs find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-pluggy/Containerfile b/packages/py-pluggy/Containerfile new file mode 100644 index 0000000..b46a43a --- /dev/null +++ b/packages/py-pluggy/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=1.5.0 +ENV SRC_HASH=2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1 +ENV SRC_FILE=pluggy-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/pluggy/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-pathspec . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /pluggy-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-prompt_toolkit/Containerfile b/packages/py-prompt_toolkit/Containerfile index e822683..1542b5a 100644 --- a/packages/py-prompt_toolkit/Containerfile +++ b/packages/py-prompt_toolkit/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=3.0.43 ENV SRC_HASH=3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d ENV SRC_FILE=prompt_toolkit-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/p/prompt_toolkit/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR prompt_toolkit-${VERSION}/src +WORKDIR /prompt_toolkit-${VERSION}/src RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-pygments/Containerfile b/packages/py-pygments/Containerfile new file mode 100644 index 0000000..ebc9bba --- /dev/null +++ b/packages/py-pygments/Containerfile @@ -0,0 +1,42 @@ +FROM scratch AS base +ENV VERSION=2.18.0 +ENV SRC_HASH=786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 +ENV SRC_FILE=pygments-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/P/Pygments/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-trove-classifiers . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-pathspec . / +COPY --from=stagex/py-pluggy . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-hatchling . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /pygments-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-requests/Containerfile b/packages/py-requests/Containerfile new file mode 100644 index 0000000..603e425 --- /dev/null +++ b/packages/py-requests/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=2.32.3 +ENV SRC_HASH=55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 +ENV SRC_FILE=requests-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/r/requests/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /requests-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-ruamel.yaml/Containerfile b/packages/py-ruamel.yaml/Containerfile index d5e48ec..d97ac95 100644 --- a/packages/py-ruamel.yaml/Containerfile +++ b/packages/py-ruamel.yaml/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.17.28 ENV SRC_HASH=3bf6df1c481d2463a633be6ee86e8aece941bb3298a9a0cd6d0865f47b1ddce6 ENV SRC_FILE=ruamel.yaml-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/r/ruamel.yaml/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/libffi . / @@ -19,15 +19,15 @@ COPY --from=stagex/py-installer . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR ruamel.yaml-${VERSION} +WORKDIR /ruamel.yaml-${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-semantic-version/Containerfile b/packages/py-semantic-version/Containerfile index e78599b..510df3e 100644 --- a/packages/py-semantic-version/Containerfile +++ b/packages/py-semantic-version/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.10.0 ENV SRC_HASH=bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c ENV SRC_FILE=semantic_version-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/semantic_version/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -19,15 +19,15 @@ COPY --from=stagex/py-setuptools . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR semantic_version-${VERSION} +WORKDIR /semantic_version-${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-setuptools-rust/Containerfile b/packages/py-setuptools-rust/Containerfile index bedcc57..2223717 100644 --- a/packages/py-setuptools-rust/Containerfile +++ b/packages/py-setuptools-rust/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.6.0 ENV SRC_HASH=c86e734deac330597998bfbc08da45187e6b27837e23bd91eadb320732392262 ENV SRC_FILE=setuptools-rust-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/setuptools-rust/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -20,16 +20,16 @@ COPY --from=stagex/py-setuptools-scm . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR setuptools-rust-${VERSION} +WORKDIR /setuptools-rust-${VERSION} ENV SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-setuptools-scm/Containerfile b/packages/py-setuptools-scm/Containerfile index 8f1b0af..bed69f0 100644 --- a/packages/py-setuptools-scm/Containerfile +++ b/packages/py-setuptools-scm/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=8.0.4 ENV SRC_HASH=b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7 ENV SRC_FILE=setuptools-scm-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/setuptools-scm/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -19,16 +19,16 @@ COPY --from=stagex/py-setuptools . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR setuptools-scm-${VERSION}/src +WORKDIR /setuptools-scm-${VERSION}/src ENV SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION} RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-setuptools/Containerfile b/packages/py-setuptools/Containerfile index 5bb28b4..6afb07e 100644 --- a/packages/py-setuptools/Containerfile +++ b/packages/py-setuptools/Containerfile @@ -1,23 +1,23 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=68.2.2 ENV SRC_HASH=4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87 ENV SRC_FILE=setuptools-${VERSION}.tar.gz ENV SRC_SITE=https://pypi.io/packages/source/s/setuptools/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR setuptools-${VERSION} +WORKDIR /setuptools-${VERSION} RUN python setup.py build -FROM build as install +FROM build AS install RUN --network=none python setup.py install --root=/rootfs -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-six/Containerfile b/packages/py-six/Containerfile index c2bc145..58db8b3 100644 --- a/packages/py-six/Containerfile +++ b/packages/py-six/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.16.0 ENV SRC_HASH=1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 ENV SRC_FILE=six-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/six/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / @@ -15,7 +15,7 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR six-${VERSION} +WORKDIR /six-${VERSION} RUN --network=none <<-EOF set -eu sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')" @@ -24,5 +24,5 @@ RUN --network=none <<-EOF find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-snowballstemmer/Containerfile b/packages/py-snowballstemmer/Containerfile new file mode 100644 index 0000000..33cdb4c --- /dev/null +++ b/packages/py-snowballstemmer/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=2.2.0 +ENV SRC_HASH=09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 +ENV SRC_FILE=snowballstemmer-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/snowballstemmer/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /snowballstemmer-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinx/Containerfile b/packages/py-sphinx/Containerfile new file mode 100644 index 0000000..c9ea236 --- /dev/null +++ b/packages/py-sphinx/Containerfile @@ -0,0 +1,31 @@ +FROM scratch AS base +ENV VERSION=7.2.6 +ENV SRC_HASH=b41c04543148937b887097f396d7b2b54ae49d0597b68625f06ffdf702d4d917 + +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/sphinx-doc/sphinx/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinx-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinx_rtd_theme/Containerfile b/packages/py-sphinx_rtd_theme/Containerfile new file mode 100644 index 0000000..ba78929 --- /dev/null +++ b/packages/py-sphinx_rtd_theme/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=2.0.0 +ENV SRC_HASH=40446e6789dd34deb4e9814e379bae0aa74057b6fb43de4b343a48c84fc0f8db +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/readthedocs/sphinx_rtd_theme/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/python . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinx_rtd_theme-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinxcontrib-applehelp/Containerfile b/packages/py-sphinxcontrib-applehelp/Containerfile new file mode 100644 index 0000000..f101837 --- /dev/null +++ b/packages/py-sphinxcontrib-applehelp/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=1.0.4 +ENV SRC_HASH=828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e +ENV SRC_FILE=sphinxcontrib-applehelp-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/sphinxcontrib-applehelp/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinxcontrib-applehelp-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinxcontrib-devhelp/Containerfile b/packages/py-sphinxcontrib-devhelp/Containerfile new file mode 100644 index 0000000..eddd384 --- /dev/null +++ b/packages/py-sphinxcontrib-devhelp/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=1.0.5 +ENV SRC_HASH=e2b24fcee87da8fb6a3826ba072c8369cdbffee116bd38bcfaa0302b279dc844 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/sphinx-doc/sphinxcontrib-devhelp/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinxcontrib-devhelp-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinxcontrib-htmlhelp/Containerfile b/packages/py-sphinxcontrib-htmlhelp/Containerfile new file mode 100644 index 0000000..082776b --- /dev/null +++ b/packages/py-sphinxcontrib-htmlhelp/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=2.0.1 +ENV SRC_HASH=0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff +ENV SRC_FILE=sphinxcontrib-htmlhelp-${VERSION}.tar.gz +ENV SRC_SITE=https://files.pythonhosted.org/packages/source/s/sphinxcontrib-htmlhelp/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinxcontrib-htmlhelp-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinxcontrib-jquery/Containerfile b/packages/py-sphinxcontrib-jquery/Containerfile new file mode 100644 index 0000000..8aedbf1 --- /dev/null +++ b/packages/py-sphinxcontrib-jquery/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=4.1 +ENV SRC_HASH=f6a7578b00a8458e5edd38431d3ea4037b928a21ba1f82469ec2015127955c34 +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/sphinx-contrib/jquery/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /jquery-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinxcontrib-qthelp/Containerfile b/packages/py-sphinxcontrib-qthelp/Containerfile new file mode 100644 index 0000000..69561ee --- /dev/null +++ b/packages/py-sphinxcontrib-qthelp/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=1.0.6 +ENV SRC_HASH=a7bd74c400fc84fadbd0bd74c6c48b1a12465dc950af335b59ee5e62e082fce3 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/sphinx-doc/sphinxcontrib-qthelp/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinxcontrib-qthelp-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-sphinxcontrib-serializinghtml/Containerfile b/packages/py-sphinxcontrib-serializinghtml/Containerfile new file mode 100644 index 0000000..aa7a6ea --- /dev/null +++ b/packages/py-sphinxcontrib-serializinghtml/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ENV VERSION=1.1.9 +ENV SRC_HASH=8ff6f82f0b7876eaaf258cb90d2ddfdc26ae069552bf6db6ae5eb534ae689c19 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/sphinx-doc/sphinxcontrib-serializinghtml/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/libffi . / +COPY --from=stagex/python . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-gpep517 . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/zlib . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /sphinxcontrib-serializinghtml-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-toml/Containerfile b/packages/py-toml/Containerfile index f3d5403..84f5a57 100644 --- a/packages/py-toml/Containerfile +++ b/packages/py-toml/Containerfile @@ -1,25 +1,25 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.10.2 ENV SRC_HASH=b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f ENV SRC_FILE=toml-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/t/toml/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/py-setuptools . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR toml-${VERSION} +WORKDIR /toml-${VERSION} RUN --network=none <<-EOF set -eu python setup.py install --root=/rootfs find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-trove-classifiers/Containerfile b/packages/py-trove-classifiers/Containerfile new file mode 100644 index 0000000..ae7e6d3 --- /dev/null +++ b/packages/py-trove-classifiers/Containerfile @@ -0,0 +1,38 @@ +FROM scratch AS base +ENV VERSION=2024.5.17 +ENV SRC_HASH=5d0a143e5977e5c32a34265f803fcdbf064c57940ce95492fe6c559622f7497c +ENV SRC_FILE=py3-trove-classifiers-${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/pypa/trove-classifiers/archive/${VERSION}/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/zlib . / +COPY --from=stagex/openssl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/libffi . / +COPY --from=stagex/py-installer . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/py-flit . / +COPY --from=stagex/py-wheel . / +COPY --from=stagex/py-gpep517 . / +RUN tar -xzf ${SRC_FILE} +WORKDIR /trove-classifiers-${VERSION} +RUN gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 + +FROM build AS install +RUN --network=none <<-EOF + set -eu + python -m installer -d /rootfs .dist/*.whl + find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/py-typing-extensions/Containerfile b/packages/py-typing-extensions/Containerfile index 9b4e699..d28022d 100644 --- a/packages/py-typing-extensions/Containerfile +++ b/packages/py-typing-extensions/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=4.10.0 ENV SRC_HASH=b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb ENV SRC_FILE=typing_extensions-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/t/typing_extensions/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -19,15 +19,15 @@ COPY --from=stagex/py-setuptools . / COPY --from=stagex/py-gpep517 . / COPY --from=stagex/py-installer . / RUN tar -xzf ${SRC_FILE} -WORKDIR typing_extensions-${VERSION} +WORKDIR /typing_extensions-${VERSION} RUN --network=none gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-urllib3/Containerfile b/packages/py-urllib3/Containerfile index 1a9ce68..d52f98d 100644 --- a/packages/py-urllib3/Containerfile +++ b/packages/py-urllib3/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.26.18 ENV SRC_HASH=f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 ENV SRC_FILE=urllib3-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/u/urllib3/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -20,15 +20,15 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-wheel . / COPY --from=stagex/py-gpep517 . / RUN tar -xzf ${SRC_FILE} -WORKDIR urllib3-${VERSION} +WORKDIR /urllib3-${VERSION} RUN --network=none gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-wcwidth/Containerfile b/packages/py-wcwidth/Containerfile index 485e9fa..470ecb3 100644 --- a/packages/py-wcwidth/Containerfile +++ b/packages/py-wcwidth/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.2.13 ENV SRC_HASH=72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5 ENV SRC_FILE=wcwidth-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/w/wcwidth/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/zlib . / @@ -20,15 +20,15 @@ COPY --from=stagex/py-flit . / COPY --from=stagex/py-wheel . / COPY --from=stagex/py-gpep517 . / RUN tar -xzf ${SRC_FILE} -WORKDIR wcwidth-${VERSION} +WORKDIR /wcwidth-${VERSION} RUN --network=none gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2 -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eu python -m installer -d /rootfs .dist/*.whl find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/py-wheel/Containerfile b/packages/py-wheel/Containerfile index 33d2535..c09bfbe 100644 --- a/packages/py-wheel/Containerfile +++ b/packages/py-wheel/Containerfile @@ -1,25 +1,25 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.43.0 ENV SRC_HASH=465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 ENV SRC_FILE=wheel-${VERSION}.tar.gz ENV SRC_SITE=https://files.pythonhosted.org/packages/source/w/wheel/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as install +FROM fetch AS install COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/python . / COPY --from=stagex/py-setuptools . / COPY --from=stagex/zlib . / RUN tar -xzf ${SRC_FILE} -WORKDIR wheel-${VERSION} +WORKDIR /wheel-${VERSION} RUN --network=none <<-EOF set -eu python setup.py install --root=/rootfs find /rootfs | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/python/Containerfile b/packages/python/Containerfile index cc07f5d..4098099 100644 --- a/packages/python/Containerfile +++ b/packages/python/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=3.11.8 ENV SRC_HASH=9e06008c8901924395bc1da303eac567a729ae012baa182ab39269f650383bb3 ENV SRC_FILE=Python-${VERSION}.tar.xz ENV SRC_SITE=https://www.python.org/ftp/python/${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -16,10 +16,11 @@ COPY --from=stagex/musl . / COPY --from=stagex/openssl . / COPY --from=stagex/zlib . / COPY --from=stagex/bzip2 . / +COPY --from=stagex/ncurses . / COPY --from=stagex/sqlite3 . / COPY --from=stagex/libffi . / RUN tar -xf ${SRC_FILE} -WORKDIR Python-${VERSION} +WORKDIR //Python-${VERSION} ENV SOURCE_DATE_EPOCH=1 ENV PYTHONHASHSEED=0 ENV PYTHONDONTWRITEBYTECODE=1 @@ -33,14 +34,14 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux make DESTDIR=/rootfs install ln -s /usr/bin/python3 /rootfs/usr/bin/python EOF -FROM scratch as test +FROM scratch AS test COPY --from=install /rootfs/. / COPY --from=stagex/musl . / COPY <<-EOF test.py @@ -48,5 +49,5 @@ COPY <<-EOF test.py EOF RUN python test.py | grep "Success" -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/qemu/Containerfile b/packages/qemu/Containerfile new file mode 100644 index 0000000..f386e1f --- /dev/null +++ b/packages/qemu/Containerfile @@ -0,0 +1,179 @@ +FROM scratch AS base +ENV VERSION=9.0.2 +ENV SRC_HASH=a8c3f596aece96da3b00cafb74baafa0d14515eafb8ed1ee3f7f5c2d0ebf02b6 +ENV SRC_FILE=qemu-${VERSION}.tar.xz +ENV SRC_SITE=https://download.qemu.org/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/bash . / +COPY --from=stagex/gzip . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/python . / +COPY --from=stagex/py-docutils . / +COPY --from=stagex/py-pygments . / +COPY --from=stagex/py-babel . / +COPY --from=stagex/py-packaging . / +COPY --from=stagex/py-sphinx . / +COPY --from=stagex/py-sphinx_rtd_theme . / +COPY --from=stagex/py-sphinxcontrib-applehelp . / +COPY --from=stagex/py-sphinxcontrib-devhelp . / +COPY --from=stagex/py-sphinxcontrib-htmlhelp . / +COPY --from=stagex/py-sphinxcontrib-qthelp . / +COPY --from=stagex/py-sphinxcontrib-serializinghtml . / +COPY --from=stagex/py-sphinxcontrib-jquery . / +COPY --from=stagex/py-jinja2 . / +COPY --from=stagex/py-markupsafe . / +COPY --from=stagex/py-snowballstemmer . / +COPY --from=stagex/py-imagesize . / +COPY --from=stagex/py-requests . / +COPY --from=stagex/py-urllib3 . / +COPY --from=stagex/py-idna . / +COPY --from=stagex/py-certifi . / +COPY --from=stagex/py-alabaster . / +COPY --from=stagex/make . / +COPY --from=stagex/bison . / +COPY --from=stagex/meson . / +COPY --from=stagex/ninja . / +COPY --from=stagex/libtool . / +COPY --from=stagex/openssl . / +COPY --from=stagex/git . / +COPY --from=stagex/zlib . / +COPY --from=stagex/libffi . / +COPY --from=stagex/libaio . / +COPY --from=stagex/libzstd . / +COPY --from=stagex/libseccomp . / +COPY --from=stagex/libcap-ng . / +COPY --from=stagex/alsa-lib . / +COPY --from=stagex/ncurses . / +COPY --from=stagex/curl . / +COPY --from=stagex/flex . / +COPY --from=stagex/openssh . / +COPY --from=stagex/perl . / +COPY --from=stagex/pcre2 . / +COPY --from=stagex/glib . / +COPY --from=stagex/lzo . / +COPY --from=stagex/dtc . / +COPY --from=stagex/autoconf . / +COPY --from=stagex/automake . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/gettext . / +COPY --from=stagex/numactl . / +COPY --from=stagex/m4 . / +COPY --from=stagex/argp-standalone . / +COPY --from=stagex/musl . / +COPY --from=stagex/musl-fts . / +COPY --from=stagex/musl-obstack . / +COPY --from=stagex/linux-headers . / +RUN tar -xf ${SRC_FILE} +WORKDIR /qemu-${VERSION} +ADD *.patch . +ENV SOURCE_DATE_EPOCH=1 +ENV LDFLAGS=" \ + -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro \ + -Wl,-z,now -Wl,-z,pack-relative-relocs" +ENV CFLAGS=" \ + -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ + -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \ + -fstack-clash-protection -fcf-protection \ + -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" +ENV CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" +ENV LTOFLAGS="-flto=auto" +RUN --network=none <<-EOF + set -eux + ./configure \ + --build="x86_64-linux-musl" \ + --host="x86_64-linux-musl" \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libexecdir=/usr/lib/qemu \ + --docdir=/usr/share/doc/qemu \ + --python=/usr/bin/python \ + --cc=gcc \ + --audio-drv-list=oss,alsa \ + --enable-curses \ + --enable-modules \ + --enable-tpm \ + --disable-docs \ + --disable-sdl \ + --disable-gtk \ + --disable-bpf \ + --disable-capstone \ + --disable-glusterfs \ + --disable-debug-info \ + --disable-opengl \ + --disable-bsd-user \ + --disable-werror \ + --disable-libnfs \ + --disable-libssh \ + --disable-snappy \ + --disable-spice \ + --disable-usb-redir \ + --disable-vde \ + --disable-vhost-net \ + --disable-virglrenderer \ + --disable-virtfs \ + --disable-vnc \ + --disable-vnc-jpeg \ + --disable-xen + make ARFLAGS="rc" +EOF + +FROM build AS install +RUN --network=none <<-EOF + make DESTDIR=/rootfs install + rm -rf /rootfs/var/run + strip /rootfs/usr/bin/qemu-* + # These are not currently deterministic so we can't release them yet + rm -rf /rootfs/usr/bin/qemu-aarch64 + rm -rf /rootfs/usr/bin/qemu-aarch64_be + rm -rf /rootfs/usr/bin/qemu-arm + rm -rf /rootfs/usr/bin/qemu-armeb + rm -rf /rootfs/usr/bin/qemu-hexagon + rm -rf /rootfs/usr/bin/qemu-hppa + rm -rf /rootfs/usr/bin/qemu-loongarch64 + rm -rf /rootfs/usr/bin/qemu-microblaze + rm -rf /rootfs/usr/bin/qemu-microblazeel + rm -rf /rootfs/usr/bin/qemu-mips + rm -rf /rootfs/usr/bin/qemu-mips64 + rm -rf /rootfs/usr/bin/qemu-mips64el + rm -rf /rootfs/usr/bin/qemu-mipsel + rm -rf /rootfs/usr/bin/qemu-mipsn32 + rm -rf /rootfs/usr/bin/qemu-mipsn32el + rm -rf /rootfs/usr/bin/qemu-or1k + rm -rf /rootfs/usr/bin/qemu-ppc + rm -rf /rootfs/usr/bin/qemu-ppc64 + rm -rf /rootfs/usr/bin/qemu-ppc64le + rm -rf /rootfs/usr/bin/qemu-riscv32 + rm -rf /rootfs/usr/bin/qemu-riscv64 + rm -rf /rootfs/usr/bin/qemu-sparc + rm -rf /rootfs/usr/bin/qemu-sparc32plus + rm -rf /rootfs/usr/bin/qemu-sparc64 + rm -rf /rootfs/usr/bin/qemu-system-aarch64 + rm -rf /rootfs/usr/bin/qemu-system-arm + rm -rf /rootfs/usr/bin/qemu-system-avr + rm -rf /rootfs/usr/bin/qemu-system-hppa + rm -rf /rootfs/usr/bin/qemu-system-loongarch64 + rm -rf /rootfs/usr/bin/qemu-system-microblaze + rm -rf /rootfs/usr/bin/qemu-system-microblazeel + rm -rf /rootfs/usr/bin/qemu-system-mips + rm -rf /rootfs/usr/bin/qemu-system-mips64 + rm -rf /rootfs/usr/bin/qemu-system-mips64el + rm -rf /rootfs/usr/bin/qemu-system-mipsel + rm -rf /rootfs/usr/bin/qemu-system-or1k + rm -rf /rootfs/usr/bin/qemu-system-ppc + rm -rf /rootfs/usr/bin/qemu-system-ppc64 + rm -rf /rootfs/usr/bin/qemu-system-riscv32 + rm -rf /rootfs/usr/bin/qemu-system-riscv64 + rm -rf /rootfs/usr/bin/qemu-system-rx + rm -rf /rootfs/usr/bin/qemu-system-sparc + rm -rf /rootfs/usr/bin/qemu-system-sparc64 +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/re2c/Containerfile b/packages/re2c/Containerfile new file mode 100644 index 0000000..1126f3d --- /dev/null +++ b/packages/re2c/Containerfile @@ -0,0 +1,37 @@ +FROM scratch AS base +ENV VERSION=3.1 +ENV SRC_HASH=087c44de0400fb15caafde09fd72edc7381e688a35ef505ee65e0e3d2fac688b +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/skvadrik/re2c/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/autoconf . / +COPY --from=stagex/automake . / +COPY --from=stagex/binutils . / +COPY --from=stagex/busybox . / +COPY --from=stagex/libtool . / +COPY --from=stagex/perl . / +COPY --from=stagex/python . / +COPY --from=stagex/gcc . / +COPY --from=stagex/make . / +COPY --from=stagex/m4 . / +COPY --from=stagex/musl . / +RUN tar -xvf $SRC_FILE +WORKDIR /re2c-${VERSION} +RUN --network=none <<-EOF + set -eux + autoreconf -i -W all + ./configure \ + --prefix=/usr + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/readline/Containerfile b/packages/readline/Containerfile index cf9e93e..26af61b 100644 --- a/packages/readline/Containerfile +++ b/packages/readline/Containerfile @@ -39,7 +39,7 @@ COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN --network=none tar -xf ${SRC_FILE} -WORKDIR readline-${VERSION} +WORKDIR /readline-${VERSION} ADD *.patch . RUN --network=none <<-EOF set -eu diff --git a/packages/redis/Containerfile b/packages/redis/Containerfile index 38e947b..78738d2 100644 --- a/packages/redis/Containerfile +++ b/packages/redis/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=7.2.4 ENV SRC_FILE=redis-${VERSION}.tar.gz ENV SRC_SITE=https://download.redis.io/releases/${SRC_FILE} ENV SRC_HASH=8d104c26a154b29fd67d6568b4f375212212ad41e0c2caa3d66480e78dbd3b59 -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / @@ -17,12 +17,12 @@ COPY --from=stagex/pkgconf . / COPY --from=stagex/make . / COPY --from=stagex/openssl . / RUN tar -xf ${SRC_FILE} -WORKDIR redis-${VERSION} +WORKDIR /redis-${VERSION} ENV SOURCE_DATE_EPOCH=1 RUN make BUILD_TLS=yes all -FROM build as install +FROM build AS install RUN --network=none make install PREFIX="/rootfs" INSTALL_BIN="/rootfs/usr/bin" -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/rhash/Containerfile b/packages/rhash/Containerfile new file mode 100644 index 0000000..fd84e75 --- /dev/null +++ b/packages/rhash/Containerfile @@ -0,0 +1,36 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.4.4 +ENV SRC_HASH=8e7d1a8ccac0143c8fe9b68ebac67d485df119ea17a613f4038cda52f84ef52a +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/rhash/RHash/archive/refs/tags/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/bash . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/openssl . / +RUN tar -xf ${SRC_FILE} +WORKDIR /RHash-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-openssl \ + --disable-openssl-runtime + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/runc/Containerfile b/packages/runc/Containerfile new file mode 100644 index 0000000..2a9a267 --- /dev/null +++ b/packages/runc/Containerfile @@ -0,0 +1,40 @@ +FROM scratch AS base +ENV VERSION=1.1.13 +ENV COMMIT=58aa9203c123022138b22cf96540c284876a7910 +ENV SRC_FILE=runc-v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/opencontainers/runc/archive/v${VERSION}/${SRC_FILE} +ENV SRC_HASH=789d5749a08ef1fbe5d1999b67883206a68a4e58e6ca0151c411d678f3480b25 + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/bash . / +COPY --from=stagex/busybox . / +COPY --from=stagex/go . / +COPY --from=stagex/go-md2man . / +COPY --from=stagex/make . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/libseccomp . / +RUN tar -xf ${SRC_FILE} +WORKDIR /runc-${VERSION} +RUN <<-EOF + set -eux + make EXTRA_LDFLAGS="-w -s -buildid=" COMMIT=${COMMIT} -j "$(nproc)" + make man +EOF + +FROM build AS install +RUN <<-EOF + set -eux + install -Dsm755 runc /rootfs/usr/bin/runc + install -d /rootfs/usr/share/man/man8 + install -Dm644 man/man8/* /rootfs/usr/share/man/man8/ +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/rust/Containerfile b/packages/rust/Containerfile index b6ff763..3089acc 100644 --- a/packages/rust/Containerfile +++ b/packages/rust/Containerfile @@ -1,4 +1,4 @@ -FROM scratch as base +FROM scratch AS base ARG VERSION=1.76.0 ENV SRC_SITE=https://static.rust-lang.org/dist ENV MRUSTC_VERSION=16d744fd62e74a2d4356df864b5850bf782918da @@ -29,7 +29,7 @@ ENV SRC_HASH_1_74_0=882b584bc321c5dcfe77cdaa69f277906b936255ef7808fcd5c7492925cf ENV SRC_HASH_1_75_0=5b739f45bc9d341e2d1c570d65d2375591e22c2d23ef5b8a37711a0386abc088 ENV SRC_HASH_1_76_0=9e5cff033a7f0d2266818982ad90e4d3e4ef8f8ee1715776c6e25073a136c021 -FROM base as fetch +FROM base AS fetch COPY --from=stagex/busybox . / ADD --checksum=sha256:${MRUSTC_SRC_HASH} ${MRUSTC_SRC_SITE} ${MRUSTC_SRC_FILE} ADD --checksum=sha256:${SRC_HASH_1_54_0} ${SRC_SITE}/rustc-1.54.0-src.tar.gz . @@ -56,7 +56,7 @@ ADD --checksum=sha256:${SRC_HASH_1_74_0} ${SRC_SITE}/rustc-1.74.0-src.tar.gz . ADD --checksum=sha256:${SRC_HASH_1_75_0} ${SRC_SITE}/rustc-1.75.0-src.tar.gz . ADD --checksum=sha256:${SRC_HASH_1_76_0} ${SRC_SITE}/rustc-1.76.0-src.tar.gz . -FROM fetch as build-base +FROM fetch AS build-base COPY --from=stagex/binutils . / COPY --from=stagex/bash . / COPY --from=stagex/make . / @@ -71,7 +71,7 @@ COPY --from=stagex/gcc . / COPY --from=stagex/libunwind . / COPY --from=stagex/musl . / -FROM build-base as build-mrustc +FROM build-base AS build-mrustc COPY --from=stagex/llvm13 . / ADD gcc_version.patch . RUN tar -xzf ${MRUSTC_SRC_FILE} @@ -102,7 +102,7 @@ RUN <<-EOF cp -R run_rustc/output/prefix ../rust-1.54.0/usr EOF -FROM build-base as build-script +FROM build-base AS build-script COPY <<-'EOF' build.sh set -eux VERSION=${1} @@ -158,7 +158,7 @@ COPY <<-'EOF' build.sh python3 x.py install EOF -FROM build-script as build-llvm13 +FROM build-script AS build-llvm13 COPY --from=stagex/llvm13 . / COPY --from=build-mrustc /rust-1.54.0 /rust-1.54.0 RUN sh build.sh 1.55.0 1.54.0 @@ -176,8 +176,8 @@ RUN sh build.sh 1.66.0 1.65.0 RUN sh build.sh 1.67.0 1.66.0 RUN sh build.sh 1.68.0 1.67.0 -FROM build-script as build -COPY --from=stagex/llvm . / +FROM build-script AS build +COPY --from=stagex/llvm16 . / COPY --from=build-llvm13 /rust-1.68.0 /rust-1.68.0 COPY --from=stagex/llvm13 /usr/lib/libLLVM-13.so /usr/lib/ RUN sh build.sh 1.69.0 1.68.0 @@ -194,7 +194,7 @@ RUN sh build.sh 1.75.0 1.74.0 ADD no-default-static.patch . RUN sh build.sh 1.76.0 1.75.0 cargo,clippy,rustdoc,rustfmt,rust-demangler no-default-static -FROM build as install +FROM build AS install RUN <<-EOF mv /rust-${VERSION} /rootfs cd /rootfs/usr/lib/rustlib @@ -207,5 +207,5 @@ RUN <<-EOF rm -f x86_64-unknown-linux-musl/lib/self-contained/libunwind.a EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/samurai/CVE-2021-30218.patch b/packages/samurai/CVE-2021-30218.patch new file mode 100644 index 0000000..de534d4 --- /dev/null +++ b/packages/samurai/CVE-2021-30218.patch @@ -0,0 +1,29 @@ +From e84b6d99c85043fa1ba54851ee500540ec206918 Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Fri, 2 Apr 2021 17:27:48 -0700 +Subject: [PATCH] util: Check for NULL string in writefile + +This check was there previously, but was removed in f549b757 with +the addition of a check during parse that every rule has rspfile +if and only if it has rspfile_content. However, this fails to +consider the possibility of those variables coming from the edge +or global environment. So, re-add the check. + +Fixes #67. +--- + util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util.c b/util.c +index ea5c3ce..2a59881 100644 +--- a/util.c ++++ b/util.c +@@ -258,7 +258,7 @@ writefile(const char *name, struct string *s) + return -1; + } + ret = 0; +- if (fwrite(s->s, 1, s->n, f) != s->n || fflush(f) != 0) { ++ if (s && (fwrite(s->s, 1, s->n, f) != s->n || fflush(f) != 0)) { + warn("write %s:", name); + ret = -1; + } \ No newline at end of file diff --git a/packages/samurai/CVE-2021-30219.patch b/packages/samurai/CVE-2021-30219.patch new file mode 100644 index 0000000..a1b7b8c --- /dev/null +++ b/packages/samurai/CVE-2021-30219.patch @@ -0,0 +1,26 @@ +From d2af3bc375e2a77139c3a28d6128c60cd8d08655 Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Sun, 4 Apr 2021 03:50:09 -0700 +Subject: [PATCH] parse: Check for non-empty command/rspfile/rspfile_content + +This matches ninja behavior and prevents the possibility of a rule +with an empty (NULL) command string. + +Fixes #68. +--- + parse.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/parse.c b/parse.c +index f79a5ee..b4b98a1 100644 +--- a/parse.c ++++ b/parse.c +@@ -42,6 +42,8 @@ parserule(struct scanner *s, struct environment *env) + var = scanname(s); + parselet(s, &val); + ruleaddvar(r, var, val); ++ if (!val) ++ continue; + if (strcmp(var, "command") == 0) + hascommand = true; + else if (strcmp(var, "rspfile") == 0) \ No newline at end of file diff --git a/packages/samurai/Containerfile b/packages/samurai/Containerfile new file mode 100644 index 0000000..7523b96 --- /dev/null +++ b/packages/samurai/Containerfile @@ -0,0 +1,33 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.2 +ENV SRC_HASH=3b8cf51548dfc49b7efe035e191ff5e1963ebc4fe8f6064a5eefc5343eaf78a5 +ENV SRC_FILE=samurai-${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/michaelforney/samurai/releases/download/${VERSION}/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/pkgconf . / +RUN tar -xf ${SRC_FILE} +WORKDIR /samurai-${VERSION} +COPY *.patch . +RUN --network=none <<-EOF + set -eux + patch -p1 CVE-2021-30218.patch + patch -p1 CVE-2021-30219.patch + make CFLAGS="-O2" CC=gcc -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/scdoc/Containerfile b/packages/scdoc/Containerfile new file mode 100644 index 0000000..c9fce09 --- /dev/null +++ b/packages/scdoc/Containerfile @@ -0,0 +1,30 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.11.3 +ENV SRC_HASH=4c5c6136540384e5455b250f768e7ca11b03fdba1a8efc2341ee0f1111e57612 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://git.sr.ht/~sircmpwn/scdoc/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +RUN tar -xf ${SRC_FILE} +WORKDIR /scdoc-${VERSION} +RUN --network=none <<-EOF + set -eux + make PREFIX="/usr" -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / + diff --git a/packages/sdtool/Containerfile b/packages/sdtool/Containerfile new file mode 100644 index 0000000..354d713 --- /dev/null +++ b/packages/sdtool/Containerfile @@ -0,0 +1,25 @@ +FROM scratch AS base +ENV VERSION=ad4155c1d2988a17f4d5b13feaa6e4c1beb2cf4b +ENV SRC_HASH=82d289e47a6a379bc17df7fc9e5c665ef59edc4dd8a32998f244a6a7f22c24f7 +ENV SRC_FILE=${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/BertoldVdb/sdtool/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/busybox . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/linux-headers . / +COPY --from=stagex/make . / +COPY --from=stagex/musl . / +RUN tar -xf ${SRC_FILE} +WORKDIR /sdtool-${VERSION} +RUN --network=none make all + +FROM build AS install +RUN --network=none install -D -m644 sdtool /rootfs/usr/bin/sdtool + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/sed/Containerfile b/packages/sed/Containerfile index 9d62cc2..fea6a4e 100644 --- a/packages/sed/Containerfile +++ b/packages/sed/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=4.9 ENV SRC_HASH=6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181 ENV SRC_FILE=sed-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/sed/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xf sed-${VERSION}.tar.xz -WORKDIR sed-${VERSION} +WORKDIR /sed-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -22,8 +22,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/skalibs/Containerfile b/packages/skalibs/Containerfile new file mode 100644 index 0000000..4ce39b2 --- /dev/null +++ b/packages/skalibs/Containerfile @@ -0,0 +1,34 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=2.14.1.1 +ENV SRC_HASH=b6b79b816f4ba0b6801676b0ed4179b59c8c7809eeffe26db672e404636befc3 +ENV SRC_FILE=skalibs-${VERSION}.tar.gz +ENV SRC_SITE=https://skarnet.org/software/skalibs/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +RUN tar -xf ${SRC_FILE} +WORKDIR /skalibs-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --enable-shared \ + --enable-static \ + --prefix=/usr \ + --libdir=/usr/lib + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/sops/Containerfile b/packages/sops/Containerfile index 52730ae..80f23a0 100644 --- a/packages/sops/Containerfile +++ b/packages/sops/Containerfile @@ -1,18 +1,18 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=3.8.1 ENV SRC_HASH=5ca70fb4f96797d09012c705a5bb935835896de7bcd063b98d498912b0e645a0 -ENV SRC_FILE=${SRC_SITE}/v${VERSION}.tar.gz +ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/getsops/sops/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR sops-${VERSION} +WORKDIR /sops-${VERSION} ENV PWD=/home/user/sops-${VERSION} ENV GOPATH=${PWD}/cache/go ENV GOCACHE=${PWD}/cache/ @@ -26,11 +26,11 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/sops ./cmd/sops -from build as install +FROM build AS install RUN --network=none <<-EOF mkdir -p /rootfs/usr/bin/ cp bin/sops /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/sqlite3/Containerfile b/packages/sqlite3/Containerfile index f8c9bbb..508300e 100644 --- a/packages/sqlite3/Containerfile +++ b/packages/sqlite3/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=3.45.1 ENV SRC_HASH=af857d9ba958d26486639e2e0ffcd8be9d9f0d725fed0b174e017aa916d82d48 ENV SRC_FILE=vesion-${VERSION}.tar.gz ENV SRC_SITE=https://github.com/sqlite/sqlite/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/gcc . / @@ -15,7 +15,7 @@ COPY --from=stagex/tcl . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR sqlite-vesion-${VERSION} +WORKDIR /sqlite-vesion-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -23,8 +23,8 @@ RUN --network=none <<-EOF make EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/stage0/Containerfile b/packages/stage0/Containerfile index 4a7544b..a957ba8 100644 --- a/packages/stage0/Containerfile +++ b/packages/stage0/Containerfile @@ -1,8 +1,8 @@ -FROM alpine@sha256:51b67269f354137895d43f3b3d810bfacd3945438e94dc5ac55fdac340352f48 as alpine -FROM debian@sha256:bac353db4cc04bc672b14029964e686cd7bad56fe34b51f432c1a1304b9928da as debian -FROM archlinux@sha256:1f83ba0580a15cd6ad1d02d62ad432ddc940f53f07d0e39c8982d6c9c74e53e0 as archlinux +FROM alpine@sha256:51b67269f354137895d43f3b3d810bfacd3945438e94dc5ac55fdac340352f48 AS alpine +FROM debian@sha256:bac353db4cc04bc672b14029964e686cd7bad56fe34b51f432c1a1304b9928da AS debian +FROM archlinux@sha256:1f83ba0580a15cd6ad1d02d62ad432ddc940f53f07d0e39c8982d6c9c74e53e0 AS archlinux -FROM scratch as base +FROM scratch AS base ENV VERSION=1.6.0 ENV SRC_FILE=stage0-posix-${VERSION}.tar.gz ENV SRC_SITE=https://github.com/oriansj/stage0-posix/releases/download/Release_${VERSION}/${SRC_FILE} @@ -19,53 +19,53 @@ COPY <<-EOF build.sh sha256sum x86/bin/* > hashes.txt EOF -FROM base as build1 +FROM base AS build1 COPY --from=debian . / RUN apt update && apt install -y wget gcc COPY --from=base . / RUN --network=none sh build.sh -FROM base as build2 +FROM base AS build2 COPY --from=archlinux . / RUN pacman -Sy --noconfirm wget gcc COPY --from=base . / RUN --network=none sh build.sh -FROM base as build3 +FROM base AS build3 COPY --from=alpine . / RUN apk add wget gcc COPY --from=base . / RUN --network=none sh build.sh -FROM scratch as compare +FROM scratch AS compare COPY --from=build1 /rootfs/ /a COPY --from=build2 /rootfs/ /b COPY --from=build3 /rootfs/ /c -FROM compare as test1 -WORKDIR /a +FROM compare AS test1 +WORKDIR //a RUN ["x86/bin/sha256sum","-c","/a/hashes.txt"] RUN ["x86/bin/sha256sum","-c","/b/hashes.txt"] RUN ["x86/bin/sha256sum","-c","/c/hashes.txt"] -FROM compare as test2 -WORKDIR /b +FROM compare AS test2 +WORKDIR //b RUN ["x86/bin/sha256sum","-c","/a/hashes.txt"] RUN ["x86/bin/sha256sum","-c","/b/hashes.txt"] RUN ["x86/bin/sha256sum","-c","/c/hashes.txt"] -FROM compare as test3 -WORKDIR /c +FROM compare AS test3 +WORKDIR //c RUN ["x86/bin/sha256sum","-c","/a/hashes.txt"] RUN ["x86/bin/sha256sum","-c","/b/hashes.txt"] RUN ["x86/bin/sha256sum","-c","/c/hashes.txt"] -FROM scratch as install +FROM scratch AS install COPY --from=test1 /a/hashes.txt /a-hashes.txt COPY --from=test2 /b/hashes.txt /b-hashes.txt COPY --from=test3 /c/hashes.txt /c-hashes.txt COPY --from=build1 /rootfs / -FROM scratch as package +FROM scratch AS package COPY --from=install / / CMD ["x86/bin/kaem","--version"] diff --git a/packages/stage1/Containerfile b/packages/stage1/Containerfile index 1b3b771..7290c56 100644 --- a/packages/stage1/Containerfile +++ b/packages/stage1/Containerfile @@ -1,11 +1,11 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=fc6eeb6bd75ea0d0025a79ea9fe45614bd60ba14 ENV SRC_SITE=https://codeload.github.com/lrvick/live-bootstrap/legacy.tar.gz ENV SRC_HASH=0c268b19cf9f4eefdaf45dab64ac393ccf8ee43de58f0721624cab358044bf78 ARG CORES=1 -FROM base as fetch -WORKDIR distfiles +FROM base AS fetch +WORKDIR /distfiles ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/${VERSION} live-bootstrap.tgz # Generate with: cat live-bootstrap/steps/*/sources | awk -F" " '{ printf("ADD --checksum=sha256:%s %s ./%s\n",$2,$1,$3) }' ADD --checksum=sha256:4681bcbb9c9298c506f6405a7deb62c54fc3b339d3239a8f36a5df83daaec94f https://mirrors.kernel.org/gnu/autoconf/autoconf-2.52.tar.bz2 ./ @@ -257,7 +257,7 @@ ADD --checksum=sha256:dd172acb53867a68012f94c17389401b2f274a1aa5ae8f84cbfb8b7e38 ADD --checksum=sha256:b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30 https://zlib.net/fossils/zlib-1.2.13.tar.gz ./ # HACK: stage0 tar is currently incompatible with symlinks and github tgz files -#FROM base as extract +#FROM base AS extract #COPY --from=stagex/stage0 . / #COPY --from=fetch distfiles/live-bootstrap.tgz . #SHELL ["/x86/bin/kaem","--verbose","--strict","--file"] @@ -269,13 +269,13 @@ ADD --checksum=sha256:b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f8 # echo "" > lrvick-live-bootstrap-fc6eeb6/steps/lwext4-1.0.0-lb1/files/fiwix-file-list.txt #EOF #RUN --network=none ./extract.kaem -FROM debian@sha256:bac353db4cc04bc672b14029964e686cd7bad56fe34b51f432c1a1304b9928da as extract +FROM debian@sha256:bac353db4cc04bc672b14029964e686cd7bad56fe34b51f432c1a1304b9928da AS extract COPY --from=fetch distfiles/live-bootstrap.tgz . RUN --network=none tar -xvf live-bootstrap.tgz # HACK: fixed in live-bootstrap upstream and can be dropped on next source bump RUN echo "" > lrvick-live-bootstrap-fc6eeb6/steps/lwext4-1.0.0-lb1/files/fiwix-file-list.txt -FROM base as build +FROM base AS build USER 0:0 COPY --from=stagex/stage0 . / COPY --from=fetch distfiles external/distfiles @@ -301,7 +301,7 @@ ENV ARCH=x86 SHELL ["/x86/bin/kaem","--verbose","--strict","--file"] RUN --network=none ./after.kaem -FROM build as install +FROM build AS install USER 0:0 COPY <<-EOF install.kaem set -ex @@ -318,7 +318,7 @@ EOF SHELL ["/x86/bin/kaem","--verbose","--strict","--file"] RUN --network=none ./install.kaem -FROM scratch as package +FROM scratch AS package COPY --from=install /rootfs / USER 1000:1000 ENTRYPOINT ["/bin/bash"] diff --git a/packages/stage2/Containerfile b/packages/stage2/Containerfile index c25fb47..8c67cf6 100644 --- a/packages/stage2/Containerfile +++ b/packages/stage2/Containerfile @@ -1,36 +1,36 @@ -FROM scratch as base -ENV GCC_VERSION 13.1.0 -ENV GCC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 -ENV GCC_FILE gcc-$GCC_VERSION.tar.xz -ENV GCC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_FILE} -ENV GMP_VERSION 6.2.1 -ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c -ENV GMP_FILE gmp-${GMP_VERSION}.tar.bz2 -ENV GMP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${GMP_FILE} -ENV MPFR_VERSION 4.1.0 -ENV MPFR_HASH feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926 -ENV MPFR_FILE mpfr-${MPFR_VERSION}.tar.bz2 -ENV MPFR_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPFR_FILE} -ENV MPC_VERSION 1.2.1 -ENV MPC_HASH 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 -ENV MPC_FILE mpc-${MPC_VERSION}.tar.gz -ENV MPC_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPC_FILE} -ENV ISL_VERSION 0.24 -ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0 -ENV ISL_FILE isl-${ISL_VERSION}.tar.bz2 -ENV ISL_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${ISL_FILE} -ENV MUSL_VERSION 1.2.4 -ENV MUSL_FILE musl-${MUSL_VERSION}.tar.gz -ENV MUSL_SITE http://musl.libc.org/releases/${MUSL_FILE} -ENV MUSL_HASH 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039 -ENV LINUX_VERSION 6.6 -ENV LINUX_HASH d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0 -ENV LINUX_FILE linux-${LINUX_VERSION}.tar.xz -ENV LINUX_SITE https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${LINUX_FILE} -ENV BINUTILS_VERSION 2.35 -ENV BINUTILS_HASH 1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85 -ENV BINUTILS_FILE binutils-${BINUTILS_VERSION}.tar.xz -ENV BINUTILS_SITE https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE} +FROM scratch AS base +ENV GCC_VERSION=13.1.0 +ENV GCC_HASH=61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 +ENV GCC_FILE=gcc-$GCC_VERSION.tar.xz +ENV GCC_SITE=https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_FILE} +ENV GMP_VERSION=6.2.1 +ENV GMP_HASH=eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c +ENV GMP_FILE=gmp-${GMP_VERSION}.tar.bz2 +ENV GMP_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${GMP_FILE} +ENV MPFR_VERSION=4.1.0 +ENV MPFR_HASH=feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926 +ENV MPFR_FILE=mpfr-${MPFR_VERSION}.tar.bz2 +ENV MPFR_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${MPFR_FILE} +ENV MPC_VERSION=1.2.1 +ENV MPC_HASH=17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 +ENV MPC_FILE=mpc-${MPC_VERSION}.tar.gz +ENV MPC_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${MPC_FILE} +ENV ISL_VERSION=0.24 +ENV ISL_HASH=fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0 +ENV ISL_FILE=isl-${ISL_VERSION}.tar.bz2 +ENV ISL_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${ISL_FILE} +ENV MUSL_VERSION=1.2.4 +ENV MUSL_FILE=musl-${MUSL_VERSION}.tar.gz +ENV MUSL_SITE=http://musl.libc.org/releases/${MUSL_FILE} +ENV MUSL_HASH=7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039 +ENV LINUX_VERSION=6.6 +ENV LINUX_HASH=d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0 +ENV LINUX_FILE=linux-${LINUX_VERSION}.tar.xz +ENV LINUX_SITE=https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${LINUX_FILE} +ENV BINUTILS_VERSION=2.35 +ENV BINUTILS_HASH=1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85 +ENV BINUTILS_FILE=binutils-${BINUTILS_VERSION}.tar.xz +ENV BINUTILS_SITE=https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE} ENV TARGET_ARCH=x86_64 ENV HOST_ARCH=i386 ENV BUILD=${HOST_ARCH}-unknown-linux-musl @@ -43,14 +43,14 @@ ENV TZ=UTC ENV LANG=C.UTF-8 ENV SOURCE_DATE_EPOCH=1 ENV KCONFIG_NOTIMESTAMP=1 -ENV SYSROOT_DIR ${HOME}/build-sysroot -ENV GCC_DIR ${HOME}/build-gcc -ENV LINUX_DIR ${HOME}/build-linux -ENV BINUTILS_DIR ${HOME}/build-binutils +ENV SYSROOT_DIR=${HOME}/build-sysroot +ENV GCC_DIR=${HOME}/build-gcc +ENV LINUX_DIR=${HOME}/build-linux +ENV BINUTILS_DIR=${HOME}/build-binutils ENV MUSL_DIR=${HOME}/build-musl -FROM base as fetch -WORKDIR ${HOME} +FROM base AS fetch +WORKDIR /${HOME} ADD --checksum=sha256:${LINUX_HASH} ${LINUX_SITE} . ADD --checksum=sha256:${MUSL_HASH} ${MUSL_SITE} . ADD --checksum=sha256:${BINUTILS_HASH} ${BINUTILS_SITE} . @@ -60,7 +60,7 @@ ADD --checksum=sha256:${MPFR_HASH} ${MPFR_SITE} . ADD --checksum=sha256:${MPC_HASH} ${MPC_SITE} . ADD --checksum=sha256:${ISL_HASH} ${ISL_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/stage1 . / RUN --network=none <<-EOF set -eux @@ -74,7 +74,7 @@ RUN --network=none <<-EOF EOF # Phase 1: Build cross binutils in build-binutils -WORKDIR ${BINUTILS_DIR} +WORKDIR /${BINUTILS_DIR} RUN --network=none <<-EOF set -eux ../binutils-${BINUTILS_VERSION}/configure \ @@ -96,7 +96,7 @@ RUN --network=none <<-EOF EOF # Phase 2: Prepare build sysroot -WORKDIR ${SYSROOT_DIR} +WORKDIR /${SYSROOT_DIR} RUN <<-EOF set -eux mkdir -p include @@ -106,7 +106,7 @@ RUN <<-EOF EOF # Phase 3: Build gcc (without libgcc) in build-gcc -WORKDIR ${GCC_DIR} +WORKDIR /${GCC_DIR} RUN --network=none <<-EOF set -eux ../gcc-${GCC_VERSION}/configure \ @@ -143,7 +143,7 @@ RUN --network=none <<-EOF EOF # Phase 4: Install musl libc headers to build-sysroot for use by libgcc -WORKDIR ${MUSL_DIR} +WORKDIR /${MUSL_DIR} RUN --network=none <<-EOF set -eux ../musl-${MUSL_VERSION}/configure \ @@ -155,11 +155,11 @@ RUN --network=none <<-EOF EOF # Phase 5: Compile libgcc -WORKDIR ${GCC_DIR} +WORKDIR /${GCC_DIR} RUN --network=none make MAKE="make enable_shared=no" all-target-libgcc # Phase 5: Compile musl libc and install to sysroot -WORKDIR ${MUSL_DIR} +WORKDIR /${MUSL_DIR} RUN --network=none <<-EOF set -eux make \ @@ -169,11 +169,11 @@ RUN --network=none <<-EOF EOF # Phase 6: Compile remaining gcc targets -WORKDIR ${GCC_DIR} +WORKDIR /${GCC_DIR} RUN make all # Phase 7: Generate linux headers -WORKDIR ${HOME}/linux-${LINUX_VERSION} +WORKDIR /${HOME}/linux-${LINUX_VERSION} RUN --network=none <<-EOF set -eux make ARCH=${TARGET_ARCH} headers @@ -183,8 +183,8 @@ RUN --network=none <<-EOF cp -rv usr/include ${LINUX_DIR} EOF -FROM build as install -WORKDIR ${HOME} +FROM build AS install +WORKDIR /${HOME} COPY --from=stagex/stage1 . /rootfs/ RUN <<-EOF set -eux @@ -198,7 +198,7 @@ RUN <<-EOF ln -s /${TARGET}/lib/ld-musl-${TARGET_ARCH}.so.1 /rootfs/lib/ld-musl-${TARGET_ARCH}.so.1 EOF -FROM base as package +FROM base AS package COPY --from=install /rootfs/ / USER 1000:1000 ENTRYPOINT ["/bin/bash"] diff --git a/packages/stage3/Containerfile b/packages/stage3/Containerfile index 1c6dc68..ba8c0b3 100644 --- a/packages/stage3/Containerfile +++ b/packages/stage3/Containerfile @@ -1,48 +1,48 @@ -FROM scratch as base -ENV GCC_VERSION 13.1.0 -ENV GCC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 -ENV GCC_FILE gcc-$GCC_VERSION.tar.xz -ENV GCC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_FILE} -ENV GMP_VERSION 6.2.1 -ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c -ENV GMP_FILE gmp-${GMP_VERSION}.tar.bz2 -ENV GMP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${GMP_FILE} -ENV MPFR_VERSION 4.1.0 -ENV MPFR_HASH feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926 -ENV MPFR_FILE mpfr-${MPFR_VERSION}.tar.bz2 -ENV MPFR_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPFR_FILE} -ENV MPC_VERSION 1.2.1 -ENV MPC_HASH 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 -ENV MPC_FILE mpc-${MPC_VERSION}.tar.gz -ENV MPC_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPC_FILE} -ENV ISL_VERSION 0.24 -ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0 -ENV ISL_FILE isl-${ISL_VERSION}.tar.bz2 -ENV ISL_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${ISL_FILE} -ENV MUSL_VERSION 1.2.4 -ENV MUSL_FILE musl-${MUSL_VERSION}.tar.gz -ENV MUSL_SITE http://musl.libc.org/releases/${MUSL_FILE} -ENV MUSL_HASH 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039 -ENV LINUX_VERSION 6.6 -ENV LINUX_HASH d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0 -ENV LINUX_FILE linux-${LINUX_VERSION}.tar.xz -ENV LINUX_SITE https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${LINUX_FILE} -ENV BINUTILS_VERSION 2.35 -ENV BINUTILS_HASH 1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85 -ENV BINUTILS_FILE binutils-${BINUTILS_VERSION}.tar.xz -ENV BINUTILS_SITE https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE} +FROM scratch AS base +ENV GCC_VERSION=13.1.0 +ENV GCC_HASH=61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 +ENV GCC_FILE=gcc-$GCC_VERSION.tar.xz +ENV GCC_SITE=https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_FILE} +ENV GMP_VERSION=6.2.1 +ENV GMP_HASH=eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c +ENV GMP_FILE=gmp-${GMP_VERSION}.tar.bz2 +ENV GMP_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${GMP_FILE} +ENV MPFR_VERSION=4.1.0 +ENV MPFR_HASH=feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926 +ENV MPFR_FILE=mpfr-${MPFR_VERSION}.tar.bz2 +ENV MPFR_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${MPFR_FILE} +ENV MPC_VERSION=1.2.1 +ENV MPC_HASH=17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 +ENV MPC_FILE=mpc-${MPC_VERSION}.tar.gz +ENV MPC_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${MPC_FILE} +ENV ISL_VERSION=0.24 +ENV ISL_HASH=fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0 +ENV ISL_FILE=isl-${ISL_VERSION}.tar.bz2 +ENV ISL_SITE=https://gcc.gnu.org/pub/gcc/infrastructure/${ISL_FILE} +ENV MUSL_VERSION=1.2.4 +ENV MUSL_FILE=musl-${MUSL_VERSION}.tar.gz +ENV MUSL_SITE=http://musl.libc.org/releases/${MUSL_FILE} +ENV MUSL_HASH=7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039 +ENV LINUX_VERSION=6.6 +ENV LINUX_HASH=d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0 +ENV LINUX_FILE=linux-${LINUX_VERSION}.tar.xz +ENV LINUX_SITE=https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${LINUX_FILE} +ENV BINUTILS_VERSION=2.35 +ENV BINUTILS_HASH=1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85 +ENV BINUTILS_FILE=binutils-${BINUTILS_VERSION}.tar.xz +ENV BINUTILS_SITE=https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE} ENV BUSYBOX_VERSION=1.35.0 ENV BUSYBOX_HASH=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694 ENV BUSYBOX_FILE=busybox-${BUSYBOX_VERSION}.tar.bz2 ENV BUSYBOX_SITE=https://busybox.net/downloads/${BUSYBOX_FILE} -ENV MAKE_VERSION 4.4 -ENV MAKE_HASH 581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18 -ENV MAKE_FILE make-${MAKE_VERSION}.tar.gz -ENV MAKE_SITE https://ftp.gnu.org/gnu/make/${MAKE_FILE} +ENV MAKE_VERSION=4.4 +ENV MAKE_HASH=581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18 +ENV MAKE_FILE=make-${MAKE_VERSION}.tar.gz +ENV MAKE_SITE=https://ftp.gnu.org/gnu/make/${MAKE_FILE} ENV ARCH=x86_64 ENV BUILD=i386-unknown-linux-musl -ENV HOST=${TARGET} ENV TARGET=${ARCH}-linux-musl +ENV HOST=${TARGET} ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV USER=user ENV HOME=/home/${USER} @@ -51,14 +51,14 @@ ENV LANG=C.UTF-8 ENV SOURCE_DATE_EPOCH=1 ENV KCONFIG_NOTIMESTAMP=1 ENV MUSL_DIR=${HOME}/build-musl -ENV LINUX_DIR ${HOME}/build-linux -ENV BINUTILS_DIR ${HOME}/build-binutils -ENV BUSYBOX_DIR ${HOME}/build-busybox -ENV MAKE_DIR ${HOME}/build-make -ENV GCC_DIR ${HOME}/build-gcc +ENV LINUX_DIR=${HOME}/build-linux +ENV BINUTILS_DIR=${HOME}/build-binutils +ENV BUSYBOX_DIR=${HOME}/build-busybox +ENV MAKE_DIR=${HOME}/build-make +ENV GCC_DIR=${HOME}/build-gcc -FROM base as fetch -WORKDIR ${HOME} +FROM base AS fetch +WORKDIR /${HOME} ADD --checksum=sha256:${LINUX_HASH} ${LINUX_SITE} . ADD --checksum=sha256:${MUSL_HASH} ${MUSL_SITE} . ADD --checksum=sha256:${BUSYBOX_HASH} ${BUSYBOX_SITE} . @@ -70,7 +70,7 @@ ADD --checksum=sha256:${MPFR_HASH} ${MPFR_SITE} . ADD --checksum=sha256:${MPC_HASH} ${MPC_SITE} . ADD --checksum=sha256:${ISL_HASH} ${ISL_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/stage2 . / RUN --network=none <<-EOF set -eux @@ -81,7 +81,7 @@ RUN --network=none <<-EOF tar -kxzf ${MUSL_FILE} tar -kxzf ${MAKE_FILE} EOF -WORKDIR ${MUSL_DIR} +WORKDIR /${MUSL_DIR} RUN --network=none <<-EOF set -eux ../musl-${MUSL_VERSION}/configure \ @@ -90,7 +90,7 @@ RUN --network=none <<-EOF --host=${TARGET} make EOF -WORKDIR ${BINUTILS_DIR} +WORKDIR /${BINUTILS_DIR} RUN --network=none <<-EOF set -eux ../binutils-${BINUTILS_VERSION}/configure \ @@ -111,7 +111,7 @@ RUN --network=none <<-EOF --enable-deterministic-archives make -j$(nproc) EOF -WORKDIR ${MAKE_DIR} +WORKDIR /${MAKE_DIR} RUN --network=none <<-EOF set -eux ../make-${MAKE_VERSION}/configure \ @@ -123,7 +123,7 @@ RUN --network=none <<-EOF --disable-nls make -j$(nproc) EOF -WORKDIR ${GCC_DIR} +WORKDIR /${GCC_DIR} RUN --network=none <<-EOF set -eux cp ../*.tar.* ../gcc-${GCC_VERSION} @@ -151,7 +151,7 @@ RUN --network=none <<-EOF --enable-linker-build-id make -j$(nproc) EOF -WORKDIR ${BUSYBOX_DIR} +WORKDIR /${BUSYBOX_DIR} RUN --network=none <<-EOF set -eux setConfs=' @@ -194,7 +194,7 @@ RUN --network=none <<-EOF done make CROSS_COMPILE=${TARGET}- EOF -WORKDIR ${HOME}/linux-${LINUX_VERSION} +WORKDIR /${HOME}/linux-${LINUX_VERSION} RUN --network=none <<-EOF set -eux make ARCH=${ARCH} headers @@ -204,7 +204,7 @@ RUN --network=none <<-EOF cp -rv usr/include ${LINUX_DIR} EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux env -C ${BUSYBOX_DIR} make \ @@ -224,7 +224,7 @@ RUN --network=none <<-EOF chown -R 1000:1000 tmp var/tmp home/user EOF -FROM base as package +FROM base AS package COPY --from=install /rootfs/ . USER 1000:1000 ENTRYPOINT ["/bin/sh"] diff --git a/packages/strace/Containerfile b/packages/strace/Containerfile index 51c9cb3..cbf2d42 100644 --- a/packages/strace/Containerfile +++ b/packages/strace/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=6.7 ENV SRC_HASH=2090201e1a3ff32846f4fe421c1163b15f440bb38e31355d09f82d3949922af7 ENV SRC_FILE=strace-${VERSION}.tar.xz ENV SRC_SITE=https://github.com/strace/strace/releases/download/v${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / @@ -16,7 +16,7 @@ COPY --from=stagex/linux-headers . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf ${SRC_FILE} -WORKDIR strace-${VERSION} +WORKDIR /strace-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ @@ -30,8 +30,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/sxctl/Containerfile b/packages/sxctl/Containerfile index 1b08c8d..95d59d1 100644 --- a/packages/sxctl/Containerfile +++ b/packages/sxctl/Containerfile @@ -1,23 +1,23 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.0.5 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://codeberg.org/stagex/sxctl/archive/${SRC_FILE} ENV SRC_HASH=26f0dd95e72b632036c598d055ef6b78cec88c497dd67ede30d1498bb8229412 -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / RUN tar -xf ${SRC_FILE} -WORKDIR sxctl/cmd/sxctl +WORKDIR /sxctl/cmd/sxctl RUN go build -o sxctl -FROM build as install -WORKDIR /rootfs +FROM build AS install +WORKDIR //rootfs RUN cp /sxctl/cmd/sxctl/sxctl . -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / ENTRYPOINT ["/sxctl"] diff --git a/packages/syslinux/Containerfile b/packages/syslinux/Containerfile index 663dc81..c11c9a4 100644 --- a/packages/syslinux/Containerfile +++ b/packages/syslinux/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=6.04-pre1 ENV SRC_HASH=3f6d50a57f3ed47d8234fd0ab4492634eb7c9aaf7dd902f33d3ac33564fd631d ENV SRC_FILE=syslinux-${VERSION}.tar.xz ENV SRC_SITE=https://www.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -17,7 +17,7 @@ COPY --from=stagex/musl . / COPY --from=stagex/util-linux . / COPY --from=stagex/linux-headers . / RUN tar -xf ${SRC_FILE} -WORKDIR syslinux-${VERSION} +WORKDIR /syslinux-${VERSION} COPY *.patch . RUN --network=none <<-EOF patch -p1 < fix-sysmacros.patch @@ -26,7 +26,7 @@ RUN --network=none <<-EOF make -j1 bios efi64 installer EOF -FROM build as install +FROM build AS install RUN make -j1 \ INSTALLROOT="/rootfs" \ MANDIR=/usr/share/man \ @@ -35,11 +35,11 @@ RUN make -j1 \ LIBDIR=/usr/lib \ install -FROM base as test +FROM base AS test COPY --from=install /rootfs/. / COPY --from=stagex/musl . / COPY --from=stagex/busybox . / RUN syslinux --version -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/talosctl/Containerfile b/packages/talosctl/Containerfile index adb7c4a..fde1246 100644 --- a/packages/talosctl/Containerfile +++ b/packages/talosctl/Containerfile @@ -1,4 +1,4 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.7.2 ENV SRC_HASH=7f16510394ebe12cd405bc9d2cf4c6ef2c8baf6213006d52c05dcbce0bf06100 ENV SRC_FILE=v${VERSION}.tar.gz @@ -13,23 +13,23 @@ ENV GOHOSTOS=linux ENV GOHOSTARCH=amd64 ENV GO11MODULE=on -FROM base as fetch +FROM base AS fetch COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . RUN tar -xvf ${SRC_FILE} -WORKDIR talos-${VERSION} +WORKDIR /talos-${VERSION} RUN go get ./... -FROM fetch as build +FROM fetch AS build RUN --network=none go build -v -trimpath ./cmd/talosctl -from build as install +FROM build AS install RUN <<-EOF mkdir -p /rootfs/usr/bin/ cp talosctl /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/tar/Containerfile b/packages/tar/Containerfile index 283420c..6be7815 100644 --- a/packages/tar/Containerfile +++ b/packages/tar/Containerfile @@ -1,21 +1,21 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=1.35 ENV SRC_HASH=4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16 ENV SRC_FILE=tar-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/tar/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf tar-${VERSION}.tar.xz -WORKDIR tar-${VERSION} +WORKDIR /tar-${VERSION} ENV FORCE_UNSAFE_CONFIGURE=1 RUN --network=none <<-EOF set -ex @@ -31,8 +31,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/tcl/Containerfile b/packages/tcl/Containerfile index 20f9f0a..7d71cd2 100644 --- a/packages/tcl/Containerfile +++ b/packages/tcl/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=8.6.14 ENV SRC_HASH=5880225babf7954c58d4fb0f5cf6279104ce1cd6aa9b71e9a6322540e1c4de66 ENV SRC_FILE=tcl${VERSION}-src.tar.gz ENV SRC_SITE=https://fossies.org/linux/misc/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/bash . / COPY --from=stagex/binutils . / COPY --from=stagex/pkgconf . / @@ -17,7 +17,7 @@ COPY --from=stagex/make . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / RUN tar -xzf ${SRC_FILE} -WORKDIR tcl${VERSION}/unix +WORKDIR /tcl${VERSION}/unix RUN --network=none <<-EOF ./configure \ --build=${ARCH}-linux-musl \ @@ -30,8 +30,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/texinfo/Containerfile b/packages/texinfo/Containerfile index 93274f0..2432777 100644 --- a/packages/texinfo/Containerfile +++ b/packages/texinfo/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=7.1 ENV SRC_HASH=deeec9f19f159e046fdf8ad22231981806dac332cc372f1c763504ad82b30953 ENV SRC_FILE=texinfo-${VERSION}.tar.xz ENV SRC_SITE=https://ftp.gnu.org/gnu/texinfo/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/binutils . / COPY --from=stagex/openssl . / COPY --from=stagex/coreutils . / @@ -27,7 +27,7 @@ COPY --from=stagex/bash . / COPY --from=stagex/bash . / COPY --from=stagex/bash /bin/bash /bin/sh RUN tar -xf ${SRC_FILE} -WORKDIR texinfo-${VERSION} +WORKDIR /texinfo-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ @@ -38,8 +38,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/tflint/Containerfile b/packages/tflint/Containerfile index 3b1861a..5edf5ae 100644 --- a/packages/tflint/Containerfile +++ b/packages/tflint/Containerfile @@ -1,4 +1,4 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.50.3 ENV SRC_HASH=e90acdbf4cd1dc936e50b580ade53583baced53a93b3b01cee3e073b233ef8c5 ENV SRC_FILE=v${VERSION}.tar.gz @@ -13,23 +13,23 @@ ENV GOHOSTOS=linux ENV GOHOSTARCH=amd64 ENV GO11MODULE=on -FROM base as fetch +FROM base AS fetch COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . RUN tar -xvf ${SRC_FILE} -WORKDIR tflint-${VERSION} +WORKDIR /tflint-${VERSION} RUN go get ./... -FROM fetch as build +FROM fetch AS build RUN --network=none go build -o out/tflint -v -trimpath -from build as install +FROM build AS install RUN <<-EOF mkdir -p /rootfs/usr/bin/ cp out/tflint /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/tini/Containerfile b/packages/tini/Containerfile new file mode 100644 index 0000000..ecd7c51 --- /dev/null +++ b/packages/tini/Containerfile @@ -0,0 +1,37 @@ +FROM scratch AS base +ENV VERSION=0.19.0 +ENV SRC_HASH=0fd35a7030052acd9f58948d1d900fe1e432ee37103c5561554408bdac6bbf0d +ENV SRC_FILE=v${VERSION}.tar.gz +ENV SRC_SITE=https://github.com/krallin/tini/archive/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/binutils . / +COPY --from=stagex/busybox . / +COPY --from=stagex/gcc . / +COPY --from=stagex/openssl . / +COPY --from=stagex/cmake . / +COPY --from=stagex/ninja . / +COPY --from=stagex/musl . / +COPY --from=stagex/make . / +RUN --network=none tar -xf ${SRC_FILE} +WORKDIR /tini-${VERSION} +ENV SOURCE_DATE_EPOCH=1 +ENV CFLAGS="-DPR_SET_CHILD_SUBREAPER=36 -DPR_GET_CHILD_SUBREAPER=37" +RUN --network=none <<-EOF + set -eux + cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=None + cmake --build build --target all tini-static +EOF + +FROM build AS install +RUN --network=none <<-EOF + set -eux + install -Dm755 build/tini /rootfs/usr/sbin/tini + install -Dm755 build/tini-static /rootfs/usr/sbin/tini-static +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/tofu/Containerfile b/packages/tofu/Containerfile index 4a66c25..bab1612 100644 --- a/packages/tofu/Containerfile +++ b/packages/tofu/Containerfile @@ -1,18 +1,18 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.6.0-beta4 ENV SRC_HASH=b14f151839d90d06f95ba4257be159857606daf522d99e9285ddb248f814393f ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/opentofu/opentofu/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / RUN tar -xvf v${VERSION}.tar.gz -WORKDIR opentofu-${VERSION} +WORKDIR /opentofu-${VERSION} ENV PWD=/home/user/opentofu-${VERSION} ENV GOPATH=${PWD}/cache/go ENV GOCACHE=${PWD}/cache/ @@ -26,11 +26,11 @@ ENV GOFLAGS=-trimpath RUN mkdir -p ${GOPATH} RUN go build -o bin/tofu ./cmd/tofu -from build as install +FROM build AS install RUN <<-EOF mkdir -p /rootfs/usr/bin/ cp bin/tofu /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/tpm2-tools/Containerfile b/packages/tpm2-tools/Containerfile index 41ccb06..88d0ddc 100644 --- a/packages/tpm2-tools/Containerfile +++ b/packages/tpm2-tools/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=5.6 ENV SRC_HASH=7169fac7b5afb3ce20091b8d66ee13a69cf0b107ea1e17f5d1aa087d99bcf8e2 ENV SRC_FILE=${VERSION}.tar.gz ENV SRC_SITE=https://github.com/tpm2-software/tpm2-tools/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -26,7 +26,7 @@ COPY --from=stagex/m4 . / COPY --from=stagex/curl . / COPY --from=stagex/tpm2-tss . / RUN tar -xf ${SRC_FILE} -WORKDIR tpm2-tools-${VERSION} +WORKDIR /tpm2-tools-${VERSION} RUN --network=none <<-EOF set -eux printf "${VERSION}" > VERSION @@ -39,12 +39,12 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux make DESTDIR=/rootfs install rm -rf /rootfs/var/run EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/tpm2-tss/Containerfile b/packages/tpm2-tss/Containerfile index ac094f8..0c4295b 100644 --- a/packages/tpm2-tss/Containerfile +++ b/packages/tpm2-tss/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=4.1.0 ENV SRC_HASH=4f6c53010b9f422107235d748178daf77817bd2bbe856befa3d54cab9f2f07e4 ENV SRC_FILE=${VERSION}.tar.gz ENV SRC_SITE=https://github.com/tpm2-software/tpm2-tss/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -26,7 +26,7 @@ COPY --from=stagex/m4 . / COPY --from=stagex/curl . / COPY --from=stagex/json-c . / RUN tar -xf ${SRC_FILE} -WORKDIR tpm2-tss-${VERSION} +WORKDIR /tpm2-tss-${VERSION} RUN --network=none <<-EOF set -eux printf "${VERSION}" > VERSION @@ -44,12 +44,12 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux make DESTDIR=/rootfs install rm -rf /rootfs/var/run EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/unixodbc/Containerfile b/packages/unixodbc/Containerfile new file mode 100644 index 0000000..0ee902c --- /dev/null +++ b/packages/unixodbc/Containerfile @@ -0,0 +1,46 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=2.3.12 +ENV SRC_HASH=f210501445ce21bf607ba51ef8c125e10e22dffdffec377646462df5f01915ec +ENV SRC_FILE=unixODBC-${VERSION}.tar.gz +ENV SRC_SITE=https://www.unixodbc.org/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/perl . / +COPY --from=stagex/bash . / +COPY --from=stagex/m4 . / +COPY --from=stagex/autoconf . / +COPY --from=stagex/automake . / +COPY --from=stagex/busybox . / +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/libtool . / +COPY --from=stagex/postgresql . / +RUN tar -xf $SRC_FILE +WORKDIR /unixODBC-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --disable-nls \ + --enable-gui=no \ + --enable-static + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/util-linux/Containerfile b/packages/util-linux/Containerfile index 204bd54..2be44c3 100644 --- a/packages/util-linux/Containerfile +++ b/packages/util-linux/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=2.39.3 ENV SRC_HASH=d3315ff701890f4fa1dd38ea387767fcb9e1aaeb763eb904677c03d2a7a5bdc1 ENV SRC_FILE=util-linux-${VERSION}.tar.gz ENV SRC_SITE=https://codeload.github.com/util-linux/util-linux/legacy.tar.gz/v${VERSION} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/musl . / COPY --from=stagex/gcc . / @@ -24,7 +24,7 @@ COPY --from=stagex/m4 . / COPY --from=stagex/make . / RUN mkdir util-linux RUN tar -xvf $SRC_FILE --strip-components=1 -C util-linux -WORKDIR util-linux +WORKDIR /util-linux RUN --network=none <<-EOF set -eux ./autogen.sh @@ -45,8 +45,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/util-macros/Containerfile b/packages/util-macros/Containerfile new file mode 100644 index 0000000..378281f --- /dev/null +++ b/packages/util-macros/Containerfile @@ -0,0 +1,37 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=1.20.0 +ENV SRC_HASH=0b86b262dbe971edb4ff233bc370dfad9f241d09f078a3f6d5b7f4b8ea4430db +ENV SRC_FILE=util-macros-${VERSION}.tar.xz +ENV SRC_SITE=https://www.x.org/releases/individual/util/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/bash . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/m4 . / +COPY --from=stagex/gawk . / +RUN tar -xf ${SRC_FILE} +WORKDIR /util-macros-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/utmps/Containerfile b/packages/utmps/Containerfile new file mode 100644 index 0000000..8e9e26e --- /dev/null +++ b/packages/utmps/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=0.1.2.2 +ENV SRC_HASH=f7ffa3714c65973bb95fbcf1501c06fc0478d93a51cea1b373ec6811c2425f52 +ENV SRC_FILE=utmps-${VERSION}.tar.gz +ENV SRC_SITE=https://skarnet.org/software/utmps/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/busybox . / +COPY --from=stagex/binutils . / +COPY --from=stagex/make . / +COPY --from=stagex/skalibs . / +RUN tar -xf ${SRC_FILE} +WORKDIR /utmps-${VERSION} +RUN --network=none <<-EOF + set -eux + ./configure \ + --enable-shared \ + --enable-static \ + --prefix=/usr \ + --disable-allstatic \ + --libdir=/usr/lib \ + --libexecdir=/lib/utmps \ + --with-lib=/usr/lib \ + --with-dynlib=/lib + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/xmlto/Containerfile b/packages/xmlto/Containerfile new file mode 100644 index 0000000..ff0d094 --- /dev/null +++ b/packages/xmlto/Containerfile @@ -0,0 +1,49 @@ +FROM scratch AS base +ARG ARCH=x86_64 +ENV VERSION=0.0.29 +ENV SRC_HASH=40504db68718385a4eaa9154a28f59e51e59d006d1aa14f5bc9d6fded1d6017a +ENV SRC_FILE=xmlto-${VERSION}.tar.gz +ENV SRC_SITE=https://www.pagure.io/xmlto/archive/${VERSION}/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} + +FROM fetch AS build +COPY --from=stagex/perl . / +COPY --from=stagex/glib . / +COPY --from=stagex/bash . / +COPY --from=stagex/gettext . / +COPY --from=stagex/musl . / +COPY --from=stagex/automake . / +COPY --from=stagex/autoconf . / +COPY --from=stagex/gcc . / +COPY --from=stagex/libxslt . / +COPY --from=stagex/docbook-xsl . / +COPY --from=stagex/busybox . / +COPY --from=stagex/zlib . / +COPY --from=stagex/perl-pod-parser . / +COPY --from=stagex/perl-yaml-syck . / +COPY --from=stagex/libtool . / +COPY --from=stagex/binutils . / +COPY --from=stagex/m4 . / +COPY --from=stagex/libxml2 . / +COPY --from=stagex/make . / +RUN tar -xf ${SRC_FILE} +WORKDIR /xmlto-${VERSION} +RUN --network=none <<-EOF + set -eux + autoreconf -vfi + ./configure \ + --build=${ARCH}-linux-musl \ + --host=${ARCH}-linux-musl \ + --prefix=/usr \ + --mandir=/usr/share/man + make -j "$(nproc)" +EOF + +FROM build AS install +RUN make DESTDIR=/rootfs install +RUN find /rootfs -exec touch -hcd "@0" "{}" + + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/xorriso/Containerfile b/packages/xorriso/Containerfile index c14cf90..3533192 100644 --- a/packages/xorriso/Containerfile +++ b/packages/xorriso/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.5.6 ENV SRC_HASH=786f9f5df9865cc5b0c1fecee3d2c0f5e04cab8c9a859bd1c9c7ccd4964fdae1 ENV SRC_FILE=xorriso-${VERSION}.pl02.tar.gz ENV SRC_SITE=https://www.gnu.org/software/xorriso/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE} -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / @@ -15,7 +15,7 @@ COPY --from=stagex/make . / COPY --from=stagex/musl . / COPY --from=stagex/linux-headers . / RUN tar -xf ${SRC_FILE} -WORKDIR xorriso-${VERSION} +WORKDIR /xorriso-${VERSION} RUN --network=none <<-EOF set -eux ./configure \ @@ -23,10 +23,10 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM base as test +FROM base AS test COPY --from=install /rootfs/. / COPY --from=stagex/musl . / COPY --from=stagex/busybox . / @@ -39,5 +39,5 @@ RUN /bin/sh <<-EOF fi EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/xz/Containerfile b/packages/xz/Containerfile index 930c1bf..7274f3d 100644 --- a/packages/xz/Containerfile +++ b/packages/xz/Containerfile @@ -1,14 +1,14 @@ -FROM scratch as base +FROM scratch AS base ARG ARCH=x86_64 ENV VERSION=5.6.2 ENV SRC_HASH=92a439948bba24c2bc25bb67a087a19194905209c56b5e600bc94fd2a472e687 ENV SRC_FILE=v${VERSION}.tar.gz ENV SRC_SITE=https://github.com/tukaani-project/xz/archive/refs/tags/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / @@ -22,7 +22,7 @@ COPY --from=stagex/libtool . / COPY --from=stagex/gettext . / COPY --from=stagex/po4a . / RUN tar -xf ${SRC_FILE} -WORKDIR xz-${VERSION} +WORKDIR /xz-${VERSION} RUN --network=none <<-EOF set -ex ./autogen.sh @@ -40,8 +40,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR="/rootfs" install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/yarn/Containerfile b/packages/yarn/Containerfile new file mode 100644 index 0000000..19c7903 --- /dev/null +++ b/packages/yarn/Containerfile @@ -0,0 +1,39 @@ +FROM scratch AS base +ENV VERSION=1.22.22 +ENV SRC_HASH=88268464199d1611fcf73ce9c0a6c4d44c7d5363682720d8506f6508addf36a0 +ENV SRC_FILE=yarn-v${VERSION}.tar.gz +ENV SRC_SITE=https://yarnpkg.com/downloads/${VERSION}/${SRC_FILE} + +FROM base AS fetch +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . + +FROM fetch AS build +COPY --from=stagex/musl . / +COPY --from=stagex/busybox . / +RUN tar -xf ${SRC_FILE} +WORKDIR /yarn-v${VERSION} + +FROM build AS install +ENV DESTDIR=/rootfs +RUN --network=none <<-EOF + destdir="usr/share/node_modules/yarn" + + mkdir -p $DESTDIR/$destdir + cp -R ./* $DESTDIR/$destdir + + # Windows files + rm $DESTDIR/$destdir/bin/*.cmd + # Shell shim + rm $DESTDIR/$destdir/bin/yarn + # Old alias + rm $DESTDIR/$destdir/bin/yarnpkg + + mkdir -p $DESTDIR/usr/bin + ln -s ../share/node_modules/yarn/bin/yarn.js $DESTDIR/usr/bin/yarn + ln -s ../share/node_modules/yarn/bin/yarn.js $DESTDIR/usr/bin/yarnpkg + + sed -i 's/\"tar\"/\"stagex\"/g' $DESTDIR/$destdir/package.json +EOF + +FROM stagex/filesystem AS package +COPY --from=install /rootfs/. / diff --git a/packages/yq/Containerfile b/packages/yq/Containerfile index d281fe8..a5246e0 100644 --- a/packages/yq/Containerfile +++ b/packages/yq/Containerfile @@ -1,4 +1,4 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=4.42.1 ENV SRC_HASH=be31e5e828a0251721ea71964596832d4a40cbc21c8a8392a804bc8d1c55dd62 ENV SRC_FILE=v${VERSION}.tar.gz @@ -13,23 +13,23 @@ ENV GOHOSTOS=linux ENV GOHOSTARCH=amd64 ENV GO11MODULE=on -FROM base as fetch +FROM base AS fetch COPY --from=stagex/busybox . / COPY --from=stagex/go . / COPY --from=stagex/ca-certificates . / ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . RUN tar -xvf ${SRC_FILE} -WORKDIR yq-${VERSION} +WORKDIR /yq-${VERSION} RUN go get ./... -FROM fetch as build +FROM fetch AS build RUN --network=none go build -v -trimpath -from build as install +FROM build AS install RUN <<-EOF mkdir -p /rootfs/usr/bin/ cp yq /rootfs/usr/bin/ EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/./ / diff --git a/packages/zig/Containerfile b/packages/zig/Containerfile index 3dc6461..0164515 100644 --- a/packages/zig/Containerfile +++ b/packages/zig/Containerfile @@ -1,29 +1,29 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=0.11.0 ENV SRC_HASH=72014e700e50c0d3528cef3adf80b76b26ab27730133e8202716a187a799e951 ENV SRC_FILE=zig-${VERSION}.tar.xz ENV SRC_SITE=https://ziglang.org/download/${VERSION}/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . COPY static-glibc.patch . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/binutils . / COPY --from=stagex/busybox . / -COPY --from=stagex/clang . / +COPY --from=stagex/clang16 . / COPY --from=stagex/cmake . / COPY --from=stagex/gcc . / COPY --from=stagex/libzstd . / COPY --from=stagex/lld . / -COPY --from=stagex/llvm . / +COPY --from=stagex/llvm16 . / COPY --from=stagex/make . / COPY --from=stagex/musl . / COPY --from=stagex/openssl . / COPY --from=stagex/zlib . / RUN --network=none tar -xf ${SRC_FILE} -WORKDIR zig-${VERSION} +WORKDIR /zig-${VERSION} RUN --network=none patch -p1 -i ../static-glibc.patch RUN --network=none <<-EOF set -eux @@ -36,8 +36,8 @@ RUN --network=none <<-EOF cmake --build build EOF -FROM build as install +FROM build AS install RUN --network=none DESTDIR=/rootfs cmake --install build -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/zip/Containerfile b/packages/zip/Containerfile index c6bbd12..3d49998 100644 --- a/packages/zip/Containerfile +++ b/packages/zip/Containerfile @@ -1,13 +1,13 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=30 ENV SRC_HASH=f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 ENV SRC_FILE=zip${VERSION}.tar.gz ENV SRC_SITE=https://fossies.org/linux/misc/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/binutils . / COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / @@ -15,19 +15,19 @@ COPY --from=stagex/cmake . / COPY --from=stagex/musl . / COPY --from=stagex/make . / RUN --network=none tar -xf ${SRC_FILE} -WORKDIR zip${VERSION} +WORKDIR /zip${VERSION} ENV SOURCE_DATE_EPOCH=1 RUN --network=none <<-EOF set -eux make -f unix/Makefile prefix=/usr generic EOF -FROM build as install +FROM build AS install RUN --network=none <<-EOF set -eux mkdir -p /rootfs/usr/bin/ DESTDIR=/rootfs make -f unix/Makefile prefix=/rootfs/usr MANDIR=rootfs/usr/share/man/man1 install EOF -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/packages/zlib/Containerfile b/packages/zlib/Containerfile index 6f52772..17bd695 100644 --- a/packages/zlib/Containerfile +++ b/packages/zlib/Containerfile @@ -1,20 +1,20 @@ -FROM scratch as base +FROM scratch AS base ENV VERSION=1.3.1 ENV SRC_HASH=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 ENV SRC_FILE=zlib-${VERSION}.tar.gz ENV SRC_SITE=https://www.zlib.net/${SRC_FILE} -FROM base as fetch +FROM base AS fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . -FROM fetch as build +FROM fetch AS build COPY --from=stagex/busybox . / COPY --from=stagex/gcc . / COPY --from=stagex/binutils . / COPY --from=stagex/make . / COPY --from=stagex/musl . / RUN tar -xf ${SRC_FILE} -WORKDIR zlib-${VERSION} +WORKDIR /zlib-${VERSION} RUN --network=none <<-EOF set -eux; \ ./configure \ @@ -24,8 +24,8 @@ RUN --network=none <<-EOF make -j "$(nproc)" EOF -FROM build as install +FROM build AS install RUN --network=none make DESTDIR=/rootfs install -FROM stagex/filesystem as package +FROM stagex/filesystem AS package COPY --from=install /rootfs/. / diff --git a/src/macros.mk b/src/macros.mk index a9989a8..1d30dec 100644 --- a/src/macros.mk +++ b/src/macros.mk @@ -46,6 +46,7 @@ define build $(shell ./src/context.sh $(NAME)) \ $(EXTRA_ARGS) \ $(NOCACHE_FLAG) \ + $(CHECK_FLAG) \ -f packages/$(NAME)/Containerfile \ packages/$(NAME) \ ) diff --git a/src/packages.mk b/src/packages.mk index dec1f0e..ad5c7ac 100644 --- a/src/packages.mk +++ b/src/packages.mk @@ -15,6 +15,78 @@ out/abseil-cpp/index.json: \ out/zlib/index.json $(call build,abseil-cpp) +.PHONY: acl +acl: out/acl/index.json +out/acl/index.json: \ + packages/acl/Containerfile \ + out/attr/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,acl) + +.PHONY: alsa-lib +alsa-lib: out/alsa-lib/index.json +out/alsa-lib/index.json: \ + packages/alsa-lib/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,alsa-lib) + +.PHONY: apr +apr: out/apr/index.json +out/apr/index.json: \ + packages/apr/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/util-linux/index.json + $(call build,apr) + +.PHONY: apr-util +apr-util: out/apr-util/index.json +out/apr-util/index.json: \ + packages/apr-util/Containerfile \ + out/apr/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/expat/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/gdbm/index.json \ + out/libtool/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openldap/index.json \ + out/openssl/index.json \ + out/postgresql/index.json \ + out/sqlite3/index.json \ + out/util-linux/index.json + $(call build,apr-util) + +.PHONY: argon2 +argon2: out/argon2/index.json +out/argon2/index.json: \ + packages/argon2/Containerfile \ + 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,argon2) + .PHONY: argp-standalone argp-standalone: out/argp-standalone/index.json out/argp-standalone/index.json: \ @@ -31,6 +103,32 @@ out/argp-standalone/index.json: \ out/perl/index.json $(call build,argp-standalone) +.PHONY: aspell +aspell: out/aspell/index.json +out/aspell/index.json: \ + packages/aspell/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json + $(call build,aspell) + +.PHONY: attr +attr: out/attr/index.json +out/attr/index.json: \ + packages/attr/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json + $(call build,attr) + .PHONY: autoconf autoconf: out/autoconf/index.json out/autoconf/index.json: \ @@ -167,6 +265,21 @@ out/bison/index.json: \ out/perl/index.json $(call build,bison) +.PHONY: brotli +brotli: out/brotli/index.json +out/brotli/index.json: \ + packages/brotli/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/samurai/index.json + $(call build,brotli) + .PHONY: buf buf: out/buf/index.json out/buf/index.json: \ @@ -177,6 +290,21 @@ out/buf/index.json: \ out/go/index.json $(call build,buf) +.PHONY: buildkit +buildkit: out/buildkit/index.json +out/buildkit/index.json: \ + packages/buildkit/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/go/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,buildkit) + .PHONY: busybox busybox: out/busybox/index.json out/busybox/index.json: \ @@ -197,6 +325,18 @@ out/bzip2/index.json: \ out/musl/index.json $(call build,bzip2) +.PHONY: c-ares +c-ares: out/c-ares/index.json +out/c-ares/index.json: \ + packages/c-ares/Containerfile \ + 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,c-ares) + .PHONY: ca-certificates ca-certificates: out/ca-certificates/index.json out/ca-certificates/index.json: \ @@ -239,15 +379,37 @@ out/clang/index.json: \ out/cmake/index.json \ out/filesystem/index.json \ out/gcc/index.json \ + out/git/index.json \ + out/libxml2/index.json \ + out/linux-headers/index.json \ out/llvm/index.json \ out/musl/index.json \ out/ninja/index.json \ out/openssl/index.json \ out/py-setuptools/index.json \ out/python/index.json \ + out/samurai/index.json \ out/zlib/index.json $(call build,clang) +.PHONY: clang16 +clang16: out/clang16/index.json +out/clang16/index.json: \ + packages/clang16/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/llvm16/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json \ + out/py-setuptools/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,clang16) + .PHONY: cmake cmake: out/cmake/index.json out/cmake/index.json: \ @@ -264,6 +426,24 @@ out/cmake/index.json: \ out/zlib/index.json $(call build,cmake) +.PHONY: containerd +containerd: out/containerd/index.json +out/containerd/index.json: \ + packages/containerd/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/go/index.json \ + out/go-md2man/index.json \ + out/libseccomp/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,containerd) + .PHONY: coreutils coreutils: out/coreutils/index.json out/coreutils/index.json: \ @@ -304,6 +484,77 @@ out/curl/index.json: \ out/perl/index.json $(call build,curl) +.PHONY: cython +cython: out/cython/index.json +out/cython/index.json: \ + packages/cython/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-cffi/index.json \ + out/py-dateutil/index.json \ + out/py-distro/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-urllib3/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,cython) + +.PHONY: dhcpcd +dhcpcd: out/dhcpcd/index.json +out/dhcpcd/index.json: \ + packages/dhcpcd/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libmnl/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,dhcpcd) + +.PHONY: diffoscope +diffoscope: out/diffoscope/index.json +out/diffoscope/index.json: \ + packages/diffoscope/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/file/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-cffi/index.json \ + out/py-dateutil/index.json \ + out/py-distro/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-libarchive/index.json \ + out/py-magic/index.json \ + out/py-setuptools/index.json \ + out/py-urllib3/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,diffoscope) + .PHONY: diffutils diffutils: out/diffutils/index.json out/diffutils/index.json: \ @@ -346,6 +597,39 @@ out/docbook-xsl/index.json: \ out/zlib/index.json $(call build,docbook-xsl) +.PHONY: docker +docker: out/docker/index.json +out/docker/index.json: \ + packages/docker/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/ca-certificates/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/go/index.json \ + out/libseccomp/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,docker) + +.PHONY: docker-cli-buildx +docker-cli-buildx: out/docker-cli-buildx/index.json +out/docker-cli-buildx/index.json: \ + packages/docker-cli-buildx/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/go/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,docker-cli-buildx) + .PHONY: dosfstools dosfstools: out/dosfstools/index.json out/dosfstools/index.json: \ @@ -363,6 +647,53 @@ out/dosfstools/index.json: \ out/perl/index.json $(call build,dosfstools) +.PHONY: doxygen +doxygen: out/doxygen/index.json +out/doxygen/index.json: \ + packages/doxygen/Containerfile \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/coreutils/index.json \ + out/filesystem/index.json \ + out/flex/index.json \ + out/gcc/index.json \ + out/libxml2/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/python/index.json \ + out/samurai/index.json + $(call build,doxygen) + +.PHONY: dtc +dtc: out/dtc/index.json +out/dtc/index.json: \ + packages/dtc/Containerfile \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/coreutils/index.json \ + out/filesystem/index.json \ + out/flex/index.json \ + out/gcc/index.json \ + out/libzstd/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/py-setuptools/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,dtc) + .PHONY: e2fsprogs e2fsprogs: out/e2fsprogs/index.json out/e2fsprogs/index.json: \ @@ -404,7 +735,7 @@ out/eif_build/index.json: \ out/gcc/index.json \ out/git/index.json \ out/libunwind/index.json \ - out/llvm/index.json \ + out/llvm16/index.json \ out/musl/index.json \ out/openssl/index.json \ out/pkgconf/index.json \ @@ -453,6 +784,18 @@ out/eudev/index.json: \ out/musl/index.json $(call build,eudev) +.PHONY: expat +expat: out/expat/index.json +out/expat/index.json: \ + packages/expat/Containerfile \ + 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,expat) + .PHONY: file file: out/file/index.json out/file/index.json: \ @@ -520,6 +863,94 @@ out/flex/index.json: \ out/perl/index.json $(call build,flex) +.PHONY: fmt +fmt: out/fmt/index.json +out/fmt/index.json: \ + packages/fmt/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/doxygen/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/postgresql/index.json \ + out/python/index.json \ + out/samurai/index.json + $(call build,fmt) + +.PHONY: freetds +freetds: out/freetds/index.json +out/freetds/index.json: \ + packages/freetds/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libtool/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/readline/index.json \ + out/unixodbc/index.json + $(call build,freetds) + +.PHONY: fuse-overlayfs +fuse-overlayfs: out/fuse-overlayfs/index.json +out/fuse-overlayfs/index.json: \ + packages/fuse-overlayfs/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/fuse3/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json + $(call build,fuse-overlayfs) + +.PHONY: fuse3 +fuse3: out/fuse3/index.json +out/fuse3/index.json: \ + packages/fuse3/Containerfile \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/bzip2/index.json \ + out/cmake/index.json \ + out/expat/index.json \ + out/filesystem/index.json \ + out/flex/index.json \ + out/gcc/index.json \ + out/gettext/index.json \ + out/libffi/index.json \ + out/libxml2/index.json \ + out/libxslt/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/meson/index.json \ + out/musl/index.json \ + out/ncurses/index.json \ + out/ninja/index.json \ + out/pcre2/index.json \ + out/pkgconf/index.json \ + out/py-packaging/index.json \ + out/python/index.json \ + out/rhash/index.json \ + out/util-linux/index.json \ + out/xz/index.json \ + out/zlib/index.json + $(call build,fuse3) + .PHONY: gawk gawk: out/gawk/index.json out/gawk/index.json: \ @@ -543,6 +974,20 @@ out/gcc/index.json: \ out/stage3/index.json $(call build,gcc) +.PHONY: gdbm +gdbm: out/gdbm/index.json +out/gdbm/index.json: \ + packages/gdbm/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 \ + out/openssl/index.json + $(call build,gdbm) + .PHONY: gen_initramfs gen_initramfs: out/gen_initramfs/index.json out/gen_initramfs/index.json: \ @@ -584,6 +1029,39 @@ out/git/index.json: \ out/zlib/index.json $(call build,git) +.PHONY: glib +glib: out/glib/index.json +out/glib/index.json: \ + packages/glib/Containerfile \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/bzip2/index.json \ + out/cmake/index.json \ + out/expat/index.json \ + out/filesystem/index.json \ + out/flex/index.json \ + out/gcc/index.json \ + out/gettext/index.json \ + out/libffi/index.json \ + out/libxml2/index.json \ + out/libxslt/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/meson/index.json \ + out/musl/index.json \ + out/ncurses/index.json \ + out/ninja/index.json \ + out/pcre2/index.json \ + out/pkgconf/index.json \ + out/py-packaging/index.json \ + out/python/index.json \ + out/rhash/index.json \ + out/util-linux/index.json \ + out/xz/index.json \ + out/zlib/index.json + $(call build,glib) + .PHONY: gmp gmp: out/gmp/index.json out/gmp/index.json: \ @@ -665,6 +1143,20 @@ out/grep/index.json: \ out/musl/index.json $(call build,grep) +.PHONY: groff +groff: out/groff/index.json +out/groff/index.json: \ + packages/groff/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json + $(call build,groff) + .PHONY: grpcurl grpcurl: out/grpcurl/index.json out/grpcurl/index.json: \ @@ -721,6 +1213,20 @@ out/helm/index.json: \ out/go/index.json $(call build,helm) +.PHONY: hunspell +hunspell: out/hunspell/index.json +out/hunspell/index.json: \ + packages/hunspell/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 \ + out/openssl/index.json + $(call build,hunspell) + .PHONY: icu icu: out/icu/index.json out/icu/index.json: \ @@ -734,6 +1240,27 @@ out/icu/index.json: \ out/musl/index.json $(call build,icu) +.PHONY: iptables +iptables: out/iptables/index.json +out/iptables/index.json: \ + packages/iptables/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libmnl/index.json \ + out/libnftnl/index.json \ + out/libtool/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json + $(call build,iptables) + .PHONY: iputils iputils: out/iputils/index.json out/iputils/index.json: \ @@ -796,13 +1323,13 @@ out/keyfork/index.json: \ out/binutils/index.json \ out/busybox/index.json \ out/ca-certificates/index.json \ - out/clang/index.json \ + out/clang16/index.json \ out/filesystem/index.json \ out/gcc/index.json \ out/gmp/index.json \ out/libunwind/index.json \ out/linux-headers/index.json \ - out/llvm/index.json \ + out/llvm16/index.json \ out/musl/index.json \ out/nettle/index.json \ out/openssl/index.json \ @@ -812,6 +1339,36 @@ out/keyfork/index.json: \ out/zlib/index.json $(call build,keyfork) +.PHONY: krb5 +krb5: out/krb5/index.json +out/krb5/index.json: \ + packages/krb5/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/curl/index.json \ + out/e2fsprogs/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/groff/index.json \ + out/libevent/index.json \ + out/libtool/index.json \ + out/libverto/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openldap/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/python/index.json \ + out/util-linux/index.json + $(call build,krb5) + .PHONY: ksops-dry-run ksops-dry-run: out/ksops-dry-run/index.json out/ksops-dry-run/index.json: \ @@ -862,6 +1419,20 @@ out/kustomize-sops/index.json: \ out/go/index.json $(call build,kustomize-sops) +.PHONY: libaio +libaio: out/libaio/index.json +out/libaio/index.json: \ + packages/libaio/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,libaio) + .PHONY: libarchive libarchive: out/libarchive/index.json out/libarchive/index.json: \ @@ -902,6 +1473,67 @@ out/libcap/index.json: \ out/perl/index.json $(call build,libcap) +.PHONY: libcap-ng +libcap-ng: out/libcap-ng/index.json +out/libcap-ng/index.json: \ + packages/libcap-ng/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,libcap-ng) + +.PHONY: libedit +libedit: out/libedit/index.json +out/libedit/index.json: \ + packages/libedit/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gawk/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/ncurses/index.json \ + out/perl/index.json + $(call build,libedit) + +.PHONY: libev +libev: out/libev/index.json +out/libev/index.json: \ + packages/libev/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libtool/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json + $(call build,libev) + +.PHONY: libevent +libevent: out/libevent/index.json +out/libevent/index.json: \ + packages/libevent/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 \ + out/openssl/index.json + $(call build,libevent) + .PHONY: libffi libffi: out/libffi/index.json out/libffi/index.json: \ @@ -940,6 +1572,38 @@ out/libgpg-error/index.json: \ out/npth/index.json $(call build,libgpg-error) +.PHONY: libical +libical: out/libical/index.json +out/libical/index.json: \ + packages/libical/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/icu/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/samurai/index.json + $(call build,libical) + +.PHONY: libiconv +libiconv: out/libiconv/index.json +out/libiconv/index.json: \ + packages/libiconv/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 \ + out/openssl/index.json + $(call build,libiconv) + .PHONY: libksba libksba: out/libksba/index.json out/libksba/index.json: \ @@ -955,6 +1619,54 @@ out/libksba/index.json: \ out/zlib/index.json $(call build,libksba) +.PHONY: libmnl +libmnl: out/libmnl/index.json +out/libmnl/index.json: \ + packages/libmnl/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,libmnl) + +.PHONY: libnftnl +libnftnl: out/libnftnl/index.json +out/libnftnl/index.json: \ + packages/libnftnl/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libmnl/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,libnftnl) + +.PHONY: libnghttp2 +libnghttp2: out/libnghttp2/index.json +out/libnghttp2/index.json: \ + packages/libnghttp2/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/c-ares/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libev/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/pkgconf/index.json \ + out/zlib/index.json + $(call build,libnghttp2) + .PHONY: libqrencode libqrencode: out/libqrencode/index.json out/libqrencode/index.json: \ @@ -968,6 +1680,35 @@ out/libqrencode/index.json: \ out/musl/index.json $(call build,libqrencode) +.PHONY: libseccomp +libseccomp: out/libseccomp/index.json +out/libseccomp/index.json: \ + packages/libseccomp/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cython/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/gperf/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,libseccomp) + +.PHONY: libsodium +libsodium: out/libsodium/index.json +out/libsodium/index.json: \ + packages/libsodium/Containerfile \ + 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,libsodium) + .PHONY: libtool libtool: out/libtool/index.json out/libtool/index.json: \ @@ -1009,6 +1750,35 @@ out/libusb/index.json: \ out/musl/index.json $(call build,libusb) +.PHONY: libverto +libverto: out/libverto/index.json +out/libverto/index.json: \ + packages/libverto/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/curl/index.json \ + out/e2fsprogs/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/groff/index.json \ + out/libedit/index.json \ + out/libevent/index.json \ + out/libtool/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openldap/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/python/index.json \ + out/util-linux/index.json + $(call build,libverto) + .PHONY: libxml2 libxml2: out/libxml2/index.json out/libxml2/index.json: \ @@ -1127,6 +1897,38 @@ out/linux-generic/index.json: \ out/zlib/index.json $(call build,linux-generic) +.PHONY: linux-guest +linux-guest: out/linux-guest/index.json +out/linux-guest/index.json: \ + packages/linux-guest/Containerfile \ + out/bash/index.json \ + out/bc/index.json \ + out/binutils/index.json \ + out/bison/index.json \ + out/coreutils/index.json \ + out/diffutils/index.json \ + out/elfutils/index.json \ + out/filesystem/index.json \ + out/findutils/index.json \ + out/flex/index.json \ + out/gawk/index.json \ + out/gcc/index.json \ + out/grep/index.json \ + out/gzip/index.json \ + out/libzstd/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/sed/index.json \ + out/tar/index.json \ + out/xz/index.json \ + out/zlib/index.json + $(call build,linux-guest) + .PHONY: linux-headers linux-headers: out/linux-headers/index.json out/linux-headers/index.json: \ @@ -1167,6 +1969,29 @@ out/linux-nitro/index.json: \ out/zlib/index.json $(call build,linux-nitro) +.PHONY: linux-pam +linux-pam: out/linux-pam/index.json +out/linux-pam/index.json: \ + packages/linux-pam/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/flex/index.json \ + out/gcc/index.json \ + out/gettext/index.json \ + out/libtool/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/utmps/index.json + $(call build,linux-pam) + .PHONY: lld lld: out/lld/index.json out/lld/index.json: \ @@ -1176,7 +2001,7 @@ out/lld/index.json: \ out/cmake/index.json \ out/filesystem/index.json \ out/gcc/index.json \ - out/llvm/index.json \ + out/llvm16/index.json \ out/musl/index.json \ out/ninja/index.json \ out/openssl/index.json \ @@ -1194,6 +2019,7 @@ out/llvm/index.json: \ out/cmake/index.json \ out/filesystem/index.json \ out/gcc/index.json \ + out/linux-headers/index.json \ out/musl/index.json \ out/ninja/index.json \ out/openssl/index.json \ @@ -1219,6 +2045,37 @@ out/llvm13/index.json: \ out/zlib/index.json $(call build,llvm13) +.PHONY: llvm16 +llvm16: out/llvm16/index.json +out/llvm16/index.json: \ + packages/llvm16/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json \ + out/py-setuptools/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,llvm16) + +.PHONY: lmdb +lmdb: out/lmdb/index.json +out/lmdb/index.json: \ + packages/lmdb/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 \ + out/openssl/index.json + $(call build,lmdb) + .PHONY: lua lua: out/lua/index.json out/lua/index.json: \ @@ -1252,6 +2109,22 @@ out/lzip/index.json: \ out/musl/index.json $(call build,lzip) +.PHONY: lzo +lzo: out/lzo/index.json +out/lzo/index.json: \ + packages/lzo/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json \ + out/zlib/index.json + $(call build,lzo) + .PHONY: m4 m4: out/m4/index.json out/m4/index.json: \ @@ -1272,6 +2145,23 @@ out/make/index.json: \ out/stage3/index.json $(call build,make) +.PHONY: mdbook +mdbook: out/mdbook/index.json +out/mdbook/index.json: \ + packages/mdbook/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/ca-certificates/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libunwind/index.json \ + out/llvm16/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/rust/index.json \ + out/zlib/index.json + $(call build,mdbook) + .PHONY: meson meson: out/meson/index.json out/meson/index.json: \ @@ -1395,6 +2285,29 @@ out/ninja/index.json: \ out/python/index.json $(call build,ninja) +.PHONY: nodejs +nodejs: out/nodejs/index.json +out/nodejs/index.json: \ + packages/nodejs/Containerfile \ + out/binutils/index.json \ + out/brotli/index.json \ + out/busybox/index.json \ + out/bzip2/index.json \ + out/c-ares/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/icu/index.json \ + out/libnghttp2/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json \ + out/pkgconf/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,nodejs) + .PHONY: npth npth: out/npth/index.json out/npth/index.json: \ @@ -1408,6 +2321,93 @@ out/npth/index.json: \ out/zlib/index.json $(call build,npth) +.PHONY: numactl +numactl: out/numactl/index.json +out/numactl/index.json: \ + packages/numactl/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/gperf/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,numactl) + +.PHONY: nuspell +nuspell: out/nuspell/index.json +out/nuspell/index.json: \ + packages/nuspell/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/icu/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/samurai/index.json + $(call build,nuspell) + +.PHONY: ocaml +ocaml: out/ocaml/index.json +out/ocaml/index.json: \ + packages/ocaml/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libzstd/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,ocaml) + +.PHONY: ocismack +ocismack: out/ocismack/index.json +out/ocismack/index.json: \ + packages/ocismack/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/ca-certificates/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libunwind/index.json \ + out/llvm16/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/rust/index.json \ + out/zlib/index.json + $(call build,ocismack) + +.PHONY: openldap +openldap: out/openldap/index.json +out/openldap/index.json: \ + packages/openldap/Containerfile \ + out/argon2/index.json \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/groff/index.json \ + out/libedit/index.json \ + out/libevent/index.json \ + out/libtool/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/perl/index.json \ + out/unixodbc/index.json + $(call build,openldap) + .PHONY: openpgp-card-tools openpgp-card-tools: out/openpgp-card-tools/index.json out/openpgp-card-tools/index.json: \ @@ -1415,13 +2415,13 @@ out/openpgp-card-tools/index.json: \ out/binutils/index.json \ out/busybox/index.json \ out/ca-certificates/index.json \ - out/clang/index.json \ + out/clang16/index.json \ out/filesystem/index.json \ out/gcc/index.json \ out/gmp/index.json \ out/libunwind/index.json \ out/linux-headers/index.json \ - out/llvm/index.json \ + out/llvm16/index.json \ out/musl/index.json \ out/nettle/index.json \ out/openssl/index.json \ @@ -1479,6 +2479,7 @@ out/openssh/index.json: \ out/musl/index.json \ out/musl-fts/index.json \ out/musl-obstack/index.json \ + out/openssl/index.json \ out/perl/index.json \ out/pkgconf/index.json \ out/zlib/index.json @@ -1498,6 +2499,31 @@ out/openssl/index.json: \ out/perl/index.json $(call build,openssl) +.PHONY: pcre2 +pcre2: out/pcre2/index.json +out/pcre2/index.json: \ + packages/pcre2/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/bzip2/index.json \ + out/filesystem/index.json \ + out/gawk/index.json \ + out/gcc/index.json \ + out/libedit/index.json \ + out/libtool/index.json \ + out/libzstd/index.json \ + out/linux-headers/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/ncurses/index.json \ + out/perl/index.json \ + out/readline/index.json \ + out/zlib/index.json + $(call build,pcre2) + .PHONY: pcsc-lite pcsc-lite: out/pcsc-lite/index.json out/pcsc-lite/index.json: \ @@ -1544,6 +2570,21 @@ out/perl/index.json: \ out/musl/index.json $(call build,perl) +.PHONY: perl-dbi +perl-dbi: out/perl-dbi/index.json +out/perl-dbi/index.json: \ + packages/perl-dbi/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 \ + out/perl/index.json \ + out/pkgconf/index.json + $(call build,perl-dbi) + .PHONY: perl-module-build perl-module-build: out/perl-module-build/index.json out/perl-module-build/index.json: \ @@ -1568,6 +2609,63 @@ out/perl-pod-parser/index.json: \ out/perl/index.json $(call build,perl-pod-parser) +.PHONY: perl-yaml-syck +perl-yaml-syck: out/perl-yaml-syck/index.json +out/perl-yaml-syck/index.json: \ + packages/perl-yaml-syck/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json + $(call build,perl-yaml-syck) + +.PHONY: php +php: out/php/index.json +out/php/index.json: \ + packages/php/Containerfile \ + out/acl/index.json \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/bc/index.json \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/bzip2/index.json \ + out/clang/index.json \ + out/curl/index.json \ + out/expat/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/gdbm/index.json \ + out/gettext/index.json \ + out/gmp/index.json \ + out/icu/index.json \ + out/libedit/index.json \ + out/libunwind/index.json \ + out/libxml2/index.json \ + out/libzstd/index.json \ + out/linux-headers/index.json \ + out/lld/index.json \ + out/llvm/index.json \ + out/lmdb/index.json \ + out/lzip/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/pcre2/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/python/index.json \ + out/re2c/index.json \ + out/sqlite3/index.json \ + out/zlib/index.json + $(call build,php) + .PHONY: pkgconf pkgconf: out/pkgconf/index.json out/pkgconf/index.json: \ @@ -1700,6 +2798,29 @@ out/protoc-go-inject-tag/index.json: \ out/go/index.json $(call build,protoc-go-inject-tag) +.PHONY: py-alabaster +py-alabaster: out/py-alabaster/index.json +out/py-alabaster/index.json: \ + packages/py-alabaster/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-alabaster) + .PHONY: py-awscrt py-awscrt: out/py-awscrt/index.json out/py-awscrt/index.json: \ @@ -1722,6 +2843,29 @@ out/py-awscrt/index.json: \ out/zlib/index.json $(call build,py-awscrt) +.PHONY: py-babel +py-babel: out/py-babel/index.json +out/py-babel/index.json: \ + packages/py-babel/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-babel) + .PHONY: py-botocore py-botocore: out/py-botocore/index.json out/py-botocore/index.json: \ @@ -1825,7 +2969,7 @@ out/py-cryptography/index.json: \ out/gcc/index.json \ out/libffi/index.json \ out/libunwind/index.json \ - out/llvm/index.json \ + out/llvm16/index.json \ out/musl/index.json \ out/openssl/index.json \ out/pkgconf/index.json \ @@ -1876,9 +3020,13 @@ out/py-docutils/index.json: \ packages/py-docutils/Containerfile \ out/busybox/index.json \ out/filesystem/index.json \ + out/libffi/index.json \ out/musl/index.json \ out/py-flit/index.json \ out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ out/python/index.json \ out/zlib/index.json $(call build,py-docutils) @@ -1906,6 +3054,77 @@ out/py-gpep517/index.json: \ out/zlib/index.json $(call build,py-gpep517) +.PHONY: py-hatchling +py-hatchling: out/py-hatchling/index.json +out/py-hatchling/index.json: \ + packages/py-hatchling/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-pathspec/index.json \ + out/py-pluggy/index.json \ + out/py-trove-classifiers/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-hatchling) + +.PHONY: py-idna +py-idna: out/py-idna/index.json +out/py-idna/index.json: \ + packages/py-idna/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-idna) + +.PHONY: py-imagesize +py-imagesize: out/py-imagesize/index.json +out/py-imagesize/index.json: \ + packages/py-imagesize/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-imagesize) + .PHONY: py-installer py-installer: out/py-installer/index.json out/py-installer/index.json: \ @@ -1923,6 +3142,28 @@ out/py-installer/index.json: \ out/zlib/index.json $(call build,py-installer) +.PHONY: py-jinja2 +py-jinja2: out/py-jinja2/index.json +out/py-jinja2/index.json: \ + packages/py-jinja2/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-jinja2) + .PHONY: py-jmespath py-jmespath: out/py-jmespath/index.json out/py-jmespath/index.json: \ @@ -1936,6 +3177,83 @@ out/py-jmespath/index.json: \ out/zlib/index.json $(call build,py-jmespath) +.PHONY: py-libarchive +py-libarchive: out/py-libarchive/index.json +out/py-libarchive/index.json: \ + packages/py-libarchive/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libarchive/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-cffi/index.json \ + out/py-dateutil/index.json \ + out/py-distro/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-urllib3/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-libarchive) + +.PHONY: py-magic +py-magic: out/py-magic/index.json +out/py-magic/index.json: \ + packages/py-magic/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/file/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-cffi/index.json \ + out/py-dateutil/index.json \ + out/py-distro/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-urllib3/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-magic) + +.PHONY: py-markupsafe +py-markupsafe: out/py-markupsafe/index.json +out/py-markupsafe/index.json: \ + packages/py-markupsafe/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-markupsafe) + .PHONY: py-packaging py-packaging: out/py-packaging/index.json out/py-packaging/index.json: \ @@ -1949,6 +3267,27 @@ out/py-packaging/index.json: \ out/zlib/index.json $(call build,py-packaging) +.PHONY: py-pathspec +py-pathspec: out/py-pathspec/index.json +out/py-pathspec/index.json: \ + packages/py-pathspec/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-pathspec) + .PHONY: py-pep517 py-pep517: out/py-pep517/index.json out/py-pep517/index.json: \ @@ -1961,6 +3300,29 @@ out/py-pep517/index.json: \ out/zlib/index.json $(call build,py-pep517) +.PHONY: py-pluggy +py-pluggy: out/py-pluggy/index.json +out/py-pluggy/index.json: \ + packages/py-pluggy/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-pathspec/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-pluggy) + .PHONY: py-prompt_toolkit py-prompt_toolkit: out/py-prompt_toolkit/index.json out/py-prompt_toolkit/index.json: \ @@ -1974,6 +3336,55 @@ out/py-prompt_toolkit/index.json: \ out/zlib/index.json $(call build,py-prompt_toolkit) +.PHONY: py-pygments +py-pygments: out/py-pygments/index.json +out/py-pygments/index.json: \ + packages/py-pygments/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-hatchling/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-pathspec/index.json \ + out/py-pluggy/index.json \ + out/py-trove-classifiers/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-pygments) + +.PHONY: py-requests +py-requests: out/py-requests/index.json +out/py-requests/index.json: \ + packages/py-requests/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-requests) + .PHONY: py-ruamel.yaml py-ruamel.yaml: out/py-ruamel.yaml/index.json out/py-ruamel.yaml/index.json: \ @@ -2067,6 +3478,162 @@ out/py-six/index.json: \ out/zlib/index.json $(call build,py-six) +.PHONY: py-snowballstemmer +py-snowballstemmer: out/py-snowballstemmer/index.json +out/py-snowballstemmer/index.json: \ + packages/py-snowballstemmer/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-packaging/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-snowballstemmer) + +.PHONY: py-sphinx +py-sphinx: out/py-sphinx/index.json +out/py-sphinx/index.json: \ + packages/py-sphinx/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinx) + +.PHONY: py-sphinx_rtd_theme +py-sphinx_rtd_theme: out/py-sphinx_rtd_theme/index.json +out/py-sphinx_rtd_theme/index.json: \ + packages/py-sphinx_rtd_theme/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinx_rtd_theme) + +.PHONY: py-sphinxcontrib-applehelp +py-sphinxcontrib-applehelp: out/py-sphinxcontrib-applehelp/index.json +out/py-sphinxcontrib-applehelp/index.json: \ + packages/py-sphinxcontrib-applehelp/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinxcontrib-applehelp) + +.PHONY: py-sphinxcontrib-devhelp +py-sphinxcontrib-devhelp: out/py-sphinxcontrib-devhelp/index.json +out/py-sphinxcontrib-devhelp/index.json: \ + packages/py-sphinxcontrib-devhelp/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinxcontrib-devhelp) + +.PHONY: py-sphinxcontrib-htmlhelp +py-sphinxcontrib-htmlhelp: out/py-sphinxcontrib-htmlhelp/index.json +out/py-sphinxcontrib-htmlhelp/index.json: \ + packages/py-sphinxcontrib-htmlhelp/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinxcontrib-htmlhelp) + +.PHONY: py-sphinxcontrib-jquery +py-sphinxcontrib-jquery: out/py-sphinxcontrib-jquery/index.json +out/py-sphinxcontrib-jquery/index.json: \ + packages/py-sphinxcontrib-jquery/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinxcontrib-jquery) + +.PHONY: py-sphinxcontrib-qthelp +py-sphinxcontrib-qthelp: out/py-sphinxcontrib-qthelp/index.json +out/py-sphinxcontrib-qthelp/index.json: \ + packages/py-sphinxcontrib-qthelp/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinxcontrib-qthelp) + +.PHONY: py-sphinxcontrib-serializinghtml +py-sphinxcontrib-serializinghtml: out/py-sphinxcontrib-serializinghtml/index.json +out/py-sphinxcontrib-serializinghtml/index.json: \ + packages/py-sphinxcontrib-serializinghtml/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/libffi/index.json \ + out/musl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-sphinxcontrib-serializinghtml) + .PHONY: py-toml py-toml: out/py-toml/index.json out/py-toml/index.json: \ @@ -2079,6 +3646,28 @@ out/py-toml/index.json: \ out/zlib/index.json $(call build,py-toml) +.PHONY: py-trove-classifiers +py-trove-classifiers: out/py-trove-classifiers/index.json +out/py-trove-classifiers/index.json: \ + packages/py-trove-classifiers/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libffi/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/openssl/index.json \ + out/py-flit/index.json \ + out/py-gpep517/index.json \ + out/py-installer/index.json \ + out/py-setuptools/index.json \ + out/py-wheel/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,py-trove-classifiers) + .PHONY: py-typing-extensions py-typing-extensions: out/py-typing-extensions/index.json out/py-typing-extensions/index.json: \ @@ -2156,11 +3745,98 @@ out/python/index.json: \ out/libffi/index.json \ out/make/index.json \ out/musl/index.json \ + out/ncurses/index.json \ out/openssl/index.json \ out/sqlite3/index.json \ out/zlib/index.json $(call build,python) +.PHONY: qemu +qemu: out/qemu/index.json +out/qemu/index.json: \ + packages/qemu/Containerfile \ + out/alsa-lib/index.json \ + out/argp-standalone/index.json \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/binutils/index.json \ + out/bison/index.json \ + out/busybox/index.json \ + out/curl/index.json \ + out/dtc/index.json \ + out/filesystem/index.json \ + out/flex/index.json \ + out/gcc/index.json \ + out/gettext/index.json \ + out/git/index.json \ + out/glib/index.json \ + out/gzip/index.json \ + out/libaio/index.json \ + out/libcap-ng/index.json \ + out/libffi/index.json \ + out/libseccomp/index.json \ + out/libtool/index.json \ + out/libzstd/index.json \ + out/linux-headers/index.json \ + out/lzo/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/meson/index.json \ + out/musl/index.json \ + out/musl-fts/index.json \ + out/musl-obstack/index.json \ + out/ncurses/index.json \ + out/ninja/index.json \ + out/numactl/index.json \ + out/openssh/index.json \ + out/openssl/index.json \ + out/pcre2/index.json \ + out/perl/index.json \ + out/pkgconf/index.json \ + out/py-alabaster/index.json \ + out/py-babel/index.json \ + out/py-certifi/index.json \ + out/py-docutils/index.json \ + out/py-idna/index.json \ + out/py-imagesize/index.json \ + out/py-jinja2/index.json \ + out/py-markupsafe/index.json \ + out/py-packaging/index.json \ + out/py-pygments/index.json \ + out/py-requests/index.json \ + out/py-snowballstemmer/index.json \ + out/py-sphinx/index.json \ + out/py-sphinx_rtd_theme/index.json \ + out/py-sphinxcontrib-applehelp/index.json \ + out/py-sphinxcontrib-devhelp/index.json \ + out/py-sphinxcontrib-htmlhelp/index.json \ + out/py-sphinxcontrib-jquery/index.json \ + out/py-sphinxcontrib-qthelp/index.json \ + out/py-sphinxcontrib-serializinghtml/index.json \ + out/py-urllib3/index.json \ + out/python/index.json \ + out/zlib/index.json + $(call build,qemu) + +.PHONY: re2c +re2c: out/re2c/index.json +out/re2c/index.json: \ + packages/re2c/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libtool/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json \ + out/python/index.json + $(call build,re2c) + .PHONY: readline readline: out/readline/index.json out/readline/index.json: \ @@ -2190,6 +3866,38 @@ out/redis/index.json: \ out/pkgconf/index.json $(call build,redis) +.PHONY: rhash +rhash: out/rhash/index.json +out/rhash/index.json: \ + packages/rhash/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 \ + out/openssl/index.json + $(call build,rhash) + +.PHONY: runc +runc: out/runc/index.json +out/runc/index.json: \ + packages/runc/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/go/index.json \ + out/go-md2man/index.json \ + out/libseccomp/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,runc) + .PHONY: rust rust: out/rust/index.json out/rust/index.json: \ @@ -2201,8 +3909,8 @@ out/rust/index.json: \ out/filesystem/index.json \ out/gcc/index.json \ out/libunwind/index.json \ - out/llvm/index.json \ out/llvm13/index.json \ + out/llvm16/index.json \ out/make/index.json \ out/musl/index.json \ out/openssl/index.json \ @@ -2213,6 +3921,44 @@ out/rust/index.json: \ out/zlib/index.json $(call build,rust) +.PHONY: samurai +samurai: out/samurai/index.json +out/samurai/index.json: \ + packages/samurai/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,samurai) + +.PHONY: scdoc +scdoc: out/scdoc/index.json +out/scdoc/index.json: \ + packages/scdoc/Containerfile \ + 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,scdoc) + +.PHONY: sdtool +sdtool: out/sdtool/index.json +out/sdtool/index.json: \ + packages/sdtool/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/linux-headers/index.json \ + out/make/index.json \ + out/musl/index.json + $(call build,sdtool) + .PHONY: sed sed: out/sed/index.json out/sed/index.json: \ @@ -2225,6 +3971,18 @@ out/sed/index.json: \ out/musl/index.json $(call build,sed) +.PHONY: skalibs +skalibs: out/skalibs/index.json +out/skalibs/index.json: \ + packages/skalibs/Containerfile \ + 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,skalibs) + .PHONY: sops sops: out/sops/index.json out/sops/index.json: \ @@ -2380,6 +4138,21 @@ out/tflint/index.json: \ out/go/index.json $(call build,tflint) +.PHONY: tini +tini: out/tini/index.json +out/tini/index.json: \ + packages/tini/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/cmake/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/ninja/index.json \ + out/openssl/index.json + $(call build,tini) + .PHONY: tofu tofu: out/tofu/index.json out/tofu/index.json: \ @@ -2438,6 +4211,25 @@ out/tpm2-tss/index.json: \ out/util-linux/index.json $(call build,tpm2-tss) +.PHONY: unixodbc +unixodbc: out/unixodbc/index.json +out/unixodbc/index.json: \ + packages/unixodbc/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/libtool/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json \ + out/postgresql/index.json + $(call build,unixodbc) + .PHONY: util-linux util-linux: out/util-linux/index.json out/util-linux/index.json: \ @@ -2459,6 +4251,61 @@ out/util-linux/index.json: \ out/pkgconf/index.json $(call build,util-linux) +.PHONY: util-macros +util-macros: out/util-macros/index.json +out/util-macros/index.json: \ + packages/util-macros/Containerfile \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gawk/index.json \ + out/gcc/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/pkgconf/index.json + $(call build,util-macros) + +.PHONY: utmps +utmps: out/utmps/index.json +out/utmps/index.json: \ + packages/utmps/Containerfile \ + out/binutils/index.json \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/skalibs/index.json + $(call build,utmps) + +.PHONY: xmlto +xmlto: out/xmlto/index.json +out/xmlto/index.json: \ + packages/xmlto/Containerfile \ + out/autoconf/index.json \ + out/automake/index.json \ + out/bash/index.json \ + out/binutils/index.json \ + out/busybox/index.json \ + out/docbook-xsl/index.json \ + out/filesystem/index.json \ + out/gcc/index.json \ + out/gettext/index.json \ + out/glib/index.json \ + out/libtool/index.json \ + out/libxml2/index.json \ + out/libxslt/index.json \ + out/m4/index.json \ + out/make/index.json \ + out/musl/index.json \ + out/perl/index.json \ + out/perl-pod-parser/index.json \ + out/perl-yaml-syck/index.json \ + out/zlib/index.json + $(call build,xmlto) + .PHONY: xorriso xorriso: out/xorriso/index.json out/xorriso/index.json: \ @@ -2491,6 +4338,15 @@ out/xz/index.json: \ out/po4a/index.json $(call build,xz) +.PHONY: yarn +yarn: out/yarn/index.json +out/yarn/index.json: \ + packages/yarn/Containerfile \ + out/busybox/index.json \ + out/filesystem/index.json \ + out/musl/index.json + $(call build,yarn) + .PHONY: yq yq: out/yq/index.json out/yq/index.json: \ @@ -2507,13 +4363,13 @@ out/zig/index.json: \ packages/zig/Containerfile \ out/binutils/index.json \ out/busybox/index.json \ - out/clang/index.json \ + out/clang16/index.json \ out/cmake/index.json \ out/filesystem/index.json \ out/gcc/index.json \ out/libzstd/index.json \ out/lld/index.json \ - out/llvm/index.json \ + out/llvm16/index.json \ out/make/index.json \ out/musl/index.json \ out/openssl/index.json \