Merge remote-tracking branch 'upstream/staging' into packages/pcsc

This commit is contained in:
shane 2024-09-02 17:14:05 -10:00
commit 2187304d7d
No known key found for this signature in database
GPG key ID: D9DF703B83B9A9B5
290 changed files with 12578 additions and 1298 deletions

View file

@ -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

1
.taplo.toml Normal file
View file

@ -0,0 +1 @@
include = ["MAINTAINERS", ".taplo.toml"]

View file

@ -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"

View file

@ -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:

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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 */

View file

@ -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/. /

View file

@ -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);

View file

@ -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,

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/./ /

View file

@ -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/. /

View file

@ -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"]

View file

@ -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/. /

View file

@ -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 <<EOF
set -eux
./configure \
--build=x86_64-linux-musl \
--host=x86_64-linux-musl \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--enable-shared
make -j "$(nproc)"
EOF
FROM build AS install
RUN --network=none make DESTDIR=/rootfs install
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -23,7 +23,7 @@ COPY --from=stagex/gcc . /
COPY --from=stagex/openssl . /
COPY --from=stagex/perl . /
RUN tar -xf ca-certificates-${SRC_2_VERSION}.tar.gz
WORKDIR ca-certificates-${SRC_2_VERSION}
WORKDIR /ca-certificates-${SRC_2_VERSION}
ADD *.patch .
RUN --network=none <<-EOF
set -eux
@ -33,7 +33,7 @@ RUN --network=none <<-EOF
make
EOF
FROM build as install
FROM build AS install
RUN --network=none make install DESTDIR=/rootfs
RUN --network=none mv cert.pem /rootfs/etc/ssl/certs/ca-certificates.crt

View file

@ -1,13 +1,13 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=1.5.5
ENV SRC_HASH=194708f75fe369d45dd7c15e8b3e8a7db8b49cfc5557574ca2a2e76ef12ca0ca
ENV SRC_FILE=ccid-${VERSION}.tar.bz2
ENV SRC_SITE=https://ccid.apdu.fr/files/${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/m4 . /
COPY --from=stagex/musl . /
@ -21,7 +21,7 @@ COPY --from=stagex/pkgconf . /
COPY --from=stagex/libusb . /
COPY --from=stagex/zlib . /
RUN tar -xvf $SRC_FILE
WORKDIR ccid-${VERSION}
WORKDIR /ccid-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
@ -34,8 +34,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/. /

View file

@ -1,14 +1,15 @@
FROM scratch as base
ENV VERSION=16.0.6
ENV SRC_HASH=ce5e71081d17ce9e86d7cbcfa28c4b04b9300f8fb7e78422b1feb6bc52c3028e
FROM scratch AS base
ENV VERSION=18.1.8
ENV SRC_HASH=0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a
ENV SRC_FILE=llvm-project-${VERSION}.src.tar.xz
ENV SRC_SITE=https://github.com/llvm/llvm-project/releases/download/llvm-org-${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/linux-headers . /
COPY --from=stagex/binutils . /
COPY --from=stagex/cmake . /
COPY --from=stagex/ninja . /
@ -17,32 +18,39 @@ COPY --from=stagex/gcc . /
COPY --from=stagex/python . /
COPY --from=stagex/py-setuptools . /
COPY --from=stagex/openssl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/git . /
COPY --from=stagex/llvm . /
COPY --from=stagex/zlib . /
COPY --from=stagex/ninja . /
COPY --from=stagex/libxml2 . /
COPY --from=stagex/samurai . /
RUN tar -xf ${SRC_FILE}
WORKDIR llvm-project-${VERSION}.src
WORKDIR /llvm-project-${VERSION}.src
RUN --network=none <<-EOF
set -eux
cmake \
-S clang \
-B build \
-G Ninja \
-Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
-DCMAKE_INSTALL_RPATH=/usr/ \
-DCLANG_BUILT_STANDALONE=ON \
-DCLANG_LINK_CLANG_DYLIB=ON \
-DCLANG_PLUGIN_SUPPORT=ON \
-DCLANG_VENDOR=stagex \
-DLIBCLANG_BUILD_STATIC=ON
cmake --build build
-S clang \
-B build \
-G Ninja \
-Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
-DCLANG_BUILT_STANDALONE=ON \
-DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang16 \
-DCLANG_ENABLE_ARCMT=ON \
-DCMAKE_INSTALL_RPATH=/usr/ \
-DCLANG_LINK_CLANG_DYLIB=ON \
-DCLANG_PLUGIN_SUPPORT=ON \
-DCLANG_VENDOR=stagex \
-DENABLE_LINKER_BUILD_ID=ON \
-DLIBCLANG_BUILD_STATIC=ON
ninja -C build clang-tblgen
ninja -C 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/. /

View file

@ -0,0 +1,48 @@
FROM scratch AS base
ENV VERSION=16.0.6
ENV SRC_HASH=ce5e71081d17ce9e86d7cbcfa28c4b04b9300f8fb7e78422b1feb6bc52c3028e
ENV SRC_FILE=llvm-project-${VERSION}.src.tar.xz
ENV SRC_SITE=https://github.com/llvm/llvm-project/releases/download/llvm-org-${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/cmake . /
COPY --from=stagex/ninja . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/python . /
COPY --from=stagex/py-setuptools . /
COPY --from=stagex/openssl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/llvm16 . /
COPY --from=stagex/zlib . /
RUN tar -xf ${SRC_FILE}
WORKDIR /llvm-project-${VERSION}.src
RUN --network=none <<-EOF
set -eux
cmake \
-S clang \
-B build \
-G Ninja \
-Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
-DCMAKE_INSTALL_RPATH=/usr/ \
-DCLANG_BUILT_STANDALONE=ON \
-DCLANG_LINK_CLANG_DYLIB=ON \
-DCLANG_PLUGIN_SUPPORT=ON \
-DCLANG_VENDOR=stagex \
-DLIBCLANG_BUILD_STATIC=ON
cmake --build build
EOF
FROM build AS install
RUN --network=none DESTDIR="/rootfs" cmake --install build
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -1,13 +1,13 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=3.27.8
ENV SRC_HASH=fece24563f697870fbb982ea8bf17482c9d5f855d8c9bf0b82463d76c9e8d0cc
ENV SRC_FILE=cmake-${VERSION}.tar.gz
ENV SRC_SITE=https://cmake.org/files/v3.27/${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/ninja . /
@ -18,7 +18,7 @@ COPY --from=stagex/gcc . /
COPY --from=stagex/zlib . /
COPY --from=stagex/openssl . /
RUN tar -xf ${SRC_FILE}
WORKDIR cmake-${VERSION}
WORKDIR /cmake-${VERSION}
RUN --network=none <<-EOF
set -eux
./bootstrap \
@ -33,8 +33,8 @@ RUN --network=none <<-EOF
ninja
EOF
FROM build as install
FROM build AS install
RUN --network=none DESTDIR=/rootfs bin/cmake -P cmake_install.cmake
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,55 @@
FROM scratch AS base
ENV VERSION=1.7.20
ENV COMMIT=8fc6bcff51318944179630522a095cc9dbf9f353
ENV SRC_FILE=v${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/containerd/containerd/archive/${SRC_FILE}
ENV SRC_HASH=c4268561e514a2e8322bc8cdd39113d5e164fb31c2cef76f479d683395ea9bd6
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 /containerd-${VERSION}
ENV GO11MODULE=on
RUN <<-EOF
set -eux
make \
SHIM_CGO_ENABLED=1 \
VERSION=${VERSION} \
REVISION=${COMMIT} \
BUILDMODE=pie \
EXTRA_LDFLAGS="-s -w -buildid=" \
-j "$(nproc)"
make man
EOF
FROM build AS install
RUN <<-EOF
set -eux
rm ./bin/gen-manpages
install -d /rootfs/usr/bin/
install -Dsm755 ./bin/* /rootfs/usr/bin/
install -d /rootfs/usr/share/man/man5/
install -Dm644 ./man/*.5 /rootfs/usr/share/man/man5/
install -d /rootfs/usr/share/man/man8/
install -Dm644 ./man/*.8 /rootfs/usr/share/man/man8/
install -d /rootfs/etc/containerd/
/rootfs/usr/bin/containerd config default \
| sed "s|/opt/cni/bin|/usr/libexec/cni|g" \
> /rootfs/etc/containerd/config.toml
EOF
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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<size_t>(st.st_size);
- }
-# else // other unix or linux 32 bits or cygwin
struct stat st;
if (::fstat(fd, &st) == 0)
{
return static_cast<size_t>(st.st_size);
}
-# endif
#endif
throw_spdlog_ex("Failed getting file size from fd", errno);
return 0; // will not be reached.

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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 <<EOF
set -eux
./configure

View file

@ -0,0 +1,36 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=2.6.2
ENV SRC_HASH=d4cf38d26e21a56654ffe4acd9cd5481164619626802328506a2869afab29ab3
ENV SRC_FILE=expat-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/libexpat/libexpat/releases/download/R_2_6_2/${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 /expat-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--mandir=/usr/share/man \
--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/. /

View file

@ -1,14 +1,14 @@
FROM scratch as base
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=5.45
ENV SRC_HASH=28c01a5ef1a127ef71758222ca019ba6c6bfa4a8fe20c2b525ce75943ee9da3c
ENV SRC_FILE=FILE5_45.tar.gz
ENV SRC_SITE=https://github.com/file/file/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/binutils . /
COPY --from=stagex/musl . /
@ -20,7 +20,7 @@ COPY --from=stagex/libtool . /
COPY --from=stagex/m4 . /
COPY --from=stagex/gcc . /
RUN tar -xf ${SRC_FILE}
WORKDIR file-FILE5_45/
WORKDIR /file-FILE5_45/
RUN --network=none <<-EOF
set -eux
autoreconf -fvi
@ -32,8 +32,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/. /

View file

@ -1,6 +1,6 @@
FROM scratch as build
FROM scratch AS build
COPY --from=stagex/stage3 . /
WORKDIR rootfs
WORKDIR /rootfs
RUN <<-EOF
install -d -m0750 root
install -d -m0755 etc
@ -8,7 +8,7 @@ RUN <<-EOF
install -d -m1777 tmp
install -d -m1777 var/tmp
install -d -m1777 var/spool/mail
install -o 1000:1000 -d -m0755 home/user
install -o 1000 -g 1000 -d -m0755 home/user
ln -sT usr/lib lib64
ln -sT usr/lib lib
ln -sT usr/bin bin
@ -104,7 +104,7 @@ COPY --chmod=644 <<-EOF etc/os-release
BUG_REPORT_URL="https://codeberg.org/stagex/stagex/issues"
EOF
FROM scratch as package
FROM scratch AS package
COPY --from=build /rootfs/. /
USER 1000:1000
ENTRYPOINT ["/bin/sh"]

View file

@ -1,21 +1,21 @@
FROM scratch as base
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=4.9.0
ENV SRC_HASH=a2bfb8c09d436770edc59f50fa483e785b161a3b7b9d547573cb08065fd462fe
ENV SRC_FILE=findutils-${VERSION}.tar.xz
ENV SRC_SITE=https://ftp.gnu.org/gnu/findutils/${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 findutils-${VERSION}
WORKDIR /findutils-${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/. /

View file

@ -1,10 +1,10 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=d1e6f12568cb23387144a4b7a6535fe1bc1e79b1
ENV SRC_HASH=a68cdb4a2e312f96862119a6d829ac900b53d0cbc80caa5632efd43b5b7eed6c
ENV SRC_FILE=${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/osresearch/flashtools/archive/${SRC_FILE}
FROM base as fetch
FROM base AS fetch
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/make . /
@ -12,12 +12,12 @@ COPY --from=stagex/binutils . /
COPY --from=stagex/gcc . /
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
RUN tar -xvf ${SRC_FILE}
WORKDIR flashtools-${VERSION}
WORKDIR /flashtools-${VERSION}
FROM fetch as build
FROM fetch AS build
RUN --network=none make all
from build as install
FROM build AS install
RUN <<-EOF
mkdir -p /rootfs/usr/bin/
install -D -m 0755 flashtool /rootfs/usr/bin/
@ -27,5 +27,5 @@ RUN <<-EOF
install -D -m 0755 uefi /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,13 +1,13 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=2.6.4
ENV SRC_HASH=e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995
ENV SRC_FILE=flex-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/westes/flex/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/perl . /
COPY --from=stagex/gcc . /
@ -21,7 +21,7 @@ COPY --from=stagex/bison . /
COPY --from=stagex/gettext . /
COPY --from=stagex/musl . /
RUN tar -xzf ${SRC_FILE}
WORKDIR flex-${VERSION}
WORKDIR /flex-${VERSION}
RUN --network=none <<-EOF
set -eux
./autogen.sh
@ -35,8 +35,8 @@ RUN --network=none <<-EOF
make -j "$(nproc)" LDFLAGS=-static
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/. /

View file

@ -0,0 +1,45 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=10.2.1
ENV SRC_HASH=1250e4cc58bf06ee631567523f48848dc4596133e163f02615c97f78bab6c811
ENV SRC_FILE=${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/fmtlib/fmt/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/openssl . /
COPY --from=stagex/postgresql . /
COPY --from=stagex/cmake . /
COPY --from=stagex/samurai . /
COPY --from=stagex/python . /
COPY --from=stagex/doxygen . /
RUN tar -xf ${SRC_FILE}
WORKDIR /fmt-${VERSION}
COPY *.patch .
RUN --network=none <<-EOF
set -eux
patch -p1 fix-handling-of-static-separator.patch
# Build in-tree so the prebuilt docs get installed correctly.
# See https://github.com/fmtlib/fmt/issues/2837
cmake -B . -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
cmake --build .
EOF
FROM build AS install
RUN DESTDIR=/rootfs cmake --install .
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,31 @@
From 44c3fe1ebb466ab5c296e1a1a6991c7c7b51b72e Mon Sep 17 00:00:00 2001
From: Victor Zverovich <viz@meta.com>
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 <typename Char> 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<std::locale>();
// We cannot use the num_put<char> 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<facet>(locale).put(out, value, specs);
return facet(locale).put(out, value, specs);
#endif
- return false;
}
} // namespace detail

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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/. /

View file

@ -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 <<EOF
set -eux
./configure \

View file

@ -1,18 +1,18 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=2.0.3
ENV SRC_HASH=7ca3a04bb4ab83387538235decc42a535097a05d2fb9f2266d0c47b33119501f
ENV SRC_FILE=v${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/cpuguy83/go-md2man/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/go . /
COPY --from=stagex/ca-certificates . /
RUN tar -xvf ${SRC_FILE}
WORKDIR go-md2man-${VERSION}
WORKDIR /go-md2man-${VERSION}
ENV PWD=/home/user/go-md2man-${VERSION}
ENV GOPATH=${PWD}/cache/go
ENV GOCACHE=${PWD}/cache/
@ -25,11 +25,11 @@ ENV GOHOSTARCH=amd64
RUN mkdir -p ${GOPATH}
RUN go build -o bin/go-md2man
from build as install
FROM build AS install
RUN <<-EOF
mkdir -p /rootfs/usr/bin/
cp bin/go-md2man /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=1.22.3
ENV SRC_HASH=80648ef34f903193d72a59c0dff019f5f98ae0c9aa13ade0b0ecbff991a76f68
ENV SRC_FILE=go${VERSION}.src.tar.gz
@ -16,13 +16,13 @@ ENV SRC_HASH_BOOTSTRAP_1=f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f
ENV SRC_FILE_BOOTSTRAP_1=go${VERSION_BOOTSTRAP_1}.tar.gz
ENV SRC_SITE_BOOTSTRAP_1=https://dl.google.com/go/${SRC_FILE_BOOTSTRAP_1}
FROM base as fetch
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH_BOOTSTRAP_1} ${SRC_SITE_BOOTSTRAP_1} .
ADD --checksum=sha256:${SRC_HASH_BOOTSTRAP_2} ${SRC_SITE_BOOTSTRAP_2} .
ADD --checksum=sha256:${SRC_HASH_BOOTSTRAP_3} ${SRC_SITE_BOOTSTRAP_3} .
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/bash . /
@ -39,7 +39,7 @@ RUN <<-EOF
tar -xzf go${VERSION}.src.tar.gz; \
mv go go-src
EOF
WORKDIR go-bootstrap-1-src
WORKDIR /go-bootstrap-1-src
ENV GOOS=linux
ENV CGO_ENABLED=0
ENV GOROOT_FINAL=/go-bootstrap-1
@ -54,7 +54,7 @@ RUN --network=none <<-EOF
mkdir -p ${DEST}
cp -R bin lib pkg src ${DEST}
EOF
WORKDIR ../go-bootstrap-2-src
WORKDIR /go-bootstrap-2-src
ENV GO11MODULE=off
ENV GOROOT_BOOTSTRAP=/go-bootstrap-1
ENV GOROOT_FINAL=/go-bootstrap-2
@ -69,7 +69,7 @@ RUN --network=none <<-EOF
mkdir -p ${DEST}
cp -R bin lib pkg src ${DEST}
EOF
WORKDIR ../go-bootstrap-3-src
WORKDIR /go-bootstrap-3-src
ENV GO11MODULE=off
ENV GOROOT_BOOTSTRAP=/go-bootstrap-2
ENV GOROOT_FINAL=/go-bootstrap-3
@ -84,7 +84,7 @@ RUN --network=none <<-EOF
mkdir -p ${DEST}
cp -R bin lib pkg src ${DEST}
EOF
WORKDIR ../go-src
WORKDIR /go-src
ENV GOPROXY=off
ENV GOTOOLCHAIN=local
ENV GOFLAGS=-mod=vendor
@ -99,7 +99,7 @@ RUN --network=none <<-EOF
bash make.bash
EOF
FROM build as install
FROM build AS install
RUN <<-EOF
set -eux
mkdir -p /rootfs/usr
@ -107,7 +107,7 @@ RUN <<-EOF
cp -R bin lib /rootfs/usr
EOF
FROM base as test
FROM base AS test
COPY --from=install /rootfs/. /
COPY <<-EOF test.go
package main
@ -120,5 +120,5 @@ RUN <<-EOF
./test | grep "Success"
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -16,7 +16,7 @@ COPY --from=stagex/make . /
COPY --from=stagex/gcc . /
RUN --network=none tar -xf ${SRC_FILE}
WORKDIR gperf-${VERSION}
WORKDIR /gperf-${VERSION}
RUN --network=none <<EOF
set -eux
./configure

View file

@ -1,13 +1,13 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=2.4.4
ENV SRC_HASH=67ebe016ca90fa7688ce67a387ebd82c6261e95897db7b23df24ff335be85bc6
ENV SRC_FILE=gnupg-${VERSION}.tar.bz2
ENV SRC_SITE=https://gnupg.org/ftp/gcrypt/gnupg/${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/musl . /
COPY --from=stagex/gcc . /
@ -19,7 +19,7 @@ COPY --from=stagex/libgpg-error . /
COPY --from=stagex/libassuan . /
COPY --from=stagex/libgcrypt . /
RUN tar -xvf $SRC_FILE
WORKDIR gnupg-${VERSION}
WORKDIR /gnupg-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
@ -32,10 +32,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/. /

View file

@ -1,21 +1,21 @@
FROM scratch as base
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=3.11
ENV SRC_HASH=1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab
ENV SRC_FILE=grep-${VERSION}.tar.xz
ENV SRC_SITE=https://mirrors.kernel.org/gnu/grep/${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 grep-${VERSION}
WORKDIR /grep-${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/. /

View file

@ -0,0 +1,38 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.23.0
ENV SRC_HASH=6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13
ENV SRC_FILE=groff-${VERSION}.tar.gz
ENV SRC_SITE=https://ftp.gnu.org/gnu/groff/${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/m4 . /
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 /groff-${VERSION}
ENV SOURCE_DATE_EPOCH=1
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--without-x \
--disable-rpath
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/. /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=1.8.9
ENV SRC_HASH=962fe7d3da7653519d2975e130244af9286db32041b0745613aebf89949a9009
ENV SRC_FILE=v${VERSION}.tar.gz
@ -12,25 +12,25 @@ ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
ENV GOLDFLAGS="-w -extldflags \"-static\" -X \"main.version=${VERSION}\""
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 grpcurl-${VERSION}
WORKDIR /grpcurl-${VERSION}
ENV GOPATH="/grpcurl-${VERSION}"
RUN go get ./...
FROM fetch as build
FROM fetch AS build
RUN --network=none go build -trimpath -v ./cmd/grpcurl
from build as install
FROM build AS install
RUN <<-EOF
set -eu
mkdir -p /rootfs/usr/bin/
cp grpcurl /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,13 +1,13 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=2.12
ENV SRC_HASH=b30919fa5be280417c17ac561bb1650f60cfb80cc6237fa1e2b6f56154cb9c91
ENV SRC_FILE=grub-${VERSION}.tar.gz
ENV SRC_SITE=https://mirrors.kernel.org/gnu/grub/${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/bison . /
COPY --from=stagex/flex . /
@ -26,7 +26,7 @@ COPY --from=stagex/gettext . /
COPY --from=stagex/xz . /
COPY --from=stagex/linux-headers . /
RUN tar -xf ${SRC_FILE}
WORKDIR grub-${VERSION}
WORKDIR /grub-${VERSION}
RUN --network=none <<-EOF
set -eux
sh autogen.sh
@ -64,7 +64,7 @@ RUN --network=none <<-EOF
make
EOF
FROM build as install
FROM build AS install
RUN <<-EOF
cd build-pc
make DESTDIR=/rootfs install-strip
@ -73,5 +73,5 @@ RUN <<-EOF
make DESTDIR=/rootfs install-strip
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -1,21 +1,21 @@
FROM scratch as base
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.13
ENV SRC_HASH=7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057
ENV SRC_FILE=gzip-${VERSION}.tar.xz
ENV SRC_SITE=https://ftp.gnu.org/gnu/gzip/${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 gzip-${VERSION}
WORKDIR /gzip-${VERSION}
ENV FORCE_UNSAFE_CONFIGURE=1
RUN --network=none <<-EOF
set -ex
@ -29,8 +29,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/. /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=3.14.3
ENV SRC_HASH=e0d46f69954002d27eaac3bd6543ee4f486cdd3795c5aac921e7f02791df8d8e
ENV SRC_FILE=v${VERSION}.tar.gz
@ -13,24 +13,24 @@ 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 helm-${VERSION}
WORKDIR /helm-${VERSION}
RUN go get ./...
FROM fetch as build
FROM fetch AS build
RUN --network=none go build -v -trimpath ./cmd/helm
from build as install
FROM build AS install
RUN <<-EOF
set -eu
mkdir -p /rootfs/usr/bin/
cp helm /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -0,0 +1,39 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.7.2
ENV SRC_HASH=11ddfa39afe28c28539fe65fc4f1592d410c1e9b6dd7d8a91ca25d85e9ec65b8
ENV SRC_FILE=hunspell-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/hunspell/hunspell/releases/download/v${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/bash . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/openssl . /
RUN tar -xf ${SRC_FILE}
WORKDIR /hunspell-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--with-ui \
--with-readline \
--disable-static \
--without-included-gettext
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/. /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=74.2
ENV SRC_HASH=68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c
@ -8,13 +8,13 @@ ENV SRC_DATA_BIN_L_HASH=2acdb1b982228040963d183b2dd9d321252c613e0f4db213d4bbc104
ENV SRC_FILE=icu4c-74_2-src.tgz
ENV SRC_SITE=https://github.com/unicode-org/icu/releases/download/release-74-2
FROM base as fetch
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/${SRC_FILE} .
ADD --checksum=sha256:${SRC_DATA_HASH} ${SRC_SITE}/icu4c-74_2-data.zip .
ADD --checksum=sha256:${SRC_DATA_BIN_B_HASH} ${SRC_SITE}/icu4c-74_2-data-bin-b.zip .
ADD --checksum=sha256:${SRC_DATA_BIN_L_HASH} ${SRC_SITE}/icu4c-74_2-data-bin-l.zip .
FROM fetch as build
FROM fetch AS build
COPY --from=stagex/bash . /
COPY --from=stagex/binutils . /
COPY --from=stagex/busybox . /
@ -22,7 +22,7 @@ COPY --from=stagex/make . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
RUN tar -xzf ${SRC_FILE}
WORKDIR icu/source
WORKDIR /icu/source
RUN --network=none <<-EOF
./configure \
--build=${ARCH}-linux-musl \
@ -36,7 +36,7 @@ RUN --network=none <<-EOF
make -j "$(nproc)"
EOF
FROM build as install
FROM build AS install
RUN --network=none <<-EOF
make DESTDIR=/rootfs install
install -D -m644 /icu4c-74_2-data.zip /rootfs/usr/share/icu/74.2/
@ -44,5 +44,5 @@ RUN --network=none <<-EOF
install -D -m644 /icu4c-74_2-data-bin-l.zip /rootfs/usr/share/icu/74.2/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs /

View file

@ -0,0 +1,51 @@
FROM scratch AS base
ENV VERSION=1.8.10
ENV SRC_FILE=iptables-${VERSION}.tar.xz
ENV SRC_SITE=https://netfilter.org/projects/iptables/files/${SRC_FILE}
ENV SRC_HASH=5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c
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/libtool . /
COPY --from=stagex/pkgconf . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/m4 . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/libnftnl . /
COPY --from=stagex/libmnl . /
RUN tar -xf ${SRC_FILE}
WORKDIR /iptables-${VERSION}
RUN --network=none <<-EOF
set -eux
/usr/bin/autoreconf -vif
./configure \
--build=x86_64-linux-musl \
--host=x86_64-linux-musl \
--prefix=/usr \
--mandir=/usr/share/man \
--sysconfdir=/etc \
--sbindir=/usr/sbin \
--without-kernel \
--enable-devel \
--enable-libipq \
--enable-shared
make -j "$(nproc)"
EOF
FROM build AS install
RUN <<-EOF
set -eux
make install DESTDIR=/rootfs
EOF
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -20,7 +20,7 @@ COPY --from=stagex/libxslt . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/ninja . /
RUN tar -xzf ${SRC_FILE}
WORKDIR iputils-${VERSION}
WORKDIR /iputils-${VERSION}
RUN --network=none <<-EOF
set -eux;
./configure

View file

@ -1,21 +1,21 @@
FROM scratch as base
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.7.1
ENV SRC_HASH=478c9ca129fd2e3443fe27314b455e211e0d8c60bc8ff7df703873deeee580c2
ENV SRC_FILE=jq-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/jqlang/jq/releases/download/jq-${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 . /
COPY --from=stagex/make . /
COPY --from=stagex/gcc . /
RUN tar -xf ${SRC_FILE}
WORKDIR jq-${VERSION}
WORKDIR /jq-${VERSION}
RUN --network=none <<-EOF
set -ex
./configure \
@ -29,11 +29,11 @@ RUN --network=none <<-EOF
make -j "$(nproc)"
EOF
FROM build as install
FROM build AS install
RUN --network=none <<-EOF
set -eu
make DESTDIR="/rootfs" install
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -1,13 +1,13 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=0.17
ENV SRC_HASH=7550914d58fb63b2c3546f3ccfbe11f1c094147bd31a69dcd23714d7956159e6
ENV SRC_FILE=json-c-${VERSION}.tar.gz
ENV SRC_SITE=https://s3.amazonaws.com/json-c_releases/releases/${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 . /
@ -19,7 +19,7 @@ COPY --from=stagex/gcc . /
COPY --from=stagex/zlib . /
RUN tar -xf ${SRC_FILE}
WORKDIR json-c-${VERSION}
WORKDIR /json-c-${VERSION}
RUN <<-EOF
set -eux
cmake \
@ -35,8 +35,8 @@ RUN <<-EOF
cmake --build build --target all
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/. /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=0.32.3
ENV SRC_HASH=1b22781ff5f1f5ab0f8c831fe68609411627406198b7de71ac5ea80b7100700e
ENV SRC_FILE=v${VERSION}.tar.gz
@ -13,24 +13,24 @@ ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
ENV GO11MODULE=off
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 k9s-${VERSION}
WORKDIR /k9s-${VERSION}
RUN go get ./...
FROM fetch as build
FROM fetch AS build
RUN --network=none go build -trimpath -o k9s -v main.go
from build as install
FROM build AS install
RUN <<-EOF
set -eu
mkdir -p /rootfs/usr/bin/
cp k9s /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -10,13 +10,13 @@ COPY --from=stagex/rust . /
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/llvm . /
COPY --from=stagex/llvm16 . /
COPY --from=stagex/libunwind . /
COPY --from=stagex/openssl . /
COPY --from=stagex/zlib . /
COPY --from=stagex/ca-certificates . /
RUN tar xf ${SRC_FILE}
WORKDIR keyfork
WORKDIR /keyfork
ADD <<-EOF /.cargo/config.toml
[registries.distrust]
index = "https://git.distrust.co/public/_cargo-index.git"
@ -24,7 +24,7 @@ ADD <<-EOF /.cargo/config.toml
RUN cargo fetch
FROM fetch AS build
COPY --from=stagex/clang . /
COPY --from=stagex/clang16 . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/gmp . /
COPY --from=stagex/nettle . /

View file

@ -0,0 +1,63 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.21.2
ENV SRC_HASH=9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491
ENV SRC_FILE=krb5-${VERSION}.tar.gz
ENV SRC_SITE=https://kerberos.org/dist/krb5/1.21/${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/curl . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/util-linux . /
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/e2fsprogs . /
COPY --from=stagex/python . /
COPY --from=stagex/openldap . /
COPY --from=stagex/openssl . /
COPY --from=stagex/groff . /
COPY --from=stagex/libevent . /
COPY --from=stagex/bison . /
COPY --from=stagex/libtool . /
COPY --from=stagex/libverto . /
COPY --from=stagex/pkgconf . /
RUN tar -xf $SRC_FILE
WORKDIR /krb5-${VERSION}/src
RUN --network=none <<-EOF
set -eux
./configure \
CPPFLAGS="-fPIC -I/usr/include/et" \
WARN_CFLAGS= \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--localstatedir=/var/lib \
--enable-shared \
--disable-nls \
--disable-static \
--disable-rpath \
--with-system-et \
--with-system-ss \
--with-system-verto \
--without-tcl \
--with-ldap
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/. /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=0.2.0
ENV SRC_HASH=80690d0d702b997aeb1ae6d6a7dc8ea8800d64c7307c004209387947bbd33aa2
ENV SRC_FILE=v${VERSION}.tar.gz
@ -13,28 +13,28 @@ ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
ENV GO11MODULE=off
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 ksops-dry-run-${VERSION}
WORKDIR /ksops-dry-run-${VERSION}
RUN go get ./...
FROM fetch as build
FROM fetch AS build
RUN --network=none \
go build \
-v \
-trimpath \
-ldflags "-s -w -X main.version=${VERSION} -buildid="
from build as install
FROM build AS install
RUN <<-EOF
set -eux
mkdir -p /rootfs/usr/lib/kustomize/plugins/viduct.ai/v1/ksops
cp ksops-dry-run /rootfs/usr/lib/kustomize/plugins/viduct.ai/v1/ksops/ksops
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=0.6.4
ENV SRC_HASH=fa5f1f7de0d6cd97106b70965c6275cc5e7afb22ff6e2459a94f8f33341b5c93
ENV SRC_FILE=v${VERSION}.tar.gz
@ -13,24 +13,24 @@ ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
ENV GO11MODULE=off
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 kubeconform-${VERSION}
WORKDIR /kubeconform-${VERSION}
RUN go get ./...
FROM fetch as build
FROM fetch AS build
RUN --network=none go build -o bin/ -trimpath -v ./...
from build as install
FROM build AS install
RUN <<-EOF
set -eu
mkdir -p /rootfs/usr/bin/
cp bin/kubeconform /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=1.29.3
ENV SRC_HASH=401d29af71cb962eb328cefd5166695587f195f9bd960edd1ede630f7e98bf7a
ENV SRC_FILE=v${VERSION}.tar.gz
@ -12,24 +12,24 @@ ENV CGO_ENABLED=0
ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
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 kubernetes-${VERSION}
WORKDIR /kubernetes-${VERSION}
RUN GOPATH="/kubernetes-${VERSION}" go mod download
FROM fetch as build
FROM fetch AS build
RUN --network=none go build -trimpath -v k8s.io/kubernetes/cmd/kubectl
from build as install
FROM build AS install
RUN <<-EOF
set -eu
mkdir -p /rootfs/usr/bin/
cp kubectl /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=4.3.1
ENV SRC_HASH=e7248a158d503a73d9f658cc9ac0ccf16a3d8efb856d93ca50a97f7b89332516
ENV SRC_FILE=v${VERSION}.tar.gz
@ -13,24 +13,24 @@ ENV GOHOSTOS=linux
ENV GOHOSTARCH=amd64
ENV GO11MODULE=off
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 kustomize-sops-${VERSION}
WORKDIR /kustomize-sops-${VERSION}
RUN go get ./...
FROM fetch as build
FROM fetch AS build
RUN --network=none go build -trimpath -v
from build as install
FROM build AS install
RUN <<-EOF
set -eu
mkdir -p /rootfs/usr/lib/kustomize/plugins/viduct.ai/v1/ksops
cp kustomize-sops /rootfs/usr/lib/kustomize/plugins/viduct.ai/v1/ksops/ksops
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -1,4 +1,4 @@
FROM scratch as base
FROM scratch AS base
ENV VERSION=3.3.1
ENV SRC_HASH=04e7b957e764ba7d32ae182d0b290e75c8785c18ab922ae6ac7087de103fd8de
ENV SRC_FILE=v${VERSION}.tar.gz
@ -13,24 +13,24 @@ 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 kustomize-${VERSION}/kustomize
WORKDIR /kustomize-${VERSION}/kustomize
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
set -eu
mkdir -p /rootfs/usr/bin/
cp kustomize /rootfs/usr/bin/
EOF
FROM stagex/filesystem as package
FROM stagex/filesystem AS package
COPY --from=install /rootfs/./ /

View file

@ -0,0 +1,33 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=0.3.113
ENV SRC_HASH=716c7059703247344eb066b54ecbc3ca2134f0103307192e6c2b7dab5f9528ab
ENV SRC_FILE=libaio-libaio-${VERSION}.tar.gz
ENV SRC_SITE=https://pagure.io/libaio/archive/libaio-${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/bash . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/linux-headers . /
RUN tar -xf ${SRC_FILE}
WORKDIR /libaio-libaio-${VERSION}
COPY *.patch .
RUN --network=none <<-EOF
set -eux
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/. /

Some files were not shown because too many files have changed in this diff Show more