diff --git a/srcpkgs/php8.1-apache b/srcpkgs/php8.1-apache
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-apache
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-cgi b/srcpkgs/php8.1-cgi
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-cgi
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-devel b/srcpkgs/php8.1-devel
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-devel
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-embed b/srcpkgs/php8.1-embed
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-embed
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-enchant b/srcpkgs/php8.1-enchant
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-enchant
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-ffi b/srcpkgs/php8.1-ffi
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-ffi
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-fpm b/srcpkgs/php8.1-fpm
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-fpm
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-gd b/srcpkgs/php8.1-gd
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-gd
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-intl b/srcpkgs/php8.1-intl
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-intl
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-ldap b/srcpkgs/php8.1-ldap
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-ldap
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-mysql b/srcpkgs/php8.1-mysql
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-mysql
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-odbc b/srcpkgs/php8.1-odbc
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-odbc
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-pgsql b/srcpkgs/php8.1-pgsql
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-pgsql
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-phpdbg b/srcpkgs/php8.1-phpdbg
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-phpdbg
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-snmp b/srcpkgs/php8.1-snmp
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-snmp
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-sodium b/srcpkgs/php8.1-sodium
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-sodium
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-sqlite b/srcpkgs/php8.1-sqlite
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-sqlite
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-tidy b/srcpkgs/php8.1-tidy
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-tidy
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1-xsl b/srcpkgs/php8.1-xsl
new file mode 120000
index 0000000000..4ad857cc7c
--- /dev/null
+++ b/srcpkgs/php8.1-xsl
@@ -0,0 +1 @@
+php8.1
\ No newline at end of file
diff --git a/srcpkgs/php8.1/files/apache.conf b/srcpkgs/php8.1/files/apache.conf
new file mode 100644
index 0000000000..f321ec12d3
--- /dev/null
+++ b/srcpkgs/php8.1/files/apache.conf
@@ -0,0 +1,13 @@
+# Required modules: dir_module, php8.1_module
+
+
+
+ DirectoryIndex index.php index.html
+
+ SetHandler application/x-httpd-php
+
+
+ SetHandler application/x-httpd-php-source
+
+
+
diff --git a/srcpkgs/php8.1/files/php-fpm8.1/run b/srcpkgs/php8.1/files/php-fpm8.1/run
new file mode 100755
index 0000000000..5928ea5103
--- /dev/null
+++ b/srcpkgs/php8.1/files/php-fpm8.1/run
@@ -0,0 +1,3 @@
+#!/bin/sh
+[ -r conf ] && . ./conf
+exec php-fpm8.1 --nodaemonize ${OPTS}
diff --git a/srcpkgs/php8.1/patches/php-706-crypt.patch b/srcpkgs/php8.1/patches/php-706-crypt.patch
new file mode 100644
index 0000000000..254f1d2187
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-706-crypt.patch
@@ -0,0 +1,15 @@
+--- a/ext/standard/crypt.c 2016-04-28 14:13:00.000000000 -0400
++++ b/ext/standard/crypt.c 2016-04-28 21:45:24.340955313 -0400
+@@ -267,6 +267,12 @@
+ }
+ # elif defined(HAVE_CRYPT)
+ crypt_res = crypt(password, salt);
++ if (!crypt_res || (salt[0] == '*' && salt[1] == '0')) {
++ return NULL;
++ } else {
++ result = zend_string_init(crypt_res, strlen(crypt_res), 0);
++ return result;
++ }
+ # else
+ # error No crypt() implementation
+ # endif
diff --git a/srcpkgs/php8.1/patches/php-cross-config.patch b/srcpkgs/php8.1/patches/php-cross-config.patch
new file mode 100644
index 0000000000..169c43f1df
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-cross-config.patch
@@ -0,0 +1,22 @@
+diff --git a/configure b/configure
+index e4b82d1..1a8678f 100755
+--- a/configure
++++ b/configure
+@@ -62424,7 +62424,7 @@ printf %s "checking for pg_config... " >&6; }
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ printf "%s\n" "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
+@@ -63948,7 +63948,7 @@ printf %s "checking for pg_config... " >&6; }
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ printf "%s\n" "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
diff --git a/srcpkgs/php8.1/patches/php-fpm.patch b/srcpkgs/php8.1/patches/php-fpm.patch
new file mode 100644
index 0000000000..5e55e179f8
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-fpm.patch
@@ -0,0 +1,13 @@
+--- a/sapi/fpm/Makefile.frag 2017-04-15 23:58:56.965737425 +0200
++++ b/sapi/fpm/Makefile.frag 2017-04-16 00:00:57.814831649 +0200
+@@ -15,8 +15,8 @@ install-fpm: $(SAPI_FPM_PATH)
+ else \
+ echo "Installing PHP FPM defconfig: $(INSTALL_ROOT)$(sysconfdir)/" && \
+ $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d; \
+- $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default; \
+- $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf.default; \
++ $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf; \
++ $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf; \
+ fi
+
+ @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/"
diff --git a/srcpkgs/php8.1/patches/php-ltmain-sysroot-support.patch b/srcpkgs/php8.1/patches/php-ltmain-sysroot-support.patch
new file mode 100644
index 0000000000..bbe0a514a9
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-ltmain-sysroot-support.patch
@@ -0,0 +1,39 @@
+--- a/build/ltmain.sh 2021-09-09 15:19:14.822208365 +0200
++++ b/build/ltmain.sh 2021-09-09 15:47:55.397011151 +0200
+@@ -2375,6 +2375,13 @@ EOF
+ *) . ./$lib ;;
+ esac
+
++ newdependency_libs=
++ for deplib in $dependency_libs; do
++ deplib=$(echo "$deplib" | sed "s#^=\(.*\)#$(${CC} --print-sysroot)\1#")
++ newdependency_libs="$newdependency_libs $deplib"
++ done
++ dependency_libs=${newdependency_libs}
++
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+@@ -5750,6 +5757,13 @@ fi\
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ esac
++
++ newdependency_libs=
++ for deplib in $dependency_libs; do
++ deplib=$(echo "$deplib" | sed "s#^$(${CC} --print-sysroot)#=#")
++ newdependency_libs="$newdependency_libs $deplib"
++ done
++
+ $echo > $output "\
+ # $outputname - a libtool library file
+ # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+@@ -5767,7 +5781,7 @@ library_names='$library_names'
+ old_library='$old_library'
+
+ # Libraries that this one depends upon.
+-dependency_libs='$dependency_libs'
++dependency_libs='$newdependency_libs'
+
+ # Version information for $libname.
+ current=$current
diff --git a/srcpkgs/php8.1/patches/php-pear-cross.patch b/srcpkgs/php8.1/patches/php-pear-cross.patch
new file mode 100644
index 0000000000..f9191a50a0
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-pear-cross.patch
@@ -0,0 +1,23 @@
+--- a/pear/Makefile.frag 2020-03-17 11:40:21.000000000 +0100
++++ b/pear/Makefile.frag 2020-04-12 22:29:31.846943414 +0200
+@@ -8,9 +8,10 @@ FETCH = `which fetch 2>/dev/null`
+ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
++PEAR_PHP ?= $(top_builddir)/sapi/cli/php
+
+ install-pear-installer: $(SAPI_CLI_PATH)
+- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++ @$(PEAR_PHP) $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+
+ install-pear:
+ @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
+@@ -23,7 +24,7 @@ install-pear:
+ elif test ! -z "$(FETCH)" && test -x "$(FETCH)"; then \
+ "$(FETCH)" -o $(builddir)/ "${PEAR_INSTALLER_URL}"; \
+ else \
+- $(top_builddir)/sapi/cli/php -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
++ $(PEAR_PHP) -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
+ fi \
+ fi \
+ fi
diff --git a/srcpkgs/php8.1/patches/php-phar-cross.patch b/srcpkgs/php8.1/patches/php-phar-cross.patch
new file mode 100644
index 0000000000..1e4e627ec6
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-phar-cross.patch
@@ -0,0 +1,29 @@
+--- a/ext/phar/Makefile.frag 2020-04-13 12:18:23.998801926 +0200
++++ b/ext/phar/Makefile.frag 2020-04-13 12:20:58.031795293 +0200
+@@ -8,12 +8,14 @@ $(srcdir)/phar_path_check.c: $(srcdir)/p
+
+ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+
++PHAR_PHP ?= $(top_builddir)/$(SAPI_CLI_PATH)
++PHAR_PHP_MODULES ?= $(top_builddir)/modules
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
+ PHP_PHARCMD_EXECUTABLE = ` \
+- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
++ if test -x "$(PHAR_PHP)"; then \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP) -n"; \
+ if test "x$(PHP_MODULES)" != "x"; then \
+- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
++ $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(PHAR_PHP_MODULES)"; \
+ for i in bz2 zlib phar; do \
+ if test -f "$(top_builddir)/modules/$$i.la"; then \
+ . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+@@ -21,7 +23,7 @@ PHP_PHARCMD_EXECUTABLE = ` \
+ done; \
+ fi; \
+ else \
+- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP)"; \
+ fi;`
+ PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
diff --git a/srcpkgs/php8.1/patches/php-phpize-sysroot-support.patch b/srcpkgs/php8.1/patches/php-phpize-sysroot-support.patch
new file mode 100644
index 0000000000..76cff3f816
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php-phpize-sysroot-support.patch
@@ -0,0 +1,28 @@
+--- a/scripts/phpize.m4 2020-03-17 11:40:21.000000000 +0100
++++ b/scripts/phpize.m4 2020-04-15 12:27:36.400466387 +0200
+@@ -44,6 +44,12 @@ PHP_ARG_WITH([libdir],
+ [lib],
+ [no])
+
++PHP_ARG_WITH([sysroot],,
++ [AS_HELP_STRING([--with-sysroot=NAME],
++ [System sysroot])],
++ [no],
++ [no])
++
+ PHP_RUNPATH_SWITCH
+ PHP_SHLIB_SUFFIX_NAMES
+
+@@ -58,7 +64,11 @@ dnl For BC.
+ PHP_CONFIG=$PHP_PHP_CONFIG
+ prefix=`$PHP_CONFIG --prefix 2>/dev/null`
+ phpincludedir=`$PHP_CONFIG --include-dir 2>/dev/null`
+-INCLUDES=`$PHP_CONFIG --includes 2>/dev/null`
++if test "x$PHP_SYSROOT" = xno; then :
++ INCLUDES=`$PHP_CONFIG --includes 2>/dev/null`
++else
++ INCLUDES=`$PHP_CONFIG --includes 2>/dev/null | sed "s#-I#-I$PHP_SYSROOT#g"`
++fi
+ EXTENSION_DIR=`$PHP_CONFIG --extension-dir 2>/dev/null`
+ PHP_EXECUTABLE=`$PHP_CONFIG --php-binary 2>/dev/null`
+
diff --git a/srcpkgs/php8.1/patches/php.ini.patch b/srcpkgs/php8.1/patches/php.ini.patch
new file mode 100644
index 0000000000..186898f63f
--- /dev/null
+++ b/srcpkgs/php8.1/patches/php.ini.patch
@@ -0,0 +1,24 @@
+diff --git a/php.ini-production b/php.ini-production
+index b39a960..68f14a6 100644
+--- a/php.ini-production
++++ b/php.ini-production
+@@ -737,7 +737,7 @@ default_charset = "UTF-8"
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++include_path = ".:/usr/share/pear"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+@@ -760,9 +760,7 @@ user_dir =
+
+ ; Directory in which the loadable extensions (modules) reside.
+ ; https://php.net/extension-dir
+-;extension_dir = "./"
+-; On windows:
+-;extension_dir = "ext"
++extension_dir = "/usr/lib/php8.1/modules/"
+
+ ; Directory where the temporary files should be placed.
+ ; Defaults to the system default (see sys_get_temp_dir)
diff --git a/srcpkgs/php8.1/template b/srcpkgs/php8.1/template
new file mode 100644
index 0000000000..16da7be3f3
--- /dev/null
+++ b/srcpkgs/php8.1/template
@@ -0,0 +1,337 @@
+# Template file for 'php8.1'
+pkgname=php8.1
+version=8.1.5
+revision=1
+_php_version=8.1
+wrksrc="php-${version}"
+hostmakedepends="bison pkg-config apache-devel curl"
+makedepends="apache-devel enchant2-devel freetds-devel freetype-devel gdbm-devel
+ gmp-devel libcurl-devel libjpeg-turbo-devel libmariadbclient-devel
+ libsodium-devel libtidy5-devel libxslt-devel libzip-devel net-snmp-devel
+ postgresql-libs-devel readline-devel sqlite-devel unixodbc-devel pcre2-devel
+ libffi-devel oniguruma-devel gd-devel"
+short_desc="HTML-embedded scripting language"
+maintainer="Joel Beckmeyer "
+license="PHP-3.01"
+homepage="https://www.php.net"
+distfiles="https://www.php.net/distributions/php-${version}.tar.gz"
+checksum=44d637627746082395d5d3d3d6ae7d71e780b82a8d55a0228887158c4316bf11
+
+fetch_cmd="curl -O"
+
+conf_files="/etc/php${_php_version}/php.ini"
+
+lib32disabled=yes
+
+if [ -n "$CROSS_BUILD" ]; then
+ # phar needs php to build
+ hostmakedepends+=" php${_php_version}"
+ CFLAGS+=" -DHAVE_LIBDL
+ -DHAVE_DLOPEN
+ -DHAVE_DLSYM
+ -DHAVE_SHM_IPC
+ -DHAVE_SHM_MMAP_ANON
+ -DHAVE_SHM_MMAP_ZERO
+ -DHAVE_SHM_MMAP_POSIX
+ -DHAVE_SHM_MMAP_FILE"
+fi
+
+do_build() {
+ local _phpconfig="--srcdir=.. \
+ --config-cache \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --sysconfdir=/etc/php${_php_version} \
+ --localstatedir=/var \
+ --with-layout=GNU \
+ --with-config-file-path=/etc/php${_php_version} \
+ --with-config-file-scan-dir=/etc/php${_php_version}/conf.d \
+ --disable-rpath \
+ --mandir=/usr/share/man \
+ --libdir=/usr/lib/php${_php_version} \
+ --datarootdir=/usr/share/php${_php_version} \
+ --datadir=/usr/share/php${_php_version} \
+ --program-suffix=${_php_version} \
+ --includedir=/usr/include/php${_php_version} \
+ "
+
+ local _phpextensions="--enable-bcmath=shared \
+ --enable-calendar=shared \
+ --enable-exif=shared \
+ --enable-ftp=shared \
+ --enable-intl=shared \
+ --enable-mbstring \
+ --enable-opcache \
+ --enable-pcntl \
+ --enable-phar=shared \
+ --enable-posix=shared \
+ --enable-shmop=shared \
+ --enable-soap=shared \
+ --enable-sockets=shared \
+ --enable-sysvmsg=shared \
+ --enable-sysvsem=shared \
+ --enable-sysvshm=shared \
+ --enable-mysqlnd \
+ --enable-gd=shared \
+ --with-external-gd \
+ --with-ffi=shared \
+ --with-bz2=shared,$XBPS_CROSS_BASE/usr/ \
+ --with-curl=shared \
+ --with-db4=$XBPS_CROSS_BASE/usr \
+ --with-enchant=shared,$XBPS_CROSS_BASE/usr \
+ --with-gdbm=$XBPS_CROSS_BASE/usr \
+ --with-gettext=shared \
+ --with-gmp=shared \
+ --with-iconv=shared \
+ --with-ldap=shared,$XBPS_CROSS_BASE/usr \
+ --with-ldap-sasl \
+ --with-sodium=shared \
+ --with-mhash \
+ --with-mysql-sock=/run/mysqld/mysqld.sock \
+ --with-mysqli=shared,mysqlnd \
+ --with-openssl=shared \
+ --with-external-pcre \
+ --without-pear \
+ --with-pdo-mysql=shared,mysqlnd \
+ --with-pdo-odbc=shared,unixODBC,$XBPS_CROSS_BASE/usr \
+ --with-pdo-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-pdo-sqlite=shared,$XBPS_CROSS_BASE/usr \
+ --with-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-readline=$XBPS_CROSS_BASE/usr \
+ --with-snmp=shared,$XBPS_CROSS_BASE/usr \
+ --with-sqlite3=shared,$XBPS_CROSS_BASE/usr \
+ --with-unixODBC=shared,$XBPS_CROSS_BASE/usr \
+ --with-xsl=shared,$XBPS_CROSS_BASE/usr \
+ --with-tidy=shared,$XBPS_CROSS_BASE/usr \
+ --with-zip=shared \
+ --with-zlib \
+ ${configure_args} \
+ "
+ if [ -n "$CROSS_BUILD" ]; then
+ local _make_env="PHAR_PHP=/usr/bin/php${_php_version} PHAR_PHP_MODULES=/usr/lib/php${_php_version}/modules"
+ fi
+
+ EXTENSION_DIR="/usr/lib/php${_php_version}/modules"
+ export EXTENSION_DIR
+ PEAR_INSTALLDIR=/usr/share/pear
+ export PEAR_INSTALLDIR
+ EXTRA_LIBS="-ldl"
+ export EXTRA_LIBS
+
+ # cgi,cli,embed,fcgi,fpm
+ mkdir -p build
+ cd build
+ ln -s ${wrksrc}/configure
+ ./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
+ --enable-cgi \
+ --enable-fpm \
+ --with-fpm-user=http \
+ --with-fpm-group=http \
+ --enable-embed=shared \
+ ${_phpextensions}
+ make ${makejobs} ${_make_env}
+
+ # apache
+ # reuse the previous run; this will save us a lot of time
+ cp -a ${wrksrc}/build ${wrksrc}/build-apache
+ cd ${wrksrc}/build-apache
+ ./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
+ --with-apxs2 \
+ ${_phpextensions}
+ make ${makejobs} ${_make_env}
+}
+
+do_install() {
+ cd ${wrksrc}/build
+ local _env="INSTALL_ROOT=${DESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PHAR_PHP=/usr/bin/php${_php_version}"
+ fi
+ make ${_env} install-{modules,cli,build,headers,programs,pharcmd}
+
+ # install php.ini
+ vinstall ${wrksrc}/php.ini-production 644 "etc/php${_php_version}" php.ini
+ # remove static modules
+ rm -f "${DESTDIR}/usr/lib/php${_php_version}/modules/*.a"
+}
+
+php8.1-devel_package() {
+ short_desc+=" - development files"
+ pkg_install() {
+ vmove usr/include
+ vmove "usr/lib/php${_php_version}/build"
+ vmove "usr/bin/php-config${_php_version}"
+ vmove "usr/bin/phpize${_php_version}"
+ vmove "usr/share/man/man1/phpize${_php_version}.1"
+ vmove "usr/share/man/man1/php-config${_php_version}.1"
+ }
+}
+
+php8.1-phpdbg_package() {
+ short_desc+=" - interactive debugger"
+ depends="php${_php_version}-${version}_${revision}"
+ pkg_install() {
+ cd ${wrksrc}/build
+ make INSTALL_ROOT=${PKGDESTDIR} install-phpdbg
+ }
+}
+
+php8.1-cgi_package() {
+ short_desc+=' - CGI and FCGI SAPI'
+ depends="php${_php_version}-${version}_${revision}"
+ pkg_install() {
+ cd ${wrksrc}/build
+ make INSTALL_ROOT=${PKGDESTDIR} install-cgi
+ }
+}
+
+php8.1-apache_package() {
+ short_desc+=' - Apache SAPI'
+ depends="php${_php_version}-${version}_${revision}"
+ conf_files="/etc/apache/extra/php${_php_version}_module.conf"
+ pkg_install() {
+ vinstall ${wrksrc}/build-apache/libs/libphp.so 755 usr/libexec/httpd/modules "libphp${_php_version}.so"
+ vinstall ${FILESDIR}/apache.conf 644 etc/apache/extra "php${_php_version}_module.conf"
+ }
+}
+
+php8.1-fpm_package() {
+ short_desc+=' - FastCGI Process Manager'
+ depends="php${_php_version}-${version}_${revision}"
+ conf_files="/etc/php${_php_version}/php-fpm.conf /etc/php${_php_version}/php-fpm.d/*"
+ pkg_install() {
+ cd ${wrksrc}/build
+ make INSTALL_ROOT=${PKGDESTDIR} install-fpm
+ vsv "php-fpm${_php_version}"
+ }
+}
+
+php8.1-embed_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - Embed SAPI'
+ pkg_install() {
+ cd ${wrksrc}/build
+ make INSTALL_ROOT=${PKGDESTDIR} PHP_SAPI=embed install-sapi
+ mv ${PKGDESTDIR}/usr/lib/libphp.so ${PKGDESTDIR}/usr/lib/libphp${_php_version}.so
+ }
+}
+
+php8.1-enchant_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - enchant module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/enchant.so"
+ }
+}
+
+php8.1-gd_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - gd module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/gd.so"
+ }
+}
+
+php8.1-intl_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - Internationalization module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/intl.so"
+ }
+}
+
+php8.1-ldap_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - LDAP module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/ldap.so"
+ }
+}
+
+php8.1-mysql_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - MySQL modules'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/*mysql*.so"
+ }
+}
+
+php8.1-odbc_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - ODBC modules'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/*odbc.so"
+ }
+}
+
+php8.1-pgsql_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - PostgreSQL modules'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/*pgsql.so"
+ }
+}
+
+php8.1-snmp_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - snmp module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/snmp.so"
+ }
+}
+
+php8.1-sqlite_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - sqlite module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/*sqlite*.so"
+ }
+}
+
+php8.1-tidy_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - tidy HTML module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/*tidy*.so"
+ }
+}
+
+php8.1-xsl_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - XSL module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/xsl.so"
+ }
+}
+
+php8.1-sodium_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - sodium module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/sodium.so"
+ }
+}
+
+php8.1-ffi_package() {
+ lib32disabled=yes
+ depends="php${_php_version}-${version}_${revision}"
+ short_desc+=' - FFI module'
+ pkg_install() {
+ vmove "usr/lib/php${_php_version}/modules/ffi.so"
+ }
+}
diff --git a/srcpkgs/php8.1/update b/srcpkgs/php8.1/update
new file mode 100644
index 0000000000..0c2792ec96
--- /dev/null
+++ b/srcpkgs/php8.1/update
@@ -0,0 +1,2 @@
+pkgname=php
+ignore="8.[2-9].*"