2024-08-16 19:26:04 +00:00
|
|
|
FROM scratch AS base
|
|
|
|
ARG ARCH=x86_64
|
|
|
|
ENV PKG_NAME=php83
|
|
|
|
ENV VERSION=8.3.4
|
|
|
|
ENV SRC_HASH=c458cf3a9e83764055c6cf15f3348b06645ab499f424b32e33339ada954928db
|
|
|
|
ENV SRC_FILE=php-${VERSION}RC1.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 . /
|
2024-08-17 04:41:04 +00:00
|
|
|
COPY --from=stagex/curl . /
|
2024-08-16 19:26:04 +00:00
|
|
|
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}RC1.tar.gz
|
|
|
|
WORKDIR php-src-php-${VERSION}RC1
|
|
|
|
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 || { echo "buildconf failed"; cat config.log;}
|
|
|
|
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 \
|
|
|
|
\
|
2024-08-17 04:41:04 +00:00
|
|
|
--enable-bcmath=shared \
|
|
|
|
--with-bz2=shared \
|
2024-08-16 19:26:04 +00:00
|
|
|
# --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 \
|
2024-08-17 04:41:04 +00:00
|
|
|
# with-sqlite3=shared \
|
2024-08-16 19:26:04 +00:00
|
|
|
# --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 \
|
2024-08-17 04:41:04 +00:00
|
|
|
--with-zlib \
|
2024-08-16 19:26:04 +00:00
|
|
|
# --enable-zend-test=shared \
|
|
|
|
"$@"
|
|
|
|
make || { echo "Make failed"; cat config.log; }
|
|
|
|
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/. /
|
|
|
|
|