Merge branch 'anton/php' into staging

This commit is contained in:
Lance R. Vick 2024-08-18 15:09:28 -07:00
commit 490b923244
No known key found for this signature in database
GPG key ID: 8E47A1EC35A1551D
60 changed files with 3335 additions and 26 deletions

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,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.4
ENV SRC_HASH=fc648de983f3a2a6c9e78dea1f180639bd2fad6c06d556d4367a701fe5c35577
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

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

@ -0,0 +1,42 @@
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/lib \
-DBUILD_SHARED_LIBS=OFF
cmake --build build
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr/lib \
-DBUILD_SHARED_LIBS=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

@ -9,6 +9,7 @@ ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
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,28 +18,35 @@ 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
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

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

@ -25,11 +25,11 @@ RUN cargo fetch --locked
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

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

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

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

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

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

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

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

View file

@ -0,0 +1,44 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=20230828-3.1
ENV SRC_HASH=4ee8182b6e569290e7d1f44f0f78dac8716b35f656b76528f699c69c98814dad
ENV SRC_FILE=libedit-${VERSION}.tar.gz
ENV SRC_SITE=https://www.thrysoee.dk/editline/${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/ncurses . /
COPY --from=stagex/gawk . /
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 . /
RUN tar -xf $SRC_FILE
WORKDIR libedit-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var
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,42 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=2.1.12
ENV SRC_HASH=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
ENV SRC_FILE=libevent-${VERSION}-stable.tar.gz
ENV SRC_SITE=https://github.com/libevent/libevent/releases/download/release-${VERSION}-stable/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/bash . /
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/openssl . /
RUN tar -xf $SRC_FILE
WORKDIR libevent-${VERSION}-stable
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--sysconfdir=/etc
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,43 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=5.1.4
ENV SRC_HASH=bdf344c5adbcc6797940f8f8cb75cb59f5a3794eb21b9547751a11782a792ef7
ENV SRC_FILE=nuspell-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/nuspell/nuspell/archive/refs/tags/v${VERSION}.tar.gz
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/cmake . /
COPY --from=stagex/ninja . /
COPY --from=stagex/samurai . /
COPY --from=stagex/musl . /
COPY --from=stagex/openssl . /
COPY --from=stagex/icu . /
COPY --from=stagex/make . /
COPY --from=stagex/gcc . /
RUN tar -xf v${VERSION}.tar.gz
WORKDIR nuspell-${VERSION}
RUN --network=none <<-EOF
set -ex
CXXFLAGS="$CXXFLAGS -flto=auto" \
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
-DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
-DBUILD_DOCS=OFF
cmake --build build
EOF
FROM build AS install
RUN --network=none 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,37 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.17
ENV SRC_HASH=8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313
ENV SRC_FILE=libiconv-${VERSION}.tar.gz
ENV SRC_SITE=https://ftp.gnu.org/gnu/libiconv/${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 libiconv-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--enable-openssl \
--disable-openssl-runtime
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,35 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.0.20
ENV SRC_HASH=ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19
ENV SRC_FILE=libsodium-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/jedisct1/libsodium/releases/download/${VERSION}-RELEASE/libsodium-${VERSION}.tar.gz
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 tar -xf ${SRC_FILE}
WORKDIR libsodium-${VERSION}
RUN --network=none <<-EOF
set -ex
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/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,63 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=0.3.2
ENV SRC_HASH=8d1756fd704f147549f606cd987050fb94b0b1ff621ea6aa4d6bf0b74450468a
ENV SRC_FILE=libverto-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/latchset/libverto/releases/download/0.3.2/${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/libtool . /
COPY --from=stagex/openssl . /
COPY --from=stagex/groff . /
COPY --from=stagex/busybox . /
COPY --from=stagex/perl . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/libedit . /
COPY --from=stagex/python . /
COPY --from=stagex/libevent . /
COPY --from=stagex/pkgconf . /
RUN tar -xf $SRC_FILE
WORKDIR libverto-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--localstatedir=/var/lib \
--with-libdev \
--with-libevent
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
RUN mv /rootfs/usr/lib/libverto-libevent.so.* /rootfs/usr/lib/
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,56 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.6.1
ENV SRC_HASH=f8923c740159052d719dbfc2a2f81942d68dd34fcaf61c706a02c9b80feeef8e
ENV SRC_FILE=Linux-PAM-${VERSION}.tar.xz
ENV SRC_SITE=https://github.com/linux-pam/linux-pam/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/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/bison . /
COPY --from=stagex/cmake . /
COPY --from=stagex/perl . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/utmps . /
COPY --from=stagex/libtool . /
COPY --from=stagex/gettext . /
COPY --from=stagex/flex . /
COPY --from=stagex/pkgconf . /
RUN tar -xf ${SRC_FILE}
WORKDIR Linux-PAM-${VERSION}
RUN --network=none <<-EOF
set -eux
export CFLAGS="-flto=auto $(pkg-config --cflags utmps)"
export LDFLAGS=$(pkg-config --libs utmps)
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--libdir=/usr/lib \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
--disable-nls \
--disable-db \
--disable-examples \
--sbindir=/usr/sbin \
--enable-securedir=/usr/lib/security
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

@ -26,15 +26,15 @@ COPY --from=stagex/gcc /usr/lib64/* /usr/lib/
RUN tar -xf ${SRC_FILE}
WORKDIR llvm-project-${VERSION}.src
RUN set -eux; \
cmake \
-S lld \
-B build \
-G Ninja \
-Wno-dev \
cmake \
-S lld \
-B build \
-G Ninja \
-Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
-DCMAKE_INSTALL_RPATH=/usr/ \
-DLLVM_ENABLE_ZLIB=FORCE_ON; \
-DLLVM_ENABLE_ZLIB=FORCE_ON; \
cmake --build build
FROM build AS install

View file

@ -0,0 +1,34 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=0.9.31
ENV SRC_HASH=f7aecdd1bcc69fb32bb33d8544cfe50f8e9e916f366d598a268e1f43ee9c7603
ENV SRC_FILE=openldap-LMDB_${VERSION}.tar.gz
ENV SRC_SITE=https://git.openldap.org/openldap/openldap/-/archive/LMDB_${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 openldap-LMDB_${VERSION}/libraries/liblmdb
COPY *.patch .
RUN --network=none <<-EOF
set -eux \
patch -p1 lmdb-make.patch
export CFLAGS="-O2 -fPIC"
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,83 @@
diff --git a/Makefile b/Makefile
index f254511..949d9ae 100644
--- a/Makefile
+++ b/Makefile
@@ -26,6 +26,10 @@ OPT = -O2 -g
CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS)
LDLIBS =
SOLIBS =
+SOVER_MAJ = 0
+SOVER_MIN = 0
+SOVER_PATCH = 0
+SOVERSION = $(SOVER_MAJ).$(SOVER_MIN).$(SOVER_PATCH)
SOEXT = .so
prefix = /usr/local
exec_prefix = $(prefix)
@@ -38,7 +42,7 @@ mandir = $(datarootdir)/man
########################################################################
IHDRS = lmdb.h
-ILIBS = liblmdb.a liblmdb$(SOEXT)
+ILIBS = liblmdb$(SOEXT) liblmdb$(SOEXT).$(SOVERSION) liblmdb$(SOEXT).$(SOVER_MAJ)
IPROGS = mdb_stat mdb_copy mdb_dump mdb_load
IDOCS = mdb_stat.1 mdb_copy.1 mdb_dump.1 mdb_load.1
PROGS = $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5
@@ -49,13 +53,13 @@ install: $(ILIBS) $(IPROGS) $(IHDRS)
mkdir -p $(DESTDIR)$(libdir)
mkdir -p $(DESTDIR)$(includedir)
mkdir -p $(DESTDIR)$(mandir)/man1
- for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done
- for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done
- for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done
- for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done
+ for f in $(IPROGS); do cp -a $$f $(DESTDIR)$(bindir); done
+ for f in $(ILIBS); do cp -a $$f $(DESTDIR)$(libdir); done
+ for f in $(IHDRS); do cp -a $$f $(DESTDIR)$(includedir); done
+ for f in $(IDOCS); do cp -a $$f $(DESTDIR)$(mandir)/man1; done
clean:
- rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb
+ rm -rf $(PROGS) *.[ao] *.[ls]o* *~ testdb
test: all
rm -rf testdb && mkdir testdb
@@ -64,21 +68,25 @@ test: all
liblmdb.a: mdb.o midl.o
$(AR) rs $@ mdb.o midl.o
-liblmdb$(SOEXT): mdb.lo midl.lo
+liblmdb$(SOEXT) liblmdb$(SOEXT).$(SOVER_MAJ): liblmdb$(SOEXT).$(SOVERSION)
+ rm -f $@
+ ln -s $< $@
+
+liblmdb$(SOEXT).$(SOVERSION): mdb.lo midl.lo
# $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
- $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS)
-
-mdb_stat: mdb_stat.o liblmdb.a
-mdb_copy: mdb_copy.o liblmdb.a
-mdb_dump: mdb_dump.o liblmdb.a
-mdb_load: mdb_load.o liblmdb.a
-mtest: mtest.o liblmdb.a
-mtest2: mtest2.o liblmdb.a
-mtest3: mtest3.o liblmdb.a
-mtest4: mtest4.o liblmdb.a
-mtest5: mtest5.o liblmdb.a
-mtest6: mtest6.o liblmdb.a
-mplay: mplay.o liblmdb.a
+ $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,liblmdb$(SOEXT).$(SOVER_MAJ) -o $@ mdb.lo midl.lo $(SOLIBS)
+
+mdb_stat: mdb_stat.o liblmdb.so
+mdb_copy: mdb_copy.o liblmdb.so
+mdb_dump: mdb_dump.o liblmdb.so
+mdb_load: mdb_load.o liblmdb.so
+mtest: mtest.o liblmdb.so
+mtest2: mtest2.o liblmdb.so
+mtest3: mtest3.o liblmdb.so
+mtest4: mtest4.o liblmdb.so
+mtest5: mtest5.o liblmdb.so
+mtest6: mtest6.o liblmdb.so
+mplay: mplay.o liblmdb.so
mdb.o: mdb.c lmdb.h midl.h
$(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c

View file

@ -0,0 +1,44 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=5.1.4
ENV SRC_HASH=bdf344c5adbcc6797940f8f8cb75cb59f5a3794eb21b9547751a11782a792ef7
ENV SRC_FILE=nuspell-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/nuspell/nuspell/archive/refs/tags/v${VERSION}.tar.gz
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/cmake . /
COPY --from=stagex/ninja . /
COPY --from=stagex/samurai . /
COPY --from=stagex/musl . /
COPY --from=stagex/openssl . /
COPY --from=stagex/icu . /
COPY --from=stagex/make . /
COPY --from=stagex/m4 . /
COPY --from=stagex/gcc . /
RUN tar -xf v${VERSION}.tar.gz
WORKDIR nuspell-${VERSION}
RUN --network=none <<-EOF
set -ex
CXXFLAGS="$CXXFLAGS -flto=auto" \
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
-DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
-DBUILD_DOCS=OFF
cmake --build build
EOF
FROM build AS install
RUN --network=none 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,58 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=2.5.17
ENV SRC_HASH=d706a34b348ae38a9e3e4eb0d2cd5afeb939f2b2db95e6ae3d410d6a75e90e3c
ENV SRC_FILE=openldap-${VERSION}.tgz
ENV SRC_SITE=https://www.openldap.org/software/download/OpenLDAP/openldap-release/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/perl . /
COPY --from=stagex/bash . /
COPY --from=stagex/m4 . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/libtool . /
COPY --from=stagex/unixodbc . /
COPY --from=stagex/libedit . /
COPY --from=stagex/libevent . /
COPY --from=stagex/openssl . /
COPY --from=stagex/argon2 . /
COPY --from=stagex/groff . /
RUN tar -xf $SRC_FILE
WORKDIR openldap-${VERSION}
ENV SOURCE_DATE_EPOCH=1
RUN --network=none <<-EOF
set -eux
./configure \
--enable-slapd \
--enable-modules \
--enable-dnssrv=mod \
--enable-ldap=mod \
--enable-mdb=mod \
--enable-meta=mod \
--enable-asyncmeta=mod \
--enable-null=mod \
--enable-passwd=mod \
--enable-relay=mod \
--enable-sock=mod \
--enable-sql=mod \
--enable-overlays=mod \
--enable-balancer=mod \
--enable-argon2
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,58 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=10.43
ENV SRC_HASH=f0048e26b02bdfaf43b8cec75030a9c2fe28552bf5caa693d3ccbf4d886fa930
ENV SRC_FILE=pcre2-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/PCRE2Project/pcre2/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/zlib . /
COPY --from=stagex/gawk . /
COPY --from=stagex/bzip2 . /
COPY --from=stagex/readline . /
COPY --from=stagex/libzstd . /
COPY --from=stagex/perl . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/busybox . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/libtool . /
COPY --from=stagex/m4 . /
COPY --from=stagex/libedit . /
COPY --from=stagex/ncurses . /
RUN tar -xf $SRC_FILE
WORKDIR pcre2-pcre2-${VERSION}
RUN --network=none <<-EOF
set -eux
./autogen.sh
./configure \
CFLAGS="-O3" \
--disable-shared \
--build=${ARCH}-unknown-linux-musl \
--host=${ARCH}-unknown-linux-musl \
--prefix=/usr \
--docdir=/usr/share/doc/pcre2-10.43 \
--htmldir=/usr/share/doc/pcre2-10.43/html \
--enable-pcre2-16 \
--enable-pcre2-32 \
--enable-pcre2grep-libz \
--enable-pcre2test-libedit \
# --enable-jit
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,35 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.643
ENV SRC_HASH=8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa
ENV SRC_FILE=DBI-${VERSION}.tar.gz
ENV SRC_SITE=https://cpan.metacpan.org/authors/id/T/TI/TIMB/${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/pkgconf . /
COPY --from=stagex/perl . /
COPY --from=stagex/make . /
RUN tar -xf ${SRC_FILE}
WORKDIR DBI-${VERSION}
ENV SOURCE_DATE_EPOCH=1
RUN --network=none <<-EOF
set -eux
perl Makefile.PL
PERL_MM_USE_DEFAULT="1 perl -I. Makefile.PL INSTALLDIRS=vendor"
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,34 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.34
ENV SRC_HASH=cc9156ccaebda798ebfe2f31b619e806577f860ed1704262f17ffad3c6e34159
ENV SRC_FILE=YAML-Syck-${VERSION}.tar.gz
ENV SRC_SITE=https://cpan.metacpan.org/authors/id/T/TO/TODDR/${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/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
RUN tar -xf ${SRC_FILE}
WORKDIR YAML-Syck-${VERSION}
ENV SOURCE_DATE_EPOCH=1
RUN --network=none <<-EOF
set -eux \
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
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/. /

179
packages/php/Containerfile Normal file
View file

@ -0,0 +1,179 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV PKG_NAME=php83
ENV VERSION=8.3.4
ENV SRC_HASH=4e633d4709afa5301d84d3821471bfb136f281bb71f9acca2fe9d29cc0407d2a
ENV SRC_FILE=php-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/php/php-src/archive/refs/tags/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
FROM fetch AS build
COPY --from=stagex/libunwind . /
COPY --from=stagex/acl . /
COPY --from=stagex/automake . /
COPY --from=stagex/bash . /
COPY --from=stagex/bc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/libzstd . /
COPY --from=stagex/lld . /
COPY --from=stagex/binutils . /
COPY --from=stagex/llvm . /
COPY --from=stagex/curl . /
COPY --from=stagex/clang . /
COPY --from=stagex/bison . /
COPY --from=stagex/gdbm . /
COPY --from=stagex/lmdb . /
COPY --from=stagex/pkgconf . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/make . /
COPY --from=stagex/gcc . /
COPY --from=stagex/gmp . /
COPY --from=stagex/icu . /
COPY --from=stagex/gettext . /
COPY --from=stagex/openssl . /
COPY --from=stagex/expat . /
COPY --from=stagex/libxml2 . /
COPY --from=stagex/re2c . /
COPY --from=stagex/musl . /
COPY --from=stagex/perl . /
COPY --from=stagex/m4 . /
COPY --from=stagex/zlib . /
COPY --from=stagex/lzip . /
COPY --from=stagex/pcre2 . /
COPY --from=stagex/bzip2 . /
COPY --from=stagex/python . /
COPY --from=stagex/libedit . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/sqlite3 . /
RUN tar -xf php-${VERSION}.tar.gz
WORKDIR php-src-php-${VERSION}
COPY *.patch .
RUN --network=none <<-EOF
set -eux
export CFLAGS="-O2"
export CXXFLAGS="-O2"
patch -p1 fix-lfs64-2.patch
patch -p1 fix-tests-devserver.patch
patch -p1 includedir.patch
patch -p1 install-pear.patch
patch -p1 php83-fpm-verison-suffix.patch
patch -p1 phpinfo-avif.patch
patch -p1 sharedir.patch
export CC=clang-18
export CXX=clang++-18
./buildconf --force
EXTENSION_DIR=/usr/lib/modules ./configure \
--build=x86_64-linux-musl \
--host=x86_64-linux-musl \
--prefix=/usr \
--program-suffix=php83#php \
--libdir=/usr/lib \
--datadir=/usr/share/php83 \
--sysconfdir=/etc/php83 \
--localstatedir=/var \
--with-layout=GNU \
--with-pic \
--with-config-file-path=/etc/php83 \
--with-config-file-scan-dir=/etc/php83/conf.d \
--disable-rpath \
--disable-short-tags \
\
--disable-all \
--enable-bcmath=shared \
--with-bz2=shared \
--enable-calendar=shared \
--enable-ctype=shared \
--with-curl=shared \
# --enable-dba=shared \
# --with-dbmaker=shared \
# --with-gdbm \
# --with-lmdb \
# --enable-dom=shared \
# --with-enchant=shared \
# --enable-exif=shared \
# --with-ffi=shared \
# --enable-fileinfo=shared \
# --enable-ftp=shared \
# --enable-gd=shared \
# --with-avif \
# --with-freetype \
# --with-jpeg \
# --with-webp \
# --with-xpm \
# --disable-gd-jis-conv \
# --with-gettext=shared \
# --with-gmp=shared \
# --with-iconv=shared \
# --with-imap=shared \
# --with-imap-ssl \
# --enable-intl=shared \
# --with-ldap=shared \
# --with-ldap-sasl \
# --with-libedit \
# --with-libxml \
# --enable-mbstring=shared \
# --with-mysqli=shared \
# --with-mysql-sock=/run/mysqld/mysqld.sock \
# --enable-mysqlnd=shared \
# --enable-opcache=shared \
# --with-openssl=shared \
# --with-kerberos \
# --with-system-ciphers \
# --with-password-argon2 \
# --enable-pcntl=shared \
# --with-external-pcre \
# #$without_pcre_jit \
# --enable-pdo=shared \
# --with-pdo-dblib=shared,/usr \
# --with-pdo-mysql=shared,mysqlnd \
# --with-pdo-odbc=shared,unixODBC,/usr \
# --with-pdo-pgsql=shared \
# --with-pdo-sqlite=shared \
# --with-pgsql=shared \
# --enable-phar=shared \
# --enable-posix=shared \
# --with-pspell=shared \
# --without-readline \
# --enable-session=shared \
# --enable-shmop=shared \
# --enable-simplexml=shared \
# --with-snmp=shared \
# --enable-soap=shared \
# --with-sodium=shared \
# --enable-sockets=shared \
# --with-sqlite3=shared \
# --enable-sysvmsg=shared \
# --enable-sysvsem=shared \
# --enable-sysvshm=shared \
# --with-tidy=shared \
# --enable-tokenizer=shared \
# --with-unixODBC=shared,/usr \
# --enable-xml=shared \
# --enable-xmlreader=shared \
# --enable-xmlwriter=shared \
# --with-xsl=shared \
# --with-zip=shared \
# --with-zlib \
# --enable-zend-test=shared \
"$@"
make -j "$(nproc)"
EOF
FROM build AS install
RUN --network=none make INSTALL_ROOT=/rootfs install
FROM build AS test
RUN /bin/sh -c 'set -eux; \
if ! make TEST_PHP_ARGS=-j$(nproc) test; then \
echo "PHP test failed"; \
exit 1; \
fi'
FROM stagex/filesystem AS package
COPY --from=stagex/busybox . /
USER root
RUN rm -rf /var/run
RUN mkdir -p /var && mkdir -p /var/run && chown -R root:root /var/run && chmod -R 755 /var/run
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,39 @@
Patch-Source: https://github.com/php/php-src/commit/577b8ae4226368e66fee7a9b5c58f9e2428372fc
From 577b8ae4226368e66fee7a9b5c58f9e2428372fc Mon Sep 17 00:00:00 2001
From: Arnaud Le Blanc <arnaud.lb@gmail.com>
Date: Mon, 8 Apr 2024 14:58:12 +0200
Subject: [PATCH] Fix cookie_seek_function_t signature under musl (#13890)
Fixes GH-11678
---
main/streams/cast.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/main/streams/cast.c b/main/streams/cast.c
index 3bad65fbac1f5..8d9f4a9d2d54b 100644
--- a/main/streams/cast.c
+++ b/main/streams/cast.c
@@ -104,6 +104,9 @@ static ssize_t stream_cookie_writer(void *cookie, const char *buffer, size_t siz
# ifdef COOKIE_SEEKER_USES_OFF64_T
static int stream_cookie_seeker(void *cookie, off64_t *position, int whence)
+# else
+static int stream_cookie_seeker(void *cookie, off_t *position, int whence)
+# endif
{
*position = php_stream_seek((php_stream *)cookie, (zend_off_t)*position, whence);
@@ -113,13 +116,6 @@ static int stream_cookie_seeker(void *cookie, off64_t *position, int whence)
}
return 0;
}
-# else
-static int stream_cookie_seeker(void *cookie, zend_off_t position, int whence)
-{
-
- return php_stream_seek((php_stream *)cookie, position, whence);
-}
-# endif
static int stream_cookie_closer(void *cookie)
{

View file

@ -0,0 +1,22 @@
From: Jakub Jirutka <jakub@jirutka.cz>
Date: Mon, 01 May 2017 01:33:00 +0200
Subject: [PATCH] Fix tests failing due to extra message from built-in web server
Remove messages like:
PHP 7.1.4 Development Server started at Mon May 1 00:42:39 2017
from test outputs, because tests do not expect them. I have no clue what
happens here...
--- a/run-tests.php
+++ b/run-tests.php
@@ -2563,6 +2563,9 @@
// Does the output match what is expected?
$output = preg_replace("/\r\n/", "\n", trim($out));
+ // Remove message from built-in development server.
+ $output = preg_replace("/^PHP [0-9.]+ Development Server started at .*\n\n?/m", "", $output);
+
/* when using CGI, strip the headers from the output */
$headers = []

View file

@ -0,0 +1,40 @@
--- a/scripts/Makefile.frag
+++ b/scripts/Makefile.frag
@@ -2,7 +2,7 @@
# Build environment install
#
-phpincludedir = $(includedir)/php
+phpincludedir = $(includedir)/php83
phpbuilddir = $(libdir)/build
BUILD_FILES = \
--- a/ext/pdo/Makefile.frag
+++ b/ext/pdo/Makefile.frag
@@ -1,4 +1,4 @@
-phpincludedir=$(prefix)/include/php
+phpincludedir=$(prefix)/include/php83
PDO_HEADER_FILES= \
php_pdo.h \
--- a/scripts/php-config.in
+++ b/scripts/php-config.in
@@ -6,7 +6,7 @@
exec_prefix="@exec_prefix@"
version="@PHP_VERSION@"
vernum="@PHP_VERSION_ID@"
-include_dir="@includedir@/php"
+include_dir="@includedir@/php83"
includes="-I$include_dir -I$include_dir/main -I$include_dir/TSRM -I$include_dir/Zend -I$include_dir/ext -I$include_dir/ext/date/lib"
ldflags="@PHP_LDFLAGS@"
libs="@EXTRA_LIBS@"
--- a/scripts/phpize.in
+++ b/scripts/phpize.in
@@ -5,7 +5,7 @@
datarootdir='@datarootdir@'
exec_prefix="`eval echo @exec_prefix@`"
phpdir="`eval echo @libdir@`/build"
-includedir="`eval echo @includedir@`/php"
+includedir="`eval echo @includedir@`/php83"
builddir="`pwd`"
SED="@SED@"

View file

@ -0,0 +1,14 @@
--- ./pear/Makefile.frag.orig 2013-04-12 07:02:27.041602514 +0000
+++ ./pear/Makefile.frag 2013-04-12 07:04:09.065836822 +0000
@@ -1,7 +1,10 @@
peardir=$(PEAR_INSTALLDIR)
+# help the built php to find xml extension so we can install pear
+PEAR_INSTALL_XML_FLAGS = -d extension="$(top_builddir)/modules/xml.so" -d extension="$(top_builddir)/modules/phar.so"
+
# Skip all php.ini files altogether
-PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0
+PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0 $(PEAR_INSTALL_XML_FLAGS)
WGET = `which wget 2>/dev/null`
FETCH = `which fetch 2>/dev/null`

View file

@ -0,0 +1,245 @@
Patch-Source: https://github.com/php/php-src/commit/0766ac6e357282eafb51cbdc5383345e7487260b
From 0766ac6e357282eafb51cbdc5383345e7487260b Mon Sep 17 00:00:00 2001
From: qiangxuhui <qiangxuhui@loongson.cn>
Date: Mon, 1 Apr 2024 07:16:47 +0000
Subject: [PATCH] loongarch64 support for fibers
Add loongarch64 assembly files from Boost, needed for fibers support,
and hook up loongarch64 fibers support during configure.
Close GH-13914
---
Zend/asm/jump_loongarch64_sysv_elf_gas.S | 121 +++++++++++++++++++++++
Zend/asm/make_loongarch64_sysv_elf_gas.S | 72 ++++++++++++++
configure.ac | 2 +
3 files changed, 195 insertions(+)
create mode 100644 Zend/asm/jump_loongarch64_sysv_elf_gas.S
create mode 100644 Zend/asm/make_loongarch64_sysv_elf_gas.S
diff --git a/Zend/asm/jump_loongarch64_sysv_elf_gas.S b/Zend/asm/jump_loongarch64_sysv_elf_gas.S
new file mode 100644
index 0000000000..74c081e07f
--- /dev/null
+++ b/Zend/asm/jump_loongarch64_sysv_elf_gas.S
@@ -0,0 +1,121 @@
+/*******************************************************
+ * *
+ * ------------------------------------------------- *
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
+ * ------------------------------------------------- *
+ * | 0 | 8 | 16 | 24 | *
+ * ------------------------------------------------- *
+ * | FS0 | FS1 | FS2 | FS3 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
+ * ------------------------------------------------- *
+ * | 32 | 40 | 48 | 56 | *
+ * ------------------------------------------------- *
+ * | FS4 | FS5 | FS6 | FS7 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
+ * ------------------------------------------------- *
+ * | 64 | 72 | 80 | 88 | *
+ * ------------------------------------------------- *
+ * | S0 | S1 | S2 | S3 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
+ * ------------------------------------------------- *
+ * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | *
+ * ------------------------------------------------- *
+ * | S4 | S5 | S6 | S7 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | *
+ * ------------------------------------------------- *
+ * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | *
+ * ------------------------------------------------- *
+ * | S8 | FP | RA | PC | *
+ * ------------------------------------------------- *
+ * *
+ * *****************************************************/
+
+.file "jump_loongarch64_sysv_elf_gas.S"
+.text
+.globl jump_fcontext
+.align 2
+.type jump_fcontext,@function
+jump_fcontext:
+ # reserve space on stack
+ addi.d $sp, $sp, -160
+
+ # save fs0 - fs7
+ fst.d $fs0, $sp, 0
+ fst.d $fs1, $sp, 8
+ fst.d $fs2, $sp, 16
+ fst.d $fs3, $sp, 24
+ fst.d $fs4, $sp, 32
+ fst.d $fs5, $sp, 40
+ fst.d $fs6, $sp, 48
+ fst.d $fs7, $sp, 56
+
+ # save s0 - s8, fp, ra
+ st.d $s0, $sp, 64
+ st.d $s1, $sp, 72
+ st.d $s2, $sp, 80
+ st.d $s3, $sp, 88
+ st.d $s4, $sp, 96
+ st.d $s5, $sp, 104
+ st.d $s6, $sp, 112
+ st.d $s7, $sp, 120
+ st.d $s8, $sp, 128
+ st.d $fp, $sp, 136
+ st.d $ra, $sp, 144
+
+ # save RA as PC
+ st.d $ra, $sp, 152
+
+ # store SP (pointing to context-data) in A2
+ move $a2, $sp
+
+ # restore SP (pointing to context-data) from A0
+ move $sp, $a0
+
+ # load fs0 - fs7
+ fld.d $fs0, $sp, 0
+ fld.d $fs1, $sp, 8
+ fld.d $fs2, $sp, 16
+ fld.d $fs3, $sp, 24
+ fld.d $fs4, $sp, 32
+ fld.d $fs5, $sp, 40
+ fld.d $fs6, $sp, 48
+ fld.d $fs7, $sp, 56
+
+ #load s0 - s7
+ ld.d $s0, $sp, 64
+ ld.d $s1, $sp, 72
+ ld.d $s2, $sp, 80
+ ld.d $s3, $sp, 88
+ ld.d $s4, $sp, 96
+ ld.d $s5, $sp, 104
+ ld.d $s6, $sp, 112
+ ld.d $s7, $sp, 120
+ ld.d $s8, $sp, 128
+ ld.d $fp, $sp, 136
+ ld.d $ra, $sp, 144
+
+ # return transfer_t from jump
+ # pass transfer_t as first arg in context function
+ # a0 == FCTX, a1 == DATA
+ move $a0, $a2
+
+ # load PC
+ ld.d $a2, $sp, 152
+
+ # restore stack
+ addi.d $sp, $sp, 160
+
+ # jump to context
+ jr $a2
+.size jump_fcontext, .-jump_fcontext
+
+/* Mark that we don't need executable stack. */
+.section .note.GNU-stack,"",%progbits
diff --git a/Zend/asm/make_loongarch64_sysv_elf_gas.S b/Zend/asm/make_loongarch64_sysv_elf_gas.S
new file mode 100644
index 0000000000..55062702f1
--- /dev/null
+++ b/Zend/asm/make_loongarch64_sysv_elf_gas.S
@@ -0,0 +1,72 @@
+/*******************************************************
+ * *
+ * ------------------------------------------------- *
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
+ * ------------------------------------------------- *
+ * | 0 | 8 | 16 | 24 | *
+ * ------------------------------------------------- *
+ * | FS0 | FS1 | FS2 | FS3 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
+ * ------------------------------------------------- *
+ * | 32 | 40 | 48 | 56 | *
+ * ------------------------------------------------- *
+ * | FS4 | FS5 | FS6 | FS7 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
+ * ------------------------------------------------- *
+ * | 64 | 72 | 80 | 88 | *
+ * ------------------------------------------------- *
+ * | S0 | S1 | S2 | S3 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
+ * ------------------------------------------------- *
+ * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | *
+ * ------------------------------------------------- *
+ * | S4 | S5 | S6 | S7 | *
+ * ------------------------------------------------- *
+ * ------------------------------------------------- *
+ * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | *
+ * ------------------------------------------------- *
+ * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | *
+ * ------------------------------------------------- *
+ * | S8 | FP | RA | PC | *
+ * ------------------------------------------------- *
+ * *
+ * *****************************************************/
+
+.file "make_loongarch64_sysv_elf_gas.S"
+.text
+.globl make_fcontext
+.align 2
+.type make_fcontext,@function
+make_fcontext:
+ # shift address in A0 to lower 16 byte boundary
+ bstrins.d $a0, $zero, 3, 0
+
+ # reserve space for context-data on context-stack
+ addi.d $a0, $a0, -160
+
+ # third arg of make_fcontext() == address of context-function
+ st.d $a2, $a0, 152
+
+ # save address of finish as return-address for context-function
+ # will be entered after context-function returns
+ la.local $a4, finish
+ st.d $a4, $a0, 144
+
+ # return pointer to context-data
+ jr $ra
+
+finish:
+ # exit code is zero
+ li.d $a0, 0
+ # call _exit(0)
+ b %plt(_exit)
+
+.size make_fcontext, .-make_fcontext
+/* Mark that we don't need executable stack. */
+.section .note.GNU-stack,"",%progbits
diff --git a/configure.ac b/configure.ac
index 2bf60c434d..da646ac69f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1253,6 +1253,7 @@ AS_CASE([$host_cpu],
[riscv64*], [fiber_cpu="riscv64"],
[sparc64], [fiber_cpu="sparc64"],
[s390x*], [fiber_cpu="s390x"],
+ [loongarch64*], [fiber_cpu="loongarch64"],
[mips64*], [fiber_cpu="mips64"],
[mips*], [fiber_cpu="mips32"],
[fiber_cpu="unknown"]
@@ -1275,6 +1276,7 @@ AS_CASE([$fiber_cpu],
[riscv64], [fiber_asm_file_prefix="riscv64_sysv"],
[sparc64], [fiber_asm_file_prefix="sparc64_sysv"],
[s390x], [fiber_asm_file_prefix="s390x_sysv"],
+ [loongarch64], [fiber_asm_file_prefix="loongarch64_sysv"],
[mips64], [fiber_asm_file_prefix="mips64_n64"],
[mips32], [fiber_asm_file_prefix="mips32_o32"],
[fiber_asm_file_prefix="unknown"]
--
2.44.0

View file

@ -0,0 +1,79 @@
--- a/sapi/fpm/fpm/fpm_conf.c
+++ b/sapi/fpm/fpm/fpm_conf.c
@@ -1262,7 +1262,7 @@
}
if (!fpm_global_config.error_log) {
- fpm_global_config.error_log = strdup("log/php-fpm.log");
+ fpm_global_config.error_log = strdup("log/php83/error.log");
}
#ifdef HAVE_SYSTEMD
@@ -1273,7 +1273,7 @@
#ifdef HAVE_SYSLOG_H
if (!fpm_global_config.syslog_ident) {
- fpm_global_config.syslog_ident = strdup("php-fpm");
+ fpm_global_config.syslog_ident = strdup("php-fpm83");
}
if (fpm_global_config.syslog_facility < 0) {
@@ -1777,7 +1777,7 @@
if (fpm_globals.prefix == NULL) {
spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR);
} else {
- spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix);
+ spprintf(&tmp, 0, "%s/etc/php83/php-fpm.conf", fpm_globals.prefix);
}
if (!tmp) {
--- a/sapi/fpm/php-fpm.conf.in
+++ b/sapi/fpm/php-fpm.conf.in
@@ -16,3 +16,3 @@
; Default Value: none
-;pid = run/php-fpm.pid
+;pid = run/php-fpm83.pid
@@ -22,4 +22,4 @@
; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
-; Default Value: log/php-fpm.log
-;error_log = log/php-fpm.log
+; Default Value: log/php83/error.log
+;error_log = log/php83/error.log
@@ -35,4 +35,4 @@
; which must suit common needs.
-; Default Value: php-fpm
-;syslog.ident = php-fpm
+; Default Value: php-fpm83
+;syslog.ident = php-fpm83
--- a/sapi/fpm/www.conf.in
+++ b/sapi/fpm/www.conf.in
@@ -273,7 +273,7 @@
; The access log file
; Default: not set
-;access.log = log/$pool.access.log
+;access.log = log/php83/$pool.access.log
; The access log format.
; The following syntax is allowed
@@ -337,7 +337,7 @@
; The log file for slow requests
; Default Value: not set
; Note: slowlog is mandatory if request_slowlog_timeout is set
-;slowlog = log/$pool.log.slow
+;slowlog = log/php83/$pool.slow.log
; The timeout for serving a single request after which a PHP backtrace will be
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
@@ -450,6 +450,6 @@
; specified at startup with the -d argument
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
-;php_admin_value[error_log] = /var/log/fpm-php.www.log
+;php_admin_value[error_log] = /var/log/php83/$pool.error.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M

View file

@ -0,0 +1,30 @@
Patch-Source: https://github.com/php/php-src/pull/7526
From d3402bfd3e9a87b1d4ce3785e393e698746c645c Mon Sep 17 00:00:00 2001
From: Andy Postnikov <apostnikov@gmail.com>
Date: Tue, 28 Sep 2021 23:35:37 +0300
Subject: [PATCH] display libavif version and codecs via phpinfo()
---
ext/gd/gd.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index 880d6dddc7d7..67349e8749bf 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -455,6 +455,15 @@
#endif
#ifdef HAVE_GD_AVIF
php_info_print_table_row(2, "AVIF Support", "enabled");
+#ifdef HAVE_GD_BUNDLED
+#include <avif/avif.h>
+ {
+ php_info_print_table_row(2, "AVIF Version", avifVersion());
+ char tmp[256];
+ avifCodecVersions(tmp);
+ php_info_print_table_row(2, "AVIF Codecs", tmp);
+ }
+#endif
#endif
#ifdef HAVE_GD_TGA
php_info_print_table_row(2, "TGA Read Support", "enabled");

View file

@ -0,0 +1,11 @@
--- a/php.ini-production
+++ b/php.ini-production
@@ -742,7 +742,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
-;include_path = ".:/php/includes"
+include_path = ".:/usr/share/php83"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

View file

@ -0,0 +1,37 @@
FROM scratch AS base
ENV VERSION=3.1
ENV SRC_HASH=087c44de0400fb15caafde09fd72edc7381e688a35ef505ee65e0e3d2fac688b
ENV SRC_FILE=${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/skvadrik/re2c/archive/refs/tags/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
FROM fetch AS build
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/binutils . /
COPY --from=stagex/busybox . /
COPY --from=stagex/libtool . /
COPY --from=stagex/perl . /
COPY --from=stagex/python . /
COPY --from=stagex/gcc . /
COPY --from=stagex/make . /
COPY --from=stagex/m4 . /
COPY --from=stagex/musl . /
RUN tar -xvf $SRC_FILE
WORKDIR re2c-${VERSION}
RUN --network=none <<-EOF
set -eux
autoreconf -i -W all
./configure \
--prefix=/usr
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,36 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.4.4
ENV SRC_HASH=8e7d1a8ccac0143c8fe9b68ebac67d485df119ea17a613f4038cda52f84ef52a
ENV SRC_FILE=v${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/rhash/RHash/archive/refs/tags/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/bash . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/openssl . /
RUN tar -xf ${SRC_FILE}
WORKDIR RHash-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--enable-openssl \
--disable-openssl-runtime
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,29 @@
From e84b6d99c85043fa1ba54851ee500540ec206918 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 2 Apr 2021 17:27:48 -0700
Subject: [PATCH] util: Check for NULL string in writefile
This check was there previously, but was removed in f549b757 with
the addition of a check during parse that every rule has rspfile
if and only if it has rspfile_content. However, this fails to
consider the possibility of those variables coming from the edge
or global environment. So, re-add the check.
Fixes #67.
---
util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util.c b/util.c
index ea5c3ce..2a59881 100644
--- a/util.c
+++ b/util.c
@@ -258,7 +258,7 @@ writefile(const char *name, struct string *s)
return -1;
}
ret = 0;
- if (fwrite(s->s, 1, s->n, f) != s->n || fflush(f) != 0) {
+ if (s && (fwrite(s->s, 1, s->n, f) != s->n || fflush(f) != 0)) {
warn("write %s:", name);
ret = -1;
}

View file

@ -0,0 +1,26 @@
From d2af3bc375e2a77139c3a28d6128c60cd8d08655 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 4 Apr 2021 03:50:09 -0700
Subject: [PATCH] parse: Check for non-empty command/rspfile/rspfile_content
This matches ninja behavior and prevents the possibility of a rule
with an empty (NULL) command string.
Fixes #68.
---
parse.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/parse.c b/parse.c
index f79a5ee..b4b98a1 100644
--- a/parse.c
+++ b/parse.c
@@ -42,6 +42,8 @@ parserule(struct scanner *s, struct environment *env)
var = scanname(s);
parselet(s, &val);
ruleaddvar(r, var, val);
+ if (!val)
+ continue;
if (strcmp(var, "command") == 0)
hascommand = true;
else if (strcmp(var, "rspfile") == 0)

View file

@ -0,0 +1,33 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.2
ENV SRC_HASH=3b8cf51548dfc49b7efe035e191ff5e1963ebc4fe8f6064a5eefc5343eaf78a5
ENV SRC_FILE=samurai-${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/michaelforney/samurai/releases/download/${VERSION}/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/pkgconf . /
RUN tar -xf ${SRC_FILE}
WORKDIR samurai-${VERSION}
COPY *.patch .
RUN --network=none <<-EOF
set -eux
patch -p1 CVE-2021-30218.patch
patch -p1 CVE-2021-30219.patch
make CFLAGS="-O2" CC=gcc -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,30 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.11.3
ENV SRC_HASH=4c5c6136540384e5455b250f768e7ca11b03fdba1a8efc2341ee0f1111e57612
ENV SRC_FILE=${VERSION}.tar.gz
ENV SRC_SITE=https://git.sr.ht/~sircmpwn/scdoc/archive/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
RUN tar -xf ${SRC_FILE}
WORKDIR scdoc-${VERSION}
RUN --network=none <<-EOF
set -eux
make PREFIX="/usr" -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,34 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=2.14.1.1
ENV SRC_HASH=b6b79b816f4ba0b6801676b0ed4179b59c8c7809eeffe26db672e404636befc3
ENV SRC_FILE=skalibs-${VERSION}.tar.gz
ENV SRC_SITE=https://skarnet.org/software/skalibs/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
RUN tar -xf ${SRC_FILE}
WORKDIR skalibs-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--enable-shared \
--enable-static \
--prefix=/usr \
--libdir=/usr/lib
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,46 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=2.3.12
ENV SRC_HASH=f210501445ce21bf607ba51ef8c125e10e22dffdffec377646462df5f01915ec
ENV SRC_FILE=unixODBC-${VERSION}.tar.gz
ENV SRC_SITE=https://www.unixodbc.org/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/perl . /
COPY --from=stagex/bash . /
COPY --from=stagex/m4 . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/automake . /
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/libtool . /
COPY --from=stagex/postgresql . /
RUN tar -xf $SRC_FILE
WORKDIR unixODBC-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-nls \
--enable-gui=no \
--enable-static
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,37 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=1.20.0
ENV SRC_HASH=0b86b262dbe971edb4ff233bc370dfad9f241d09f078a3f6d5b7f4b8ea4430db
ENV SRC_FILE=util-macros-${VERSION}.tar.xz
ENV SRC_SITE=https://www.x.org/releases/individual/util/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/bash . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/pkgconf . /
COPY --from=stagex/m4 . /
COPY --from=stagex/gawk . /
RUN tar -xf ${SRC_FILE}
WORKDIR util-macros-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,39 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=0.1.2.2
ENV SRC_HASH=f7ffa3714c65973bb95fbcf1501c06fc0478d93a51cea1b373ec6811c2425f52
ENV SRC_FILE=utmps-${VERSION}.tar.gz
ENV SRC_SITE=https://skarnet.org/software/utmps/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch as build
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/skalibs . /
RUN tar -xf ${SRC_FILE}
WORKDIR utmps-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--enable-shared \
--enable-static \
--prefix=/usr \
--disable-allstatic \
--libdir=/usr/lib \
--libexecdir=/lib/utmps \
--with-lib=/usr/lib \
--with-dynlib=/lib
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,49 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=0.0.29
ENV SRC_HASH=40504db68718385a4eaa9154a28f59e51e59d006d1aa14f5bc9d6fded1d6017a
ENV SRC_FILE=xmlto-${VERSION}.tar.gz
ENV SRC_SITE=https://www.pagure.io/xmlto/archive/${VERSION}/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/perl . /
COPY --from=stagex/glib . /
COPY --from=stagex/bash . /
COPY --from=stagex/gettext . /
COPY --from=stagex/musl . /
COPY --from=stagex/automake . /
COPY --from=stagex/autoconf . /
COPY --from=stagex/gcc . /
COPY --from=stagex/libxslt . /
COPY --from=stagex/docbook-xsl . /
COPY --from=stagex/busybox . /
COPY --from=stagex/zlib . /
COPY --from=stagex/perl-pod-parser . /
COPY --from=stagex/perl-yaml-syck . /
COPY --from=stagex/libtool . /
COPY --from=stagex/binutils . /
COPY --from=stagex/m4 . /
COPY --from=stagex/libxml2 . /
COPY --from=stagex/make . /
RUN tar -xf ${SRC_FILE}
WORKDIR xmlto-${VERSION}
RUN --network=none <<-EOF
set -eux
autoreconf -vfi
./configure \
--build=${ARCH}-linux-musl \
--host=${ARCH}-linux-musl \
--prefix=/usr \
--mandir=/usr/share/man
make -j "$(nproc)"
EOF
FROM build AS install
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -1,3 +1,34 @@
.PHONY: apr-util
apr-util: out/apr-util/index.json
out/apr-util/index.json: \
packages/apr-util/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/expat/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/gdbm/index.json \
out/make/index.json \
out/musl/index.json \
out/openldap/index.json \
out/openssl/index.json \
out/postgresql/index.json \
out/sqlite3/index.json
$(call build,apr-util)
.PHONY: libiconv
libiconv: out/libiconv/index.json
out/libiconv/index.json: \
packages/libiconv/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json
$(call build,libiconv)
.PHONY: abseil-cpp
abseil-cpp: out/abseil-cpp/index.json
@ -15,6 +46,44 @@ out/abseil-cpp/index.json: \
out/zlib/index.json
$(call build,abseil-cpp)
.PHONY: acl
acl: out/acl/index.json
out/acl/index.json: \
packages/acl/Containerfile \
out/attr/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json
$(call build,acl)
.PHONY: apr
apr: out/apr/index.json
out/apr/index.json: \
packages/apr/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/util-linux/index.json
$(call build,apr)
.PHONY: argon2
argon2: out/argon2/index.json
out/argon2/index.json: \
packages/argon2/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json
$(call build,argon2)
.PHONY: argp-standalone
argp-standalone: out/argp-standalone/index.json
out/argp-standalone/index.json: \
@ -31,6 +100,32 @@ out/argp-standalone/index.json: \
out/perl/index.json
$(call build,argp-standalone)
.PHONY: aspell
aspell: out/aspell/index.json
out/aspell/index.json: \
packages/aspell/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json
$(call build,aspell)
.PHONY: attr
attr: out/attr/index.json
out/attr/index.json: \
packages/attr/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json
$(call build,attr)
.PHONY: autoconf
autoconf: out/autoconf/index.json
out/autoconf/index.json: \
@ -167,6 +262,21 @@ out/bison/index.json: \
out/perl/index.json
$(call build,bison)
.PHONY: brotli
brotli: out/brotli/index.json
out/brotli/index.json: \
packages/brotli/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/cmake/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json \
out/samurai/index.json
$(call build,brotli)
.PHONY: buf
buf: out/buf/index.json
out/buf/index.json: \
@ -239,12 +349,16 @@ out/clang/index.json: \
out/cmake/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/git/index.json \
out/libxml2/index.json \
out/linux-headers/index.json \
out/llvm/index.json \
out/musl/index.json \
out/ninja/index.json \
out/openssl/index.json \
out/py-setuptools/index.json \
out/python/index.json \
out/samurai/index.json \
out/zlib/index.json
$(call build,clang)
@ -381,6 +495,29 @@ out/dosfstools/index.json: \
out/perl/index.json
$(call build,dosfstools)
.PHONY: doxygen
doxygen: out/doxygen/index.json
out/doxygen/index.json: \
packages/doxygen/Containerfile \
out/binutils/index.json \
out/bison/index.json \
out/busybox/index.json \
out/cmake/index.json \
out/coreutils/index.json \
out/filesystem/index.json \
out/flex/index.json \
out/gcc/index.json \
out/libxml2/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json \
out/perl/index.json \
out/pkgconf/index.json \
out/python/index.json \
out/samurai/index.json
$(call build,doxygen)
.PHONY: e2fsprogs
e2fsprogs: out/e2fsprogs/index.json
out/e2fsprogs/index.json: \
@ -471,6 +608,18 @@ out/eudev/index.json: \
out/musl/index.json
$(call build,eudev)
.PHONY: expat
expat: out/expat/index.json
out/expat/index.json: \
packages/expat/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json
$(call build,expat)
.PHONY: file
file: out/file/index.json
out/file/index.json: \
@ -538,6 +687,42 @@ out/flex/index.json: \
out/perl/index.json
$(call build,flex)
.PHONY: fmt
fmt: out/fmt/index.json
out/fmt/index.json: \
packages/fmt/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/cmake/index.json \
out/doxygen/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json \
out/postgresql/index.json \
out/python/index.json \
out/samurai/index.json
$(call build,fmt)
.PHONY: freetds
freetds: out/freetds/index.json
out/freetds/index.json: \
packages/freetds/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/libtool/index.json \
out/linux-headers/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json \
out/perl/index.json \
out/readline/index.json \
out/unixodbc/index.json
$(call build,freetds)
.PHONY: gawk
gawk: out/gawk/index.json
out/gawk/index.json: \
@ -561,6 +746,20 @@ out/gcc/index.json: \
out/stage3/index.json
$(call build,gcc)
.PHONY: gdbm
gdbm: out/gdbm/index.json
out/gdbm/index.json: \
packages/gdbm/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json
$(call build,gdbm)
.PHONY: gen_initramfs
gen_initramfs: out/gen_initramfs/index.json
out/gen_initramfs/index.json: \
@ -602,6 +801,39 @@ out/git/index.json: \
out/zlib/index.json
$(call build,git)
.PHONY: glib
glib: out/glib/index.json
out/glib/index.json: \
packages/glib/Containerfile \
out/binutils/index.json \
out/bison/index.json \
out/busybox/index.json \
out/bzip2/index.json \
out/cmake/index.json \
out/expat/index.json \
out/filesystem/index.json \
out/flex/index.json \
out/gcc/index.json \
out/gettext/index.json \
out/libffi/index.json \
out/libxml2/index.json \
out/libxslt/index.json \
out/linux-headers/index.json \
out/make/index.json \
out/meson/index.json \
out/musl/index.json \
out/ncurses/index.json \
out/ninja/index.json \
out/pcre2/index.json \
out/pkgconf/index.json \
out/py-packaging/index.json \
out/python/index.json \
out/rhash/index.json \
out/util-linux/index.json \
out/xz/index.json \
out/zlib/index.json
$(call build,glib)
.PHONY: gmp
gmp: out/gmp/index.json
out/gmp/index.json: \
@ -683,6 +915,20 @@ out/grep/index.json: \
out/musl/index.json
$(call build,grep)
.PHONY: groff
groff: out/groff/index.json
out/groff/index.json: \
packages/groff/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json
$(call build,groff)
.PHONY: grpcurl
grpcurl: out/grpcurl/index.json
out/grpcurl/index.json: \
@ -739,6 +985,20 @@ out/helm/index.json: \
out/go/index.json
$(call build,helm)
.PHONY: hunspell
hunspell: out/hunspell/index.json
out/hunspell/index.json: \
packages/hunspell/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json
$(call build,hunspell)
.PHONY: icu
icu: out/icu/index.json
out/icu/index.json: \
@ -830,6 +1090,36 @@ out/keyfork/index.json: \
out/zlib/index.json
$(call build,keyfork)
.PHONY: krb5
krb5: out/krb5/index.json
out/krb5/index.json: \
packages/krb5/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/binutils/index.json \
out/bison/index.json \
out/busybox/index.json \
out/curl/index.json \
out/e2fsprogs/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/groff/index.json \
out/libevent/index.json \
out/libtool/index.json \
out/libverto/index.json \
out/linux-headers/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/openldap/index.json \
out/openssl/index.json \
out/perl/index.json \
out/pkgconf/index.json \
out/python/index.json \
out/util-linux/index.json
$(call build,krb5)
.PHONY: ksops-dry-run
ksops-dry-run: out/ksops-dry-run/index.json
out/ksops-dry-run/index.json: \
@ -880,6 +1170,20 @@ out/kustomize-sops/index.json: \
out/go/index.json
$(call build,kustomize-sops)
.PHONY: libaio
libaio: out/libaio/index.json
out/libaio/index.json: \
packages/libaio/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/linux-headers/index.json \
out/make/index.json \
out/musl/index.json
$(call build,libaio)
.PHONY: libarchive
libarchive: out/libarchive/index.json
out/libarchive/index.json: \
@ -920,6 +1224,37 @@ out/libcap/index.json: \
out/perl/index.json
$(call build,libcap)
.PHONY: libedit
libedit: out/libedit/index.json
out/libedit/index.json: \
packages/libedit/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gawk/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/ncurses/index.json \
out/perl/index.json
$(call build,libedit)
.PHONY: libevent
libevent: out/libevent/index.json
out/libevent/index.json: \
packages/libevent/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json
$(call build,libevent)
.PHONY: libffi
libffi: out/libffi/index.json
out/libffi/index.json: \
@ -958,6 +1293,24 @@ out/libgpg-error/index.json: \
out/npth/index.json
$(call build,libgpg-error)
.PHONY: libical
libical: out/libical/index.json
out/libical/index.json: \
packages/libical/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/cmake/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/icu/index.json \
out/make/index.json \
out/musl/index.json \
out/ninja/index.json \
out/openssl/index.json \
out/perl/index.json \
out/samurai/index.json
$(call build,libical)
.PHONY: libksba
libksba: out/libksba/index.json
out/libksba/index.json: \
@ -986,6 +1339,18 @@ out/libqrencode/index.json: \
out/musl/index.json
$(call build,libqrencode)
.PHONY: libsodium
libsodium: out/libsodium/index.json
out/libsodium/index.json: \
packages/libsodium/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json
$(call build,libsodium)
.PHONY: libtool
libtool: out/libtool/index.json
out/libtool/index.json: \
@ -1027,6 +1392,35 @@ out/libusb/index.json: \
out/musl/index.json
$(call build,libusb)
.PHONY: libverto
libverto: out/libverto/index.json
out/libverto/index.json: \
packages/libverto/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/curl/index.json \
out/e2fsprogs/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/groff/index.json \
out/libedit/index.json \
out/libevent/index.json \
out/libtool/index.json \
out/linux-headers/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/openldap/index.json \
out/openssl/index.json \
out/perl/index.json \
out/pkgconf/index.json \
out/python/index.json \
out/util-linux/index.json
$(call build,libverto)
.PHONY: libxml2
libxml2: out/libxml2/index.json
out/libxml2/index.json: \
@ -1185,6 +1579,29 @@ out/linux-nitro/index.json: \
out/zlib/index.json
$(call build,linux-nitro)
.PHONY: linux-pam
linux-pam: out/linux-pam/index.json
out/linux-pam/index.json: \
packages/linux-pam/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/binutils/index.json \
out/bison/index.json \
out/busybox/index.json \
out/cmake/index.json \
out/filesystem/index.json \
out/flex/index.json \
out/gcc/index.json \
out/gettext/index.json \
out/libtool/index.json \
out/linux-headers/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json \
out/pkgconf/index.json \
out/utmps/index.json
$(call build,linux-pam)
.PHONY: lld
lld: out/lld/index.json
out/lld/index.json: \
@ -1255,6 +1672,20 @@ out/llvm16/index.json: \
out/zlib/index.json
$(call build,llvm16)
.PHONY: lmdb
lmdb: out/lmdb/index.json
out/lmdb/index.json: \
packages/lmdb/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json
$(call build,lmdb)
.PHONY: lua
lua: out/lua/index.json
out/lua/index.json: \
@ -1476,7 +1907,48 @@ out/ocismack/index.json: \
out/openssl/index.json \
out/rust/index.json \
out/zlib/index.json
$(call build,ocismack)
.PHONY: nuspell
nuspell: out/nuspell/index.json
out/nuspell/index.json: \
packages/nuspell/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/cmake/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/icu/index.json \
out/make/index.json \
out/musl/index.json \
out/ninja/index.json \
out/openssl/index.json \
out/perl/index.json \
out/samurai/index.json
$(call build,nuspell)
.PHONY: openldap
openldap: out/openldap/index.json
out/openldap/index.json: \
packages/openldap/Containerfile \
out/argon2/index.json \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/groff/index.json \
out/libedit/index.json \
out/libevent/index.json \
out/libtool/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json \
out/perl/index.json \
out/unixodbc/index.json
$(call build,openldap)
.PHONY: openpgp-card-tools
openpgp-card-tools: out/openpgp-card-tools/index.json
@ -1569,6 +2041,31 @@ out/openssl/index.json: \
out/perl/index.json
$(call build,openssl)
.PHONY: pcre2
pcre2: out/pcre2/index.json
out/pcre2/index.json: \
packages/pcre2/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/bzip2/index.json \
out/filesystem/index.json \
out/gawk/index.json \
out/gcc/index.json \
out/libedit/index.json \
out/libtool/index.json \
out/libzstd/index.json \
out/linux-headers/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/ncurses/index.json \
out/perl/index.json \
out/readline/index.json \
out/zlib/index.json
$(call build,pcre2)
.PHONY: pcsc-lite
pcsc-lite: out/pcsc-lite/index.json
out/pcsc-lite/index.json: \
@ -1615,6 +2112,21 @@ out/perl/index.json: \
out/musl/index.json
$(call build,perl)
.PHONY: perl-dbi
perl-dbi: out/perl-dbi/index.json
out/perl-dbi/index.json: \
packages/perl-dbi/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json \
out/pkgconf/index.json
$(call build,perl-dbi)
.PHONY: perl-module-build
perl-module-build: out/perl-module-build/index.json
out/perl-module-build/index.json: \
@ -1639,6 +2151,63 @@ out/perl-pod-parser/index.json: \
out/perl/index.json
$(call build,perl-pod-parser)
.PHONY: perl-yaml-syck
perl-yaml-syck: out/perl-yaml-syck/index.json
out/perl-yaml-syck/index.json: \
packages/perl-yaml-syck/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json
$(call build,perl-yaml-syck)
.PHONY: php
php: out/php/index.json
out/php/index.json: \
packages/php/Containerfile \
out/acl/index.json \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/bc/index.json \
out/binutils/index.json \
out/bison/index.json \
out/busybox/index.json \
out/bzip2/index.json \
out/clang/index.json \
out/curl/index.json \
out/expat/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/gdbm/index.json \
out/gettext/index.json \
out/gmp/index.json \
out/icu/index.json \
out/libedit/index.json \
out/libunwind/index.json \
out/libxml2/index.json \
out/libzstd/index.json \
out/linux-headers/index.json \
out/lld/index.json \
out/llvm/index.json \
out/lmdb/index.json \
out/lzip/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json \
out/pcre2/index.json \
out/perl/index.json \
out/pkgconf/index.json \
out/python/index.json \
out/re2c/index.json \
out/sqlite3/index.json \
out/zlib/index.json
$(call build,php)
.PHONY: pkgconf
pkgconf: out/pkgconf/index.json
out/pkgconf/index.json: \
@ -2232,6 +2801,24 @@ out/python/index.json: \
out/zlib/index.json
$(call build,python)
.PHONY: re2c
re2c: out/re2c/index.json
out/re2c/index.json: \
packages/re2c/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/libtool/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json \
out/python/index.json
$(call build,re2c)
.PHONY: readline
readline: out/readline/index.json
out/readline/index.json: \
@ -2261,6 +2848,20 @@ out/redis/index.json: \
out/pkgconf/index.json
$(call build,redis)
.PHONY: rhash
rhash: out/rhash/index.json
out/rhash/index.json: \
packages/rhash/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/openssl/index.json
$(call build,rhash)
.PHONY: rust
rust: out/rust/index.json
out/rust/index.json: \
@ -2284,6 +2885,31 @@ out/rust/index.json: \
out/zlib/index.json
$(call build,rust)
.PHONY: samurai
samurai: out/samurai/index.json
out/samurai/index.json: \
packages/samurai/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/pkgconf/index.json
$(call build,samurai)
.PHONY: scdoc
scdoc: out/scdoc/index.json
out/scdoc/index.json: \
packages/scdoc/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json
$(call build,scdoc)
.PHONY: sed
sed: out/sed/index.json
out/sed/index.json: \
@ -2296,6 +2922,18 @@ out/sed/index.json: \
out/musl/index.json
$(call build,sed)
.PHONY: skalibs
skalibs: out/skalibs/index.json
out/skalibs/index.json: \
packages/skalibs/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json
$(call build,skalibs)
.PHONY: sops
sops: out/sops/index.json
out/sops/index.json: \
@ -2509,6 +3147,25 @@ out/tpm2-tss/index.json: \
out/util-linux/index.json
$(call build,tpm2-tss)
.PHONY: unixodbc
unixodbc: out/unixodbc/index.json
out/unixodbc/index.json: \
packages/unixodbc/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/libtool/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json \
out/postgresql/index.json
$(call build,unixodbc)
.PHONY: util-linux
util-linux: out/util-linux/index.json
out/util-linux/index.json: \
@ -2530,6 +3187,83 @@ out/util-linux/index.json: \
out/pkgconf/index.json
$(call build,util-linux)
.PHONY: util-macros
util-macros: out/util-macros/index.json
out/util-macros/index.json: \
packages/util-macros/Containerfile \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gawk/index.json \
out/gcc/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/pkgconf/index.json
$(call build,util-macros)
.PHONY: utmps
utmps: out/utmps/index.json
out/utmps/index.json: \
packages/utmps/Containerfile \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/make/index.json \
out/musl/index.json \
out/skalibs/index.json
$(call build,utmps)
.PHONY: xmlto
xmlto: out/xmlto/index.json
out/xmlto/index.json: \
packages/xmlto/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/docbook-xsl/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/gettext/index.json \
out/glib/index.json \
out/libtool/index.json \
out/libxml2/index.json \
out/libxslt/index.json \
out/m4/index.json \
out/make/index.json \
out/musl/index.json \
out/perl/index.json \
out/perl-pod-parser/index.json \
out/perl-yaml-syck/index.json \
out/zlib/index.json
$(call build,xmlto)
.PHONY: xorgproto
xorgproto: out/xorgproto/index.json
out/xorgproto/index.json: \
packages/xorgproto/Containerfile \
out/autoconf/index.json \
out/automake/index.json \
out/bash/index.json \
out/binutils/index.json \
out/busybox/index.json \
out/filesystem/index.json \
out/gcc/index.json \
out/m4/index.json \
out/make/index.json \
out/meson/index.json \
out/musl/index.json \
out/ninja/index.json \
out/perl/index.json \
out/pkgconf/index.json \
out/util-macros/index.json \
out/zlib/index.json
$(call build,xorgproto)
.PHONY: xorriso
xorriso: out/xorriso/index.json
out/xorriso/index.json: \