Import php8.2_8.2.7-1~deb12u1.debian.tar.xz
authorOndřej Surý <ondrej@debian.org>
Fri, 9 Jun 2023 19:37:27 +0000 (21:37 +0200)
committerOndřej Surý <ondrej@debian.org>
Fri, 9 Jun 2023 19:37:27 +0000 (21:37 +0200)
[dgit import tarball php8.2 8.2.7-1~deb12u1 php8.2_8.2.7-1~deb12u1.debian.tar.xz]

181 files changed:
PEAR-Builder-print-info-about-php-dev.patch [new file with mode: 0644]
README.Debian.security [new file with mode: 0644]
README.source [new file with mode: 0644]
changelog [new file with mode: 0644]
compat [new file with mode: 0644]
control [new file with mode: 0644]
control.in [new file with mode: 0644]
copyright [new file with mode: 0644]
gbp.conf [new file with mode: 0644]
libapache2-mod-php.apache2 [new file with mode: 0644]
libapache2-mod-php.dirs.extra [new file with mode: 0644]
libapache2-mod-php.install.extra [new file with mode: 0755]
libapache2-mod-php.postinst.extra [new file with mode: 0644]
libphp-embed.dirs.extra [new file with mode: 0644]
libphp-embed.install.extra [new file with mode: 0644]
libphp-embed.postinst.extra [new file with mode: 0644]
libphp-embed.postrm.extra [new file with mode: 0644]
libphp-embed.prerm.extra [new file with mode: 0644]
patches/0001-libtool_fixes.patch [new file with mode: 0644]
patches/0002-debian_quirks.patch [new file with mode: 0644]
patches/0003-php-5.4.9-phpinfo.patch [new file with mode: 0644]
patches/0004-extension_api.patch [new file with mode: 0644]
patches/0005-php.ini_securitynotes.patch [new file with mode: 0644]
patches/0006-php-5.4.7-libdb.patch [new file with mode: 0644]
patches/0007-Add-support-for-use-of-the-system-timezone-database.patch [new file with mode: 0644]
patches/0008-strcmp_null-OnUpdateErrorLog.patch [new file with mode: 0644]
patches/0009-qdbm-is-usr_include_qdbm.patch [new file with mode: 0644]
patches/0010-session_save_path.patch [new file with mode: 0644]
patches/0011-php-fpm-man-section-and-cleanup.patch [new file with mode: 0644]
patches/0012-fpm-config.patch [new file with mode: 0644]
patches/0013-php-fpm-sysconfdir.patch [new file with mode: 0644]
patches/0014-lp564920-fix-big-files.patch [new file with mode: 0644]
patches/0015-temporary-path-fixes-for-multiarch.patch [new file with mode: 0644]
patches/0016-hurd-noptrace.patch [new file with mode: 0644]
patches/0017-php-5.3.3-macropen.patch [new file with mode: 0644]
patches/0018-php-5.2.4-embed.patch [new file with mode: 0644]
patches/0019-php-fpm-m68k.patch [new file with mode: 0644]
patches/0020-expose_all_built_and_installed_apis.patch [new file with mode: 0644]
patches/0021-Use-system-timezone.patch [new file with mode: 0644]
patches/0022-php-fpm-do-reload-on-SIGHUP.patch [new file with mode: 0644]
patches/0023-php-5.4.8-ldap_r.patch [new file with mode: 0644]
patches/0024-php-5.4.9-fixheader.patch [new file with mode: 0644]
patches/0025-php-5.6.0-noNO.patch [new file with mode: 0644]
patches/0026-php-5.6.0-oldpcre.patch [new file with mode: 0644]
patches/0027-hack-phpdbg-to-explicitly-link-with-libedit.patch [new file with mode: 0644]
patches/0028-Remove-W3C-validation-icon-to-not-expose-the-reader-.patch [new file with mode: 0644]
patches/0029-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch [new file with mode: 0644]
patches/0030-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch [new file with mode: 0644]
patches/0031-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch [new file with mode: 0644]
patches/0032-Amend-C-11-for-intl-compilation-on-older-distributio.patch [new file with mode: 0644]
patches/0033-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch [new file with mode: 0644]
patches/0034-libtool2.2.patch [new file with mode: 0644]
patches/0035-Include-all-libtool-files-from-phpize.m4.patch [new file with mode: 0644]
patches/0036-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch [new file with mode: 0644]
patches/0037-Don-t-use-hrtimers-on-GNU-Hurd.patch [new file with mode: 0644]
patches/0038-Show-packaging-credits.patch [new file with mode: 0644]
patches/0039-Allow-printing-credits-buffer-larger-than-4k.patch [new file with mode: 0644]
patches/0040-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch [new file with mode: 0644]
patches/0041-Lower-the-OpenSSL-requirement-to-1.0.1.patch [new file with mode: 0644]
patches/0042-Fail-the-build-when-the-dtrace-call-fails.patch [new file with mode: 0644]
patches/0043-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch [new file with mode: 0644]
patches/0044-Update-gcc-func-attr-macro.patch [new file with mode: 0644]
patches/0045-scripts-php-.in-Explicitly-define-the-path-to-sed.patch [new file with mode: 0644]
patches/0046-Remove-timestamps-from-phar.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
php-cgi.apache2 [new file with mode: 0644]
php-cgi.conf [new file with mode: 0644]
php-cgi.dirs.extra [new file with mode: 0644]
php-cgi.install.extra [new file with mode: 0644]
php-cgi.postinst.extra [new file with mode: 0644]
php-cgi.prerm.extra [new file with mode: 0644]
php-cli.dirs.extra [new file with mode: 0644]
php-cli.install.extra [new file with mode: 0644]
php-cli.links [new file with mode: 0644]
php-cli.postinst.extra [new file with mode: 0644]
php-cli.prerm.extra [new file with mode: 0644]
php-common.README.Debian [new file with mode: 0644]
php-common.dirs.extra [new file with mode: 0644]
php-common.docs [new file with mode: 0644]
php-common.lintian-overrides.extra [new file with mode: 0644]
php-common.preinst.extra [new file with mode: 0644]
php-common.substvars.extra [new file with mode: 0644]
php-curl.substvars.extra [new file with mode: 0644]
php-dev.dirs [new file with mode: 0644]
php-dev.files [new file with mode: 0644]
php-dev.install [new file with mode: 0644]
php-dev.lintian-overrides [new file with mode: 0644]
php-dev.postinst [new file with mode: 0644]
php-dev.prerm [new file with mode: 0644]
php-fpm-checkconf [new file with mode: 0644]
php-fpm-reopenlogs [new file with mode: 0644]
php-fpm.apache2 [new file with mode: 0644]
php-fpm.conf [new file with mode: 0644]
php-fpm.dirs.extra [new file with mode: 0644]
php-fpm.init [new file with mode: 0644]
php-fpm.install.extra [new file with mode: 0644]
php-fpm.logrotate [new file with mode: 0644]
php-fpm.maintscript [new file with mode: 0644]
php-fpm.postinst.extra [new file with mode: 0644]
php-fpm.prerm.extra [new file with mode: 0644]
php-fpm.service [new file with mode: 0644]
php-fpm.tmpfile [new file with mode: 0644]
php-module.bug-control.in [new file with mode: 0644]
php-module.bug-script.in [new file with mode: 0755]
php-module.control.in [new file with mode: 0644]
php-module.dirs.in [new file with mode: 0644]
php-module.ini.in [new file with mode: 0644]
php-module.lintian-overrides.in [new file with mode: 0644]
php-module.postinst.in [new file with mode: 0644]
php-module.postrm.in [new file with mode: 0644]
php-module.preinst.in [new file with mode: 0644]
php-module.prerm.in [new file with mode: 0644]
php-module.substvars.in [new file with mode: 0644]
php-module.triggers.in [new file with mode: 0644]
php-phpdbg.dirs.extra [new file with mode: 0644]
php-phpdbg.install.extra [new file with mode: 0644]
php-phpdbg.postinst.extra [new file with mode: 0644]
php-phpdbg.prerm.extra [new file with mode: 0644]
php-sapi.bug-control [new file with mode: 0644]
php-sapi.bug-script [new file with mode: 0755]
php-sapi.dirs [new file with mode: 0644]
php-sapi.install [new file with mode: 0644]
php-sapi.lintian-overrides [new file with mode: 0644]
php-sapi.postinst [new file with mode: 0644]
php-sapi.postrm [new file with mode: 0644]
php-sapi.prerm [new file with mode: 0644]
php-sapi.triggers [new file with mode: 0644]
php-snmp.substvars.extra [new file with mode: 0644]
php-xml.postinst.extra [new file with mode: 0644]
php-xml.substvars.extra [new file with mode: 0644]
php.bug-control [new file with mode: 0644]
php.conf [new file with mode: 0644]
php.load [new file with mode: 0644]
phpapi [new file with mode: 0644]
phpdbg.1 [new file with mode: 0644]
prepare-files [new file with mode: 0644]
rules [new file with mode: 0755]
rules.d/ext-bcmath.mk [new file with mode: 0644]
rules.d/ext-bz2.mk [new file with mode: 0644]
rules.d/ext-common.mk [new file with mode: 0644]
rules.d/ext-curl.mk [new file with mode: 0644]
rules.d/ext-dba.mk [new file with mode: 0644]
rules.d/ext-enchant.mk [new file with mode: 0644]
rules.d/ext-gd.mk [new file with mode: 0644]
rules.d/ext-gmp.mk [new file with mode: 0644]
rules.d/ext-imap.mk [new file with mode: 0644]
rules.d/ext-interbase.mk [new file with mode: 0644]
rules.d/ext-intl.mk [new file with mode: 0644]
rules.d/ext-ldap.mk [new file with mode: 0644]
rules.d/ext-mbstring.mk [new file with mode: 0644]
rules.d/ext-mysql.mk [new file with mode: 0644]
rules.d/ext-odbc.mk [new file with mode: 0644]
rules.d/ext-pgsql.mk [new file with mode: 0644]
rules.d/ext-pspell.mk [new file with mode: 0644]
rules.d/ext-readline.mk [new file with mode: 0644]
rules.d/ext-snmp.mk [new file with mode: 0644]
rules.d/ext-soap.mk [new file with mode: 0644]
rules.d/ext-sqlite3.mk [new file with mode: 0644]
rules.d/ext-sybase.mk [new file with mode: 0644]
rules.d/ext-tidy.mk [new file with mode: 0644]
rules.d/ext-xml.mk [new file with mode: 0644]
rules.d/ext-zip.mk [new file with mode: 0644]
rules.d/opcache.mk [new file with mode: 0644]
rules.d/prepare-fpm-pools.mk [new file with mode: 0644]
sedsed [new file with mode: 0755]
source.lintian-overrides [new file with mode: 0644]
source.lintian-overrides.in [new file with mode: 0644]
source/format [new file with mode: 0644]
source/include-binaries [new file with mode: 0644]
tests.in/cgi [new file with mode: 0644]
tests.in/cli [new file with mode: 0644]
tests.in/control [new file with mode: 0644]
tests.in/fpm [new file with mode: 0644]
tests.in/mod-php [new file with mode: 0644]
tests/cgi [new file with mode: 0644]
tests/cli [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/fpm [new file with mode: 0644]
tests/mod-php [new file with mode: 0644]
upstream/signing-key.asc [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/PEAR-Builder-print-info-about-php-dev.patch b/PEAR-Builder-print-info-about-php-dev.patch
new file mode 100644 (file)
index 0000000..95d4163
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/PEAR/Builder.php 2011-05-14 20:43:01.000000000 +0000
++++ b/PEAR/Builder.php         2011-05-26 15:56:41.096485701 +0000
+@@ -309,5 +309,7 @@ class PEAR_Builder extends PEAR_Common
+         }
+         if (!$err) {
++             print "If the command failed with 'phpize: not found' then you need to install php@PHP_VERSION@-dev package";
++             print "You can do it by running 'apt-get install php@PHP_VERSION@-dev' as a root user";
+             return $this->raiseError("`phpize' failed");
+         }
diff --git a/README.Debian.security b/README.Debian.security
new file mode 100644 (file)
index 0000000..e75c57b
--- /dev/null
@@ -0,0 +1,23 @@
+The Debian stable security team does not provide security support for
+certain configurations known to be inherently insecure. This includes
+the interpreter itself, extensions, and user scripts written in the PHP
+language. Most specifically, but not exclusively, the security team will
+not provide support for the following.
+
+ * Security issues which are caused by careless programming, such as:
+   - extracting a tar file without first checking the contents;
+   - using unserialize() on untrusted data;
+   - relying on a specific value of short_open_tag.
+
+ * Vulnerabilities involving any kind of open_basedir violation, as
+   this feature is not considered a security model either by us or by
+   PHP upstream.
+
+ * Any "works as expected" vulnerabilities, such as "user can cause
+   PHP to crash by writing a malicious PHP script", unless such
+   vulnerabilities involve some kind of higher-level DoS or privilege
+   escalation that would not otherwise be available.
+
+PHP upstream has published a statement regarding their view on security
+and the PHP interpreter:
+http://www.php.net/security-note.php
diff --git a/README.source b/README.source
new file mode 100644 (file)
index 0000000..bd56f40
--- /dev/null
@@ -0,0 +1,45 @@
+ == Generation of the php5-dbg package Depends ==
+
+The following command can be used to generate a heuristic list of
+packages the php5-dbg package probably needs to Depend on:
+
+dh_testdir && egrep '^Package' debian/control | cut '-d ' -f2 | \
+       egrep -v '(^php5|dbg|dev|common|pear)$' | tr "\n" "|" | sed 's/|$//' |\
+       sed -r 's/([^|]+)(\||$)/ \1 (= ${binary:Version}) \2/g'; echo
+
+ == Making some sense out of the configure options  ==
+
+The COMMON_CONFIG variable contains the configure options that are to
+be used on all the SAPIs. Built-in extensions and other general options
+should be set here.
+The shared extensions are built when building the apache2 SAPI and as
+such they need to be specified there.
+The calls to configure for the other SAPIs usually only need
+--without-foo when the extension or feature is otherwise enabled by
+default.
+
+ == The *modulelist files ==
+
+When building a new module (or extension) on an individual binary
+package, it must be added to the debian/modulelist file. However, if
+the extension is to be included in an existing binary package, it
+must be added to the debian/extramodulelist file.
+
+The format of these files is:
+"<package name> <fancy name, one word> <extension name>"
+
+E.g. for, if we want the mysql extension to be shipped in the
+php5-mysql package we use:
+"mysql MySQL mysql"
+But we also want mysqli and the PDO in the same package, so we add the
+following lines to extramoduleslist:
+"mysql MySQLi mysqli
+mysql MySQL_PDO pdo_mysql"
+
+ == More debian/rules foo ==
+
+* The shared extensions are built under the apache2 target (see above).
+* The CLI SAPI is built on the build-cli-stamp AND build-cgi-stamp, with
+  different configure options.
+
+ -- Ondřej Surý <ondrej@debian.org>, Tue, 27 Nov 2012 17:01:53 +0100
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..bc0027e
--- /dev/null
+++ b/changelog
@@ -0,0 +1,1175 @@
+php8.2 (8.2.7-1~deb12u1) bookworm-security; urgency=high
+
+  * No change upload to bookworm-security
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 09 Jun 2023 21:37:27 +0200
+
+php8.2 (8.2.7-1) unstable; urgency=medium
+
+  * New upstream version 8.2.7
+   + Fixed GHSA-76gg-c692-v2mw: Missing error check and insufficient
+     random bytes in HTTP Digest authentication for SOAP.
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 09 Jun 2023 08:51:32 +0200
+
+php8.2 (8.2.6-1) unstable; urgency=medium
+
+  * New upstream version 8.2.6
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 12 May 2023 08:08:36 +0200
+
+php8.2 (8.2.5-2) unstable; urgency=medium
+
+  * Hard code sed path to /bin/sed (Closes: #1034423)
+  * Remove timestamps from phar (Closes: #1034892)
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 27 Apr 2023 10:13:47 +0200
+
+php8.2 (8.2.5-1) unstable; urgency=medium
+
+  * New upstream version 8.2.5
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 14 Apr 2023 06:07:56 +0200
+
+php8.2 (8.2.4-1) unstable; urgency=medium
+
+  * New upstream version 8.2.4
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 16 Mar 2023 15:24:40 +0100
+
+php8.2 (8.2.3-1) unstable; urgency=medium
+
+  * New upstream version 8.2.3 (Closes: #1031368)
+   + CVE-2023-0567: Fixed bug #81744 (Password_verify() always return true
+     with some hash).
+   + CVE-2023-0568: Fixed bug #81746 (1-byte array overrun in common path
+     resolve code).
+   + CVE-2023-0662: Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when
+     parsing multipart request body).
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 14 Feb 2023 17:51:54 +0100
+
+php8.2 (8.2.2-3) unstable; urgency=medium
+
+  * Disable OPcache JIT by default (fixup)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 07 Feb 2023 12:27:52 +0100
+
+php8.2 (8.2.2-2) unstable; urgency=medium
+
+  * Disable OPcache JIT by default (can be re-enabled at runtime)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 07 Feb 2023 11:54:06 +0100
+
+php8.2 (8.2.2-1) unstable; urgency=medium
+
+  * New upstream version 8.2.2
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 03 Feb 2023 10:34:17 +0100
+
+php8.2 (8.2.1-2) unstable; urgency=medium
+
+  * Fix GH-10187: Segfault in stripslashes() with arm64
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 13 Jan 2023 11:35:02 +0100
+
+php8.2 (8.2.1-1) unstable; urgency=medium
+
+  * New upstream version 8.2.1
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 06 Jan 2023 16:12:40 +0100
+
+php8.2 (8.2.0-4) unstable; urgency=medium
+
+  * Upload to unstable
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 05 Jan 2023 13:39:04 +0100
+
+php8.2 (8.2.0-3) experimental; urgency=medium
+
+  * Revert "Disable xxHash vectorization on ppc64el"
+  * Pull xxHash ppc64el fix from xxHash upstream
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 10 Dec 2022 11:52:05 +0100
+
+php8.2 (8.2.0-2) experimental; urgency=medium
+
+  * Disable xxHash vectorization on ppc64el
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 10 Dec 2022 11:40:36 +0100
+
+php8.2 (8.2.0-1) experimental; urgency=medium
+
+  * Update d/watch for PHP 8.2.0
+  * New upstream version 8.2.0
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 08 Dec 2022 14:09:11 +0100
+
+php8.2 (8.2.0~rc7-1) experimental; urgency=medium
+
+  * New upstream version 8.2.0~rc7
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 26 Nov 2022 15:11:52 +0100
+
+php8.2 (8.2.0~rc5-1) experimental; urgency=medium
+
+  * New upstream version 8.2.0~rc5
+   + CVE-2022-31630: OOB read due to insufficient input validation in
+     imageloadfont()
+   + CVE-2022-37454: buffer overflow in hash_update() on long parameter
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 28 Oct 2022 19:55:40 +0200
+
+php8.2 (8.2.0~rc4-1) experimental; urgency=medium
+
+  * New upstream version 8.2.0~rc4
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 24 Oct 2022 12:09:06 +0200
+
+php8.2 (8.2.0~rc3-1) experimental; urgency=medium
+
+  * New upstream version 8.2.0~rc3
+   + CVE-2022-31628: phar wrapper: DOS when using quine gzip file.
+   + CVE-2022-31629: Don't mangle HTTP variable names that clash with
+     ones that have a specific semantic meaning.
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 24 Oct 2022 12:08:58 +0200
+
+php8.2 (8.2.0~rc1-2) experimental; urgency=medium
+
+  * Use media-types instead of mime-support (Closes: #1010155)
+  * Make the build (mostly) reproducible (Closes: #1001648)
+  * Export SED := /bin/sed in d/rules (Closes: #1015188)
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 18 Sep 2022 12:02:59 +0200
+
+php8.2 (8.2.0~rc1-1) experimental; urgency=medium
+
+  * New upstream version 8.2.0~rc1
+  * Bump d/phpapi to 20220829
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 14 Sep 2022 12:20:18 +0200
+
+php8.2 (8.2.0~beta2-1) experimental; urgency=medium
+
+  [ Simon Deziel ]
+  * debian: use non-capturing group with FilesMatch
+  * Add a brief comment explaning non-capturing group regexes
+
+  [ Ondřej Surý ]
+  * New upstream version 8.2.0~beta2
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 15 Aug 2022 11:37:56 +0200
+
+php8.2 (8.2.0~alpha3-1) experimental; urgency=medium
+
+  * d/watch: Switch upstream location, add alpha/beta/rc version mangling
+  * Add Sergey Panteleev signing key
+  * New upstream version 8.2.0~alpha3
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 07 Jul 2022 18:18:07 +0200
+
+php8.2 (8.2.0~alpha2-1) experimental; urgency=medium
+
+  * New upstream version 8.2.0~alpha2
+  * Refresh patches for PHP 8.2
+  * Update phpapi for PHP 8.2
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 06 Jul 2022 16:06:45 +0200
+
+php8.1 (8.1.7-2) unstable; urgency=medium
+
+  * Add Provides: php-json to PHP SAPIS
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 25 Jun 2022 09:57:04 +0200
+
+php8.1 (8.1.7-1) unstable; urgency=medium
+
+  * New upstream version 8.1.7
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 10 Jun 2022 14:16:47 +0200
+
+php8.1 (8.1.6-1) unstable; urgency=medium
+
+  * New upstream version 8.1.6
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 17 May 2022 18:42:21 +0200
+
+php8.1 (8.1.5-1) unstable; urgency=medium
+
+  * New upstream version 8.1.5
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 21 Apr 2022 11:51:30 +0200
+
+php8.1 (8.1.4-1) unstable; urgency=medium
+
+  * New upstream version 8.1.4
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 20 Mar 2022 17:43:51 +0100
+
+php8.1 (8.1.3-1) unstable; urgency=medium
+
+  * New upstream version 8.1.3
+   + CVE-2021-21708: Fix use-after-free due to php_filter_float() failing
+     for ints (Closes: #1006672)
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 21 Feb 2022 15:47:42 +0100
+
+php8.1 (8.1.2-1) unstable; urgency=medium
+
+  * New upstream version 8.1.2
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 24 Jan 2022 11:36:08 +0100
+
+php8.1 (8.1.1-4) unstable; urgency=medium
+
+  * Override result of AC_PROG_LN_S to fix FTBFS on ppc64el
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 03 Jan 2022 15:34:56 +0100
+
+php8.1 (8.1.1-3) unstable; urgency=medium
+
+  * Fail the build when the dtrace call fails (Closes: #1000784)
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 31 Dec 2021 10:25:19 +0100
+
+php8.1 (8.1.1-2) unstable; urgency=medium
+
+  * Lower the OpenSSL requirement to 1.0.1
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 31 Dec 2021 08:25:33 +0100
+
+php8.1 (8.1.1-1) unstable; urgency=medium
+
+  * New upstream version 8.1.1
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 20 Dec 2021 22:13:08 +0100
+
+php8.1 (8.1.0-1) unstable; urgency=medium
+
+  * Update d/watch for final PHP 8.1
+  * New upstream version 8.1.0
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 25 Nov 2021 20:57:29 +0100
+
+php8.1 (8.1.0~rc6-3) unstable; urgency=medium
+
+  * Backported from 7.3.33
+   - XML:
+    . Fix #79971: special character is breaking the path in xml function.
+      (CVE-2021-21707)
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 19 Nov 2021 07:45:31 +0100
+
+php8.1 (8.1.0~rc6-2) unstable; urgency=medium
+
+  [ Pino Toscano ]
+  * Enable AppArmor (--with-fpm-apparmor) only on Linux archs
+    (Closes: #999495)
+  * Fix Vcs-* fields
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 13 Nov 2021 12:54:26 +0100
+
+php8.1 (8.1.0~rc6-1) unstable; urgency=medium
+
+  * Update d/watch for updated location
+  * New upstream version 8.1.0~rc6
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 11 Nov 2021 20:50:27 +0100
+
+php8.1 (8.1.0~rc5-2) unstable; urgency=medium
+
+  * d/rules: Fix FTBFS on armhf.  Use -mfpu=vfpv3-d16 in CFLAGS
+    (Pulled from Ubuntu.)
+  * Revert "Disable Zend fiber asm on armhf (FTBFS)"
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 10 Nov 2021 12:05:30 +0100
+
+php8.1 (8.1.0~rc5-1) unstable; urgency=medium
+
+  * New upstream version 8.1.0~rc5
+  * Disable Zend fiber asm on armhf (FTBFS)
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 04 Nov 2021 15:57:08 +0100
+
+php8.1 (8.1.0~rc4-1+u1) unstable; urgency=low
+
+  * Upload to unstable
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 25 Oct 2021 13:35:13 +0200
+
+php8.1 (8.1.0~rc4-1) experimental; urgency=medium
+
+  * New upstream version 8.1.0~rc4
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 14 Oct 2021 18:09:23 +0200
+
+php8.1 (8.1.0~rc2-1) experimental; urgency=medium
+
+  * New upstream version 8.1.0~rc2
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 23 Sep 2021 22:52:45 +0200
+
+php8.1 (8.1.0~rc1-1) experimental; urgency=medium
+
+  * New upstream version 8.1.0~rc1
+  * Update the systz patch to v21
+  * Add Patrick Allaert GPG key as upstream signing key
+  * Bump PHPAPI to 20210902
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 13 Sep 2021 18:23:41 +0200
+
+php8.1 (8.1.0~beta3-1) experimental; urgency=medium
+
+  * New upstream version 8.1.0~beta3
+  * Check for symlink before removing directory in the postrm scripts
+  * Update packaging and patches for PHP 8.1.0 beta3
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 25 Aug 2021 15:12:26 +0200
+
+php8.0 (8.0.9-1) unstable; urgency=medium
+
+  * New upstream version 8.0.9
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 30 Jul 2021 15:01:13 +0200
+
+php8.0 (8.0.8-1) unstable; urgency=medium
+
+  * New upstream version 8.0.8 (Closes: #990575)
+   + CVE-2021-21705: SSRF bypass in FILTER_VALIDATE_URL
+   + CVE-2021-21704: Stack buffer overflow in firebird_info_cb
+   + CVE-2021-21704: SIGSEGV in firebird_handle_doer
+   + CVE-2021-21704: SIGSEGV in firebird_stmt_execute
+   + CVE-2021-21704: Crash while parsing blob data in firebird_fetch_blob
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 01 Jul 2021 17:25:46 +0200
+
+php8.0 (8.0.7-1) unstable; urgency=medium
+
+  * Disable LTO (needed for Ubuntu Hirsute) - now for real
+  * New upstream version 8.0.7
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 04 Jun 2021 12:03:18 +0200
+
+php8.0 (8.0.5-2) unstable; urgency=medium
+
+  * Disable LTO (needed for Ubuntu Hirsute)
+  * Revert: Fix bug #80892 PDO::PARAM_INT on pdo_pgsql
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 03 May 2021 13:29:29 +0200
+
+php8.0 (8.0.5-1) unstable; urgency=medium
+
+  * New upstream version 8.0.5
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 01 May 2021 10:38:31 +0200
+
+php8.0 (8.0.3-3) unstable; urgency=medium
+
+  * Allow printing credits buffer larger than 4k
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 03 Apr 2021 16:19:27 +0200
+
+php8.0 (8.0.3-2) unstable; urgency=medium
+
+  * Update the packaging credits
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 18 Mar 2021 10:40:39 +0100
+
+php8.0 (8.0.3-1) unstable; urgency=medium
+
+  * New upstream version 8.0.3
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 05 Mar 2021 08:50:54 +0100
+
+php8.0 (8.0.2-7) unstable; urgency=medium
+
+  * Bump php-common depends to 1:81~
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 23 Feb 2021 15:58:27 +0100
+
+php8.0 (8.0.2-6) unstable; urgency=medium
+
+  * Add example configuration to not pass URLs for missing files to
+    PHP-FPM
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 20 Feb 2021 17:48:30 +0100
+
+php8.0 (8.0.2-5) unstable; urgency=medium
+
+  * Revert "Don't pass URLs for missing files to PHP-FPM"
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 19 Feb 2021 16:33:16 +0100
+
+php8.0 (8.0.2-4) unstable; urgency=medium
+
+  [ Svante Signell ]
+  * Add patch to disable HR Timers on GNU Hurd (Closes: #951834)
+  * Add --without build-stamp to dh invocation
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 16 Feb 2021 19:42:14 +0100
+
+php8.0 (8.0.2-3) unstable; urgency=medium
+
+  [ Sylvain Beucler ]
+  * Update obsolete/non-free FPM configuration procedure
+
+  [ Kevin Locke ]
+  * Don't pass URLs for missing files to PHP-FPM
+
+  [ Ondřej Surý ]
+  * Check if the logrotate script exists (GH #1534)
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 14 Feb 2021 15:02:37 +0100
+
+php8.0 (8.0.2-2) unstable; urgency=medium
+
+  * Enable AppArmor support in FPM
+  * Enable FPM ACL support
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 12 Feb 2021 11:14:38 +0100
+
+php8.0 (8.0.2-1) unstable; urgency=medium
+
+  * New upstream version 8.0.2
+  * Force hardcoded path to be /bin/sed (Closes: #960786)
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 07 Feb 2021 12:39:18 +0100
+
+php8.0 (8.0.1-1) unstable; urgency=medium
+
+  * New upstream version 8.0.1
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 12 Jan 2021 11:05:21 +0100
+
+php8.0 (8.0.0-1) unstable; urgency=medium
+
+  * Update d/watch for production PHP 8.0 release
+  * New upstream version 8.0.0
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 27 Nov 2020 12:28:33 +0100
+
+php8.0 (8.0.0~rc3-4) unstable; urgency=medium
+
+  * Copy the files from auxdir in a separate variable to sync with PHP 7.3
+    and lower
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 31 Oct 2020 18:05:42 +0100
+
+php8.0 (8.0.0~rc3-3) unstable; urgency=medium
+
+  * Move the non-m4 files from LIBTOOL_FILES to FILES_BUILD
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 31 Oct 2020 11:06:16 +0100
+
+php8.0 (8.0.0~rc3-2) unstable; urgency=medium
+
+  * Move the system wide phpize files to LIBTOOL_FILES
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 31 Oct 2020 11:05:46 +0100
+
+php8.0 (8.0.0~rc3-1) unstable; urgency=medium
+
+  * New upstream version 8.0.0~rc3
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 30 Oct 2020 20:32:59 +0100
+
+php8.0 (8.0.0~rc1-6) unstable; urgency=medium
+
+  * In phpize, copy the foreign files from their respective packages
+    (libtool, pkg-config, shtool)
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 18 Oct 2020 21:42:45 +0200
+
+php8.0 (8.0.0~rc1-5) unstable; urgency=medium
+
+  * Include all libtool files from phpize.m4
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 18 Oct 2020 13:38:45 +0200
+
+php8.0 (8.0.0~rc1-4) unstable; urgency=medium
+
+  * Use system-wide pkg.m4 from pkg-config package in phpize
+  * Restore the patch to use system-wide libtool and pkg-config m4 files
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 17 Oct 2020 08:33:56 +0200
+
+php8.0 (8.0.0~rc1-3) unstable; urgency=medium
+
+  [ Chris Hofstaedtler ]
+  * Use netcat-openbsd to build instead of netcat-traditional (Closes: #963261)
+
+  [ Pino Toscano ]
+  * Disable AppArmor support on non-Linux archs (Closes: #951857)
+  * Enable systemd integration only on Linux archs (Closes: #951834)
+
+  [ Ondřej Surý ]
+  * Use just php_module in the apache2 .load file
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 11 Oct 2020 16:01:02 +0200
+
+php8.0 (8.0.0~rc1-2) unstable; urgency=medium
+
+  * Disable the MySQL extension testing as it's too complicated
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 10 Oct 2020 21:45:35 +0200
+
+php8.0 (8.0.0~rc1-1) unstable; urgency=medium
+
+  * Regenerate d/control for PHP 8.0
+  * New upstream version 8.0.0~rc1
+  * Specify the socket via ./configure option rather than patch
+  * XMLRPC extension is no longer bundled
+  * The JSON extension is always available
+  * Fix syntax-error-in-dep5-copyright
+  * Update lintian overrides
+  * Remove obsolete d/NEWS
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 07 Oct 2020 20:11:17 +0200
+
+php7.4 (7.4.11-1) unstable; urgency=medium
+
+  * New upstream version 7.4.11
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 06 Oct 2020 12:34:39 +0200
+
+php7.4 (7.4.10-1) unstable; urgency=medium
+
+  * New upstream version 7.4.10
+  * Lower the minimal debhelper dependency to >= 9.20150101~
+  * Use libenchant-dev as Build-Depends alternative to libenchant-2-dev
+  * Remove deprecated calls from enchant-2 (Closes: #954855)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 08 Sep 2020 12:22:27 +0200
+
+php7.4 (7.4.9-2) unstable; urgency=medium
+
+  * Pull upstream patch for enchant-2 and change build-dep (Closes: #954855)
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 27 Aug 2020 15:37:23 +0200
+
+php7.4 (7.4.9-1) unstable; urgency=medium
+
+  * New upstream version 7.4.9
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 07 Aug 2020 16:27:40 +0200
+
+php7.4 (7.4.8-1) unstable; urgency=medium
+
+  * Finish updating the packaging to dh compat level 10
+  * New upstream version 7.4.8
+  * Adjust for upstream phar.phar -> phar7.4.phar binary rename
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 13 Jul 2020 18:35:53 +0200
+
+php7.4 (7.4.7-1) unstable; urgency=medium
+
+  * New upstream version 7.4.7
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 12 Jun 2020 09:42:27 +0200
+
+php7.4 (7.4.6-1) unstable; urgency=medium
+
+  * Properly detect CRC32 APIs on aarch64 from configure
+  * New upstream version 7.4.6
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 14 May 2020 11:59:59 +0200
+
+php7.4 (7.4.5-1) unstable; urgency=medium
+
+  * New upstream version 7.4.5
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 19 Apr 2020 09:35:13 +0200
+
+php7.4 (7.4.4-1) unstable; urgency=medium
+
+  * Add (non-existent yet) systemd-tmpfiles package as alternative to systemd
+  * php-fpm has to depend on procps due kill usage in systemd service file
+    (Closes: #861855)
+  * New upstream version 7.4.4
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 20 Mar 2020 14:45:16 +0100
+
+php7.4 (7.4.3-4) unstable; urgency=medium
+
+  * Remove /etc/init/php@PHP_VERSION@-fpm.conf, not
+    /etc/init/php@PHP_VERSION@.conf (Closes: #951745)
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 23 Feb 2020 08:07:28 +0100
+
+php7.4 (7.4.3-3) unstable; urgency=medium
+
+  * Fixup upstart removal (missing prepare-files update) (Closes: #951745)
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 21 Feb 2020 18:01:35 +0100
+
+php7.4 (7.4.3-2) unstable; urgency=medium
+
+  * Remove the PIDFile= setting from systemd unit file (it should not be
+    needed with Type=notify)
+  * Use php-fpm-socket-helper from php-common >= 1:73 to update the
+    default socket
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 21 Feb 2020 09:59:48 +0100
+
+php7.4 (7.4.3-1) unstable; urgency=medium
+
+  * Remove upstart support, use systemd-tmpfiles to create tmpfiles
+    (Closes: #923032)
+  * New upstream version 7.4.3
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 20 Feb 2020 13:12:06 +0100
+
+php7.4 (7.4.2-7) unstable; urgency=medium
+
+  * Add a note about PIDFile= and pid= match in php-fpm.conf
+  * Silently ignore errors from update-alternatives in php-fpm.service
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 08 Feb 2020 13:04:50 +0100
+
+php7.4 (7.4.2-6) unstable; urgency=medium
+
+  * Use absolute path to update-alternatives
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 05 Feb 2020 17:47:54 +0100
+
+php7.4 (7.4.2-5) unstable; urgency=medium
+
+  * Move the update-alternatives call from postinst/prerm to systemd startup script
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 01 Feb 2020 18:44:05 +0100
+
+php7.4 (7.4.2-4) unstable; urgency=medium
+
+  * Make the creation of the default socket work on new installs
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 01 Feb 2020 14:11:48 +0100
+
+php7.4 (7.4.2-3) unstable; urgency=medium
+
+  * Use a mock socket file for setting up FPM socket alternatives
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 01 Feb 2020 13:09:39 +0100
+
+php7.4 (7.4.2-2) unstable; urgency=medium
+
+  * Create a generic /run/php/php-fpm.sock socket using update-alternatives
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 01 Feb 2020 10:17:27 +0100
+
+php7.4 (7.4.2-1) unstable; urgency=medium
+
+  * New upstream version 7.4.2
+  * Disable dh_autoreconf for PHP, it breaks the build
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 23 Jan 2020 12:20:45 +0100
+
+php7.4 (7.4.1-1) unstable; urgency=medium
+
+  * Update d/watch for final release
+  * New upstream version 7.4.1
+  * Bump the debhelper compat to 10
+  * Bump the Standards Version (no change)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 21 Jan 2020 09:23:37 +0100
+
+php7.4 (7.4.0-1) unstable; urgency=medium
+
+  * New upstream version 7.4.0
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 28 Nov 2019 08:25:29 +0100
+
+php7.4 (7.4.0~rc6-1) experimental; urgency=medium
+
+  * Fix the FTBFS with MySQL 8.0
+  * New upstream version 7.4.0~rc6
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 19 Nov 2019 18:49:28 +0100
+
+php7.4 (7.4.0~rc4-1) experimental; urgency=medium
+
+  * Bump d/phpapi to 20190902
+  * New upstream version 7.4.0~rc4
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 26 Oct 2019 11:10:04 +0200
+
+php7.4 (7.4.0~rc3-1) experimental; urgency=medium
+
+  * New upstream version 7.4.0~rc3
+  * GMP now uses autodetection (don't pass /usr to configure)
+  * Bump d/phpapi to 20190902
+
+ -- Ondřej Surý <ondrej@sury.org>  Tue, 08 Oct 2019 08:08:28 +0200
+
+php7.4 (7.4.0~beta4-2) experimental; urgency=medium
+
+  * Enable FFI experimental extension
+  * Add libffi to B-D
+
+ -- Ondřej Surý <ondrej@sury.org>  Wed, 28 Aug 2019 10:50:48 +0200
+
+php7.4 (7.4.0~beta4-1) experimental; urgency=medium
+
+  * Remove 0003-libtool2.2.patch, it's no longer needed [GL #1236]
+  * New upstream version 7.4.0~beta4
+
+ -- Ondřej Surý <ondrej@sury.org>  Tue, 27 Aug 2019 15:22:26 +0200
+
+php7.4 (7.4.0~beta2-1) experimental; urgency=medium
+
+  * New upstream version 7.4.0~beta2
+  * Rebase patches for PHP 7.4.0~beta2
+
+ -- Ondřej Surý <ondrej@sury.org>  Thu, 08 Aug 2019 13:41:59 +0200
+
+php7.4 (7.4.0~beta1-1) experimental; urgency=medium
+
+  * New upstream version 7.4.0~beta1
+  * Rebase patches for PHP 7.4.0~beta1
+  * Configure option --with-libxml-dir is now named --with-libxml
+  * The recode extension has been moved to PECL.
+  * The interbase extension has been moved to PECL.
+  * The configure option for zip extension has changed from --enable-zip to --with-zlib
+  * The WDDX extension has been deprecated and moved to PECL.
+  * The configure options to enable GD extension has changed to --enable-gd and --with-external-gd
+  * Regenerated d/control
+  * Update the configure options according to UPGRADING file (mostly pkg-config related changes)
+  * Cleanup the missing documentation
+  * Update phpapi to 20190529
+
+ -- Ondřej Surý <ondrej@sury.org>  Wed, 07 Aug 2019 17:47:41 +0200
+
+php7.4 (7.4.0~alpha2-1) experimental; urgency=low
+
+  * New upstream version 7.4.0~alpha2
+
+ -- Ondřej Surý <ondrej@sury.org>  Wed, 10 Jul 2019 09:36:25 +0200
+
+php7.3 (7.3.7-1) unstable; urgency=medium
+
+  * New upstream version 7.3.7
+
+ -- Ondřej Surý <ondrej@sury.org>  Wed, 10 Jul 2019 08:52:54 +0200
+
+php7.3 (7.3.6-1) unstable; urgency=medium
+
+  [ Ondřej Surý ]
+  * New upstream version 7.3.6
+
+  [ Andreas Beckmann ]
+  * php7.3-curl: Add Breaks against php7.0-curl for smoother upgrades from stretch.  (Closes: #929689)
+
+ -- Ondřej Surý <ondrej@sury.org>  Fri, 31 May 2019 13:36:51 +0200
+
+php7.3 (7.3.5-1) unstable; urgency=medium
+
+  * New upstream version 7.3.5
+
+ -- Ondřej Surý <ondrej@sury.org>  Fri, 03 May 2019 10:16:15 +0200
+
+php7.3 (7.3.4-2) unstable; urgency=medium
+
+  [Andreas Beckmann]
+  * php7.3-common: Add Breaks against php7.0-curl for smoother upgrades from
+    stretch.  (Closes: #925106)
+  * php7.3-common: Add Breaks against gforge-common from jessie which uses a
+    deprecated constructor syntax.
+  * Deterministically generate debian/control by sorting the extension
+    packages.
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 13 Apr 2019 19:05:48 +0000
+
+php7.3 (7.3.4-1) unstable; urgency=medium
+
+  * Update d/watch for new php.net pages
+  * New upstream version 7.3.4
+  * Enforce C++11 for intl compilation on older distributions
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 10 Apr 2019 06:55:43 +0000
+
+php7.3 (7.3.3-1) unstable; urgency=medium
+
+  * New upstream version 7.3.3
+  * Update systzdata patch to v18 (Courtesy of RemiRepo)
+  * Add patch for OpenSSL 1.1.1b (Courtesy of RemiRepo)
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 07 Mar 2019 19:43:34 +0000
+
+php7.3 (7.3.2-3) unstable; urgency=medium
+
+  * Update systzdata patch to v17 (Courtesy of remirepo)
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 08 Feb 2019 15:05:54 +0000
+
+php7.3 (7.3.2-2) unstable; urgency=medium
+
+  * Fix the icu patch condition for icu >= 60
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 08 Feb 2019 10:49:26 +0000
+
+php7.3 (7.3.2-1) unstable; urgency=medium
+
+  * New upstream version 7.3.2
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 07 Feb 2019 17:58:05 +0000
+
+php7.3 (7.3.1-3) unstable; urgency=medium
+
+  * Always build spoofchecker, because we are enforcing icu >= 50.1
+    (Closes: #921199)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 05 Feb 2019 10:25:33 +0000
+
+php7.3 (7.3.1-2) unstable; urgency=high
+
+  * Add patch to use pkg-config instead of icu-config to detect icu
+    libraries (Closes: #916110)
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 21 Jan 2019 09:09:55 +0000
+
+php7.3 (7.3.1-1) unstable; urgency=medium
+
+  * New upstream version 7.3.1
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 13 Jan 2019 10:13:20 +0000
+
+php7.3 (7.3.0-2) unstable; urgency=medium
+
+  * Add upstream patch to fix OPcache optimization problem for
+    ArrayAccess->offsetGet
+  * Add upstream patch to fix infinite loop in preg_replace_callback
+  * Fix check for rl_completion_matches in readline extension
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 17 Dec 2018 09:51:53 +0000
+
+php7.3 (7.3.0-1) unstable; urgency=medium
+
+  * Update d/watch for the final PHP 7.3.0 release
+  * New upstream version 7.3.0
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 06 Dec 2018 20:22:15 +0000
+
+php7.3 (7.3.0~rc6-1) unstable; urgency=medium
+
+  * New upstream version 7.3.0~rc6
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 25 Nov 2018 10:01:25 +0000
+
+php7.3 (7.3.0~rc5-2) unstable; urgency=medium
+
+  * Don't use sed found by configure, use the sed command as available in
+    the host system (Closes: #913620)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 13 Nov 2018 09:10:56 +0000
+
+php7.3 (7.3.0~rc5-1) unstable; urgency=medium
+
+  * New upstream version 7.3.0~rc5
+  * Enable lmdb support in dba extension
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 12 Nov 2018 09:54:24 +0000
+
+php7.3 (7.3.0~rc4-2) unstable; urgency=medium
+
+  * Restore correct patch name for
+    0040-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 04 Nov 2018 04:54:20 +0000
+
+php7.3 (7.3.0~rc4-1) unstable; urgency=medium
+
+  * New upstream version 7.3.0~rc4
+  * Rebase patches for PHP 7.4.0~rc4
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 25 Oct 2018 08:57:33 +0000
+
+php7.3 (7.3.0~rc3-3) unstable; urgency=medium
+
+  * Add patch to use pkg-config for FreeType2 library detection
+    (Closes: #911460)
+  * Remove libmcrypt-dev from Build-Depends
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 25 Oct 2018 06:39:32 +0000
+
+php7.3 (7.3.0~rc3-2) unstable; urgency=medium
+
+  * Disable the enabled modules in prerm, because in postrm the phpquery
+    script is not aware of already removed sapi (Closes: #911018)
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 15 Oct 2018 09:53:04 +0000
+
+php7.3 (7.3.0~rc3-1) unstable; urgency=medium
+
+  * New upstream version 7.3.0~rc3
+  * Rebase patches for PHP 7.3.0~rc3
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 13 Oct 2018 13:47:36 +0000
+
+php7.3 (7.3.0~rc2-3) unstable; urgency=medium
+
+  * Remove ancient mv_conffile (from php5)
+  * Remove spurious L from phpize script (Closes: #909110)
+  * Downgrade dh-php from Recommends to Suggests (Closes: #910620)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 09 Oct 2018 13:22:52 +0000
+
+php7.3 (7.3.0~rc2-2) unstable; urgency=medium
+
+  * Fix the Vcs-* links
+  * Apply upstream patch to allow disabling pcre jit and disable it on
+    mips and s390x archs
+  * Extra 'L' is gone (Closes: #909110)
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 04 Oct 2018 14:25:15 +0000
+
+php7.3 (7.3.0~rc2-1) unstable; urgency=medium
+
+  * New upstream version 7.3.0~rc2
+  * Rebase patches for PHP 7.3.0~rc2
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 01 Oct 2018 11:42:35 +0000
+
+php7.3 (7.3.0~beta2-3) unstable; urgency=medium
+
+  * Disable assembly code with gcc 4.8 on i386
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 20 Aug 2018 08:07:58 +0000
+
+php7.3 (7.3.0~beta2-2) unstable; urgency=medium
+
+  * Remove dependency on pcre3 and add libpcre2-dev to phpX.Y-dev
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 19 Aug 2018 16:12:50 +0000
+
+php7.3 (7.3.0~beta2-1) unstable; urgency=medium
+
+  * New upstream version 7.3.0~beta2
+  * Rebase patches for PHP 7.3.0~beta2
+  * Fix phpdbg.1 installation path from srcdir to builddir
+  * Bump d/phpapi to 20180731
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 19 Aug 2018 07:49:10 +0000
+
+php7.3 (7.3.0~beta1-1) unstable; urgency=medium
+
+  [ Lior Kaplan ]
+  * Fix syntax typo
+
+  [ Ondřej Surý ]
+  * New upstream version 7.3.0~beta1
+  * Rebase patches for PHP 7.3.0beta1
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 03 Aug 2018 13:52:09 +0000
+
+php7.3 (7.3.0~alpha4-1) unstable; urgency=medium
+
+  * Use cpuid.h instead of custom assembler
+  * New upstream version 7.3.0~alpha4
+  * Rebase patches for PHP 7.3.0~alpha4
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 25 Jul 2018 11:11:09 +0000
+
+php7.3 (7.3.0~alpha3-2) unstable; urgency=medium
+
+  * Remove traces of ext_skel modifications
+  * Add <!nocheck> profile to all default-mysql-server alternatives
+  * Bump d/phpapi for PHP 7.3
+  * Add libargon2-dev as new alternative build-dependency to
+    libargon2-0-dev
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 14 Jul 2018 13:57:34 +0000
+
+php7.3 (7.3.0~alpha3-1) unstable; urgency=medium
+
+  * Update upstream signing-key.asc for PHP 7.3
+  * New upstream version 7.3.0~alpha3
+  * Build-Depend on libpcre2-dev
+  * Rebase patches for PHP 7.3.0~alpha3
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 09 Jul 2018 13:49:59 +0000
+
+php7.2 (7.2.7-2) unstable; urgency=medium
+
+  * Update the maintainer email to team+pkg-php@tracker.debian.org
+  * Update the Vcs-* links to salsa.d.o
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 09 Jul 2018 12:28:45 +0000
+
+php7.2 (7.2.7-1) unstable; urgency=medium
+
+  * New upstream version 7.2.7
+  * Refresh patches for PHP 7.2.7
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 22 Jun 2018 07:35:11 +0000
+
+php7.2 (7.2.6-1) unstable; urgency=medium
+
+  * New upstream version 7.2.6
+  * Rebase patches for PHP version 7.2.6
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 11 Jun 2018 14:54:56 +0000
+
+php7.2 (7.2.5-1) unstable; urgency=medium
+
+  * New upstream version 7.2.5
+  * Rebase patches for PHP 7.2.5
+
+ -- Ondřej Surý <ondrej@debian.org>  Sat, 05 May 2018 04:56:32 +0000
+
+php7.2 (7.2.4-1) unstable; urgency=medium
+
+  * New upstream version 7.2.4
+  * Rebase patches on top of new upstream release.
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 05 Apr 2018 08:50:27 +0000
+
+php7.2 (7.2.3-1) unstable; urgency=medium
+
+  * New upstream version 7.2.3
+  * Rebase patches on top of new upstream release.
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 06 Mar 2018 11:15:04 +0000
+
+php7.2 (7.2.2-3) unstable; urgency=medium
+
+  * Add explicit libpcre3 >= 2:8.35 dependency as dh_genshlibs is failing
+    to add versioned dependency for some reason.
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 06 Feb 2018 16:07:40 +0000
+
+php7.2 (7.2.2-2) unstable; urgency=medium
+
+  * Remove explicit libpcre3 dependency and let dh_genshlibs do its magic
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 06 Feb 2018 13:00:04 +0000
+
+php7.2 (7.2.2-1) unstable; urgency=medium
+
+  * New upstream version 7.2.2
+  * Rebase patches on top of new upstream release
+  * Regenerate d/control to finish php7.2-sodium removal
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 01 Feb 2018 15:19:04 +0000
+
+php7.2 (7.2.1-1) unstable; urgency=medium
+
+  * Update the Vcs-* to salsa.d.o
+  * Slightly update debian/copyright (most changes were already in)
+  * New upstream version 7.2.1
+  * Rebase patches on top of new upstream release
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 05 Jan 2018 11:21:04 +0000
+
+php7.2 (7.2.0-2) unstable; urgency=medium
+
+  * Get rid of extra php7.2-sodium module
+
+ -- Ondřej Surý <ondrej@debian.org>  Wed, 06 Dec 2017 14:15:47 +0000
+
+php7.2 (7.2.0-1) unstable; urgency=low
+
+  * Update PHP 7.2 signing keys
+  * New upstream version 7.2.0
+  * Rebase patches for new upstream release.
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 30 Nov 2017 13:55:57 +0000
+
+php7.2 (7.2.0~rc6-1) unstable; urgency=medium
+
+  * New upstream version 7.2.0~rc6
+  * Rebase patches for new upstream version.
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 12 Nov 2017 03:30:05 +0000
+
+php7.2 (7.2.0~rc5-1) unstable; urgency=medium
+
+  * New upstream version 7.2.0~rc5
+  * Rebase patches for new upstream release
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 27 Oct 2017 13:33:55 +0000
+
+php7.2 (7.2.0~rc4-2) unstable; urgency=medium
+
+  * Fix the usage of internal allocator in xmlrpc extension
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 24 Oct 2017 18:54:46 +0000
+
+php7.2 (7.2.0~rc4-1) unstable; urgency=medium
+
+  * New upstream version 7.2.0~rc4
+  * Rebase patches on top of new upstream version 7.2.0~rc4
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 22 Oct 2017 13:07:11 +0000
+
+php7.2 (7.2.0~rc3-1) unstable; urgency=medium
+
+  * New upstream version 7.2.0~rc3
+  * Refresh patches for PHP 7.2.0~rc3
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 28 Sep 2017 18:26:49 +0200
+
+php7.2 (7.2.0~rc2-1) unstable; urgency=medium
+
+  * New upstream version 7.2.0~rc2
+  * Rebase patches on top of PHP 7.2.0~rc2
+
+ -- Ondřej Surý <ondrej@debian.org>  Mon, 18 Sep 2017 11:24:14 +0200
+
+php7.2 (7.2.0~rc1-1) unstable; urgency=medium
+
+  * New upstream version 7.2.0~rc1
+  * Rebase patches on top of PHP 7.2.0~rc1
+  * Update d/copyright (License check courtesy of Luca Falavigna)
+  * Rewrap the files in d/ with wrap-and-sort -a
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 31 Aug 2017 14:00:16 +0200
+
+php7.2 (7.2.0~beta3-2) unstable; urgency=medium
+
+  * Enable Argon2 support for password hashing functions
+  * Enable shared libsodium extension
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 25 Aug 2017 11:35:23 +0200
+
+php7.2 (7.2.0~beta3-1) unstable; urgency=medium
+
+  * Allow libgcrypt11-dev when it's not a transitional package
+  * New upstream version 7.2.0~beta3
+  * Refresh patches on top of PHP 7.2.0~beta3
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 18 Aug 2017 15:00:36 +0200
+
+php7.2 (7.2.0~beta2-2) experimental; urgency=medium
+
+  * Update Vcs-* links to https://gitlab.com/deb.sury.org/...
+  * Stop depending on obsolete automake1.11
+  * Switch build-depends to libgcrypt20-dev
+
+ -- Ondřej Surý <ondrej@debian.org>  Fri, 04 Aug 2017 11:56:09 +0200
+
+php7.2 (7.2.0~beta2-1) experimental; urgency=medium
+
+  * Update d/watch for PHP 7.2
+  * New upstream version 7.2.0~beta2
+  * Rebase patches for PHP 7.2.0~beta2
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 03 Aug 2017 20:42:38 +0200
+
+php7.2 (7.2.0~beta1-1) experimental; urgency=medium
+
+  * New upstream version 7.2.0~beta1
+  * Enable support for libsodium crypto
+  * Rebase patches on top of PHP 7.2.0~beta1
+  * Update phpapi for PHP 7.2 to 20170718
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 27 Jul 2017 13:29:34 +0200
+
+php7.2 (7.2.0~alpha3-1) experimental; urgency=medium
+
+  * New upstream version 7.2.0~alpha3
+  * Rebase patches on top of PHP 7.2.0~alpha3
+  * Update d/rules with configure.in -> configure.ac rename
+  * Remove mcrypt extension that has been removed upstream
+  * Update phpapi to 20160731
+
+ -- Ondřej Surý <ondrej@debian.org>  Thu, 06 Jul 2017 13:50:44 +0200
diff --git a/compat b/compat
new file mode 100644 (file)
index 0000000..f599e28
--- /dev/null
+++ b/compat
@@ -0,0 +1 @@
+10
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..ad8ea1a
--- /dev/null
+++ b/control
@@ -0,0 +1,896 @@
+Source: php8.2
+Section: php
+Priority: optional
+Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
+Uploaders: Ondřej Surý <ondrej@debian.org>,
+           Lior Kaplan <kaplan@debian.org>
+Build-Depends: apache2-dev (>= 2.4),
+               autoconf (>= 2.63),
+               automake,
+               bison,
+               chrpath,
+               debhelper (>= 9.20160709~),
+               default-libmysqlclient-dev | libmysqlclient-dev,
+               dh-apache2,
+               dpkg-dev (>= 1.16.1~),
+               firebird-dev [!hurd-any !m68k !hppa !ppc64] | firebird2.5-dev [!hurd-any !m68k !hppa !ppc64] | firebird2.1-dev [!hurd-any !m68k !hppa !ppc64],
+               flex,
+               freetds-dev,
+               libacl1-dev,
+               libapparmor-dev [linux-any],
+               libapr1-dev (>= 1.2.7-8),
+               libargon2-dev | libargon2-0-dev,
+               libbz2-dev,
+               libc-client-dev,
+               libcurl4-openssl-dev | libcurl-dev,
+               libdb-dev,
+               libedit-dev (>= 2.11-20080614-4),
+               libenchant-2-dev | libenchant-dev,
+               libevent-dev (>= 1.4.11),
+               libexpat1-dev (>= 1.95.2-2.1),
+               libffi-dev,
+               libfreetype6-dev,
+               libgcrypt20-dev (>> 1.6.3) | libgcrypt11-dev (<< 1.5.4),
+               libgd-dev (>= 2.1.0) | libgd2-dev,
+               libglib2.0-dev,
+               libgmp3-dev,
+               libicu-dev,
+               libjpeg-dev | libjpeg62-dev,
+               libkrb5-dev,
+               libldap2-dev,
+               liblmdb-dev,
+               libmagic-dev,
+               libmhash-dev (>= 0.8.8),
+               libnss-myhostname [linux-any],
+               libonig-dev,
+               libpam0g-dev,
+               libpcre2-dev (>= 10.30),
+               libpng-dev,
+               libpq-dev,
+               libpspell-dev,
+               libqdbm-dev,
+               libsasl2-dev,
+               libsnmp-dev,
+               libsodium-dev,
+               libsqlite3-dev,
+               libssl-dev,
+               libsystemd-dev [linux-any],
+               libtidy-dev (>= 1:5.2.0),
+               libtool (>= 2.2),
+               libwebp-dev,
+               libwrap0-dev,
+               libxml2-dev,
+               libxmltok1-dev,
+               libxslt1-dev (>= 1.0.18),
+               libzip-dev (>= 1.0.0),
+               locales-all | language-pack-de,
+               netbase,
+               netcat-openbsd,
+               re2c,
+               systemtap-sdt-dev [amd64 i386 powerpc armel armhf ia64],
+               tzdata,
+               unixodbc-dev,
+               zlib1g-dev
+Build-Conflicts: bind-dev,
+                 libxmlrpc-core-c3-dev
+Standards-Version: 4.5.0.0
+Vcs-Git: https://salsa.debian.org/php-team/php.git -b debian/main/8.2
+Vcs-Browser: https://salsa.debian.org/php-team/php/-/tree/debian/main/8.2
+Homepage: http://www.php.net/
+
+Package: libapache2-mod-php8.2
+Section: httpd
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php8.2-cli,
+         php8.2-common (= ${binary:Version}),
+         php8.2-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: libapache2-mod-php,
+          php-json,
+          php8.2-json,
+          ${php:Provides}
+Recommends: apache2
+Suggests: php-pear
+Description: server-side, HTML-embedded scripting language (Apache 2 module)
+ This package provides the PHP module for the Apache 2 webserver (as
+ found in the apache2-mpm-prefork package).  Please note that this package
+ ONLY works with Apache's prefork MPM, as it is not compiled thread-safe.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: libphp8.2-embed
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php8.2-cli,
+         php8.2-common (= ${binary:Version}),
+         php8.2-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: libphp-embed,
+          php-json,
+          php8.2-json,
+          ${php:Provides}
+Suggests: php-pear
+Description: HTML-embedded scripting language (Embedded SAPI library)
+ This package provides the library /usr/lib/libphp8.2.so which can
+ be used by application developers to embed PHP scripting functionality.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+ .
+ WARNING: The embed SAPI is experimental and there's no guarantee that
+ the API/ABI will be kept compatible even between minor releases.  You
+ have been warned.
+
+Package: php8.2
+Architecture: all
+Depends: libapache2-mod-php8.2 | php8.2-fpm | php8.2-cgi,
+         php8.2-common,
+         ${misc:Depends}
+Provides: php
+Description: server-side, HTML-embedded scripting language (metapackage)
+ This package is a metapackage that, when installed, guarantees that you
+ have at least one of the four server-side versions of the PHP interpreter
+ installed. Removing this package won't remove PHP from your system, however
+ it may remove other packages that depend on this one.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-cgi
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php8.2-cli,
+         php8.2-common (= ${binary:Version}),
+         php8.2-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-cgi,
+          php-json,
+          php8.2-json,
+          ${php:Provides}
+Suggests: php-pear
+Description: server-side, HTML-embedded scripting language (CGI binary)
+ This package provides the /usr/lib/cgi-bin/php CGI interpreter built
+ for use in Apache 2 with mod_actions, or any other CGI httpd that
+ supports a similar mechanism.  Note that MOST users probably
+ want the php8.2-fpm package.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-cli
+Architecture: any
+Depends: libedit2 (>= 2.11-20080614-4),
+         libmagic1,
+         media-types | mime-support,
+         php8.2-common (= ${binary:Version}),
+         php8.2-opcache,
+         php8.2-readline,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-cli,
+          php-json,
+          php8.2-json,
+          ${php:Provides}
+Suggests: php-pear
+Description: command-line interpreter for the PHP scripting language
+ This package provides the /usr/bin/php8.2 command interpreter, useful for
+ testing PHP scripts from a shell or performing general shell scripting tasks.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-dev
+Depends: autoconf (>= 2.63),
+         automake (>= 1.11),
+         libpcre2-dev (>= 10.30),
+         libssl-dev,
+         php8.2-cli (>= ${binary:Version}),
+         php8.2-common (= ${binary:Version}),
+         pkg-config,
+         shtool,
+         ${libtool:Depends},
+         ${misc:Depends},
+         ${perl:Depends}
+Conflicts: ${libtool:Conflicts}
+Architecture: any
+Recommends: pkg-php-tools
+Suggests: dh-php
+Description: Files for PHP8.2 module development
+ This package provides the files from the PHP8.2 source needed for compiling
+ additional modules.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-fpm
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php8.2-cli,
+         php8.2-common (= ${binary:Version}),
+         php8.2-opcache,
+         procps,
+         systemd | systemd-tmpfiles,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-fpm,
+          php-json,
+          php8.2-json,
+          ${php:Provides}
+Suggests: php-pear
+Pre-Depends: ${misc:Pre-Depends}
+Description: server-side, HTML-embedded scripting language (FPM-CGI binary)
+ This package provides the Fast Process Manager interpreter that runs
+ as a daemon and receives Fast/CGI requests.  Note that MOST Apache users
+ probably want the libapache2-mod-php8.2 package.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-phpdbg
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php8.2-cli,
+         php8.2-common (= ${binary:Version}),
+         php8.2-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-json,
+          php-phpdbg,
+          php8.2-json,
+          ${php:Provides}
+Recommends: php-readline
+Description: server-side, HTML-embedded scripting language (PHPDBG binary)
+ This package provides the /usr/bin/phpdbg command interpreter, useful for
+ stepthrough debugging of PHP code.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-xsl
+Architecture: all
+Depends: php8.2-common,
+         php8.2-xml,
+         ${misc:Depends}
+Description: XSL module for PHP (dummy)
+ This package is a transitional dummy package and can be safely
+ removed.
+
+Package: php8.2-bcmath
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-bcmath:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-bcmath:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-bcmath:Replaces}
+Breaks: ${php-bcmath:Breaks}
+Conflicts: ${php-bcmath:Conflicts}
+Provides: ${php-bcmath:Provides}
+Recommends: ${php-bcmath:Recommends}
+Description: Bcmath module for PHP
+ This package provides the Bcmath module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-bz2
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-bz2:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-bz2:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-bz2:Replaces}
+Breaks: ${php-bz2:Breaks}
+Conflicts: ${php-bz2:Conflicts}
+Provides: ${php-bz2:Provides}
+Recommends: ${php-bz2:Recommends}
+Description: bzip2 module for PHP
+ This package provides the bzip2 module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-common
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-common:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-common:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-common:Replaces}
+Breaks: ${php-common:Breaks}
+Conflicts: ${php-common:Conflicts}
+Provides: ${php-common:Provides}
+Recommends: ${php-common:Recommends}
+Description: documentation, examples and common module for PHP
+ This package provides the documentation, examples and common module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-curl
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-curl:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-curl:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-curl:Replaces}
+Breaks: ${php-curl:Breaks}
+Conflicts: ${php-curl:Conflicts}
+Provides: ${php-curl:Provides}
+Recommends: ${php-curl:Recommends}
+Description: CURL module for PHP
+ This package provides the CURL module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-dba
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-dba:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-dba:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-dba:Replaces}
+Breaks: ${php-dba:Breaks}
+Conflicts: ${php-dba:Conflicts}
+Provides: ${php-dba:Provides}
+Recommends: ${php-dba:Recommends}
+Description: DBA module for PHP
+ This package provides the DBA module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-enchant
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-enchant:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-enchant:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-enchant:Replaces}
+Breaks: ${php-enchant:Breaks}
+Conflicts: ${php-enchant:Conflicts}
+Provides: ${php-enchant:Provides}
+Recommends: ${php-enchant:Recommends}
+Description: Enchant module for PHP
+ This package provides the Enchant module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-gd
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-gd:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-gd:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-gd:Replaces}
+Breaks: ${php-gd:Breaks}
+Conflicts: ${php-gd:Conflicts}
+Provides: ${php-gd:Provides}
+Recommends: ${php-gd:Recommends}
+Description: GD module for PHP
+ This package provides the GD module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-gmp
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-gmp:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-gmp:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-gmp:Replaces}
+Breaks: ${php-gmp:Breaks}
+Conflicts: ${php-gmp:Conflicts}
+Provides: ${php-gmp:Provides}
+Recommends: ${php-gmp:Recommends}
+Description: GMP module for PHP
+ This package provides the GMP module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-imap
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-imap:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-imap:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-imap:Replaces}
+Breaks: ${php-imap:Breaks}
+Conflicts: ${php-imap:Conflicts}
+Provides: ${php-imap:Provides}
+Recommends: ${php-imap:Recommends}
+Description: IMAP module for PHP
+ This package provides the IMAP module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-interbase
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-interbase:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-interbase:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-interbase:Replaces}
+Breaks: ${php-interbase:Breaks}
+Conflicts: ${php-interbase:Conflicts}
+Provides: ${php-interbase:Provides}
+Recommends: ${php-interbase:Recommends}
+Description: Interbase module for PHP
+ This package provides the Interbase module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-intl
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-intl:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-intl:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-intl:Replaces}
+Breaks: ${php-intl:Breaks}
+Conflicts: ${php-intl:Conflicts}
+Provides: ${php-intl:Provides}
+Recommends: ${php-intl:Recommends}
+Description: Internationalisation module for PHP
+ This package provides the Internationalisation module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-ldap
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-ldap:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-ldap:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-ldap:Replaces}
+Breaks: ${php-ldap:Breaks}
+Conflicts: ${php-ldap:Conflicts}
+Provides: ${php-ldap:Provides}
+Recommends: ${php-ldap:Recommends}
+Description: LDAP module for PHP
+ This package provides the LDAP module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-mbstring
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-mbstring:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-mbstring:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-mbstring:Replaces}
+Breaks: ${php-mbstring:Breaks}
+Conflicts: ${php-mbstring:Conflicts}
+Provides: ${php-mbstring:Provides}
+Recommends: ${php-mbstring:Recommends}
+Description: MBSTRING module for PHP
+ This package provides the MBSTRING module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-mysql
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-mysql:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-mysql:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-mysql:Replaces}
+Breaks: ${php-mysql:Breaks}
+Conflicts: ${php-mysql:Conflicts}
+Provides: ${php-mysql:Provides}
+Recommends: ${php-mysql:Recommends}
+Description: MySQL module for PHP
+ This package provides the MySQL module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-odbc
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-odbc:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-odbc:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-odbc:Replaces}
+Breaks: ${php-odbc:Breaks}
+Conflicts: ${php-odbc:Conflicts}
+Provides: ${php-odbc:Provides}
+Recommends: ${php-odbc:Recommends}
+Description: ODBC module for PHP
+ This package provides the ODBC module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-opcache
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-opcache:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-opcache:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-opcache:Replaces}
+Breaks: ${php-opcache:Breaks}
+Conflicts: ${php-opcache:Conflicts}
+Provides: ${php-opcache:Provides}
+Recommends: ${php-opcache:Recommends}
+Description: Zend OpCache module for PHP
+ This package provides the Zend OpCache module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-pgsql
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-pgsql:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-pgsql:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-pgsql:Replaces}
+Breaks: ${php-pgsql:Breaks}
+Conflicts: ${php-pgsql:Conflicts}
+Provides: ${php-pgsql:Provides}
+Recommends: ${php-pgsql:Recommends}
+Description: PostgreSQL module for PHP
+ This package provides the PostgreSQL module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-pspell
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-pspell:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-pspell:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-pspell:Replaces}
+Breaks: ${php-pspell:Breaks}
+Conflicts: ${php-pspell:Conflicts}
+Provides: ${php-pspell:Provides}
+Recommends: ${php-pspell:Recommends}
+Description: pspell module for PHP
+ This package provides the pspell module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-readline
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-readline:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-readline:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-readline:Replaces}
+Breaks: ${php-readline:Breaks}
+Conflicts: ${php-readline:Conflicts}
+Provides: ${php-readline:Provides}
+Recommends: ${php-readline:Recommends}
+Description: readline module for PHP
+ This package provides the readline module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-snmp
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-snmp:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-snmp:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-snmp:Replaces}
+Breaks: ${php-snmp:Breaks}
+Conflicts: ${php-snmp:Conflicts}
+Provides: ${php-snmp:Provides}
+Recommends: ${php-snmp:Recommends}
+Description: SNMP module for PHP
+ This package provides the SNMP module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-soap
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-soap:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-soap:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-soap:Replaces}
+Breaks: ${php-soap:Breaks}
+Conflicts: ${php-soap:Conflicts}
+Provides: ${php-soap:Provides}
+Recommends: ${php-soap:Recommends}
+Description: SOAP module for PHP
+ This package provides the SOAP module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-sqlite3
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-sqlite3:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-sqlite3:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-sqlite3:Replaces}
+Breaks: ${php-sqlite3:Breaks}
+Conflicts: ${php-sqlite3:Conflicts}
+Provides: ${php-sqlite3:Provides}
+Recommends: ${php-sqlite3:Recommends}
+Description: SQLite3 module for PHP
+ This package provides the SQLite3 module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-sybase
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-sybase:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-sybase:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-sybase:Replaces}
+Breaks: ${php-sybase:Breaks}
+Conflicts: ${php-sybase:Conflicts}
+Provides: ${php-sybase:Provides}
+Recommends: ${php-sybase:Recommends}
+Description: Sybase module for PHP
+ This package provides the Sybase module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-tidy
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-tidy:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-tidy:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-tidy:Replaces}
+Breaks: ${php-tidy:Breaks}
+Conflicts: ${php-tidy:Conflicts}
+Provides: ${php-tidy:Provides}
+Recommends: ${php-tidy:Recommends}
+Description: tidy module for PHP
+ This package provides the tidy module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-xml
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-xml:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-xml:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-xml:Replaces}
+Breaks: ${php-xml:Breaks}
+Conflicts: ${php-xml:Conflicts}
+Provides: ${php-xml:Provides}
+Recommends: ${php-xml:Recommends}
+Description: DOM, SimpleXML, XML, and XSL module for PHP
+ This package provides the DOM, SimpleXML, XML, and XSL module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php8.2-zip
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-zip:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-zip:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-zip:Replaces}
+Breaks: ${php-zip:Breaks}
+Conflicts: ${php-zip:Conflicts}
+Provides: ${php-zip:Provides}
+Recommends: ${php-zip:Recommends}
+Description: Zip module for PHP
+ This package provides the Zip module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
diff --git a/control.in b/control.in
new file mode 100644 (file)
index 0000000..c08aaec
--- /dev/null
@@ -0,0 +1,298 @@
+Source: php@PHP_VERSION@
+Section: php
+Priority: optional
+Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
+Uploaders: Ondřej Surý <ondrej@debian.org>,
+           Lior Kaplan <kaplan@debian.org>
+Build-Depends: apache2-dev (>= 2.4),
+               autoconf (>= 2.63),
+               automake,
+               bison,
+               chrpath,
+               debhelper (>= 9.20160709~),
+               default-libmysqlclient-dev | libmysqlclient-dev,
+               dh-apache2,
+               dpkg-dev (>= 1.16.1~),
+               firebird-dev [!hurd-any !m68k !hppa !ppc64] | firebird2.5-dev [!hurd-any !m68k !hppa !ppc64] | firebird2.1-dev [!hurd-any !m68k !hppa !ppc64],
+               flex,
+               freetds-dev,
+               libacl1-dev,
+               libapparmor-dev [linux-any],
+               libapr1-dev (>= 1.2.7-8),
+               libargon2-dev | libargon2-0-dev,
+               libbz2-dev,
+               libc-client-dev,
+               libcurl4-openssl-dev | libcurl-dev,
+               libdb-dev,
+               libedit-dev (>= 2.11-20080614-4),
+               libenchant-2-dev | libenchant-dev,
+               libevent-dev (>= 1.4.11),
+               libexpat1-dev (>= 1.95.2-2.1),
+               libffi-dev,
+               libfreetype6-dev,
+               libgcrypt20-dev (>> 1.6.3) | libgcrypt11-dev (<< 1.5.4),
+               libgd-dev (>= 2.1.0) | libgd2-dev,
+               libglib2.0-dev,
+               libgmp3-dev,
+               libicu-dev,
+               libjpeg-dev | libjpeg62-dev,
+               libkrb5-dev,
+               libldap2-dev,
+               liblmdb-dev,
+               libmagic-dev,
+               libmhash-dev (>= 0.8.8),
+               libnss-myhostname [linux-any],
+               libonig-dev,
+               libpam0g-dev,
+               libpcre2-dev (>= 10.30),
+               libpng-dev,
+               libpq-dev,
+               libpspell-dev,
+               libqdbm-dev,
+               libsasl2-dev,
+               libsnmp-dev,
+               libsodium-dev,
+               libsqlite3-dev,
+               libssl-dev,
+               libsystemd-dev [linux-any],
+               libtidy-dev (>= 1:5.2.0),
+               libtool (>= 2.2),
+               libwebp-dev,
+               libwrap0-dev,
+               libxml2-dev,
+               libxmltok1-dev,
+               libxslt1-dev (>= 1.0.18),
+               libzip-dev (>= 1.0.0),
+               locales-all | language-pack-de,
+               netbase,
+               netcat-openbsd,
+               re2c,
+               systemtap-sdt-dev [amd64 i386 powerpc armel armhf ia64],
+               tzdata,
+               unixodbc-dev,
+               zlib1g-dev
+Build-Conflicts: bind-dev,
+                 libxmlrpc-core-c3-dev
+Standards-Version: 4.5.0.0
+Vcs-Git: https://salsa.debian.org/php-team/php.git -b debian/main/@PHP_VERSION@
+Vcs-Browser: https://salsa.debian.org/php-team/php/-/tree/debian/main/@PHP_VERSION@
+Homepage: http://www.php.net/
+
+Package: libapache2-mod-php@PHP_VERSION@
+Section: httpd
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php@PHP_VERSION@-cli,
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         php@PHP_VERSION@-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: libapache2-mod-php,
+          php-json,
+          php@PHP_VERSION@-json,
+          ${php:Provides}
+Recommends: apache2
+Suggests: php-pear
+Description: server-side, HTML-embedded scripting language (Apache 2 module)
+ This package provides the PHP module for the Apache 2 webserver (as
+ found in the apache2-mpm-prefork package).  Please note that this package
+ ONLY works with Apache's prefork MPM, as it is not compiled thread-safe.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: libphp@PHP_VERSION@-embed
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php@PHP_VERSION@-cli,
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         php@PHP_VERSION@-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: libphp-embed,
+          php-json,
+          php@PHP_VERSION@-json,
+          ${php:Provides}
+Suggests: php-pear
+Description: HTML-embedded scripting language (Embedded SAPI library)
+ This package provides the library /usr/lib/libphp@PHP_VERSION@.so which can
+ be used by application developers to embed PHP scripting functionality.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+ .
+ WARNING: The embed SAPI is experimental and there's no guarantee that
+ the API/ABI will be kept compatible even between minor releases.  You
+ have been warned.
+
+Package: php@PHP_VERSION@
+Architecture: all
+Depends: libapache2-mod-php@PHP_VERSION@ | php@PHP_VERSION@-fpm | php@PHP_VERSION@-cgi,
+         php@PHP_VERSION@-common,
+         ${misc:Depends}
+Provides: php
+Description: server-side, HTML-embedded scripting language (metapackage)
+ This package is a metapackage that, when installed, guarantees that you
+ have at least one of the four server-side versions of the PHP interpreter
+ installed. Removing this package won't remove PHP from your system, however
+ it may remove other packages that depend on this one.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php@PHP_VERSION@-cgi
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php@PHP_VERSION@-cli,
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         php@PHP_VERSION@-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-cgi,
+          php-json,
+          php@PHP_VERSION@-json,
+          ${php:Provides}
+Suggests: php-pear
+Description: server-side, HTML-embedded scripting language (CGI binary)
+ This package provides the /usr/lib/cgi-bin/php CGI interpreter built
+ for use in Apache 2 with mod_actions, or any other CGI httpd that
+ supports a similar mechanism.  Note that MOST users probably
+ want the php@PHP_VERSION@-fpm package.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php@PHP_VERSION@-cli
+Architecture: any
+Depends: libedit2 (>= 2.11-20080614-4),
+         libmagic1,
+         media-types | mime-support,
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         php@PHP_VERSION@-opcache,
+         php@PHP_VERSION@-readline,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-cli,
+          php-json,
+          php@PHP_VERSION@-json,
+          ${php:Provides}
+Suggests: php-pear
+Description: command-line interpreter for the PHP scripting language
+ This package provides the /usr/bin/php@PHP_VERSION@ command interpreter, useful for
+ testing PHP scripts from a shell or performing general shell scripting tasks.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php@PHP_VERSION@-dev
+Depends: autoconf (>= 2.63),
+         automake (>= 1.11),
+         libpcre2-dev (>= 10.30),
+         libssl-dev,
+         php@PHP_VERSION@-cli (>= ${binary:Version}),
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         pkg-config,
+         shtool,
+         ${libtool:Depends},
+         ${misc:Depends},
+         ${perl:Depends}
+Conflicts: ${libtool:Conflicts}
+Architecture: any
+Recommends: pkg-php-tools
+Suggests: dh-php
+Description: Files for PHP@PHP_VERSION@ module development
+ This package provides the files from the PHP@PHP_VERSION@ source needed for compiling
+ additional modules.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php@PHP_VERSION@-fpm
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php@PHP_VERSION@-cli,
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         php@PHP_VERSION@-opcache,
+         procps,
+         systemd | systemd-tmpfiles,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-fpm,
+          php-json,
+          php@PHP_VERSION@-json,
+          ${php:Provides}
+Suggests: php-pear
+Pre-Depends: ${misc:Pre-Depends}
+Description: server-side, HTML-embedded scripting language (FPM-CGI binary)
+ This package provides the Fast Process Manager interpreter that runs
+ as a daemon and receives Fast/CGI requests.  Note that MOST Apache users
+ probably want the libapache2-mod-php@PHP_VERSION@ package.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php@PHP_VERSION@-phpdbg
+Architecture: any
+Depends: libmagic1,
+         media-types | mime-support,
+         php@PHP_VERSION@-cli,
+         php@PHP_VERSION@-common (= ${binary:Version}),
+         php@PHP_VERSION@-opcache,
+         tzdata,
+         ucf,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: php-json,
+          php-phpdbg,
+          php@PHP_VERSION@-json,
+          ${php:Provides}
+Recommends: php-readline
+Description: server-side, HTML-embedded scripting language (PHPDBG binary)
+ This package provides the /usr/bin/phpdbg command interpreter, useful for
+ stepthrough debugging of PHP code.
+ .
+ ${php:Extensions}
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
+
+Package: php@PHP_VERSION@-xsl
+Architecture: all
+Depends: php@PHP_VERSION@-common,
+         php@PHP_VERSION@-xml,
+         ${misc:Depends}
+Description: XSL module for PHP (dummy)
+ This package is a transitional dummy package and can be safely
+ removed.
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..3ffd595
--- /dev/null
+++ b/copyright
@@ -0,0 +1,726 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: php
+Upstream-Contact: https://bugs.php.net/
+Source: http://php.net/downloads.php
+
+Files: *
+Copyright: 1999-2018 The PHP Group.
+License: PHP-3.01
+
+Files: TSRM/*
+Copyright: 1999-2006 Andi Gutmans, Sascha Schumann, Zeev Suraski.
+License: BSD-TSRM
+
+Files: pear/install-pear-nozlib.phar
+Copyright:
+ 1996-2005 Daniel Stenberg <daniel@haxx.se>
+ 1997-2006 The PHP Group
+ 2004 The PEAR Group
+ 2001-2015 The PEAR developers
+ 2004-2005 Michael Wallner <mike@iworks.at>
+ 2004-2008 Greg Beaver <cellog@php.net>
+ Alexander Merz <alexmerz@php.net>
+ Baba Buehler <baba@babaz.com>
+ Bertrand Mansion <bmansion@mamasam.com>
+ David C. Morse <morse@php.net>
+ Hannes Magnusson <bjori@php.net>
+ Hans Lellelid <hans@velum.net>
+ Helgi Þormar Þorbjörnsson <helgi@php.net>
+ Ian Eure <ieure@php.net>
+ Mark Wiesemann <wiesemann@php.net>
+ Martin Jansen <mj@php.net>
+ Moritz Heidkamp <moritz.heidkamp@invision-team.de>
+ Paul M. Jones <pmjones@php.net>
+ Pierre-Alain Joye <paj@pearfr.org>
+ Sara Golemon <pollita@php.net>
+ Stephan Schmidt
+ Sterling Hughes <sterling@php.net>
+ Stig Bakken <ssb@php.net>
+ Tatsuhiko Miyagawa
+ Tomas V. V. Cox <cox@idecnet.com>
+ Vincent Blavet <vincent@blavet.net>
+ Wez Furlong <wez@thebrainroom.com>
+ 1997-2008 Vincent Blavet <vincent@phpconcept.net>
+ 2003 Sérgio Gonçalves Carvalho
+ 2003-2008 Stephan Schmidt <schst@php.net>
+ 2008 Chuck Burgess <ashnazg@php.net>
+License: BSD-2-clause and LGPL-3+
+
+Files: Zend/*
+Copyright: 1999-2006 Zend Technologies Ltd.
+License: Zend-Engine-2.00
+
+Files: ext/phar/tar.c
+Copyright: 2003-2007 Tim Kientzle
+          1999-2015 The PHP Group.
+License: BSD-2-clause
+
+Files: sapi/fpm/*
+Copyright: 2007-2009 Andrei Nigmatulin
+License: BSD-2-clause
+
+Files: ext/bcmath/libbcmath/*
+Copyright: 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
+          2000 Philip A. Nelson
+License: LGPL-2+
+
+Files: ext/fileinfo/libmagic/*
+Copyright: 1985-1995 Ian F. Darwin
+          1994-2009 Christos Zoulas <christos@zoulas.com>
+License: BSD-2-clause-libmagic
+
+Files: ext/date/lib/*
+Copyright: 2015-2017 Derick Rethans
+          2017 MongoDB, Inc.
+License: Expat
+
+Files: ext/mbstring/libmbfl/*
+Copyright: 1998,1999,2000,2001 HappySize, Inc.
+License: LGPL-2.1
+
+Files: debian/*
+Copyright: Ondřej Surý <ondrej@debian.org>
+License: Expat
+
+Files: debian/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch
+Copyright: 2008 Red Hat, Inc.
+License: PHP-3.01
+
+Files: ext/standard/rand.c
+Copyright: 1997-2002 Makoto Matsumoto and Takuji Nishimura,
+          2000-2003 Richard J. Wagner
+          1999-2015 The PHP Group.
+License: BSD-3-clause and PHP-3.01
+
+Files: ext/pdo_odbc/odbc_driver.c
+Copyright: 1999-2015 The PHP Group.
+License: PHP-3.0
+
+Files: ext/gd/tests/Rochester-Regular.otf
+Copyright: 2012 Sideshow
+License: Apache-2.0
+
+Files: ext/gd/libgd/*
+Copyright: 1991-2002, Thomas G. Lane
+ 1994-2002, Cold Spring Harbor Laboratory
+ 1996-2002, Thomas Boutell (Boutell.Com, Inc.)
+ 1999-2002, Greg Roelofs
+ 1999-2002, John Ellson <ellson@lucent.com>
+ 1999-2002, Philip Warner
+ 2000-2002, Maurice Szmurlo <Maurice.Szmurlo@info.unicaen.fr>
+ 2000-2002, Johan Van den Brande <johan@vandenbrande.com>
+ 2000-2002, Doug Becker <thebeckers@home.com>
+ 2000-2009, Pierre-Alain Joye <pierre@libgd.org>
+License: GD
+
+Files: ext/hash/sha3/*
+Copyright: Guido Bertoni,Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer
+License: CC0
+
+Files: ext/hash/sha3/*/brg_endian.h
+Copyright: 1998-2008, Brian Gladman
+License: BSD-3-clause
+
+Files: ext/mbstring/oniguruma/src/st.h ext/mbstring/oniguruma/src/st.c
+Copyright: 1989 Peter Moore
+License: public-domain
+ This is a public domain general purpose hash table package.
+
+Files: ext/mbstring/oniguruma/
+Copyright: 2002-2015  K.Kosako
+License: BSD-2-clause
+
+Files: ext/mbstring/ucgendat/
+Copyright: 1999-2003 The OpenLDAP Foundation
+License: OpenLDAP
+
+Files: ext/zip/lib/*
+Copyright: 1999-2008 Dieter Baron and Thomas Klausner
+License: BSD-3-clause
+
+Files: ext/zip/lib/config.h
+Copyright: 1999-2018 The PHP Group.
+License: PHP-3.01
+
+Files: ext/sqlite3/libsqlite/*
+Copyright: D. Richard Hipp <drh@hwaci.com>
+License: public-domain
+ The files listed have been put on the public domain by the sqlite3
+ contributors.
+
+Files: main/mergesort.c
+Copyright: 1992, 1993 The Regents of the University of California
+License: BSD-4-clause
+
+License: PHP-3.0
+ --------------------------------------------------------------------
+                   The PHP License, version 3.0
+ Copyright (c) 1999 - 2006 The PHP Group. All rights reserved.
+ --------------------------------------------------------------------
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, is permitted provided that the following conditions
+ are met:
+ .
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+ .
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+ .
+   3. The name "PHP" must not be used to endorse or promote products
+      derived from this software without prior written permission. For
+      written permission, please contact group@php.net.
+ .
+   4. Products derived from this software may not be called "PHP", nor
+      may "PHP" appear in their name, without prior written permission
+      from group@php.net.  You may indicate that your software works in
+      conjunction with PHP by saying "Foo for PHP" instead of calling
+      it "PHP Foo" or "phpfoo"
+ .
+   5. The PHP Group may publish revised and/or new versions of the
+      license from time to time. Each version will be given a
+      distinguishing version number.
+      Once covered code has been published under a particular version
+      of the license, you may always continue to use it under the terms
+      of that version. You may also choose to use such covered code
+      under the terms of any subsequent version of the license
+      published by the PHP Group. No one other than the PHP Group has
+      the right to modify the terms applicable to covered code created
+      under this License.
+ .
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes PHP, freely available from
+      <http://www.php.net/>".
+ .
+ THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
+ ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE PHP
+ DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: PHP-3.01
+ --------------------------------------------------------------------
+                   The PHP License, version 3.01
+ Copyright (c) 1999 - 2015 The PHP Group. All rights reserved.
+ --------------------------------------------------------------------
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, is permitted provided that the following conditions
+ are met:
+ .
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+ .
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+ .
+   3. The name "PHP" must not be used to endorse or promote products
+      derived from this software without prior written permission. For
+      written permission, please contact group@php.net.
+ .
+   4. Products derived from this software may not be called "PHP", nor
+      may "PHP" appear in their name, without prior written permission
+      from group@php.net.  You may indicate that your software works in
+      conjunction with PHP by saying "Foo for PHP" instead of calling
+      it "PHP Foo" or "phpfoo"
+ .
+   5. The PHP Group may publish revised and/or new versions of the
+      license from time to time. Each version will be given a
+      distinguishing version number.
+      Once covered code has been published under a particular version
+      of the license, you may always continue to use it under the terms
+      of that version. You may also choose to use such covered code
+      under the terms of any subsequent version of the license
+      published by the PHP Group. No one other than the PHP Group has
+      the right to modify the terms applicable to covered code created
+      under this License.
+ .
+   6. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes PHP software, freely available from
+      <http://www.php.net/software/>".
+ .
+ THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
+ ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE PHP
+ DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: Zend-Engine-2.00
+ Redistribution and use in source and binary forms, with or without
+ modification, is permitted provided that the following conditions
+ are met:
+ .
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+ .
+   2. Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+ .
+   3. The names "Zend" and "Zend Engine" must not be used to endorse
+      or promote products derived from this software without prior
+      permission from Zend Technologies Ltd. For written permission,
+      please contact license@zend.com.
+ .
+   4. Zend Technologies Ltd. may publish revised and/or new versions
+      of the license from time to time. Each version will be given a
+      distinguishing version number.
+      Once covered code has been published under a particular version
+      of the license, you may always continue to use it under the
+      terms of that version. You may also choose to use such covered
+      code under the terms of any subsequent version of the license
+      published by Zend Technologies Ltd. No one other than Zend
+      Technologies Ltd. has the right to modify the terms applicable
+      to covered code created under this License.
+ .
+   5. Redistributions of any form whatsoever must retain the following
+      acknowledgment:
+      "This product includes the Zend Engine, freely available at
+      http://www.zend.com"
+ .
+   6. All advertising materials mentioning features or use of this
+      software must display the following acknowledgment:
+      "The Zend Engine is freely available at http://www.zend.com"
+ .
+ THIS SOFTWARE IS PROVIDED BY ZEND TECHNOLOGIES LTD. ``AS IS'' AND
+ ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ZEND
+ TECHNOLOGIES LTD.  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ .
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ .
+ 3. The names of its contributors may not be used to endorse or promote
+    products derived from this software without specific prior written
+    permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: LGPL-2+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License version 2 can be found in ‘/usr/share/common-licenses/LGPL-2’.
+
+License: LGPL-2.1
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’.
+
+License: LGPL-3+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian GNU/Linux systems, the complete text of the GNU Lesser General
+ Public License can be found in `/usr/share/common-licenses/LGPL'.
+
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: BSD-2-clause-libmagic
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+    notice immediately at the beginning of the file, without modification,
+    this list of conditions, and the following disclaimer.
+ .
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+License: BSD-TSRM
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+ - Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+ .
+ - Neither name of the copyright holders nor the names of their contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: Apache-2.0
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+ .
+      http://www.apache.org/licenses/LICENSE-2.0
+ .
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ .
+ On Debian systems, the full text of the Apache Software License version 2 can
+ be found in the file `/usr/share/common-licenses/Apache-2.0'.
+
+License: GD
+ Permission has been granted to copy, distribute and modify gd in any
+ context without fee, including a commercial application, provided that
+ this notice is present in user-accessible supporting documentation.
+ .
+ This does not affect your ownership of the derived work itself, and the
+ intent is to assure proper credit for the authors of gd, not to
+ interfere with your productive use of gd. If you have questions, ask.
+ "Derived works" includes all programs that utilize the library. Credit
+ must be given in user-accessible documentation.
+ .
+ This software is provided "AS IS." The copyright holders disclaim all
+ warranties, either express or implied, including but not limited to
+ implied warranties of merchantability and fitness for a particular
+ purpose, with respect to this code and accompanying documentation.
+
+License: CC0
+ Statement of Purpose
+ .
+ The laws of most jurisdictions throughout the world automatically
+ confer exclusive Copyright and Related Rights (defined below) upon
+ the creator and subsequent owner(s) (each and all, an "owner") of an
+ original work of authorship and/or a database (each, a "Work").
+ .
+ Certain owners wish to permanently relinquish those rights to a Work
+ for the purpose of contributing to a commons of creative, cultural
+ and scientific works ("Commons") that the public can reliably and
+ without fear of later claims of infringement build upon, modify,
+ incorporate in other works, reuse and redistribute as freely as
+ possible in any form whatsoever and for any purposes, including
+ without limitation commercial purposes. These owners may contribute
+ to the Commons to promote the ideal of a free culture and the further
+ production of creative, cultural and scientific works, or to gain
+ reputation or greater distribution for their Work in part through the
+ use and efforts of others.
+ .
+ For these and/or other purposes and motivations, and without any
+ expectation of additional consideration or compensation, the person
+ associating CC0 with a Work (the "Affirmer"), to the extent that he
+ or she is an owner of Copyright and Related Rights in the Work,
+ voluntarily elects to apply CC0 to the Work and publicly distribute
+ the Work under its terms, with knowledge of his or her Copyright and
+ Related Rights in the Work and the meaning and intended legal effect
+ of CC0 on those rights.
+ .
+ 1. Copyright and Related Rights. A Work made available under CC0 may
+    be protected by copyright and related or neighboring rights
+    ("Copyright and Related Rights"). Copyright and Related Rights
+    include, but are not limited to, the following:
+ .
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ .
+  ii. moral rights retained by the original author(s) and/or
+      performer(s);
+ .
+  iii. publicity and privacy rights pertaining to a person's image or
+       likeness depicted in a Work;
+ .
+  iv. rights protecting against unfair competition in regards to a
+      Work, subject to the limitations in paragraph 4(a), below;
+ .
+  v. rights protecting the extraction, dissemination, use and reuse of
+     data in a Work;
+ .
+  vi. database rights (such as those arising under Directive 96/9/EC
+      of the European Parliament and of the Council of 11 March 1996
+      on the legal protection of databases, and under any national
+      implementation thereof, including any amended or successor
+      version of such directive); and
+ .
+  vii. other similar, equivalent or corresponding rights throughout
+       the world based on applicable law or treaty, and any national
+       implementations thereof.
+ .
+ 2. Waiver. To the greatest extent permitted by, but not in
+    contravention of, applicable law, Affirmer hereby overtly, fully,
+    permanently, irrevocably and unconditionally waives, abandons, and
+    surrenders all of Affirmer's Copyright and Related Rights and
+    associated claims and causes of action, whether now known or
+    unknown (including existing as well as future claims and causes of
+    action), in the Work (i) in all territories worldwide, (ii) for
+    the maximum duration provided by applicable law or treaty
+    (including future time extensions), (iii) in any current or future
+    medium and for any number of copies, and (iv) for any purpose
+    whatsoever, including without limitation commercial, advertising
+    or promotional purposes (the "Waiver"). Affirmer makes the Waiver
+    for the benefit of each member of the public at large and to the
+    detriment of Affirmer's heirs and successors, fully intending that
+    such Waiver shall not be subject to revocation, rescission,
+    cancellation, termination, or any other legal or equitable action
+    to disrupt the quiet enjoyment of the Work by the public as
+    contemplated by Affirmer's express Statement of Purpose.
+ .
+ 3. Public License Fallback. Should any part of the Waiver for any
+    reason be judged legally invalid or ineffective under applicable
+    law, then the Waiver shall be preserved to the maximum extent
+    permitted taking into account Affirmer's express Statement of
+    Purpose. In addition, to the extent the Waiver is so judged
+    Affirmer hereby grants to each affected person a royalty-free, non
+    transferable, non sublicensable, non exclusive, irrevocable and
+    unconditional license to exercise Affirmer's Copyright and Related
+    Rights in the Work (i) in all territories worldwide, (ii) for the
+    maximum duration provided by applicable law or treaty (including
+    future time extensions), (iii) in any current or future medium and
+    for any number of copies, and (iv) for any purpose whatsoever,
+    including without limitation commercial, advertising or
+    promotional purposes (the "License"). The License shall be deemed
+    effective as of the date CC0 was applied by Affirmer to the
+    Work. Should any part of the License for any reason be judged
+    legally invalid or ineffective under applicable law, such partial
+    invalidity or ineffectiveness shall not invalidate the remainder
+    of the License, and in such case Affirmer hereby affirms that he
+    or she will not (i) exercise any of his or her remaining Copyright
+    and Related Rights in the Work or (ii) assert any associated
+    claims and causes of action with respect to the Work, in either
+    case contrary to Affirmer's express Statement of Purpose.
+ .
+ 4. Limitations and Disclaimers.
+ .
+  a. No trademark or patent rights held by Affirmer are waived,
+     abandoned, surrendered, licensed or otherwise affected by this
+     document.
+ .
+  b. Affirmer offers the Work as-is and makes no representations or
+     warranties of any kind concerning the Work, express, implied,
+     statutory or otherwise, including without limitation warranties
+     of title, merchantability, fitness for a particular purpose, non
+     infringement, or the absence of latent or other defects,
+     accuracy, or the present or absence of errors, whether or not
+     discoverable, all to the greatest extent permissible under
+     applicable law.
+ .
+  c. Affirmer disclaims responsibility for clearing rights of other
+     persons that may apply to the Work or any use thereof, including
+     without limitation any person's Copyright and Related Rights in
+     the Work. Further, Affirmer disclaims responsibility for
+     obtaining any necessary consents, permissions or other rights
+     required for any use of the Work.
+ .
+  d. Affirmer understands and acknowledges that Creative Commons is
+     not a party to this document and has no duty or obligation with
+     respect to this CC0 or use of the Work.
+
+License: OpenLDAP
+ .
+ Redistribution and use of this software and associated documentation
+ ("Software"), with or without modification, are permitted provided
+ that the following conditions are met:
+ .
+ 1. Redistributions in source form must retain copyright statements
+    and notices,
+ .
+ 2. Redistributions in binary form must reproduce applicable copyright
+    statements and notices, this list of conditions, and the following
+    disclaimer in the documentation and/or other materials provided
+    with the distribution, and
+ .
+ 3. Redistributions must contain a verbatim copy of this document.
+ .
+ The OpenLDAP Foundation may revise this license from time to time.
+ Each revision is distinguished by a version number.  You may use this
+ Software under terms of this license revision or under the terms of
+ any subsequent revision of the license.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
+ CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE
+ AUTHOR(S) OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ .
+ The names of the authors and copyright holders must not be used in
+ advertising or otherwise to promote the sale, use or other dealing in
+ this Software without specific, written prior permission.  Title to
+ copyright in this Software shall at all times remain with copyright
+ holders.
+ .
+ OpenLDAP is a registered trademark of the OpenLDAP Foundation.
+
+License: BSD-4-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ 3. All advertising materials mentioning features or use of this software
+    must display the following acknowledgement:
+       This product includes software developed by the University of
+       California, Berkeley and its contributors.
+ 4. Neither the name of the University nor the names of its contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
diff --git a/gbp.conf b/gbp.conf
new file mode 100644 (file)
index 0000000..ade4327
--- /dev/null
+++ b/gbp.conf
@@ -0,0 +1,10 @@
+[DEFAULT]
+debian-branch = debian/bookworm/8.2
+upstream-branch = upstream/8.2
+pristine-tar = True
+
+[dch]
+meta = 1
+
+[import-orig]
+filter = ['.gitignore']
diff --git a/libapache2-mod-php.apache2 b/libapache2-mod-php.apache2
new file mode 100644 (file)
index 0000000..1d5f6b6
--- /dev/null
@@ -0,0 +1,2 @@
+mod debian/php@PHP_VERSION@.load
+mod debian/php@PHP_VERSION@.conf
diff --git a/libapache2-mod-php.dirs.extra b/libapache2-mod-php.dirs.extra
new file mode 100644 (file)
index 0000000..1204391
--- /dev/null
@@ -0,0 +1,2 @@
+/etc/apache2/mods-available
+/usr/lib/apache2/modules
diff --git a/libapache2-mod-php.install.extra b/libapache2-mod-php.install.extra
new file mode 100755 (executable)
index 0000000..3a6a780
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/apache2/modules/libphp@PHP_VERSION@.so /usr/lib/apache2/modules/
diff --git a/libapache2-mod-php.postinst.extra b/libapache2-mod-php.postinst.extra
new file mode 100644 (file)
index 0000000..923e475
--- /dev/null
@@ -0,0 +1,48 @@
+if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then
+    . /usr/share/apache2/apache2-maintscript-helper
+
+    php_enable() {
+       local a2query_ret=0
+       a2query -m "php@PHP_VERSION@" > /dev/null 2>&1 || a2query_ret=$?
+       if [ "$a2query_ret" -eq 0 ] ; then
+           apache2_msg "info" "$DPKG_MAINTSCRIPT_PACKAGE: not switching MPM - already enabled"
+           return 1
+       elif [ "$a2query_ret" -eq 32     ] ; then
+           apache2_msg "info" "$DPKG_MAINTSCRIPT_PACKAGE: not switching MPM - disabled by maintainer"
+           return 1
+       fi
+
+       PHP_MODULE=$(a2query -m | sed -n 's/^\(php[\.0-9]*\) (enabled.*)/\1/p')
+        if [ -n "$PHP_MODULE" -a "$PHP_MODULE" != "php@PHP_VERSION@" ]; then
+           apache2_msg "err" "$DPKG_MAINTSCRIPT_PACKAGE: $PHP_MODULE module already enabled, not enabling PHP @PHP_VERSION@"
+           return 1
+       fi
+
+       mpm=$(a2query -M)
+       case "$(a2query -M)" in
+           prefork|itk) return 0;;
+           *) if apache2_switch_mpm prefork; then return 0; fi;;
+       esac
+        apache2_msg "err" "$DPKG_MAINTSCRIPT_PACKAGE: Could not switch to prefork MPM, not enabling PHP @PHP_VERSION@"
+       return 1
+    }
+
+else
+    echo "Warning: Could not load Apache 2.4 maintainer script helper."
+
+    php_enable() {
+        return 1;
+    }
+
+fi
+
+# we've registered a trigger to handle extension updates.
+if [ "$1" = "triggered" ] && [ "$2" = "/etc/php/@PHP_VERSION@/apache2/conf.d" ]; then
+    if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then
+       . /usr/share/apache2/apache2-maintscript-helper
+       apache2_reload restart
+    fi
+    exit 0
+elif [ "$1" != "configure" ]; then
+    exit 0
+fi
diff --git a/libphp-embed.dirs.extra b/libphp-embed.dirs.extra
new file mode 100644 (file)
index 0000000..0bf940b
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib
diff --git a/libphp-embed.install.extra b/libphp-embed.install.extra
new file mode 100644 (file)
index 0000000..f11d27a
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/libphp@PHP_VERSION@.so
diff --git a/libphp-embed.postinst.extra b/libphp-embed.postinst.extra
new file mode 100644 (file)
index 0000000..f719085
--- /dev/null
@@ -0,0 +1,6 @@
+if [ "$1" = "configure" ]; then
+    update-alternatives \
+       --install /usr/lib/libphp@PHP_MAJOR@.so libphp@PHP_MAJOR@ /usr/lib/libphp@PHP_VERSION@.so @PHP_MAJOR@@PHP_MINOR@
+fi
+
+[ "$1" = "configure" ] && ldconfig
diff --git a/libphp-embed.postrm.extra b/libphp-embed.postrm.extra
new file mode 100644 (file)
index 0000000..2ab961e
--- /dev/null
@@ -0,0 +1 @@
+[ "$1" = "remove" ] && ldconfig
diff --git a/libphp-embed.prerm.extra b/libphp-embed.prerm.extra
new file mode 100644 (file)
index 0000000..02518d5
--- /dev/null
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then
+    update-alternatives --remove libphp@PHP_MAJOR@ /usr/lib/libphp@PHP_VERSION@.so
+fi
diff --git a/patches/0001-libtool_fixes.patch b/patches/0001-libtool_fixes.patch
new file mode 100644 (file)
index 0000000..ed5fd56
--- /dev/null
@@ -0,0 +1,21 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:50 +0200
+Subject: libtool_fixes
+
+---
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b13c450..1a236a5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1603,8 +1603,6 @@ AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [
+ ])
+ AC_PROG_LIBTOOL
+-PHP_SET_LIBTOOL_VARIABLE([--silent])
+-
+ dnl libtool 1.4.3 needs this.
+ PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps])
diff --git a/patches/0002-debian_quirks.patch b/patches/0002-debian_quirks.patch
new file mode 100644 (file)
index 0000000..8f1320f
--- /dev/null
@@ -0,0 +1,145 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:51 +0200
+Subject: debian_quirks
+
+---
+ configure.ac          |  6 +++++-
+ php.ini-development   |  2 +-
+ php.ini-production    |  2 +-
+ sapi/cli/php.1.in     | 11 ++++++-----
+ scripts/Makefile.frag |  4 ++--
+ scripts/php-config.in |  8 ++++----
+ scripts/phpize.in     |  4 ++--
+ 7 files changed, 21 insertions(+), 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1a236a5..4cef181 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1194,7 +1194,7 @@ fi
+ PHP_ARG_WITH([pear],
+   [whether to install PEAR],
+   [AS_HELP_STRING([[--with-pear[=DIR]]],
+-    [Install PEAR in DIR [PREFIX/lib/php]])],
++    [Install PEAR in DIR [PREFIX/share/php]])],
+   [no],
+   [yes])
+@@ -1225,6 +1225,8 @@ if test "$PHP_PEAR" != "no"; then
+   PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/pear/Makefile.frag,$abs_srcdir/pear,pear)
+ fi
++PEAR_INSTALLDIR=/usr/share/php
++
+ dnl Configuring Zend and TSRM.
+ dnl ----------------------------------------------------------------------------
+@@ -1366,6 +1368,8 @@ datadir=`eval eval echo $datadir`
+ dnl Build extension directory path.
+ ZEND_MODULE_API_NO=`$EGREP '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modules.h|"${SED}" 's/#define ZEND_MODULE_API_NO //'`
++AC_SUBST(ZEND_MODULE_API_NO)
++
+ if test -z "$EXTENSION_DIR"; then
+   extbasedir=$ZEND_MODULE_API_NO
+   if test "$oldstyleextdir" = "yes"; then
+diff --git a/php.ini-development b/php.ini-development
+index 62320e3..ddf11ac 100644
+--- a/php.ini-development
++++ b/php.ini-development
+@@ -740,7 +740,7 @@ default_charset = "UTF-8"
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++;include_path = ".:/usr/share/php"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+diff --git a/php.ini-production b/php.ini-production
+index cb36654..5ecc303 100644
+--- a/php.ini-production
++++ b/php.ini-production
+@@ -742,7 +742,7 @@ default_charset = "UTF-8"
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++;include_path = ".:/usr/share/php"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+diff --git a/sapi/cli/php.1.in b/sapi/cli/php.1.in
+index abf0537..e6a3521 100644
+--- a/sapi/cli/php.1.in
++++ b/sapi/cli/php.1.in
+@@ -365,13 +365,14 @@ Shows configuration for extension
+ Show configuration file names
+ .SH FILES
+ .TP 15
+-.B php\-cli.ini
++.B /etc/php/@PHP_MAJOR_VERSION@.@PHP_MINOR_VERSION@/cli/php.ini
+ The configuration file for the CLI version of PHP.
+ .TP
+-.B php.ini
+-The standard configuration file will only be used when
+-.B php\-cli.ini
+-cannot be found.
+++.B /etc/php/@PHP_MAJOR_VERSION@.@PHP_MINOR_VERSION@/cgi/php.ini
+++The configuration file for the CGI version of PHP.
+++.TP
+++.B /etc/php/@PHP_MAJOR_VERSION@.@PHP_MINOR_VERSION@/apache2/php.ini
+++The configuration file for the version of PHP that apache2 uses.
+ .SH EXAMPLES
+ .TP 5
+ \fI@program_prefix@php \-r 'echo "Hello World\\n";'\fP
+diff --git a/scripts/Makefile.frag b/scripts/Makefile.frag
+index 1049832..e543263 100644
+--- a/scripts/Makefile.frag
++++ b/scripts/Makefile.frag
+@@ -2,8 +2,8 @@
+ # Build environment install
+ #
+-phpincludedir = $(includedir)/php
+-phpbuilddir = $(libdir)/build
++phpincludedir = $(includedir)/php/$(DEBIAN_PHP_API)
++phpbuilddir = $(prefix)/lib/php/$(DEBIAN_PHP_API)/build
+ BUILD_FILES = \
+       scripts/phpize.m4 \
+diff --git a/scripts/php-config.in b/scripts/php-config.in
+index 9271e87..355be04 100644
+--- a/scripts/php-config.in
++++ b/scripts/php-config.in
+@@ -6,11 +6,11 @@ datarootdir="@datarootdir@"
+ exec_prefix="@exec_prefix@"
+ version="@PHP_VERSION@"
+ vernum="@PHP_VERSION_ID@"
+-include_dir="@includedir@/php"
+-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@"
++include_dir="@includedir@/php/@DEBIAN_PHP_API@"
++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 $(getconf LFS_CFLAGS)"
++ldflags="-L$prefix/lib/php/@DEBIAN_PHP_API@ @PHP_LDFLAGS@"
+ libs="@EXTRA_LIBS@"
+-extension_dir='@EXTENSION_DIR@'
++extension_dir="@EXTENSION_DIR@"
+ man_dir=`eval echo @mandir@`
+ program_prefix="@program_prefix@"
+ program_suffix="@program_suffix@"
+diff --git a/scripts/phpize.in b/scripts/phpize.in
+index 7d9c1df..0846bf2 100644
+--- a/scripts/phpize.in
++++ b/scripts/phpize.in
+@@ -4,8 +4,8 @@
+ prefix='@prefix@'
+ datarootdir='@datarootdir@'
+ exec_prefix="`eval echo @exec_prefix@`"
+-phpdir="`eval echo @libdir@`/build"
+-includedir="`eval echo @includedir@`/php"
++phpdir="$prefix/lib/php/@DEBIAN_PHP_API@/build"
++includedir="$prefix/include/php/@DEBIAN_PHP_API@"
+ builddir="`pwd`"
+ SED="@SED@"
diff --git a/patches/0003-php-5.4.9-phpinfo.patch b/patches/0003-php-5.4.9-phpinfo.patch
new file mode 100644 (file)
index 0000000..3d27d1d
--- /dev/null
@@ -0,0 +1,38 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:51 +0200
+Subject: php-5.4.9-phpinfo
+
+Drop "Configure Command" from phpinfo as it doesn't
+provide any useful information.
+The available extensions are not related to this command.
+---
+ ext/standard/info.c                               | 3 ---
+ ext/standard/tests/general_functions/phpinfo.phpt | 1 -
+ 2 files changed, 4 deletions(-)
+
+diff --git a/ext/standard/info.c b/ext/standard/info.c
+index b7e9fe4..dd25119 100644
+--- a/ext/standard/info.c
++++ b/ext/standard/info.c
+@@ -834,9 +834,6 @@ PHPAPI ZEND_COLD void php_print_info(int flag)
+ #ifdef PHP_BUILD_ARCH
+               php_info_print_table_row(2, "Architecture", PHP_BUILD_ARCH);
+ #endif
+-#ifdef CONFIGURE_COMMAND
+-              php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND );
+-#endif
+               if (sapi_module.pretty_name) {
+                       php_info_print_table_row(2, "Server API", sapi_module.pretty_name );
+diff --git a/ext/standard/tests/general_functions/phpinfo.phpt b/ext/standard/tests/general_functions/phpinfo.phpt
+index 57ba13b..2e2fae8 100644
+--- a/ext/standard/tests/general_functions/phpinfo.phpt
++++ b/ext/standard/tests/general_functions/phpinfo.phpt
+@@ -17,7 +17,6 @@
+ System => %s
+ Build Date => %s%a
+-Configure Command => %s
+ Server API => Command Line Interface
+ Virtual Directory Support => %s
+ Configuration File (php.ini) Path => %s
diff --git a/patches/0004-extension_api.patch b/patches/0004-extension_api.patch
new file mode 100644 (file)
index 0000000..a8fcbef
--- /dev/null
@@ -0,0 +1,62 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:51 +0200
+Subject: extension_api
+
+---
+ configure.ac          | 5 ++++-
+ scripts/php-config.in | 4 ++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4cef181..b67338e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1370,8 +1370,10 @@ ZEND_MODULE_API_NO=`$EGREP '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modul
+ AC_SUBST(ZEND_MODULE_API_NO)
++DEBIAN_PHP_API=$ZEND_MODULE_API_NO
++
+ if test -z "$EXTENSION_DIR"; then
+-  extbasedir=$ZEND_MODULE_API_NO
++  extbasedir=$DEBIAN_PHP_API
+   if test "$oldstyleextdir" = "yes"; then
+     if test "$PHP_DEBUG" = "1"; then
+       part1=debug
+@@ -1505,6 +1507,7 @@ PHP_SUBST(CXX)
+ PHP_SUBST(CXXFLAGS)
+ PHP_SUBST(CXXFLAGS_CLEAN)
+ PHP_SUBST_OLD(DEBUG_CFLAGS)
++PHP_SUBST_OLD(DEBIAN_PHP_API)
+ PHP_SUBST_OLD(EXTENSION_DIR)
+ PHP_SUBST_OLD(EXTRA_LDFLAGS)
+ PHP_SUBST_OLD(EXTRA_LDFLAGS_PROGRAM)
+diff --git a/scripts/php-config.in b/scripts/php-config.in
+index 355be04..cac95ac 100644
+--- a/scripts/php-config.in
++++ b/scripts/php-config.in
+@@ -19,6 +19,7 @@ php_cli_binary=NONE
+ php_cgi_binary=NONE
+ configure_options="@CONFIGURE_OPTIONS@"
+ php_sapis="@PHP_INSTALLED_SAPIS@"
++phpapi="@DEBIAN_PHP_API@"
+ ini_dir="@EXPANDED_PHP_CONFIG_FILE_SCAN_DIR@"
+ ini_path="@EXPANDED_PHP_CONFIG_FILE_PATH@"
+@@ -59,6 +60,8 @@ case "$1" in
+   echo $include_dir;;
+ --php-binary)
+   echo $php_binary;;
++--phpapi)
++  echo $phpapi;;
+ --php-sapis)
+   echo $php_sapis;;
+ --configure-options)
+@@ -86,6 +89,7 @@ Options:
+   --man-dir           [$man_dir]
+   --php-binary        [$php_binary]
+   --php-sapis         [$php_sapis]
++  --phpapi            [$phpapi]
+   --ini-path          [$ini_path]
+   --ini-dir           [$ini_dir]
+   --configure-options [$configure_options]
diff --git a/patches/0005-php.ini_securitynotes.patch b/patches/0005-php.ini_securitynotes.patch
new file mode 100644 (file)
index 0000000..8ca7902
--- /dev/null
@@ -0,0 +1,34 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:52 +0200
+Subject: php.ini_securitynotes
+
+---
+ php.ini-development | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/php.ini-development b/php.ini-development
+index ddf11ac..1565f6b 100644
+--- a/php.ini-development
++++ b/php.ini-development
+@@ -315,6 +315,12 @@ serialize_precision = -1
+ ; or per-virtualhost web server configuration file.
+ ; Note: disables the realpath cache
+ ; https://php.net/open-basedir
++
++; NOTE: this is considered a "broken" security measure.
++;       Applications relying on this feature will not receive full
++;       support by the security team.  For more information please
++;       see /usr/share/doc/php-common/README.Debian.security
++;
+ ;open_basedir =
+ ; This directive allows you to disable certain functions.
+@@ -1372,7 +1378,7 @@ session.save_handler = files
+ ; where MODE is the octal representation of the mode. Note that this
+ ; does not overwrite the process's umask.
+ ; https://php.net/session.save-path
+-;session.save_path = "/tmp"
++;session.save_path = "/var/lib/php/sessions"
+ ; Whether to use strict session mode.
+ ; Strict session mode does not accept an uninitialized session ID, and
diff --git a/patches/0006-php-5.4.7-libdb.patch b/patches/0006-php-5.4.7-libdb.patch
new file mode 100644 (file)
index 0000000..0e76b3e
--- /dev/null
@@ -0,0 +1,103 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:52 +0200
+Subject: php-5.4.7-libdb
+
+---
+ ext/dba/config.m4 | 52 ++--------------------------------------------------
+ ext/dba/dba.c     |  8 ++++++++
+ 2 files changed, 10 insertions(+), 50 deletions(-)
+
+diff --git a/ext/dba/config.m4 b/ext/dba/config.m4
+index 1e80319..51bdd84 100644
+--- a/ext/dba/config.m4
++++ b/ext/dba/config.m4
+@@ -375,61 +375,13 @@ if test "$PHP_DB4" != "no"; then
+   dbdp4="/usr/local/BerkeleyDB.4."
+   dbdp5="/usr/local/BerkeleyDB.5."
+   for i in $PHP_DB4 ${dbdp5}1 ${dbdp5}0 ${dbdp4}8 ${dbdp4}7 ${dbdp4}6 ${dbdp4}5 ${dbdp4}4 ${dbdp4}3 ${dbdp4}2 ${dbdp4}1 ${dbdp}0 /usr/local /usr; do
+-    if test -f "$i/db5/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/db5/db.h
+-      break
+-    elif test -f "$i/db4/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/db4/db.h
+-      break
+-    elif test -f "$i/include/db5.3/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db5.3/db.h
+-      break
+-    elif test -f "$i/include/db5.1/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db5.1/db.h
+-      break
+-    elif test -f "$i/include/db5.0/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db5.0/db.h
+-      break
+-    elif test -f "$i/include/db4.8/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db4.8/db.h
+-      break
+-    elif test -f "$i/include/db4.7/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db4.7/db.h
+-      break
+-    elif test -f "$i/include/db4.6/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db4.6/db.h
+-      break
+-    elif test -f "$i/include/db4.5/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db4.5/db.h
+-      break
+-    elif test -f "$i/include/db4/db.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db4/db.h
+-      break
+-    elif test -f "$i/include/db/db4.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db/db4.h
+-      break
+-    elif test -f "$i/include/db4.h"; then
+-      THIS_PREFIX=$i
+-      THIS_INCLUDE=$i/include/db4.h
+-      break
+-    elif test -f "$i/include/db.h"; then
++    if test -f "$i/include/db.h"; then
+       THIS_PREFIX=$i
+       THIS_INCLUDE=$i/include/db.h
+       break
+     fi
+   done
+-  PHP_DBA_DB_CHECK(4, db-5.3 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)])
++  PHP_DBA_DB_CHECK(4, db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)])
+ fi
+ PHP_DBA_STD_RESULT(db4,Berkeley DB4)
+diff --git a/ext/dba/dba.c b/ext/dba/dba.c
+index 7e0f56b..9e9d700 100644
+--- a/ext/dba/dba.c
++++ b/ext/dba/dba.c
+@@ -50,6 +50,10 @@
+ #include "php_lmdb.h"
+ #include "dba_arginfo.h"
++#ifdef DB4_INCLUDE_FILE
++#include DB4_INCLUDE_FILE
++#endif
++
+ PHP_MINIT_FUNCTION(dba);
+ PHP_MSHUTDOWN_FUNCTION(dba);
+ PHP_MINFO_FUNCTION(dba);
+@@ -387,6 +391,10 @@ PHP_MINFO_FUNCTION(dba)
+       php_info_print_table_start();
+       php_info_print_table_row(2, "DBA support", "enabled");
++#ifdef DB_VERSION_STRING
++      php_info_print_table_row(2, "libdb header version", DB_VERSION_STRING);
++      php_info_print_table_row(2, "libdb library version", db_version(NULL, NULL, NULL));
++#endif
+       if (handlers.s) {
+               smart_str_0(&handlers);
+               php_info_print_table_row(2, "Supported handlers", ZSTR_VAL(handlers.s));
diff --git a/patches/0007-Add-support-for-use-of-the-system-timezone-database.patch b/patches/0007-Add-support-for-use-of-the-system-timezone-database.patch
new file mode 100644 (file)
index 0000000..1891ee2
--- /dev/null
@@ -0,0 +1,675 @@
+From: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
+Date: Wed, 25 Aug 2021 16:47:17 +0200
+Subject: Add-support-for-use-of-the-system-timezone-database
+
+# License: MIT
+# http://opensource.org/licenses/MIT
+
+# License: MIT
+# http://opensource.org/licenses/MIT
+
+Add support for use of the system timezone database, rather
+than embedding a copy.  Discussed upstream but was not desired.
+
+History:
+r21: adapt for timelib 2021.03 (in 8.1.0)
+r20: adapt for timelib 2020.03 (in 8.0.10RC1)
+r19: adapt for timelib 2020.02 (in 8.0.0beta2)
+r18: adapt for autotool change in 7.3.3RC1
+r17: adapt for timelib 2018.01 (in 7.3.2RC1)
+r16: adapt for timelib 2017.06 (in 7.2.3RC1)
+r15: adapt for timelib 2017.05beta7 (in 7.2.0RC1)
+r14: improve check for valid tz file
+r13: adapt for upstream changes to use PHP allocator
+r12: adapt for upstream changes for new zic
+r11: use canonical names to avoid more case sensitivity issues
+     round lat/long from zone.tab towards zero per builtin db
+r10: make timezone case insensitive
+r9: fix another compile error without --with-system-tzdata configured (Michael Heimpold)
+r8: fix compile error without --with-system-tzdata configured
+r7: improve check for valid timezone id to exclude directories
+r6: fix fd leak in r5, fix country code/BC flag use in
+    timezone_identifiers_list() using system db,
+    fix use of PECL timezonedb to override system db,
+r5: reverts addition of "System/Localtime" fake tzname.
+    updated for 5.3.0, parses zone.tab to pick up mapping between
+    timezone name, country code and long/lat coords
+r4: added "System/Localtime" tzname which uses /etc/localtime
+r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert)
+r2: add filesystem trawl to set up name alias index
+r1: initial revision
+---
+ ext/date/config0.m4     |  13 ++
+ ext/date/lib/parse_tz.c | 535 +++++++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 545 insertions(+), 3 deletions(-)
+
+diff --git a/ext/date/config0.m4 b/ext/date/config0.m4
+index 6b803bf..53c3cdb 100644
+--- a/ext/date/config0.m4
++++ b/ext/date/config0.m4
+@@ -4,6 +4,19 @@ AC_CHECK_HEADERS([io.h])
+ dnl Check for strtoll, atoll
+ AC_CHECK_FUNCS(strtoll atoll)
++PHP_ARG_WITH(system-tzdata, for use of system timezone data,
++[  --with-system-tzdata[=DIR]      to specify use of system timezone data],
++no, no)
++
++if test "$PHP_SYSTEM_TZDATA" != "no"; then
++   AC_DEFINE(HAVE_SYSTEM_TZDATA, 1, [Define if system timezone data is used])
++
++   if test "$PHP_SYSTEM_TZDATA" != "yes"; then
++      AC_DEFINE_UNQUOTED(HAVE_SYSTEM_TZDATA_PREFIX, "$PHP_SYSTEM_TZDATA",
++                         [Define for location of system timezone data])
++   fi
++fi
++
+ PHP_DATE_CFLAGS="-Wno-implicit-fallthrough -I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1"
+ timelib_sources="lib/astro.c lib/dow.c lib/parse_date.c lib/parse_tz.c lib/parse_posix.c
+                  lib/timelib.c lib/tm2unixtime.c lib/unixtime2tm.c lib/parse_iso_intervals.c lib/interval.c"
+diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
+index c7f9358..88a746c 100644
+--- a/ext/date/lib/parse_tz.c
++++ b/ext/date/lib/parse_tz.c
+@@ -26,9 +26,22 @@
+ #include "timelib.h"
+ #include "timelib_private.h"
++#ifdef HAVE_SYSTEM_TZDATA
++#include <sys/mman.h>
++#include <sys/stat.h>
++#include <limits.h>
++#include <fcntl.h>
++#include <unistd.h>
++
++#include "php_scandir.h"
++
++#else
+ #define TIMELIB_SUPPORTS_V2DATA
+ #define TIMELIB_SUPPORT_SLIM_FILE
+ #include "timezonedb.h"
++#endif
++
++#include <ctype.h>
+ #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
+ # if defined(__LITTLE_ENDIAN__)
+@@ -95,6 +108,11 @@ static int read_php_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
+ {
+       uint32_t version;
++      if (memcmp(*tzf, "TZif", 4) == 0) {
++              *tzf += 20;
++              return 0;
++      }
++
+       /* read ID */
+       version = (*tzf)[3] - '0';
+       *tzf += 4;
+@@ -577,7 +595,429 @@ void timelib_dump_tzinfo(timelib_tzinfo *tz)
+       }
+ }
+-static int seek_to_tz_position(const unsigned char **tzf, const char *timezone, const timelib_tzdb *tzdb)
++#ifdef HAVE_SYSTEM_TZDATA
++
++#ifdef HAVE_SYSTEM_TZDATA_PREFIX
++#define ZONEINFO_PREFIX HAVE_SYSTEM_TZDATA_PREFIX
++#else
++#define ZONEINFO_PREFIX "/usr/share/zoneinfo"
++#endif
++
++/* System timezone database pointer. */
++static const timelib_tzdb *timezonedb_system;
++
++/* Hash table entry for the cache of the zone.tab mapping table. */
++struct location_info {
++        char code[2];
++        double latitude, longitude;
++        char name[64];
++        char *comment;
++        struct location_info *next;
++};
++
++/* Cache of zone.tab. */
++static struct location_info **system_location_table;
++
++/* Size of the zone.tab hash table; a random-ish prime big enough to
++ * prevent too many collisions. */
++#define LOCINFO_HASH_SIZE (1021)
++
++/* Compute a case insensitive hash of str */
++static uint32_t tz_hash(const char *str)
++{
++    const unsigned char *p = (const unsigned char *)str;
++    uint32_t hash = 5381;
++    int c;
++
++    while ((c = tolower(*p++)) != '\0') {
++        hash = (hash << 5) ^ hash ^ c;
++    }
++
++    return hash % LOCINFO_HASH_SIZE;
++}
++
++/* Parse an ISO-6709 date as used in zone.tab. Returns end of the
++ * parsed string on success, or NULL on parse error.  On success,
++ * writes the parsed number to *result. */
++static char *parse_iso6709(char *p, double *result)
++{
++    double v, sign;
++    char *pend;
++    size_t len;
++
++    if (*p == '+')
++        sign = 1.0;
++    else if (*p == '-')
++        sign = -1.0;
++    else
++        return NULL;
++
++    p++;
++    for (pend = p; *pend >= '0' && *pend <= '9'; pend++)
++        ;;
++
++    /* Annoying encoding used by zone.tab has no decimal point, so use
++     * the length to determine the format:
++     * 
++     * 4 = DDMM
++     * 5 = DDDMM
++     * 6 = DDMMSS
++     * 7 = DDDMMSS
++     */
++    len = pend - p;
++    if (len < 4 || len > 7) {
++        return NULL;
++    }
++
++    /* p => [D]DD */
++    v = (p[0] - '0') * 10.0 + (p[1] - '0');
++    p += 2;
++    if (len == 5 || len == 7)
++        v = v * 10.0 + (*p++ - '0');
++    /* p => MM[SS] */
++    v += (10.0 * (p[0] - '0')
++          + p[1] - '0') / 60.0;
++    p += 2;
++    /* p => [SS] */
++    if (len > 5) {
++        v += (10.0 * (p[0] - '0')
++              + p[1] - '0') / 3600.0;
++        p += 2;
++    }
++
++    /* Round to five decimal place, not because it's a good idea,
++     * but, because the builtin data uses rounded data, so, match
++     * that. */
++    *result = trunc(v * sign * 100000.0) / 100000.0;
++
++    return p;
++}
++
++/* This function parses the zone.tab file to build up the mapping of
++ * timezone to country code and geographic location, and returns a
++ * hash table.  The hash table is indexed by the function:
++ *
++ *   tz_hash(timezone-name)
++ */
++static struct location_info **create_location_table(void)
++{
++    struct location_info **li, *i;
++    char zone_tab[PATH_MAX];
++    char line[512];
++    FILE *fp;
++
++    strncpy(zone_tab, ZONEINFO_PREFIX "/zone.tab", sizeof zone_tab);
++
++    fp = fopen(zone_tab, "r");
++    if (!fp) {
++        return NULL;
++    }
++
++    li = calloc(LOCINFO_HASH_SIZE, sizeof *li);
++
++    while (fgets(line, sizeof line, fp)) {
++        char *p = line, *code, *name, *comment;
++        uint32_t hash;
++        double latitude, longitude;
++
++        while (isspace(*p))
++            p++;
++
++        if (*p == '#' || *p == '\0' || *p == '\n')
++            continue;
++        
++        if (!isalpha(p[0]) || !isalpha(p[1]) || p[2] != '\t')
++            continue;
++        
++        /* code => AA */
++        code = p;
++        p[2] = 0;
++        p += 3;
++
++        /* coords => [+-][D]DDMM[SS][+-][D]DDMM[SS] */
++        p = parse_iso6709(p, &latitude);
++        if (!p) {
++            continue;
++        }
++        p = parse_iso6709(p, &longitude);
++        if (!p) {
++            continue;
++        }
++
++        if (!p || *p != '\t') {
++            continue;
++        }
++
++        /* name = string */
++        name = ++p;
++        while (*p != '\t' && *p && *p != '\n')
++            p++;
++
++        *p++ = '\0';
++
++        /* comment = string */
++        comment = p;
++        while (*p != '\t' && *p && *p != '\n')
++            p++;
++
++        if (*p == '\n' || *p == '\t')
++            *p = '\0';
++        
++        hash = tz_hash(name);
++        i = malloc(sizeof *i);
++        memcpy(i->code, code, 2);
++        strncpy(i->name, name, sizeof i->name);
++        i->comment = strdup(comment);
++        i->longitude = longitude;
++        i->latitude = latitude;
++        i->next = li[hash];
++        li[hash] = i;
++        /* printf("%s [%u, %f, %f]\n", name, hash, latitude, longitude); */
++    }
++
++    fclose(fp);
++
++    return li;
++}
++
++/* Return location info from hash table, using given timezone name.
++ * Returns NULL if the name could not be found. */
++const struct location_info *find_zone_info(struct location_info **li, 
++                                           const char *name)
++{
++    uint32_t hash = tz_hash(name);
++    const struct location_info *l;
++
++    if (!li) {
++        return NULL;
++    }
++
++    for (l = li[hash]; l; l = l->next) {
++        if (timelib_strcasecmp(l->name, name) == 0)
++            return l;
++    }
++
++    return NULL;
++}    
++
++/* Filter out some non-tzdata files and the posix/right databases, if
++ * present. */
++static int index_filter(const struct dirent *ent)
++{
++      return strcmp(ent->d_name, ".") != 0
++              && strcmp(ent->d_name, "..") != 0
++              && strcmp(ent->d_name, "posix") != 0
++              && strcmp(ent->d_name, "posixrules") != 0
++              && strcmp(ent->d_name, "right") != 0
++              && strstr(ent->d_name, ".list") == NULL
++              && strstr(ent->d_name, ".tab") == NULL;
++}
++
++static int sysdbcmp(const void *first, const void *second)
++{
++        const timelib_tzdb_index_entry *alpha = first, *beta = second;
++
++        return timelib_strcasecmp(alpha->id, beta->id);
++}
++
++
++/* Create the zone identifier index by trawling the filesystem. */
++static void create_zone_index(timelib_tzdb *db)
++{
++      size_t dirstack_size,  dirstack_top;
++      size_t index_size, index_next;
++      timelib_tzdb_index_entry *db_index;
++      char **dirstack;
++
++      /* LIFO stack to hold directory entries to scan; each slot is a
++       * directory name relative to the zoneinfo prefix. */
++      dirstack_size = 32;
++      dirstack = malloc(dirstack_size * sizeof *dirstack);
++      dirstack_top = 1;
++      dirstack[0] = strdup("");
++      
++      /* Index array. */
++      index_size = 64;
++      db_index = malloc(index_size * sizeof *db_index);
++      index_next = 0;
++
++      do {
++              struct dirent **ents;
++              char name[PATH_MAX], *top;
++              int count;
++
++              /* Pop the top stack entry, and iterate through its contents. */
++              top = dirstack[--dirstack_top];
++              snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s", top);
++
++              count = php_scandir(name, &ents, index_filter, php_alphasort);
++
++              while (count > 0) {
++                      struct stat st;
++                      const char *leaf = ents[count - 1]->d_name;
++
++                      snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s/%s", 
++                               top, leaf);
++                      
++                      if (strlen(name) && stat(name, &st) == 0) {
++                              /* Name, relative to the zoneinfo prefix. */
++                              const char *root = top;
++
++                              if (root[0] == '/') root++;
++
++                              snprintf(name, sizeof name, "%s%s%s", root, 
++                                       *root ? "/": "", leaf);
++
++                              if (S_ISDIR(st.st_mode)) {
++                                      if (dirstack_top == dirstack_size) {
++                                              dirstack_size *= 2;
++                                              dirstack = realloc(dirstack, 
++                                                                 dirstack_size * sizeof *dirstack);
++                                      }
++                                      dirstack[dirstack_top++] = strdup(name);
++                              }
++                              else {
++                                      if (index_next == index_size) {
++                                              index_size *= 2;
++                                              db_index = realloc(db_index,
++                                                                 index_size * sizeof *db_index);
++                                      }
++
++                                      db_index[index_next++].id = strdup(name);
++                              }
++                      }
++
++                      free(ents[--count]);
++              }
++              
++              if (count != -1) free(ents);
++              free(top);
++      } while (dirstack_top);
++
++        qsort(db_index, index_next, sizeof *db_index, sysdbcmp);
++
++      db->index = db_index;
++      db->index_size = index_next;
++
++      free(dirstack);
++}
++
++#define FAKE_HEADER "1234\0??\1??"
++#define FAKE_UTC_POS (7 - 4)
++
++/* Create a fake data segment for database 'sysdb'. */
++static void fake_data_segment(timelib_tzdb *sysdb,
++                              struct location_info **info)
++{
++        size_t n;
++        char *data, *p;
++        
++        data = malloc(3 * sysdb->index_size + 7);
++
++        p = mempcpy(data, FAKE_HEADER, sizeof(FAKE_HEADER) - 1);
++
++        for (n = 0; n < sysdb->index_size; n++) {
++                const struct location_info *li;
++                timelib_tzdb_index_entry *ent;
++
++                ent = (timelib_tzdb_index_entry *)&sysdb->index[n];
++
++                /* Lookup the timezone name in the hash table. */
++                if (strcmp(ent->id, "UTC") == 0) {
++                        ent->pos = FAKE_UTC_POS;
++                        continue;
++                }
++
++                li = find_zone_info(info, ent->id);
++                if (li) {
++                        /* If found, append the BC byte and the
++                         * country code; set the position for this
++                         * section of timezone data.  */
++                        ent->pos = (p - data) - 4;
++                        *p++ = '\1';
++                        *p++ = li->code[0];
++                        *p++ = li->code[1];
++                }
++                else {
++                        /* If not found, the timezone data can
++                         * point at the header. */
++                        ent->pos = 0;
++                }
++        }
++        
++        sysdb->data = (unsigned char *)data;
++}
++
++/* Returns true if the passed-in stat structure describes a
++ * probably-valid timezone file. */
++static int is_valid_tzfile(const struct stat *st, int fd)
++{
++      if (fd) {
++              char buf[20];
++              if (read(fd, buf, 20)!=20) {
++                      return 0;
++              }
++              lseek(fd, SEEK_SET, 0);
++              if (memcmp(buf, "TZif", 4)) {
++                      return 0;
++              }
++      }
++      return S_ISREG(st->st_mode) && st->st_size > 20;
++}
++
++/* To allow timezone names to be used case-insensitively, find the
++ * canonical name for this timezone, if possible. */
++static const char *canonical_tzname(const char *timezone)
++{
++    if (timezonedb_system) {
++        timelib_tzdb_index_entry *ent, lookup;
++
++        lookup.id = (char *)timezone;
++
++        ent = bsearch(&lookup, timezonedb_system->index,
++                      timezonedb_system->index_size, sizeof lookup,
++                      sysdbcmp);
++        if (ent) {
++            return ent->id;
++        }
++    }
++
++    return timezone;
++}
++
++/* Return the mmap()ed tzfile if found, else NULL.  On success, the
++ * length of the mapped data is placed in *length. */
++static char *map_tzfile(const char *timezone, size_t *length)
++{
++      char fname[PATH_MAX];
++      struct stat st;
++      char *p;
++      int fd;
++      
++      if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) {
++              return NULL;
++      }
++
++      snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone));
++
++      fd = open(fname, O_RDONLY);
++      if (fd == -1) {
++              return NULL;
++      } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) {
++              close(fd);
++              return NULL;
++      }
++
++      *length = st.st_size;
++      p = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
++      close(fd);
++      
++      return p != MAP_FAILED ? p : NULL;
++}
++
++#endif
++
++static int inmem_seek_to_tz_position(const unsigned char **tzf, const char *timezone, const timelib_tzdb *tzdb)
+ {
+       int left = 0, right = tzdb->index_size - 1;
+@@ -603,9 +1043,48 @@ static int seek_to_tz_position(const unsigned char **tzf, const char *timezone,
+       return 0;
+ }
++static int seek_to_tz_position(const unsigned char **tzf, const char *timezone,
++                             char **map, size_t *maplen,
++                             const timelib_tzdb *tzdb)
++{
++#ifdef HAVE_SYSTEM_TZDATA
++      if (tzdb == timezonedb_system) {
++              char *orig;
++
++              orig = map_tzfile(timezone, maplen);
++              if (orig == NULL) {
++                      return 0;
++              }
++
++              (*tzf) = (unsigned char *)orig;
++              *map = orig;
++        return 1;
++      }
++      else
++#endif
++      {
++              return inmem_seek_to_tz_position(tzf, timezone, tzdb);
++      }
++}
++
+ const timelib_tzdb *timelib_builtin_db(void)
+ {
++#ifdef HAVE_SYSTEM_TZDATA
++      if (timezonedb_system == NULL) {
++              timelib_tzdb *tmp = malloc(sizeof *tmp);
++
++              tmp->version = "0.system";
++              tmp->data = NULL;
++              create_zone_index(tmp);
++              system_location_table = create_location_table();
++              fake_data_segment(tmp, system_location_table);
++              timezonedb_system = tmp;
++      }
++
++      return timezonedb_system;
++#else
+       return &timezonedb_builtin;
++#endif
+ }
+ const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count)
+@@ -617,7 +1096,30 @@ const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_
+ int timelib_timezone_id_is_valid(const char *timezone, const timelib_tzdb *tzdb)
+ {
+       const unsigned char *tzf;
+-      return (seek_to_tz_position(&tzf, timezone, tzdb));
++
++#ifdef HAVE_SYSTEM_TZDATA
++      if (tzdb == timezonedb_system) {
++              char fname[PATH_MAX];
++              struct stat st;
++
++              if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) {
++                      return 0;
++              }
++
++              if (system_location_table) {
++                      if (find_zone_info(system_location_table, timezone) != NULL) {
++                              /* found in cache */
++                              return 1;
++                      }
++              }
++
++              snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone));
++
++              return stat(fname, &st) == 0 && is_valid_tzfile(&st, 0);
++      }
++#endif
++
++      return (inmem_seek_to_tz_position(&tzf, timezone, tzdb));
+ }
+ static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
+@@ -662,6 +1164,8 @@ static timelib_tzinfo* timelib_tzinfo_ctor(const char *name)
+ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *tzdb, int *error_code)
+ {
+       const unsigned char *tzf;
++      char *memmap = NULL;
++      size_t maplen;
+       timelib_tzinfo *tmp;
+       int version;
+       int transitions_result, types_result;
+@@ -669,7 +1173,7 @@ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *t
+       *error_code = TIMELIB_ERROR_NO_ERROR;
+-      if (seek_to_tz_position(&tzf, timezone, tzdb)) {
++      if (seek_to_tz_position(&tzf, timezone, &memmap, &maplen, tzdb)) {
+               tmp = timelib_tzinfo_ctor(timezone);
+               version = read_preamble(&tzf, tmp, &type);
+@@ -712,11 +1216,36 @@ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *t
+                       return NULL;
+               }
++#ifdef HAVE_SYSTEM_TZDATA
++              if (memmap) {
++                      const struct location_info *li;
++
++                      /* TZif-style - grok the location info from the system database,
++                       * if possible. */
++
++                      if ((li = find_zone_info(system_location_table, timezone)) != NULL) {
++                              tmp->location.comments = timelib_strdup(li->comment);
++                              strncpy(tmp->location.country_code, li->code, 2);
++                              tmp->location.longitude = li->longitude;
++                              tmp->location.latitude = li->latitude;
++                              tmp->bc = 1;
++                      }
++                      else {
++                              set_default_location_and_comments(&tzf, tmp);
++                      }
++
++                      /* Now done with the mmap segment - discard it. */
++                      munmap(memmap, maplen);
++              } else {
++#endif
+               if (type == TIMELIB_TZINFO_PHP) {
+                       read_location(&tzf, tmp);
+               } else {
+                       set_default_location_and_comments(&tzf, tmp);
+               }
++#ifdef HAVE_SYSTEM_TZDATA
++              }
++#endif
+       } else {
+               *error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE;
+               tmp = NULL;
diff --git a/patches/0008-strcmp_null-OnUpdateErrorLog.patch b/patches/0008-strcmp_null-OnUpdateErrorLog.patch
new file mode 100644 (file)
index 0000000..186f627
--- /dev/null
@@ -0,0 +1,25 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:53 +0200
+Subject: strcmp_null-OnUpdateErrorLog
+
+---
+ tests/func/null-new_val.phpt | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+ create mode 100644 tests/func/null-new_val.phpt
+
+diff --git a/tests/func/null-new_val.phpt b/tests/func/null-new_val.phpt
+new file mode 100644
+index 0000000..412da39
+--- /dev/null
++++ b/tests/func/null-new_val.phpt
+@@ -0,0 +1,10 @@
++--TEST--
++ini_restore strcmp NULL new_val
++--FILE--
++<?php
++
++ini_set('error_log','ini_set_works');
++ini_restore('error_log');
++
++?>
++--EXPECT--
diff --git a/patches/0009-qdbm-is-usr_include_qdbm.patch b/patches/0009-qdbm-is-usr_include_qdbm.patch
new file mode 100644 (file)
index 0000000..f18b397
--- /dev/null
@@ -0,0 +1,23 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:53 +0200
+Subject: qdbm-is-usr_include_qdbm
+
+---
+ ext/dba/config.m4 | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ext/dba/config.m4 b/ext/dba/config.m4
+index 51bdd84..79136d5 100644
+--- a/ext/dba/config.m4
++++ b/ext/dba/config.m4
+@@ -145,6 +145,10 @@ if test "$PHP_QDBM" != "no"; then
+       THIS_PREFIX=$i
+       THIS_INCLUDE=$i/include/qdbm/depot.h
+       break
++    elif test -f "$i/include/qdbm/depot.h"; then
++      THIS_PREFIX=$i
++      THIS_INCLUDE=$i/include/qdbm/depot.h
++      break
+     fi
+   done
diff --git a/patches/0010-session_save_path.patch b/patches/0010-session_save_path.patch
new file mode 100644 (file)
index 0000000..a7b3b11
--- /dev/null
@@ -0,0 +1,35 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: session_save_path
+
+---
+ ext/session/session.c | 2 +-
+ php.ini-production    | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ext/session/session.c b/ext/session/session.c
+index bd940de..0abf410 100644
+--- a/ext/session/session.c
++++ b/ext/session/session.c
+@@ -778,7 +778,7 @@ static PHP_INI_MH(OnUpdateRfc1867Freq) /* {{{ */
+ /* {{{ PHP_INI */
+ PHP_INI_BEGIN()
+-      STD_PHP_INI_ENTRY("session.save_path",          "",          PHP_INI_ALL, OnUpdateSaveDir,       save_path,          php_ps_globals,    ps_globals)
++      STD_PHP_INI_ENTRY("session.save_path",          "/var/lib/php/sessions",          PHP_INI_ALL, OnUpdateSaveDir,       save_path,          php_ps_globals,    ps_globals)
+       STD_PHP_INI_ENTRY("session.name",               "PHPSESSID", PHP_INI_ALL, OnUpdateName,          session_name,       php_ps_globals,    ps_globals)
+       PHP_INI_ENTRY("session.save_handler",           "files",     PHP_INI_ALL, OnUpdateSaveHandler)
+       STD_PHP_INI_BOOLEAN("session.auto_start",       "0",         PHP_INI_PERDIR, OnUpdateBool,       auto_start,         php_ps_globals,    ps_globals)
+diff --git a/php.ini-production b/php.ini-production
+index 5ecc303..6cb3f1a 100644
+--- a/php.ini-production
++++ b/php.ini-production
+@@ -1374,7 +1374,7 @@ session.save_handler = files
+ ; where MODE is the octal representation of the mode. Note that this
+ ; does not overwrite the process's umask.
+ ; https://php.net/session.save-path
+-;session.save_path = "/tmp"
++;session.save_path = "/var/lib/php/sessions"
+ ; Whether to use strict session mode.
+ ; Strict session mode does not accept an uninitialized session ID, and
diff --git a/patches/0011-php-fpm-man-section-and-cleanup.patch b/patches/0011-php-fpm-man-section-and-cleanup.patch
new file mode 100644 (file)
index 0000000..18f2e36
--- /dev/null
@@ -0,0 +1,48 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: php-fpm-man-section-and-cleanup
+
+---
+ sapi/fpm/php-fpm.8.in | 22 ++--------------------
+ 1 file changed, 2 insertions(+), 20 deletions(-)
+
+diff --git a/sapi/fpm/php-fpm.8.in b/sapi/fpm/php-fpm.8.in
+index b972a2b..0b14214 100644
+--- a/sapi/fpm/php-fpm.8.in
++++ b/sapi/fpm/php-fpm.8.in
+@@ -141,22 +141,8 @@ The configuration file for the php-fpm daemon.
+ .TP
+ .B php.ini
+ The standard php configuration file.
+-.SH EXAMPLES
+-For any unix systems which use init.d for their main process manager, you should use the init script provided to start and stop the php-fpm daemon.
+-.P
+-.PD 1
+-.RS
+-sudo /etc/init.d/php-fpm start
+-.RE
+-.TP
+-For any unix systems which use systemd for their main process manager, you should use the unit file provided to start and stop the php-fpm daemon.
+-.P
+-.PD 1
+-.RS
+-sudo systemctl start php-fpm.service
+-.RE
+-.TP
+-If your installation has no appropriate init script, launch php-fpm with no arguments. It will launch as a daemon (background process) by default. The file @php_fpm_localstatedir@/run/php-fpm.pid determines whether php-fpm is already up and running. Once started, php-fpm then responds to several POSIX signals:
++.SH SIGNAL
++Once started, php-fpm then responds to several POSIX signals:
+ .P
+ .PD 0
+ .RS
+@@ -170,10 +156,6 @@ If your installation has no appropriate init script, launch php-fpm with no argu
+ .RE
+ .PD 1
+ .P
+-.SH TIPS
+-The PHP-FPM CGI daemon will work well with most popular webservers, including Apache2, lighttpd and nginx.
+-.PD 1
+-.P
+ .SH SEE ALSO
+ The PHP-FPM website:
+ .PD 0
diff --git a/patches/0012-fpm-config.patch b/patches/0012-fpm-config.patch
new file mode 100644 (file)
index 0000000..01d86a2
--- /dev/null
@@ -0,0 +1,37 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: fpm-config
+
+---
+ sapi/fpm/php-fpm.conf.in | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/sapi/fpm/php-fpm.conf.in b/sapi/fpm/php-fpm.conf.in
+index 4818f20..4997748 100644
+--- a/sapi/fpm/php-fpm.conf.in
++++ b/sapi/fpm/php-fpm.conf.in
+@@ -14,14 +14,16 @@
+ ; Pid file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++; Warning: if you change the value here, you need to modify systemd
++; service PIDFile= setting to match the value here.
++pid = @EXPANDED_LOCALSTATEDIR@/run/php/php@PHP_MAJOR_VERSION@.@PHP_MINOR_VERSION@-fpm.pid
+ ; Error log file
+ ; If it's set to "syslog", log is sent to syslogd instead of being written
+ ; into a local file.
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: log/php-fpm.log
+-;error_log = log/php-fpm.log
++error_log = @EXPANDED_LOCALSTATEDIR@/log/php@PHP_MAJOR_VERSION@.@PHP_MINOR_VERSION@-fpm.log
+ ; syslog_facility is used to specify what type of program is logging the
+ ; message. This lets syslogd specify that messages from different facilities
+@@ -140,4 +142,4 @@
+ ; Relative path can also be used. They will be prefixed by:
+ ;  - the global prefix if it's been set (-p argument)
+ ;  - @prefix@ otherwise
+-include=@php_fpm_sysconfdir@/php-fpm.d/*.conf
++include=@php_fpm_sysconfdir@/pool.d/*.conf
diff --git a/patches/0013-php-fpm-sysconfdir.patch b/patches/0013-php-fpm-sysconfdir.patch
new file mode 100644 (file)
index 0000000..c566687
--- /dev/null
@@ -0,0 +1,21 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: php-fpm-sysconfdir
+
+---
+ sapi/fpm/fpm/fpm_conf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sapi/fpm/fpm/fpm_conf.c b/sapi/fpm/fpm/fpm_conf.c
+index ef9b35a..c0fa83d 100644
+--- a/sapi/fpm/fpm/fpm_conf.c
++++ b/sapi/fpm/fpm/fpm_conf.c
+@@ -1823,7 +1823,7 @@ int fpm_conf_init_main(int test_conf, int force_daemon) /* {{{ */
+               char *tmp;
+               if (fpm_globals.prefix == NULL) {
+-                      spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR);
++                      spprintf(&tmp, 0, "%s/php/%d.%d/fpm/php-fpm.conf", PHP_SYSCONFDIR, PHP_MAJOR_VERSION, PHP_MINOR_VERSION);
+               } else {
+                       spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix);
+               }
diff --git a/patches/0014-lp564920-fix-big-files.patch b/patches/0014-lp564920-fix-big-files.patch
new file mode 100644 (file)
index 0000000..7f7da08
--- /dev/null
@@ -0,0 +1,27 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: lp564920-fix-big-files
+
+---
+ main/streams/plain_wrapper.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c
+index e9a30f3..9b19d0f 100644
+--- a/main/streams/plain_wrapper.c
++++ b/main/streams/plain_wrapper.c
+@@ -753,7 +753,13 @@ static int php_stdiop_set_option(php_stream *stream, int option, int value, void
+                               switch (value) {
+                                       case PHP_STREAM_MMAP_SUPPORTED:
+-                                              return fd == -1 ? PHP_STREAM_OPTION_RETURN_ERR : PHP_STREAM_OPTION_RETURN_OK;
++                                              if (fd == -1)
++                                                      return PHP_STREAM_OPTION_RETURN_ERR;
++                                              /* Don't mmap large files */
++                                              do_fstat(data, 1);
++                                              if (data->sb.st_size > 4 * 1024 * 1024)
++                                                      return PHP_STREAM_OPTION_RETURN_ERR;
++                                              return PHP_STREAM_OPTION_RETURN_OK;
+                                       case PHP_STREAM_MMAP_MAP_RANGE:
+                                               if (do_fstat(data, 1) != 0) {
diff --git a/patches/0015-temporary-path-fixes-for-multiarch.patch b/patches/0015-temporary-path-fixes-for-multiarch.patch
new file mode 100644 (file)
index 0000000..196a688
--- /dev/null
@@ -0,0 +1,79 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: temporary-path-fixes-for-multiarch
+
+---
+ ext/dba/config.m4       | 2 +-
+ ext/gmp/config.m4       | 3 ++-
+ ext/ldap/config.m4      | 7 ++-----
+ ext/pdo_dblib/config.m4 | 2 +-
+ 4 files changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/ext/dba/config.m4 b/ext/dba/config.m4
+index 79136d5..bbd6bad 100644
+--- a/ext/dba/config.m4
++++ b/ext/dba/config.m4
+@@ -302,7 +302,7 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[
+     AC_MSG_ERROR([DBA: Could not find necessary header file(s).])
+   fi
+   for LIB in $2; do
+-    if test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.a || test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.$SHLIB_SUFFIX_NAME; then
++    if test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.a || test -f $THIS_PREFIX/$PHP_LIBDIR/$DEB_HOST_MULTIARCH/lib$LIB.$SHLIB_SUFFIX_NAME || test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.$SHLIB_SUFFIX_NAME; then
+       lib_found="";
+       PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/$PHP_LIBDIR, -l$LIB,[
+         AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+diff --git a/ext/gmp/config.m4 b/ext/gmp/config.m4
+index fa55751..1efacd8 100644
+--- a/ext/gmp/config.m4
++++ b/ext/gmp/config.m4
+@@ -12,7 +12,7 @@ if test "$PHP_GMP" != "no"; then
+     PHP_ADD_LIBRARY(gmp,,GMP_SHARED_LIBADD)
+   else
+-    if test ! -f $PHP_GMP/include/gmp.h; then
++    if test ! -f $PHP_GMP/include/gmp.h -a test ! -f $PHP_GMP/$DEB_HOST_MULTIARCH/include/gmp.h; then
+       AC_MSG_ERROR(Unable to locate gmp.h)
+     fi
+@@ -25,6 +25,7 @@ if test "$PHP_GMP" != "no"; then
+     PHP_ADD_LIBRARY_WITH_PATH(gmp, $PHP_GMP/$PHP_LIBDIR, GMP_SHARED_LIBADD)
+     PHP_ADD_INCLUDE($PHP_GMP/include)
++    PHP_ADD_INCLUDE($PHP_GMP/include/$DEB_HOST_MULTIARCH)
+   fi
+   PHP_INSTALL_HEADERS([ext/gmp/php_gmp_int.h])
+diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4
+index 89c4b19..2c3b524 100644
+--- a/ext/ldap/config.m4
++++ b/ext/ldap/config.m4
+@@ -65,14 +65,11 @@ if test "$PHP_LDAP" != "no"; then
+     AC_MSG_ERROR(Cannot find ldap.h)
+   fi
+-  dnl -pc removal is a hack for clang
+-  MACHINE_INCLUDES=$($CC -dumpmachine | $SED 's/-pc//')
+-
+-  if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then
++  if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME; then
+     PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
+     PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
+-  elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then
++  elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then
+     PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
+   elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then
+diff --git a/ext/pdo_dblib/config.m4 b/ext/pdo_dblib/config.m4
+index 289eeb7..7b7a063 100644
+--- a/ext/pdo_dblib/config.m4
++++ b/ext/pdo_dblib/config.m4
+@@ -33,7 +33,7 @@ if test "$PHP_PDO_DBLIB" != "no"; then
+       PHP_LIBDIR=lib
+     fi
+-    if test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libsybdb.a" && test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libsybdb.so"; then
++    if test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libsybdb.a" && test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/$DEB_HOST_MULTIARCH/libsybdb.so" && test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libsybdb.so"; then
+        AC_MSG_ERROR(Could not find $PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libsybdb.[a|so])
+     fi
diff --git a/patches/0016-hurd-noptrace.patch b/patches/0016-hurd-noptrace.patch
new file mode 100644 (file)
index 0000000..9190cc2
--- /dev/null
@@ -0,0 +1,24 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:54 +0200
+Subject: hurd-noptrace
+
+---
+ sapi/fpm/config.m4 | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sapi/fpm/config.m4 b/sapi/fpm/config.m4
+index da09511..425e28d 100644
+--- a/sapi/fpm/config.m4
++++ b/sapi/fpm/config.m4
+@@ -165,6 +165,11 @@ AC_DEFUN([AC_FPM_TRACE],
+         pid_t child;
+         int status;
++        /* broken ptrace on Hurd, avoid hanging */
++        #ifdef __GNU__
++        return 10;
++        #endif
++
+         if ( (child = fork()) ) { /* parent */
+           int ret = 0;
diff --git a/patches/0017-php-5.3.3-macropen.patch b/patches/0017-php-5.3.3-macropen.patch
new file mode 100644 (file)
index 0000000..ff34711
--- /dev/null
@@ -0,0 +1,55 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:55 +0200
+Subject: php-5.3.3-macropen
+
+---
+ ext/dba/dba.c     | 2 +-
+ ext/dba/dba_db3.c | 4 ++--
+ ext/dba/dba_db4.c | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/ext/dba/dba.c b/ext/dba/dba.c
+index 9e9d700..a9f99c9 100644
+--- a/ext/dba/dba.c
++++ b/ext/dba/dba.c
+@@ -851,7 +851,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, bool persistent)
+               }
+       }
+-      if (error || hptr->open(info, &error) == FAILURE) {
++      if (error || (hptr->open)(info, &error) == FAILURE) {
+               dba_close(info);
+               if (EXPECTED(!EG(exception))) {
+                       if (error) {
+diff --git a/ext/dba/dba_db3.c b/ext/dba/dba_db3.c
+index d9e948a..11610da 100644
+--- a/ext/dba/dba_db3.c
++++ b/ext/dba/dba_db3.c
+@@ -81,9 +81,9 @@ DBA_OPEN_FUNC(db3)
+           dbp->set_errcall(dbp, php_dba_db3_errcall_fcn);
+               if(
+ #if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1))
+-                      (err=dbp->open(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) {
++                      (err=(dbp->open)(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) {
+ #else
+-                      (err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
++                      (err=(dbp->open)(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
+ #endif
+                       dba_db3_data *data;
+diff --git a/ext/dba/dba_db4.c b/ext/dba/dba_db4.c
+index 3de66a4..c088cc7 100644
+--- a/ext/dba/dba_db4.c
++++ b/ext/dba/dba_db4.c
+@@ -110,9 +110,9 @@ DBA_OPEN_FUNC(db4)
+           dbp->set_errcall(dbp, php_dba_db4_errcall_fcn);
+           if (
+ #if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1))
+-                      (err=dbp->open(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) {
++                      (err=(dbp->open)(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) {
+ #else
+-                      (err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
++                      (err=(dbp->open)(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
+ #endif
+                       dba_db4_data *data;
diff --git a/patches/0018-php-5.2.4-embed.patch b/patches/0018-php-5.2.4-embed.patch
new file mode 100644 (file)
index 0000000..63522ac
--- /dev/null
@@ -0,0 +1,21 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:55 +0200
+Subject: php-5.2.4-embed
+
+---
+ sapi/embed/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sapi/embed/config.m4 b/sapi/embed/config.m4
+index 39d7dcf..e648f97 100644
+--- a/sapi/embed/config.m4
++++ b/sapi/embed/config.m4
+@@ -12,7 +12,7 @@ if test "$PHP_EMBED" != "no"; then
+     yes|shared)
+       LIBPHP_CFLAGS="-shared"
+       PHP_EMBED_TYPE=shared
+-      INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib; \$(INSTALL) -m 0755 $SAPI_SHARED \$(INSTALL_ROOT)\$(prefix)/lib"
++      INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(libdir); \$(LIBTOOL) --mode=install \$(INSTALL) -m 0755 \$(OVERALL_TARGET) \$(INSTALL_ROOT)\$(libdir)"
+       ;;
+     static)
+       LIBPHP_CFLAGS="-static"
diff --git a/patches/0019-php-fpm-m68k.patch b/patches/0019-php-fpm-m68k.patch
new file mode 100644 (file)
index 0000000..90c11ce
--- /dev/null
@@ -0,0 +1,60 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:55 +0200
+Subject: php-fpm-m68k
+
+---
+ sapi/fpm/fpm/fpm_atomic.h | 34 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 34 insertions(+)
+
+diff --git a/sapi/fpm/fpm/fpm_atomic.h b/sapi/fpm/fpm/fpm_atomic.h
+index e3926e7..b2855a1 100644
+--- a/sapi/fpm/fpm/fpm_atomic.h
++++ b/sapi/fpm/fpm/fpm_atomic.h
+@@ -3,6 +3,12 @@
+ #ifndef FPM_ATOMIC_H
+ #define FPM_ATOMIC_H 1
++#if defined(__m68k__)
++#define _GNU_SOURCE
++#include <unistd.h>
++#include <sys/syscall.h>
++#endif
++
+ #include <inttypes.h>
+ #include <sched.h>
+@@ -131,6 +137,34 @@ static inline atomic_uint_t atomic_cmp_set(atomic_t *lock, atomic_uint_t old, at
+ #error Sparc v8 and predecessors are not and will not be supported (see bug report 53310)
+ #endif /* #if (__sparcv9 || __sparcv9__) */
++#elif defined(__m68k__) && defined(__linux__)
++
++typedef signed int atomic_int_t __attribute__((__aligned__(4)));
++typedef unsigned int atomic_uint_t __attribute__((__aligned__(4)));
++typedef volatile unsigned int atomic_t __attribute__((__aligned__(4)));
++
++#ifndef SYS_atomic_cmpxchg_32
++#define SYS_atomic_cmpxchg_32 335
++#endif
++
++static inline atomic_uint_t atomic_cas_32(atomic_t *lock, atomic_uint_t old, atomic_uint_t new) /* {{{ */
++{
++      register atomic_t *a0 asm("a0") = lock;
++      register atomic_uint_t d2 asm("d2") = old;
++      register atomic_uint_t d1 asm("d1") = new;
++      register atomic_uint_t d0 asm("d0") = SYS_atomic_cmpxchg_32;
++
++      asm volatile("trap #0" : "+r" (d0), "+r" (d1), "+r" (a0) : "r" (d2) : "memory", "a1");
++      return (d0);
++}
++/* }}} */
++
++static inline atomic_uint_t atomic_cmp_set(atomic_t *lock, atomic_uint_t old, atomic_uint_t set) /* {{{ */
++{
++      return (atomic_cas_32(lock, old, set) == old);
++}
++/* }}} */
++
+ #else
+ #error Unsupported processor. Please open a bug report (https://github.com/php/php-src/issues).
diff --git a/patches/0020-expose_all_built_and_installed_apis.patch b/patches/0020-expose_all_built_and_installed_apis.patch
new file mode 100644 (file)
index 0000000..e6d79c8
--- /dev/null
@@ -0,0 +1,42 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:56 +0200
+Subject: expose_all_built_and_installed_apis
+
+---
+ scripts/man1/php-config.1.in | 2 +-
+ scripts/php-config.in        | 5 ++++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/man1/php-config.1.in b/scripts/man1/php-config.1.in
+index 5ed77c5..9eba2e2 100644
+--- a/scripts/man1/php-config.1.in
++++ b/scripts/man1/php-config.1.in
+@@ -44,7 +44,7 @@ Full path to php CLI or CGI binary
+ .TP
+ .PD 0
+ .B \-\-php-sapis
+-Show all SAPI modules available
++Show all SAPI modules installed on the Debian system
+ .TP
+ .PD 0
+ .B \-\-configure-options
+diff --git a/scripts/php-config.in b/scripts/php-config.in
+index cac95ac..45a0759 100644
+--- a/scripts/php-config.in
++++ b/scripts/php-config.in
+@@ -18,11 +18,14 @@ exe_extension="@EXEEXT@"
+ php_cli_binary=NONE
+ php_cgi_binary=NONE
+ configure_options="@CONFIGURE_OPTIONS@"
+-php_sapis="@PHP_INSTALLED_SAPIS@"
++#php_sapis="@PHP_INSTALLED_SAPIS@"
+ phpapi="@DEBIAN_PHP_API@"
+ ini_dir="@EXPANDED_PHP_CONFIG_FILE_SCAN_DIR@"
+ ini_path="@EXPANDED_PHP_CONFIG_FILE_PATH@"
++# Query the dpkg database for available PHP sapis
++php_sapis=$(dpkg-query -W -f='${Package} ' libapache2-mod-php${program_suffix} php${program_suffix}-cgi php${program_suffix}-cli php${program_suffix}-fpm libphp${program_suffix}-embed php${program_suffix}-phpdbg 2>/dev/null | sed -e "s|libapache2-mod-php${program_suffix}|apache2handler|;s|php${program_suffix}-cgi|cgi|;s|php${program_suffix}-cli|cli|;s|php${program_suffix}-fpm|fpm|;s|libphp${program_suffix}-embed|embed|;s|php${program_suffix}-phpdbg|phpdbg|;")
++
+ # Set php_cli_binary and php_cgi_binary if available
+ for sapi in $php_sapis; do
+   case $sapi in
diff --git a/patches/0021-Use-system-timezone.patch b/patches/0021-Use-system-timezone.patch
new file mode 100644 (file)
index 0000000..06aa198
--- /dev/null
@@ -0,0 +1,43 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:56 +0200
+Subject: Use system timezone
+
+Upstream don't want this patch. See
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730771 for a summary.
+
+This delta is recovered from previous versions of the system timezone patch in
+Debian, and appears to have inadvertently been dropped. Author unknown.
+
+To be used in tandem with use_embedded_timezonedb.patch and use_embedded_timezonedb_fixes.patch.
+---
+ ext/date/php_date.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/ext/date/php_date.c b/ext/date/php_date.c
+index 2c622f6..fb7ca21 100644
+--- a/ext/date/php_date.c
++++ b/ext/date/php_date.c
+@@ -549,6 +549,23 @@ static char* guess_timezone(const timelib_tzdb *tzdb)
+       } else if (*DATEG(default_timezone)) {
+               return DATEG(default_timezone);
+       }
++      /* Try to guess timezone from system information */
++      {
++              struct tm *ta, tmbuf;
++              time_t     the_time;
++              char      *tzid = NULL;
++
++              the_time = time(NULL);
++              ta = php_localtime_r(&the_time, &tmbuf);
++              if (ta) {
++                      tzid = timelib_timezone_id_from_abbr(ta->tm_zone, ta->tm_gmtoff, ta->tm_isdst);
++              }
++              if (! tzid) {
++                      tzid = "UTC";
++              }
++
++              return tzid;
++      }
+       /* Fallback to UTC */
+       return "UTC";
+ }
diff --git a/patches/0022-php-fpm-do-reload-on-SIGHUP.patch b/patches/0022-php-fpm-do-reload-on-SIGHUP.patch
new file mode 100644 (file)
index 0000000..6e27eb4
--- /dev/null
@@ -0,0 +1,67 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:56 +0200
+Subject: php-fpm-do-reload-on-SIGHUP
+
+---
+ sapi/fpm/fpm/fpm_events.c  | 5 +++++
+ sapi/fpm/fpm/fpm_signals.c | 3 +++
+ sapi/fpm/php-fpm.8.in      | 2 +-
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/sapi/fpm/fpm/fpm_events.c b/sapi/fpm/fpm/fpm_events.c
+index 4cc5606..de60589 100644
+--- a/sapi/fpm/fpm/fpm_events.c
++++ b/sapi/fpm/fpm/fpm_events.c
+@@ -132,6 +132,11 @@ static void fpm_got_signal(struct fpm_event_s *ev, short which, void *arg) /* {{
+                               zlog(ZLOG_NOTICE, "Reloading in progress ...");
+                               fpm_pctl(FPM_PCTL_STATE_RELOADING, FPM_PCTL_ACTION_SET);
+                               break;
++                      case 'H' :                  /* SIGHUP */
++                              zlog(ZLOG_DEBUG, "received SIGHUP");
++                              zlog(ZLOG_NOTICE, "Reloading in progress ...");
++                              fpm_pctl(FPM_PCTL_STATE_RELOADING, FPM_PCTL_ACTION_SET);
++                              break;
+               }
+               if (fpm_globals.is_child) {
+diff --git a/sapi/fpm/fpm/fpm_signals.c b/sapi/fpm/fpm/fpm_signals.c
+index 6aad440..845385e 100644
+--- a/sapi/fpm/fpm/fpm_signals.c
++++ b/sapi/fpm/fpm/fpm_signals.c
+@@ -160,6 +160,7 @@ static void sig_handler(int signo) /* {{{ */
+               [SIGINT]  = 'I',
+               [SIGUSR1] = '1',
+               [SIGUSR2] = '2',
++              [SIGHUP]  = 'H',
+               [SIGQUIT] = 'Q',
+               [SIGCHLD] = 'C'
+       };
+@@ -209,6 +210,7 @@ int fpm_signals_init_main(void)
+           0 > sigaction(SIGINT,   &act, 0) ||
+           0 > sigaction(SIGUSR1,  &act, 0) ||
+           0 > sigaction(SIGUSR2,  &act, 0) ||
++          0 > sigaction(SIGHUP,   &act, 0) ||
+           0 > sigaction(SIGCHLD,  &act, 0) ||
+           0 > sigaction(SIGQUIT,  &act, 0)) {
+@@ -242,6 +244,7 @@ int fpm_signals_init_child(void)
+           0 > sigaction(SIGINT,   &act_dfl,  0) ||
+           0 > sigaction(SIGUSR1,  &act_dfl,  0) ||
+           0 > sigaction(SIGUSR2,  &act_dfl,  0) ||
++          0 > sigaction(SIGHUP,   &act_dfl,  0) ||
+           0 > sigaction(SIGCHLD,  &act_dfl,  0) ||
+           0 > sigaction(SIGQUIT,  &act,      0)) {
+diff --git a/sapi/fpm/php-fpm.8.in b/sapi/fpm/php-fpm.8.in
+index 0b14214..bcff132 100644
+--- a/sapi/fpm/php-fpm.8.in
++++ b/sapi/fpm/php-fpm.8.in
+@@ -152,7 +152,7 @@ Once started, php-fpm then responds to several POSIX signals:
+ .TP
+ .B SIGUSR1                    \fPre-open log file
+ .TP
+-.B SIGUSR2                    \fPgraceful reload of all workers + reload of fpm conf/binary
++.B SIGUSR2,SIGHUP             \fPgraceful reload of all workers + reload of fpm conf/binary
+ .RE
+ .PD 1
+ .P
diff --git a/patches/0023-php-5.4.8-ldap_r.patch b/patches/0023-php-5.4.8-ldap_r.patch
new file mode 100644 (file)
index 0000000..5e66c43
--- /dev/null
@@ -0,0 +1,25 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:56 +0200
+Subject: php-5.4.8-ldap_r
+
+Use -lldap_r by default.
+---
+ ext/ldap/config.m4 | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4
+index 2c3b524..ecf5341 100644
+--- a/ext/ldap/config.m4
++++ b/ext/ldap/config.m4
+@@ -65,7 +65,10 @@ if test "$PHP_LDAP" != "no"; then
+     AC_MSG_ERROR(Cannot find ldap.h)
+   fi
+-  if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME; then
++  if test -f $LDAP_LIBDIR/libldap_r.a || test -f $LDAP_LIBDIR/libldap_r.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap_r.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap_r.$SHLIB_SUFFIX_NAME; then
++   PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
++   PHP_ADD_LIBRARY_WITH_PATH(ldap_r, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
++  elif test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME; then
+     PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
+     PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
diff --git a/patches/0024-php-5.4.9-fixheader.patch b/patches/0024-php-5.4.9-fixheader.patch
new file mode 100644 (file)
index 0000000..7a16a9a
--- /dev/null
@@ -0,0 +1,22 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:56 +0200
+Subject: php-5.4.9-fixheader
+
+Make generated php_config.h constant across rebuilds.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index b67338e..e33421d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1447,7 +1447,7 @@ PHP_REMOVE_USR_LIB(LDFLAGS)
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
+ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS"
+-UNAME=`uname -a | xargs`
++UNAME=`uname | xargs`
+ PHP_UNAME=${PHP_UNAME:-$UNAME}
+ AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
+ PHP_OS=`uname | xargs`
diff --git a/patches/0025-php-5.6.0-noNO.patch b/patches/0025-php-5.6.0-noNO.patch
new file mode 100644 (file)
index 0000000..ae739e7
--- /dev/null
@@ -0,0 +1,53 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:56 +0200
+Subject: php-5.6.0-noNO
+
+---
+ ext/standard/tests/strings/setlocale_variation2.phpt | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/ext/standard/tests/strings/setlocale_variation2.phpt b/ext/standard/tests/strings/setlocale_variation2.phpt
+index 6f62f71..d8666ba 100644
+--- a/ext/standard/tests/strings/setlocale_variation2.phpt
++++ b/ext/standard/tests/strings/setlocale_variation2.phpt
+@@ -47,6 +47,7 @@ function list_system_locales() {
+ //try different locale names
+ $failure_locale = array();
+ $success_count = 0;
++$expected = 0;
+ echo "-- Test setlocale() with all available locale in the system --\n";
+ // gather all locales installed in the system(stored $all_system_locales),
+@@ -56,6 +57,10 @@ function list_system_locales() {
+   if(setlocale(LC_ALL,$value )){
+    $success_count++;
+   }
++  else if ($value == 'no_NO.ISO-8859-1') {
++    // ignore this one, see rhbz #971416
++   $expected++;
++  }
+   else{
+    //failure values are put in to an array $failure_locale
+    $failure_locale[] = $value;
+@@ -64,11 +69,11 @@ function list_system_locales() {
+ echo "No of locales found on the machine = ".count($all_system_locales)."\n";
+ echo "No of setlocale() success = ".$success_count."\n";
+-echo "Expected no of failures = 0\n";
++echo "Expected no of failures = $expected\n";
+ echo "Test ";
+ // check if there were any failure of setlocale() function earlier, if any
+ // failure then dump the list of failing locales
+-if($success_count != count($all_system_locales)){
++if(($success_count + $expected) != count($all_system_locales)){
+   echo "FAILED\n";
+   echo "Names of locale() for which setlocale() failed ...\n";
+   var_dump($failure_locale);
+@@ -84,6 +89,6 @@ function list_system_locales() {
+ -- Test setlocale() with all available locale in the system --
+ No of locales found on the machine = %d
+ No of setlocale() success = %d
+-Expected no of failures = 0
++Expected no of failures = %d
+ Test PASSED
+ Done
diff --git a/patches/0026-php-5.6.0-oldpcre.patch b/patches/0026-php-5.6.0-oldpcre.patch
new file mode 100644 (file)
index 0000000..a28f92f
--- /dev/null
@@ -0,0 +1,39 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:57 +0200
+Subject: php-5.6.0-oldpcre
+
+---
+ ext/pcre/tests/grep2.phpt        | 10 ++--------
+ ext/pcre/tests/match_flags3.phpt |  2 +-
+ 2 files changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/ext/pcre/tests/grep2.phpt b/ext/pcre/tests/grep2.phpt
+index 9721dfb..4c35ec3 100644
+--- a/ext/pcre/tests/grep2.phpt
++++ b/ext/pcre/tests/grep2.phpt
+@@ -36,12 +36,6 @@
+   string(1) "1"
+ }
+ bool(true)
+-array(3) {
+-  [5]=>
+-  string(1) "a"
+-  ["xyz"]=>
+-  string(2) "q6"
+-  [6]=>
+-  string(3) "h20"
++array(0) {
+ }
+-bool(false)
++bool(true)
+diff --git a/ext/pcre/tests/match_flags3.phpt b/ext/pcre/tests/match_flags3.phpt
+index 6511c71..05c62a0 100644
+--- a/ext/pcre/tests/match_flags3.phpt
++++ b/ext/pcre/tests/match_flags3.phpt
+@@ -41,5 +41,5 @@
+   }
+ }
+-Warning: preg_match(): Compilation failed: %s name must start with a non-digit at offset %d in %smatch_flags3.php on line %d
++Warning: preg_match(): Numeric named subpatterns are not allowed in %smatch_flags3.php on line %d
+ bool(false)
diff --git a/patches/0027-hack-phpdbg-to-explicitly-link-with-libedit.patch b/patches/0027-hack-phpdbg-to-explicitly-link-with-libedit.patch
new file mode 100644 (file)
index 0000000..db6e91d
--- /dev/null
@@ -0,0 +1,23 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:57 +0200
+Subject: hack-phpdbg-to-explicitly-link-with-libedit
+
+---
+ sapi/phpdbg/config.m4 | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/sapi/phpdbg/config.m4 b/sapi/phpdbg/config.m4
+index ac95cf3..8f4eb1a 100644
+--- a/sapi/phpdbg/config.m4
++++ b/sapi/phpdbg/config.m4
+@@ -36,7 +36,9 @@ if test "$BUILD_PHPDBG" = "" && test "$PHP_PHPDBG" != "no"; then
+   if test "$PHP_PHPDBG_READLINE" = "yes"; then
+     if test "$PHP_READLINE" != "no" -o  "$PHP_LIBEDIT" != "no"; then
+         AC_DEFINE(HAVE_PHPDBG_READLINE, 1, [ ])
+-        PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
++#       PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
++# Temporary hack until this gets fixed
++        PHPDBG_EXTRA_LIBS="-ledit -ltermcap"
+         AC_MSG_RESULT([ok])
+       else
+         AC_MSG_RESULT([readline is not available])
diff --git a/patches/0028-Remove-W3C-validation-icon-to-not-expose-the-reader-.patch b/patches/0028-Remove-W3C-validation-icon-to-not-expose-the-reader-.patch
new file mode 100644 (file)
index 0000000..7bfe8b0
--- /dev/null
@@ -0,0 +1,25 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Wed, 29 Jul 2015 14:37:55 +0200
+Subject: Remove W3C validation icon to not expose the reader's IP address to
+ potential tracking.
+
+---
+ sapi/fpm/status.html.in | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/sapi/fpm/status.html.in b/sapi/fpm/status.html.in
+index d3b6d5e..f71d486 100644
+--- a/sapi/fpm/status.html.in
++++ b/sapi/fpm/status.html.in
+@@ -70,11 +70,6 @@
+                               <tr class="h"><th>PID&darr;</th><th>Start Time</th><th>Start Since</th><th>Requests Served</th><th>Request Duration</th><th>Request method</th><th>Request URI</th><th>Content Length</th><th>User</th><th>Script</th><th>Last Request %CPU</th><th>Last Request Memory</th></tr>
+                       </table>
+               </div>
+-              <p>
+-                      <a href="http://validator.w3.org/check?uri=referer">
+-                              <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" />
+-                      </a>
+-               </p>
+               <script type="text/javascript">
+ <!--
+                       var xhr_object = null;
diff --git a/patches/0029-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch b/patches/0029-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch
new file mode 100644 (file)
index 0000000..e91b30b
--- /dev/null
@@ -0,0 +1,21 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Fri, 4 Dec 2015 15:53:50 +0100
+Subject: Don't put $(INSTALL_ROOT) into phar.phar exec stanza
+
+---
+ ext/phar/Makefile.frag | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
+index e5646b2..16b002e 100644
+--- a/ext/phar/Makefile.frag
++++ b/ext/phar/Makefile.frag
+@@ -23,7 +23,7 @@ PHP_PHARCMD_EXECUTABLE = ` \
+       else \
+               $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+       fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+       -@test -d $(builddir)/phar || mkdir $(builddir)/phar
diff --git a/patches/0030-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch b/patches/0030-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch
new file mode 100644 (file)
index 0000000..91c4dbb
--- /dev/null
@@ -0,0 +1,24 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Mon, 14 Mar 2016 16:09:34 +0100
+Subject: Really expand $libdir/$datadir into @EXPANDED_LIBDIR/DATADIR@
+
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e33421d..b73a3a3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1415,9 +1415,9 @@ EXPANDED_LOCALSTATEDIR=`eval echo $localstatedir`
+ EXPANDED_BINDIR=`eval echo $bindir`
+ EXPANDED_SBINDIR=`eval echo $sbindir`
+ EXPANDED_MANDIR=`eval echo $mandir`
+-EXPANDED_LIBDIR=$libdir
++EXPANDED_LIBDIR=`eval echo $libdir`
+ EXPANDED_SYSCONFDIR=`eval echo $sysconfdir`
+-EXPANDED_DATADIR=$datadir
++EXPANDED_DATADIR=`eval echo $datadir`
+ EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"`
+ EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"`
+ INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR
diff --git a/patches/0031-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch b/patches/0031-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch
new file mode 100644 (file)
index 0000000..3db0350
--- /dev/null
@@ -0,0 +1,23 @@
+From: Svante Signell <svante.signell@gmail.com>
+Date: Thu, 31 Mar 2016 14:58:42 +0200
+Subject: Fix ext/date/lib/parse_tz PATH_MAX HURD FTBFS
+
+---
+ ext/date/lib/parse_tz.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
+index 88a746c..2f958ed 100644
+--- a/ext/date/lib/parse_tz.c
++++ b/ext/date/lib/parse_tz.c
+@@ -43,6 +43,10 @@
+ #include <ctype.h>
++#if !defined(PATH_MAX)
++#define PATH_MAX 4096
++#endif
++
+ #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
+ # if defined(__LITTLE_ENDIAN__)
+ #  undef WORDS_BIGENDIAN
diff --git a/patches/0032-Amend-C-11-for-intl-compilation-on-older-distributio.patch b/patches/0032-Amend-C-11-for-intl-compilation-on-older-distributio.patch
new file mode 100644 (file)
index 0000000..8e76807
--- /dev/null
@@ -0,0 +1,21 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Wed, 10 Apr 2019 06:31:27 +0000
+Subject: Amend C++11 for intl compilation on older distributions
+
+---
+ ext/intl/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
+index dd687bc..7cf5098 100644
+--- a/ext/intl/config.m4
++++ b/ext/intl/config.m4
+@@ -81,7 +81,7 @@ if test "$PHP_INTL" != "no"; then
+   PHP_REQUIRE_CXX()
+   PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX)
+-  PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS"
++  PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS -std=c++11"
+   case $host_alias in
+   *cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L"
+   esac
diff --git a/patches/0033-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch b/patches/0033-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch
new file mode 100644 (file)
index 0000000..11474d6
--- /dev/null
@@ -0,0 +1,34 @@
+From: Thijs Kinkhorst <thijs@debian.org>
+Date: Wed, 15 Jun 2016 09:18:03 +0200
+Subject: Add patch to install php7 module directly to APXS_LIBEXEC
+
+---
+ sapi/apache2handler/config.m4 | 15 +++------------
+ 1 file changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/sapi/apache2handler/config.m4 b/sapi/apache2handler/config.m4
+index bcdb188..c295f04 100644
+--- a/sapi/apache2handler/config.m4
++++ b/sapi/apache2handler/config.m4
+@@ -64,18 +64,9 @@ if test "$PHP_APXS2" != "no"; then
+   fi
+   APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
+-  if test -z `$APXS -q SYSCONFDIR`; then
+-    INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+-                 $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+-                       -i -n php"
+-  else
+-    APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR`
+-    INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+-                \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \
+-                 $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+-                       -S SYSCONFDIR='$APXS_SYSCONFDIR' \
+-                       -i -a -n php"
+-  fi
++  INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
++               $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
++                     -i -n php"
+   LIBPHP_CFLAGS="-shared"
+   PHP_SUBST(LIBPHP_CFLAGS)
diff --git a/patches/0034-libtool2.2.patch b/patches/0034-libtool2.2.patch
new file mode 100644 (file)
index 0000000..4e619fd
--- /dev/null
@@ -0,0 +1,33 @@
+From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
+Date: Sat, 2 May 2015 10:26:51 +0200
+Subject: libtool2.2
+
+---
+ scripts/phpize.in | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/phpize.in b/scripts/phpize.in
+index 0846bf2..7a71167 100644
+--- a/scripts/phpize.in
++++ b/scripts/phpize.in
+@@ -9,9 +9,11 @@ includedir="$prefix/include/php/@DEBIAN_PHP_API@"
+ builddir="`pwd`"
+ SED="@SED@"
+-FILES_BUILD="php.m4 shtool libtool.m4 ax_check_compile_flag.m4 ax_gcc_func_attribute.m4 php_cxx_compile_stdcxx.m4 pkg.m4 \
++aclocaldir="$prefix/share/aclocal"
++FILES_BUILD="php.m4 shtool ax_check_compile_flag.m4 ax_gcc_func_attribute.m4 php_cxx_compile_stdcxx.m4 \
+     config.guess config.sub ltmain.sh Makefile.global gen_stub.php"
+ FILES="run-tests*.php"
++LIBTOOL_FILES="pkg.m4 libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4"
+ CLEAN_FILES="$FILES *.o *.lo *.la .libs/ build/ modules/ \
+       config.nice configure configure.ac \
+       config.h config.h.in conftest* libtool config.cache autom4te.cache/ \
+@@ -146,6 +148,7 @@ phpize_copy_files()
+   test -d build || mkdir build
+   (cd "$phpdir" && cp $FILES_BUILD "$builddir"/build)
++  (cd "$aclocaldir" && cp $LIBTOOL_FILES "$builddir"/build)
+   (cd "$phpdir" && cp $FILES "$builddir")
+ }
diff --git a/patches/0035-Include-all-libtool-files-from-phpize.m4.patch b/patches/0035-Include-all-libtool-files-from-phpize.m4.patch
new file mode 100644 (file)
index 0000000..26f2fd3
--- /dev/null
@@ -0,0 +1,23 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Sun, 18 Oct 2020 13:31:37 +0200
+Subject: Include all libtool files from phpize.m4
+
+---
+ scripts/phpize.m4 | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/scripts/phpize.m4 b/scripts/phpize.m4
+index 616d164..f73a0de 100644
+--- a/scripts/phpize.m4
++++ b/scripts/phpize.m4
+@@ -5,6 +5,10 @@ dnl comments starting with # and empty newlines from the included files.
+ m4_include([build/ax_check_compile_flag.m4])
+ m4_include([build/ax_gcc_func_attribute.m4])
+ m4_include([build/libtool.m4])
++m4_include([build/ltoptions.m4])
++m4_include([build/ltsugar.m4])
++m4_include([build/ltversion.m4])
++m4_include([build/lt~obsolete.m4])
+ m4_include([build/php_cxx_compile_stdcxx.m4])
+ m4_include([build/php.m4])
+ m4_include([build/pkg.m4])
diff --git a/patches/0036-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch b/patches/0036-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch
new file mode 100644 (file)
index 0000000..4d7ab5e
--- /dev/null
@@ -0,0 +1,42 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Sun, 18 Oct 2020 20:38:15 +0200
+Subject: In phpize, also copy config.guess, config.sub,
+ ltmain.sh and shtool from their respective packages
+
+---
+ scripts/phpize.in | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/phpize.in b/scripts/phpize.in
+index 7a71167..0dcfe21 100644
+--- a/scripts/phpize.in
++++ b/scripts/phpize.in
+@@ -9,11 +9,18 @@ includedir="$prefix/include/php/@DEBIAN_PHP_API@"
+ builddir="`pwd`"
+ SED="@SED@"
++libtool_version=$(dpkg-query -f'${Version}' -W libtool)
+ aclocaldir="$prefix/share/aclocal"
+-FILES_BUILD="php.m4 shtool ax_check_compile_flag.m4 ax_gcc_func_attribute.m4 php_cxx_compile_stdcxx.m4 \
+-    config.guess config.sub ltmain.sh Makefile.global gen_stub.php"
++if dpkg --compare-versions "$libtool_version" ge 2.4.6-0.1~; then \
++  auxdir="/usr/share/libtool/build-aux"
++else \
++  auxdir="/usr/share/libtool/config"
++fi
++FILES_BUILD="php.m4 /usr/bin/shtool ax_check_compile_flag.m4 ax_gcc_func_attribute.m4 php_cxx_compile_stdcxx.m4 \
++      Makefile.global gen_stub.php"
+ FILES="run-tests*.php"
+ LIBTOOL_FILES="pkg.m4 libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4"
++AUX_FILES="config.sub config.guess ltmain.sh"
+ CLEAN_FILES="$FILES *.o *.lo *.la .libs/ build/ modules/ \
+       config.nice configure configure.ac \
+       config.h config.h.in conftest* libtool config.cache autom4te.cache/ \
+@@ -149,6 +156,7 @@ phpize_copy_files()
+   (cd "$phpdir" && cp $FILES_BUILD "$builddir"/build)
+   (cd "$aclocaldir" && cp $LIBTOOL_FILES "$builddir"/build)
++  (cd "$auxdir" && cp $AUX_FILES "$builddir"/build)
+   (cd "$phpdir" && cp $FILES "$builddir")
+ }
diff --git a/patches/0037-Don-t-use-hrtimers-on-GNU-Hurd.patch b/patches/0037-Don-t-use-hrtimers-on-GNU-Hurd.patch
new file mode 100644 (file)
index 0000000..bd598b5
--- /dev/null
@@ -0,0 +1,28 @@
+From: Svante Signell <svante.signell@gmail.com>
+Date: Tue, 16 Feb 2021 19:37:13 +0100
+Subject: Don't use hrtimers on GNU Hurd
+
+This patch solves the build error:
+
+    PHP Warning: PHP Startup: Failed to initialize high-resolution timer in
+    Unknown on line 0.
+---
+ ext/standard/hrtime.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/ext/standard/hrtime.h b/ext/standard/hrtime.h
+index 0aa39f0..89bf810 100644
+--- a/ext/standard/hrtime.h
++++ b/ext/standard/hrtime.h
+@@ -24,7 +24,10 @@
+ #define PHP_HRTIME_PLATFORM_HPUX    0
+ #define PHP_HRTIME_PLATFORM_AIX     0
+-#if defined(_POSIX_TIMERS) && ((_POSIX_TIMERS > 0) || defined(__OpenBSD__)) && defined(_POSIX_MONOTONIC_CLOCK) && defined(CLOCK_MONOTONIC)
++#if defined(_POSIX_TIMERS) && \
++    ((_POSIX_TIMERS > 0) || defined(__OpenBSD__) || defined(__GNU__)) && \
++    defined(_POSIX_MONOTONIC_CLOCK) && \
++    defined(CLOCK_MONOTONIC)
+ # undef  PHP_HRTIME_PLATFORM_POSIX
+ # define PHP_HRTIME_PLATFORM_POSIX 1
+ #elif defined(_WIN32) || defined(_WIN64)
diff --git a/patches/0038-Show-packaging-credits.patch b/patches/0038-Show-packaging-credits.patch
new file mode 100644 (file)
index 0000000..cbbcf21
--- /dev/null
@@ -0,0 +1,210 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Mon, 22 Feb 2021 12:03:44 +0100
+Subject: Show packaging credits
+
+---
+ ext/standard/credits.c | 143 +++++++++++++++++++++++++++++++++++++++++++++++++
+ ext/standard/credits.h |   2 +
+ ext/standard/info.c    |   2 +
+ ext/standard/info.h    |   1 +
+ 4 files changed, 148 insertions(+)
+
+diff --git a/ext/standard/credits.c b/ext/standard/credits.c
+index 4e8722d..98dfe93 100644
+--- a/ext/standard/credits.c
++++ b/ext/standard/credits.c
+@@ -15,6 +15,12 @@
+    +----------------------------------------------------------------------+
+ */
++#include <ctype.h>
++#include <string.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++
+ #include "php.h"
+ #include "info.h"
+ #include "SAPI.h"
+@@ -121,8 +127,145 @@ PHPAPI ZEND_COLD void php_print_credits(int flag) /* {{{ */
+               php_info_print_table_end();
+       }
++      php_print_packaging_credits(flag, 0);
++
+       if (!sapi_module.phpinfo_as_text && flag & PHP_CREDITS_FULLPAGE) {
+               PUTS("</div></body></html>\n");
+       }
+ }
+ /* }}} */
++
++PHPAPI void php_print_packaging_credits(int flag, int top) /* {{{ */
++{
++      if (flag && PHP_CREDITS_PACKAGING) {
++              /* Packaging */
++              int fd = -1;
++              char buf[4096];
++              ssize_t bytes = -1;
++              char *pos = NULL;
++              enum {
++                      DEBIAN = 0,
++                      DEBSURYORG = 1,
++                      FREEXIAN = 2
++              } packaging = DEBIAN;
++
++              fd = open("/usr/lib/php/packaging", O_RDONLY);
++              if (fd == -1) {
++                      goto print;
++              }
++
++              bytes = read(fd, buf, sizeof(buf) - 1);
++              close(fd);
++
++              if (bytes <= 0) {
++                      goto print;
++              }
++
++              buf[bytes] = '\0';
++              pos = strchr(buf, '\n');
++              if (pos != NULL) {
++                      bytes = pos - buf;
++                      *pos = '\0';
++              }
++
++              if (strncmp(buf, "deb.sury.org", sizeof(buf)) == 0) {
++                      packaging = DEBSURYORG;
++              } else if (strncmp(buf, "freexian", sizeof(buf)) == 0) {
++                      packaging = FREEXIAN;
++              }
++
++      print:
++              if ((top && packaging != FREEXIAN) || (!top && packaging == FREEXIAN))
++              {
++                      return;
++              }
++              switch (packaging) {
++              case DEBSURYORG:
++                      php_info_print_table_start();
++                      php_info_print_table_colspan_header(1, "Debian Packaging");
++                      if (!sapi_module.phpinfo_as_text) {
++                              PUTS("<tr><td class=\"e\">");
++                              PUTS("<a href=\"https://deb.sury.org\">DEB.SURY.ORG</a>, an Ondřej Surý project");
++                              PUTS("</td></tr>\n");
++                      } else {
++                              php_info_print_table_row(1, "DEB.SURY.ORG, an Ondřej Surý project");
++                      }
++                      php_info_print_table_end();
++                      break;
++              case FREEXIAN:
++                      fd = -1;
++                      bytes = -1;
++
++                      if (!sapi_module.phpinfo_as_text) {
++                              PUTS("<h1>PHP Vendor</h1>\n");
++                      } else {
++                              PUTS("PHP Vendor\n");
++                      }
++
++                      php_info_print_table_start();
++                      php_info_print_table_colspan_header(1, "Debian Packaging");
++
++                      if (!sapi_module.phpinfo_as_text) {
++                              fd = open("/etc/php/freexian-sponsor.html", O_RDONLY);
++                      } else {
++                              fd = open("/etc/php/freexian-sponsor.txt", O_RDONLY);
++                              if (fd == -1) {
++                                      fd = open("/etc/php/freexian-sponsor.html", O_RDONLY);
++                              }
++                      }
++
++                      if (fd > 0) {
++                              bytes = read(fd, buf, sizeof(buf) - 1);
++                              close(fd);
++                      }
++
++                      if (bytes > 0) {
++                              buf[bytes] = '\0';
++                      }
++
++                      if (!sapi_module.phpinfo_as_text) {
++                              PUTS("<tr><td class=\"e\">");
++
++                              PUTS("This PHP version is maintained by "
++                                       "<a href=\"https://www.freexian.com\">Freexian SARL</a> as part of "
++                                       "their <a href=\"https://php.freexian.com\">PHP LTS</a> offer"
++                                      );
++
++                              if (bytes > 0) {
++                                      PUTS(" and is made available exclusively for ");
++                                      PUTS(buf);
++                              } else {
++                                      PUTS(". This service is run together with Ondřej Surý, "
++                                               "that's why a small subset of the PHP LTS packages "
++                                               "are made freely available on "
++                                               "<a href=\"https://deb.sury.org/\">DEB.SURY.ORG</a>.");
++                              }
++                              PUTS("</td></tr>\n");
++                      } else {
++                              PUTS("This PHP version is maintained by "
++                                       "Freexian SARL <https://www.freexian.com> as part of "
++                                       "their PHP LTS <https://php.freexian.com> offer"
++                                      );
++                              if (bytes > 0) {
++                                      PUTS(" and is made available exclusively for ");
++                                      PUTS(buf);
++                              } else {
++                                      PUTS(". This service is run together with Ondřej Surý, "
++                                               "that's why a small subset of the PHP LTS packages "
++                                               "are made freely available on "
++                                               "DEB.SURY.ORG <https://deb.sury.org/>.");
++                              }
++                      }
++                      php_info_print_table_end();
++                      break;
++              case DEBIAN:
++              default:
++                      php_info_print_table_start();
++                      php_info_print_table_colspan_header(1, "Debian Packaging");
++                      php_info_print_table_row(1, "Ondřej Surý");
++                      php_info_print_table_end();
++                      break;
++              }
++      }
++}
++/* }}} */
+diff --git a/ext/standard/credits.h b/ext/standard/credits.h
+index a0c5d1e..3efaa86 100644
+--- a/ext/standard/credits.h
++++ b/ext/standard/credits.h
+@@ -35,4 +35,6 @@
+ PHPAPI void php_print_credits(int flag);
++PHPAPI void php_print_packaging_credits(int flag, int top);
++
+ #endif
+diff --git a/ext/standard/info.c b/ext/standard/info.c
+index dd25119..6481a31 100644
+--- a/ext/standard/info.c
++++ b/ext/standard/info.c
+@@ -788,6 +788,8 @@ PHPAPI ZEND_COLD void php_print_info(int flag)
+               php_info_print("phpinfo()\n");
+       }
++      php_print_packaging_credits(flag, 1);
++
+       if (flag & PHP_INFO_GENERAL) {
+               const char *zend_version = get_zend_version();
+               char temp_api[10];
+diff --git a/ext/standard/info.h b/ext/standard/info.h
+index e8eda9c..810ce4b 100644
+--- a/ext/standard/info.h
++++ b/ext/standard/info.h
+@@ -43,6 +43,7 @@
+ #define PHP_CREDITS_FULLPAGE          (1<<5)
+ #define PHP_CREDITS_QA                                (1<<6)
+ #define PHP_CREDITS_WEB             (1<<7)
++#define PHP_CREDITS_PACKAGING                 (1<<8)
+ #define PHP_CREDITS_ALL                               0xFFFFFFFF
+ #endif /* HAVE_CREDITS_DEFS */
diff --git a/patches/0039-Allow-printing-credits-buffer-larger-than-4k.patch b/patches/0039-Allow-printing-credits-buffer-larger-than-4k.patch
new file mode 100644 (file)
index 0000000..a174117
--- /dev/null
@@ -0,0 +1,44 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Sat, 3 Apr 2021 16:12:43 +0200
+Subject: Allow printing credits buffer larger than 4k
+
+---
+ ext/standard/credits.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/ext/standard/credits.c b/ext/standard/credits.c
+index 98dfe93..8ea0f5b 100644
+--- a/ext/standard/credits.c
++++ b/ext/standard/credits.c
+@@ -233,7 +233,14 @@ PHPAPI void php_print_packaging_credits(int flag, int top) /* {{{ */
+                               if (bytes > 0) {
+                                       PUTS(" and is made available exclusively for ");
+-                                      PUTS(buf);
++                                      do {
++                                              PUTS(buf);
++
++                                              bytes = read(fd, buf, sizeof(buf) - 1);
++                                              if (bytes > 0) {
++                                                      buf[bytes] = '\0';
++                                              }
++                                      } while (bytes > 0);
+                               } else {
+                                       PUTS(". This service is run together with Ondřej Surý, "
+                                                "that's why a small subset of the PHP LTS packages "
+@@ -248,7 +255,14 @@ PHPAPI void php_print_packaging_credits(int flag, int top) /* {{{ */
+                                       );
+                               if (bytes > 0) {
+                                       PUTS(" and is made available exclusively for ");
+-                                      PUTS(buf);
++                                      do {
++                                              PUTS(buf);
++
++                                              bytes = read(fd, buf, sizeof(buf) - 1);
++                                              if (bytes > 0) {
++                                                      buf[bytes] = '\0';
++                                              }
++                                      } while (bytes > 0);
+                               } else {
+                                       PUTS(". This service is run together with Ondřej Surý, "
+                                                "that's why a small subset of the PHP LTS packages "
diff --git a/patches/0040-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch b/patches/0040-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch
new file mode 100644 (file)
index 0000000..f9b84d3
--- /dev/null
@@ -0,0 +1,30 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Tue, 22 Jun 2021 15:48:57 +0200
+Subject: Don't close the credits buffer file descriptor too early
+
+---
+ ext/standard/credits.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ext/standard/credits.c b/ext/standard/credits.c
+index 8ea0f5b..1103bea 100644
+--- a/ext/standard/credits.c
++++ b/ext/standard/credits.c
+@@ -216,7 +216,6 @@ PHPAPI void php_print_packaging_credits(int flag, int top) /* {{{ */
+                       if (fd > 0) {
+                               bytes = read(fd, buf, sizeof(buf) - 1);
+-                              close(fd);
+                       }
+                       if (bytes > 0) {
+@@ -270,6 +269,9 @@ PHPAPI void php_print_packaging_credits(int flag, int top) /* {{{ */
+                                                "DEB.SURY.ORG <https://deb.sury.org/>.");
+                               }
+                       }
++                      if (fd > 0) {
++                              close(fd);
++                      }
+                       php_info_print_table_end();
+                       break;
+               case DEBIAN:
diff --git a/patches/0041-Lower-the-OpenSSL-requirement-to-1.0.1.patch b/patches/0041-Lower-the-OpenSSL-requirement-to-1.0.1.patch
new file mode 100644 (file)
index 0000000..b7423a6
--- /dev/null
@@ -0,0 +1,120 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Fri, 31 Dec 2021 07:40:21 +0100
+Subject: Lower the OpenSSL requirement to 1.0.1
+
+---
+ build/php.m4              | 2 +-
+ ext/openssl/config0.m4    | 2 +-
+ ext/openssl/openssl.c     | 9 ++++++++-
+ ext/openssl/php_openssl.h | 4 +++-
+ ext/openssl/xp_ssl.c      | 9 +++++++++
+ 5 files changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 637b2a1..441d88d 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1942,7 +1942,7 @@ dnl
+ AC_DEFUN([PHP_SETUP_OPENSSL],[
+   found_openssl=no
+-  PKG_CHECK_MODULES([OPENSSL], [openssl >= 1.0.2], [found_openssl=yes])
++  PKG_CHECK_MODULES([OPENSSL], [openssl >= 1.0.1], [found_openssl=yes])
+   if test "$found_openssl" = "yes"; then
+     PHP_EVAL_LIBLINE($OPENSSL_LIBS, $1)
+diff --git a/ext/openssl/config0.m4 b/ext/openssl/config0.m4
+index ffd4e07..3bc1a08 100644
+--- a/ext/openssl/config0.m4
++++ b/ext/openssl/config0.m4
+@@ -1,7 +1,7 @@
+ PHP_ARG_WITH([openssl],
+   [for OpenSSL support],
+   [AS_HELP_STRING([--with-openssl],
+-    [Include OpenSSL support (requires OpenSSL >= 1.0.2)])])
++    [Include OpenSSL support (requires OpenSSL >= 1.0.1)])])
+ PHP_ARG_WITH([kerberos],
+   [for Kerberos support],
+diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
+index f9c7f8c..960e571 100644
+--- a/ext/openssl/openssl.c
++++ b/ext/openssl/openssl.c
+@@ -95,7 +95,7 @@
+ #endif
+ #define DEBUG_SMIME   0
+-#if !defined(OPENSSL_NO_EC) && defined(EVP_PKEY_EC)
++#if !defined(OPENSSL_NO_EC) && defined(EVP_PKEY_EC) && OPENSSL_VERSION_NUMBER >= 0x10002000L
+ #define HAVE_EVP_PKEY_EC 1
+ #endif
+@@ -1236,6 +1236,13 @@ PHP_MINIT_FUNCTION(openssl)
+       OpenSSL_add_all_ciphers();
+       OpenSSL_add_all_digests();
+       OpenSSL_add_all_algorithms();
++
++#if !defined(OPENSSL_NO_AES) && defined(EVP_CIPH_CCM_MODE) && OPENSSL_VERSION_NUMBER < 0x100020000
++      EVP_add_cipher(EVP_aes_128_ccm());
++      EVP_add_cipher(EVP_aes_192_ccm());
++      EVP_add_cipher(EVP_aes_256_ccm());
++#endif
++
+       SSL_load_error_strings();
+ #else
+       OPENSSL_init_ssl(OPENSSL_INIT_LOAD_CONFIG, NULL);
+diff --git a/ext/openssl/php_openssl.h b/ext/openssl/php_openssl.h
+index 5cfadbe..cd2dc1b 100644
+--- a/ext/openssl/php_openssl.h
++++ b/ext/openssl/php_openssl.h
+@@ -35,7 +35,9 @@ extern zend_module_entry openssl_module_entry;
+ #endif
+ #else
+ /* OpenSSL version check */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10002000L
++#define PHP_OPENSSL_API_VERSION 0x10001
++#elif OPENSSL_VERSION_NUMBER < 0x10100000L
+ #define PHP_OPENSSL_API_VERSION 0x10002
+ #elif OPENSSL_VERSION_NUMBER < 0x30000000L
+ #define PHP_OPENSSL_API_VERSION 0x10100
+diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c
+index 79dd0b4..6252bdd 100644
+--- a/ext/openssl/xp_ssl.c
++++ b/ext/openssl/xp_ssl.c
+@@ -33,8 +33,11 @@
+ #include <openssl/x509.h>
+ #include <openssl/x509v3.h>
+ #include <openssl/err.h>
++
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+ #include <openssl/bn.h>
+ #include <openssl/dh.h>
++#endif
+ #ifdef PHP_WIN32
+ #include "win32/winutil.h"
+@@ -81,8 +84,10 @@
+ #ifndef OPENSSL_NO_TLSEXT
+ #define HAVE_TLS_SNI 1
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+ #define HAVE_TLS_ALPN 1
+ #endif
++#endif
+ #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ #define HAVE_SEC_LEVEL 1
+@@ -1273,8 +1278,12 @@ static int php_openssl_set_server_ecdh_curve(php_stream *stream, SSL_CTX *ctx) /
+       zvcurve = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "ssl", "ecdh_curve");
+       if (zvcurve == NULL) {
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+               SSL_CTX_set_ecdh_auto(ctx, 1);
+               return SUCCESS;
++#else
++              curve_nid = NID_X9_62_prime256v1;
++#endif
+       } else {
+               if (!try_convert_to_string(zvcurve)) {
+                       return FAILURE;
diff --git a/patches/0042-Fail-the-build-when-the-dtrace-call-fails.patch b/patches/0042-Fail-the-build-when-the-dtrace-call-fails.patch
new file mode 100644 (file)
index 0000000..2b648aa
--- /dev/null
@@ -0,0 +1,22 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Fri, 31 Dec 2021 10:23:20 +0100
+Subject: Fail the build when the dtrace call fails
+
+---
+ build/php.m4 | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 441d88d..512b0dd 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -2389,7 +2389,8 @@ dnl overwritten (Bug 61268).
+ $abs_srcdir/$ac_provsrc:;
+ $ac_bdir[$]ac_hdrobj: $abs_srcdir/$ac_provsrc
+-      CFLAGS="\$(CFLAGS_CLEAN)" dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@.bak && \$(SED) -e 's,PHP_,DTRACE_,g' \$[]@.bak > \$[]@
++      CFLAGS="\$(CFLAGS_CLEAN)" dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@.bak
++      \$(SED) -e 's,PHP_,DTRACE_,g' \$[]@.bak > \$[]@
+ \$(PHP_DTRACE_OBJS): $ac_bdir[$]ac_hdrobj
diff --git a/patches/0043-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch b/patches/0043-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch
new file mode 100644 (file)
index 0000000..58547ac
--- /dev/null
@@ -0,0 +1,24 @@
+From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org>
+Date: Mon, 3 Jan 2022 15:32:12 +0100
+Subject: Override result of AC_PROG_LN_S to fix FTBFS on ppc64el
+
+---
+ configure.ac | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index b73a3a3..841c009 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -133,6 +133,11 @@ AC_PROG_CPP
+ AC_USE_SYSTEM_EXTENSIONS
+ AC_PROG_LN_S
++if test "$LN_S" != "ln -s"; then
++  AC_MSG_WARN([Overriding result of AC_PROG_LN_S, ln -s always works here])
++  LN_S='ln -s'
++fi
++
+ if test "$cross_compiling" = yes ; then
+   AC_MSG_CHECKING(for native build C compiler)
+   AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)
diff --git a/patches/0044-Update-gcc-func-attr-macro.patch b/patches/0044-Update-gcc-func-attr-macro.patch
new file mode 100644 (file)
index 0000000..7a64284
--- /dev/null
@@ -0,0 +1,30 @@
+From: Ming Chen <ming.chen1986@gmail.com>
+Date: Mon, 2 Mar 2020 09:40:36 +0800
+Subject: ax_gcc_func_attribute: Revise the detection of unknown attributes
+
+GCC outputs a warning when Wstrict-prototypes is on, in such case the
+attribute detection always fails even if the attribute is actually
+supported. This change checks for the "-Wattributes" warning in
+conftest.err instead of the existence of the file.
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/php8.1/+bug/1882279
+Forwarded: https://github.com/php/php-src/pull/8483
+Origin: http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commitdiff;h=df0894ad1a8195df67a52108b931e07d708cec9a
+Last-Update: 2022-05-02
+---
+ build/ax_gcc_func_attribute.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/ax_gcc_func_attribute.m4 b/build/ax_gcc_func_attribute.m4
+index 79478f5..355ea92 100644
+--- a/build/ax_gcc_func_attribute.m4
++++ b/build/ax_gcc_func_attribute.m4
+@@ -227,7 +227,7 @@ AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
+             dnl GCC doesn't exit with an error if an unknown attribute is
+             dnl provided but only outputs a warning, so accept the attribute
+             dnl only if no warning were issued.
+-            [AS_IF([test -s conftest.err],
++            [AS_IF([grep -- -Wattributes conftest.err],
+                 [AS_VAR_SET([ac_var], [no])],
+                 [AS_VAR_SET([ac_var], [yes])])],
+             [AS_VAR_SET([ac_var], [no])])
diff --git a/patches/0045-scripts-php-.in-Explicitly-define-the-path-to-sed.patch b/patches/0045-scripts-php-.in-Explicitly-define-the-path-to-sed.patch
new file mode 100644 (file)
index 0000000..c170f1b
--- /dev/null
@@ -0,0 +1,42 @@
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Thu, 13 Apr 2023 15:59:57 -0700
+Subject: scripts/php*.in: Explicitly define the path to sed.
+
+The full path is detected by configure, resulting in a different build
+depending on if it is built on a usrmerge or non-usrmerge system.
+
+Since usrmerge systems contain compatibility symlinks for the
+non-usrmerge paths, use the non-usrmerge path which is compatible in
+both systems.
+
+https://tests.reproducible-builds.org/debian/issues/bookworm/paths_vary_due_to_usrmerge_issue.html
+---
+ scripts/php-config.in | 2 +-
+ scripts/phpize.in     | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/php-config.in b/scripts/php-config.in
+index 45a0759..05307ee 100644
+--- a/scripts/php-config.in
++++ b/scripts/php-config.in
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+-SED="@SED@"
++SED="/bin/sed"
+ prefix="@prefix@"
+ datarootdir="@datarootdir@"
+ exec_prefix="@exec_prefix@"
+diff --git a/scripts/phpize.in b/scripts/phpize.in
+index 0dcfe21..0d71e79 100644
+--- a/scripts/phpize.in
++++ b/scripts/phpize.in
+@@ -7,7 +7,7 @@ exec_prefix="`eval echo @exec_prefix@`"
+ phpdir="$prefix/lib/php/@DEBIAN_PHP_API@/build"
+ includedir="$prefix/include/php/@DEBIAN_PHP_API@"
+ builddir="`pwd`"
+-SED="@SED@"
++SED="/bin/sed"
+ libtool_version=$(dpkg-query -f'${Version}' -W libtool)
+ aclocaldir="$prefix/share/aclocal"
diff --git a/patches/0046-Remove-timestamps-from-phar.patch b/patches/0046-Remove-timestamps-from-phar.patch
new file mode 100644 (file)
index 0000000..39ddd46
--- /dev/null
@@ -0,0 +1,38 @@
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Tue, 25 Apr 2023 11:20:24 -0700
+Subject: Remove timestamps from "phar".
+
+Thanks to Jelle van der Waa!
+
+https://gist.github.com/jelly/96847934239aac19c512c54ca65d6baa
+---
+ ext/phar/phar.c | 2 +-
+ ext/phar/util.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ext/phar/phar.c b/ext/phar/phar.c
+index f60b0d6..12cc7b6 100644
+--- a/ext/phar/phar.c
++++ b/ext/phar/phar.c
+@@ -2999,7 +2999,7 @@ int phar_flush(phar_archive_data *phar, char *user_stub, zend_long len, int conv
+                       4: metadata-len
+                       +: metadata
+               */
+-              mytime = time(NULL);
++              mytime = 0;
+               phar_set_32(entry_buffer, entry->uncompressed_filesize);
+               phar_set_32(entry_buffer+4, mytime);
+               phar_set_32(entry_buffer+8, entry->compressed_filesize);
+diff --git a/ext/phar/util.c b/ext/phar/util.c
+index 2c98b89..b4ff69a 100644
+--- a/ext/phar/util.c
++++ b/ext/phar/util.c
+@@ -574,7 +574,7 @@ phar_entry_data *phar_get_or_create_entry_data(char *fname, size_t fname_len, ch
+       phar_add_virtual_dirs(phar, path, path_len);
+       etemp.is_modified = 1;
+-      etemp.timestamp = time(0);
++      etemp.timestamp = 0;
+       etemp.is_crc_checked = 1;
+       etemp.phar = phar;
+       etemp.filename = estrndup(path, path_len);
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..37aca73
--- /dev/null
@@ -0,0 +1,46 @@
+0001-libtool_fixes.patch
+0002-debian_quirks.patch
+0003-php-5.4.9-phpinfo.patch
+0004-extension_api.patch
+0005-php.ini_securitynotes.patch
+0006-php-5.4.7-libdb.patch
+0007-Add-support-for-use-of-the-system-timezone-database.patch
+0008-strcmp_null-OnUpdateErrorLog.patch
+0009-qdbm-is-usr_include_qdbm.patch
+0010-session_save_path.patch
+0011-php-fpm-man-section-and-cleanup.patch
+0012-fpm-config.patch
+0013-php-fpm-sysconfdir.patch
+0014-lp564920-fix-big-files.patch
+0015-temporary-path-fixes-for-multiarch.patch
+0016-hurd-noptrace.patch
+0017-php-5.3.3-macropen.patch
+0018-php-5.2.4-embed.patch
+0019-php-fpm-m68k.patch
+0020-expose_all_built_and_installed_apis.patch
+0021-Use-system-timezone.patch
+0022-php-fpm-do-reload-on-SIGHUP.patch
+0023-php-5.4.8-ldap_r.patch
+0024-php-5.4.9-fixheader.patch
+0025-php-5.6.0-noNO.patch
+0026-php-5.6.0-oldpcre.patch
+0027-hack-phpdbg-to-explicitly-link-with-libedit.patch
+0028-Remove-W3C-validation-icon-to-not-expose-the-reader-.patch
+0029-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch
+0030-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch
+0031-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch
+0032-Amend-C-11-for-intl-compilation-on-older-distributio.patch
+0033-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch
+0034-libtool2.2.patch
+0035-Include-all-libtool-files-from-phpize.m4.patch
+0036-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch
+0037-Don-t-use-hrtimers-on-GNU-Hurd.patch
+0038-Show-packaging-credits.patch
+0039-Allow-printing-credits-buffer-larger-than-4k.patch
+0040-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch
+0041-Lower-the-OpenSSL-requirement-to-1.0.1.patch
+0042-Fail-the-build-when-the-dtrace-call-fails.patch
+0043-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch
+0044-Update-gcc-func-attr-macro.patch
+0045-scripts-php-.in-Explicitly-define-the-path-to-sed.patch
+0046-Remove-timestamps-from-phar.patch
diff --git a/php-cgi.apache2 b/php-cgi.apache2
new file mode 100644 (file)
index 0000000..38de4e1
--- /dev/null
@@ -0,0 +1 @@
+conf debian/php@PHP_VERSION@-cgi.conf
diff --git a/php-cgi.conf b/php-cgi.conf
new file mode 100644 (file)
index 0000000..9f4da4b
--- /dev/null
@@ -0,0 +1,34 @@
+# This file replaces old system MIME types and sets them only in the
+# Apache webserver
+
+# Using (?:pattern) instead of (pattern) is a small optimization that
+# avoid capturing the matching pattern (as $1) which isn't used here
+# application/x-httpd-php                        phtml php
+<FilesMatch ".+\.ph(?:ar|p|tml)$">
+    SetHandler application/x-httpd-php
+</FilesMatch>
+# application/x-httpd-php-source                 phps
+<FilesMatch ".+\.phps$">
+    SetHandler application/x-httpd-php-source
+    # Deny access to raw php sources by default
+    # To re-enable it's recommended to enable access to the files
+    # only in specific virtual host or directory
+    Require all denied
+</FilesMatch>
+# Deny access to files without filename (e.g. '.php')
+<FilesMatch "^\.ph(?:ar|p|ps|tml)$">
+    Require all denied
+</FilesMatch>
+
+# To enable PHP CGI site-wide, just uncomment following lines, however
+# as a security measure, it's recommended to enable PHP just in the
+# specific virtual servers or just specific directories
+
+#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
+#<Directory "/usr/lib/cgi-bin">
+#    AllowOverride None
+#    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
+#    Order allow,deny
+#    Allow from all
+#</Directory>
+#Action application/x-httpd-php /cgi-bin/php@PHP_VERSION@
diff --git a/php-cgi.dirs.extra b/php-cgi.dirs.extra
new file mode 100644 (file)
index 0000000..4c87a13
--- /dev/null
@@ -0,0 +1,4 @@
+/etc/apache2/mods-available
+/usr/lib/cgi-bin
+/usr/bin
+/usr/share/man/man1
diff --git a/php-cgi.install.extra b/php-cgi.install.extra
new file mode 100644 (file)
index 0000000..50513e0
--- /dev/null
@@ -0,0 +1,3 @@
+usr/bin/php-cgi@PHP_VERSION@
+usr/share/man/man1/php-cgi@PHP_VERSION@.1
+usr/lib/cgi-bin/php@PHP_VERSION@
diff --git a/php-cgi.postinst.extra b/php-cgi.postinst.extra
new file mode 100644 (file)
index 0000000..792915b
--- /dev/null
@@ -0,0 +1,14 @@
+php_enable() {
+    # Don't enable PHP CGI by default
+    return 1
+}
+
+if [ "$1" = "configure" ]; then
+    update-alternatives \
+       --install /usr/bin/php-cgi php-cgi /usr/bin/php-cgi@PHP_VERSION@ @PHP_MAJOR@@PHP_MINOR@ \
+       --slave /usr/share/man/man1/php-cgi.1.gz php-cgi.1.gz \
+       /usr/share/man/man1/php-cgi@PHP_VERSION@.1.gz
+
+    update-alternatives \
+       --install /usr/lib/cgi-bin/php php-cgi-bin /usr/lib/cgi-bin/php@PHP_VERSION@ @PHP_MAJOR@@PHP_MINOR@
+fi
diff --git a/php-cgi.prerm.extra b/php-cgi.prerm.extra
new file mode 100644 (file)
index 0000000..8803e26
--- /dev/null
@@ -0,0 +1,4 @@
+if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then
+    update-alternatives --remove php-cgi /usr/bin/php-cgi@PHP_VERSION@
+    update-alternatives --remove php-cgi-bin /usr/lib/cgi-bin/php@PHP_VERSION@
+fi
diff --git a/php-cli.dirs.extra b/php-cli.dirs.extra
new file mode 100644 (file)
index 0000000..1317f86
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/bin
+/usr/share/man/man1
diff --git a/php-cli.install.extra b/php-cli.install.extra
new file mode 100644 (file)
index 0000000..b32f655
--- /dev/null
@@ -0,0 +1,6 @@
+usr/bin/php@PHP_VERSION@
+usr/share/man/man1/php@PHP_VERSION@.1
+usr/bin/phar@PHP_VERSION@.phar
+usr/bin/phar@PHP_VERSION@
+usr/share/man/man1/phar@PHP_VERSION@.phar.1
+usr/share/man/man1/phar@PHP_VERSION@.1
diff --git a/php-cli.links b/php-cli.links
new file mode 100644 (file)
index 0000000..c1a4e9d
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/bin/phar@PHP_VERSION@.phar /usr/bin/phar.phar@PHP_VERSION@
+/usr/share/man/man1/phar@PHP_VERSION@.phar.1 /usr/share/man/man1/phar.phar@PHP_VERSION@.1
diff --git a/php-cli.postinst.extra b/php-cli.postinst.extra
new file mode 100644 (file)
index 0000000..ca4e325
--- /dev/null
@@ -0,0 +1,7 @@
+if [ "$1" = "configure" ]; then
+    for binary in php phar phar.phar; do
+        update-alternatives \
+           --install /usr/bin/${binary} ${binary} /usr/bin/${binary}@PHP_VERSION@ @PHP_MAJOR@@PHP_MINOR@ \
+           --slave /usr/share/man/man1/${binary}.1.gz ${binary}.1.gz /usr/share/man/man1/${binary}@PHP_VERSION@.1.gz
+    done
+fi
diff --git a/php-cli.prerm.extra b/php-cli.prerm.extra
new file mode 100644 (file)
index 0000000..dea3984
--- /dev/null
@@ -0,0 +1,5 @@
+if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then
+    for binary in php phar phar phar.phar; do
+        update-alternatives --remove ${binary} /usr/bin/${binary}@PHP_VERSION@
+    done
+fi
diff --git a/php-common.README.Debian b/php-common.README.Debian
new file mode 100644 (file)
index 0000000..a4b4824
--- /dev/null
@@ -0,0 +1,184 @@
+Table of Contents:
+----------------------------------------------------------------------
+* Using PHP with threaded webservers (e.g. apache2-mpm-worker)
+* Problems starting Apache HTTP Server with PHP 5
+* Session storage
+* Other caveats
+* PHP and Apache 2 Multiviews (HTTP Content Negotiation)
+* PHP CGI and Apache HTTP Server
+* Configuration layout
+* Timezone data from system timezone database
+* Further documentation, errata, etc
+
+Using PHP with threaded webservers (e.g. apache2-mpm-worker)
+----------------------------------------------------------------------
+
+  After much back-and-forth with upstream (and even building our
+  packages thread-safe for a while), we're currently admitting defeat
+  on that front, and are NOT building any thread-safe versions of PHP
+  for any webservers. Our recommendation is that, if you need to use
+  a threaded webserver, you should use php-fpm and interface to your
+  webserver with FastCGI.
+
+Session storage
+----------------------------------------------------------------------
+
+  Session files are stored in /var/lib/php/sessions. For security
+  purposes, this directory is unreadable to non-root users. This means
+  that PHP running from Apache HTTP Server, for example, will not be
+  able to clean up stale session files. Instead, we have a cron job
+  run every 30 minutes that cleans up stale session files;
+  /etc/cron.d/php. You may need to modify how often this runs, if
+  you've modified session.gc_maxlifetime in your php.ini; otherwise,
+  it may be too lax or overly aggressive in cleaning out stale session
+  files.
+
+  WARNING: If you modify the session handling in any way (e.g. put
+  session files in subdirectories, use different session handler), you
+  always have to check and possibly disable or modify the session
+  cleanup cron job that is located in /etc/cron.d/php.
+
+Other caveats
+----------------------------------------------------------------------
+
+  Configuration directives extension_dir and include_path should be
+  commented out, unless you need special settings for them so PHP will
+  look in compiled-in paths. If you set them, you should also add
+  appropriate PHP install directories there.
+
+PHP and Apache 2 Multiviews (HTTP Content Negotiation)
+----------------------------------------------------------------------
+
+ Apache 2’s mod_negotiation needs files to have a MIME-Type (amongst
+ others) associated with them in order to be considered for HTTP
+ content negotiation.
+
+ Per default, the Debian PHP packages use Apache 2 handlers
+ (SetHandler directive) to enable PHP interpretation, while no
+ MIME-Type is being associated with the common PHP file extensions.
+
+ Thus, by default, the HTTP content negotiation is disabled for PHP
+ file extensions.
+
+ Possible use cases:
+
+ 1) You intend to use HTTP content negotiation in order to tidy up URLs:
+
+    For example, you wanted the file “http://example.org/foo.php”
+    being accessible as “http://example.org/foo”, too.  In that case
+    you really shouldn’t abuse mod_negotiation but use mod_rewrite.
+
+    An example of rewrite-rules, which allow any file ending in “.php”
+    to be accessed without this extension is:
+
+      RewriteCond "%{REQUEST_FILENAME}" !-f
+      RewriteCond "%{REQUEST_FILENAME}" !-d
+      RewriteRule "^(.*)$" "$1.php" [last]
+
+    Depending on your setup you may need to set other flags, too,
+    especially “passthrough” or “qsappend”.
+
+ 2) You really wanted to use HTTP content negotiation on PHP files
+    (be they interpreted or not).
+
+    An example for this might be, when you have the files
+
+      http://example.org/foo.php
+      http://example.org/foo.js
+
+    which both do the same job, but the former is executed as PHP on
+    the server-side, while the later is executed as JavaScript on the
+    client-side.
+
+    If you really want it, just add MIME type definitions for file
+    extensions you need to your Apache 2 configuration.  For example
+    to recognize php and phps extensions you would add:
+
+      AddType application/x-php         php
+      AddType application/x-php-source  phps
+
+    This scenario is really very rarely used (if at all)!
+
+PHP CGI and Apache HTTP Server
+----------------------------------------------------------------------
+
+  In simple cases, what you probably want isn't the php-cgi package
+  at all, but rather the libapache2-mod-php package, which will
+  configure itself on installation and Just Work(tm). However, if you
+  have a need to use the CGI version of PHP with Apache HTTP Server,
+  the following should help get you going, though there are dozens of
+  different ways to do this.
+
+  The current recommended approach is to install the php-fpm package
+  and use FastCGI to interface to your webserver. Run:
+  a2enconf php@PHP_VERSION@-fpm
+  to enable it in Apache 2.x.
+
+  Please note that this process will never be made automatic, as
+  php-cgi is meant to be a webserver-agnostic package that can be
+  used with any httpd, and we don't want it to conflict with the
+  httpd-specific packages such as libapache2-mod-php. If both were
+  installed side-by-side and both were automatically enabled, the
+  results would be a bit confusing, obviously.
+
+  You should also be aware that a server deployed in CGI mode is open
+  to several possible vulnerabilities. See the upstream CGI security
+  page to learn how to defend yourself from such attacks:
+  http://www.php.net/manual/en/security.cgi-bin.php
+
+  To use php-cgi with Apache HTTP Server:
+  1) activate php@PHP_VERSION@_cgi module: run 'a2enconf php@PHP_VERSION@-cgi'
+  2) this will also activate the mod_actions module as a dependency
+  3) comment out the last block of configuration in the
+     /etc/apache2/conf-enabled/php@PHP_VERSION@-cgi.conf file to enable
+     server-wide PHP CGI or add the mentioned configuration block to
+     one or more virtual hosts or directories.
+  4) It's advised to not mix-and-match multiple SAPIs (such as
+     php-cgi along with libapache2-mod-php) in the same apache2
+     configuration as it is likely to create unpredictable results.
+
+Configuration Layout
+----------------------------------------------------------------------
+
+  Each SAPI (apache2/apache2filter/cgi/cli/fpm) has a different
+  central configuration file /etc/php5/@PHP_VERSION@/$SAPI/php.ini.
+
+  Additionally, each SAPI is configured with the compile-time option 
+
+    --with-config-file-scan-dir=/etc/php/@PHP_VERSION@/$SAPI/conf.d
+
+  Any file found in this directory ending in .ini will be treated as a
+  configuration file by the PHP SAPI.
+
+  The rationale behind this method is that each SAPI can thus be
+  identically configured with a minimal amount of conffile handling.
+
+  Note that the usage of the PHP_INI_SCAN_DIR environment variable
+  overrides what is set with --with-config-file-scan-dir and thus the
+  directory /etc/php/@PHP_VERSION@/$SAPI/conf.d will no longer be included.
+
+Timezone data from system timezone database
+----------------------------------------------------------------------
+
+  Debian PHP has been patched to use the system wide timezone database
+  from the tzdata package, making sure any updates there are
+  automatically used by PHP as well.
+
+  Note that this requires that the PHP process has access to
+  /etc/localtime and /usr/share/zoneinfo. For any regular installation
+  this should be the case, but in specific secured environments when
+  reading the timezone database is impossible PHP will give a
+  "Timezone database is corrupt - this should *never* happen!" error.
+Further documentation, errata, misc.
+----------------------------------------------------------------------
+
+  Errata and other general information about PHP in Debian can be
+  found in the debian wiki at:
+
+    http://wiki.debian.org/PHP
+       
+  If after reading the documentation in this file you still have
+  unanswered questions, that's a good next place to go.
+
+ -- Ondřej Surý <ondrej@debian.org>, Mon,  1 Aug 2016 11:53:53 +0200
diff --git a/php-common.dirs.extra b/php-common.dirs.extra
new file mode 100644 (file)
index 0000000..fd84b03
--- /dev/null
@@ -0,0 +1,3 @@
+/usr/lib/php/@PHP_VERSION@
+/usr/lib/php/@PHP_API@
+/usr/share/doc/php@PHP_VERSION@-common
diff --git a/php-common.docs b/php-common.docs
new file mode 100644 (file)
index 0000000..d371b61
--- /dev/null
@@ -0,0 +1,5 @@
+EXTENSIONS
+README.md
+UPGRADING
+UPGRADING.INTERNALS
+debian/README.Debian.security
diff --git a/php-common.lintian-overrides.extra b/php-common.lintian-overrides.extra
new file mode 100644 (file)
index 0000000..5f9bf7a
--- /dev/null
@@ -0,0 +1,4 @@
+php@PHP_VERSION@-common: non-standard-dir-perm var/lib/php/@PHP_VERSION@/sessions/ 1733 != 0755
+php@PHP_VERSION@-common: package-contains-empty-directory usr/lib/php/@PHP_VERSION@/libexec/
+php@PHP_VERSION@-common: missing-dependency-on-phpapi
+php@PHP_VERSION@-common: embedded-library usr/lib/php/*/fileinfo.so: file
diff --git a/php-common.preinst.extra b/php-common.preinst.extra
new file mode 100644 (file)
index 0000000..1836956
--- /dev/null
@@ -0,0 +1,26 @@
+if [ "$1" = "upgrade" ]; then
+    for inidir in /etc/php/mods-available /etc/php/@PHP_VERSION@/mods-available; do
+       for dsoname in zlib; do
+           inifile=${dsoname}.ini
+           if [ -e ${inidir}/${inifile} ]; then
+               for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+                   rm -f ${inidir}/${inifile}${ext}
+               done
+               rm -f ${inidir}/${inifile}
+               if which ucf >/dev/null; then
+                   ucf --purge ${inidir}/${inifile} >/dev/null || true
+               fi
+               if which ucfr >/dev/null; then
+                   ucfr --force --purge @package@ ${inidir}/${inifile} >/dev/null || true
+               fi
+           fi
+           # Cleanup of the old symlinks (including broken symlinks)
+           find /etc/php/ -type l | \
+               while read symlink; do
+                   if [ "$(readlink $symlink)" = "${inidir}/$inifile" ]; then
+                       rm -f "${symlink}"
+                   fi
+               done
+       done
+    done
+fi
diff --git a/php-common.substvars.extra b/php-common.substvars.extra
new file mode 100644 (file)
index 0000000..11a9192
--- /dev/null
@@ -0,0 +1 @@
+php-common:Breaks=php7.0-curl (<< 7.0.33-1~), php7.2-sodium (<< 7.2.12~), gforge-common (<< 6)
diff --git a/php-curl.substvars.extra b/php-curl.substvars.extra
new file mode 100644 (file)
index 0000000..ad655e9
--- /dev/null
@@ -0,0 +1 @@
+php-curl:Breaks=php7.0-curl (<< 7.0.33-1~)
diff --git a/php-dev.dirs b/php-dev.dirs
new file mode 100644 (file)
index 0000000..9c68fef
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/bin
+/usr/share/lintian/overrides
diff --git a/php-dev.files b/php-dev.files
new file mode 100644 (file)
index 0000000..3b8b761
--- /dev/null
@@ -0,0 +1,6 @@
+usr/bin/php-config@PHP_VERSION@
+usr/bin/phpize@PHP_VERSION@
+usr/share/man/man1/php-config@PHP_VERSION@.1
+usr/share/man/man1/phpize@PHP_VERSION@.1
+usr/include
+usr/lib/php/@PHP_VERSION@/build
diff --git a/php-dev.install b/php-dev.install
new file mode 100644 (file)
index 0000000..78b1167
--- /dev/null
@@ -0,0 +1,6 @@
+usr/bin/php-config@PHP_VERSION@
+usr/bin/phpize@PHP_VERSION@
+usr/include/php/*/*
+usr/lib/php/*/build/*
+usr/share/man/man1/php-config@PHP_VERSION@.1
+usr/share/man/man1/phpize@PHP_VERSION@.1
diff --git a/php-dev.lintian-overrides b/php-dev.lintian-overrides
new file mode 100644 (file)
index 0000000..91854e9
--- /dev/null
@@ -0,0 +1,2 @@
+php@PHP_VERSION@-dev: script-not-executable usr/lib/php/@PHP_API@/build/run-tests.php
+php@PHP_VERSION@-dev: script-not-executable usr/lib/php/20200930/build/gen_stub.php
diff --git a/php-dev.postinst b/php-dev.postinst
new file mode 100644 (file)
index 0000000..18ef0f4
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "configure" ]; then
+    update-alternatives \
+       --install /usr/bin/php-config php-config /usr/bin/php-config@PHP_VERSION@ @PHP_MAJOR@@PHP_MINOR@ \
+       --slave /usr/share/man/man1/php-config.1.gz php-config.1.gz /usr/share/man/man1/php-config@PHP_VERSION@.1.gz
+    update-alternatives \
+       --install /usr/bin/phpize phpize /usr/bin/phpize@PHP_VERSION@ @PHP_MAJOR@@PHP_MINOR@ \
+       --slave /usr/share/man/man1/phpize.1.gz phpize.1.gz /usr/share/man/man1/phpize@PHP_VERSION@.1.gz
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-dev.prerm b/php-dev.prerm
new file mode 100644 (file)
index 0000000..02bcb00
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "remove" -o "$1" = "purge" ]; then
+    update-alternatives --remove php-config /usr/bin/php-config@PHP_VERSION@
+    update-alternatives --remove phpize /usr/bin/phpize@PHP_VERSION@
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-fpm-checkconf b/php-fpm-checkconf
new file mode 100644 (file)
index 0000000..a7effe8
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+/usr/sbin/php-fpm@PHP_VERSION@ -t >/dev/null 2>/dev/null
+ret=$?
+if [ "$ret" -ne 0 ]; then
+    echo "PHP FPM configuration is broken:"
+    /usr/sbin/php-fpm@PHP_VERSION@ -t
+    exit 1
+fi
+exit 0
diff --git a/php-fpm-reopenlogs b/php-fpm-reopenlogs
new file mode 100644 (file)
index 0000000..0a3bc74
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+CONFFILE=/etc/php/@PHP_VERSION@/fpm/php-fpm.conf
+[ -r /etc/default/php@PHP_VERSION@-fpm ] && . /etc/default/php@PHP_VERSION@-fpm
+CONF_PIDFILE=$(sed -n 's/^[[:space:]]*pid[[:space:]]*=[[:space:]]*//p' $CONFFILE)
+PIDFILE=${CONF_PIDFILE:-/run/php/php@PHP_VERSION@-fpm.pid}
+[ -r "$PIDFILE" ] && kill -USR1 $(cat "$PIDFILE") > /dev/null
+exit 0
diff --git a/php-fpm.apache2 b/php-fpm.apache2
new file mode 100644 (file)
index 0000000..54b4723
--- /dev/null
@@ -0,0 +1 @@
+conf debian/php@PHP_VERSION@-fpm.conf
diff --git a/php-fpm.conf b/php-fpm.conf
new file mode 100644 (file)
index 0000000..755ecc8
--- /dev/null
@@ -0,0 +1,34 @@
+# Redirect to local php-fpm if mod_php is not available
+<IfModule !mod_php@PHP_MAJOR@.c>
+<IfModule proxy_fcgi_module>
+    # Enable http authorization headers
+    <IfModule setenvif_module>
+    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
+    </IfModule>
+
+    # Using (?:pattern) instead of (pattern) is a small optimization that
+    # avoid capturing the matching pattern (as $1) which isn't used here
+    <FilesMatch ".+\.ph(?:ar|p|tml)$">
+        SetHandler "proxy:unix:/run/php/php@PHP_VERSION@-fpm.sock|fcgi://localhost"
+    </FilesMatch>
+# The default configuration works for most of the installation, however it could
+# be improved in various ways. One simple improvement is to not pass files that
+# doesn't exist to the handler as shown below, for more configuration examples
+# see https://wiki.apache.org/httpd/PHP-FPM
+#    <FilesMatch ".+\.ph(?:ar|p|tml)$">
+#        <If "-f %{REQUEST_FILENAME}">
+#            SetHandler "proxy:unix:/run/php/php@PHP_VERSION@-fpm.sock|fcgi://localhost"
+#        </If>
+#    </FilesMatch>
+    <FilesMatch ".+\.phps$">
+        # Deny access to raw php sources by default
+        # To re-enable it's recommended to enable access to the files
+        # only in specific virtual host or directory
+        Require all denied
+    </FilesMatch>
+    # Deny access to files without filename (e.g. '.php')
+    <FilesMatch "^\.ph(?:ar|p|ps|tml)$">
+        Require all denied
+    </FilesMatch>
+</IfModule>
+</IfModule>
diff --git a/php-fpm.dirs.extra b/php-fpm.dirs.extra
new file mode 100644 (file)
index 0000000..c138142
--- /dev/null
@@ -0,0 +1,3 @@
+/etc/php/@PHP_VERSION@/fpm/pool.d
+/usr/sbin
+/usr/lib/php/@PHP_VERSION@
diff --git a/php-fpm.init b/php-fpm.init
new file mode 100644 (file)
index 0000000..865376e
--- /dev/null
@@ -0,0 +1,161 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          php@PHP_VERSION@-fpm
+# Required-Start:    $remote_fs $network
+# Required-Stop:     $remote_fs $network
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: starts php@PHP_VERSION@-fpm
+# Description:       Starts The PHP FastCGI Process Manager Daemon
+### END INIT INFO
+
+# Author: Ondrej Sury <ondrej@debian.org>
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="PHP @PHP_VERSION@ FastCGI Process Manager"
+NAME=php-fpm@PHP_VERSION@
+CONFFILE=/etc/php/@PHP_VERSION@/fpm/php-fpm.conf
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS="--daemonize --fpm-config $CONFFILE"
+CONF_PIDFILE=$(sed -n 's/^pid[ =]*//p' $CONFFILE)
+PIDFILE=${CONF_PIDFILE:-/run/php/php@PHP_VERSION@-fpm.pid}
+TIMEOUT=30
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+       # Return
+       #   0 if daemon has been started
+       #   1 if daemon was already running
+       #   2 if daemon could not be started
+       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+               || return 1
+       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+               $DAEMON_ARGS 2>/dev/null \
+               || return 2
+       # Add code here, if necessary, that waits for the process to be ready
+       # to handle requests from services started subsequently which depend
+       # on this one.  As a last resort, sleep for some time.
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+       # Return
+       #   0 if daemon has been stopped
+       #   1 if daemon was already stopped
+       #   2 if daemon could not be stopped
+       #   other if a failure occurred
+       start-stop-daemon --stop --quiet --retry=QUIT/$TIMEOUT/TERM/5/KILL/5 --pidfile $PIDFILE --name $NAME
+       RETVAL="$?"
+       [ "$RETVAL" = 2 ] && return 2
+       # Wait for children to finish too if this is a daemon that forks
+       # and if the daemon is only ever run from this initscript.
+       # If the above conditions are not satisfied then add some other code
+       # that waits for the process to drop all resources that could be
+       # needed by services started subsequently.  A last resort is to
+       # sleep for some time.
+       start-stop-daemon --stop --quiet --oknodo --retry=0/30/TERM/5/KILL/5 --exec $DAEMON
+       [ "$?" = 2 ] && return 2
+       # Many daemons don't delete their pidfiles when they exit.
+       rm -f $PIDFILE
+       return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+       #
+       # If the daemon can reload its configuration without
+       # restarting (for example, when it is sent a SIGHUP),
+       # then implement that here.
+       #
+       start-stop-daemon --stop --signal USR2 --quiet --pidfile $PIDFILE --name $NAME
+       return 0
+}
+
+case "$1" in
+    start)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+       systemd-tmpfiles --remove --create /usr/lib/tmpfiles.d/php@PHP_VERSION@-fpm.conf
+       case "$?" in
+           0)
+               do_start
+               case "$?" in
+                   0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+                   2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+               esac
+               ;;
+           1) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+       esac
+       ;;
+    stop)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+       esac
+       ;;
+    status)
+        status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+        ;;
+    reload|force-reload)
+       log_daemon_msg "Reloading $DESC" "$NAME"
+       do_reload
+       log_end_msg $?
+       ;;
+    reopen-logs)
+       log_daemon_msg "Reopening $DESC logs" $NAME
+       if start-stop-daemon --stop --signal USR1 --oknodo --quiet \
+           --pidfile $PIDFILE --exec $DAEMON
+       then
+           log_end_msg 0
+       else
+           log_end_msg 1
+       fi
+       ;;
+    restart)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop
+       case "$?" in
+         0|1)
+               do_start
+               case "$?" in
+                       0) log_end_msg 0 ;;
+                       1) log_end_msg 1 ;; # Old process is still running
+                       *) log_end_msg 1 ;; # Failed to start
+               esac
+               ;;
+         *)
+               # Failed to stop
+               log_end_msg 1
+               ;;
+       esac
+       ;;
+    *)
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
+       exit 1
+    ;;
+esac
+
+:
diff --git a/php-fpm.install.extra b/php-fpm.install.extra
new file mode 100644 (file)
index 0000000..f8038fd
--- /dev/null
@@ -0,0 +1,3 @@
+usr/share/man/man8/php-fpm@PHP_VERSION@.8
+usr/sbin/php-fpm@PHP_VERSION@
+usr/share/php/@PHP_VERSION@/fpm/status.html
diff --git a/php-fpm.logrotate b/php-fpm.logrotate
new file mode 100644 (file)
index 0000000..cb93205
--- /dev/null
@@ -0,0 +1,13 @@
+/var/log/php@PHP_VERSION@-fpm.log {
+       rotate 12
+       weekly
+       missingok
+       notifempty
+       compress
+       delaycompress
+       postrotate
+               if [ -x /usr/lib/php/php@PHP_VERSION@-fpm-reopenlogs ]; then
+                       /usr/lib/php/php@PHP_VERSION@-fpm-reopenlogs;
+               fi
+       endscript
+}
diff --git a/php-fpm.maintscript b/php-fpm.maintscript
new file mode 100644 (file)
index 0000000..6ff500c
--- /dev/null
@@ -0,0 +1 @@
+rm_conffile /etc/init/php@PHP_VERSION@-fpm.conf 7.4.3-4~ php@PHP_VERSION@-fpm
diff --git a/php-fpm.postinst.extra b/php-fpm.postinst.extra
new file mode 100644 (file)
index 0000000..8e0d74a
--- /dev/null
@@ -0,0 +1,22 @@
+if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then
+    . /usr/share/apache2/apache2-maintscript-helper
+
+    php_enable() {
+       # Don't enable PHP FPM by default when Apache 2 is installed
+       apache2_msg notice "NOTICE: Not enabling PHP @PHP_VERSION@ FPM by default."
+       apache2_msg notice "NOTICE: To enable PHP @PHP_VERSION@ FPM in Apache2 do:"
+       apache2_msg notice "NOTICE: a2enmod proxy_fcgi setenvif"
+       apache2_msg notice "NOTICE: a2enconf php@PHP_VERSION@-fpm"
+       apache2_msg notice "NOTICE: You are seeing this message because you have apache2 package installed."
+       return 1
+    }
+else
+    php_enable() {
+       # Don't enable PHP FPM by default when Apache 2 is not installed
+       return 1
+    }
+fi
+
+if [ "$1" = "triggered" ] && [ "$2" = "/etc/php/@PHP_VERSION@/fpm/conf.d" ]; then
+    invoke-rc.d php@PHP_VERSION@-fpm restart
+fi
diff --git a/php-fpm.prerm.extra b/php-fpm.prerm.extra
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/php-fpm.service b/php-fpm.service
new file mode 100644 (file)
index 0000000..415c0d8
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Description=The PHP @PHP_VERSION@ FastCGI Process Manager
+Documentation=man:php-fpm@PHP_VERSION@(8)
+After=network.target
+
+[Service]
+Type=notify
+ExecStart=/usr/sbin/php-fpm@PHP_VERSION@ --nodaemonize --fpm-config /etc/php/@PHP_VERSION@/fpm/php-fpm.conf
+ExecStartPost=-/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/@PHP_VERSION@/fpm/pool.d/www.conf @PHP_MAJOR@@PHP_MINOR@
+ExecStopPost=-/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/@PHP_VERSION@/fpm/pool.d/www.conf @PHP_MAJOR@@PHP_MINOR@
+ExecReload=/bin/kill -USR2 $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/php-fpm.tmpfile b/php-fpm.tmpfile
new file mode 100644 (file)
index 0000000..1074344
--- /dev/null
@@ -0,0 +1,2 @@
+#Type Path                  Mode UID      GID      Age Argument
+    d /run/php              0755 www-data www-data -   -
diff --git a/php-module.bug-control.in b/php-module.bug-control.in
new file mode 100644 (file)
index 0000000..2849eda
--- /dev/null
@@ -0,0 +1 @@
+report-with: php@PHP_VERSION@-common php@PHP_VERSION@-cli libphp@PHP_VERSION@-embed libapache2-mod-php@PHP_VERSION@ libapache2-mod-php@PHP_VERSION@filter php@PHP_VERSION@-cgi php@PHP_VERSION@-fpm
diff --git a/php-module.bug-script.in b/php-module.bug-script.in
new file mode 100755 (executable)
index 0000000..fcabba4
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+MATCH="^[[:space:]]*($|;)"
+
+echo "==== Additional PHP @PHP_VERSION@ information ====" >&3
+echo "" >&3
+echo "++++ PHP @PHP_VERSION SAPI (php@PHP_VERSION@query -S): ++++" >&3
+/usr/sbin/php@PHP_VERSION@query -S >&3
+echo "" >&3
+echo "++++ PHP @PHP_VERSION@ Extensions (php@PHP_VERSION@query -M -v): ++++" >&3
+/usr/sbin/php@PHP_VERSION@query -M -v >&3
+echo "" >&3
+
+echo "++++ Configuration files: ++++" >&3
+for dsoname in @extensions@; do
+    inifile=${dsoname}.ini
+    echo "**** /etc/php/@PHP_VERSION@/mods-available/$dsoname.ini ****" >&3
+    grep -Ev "$MATCH" "/etc/php/@PHP_VERSION@/mods-available/$dsoname.ini" >&3
+    echo "" >&3
+done
diff --git a/php-module.control.in b/php-module.control.in
new file mode 100644 (file)
index 0000000..60a33b2
--- /dev/null
@@ -0,0 +1,22 @@
+Package: @package@
+Architecture: any
+Depends: php-common (>= 1:81~),
+         ucf,
+         ${misc:Depends},
+         ${php:Depends},
+        ${php-@ext@:Depends},
+         ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends},
+            ${php-@ext@:Pre-Depends}
+Built-Using: ${php:Built-Using}
+Replaces: ${php-@ext@:Replaces}
+Breaks: ${php-@ext@:Breaks}
+Conflicts: ${php-@ext@:Conflicts}
+Provides: ${php-@ext@:Provides}
+Recommends: ${php-@ext@:Recommends}
+Description: @description@ module for PHP
+ This package provides the @description@ module(s) for PHP.
+ .
+ PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
+ open source general-purpose scripting language that is especially suited
+ for web development and can be embedded into HTML.
diff --git a/php-module.dirs.in b/php-module.dirs.in
new file mode 100644 (file)
index 0000000..e1f5a4b
--- /dev/null
@@ -0,0 +1,3 @@
+/etc/php/@PHP_VERSION@/mods-available
+/usr/lib/php/@PHP_API@
+#EXTRA#
diff --git a/php-module.ini.in b/php-module.ini.in
new file mode 100644 (file)
index 0000000..085c296
--- /dev/null
@@ -0,0 +1,3 @@
+; configuration for php @extname@ module
+; priority=@priority@
+@extension@=@dsoname@.so
diff --git a/php-module.lintian-overrides.in b/php-module.lintian-overrides.in
new file mode 100644 (file)
index 0000000..bf69942
--- /dev/null
@@ -0,0 +1,2 @@
+@package@: maintainer-script-empty prerm
+#EXTRA#
diff --git a/php-module.postinst.in b/php-module.postinst.in
new file mode 100644 (file)
index 0000000..7991ec3
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+if [ "$1" = "configure" ]; then
+    # Install the new versioned configuration
+    inidir=/etc/php/@PHP_VERSION@/mods-available
+
+    if [ -e /usr/lib/php/php-maintscript-helper ] ; then
+       . /usr/lib/php/php-maintscript-helper
+
+       for dsoname in @extensions@; do
+           inifile=${dsoname}.ini
+
+           # Register new conffile with UCF
+           ucf /usr/share/@package@/@module@/${inifile} ${inidir}/${inifile}
+           ucfr --force @package@ ${inidir}/${inifile}
+           
+           if [ -f "${inidir}/${inifile}.dpkg-new" ]; then
+               md5sum="$(md5sum ${inidir}/${inifile}.dpkg-new | sed -e 's/ .*//')"
+               old_md5sum="$(md5sum ${inidir}/${inifile} | sed -e 's/ .*//')"
+               if [ "$md5sum" = "$old_md5sum" ]; then
+                   mv "${inidir}/${inifile}.dpkg-new" "${inidir}/${inifile}"
+               fi
+           fi
+       
+           php_invoke enmod @PHP_VERSION@ ALL ${dsoname}
+       done
+    fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-module.postrm.in b/php-module.postrm.in
new file mode 100644 (file)
index 0000000..6564db1
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+if [ "$1" = "remove" ]; then
+    if [ -e /usr/lib/php/php-maintscript-helper ] ; then
+       . /usr/lib/php/php-maintscript-helper
+
+       for dsoname in @extensions@; do
+           php_invoke dismod @PHP_VERSION@ ALL ${dsoname}
+       done
+    fi
+fi
+
+if [ "$1" = "purge" ]; then
+    inidir=/etc/php/@PHP_VERSION@/mods-available
+
+    for dsoname in @extensions@; do
+       inifile=${dsoname}.ini
+
+       for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+           rm -f ${inidir}/${inifile}${ext}
+       done
+       rm -f ${inidir}/${inifile}
+       if which ucf >/dev/null; then
+           ucf --purge ${inidir}/${inifile}
+       fi
+       if which ucfr >/dev/null; then
+           ucfr --purge @package@ ${inidir}/${inifile}
+       fi
+
+       # Final cleanup of possible leftover symlinks
+       find /etc/php/ -type l | \
+           while read symlink; do
+               if [ "$(readlink $symlink)" = "${inidir}/$inifile" ]; then
+                   rm -f "${symlink}"
+               fi
+           done
+    done
+
+    for dir in \
+       /etc/php/@PHP_VERSION@/mods-available \
+       /etc/php/@PHP_VERSION@ \
+       /etc/php;
+    do
+       if [ ! -L $dir ] && [ -d $dir ]; then
+           rmdir --ignore-fail-on-non-empty $dir
+       fi
+    done
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-module.preinst.in b/php-module.preinst.in
new file mode 100644 (file)
index 0000000..1154b9f
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+if [ "$1" = "upgrade" ]; then
+    # First purge the old unversioned configuration
+    inidir=/etc/php/mods-available
+    for dsoname in @extensions@; do
+       inifile=${dsoname}.ini
+       if [ -e ${inidir}/${inifile} ]; then
+           for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+               rm -f ${inidir}/${inifile}${ext}
+           done
+           rm -f ${inidir}/${inifile}
+           if which ucf >/dev/null; then
+               ucf --purge ${inidir}/${inifile} >/dev/null || true
+           fi
+           if which ucfr >/dev/null; then
+               ucfr --force --purge @package@ ${inidir}/${inifile} >/dev/null || true
+           fi
+       fi
+       # Cleanup of the old symlinks (including broken symlinks)
+       find /etc/php/ -type l | \
+           while read symlink; do
+               if [ "$(readlink $symlink)" = "${inidir}/$inifile" ]; then
+                   rm -f "${symlink}"
+               fi
+           done
+    done
+    if [ -d "$inidir" ]; then
+       rmdir --ignore-fail-on-non-empty "$inidir";
+    fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-module.prerm.in b/php-module.prerm.in
new file mode 100644 (file)
index 0000000..58166c7
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-module.substvars.in b/php-module.substvars.in
new file mode 100644 (file)
index 0000000..33b2712
--- /dev/null
@@ -0,0 +1 @@
+#EXTRA#
diff --git a/php-module.triggers.in b/php-module.triggers.in
new file mode 100644 (file)
index 0000000..11fa858
--- /dev/null
@@ -0,0 +1,3 @@
+activate-noawait /etc/php/@PHP_VERSION@/apache2/conf.d
+activate-noawait /etc/php/@PHP_VERSION@/apache2filter/conf.d
+activate-noawait /etc/php/@PHP_VERSION@/fpm/conf.d
diff --git a/php-phpdbg.dirs.extra b/php-phpdbg.dirs.extra
new file mode 100644 (file)
index 0000000..1317f86
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/bin
+/usr/share/man/man1
diff --git a/php-phpdbg.install.extra b/php-phpdbg.install.extra
new file mode 100644 (file)
index 0000000..8790945
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin/phpdbg@PHP_VERSION@
+usr/share/man/man1/phpdbg@PHP_VERSION@.1
diff --git a/php-phpdbg.postinst.extra b/php-phpdbg.postinst.extra
new file mode 100644 (file)
index 0000000..87b2d08
--- /dev/null
@@ -0,0 +1,5 @@
+if [ "$1" = "configure" ]; then
+    update-alternatives \
+       --install /usr/bin/phpdbg phpdbg /usr/bin/phpdbg@PHP_VERSION@ @PHP_MAJOR@@PHP_MINOR@ \
+       --slave /usr/share/man/man1/phpdbg.1.gz phpdbg.1.gz /usr/share/man/man1/phpdbg@PHP_VERSION@.1.gz
+fi
diff --git a/php-phpdbg.prerm.extra b/php-phpdbg.prerm.extra
new file mode 100644 (file)
index 0000000..1bb8324
--- /dev/null
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then
+    update-alternatives --remove phpdbg /usr/bin/phpdbg@PHP_VERSION@
+fi
diff --git a/php-sapi.bug-control b/php-sapi.bug-control
new file mode 100644 (file)
index 0000000..f900d59
--- /dev/null
@@ -0,0 +1 @@
+report-with: php@PHP_VERSION@-common
diff --git a/php-sapi.bug-script b/php-sapi.bug-script
new file mode 100755 (executable)
index 0000000..b0c7f48
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+MATCH="^[[:space:]]*($|;)"
+
+echo "==== Additional PHP @PHP_VERSION@ information ====" >&3
+echo "" >&3
+echo "++++ PHP @PHP_VERSION@ SAPI (php@PHP_VERSION@query -S): ++++" >&3
+/usr/sbin/php@PHP_VERSION@query -S >&3
+echo "" >&3
+echo "++++ PHP @PHP_VERSION@ Extensions (php@PHP_VERSION@query -M -v): ++++" >&3
+/usr/sbin/php@PHP_VERSION@query -M -v >&3
+echo "" >&3
+
+echo "++++ Configuration files: ++++" >&3
+"**** /etc/php/@PHP_VERSION@/@sapi@/php.ini ****" >&3
+grep -Ev "$MATCH" /etc/php/@PHP_VERSION@/@sapi@/php.ini >&3
+echo "" >&3
+find /etc/php/@PHP_VERSION@/@sapi@/conf.d/ -name '*.ini' | \
+while read CONF; do
+    echo "**** $CONF ****" >&3
+    grep -Ev "$MATCH" "$CONF" >&3
+    echo "" >&3
+done
diff --git a/php-sapi.dirs b/php-sapi.dirs
new file mode 100644 (file)
index 0000000..8c53b97
--- /dev/null
@@ -0,0 +1,4 @@
+#EXTRA#
+/etc/php/@PHP_VERSION@/@sapi@
+/etc/php/@PHP_VERSION@/@sapi@/conf.d
+/usr/lib/php/@PHP_VERSION@/sapi/
diff --git a/php-sapi.install b/php-sapi.install
new file mode 100644 (file)
index 0000000..18d4218
--- /dev/null
@@ -0,0 +1,2 @@
+#EXTRA#
+usr/lib/php/@PHP_VERSION@/sapi/@sapi@
diff --git a/php-sapi.lintian-overrides b/php-sapi.lintian-overrides
new file mode 100644 (file)
index 0000000..a14482c
--- /dev/null
@@ -0,0 +1,27 @@
+# The extensions directory must exist, even if empty
+@sapi@: package-contains-empty-directory @extdir@/
+# Not a spelling mistake, just a compilation curiosity
+@sapi@: spelling-error-in-binary * ment meant
+# Not a spelling mistake, tz code for Tahiti
+@sapi@: spelling-error-in-binary * taht that
+@sapi@: missing-dependency-on-phpapi
+# dh-apache2 bug: http://bugs.debian.org/796328
+libapache2-mod-php@PHP_VERSION@: apache2-module-depends-on-real-apache2-package *
+libapache2-mod-php@PHP_VERSION@: apache2-module-does-not-ship-load-file libphp@PHP_VERSION@
+libapache2-mod-php@PHP_VERSION@: embedded-library usr/lib/apache2/modules/libphp@PHP_VERSION@.so: file
+libapache2-mod-php@PHP_VERSION@: non-standard-apache2-module-package-name libapache2-mod-php@PHP_VERSION@ != libapache2-libphp@PHP_VERSION@
+libphp@PHP_VERSION@-embed: embedded-library usr/lib/libphp@PHP_VERSION@.so: file
+libphp@PHP_VERSION@-embed: ldconfig-symlink-missing-for-shlib usr/lib/libphp.so usr/lib/libphp@PHP_VERSION@.so libphp.so
+libphp@PHP_VERSION@-embed: maintscript-calls-ldconfig postinst
+libphp@PHP_VERSION@-embed: maintscript-calls-ldconfig postrm
+libphp@PHP_VERSION@-embed: package-must-activate-ldconfig-trigger usr/lib/libphp@PHP_VERSION@.so
+libphp@PHP_VERSION@-embed: package-name-doesnt-match-sonames libphp
+libphp@PHP_VERSION@-embed: shlib-without-versioned-soname usr/lib/libphp@PHP_VERSION@.so libphp.so
+php@PHP_VERSION@-cgi: embedded-library usr/bin/php-cgi@PHP_VERSION@: file
+php@PHP_VERSION@-cgi: embedded-library usr/lib/cgi-bin/php@PHP_VERSION@: file
+php@PHP_VERSION@-cli: embedded-library usr/bin/php@PHP_VERSION@: file
+php@PHP_VERSION@-cli: php-script-with-unusual-interpreter usr/bin/phar@PHP_VERSION@.phar /usr/bin/php@PHP_VERSION@
+php@PHP_VERSION@-fpm: apache2-reverse-dependency-calls-wrapper-script postinst a2enconf
+php@PHP_VERSION@-fpm: apache2-reverse-dependency-calls-wrapper-script postinst a2enmod
+php@PHP_VERSION@-fpm: embedded-library usr/sbin/php-fpm@PHP_VERSION@: file
+php@PHP_VERSION@-phpdbg: embedded-library usr/bin/phpdbg@PHP_VERSION@: file
diff --git a/php-sapi.postinst b/php-sapi.postinst
new file mode 100644 (file)
index 0000000..ac6f09f
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+CONFDIR=/etc/php/@PHP_VERSION@/@sapi@/conf.d
+
+if [ "$1" = "configure" ]; then
+    phpini="/etc/php/@PHP_VERSION@/@sapi@/php.ini"
+
+    if [ "@sapi@" = "cli" ]; then
+       ucf /usr/lib/php/@PHP_VERSION@/php.ini-production.@sapi@ $phpini
+    else
+       ucf /usr/lib/php/@PHP_VERSION@/php.ini-production $phpini
+    fi
+    ucfr @package@ $phpini
+
+    if [ -e /usr/lib/php/php-maintscript-helper ]; then
+       . /usr/lib/php/php-maintscript-helper
+       
+       mods=$(phpquery -M -v @PHP_VERSION@)
+       for mod in $mods; do
+           php_invoke enmod @PHP_VERSION@ @sapi@ $mod
+       done
+    fi
+
+    if [ -n "$2" ] && dpkg --compare-versions "$2" lt "7.0.3-2~"; then
+       rm -f /etc/php/@PHP_VERSION@/@sapi@/conf.d/20-opcache.ini;
+    fi     
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-sapi.postrm b/php-sapi.postrm
new file mode 100644 (file)
index 0000000..e4a6dfe
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+php_enable() { return 0; }
+
+if [ "$1" = "purge" ]; then
+    phpini=/etc/php/@PHP_VERSION@/@sapi@/php.ini
+    # remove the flag to remember the original state
+    if [ -e /etc/php/@PHP_VERSION@/@sapi@/.start ]; then
+       rm -f /etc/php/@PHP_VERSION@/@sapi@/.start
+    fi
+    for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+       rm -f $phpini$ext
+    done
+    rm -f $phpini
+    if which ucf >/dev/null; then
+       ucf --purge $phpini
+    fi
+    if which ucfr >/dev/null; then
+       ucfr --purge @package@ $phpini
+    fi
+
+    for dir in \
+       /etc/php/@PHP_VERSION@/@sapi@/conf.d \
+       /etc/php/@PHP_VERSION@/@sapi@ \
+       /etc/php/@PHP_VERSION@ \
+       /etc/php;
+    do
+       if [ ! -L $dir ] && [ -d $dir ]; then
+           rmdir --ignore-fail-on-non-empty $dir
+       fi
+    done
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-sapi.prerm b/php-sapi.prerm
new file mode 100644 (file)
index 0000000..9135728
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+set -e
+
+#EXTRA#
+
+php_enable() { return 0; }
+
+if [ "$1" = "remove" ]; then
+    if [ -e /usr/lib/php/php-maintscript-helper ]; then
+       . /usr/lib/php/php-maintscript-helper
+
+       mods=$(phpquery -M -v @PHP_VERSION@)
+       for mod in $mods; do
+           php_invoke dismod @PHP_VERSION@ @sapi@ $mod
+       done
+    else
+       for mod in /etc/php/@PHP_VERSION@/@sapi@/conf.d/*.ini; do 
+           rm -f $mod
+           for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+               rm -f $mod$ext
+           done
+       done
+    fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/php-sapi.triggers b/php-sapi.triggers
new file mode 100644 (file)
index 0000000..8a0ccc5
--- /dev/null
@@ -0,0 +1,2 @@
+interest-noawait /etc/php/@PHP_VERSION@/@sapi@/conf.d
+#EXTRA#
diff --git a/php-snmp.substvars.extra b/php-snmp.substvars.extra
new file mode 100644 (file)
index 0000000..8e41a00
--- /dev/null
@@ -0,0 +1 @@
+php-snmp:Recommends=snmp
diff --git a/php-xml.postinst.extra b/php-xml.postinst.extra
new file mode 100644 (file)
index 0000000..526e8ae
--- /dev/null
@@ -0,0 +1,7 @@
+if [ "$1" = "configure" ] && [ -n "$2" ]; then
+    for sapi in $(phpquery -v @PHP_VERSION@ -S); do
+       if [ -h /etc/php/@PHP_VERSION@/$sapi/conf.d/20-xml.ini ]; then
+           rm /etc/php/@PHP_VERSION@/$sapi/conf.d/20-xml.ini;
+       fi
+    done
+fi
diff --git a/php-xml.substvars.extra b/php-xml.substvars.extra
new file mode 100644 (file)
index 0000000..93fb4df
--- /dev/null
@@ -0,0 +1,2 @@
+php-xml:Breaks=php@PHP_VERSION@-xsl (<< 7.0.3-6~)
+php-xml:Replaces=php@PHP_VERSION@-xsl (<< 7.0.3-6~)
diff --git a/php.bug-control b/php.bug-control
new file mode 100644 (file)
index 0000000..24f0c5d
--- /dev/null
@@ -0,0 +1 @@
+Submit-As: php@PHP_VERSION@-common
diff --git a/php.conf b/php.conf
new file mode 100644 (file)
index 0000000..812eb04
--- /dev/null
+++ b/php.conf
@@ -0,0 +1,27 @@
+# Using (?:pattern) instead of (pattern) is a small optimization that
+# avoid capturing the matching pattern (as $1) which isn't used here
+<FilesMatch ".+\.ph(?:ar|p|tml)$">
+    SetHandler application/x-httpd-php
+</FilesMatch>
+<FilesMatch ".+\.phps$">
+    SetHandler application/x-httpd-php-source
+    # Deny access to raw php sources by default
+    # To re-enable it's recommended to enable access to the files
+    # only in specific virtual host or directory
+    Require all denied
+</FilesMatch>
+# Deny access to files without filename (e.g. '.php')
+<FilesMatch "^\.ph(?:ar|p|ps|tml)$">
+    Require all denied
+</FilesMatch>
+
+# Running PHP scripts in user directories is disabled by default
+# 
+# To re-enable PHP in user directories comment the following lines
+# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
+# prevents .htaccess files from disabling it.
+<IfModule mod_userdir.c>
+    <Directory /home/*/public_html>
+        php_admin_flag engine Off
+    </Directory>
+</IfModule>
diff --git a/php.load b/php.load
new file mode 100644 (file)
index 0000000..2ae0766
--- /dev/null
+++ b/php.load
@@ -0,0 +1,3 @@
+# Conflicts: php5
+# Depends: mpm_prefork
+LoadModule php_module /usr/lib/apache2/modules/libphp@PHP_VERSION@.so
diff --git a/phpapi b/phpapi
new file mode 100644 (file)
index 0000000..85ed11f
--- /dev/null
+++ b/phpapi
@@ -0,0 +1 @@
+20220829
diff --git a/phpdbg.1 b/phpdbg.1
new file mode 100644 (file)
index 0000000..b697fb2
--- /dev/null
+++ b/phpdbg.1
@@ -0,0 +1,59 @@
+.TH PHP5DBG 1
+.SH NAME
+php5dbg \- The interactive PHP debugger
+.SH SYNOPSIS
+.B php5dbg
+[OPTION]
+[\fB\-e\fIFILE\fR]
+.SH DESCRIPTION
+.B php5dbg
+a lightweight, powerful, easy to use debugging platform for PHP5.
+.SH OPTIONS
+The following switches are implemented (just like cli SAPI):
+.TP
+.BR \-n
+No \fBphp.ini\fR file will be used
+.TP
+.BR \-c \fIpath\fB|\fIfile\fR
+Look for \fBphp.ini\fR file in the directory \fIpath\fR or use the specified \fIfile\fR
+.TP
+.BR \-z \fIfile\fR
+Load Zend extension \fIfile\fR
+.TP
+.BR \-d \fIfoo\fB[=\fIbar\fB]\fR
+Define INI entry \fIfoo\fR with value \fIbar\fR
+.PP The following switches change the default behaviour of phpdbg:
+.TP
+.BR \-v
+Disables quietness
+.TP
+.BR \-s
+Enabled stepping
+.TP
+.BR -e \fIfile\fR
+Sets execution context
+.TP
+.BR \-b
+Disables use of colour on the console
+.TP
+.BR \-I
+Ignore .phpdbginit (default init file)
+.TP
+.BR \-i \fIpath\fB|\ffile\fR
+Override .phpgdbinit location (implies -I)
+.TP
+.BR \-O \fIfile\fR
+Set oplog output to \fIfile\fR
+.TP
+.BR \-q
+Do not print banner on startup
+.TP
+.BR \-r
+Jump straight to run
+.TP
+.BR \-E
+Enable step through eval()
+.SH NOTES
+Passing -rr will cause phpdbg to quit after execution, rather than returning to the console
+.SH AUTHOR
+This manual pages was written by Ondrej Sury for Debian project.
diff --git a/prepare-files b/prepare-files
new file mode 100644 (file)
index 0000000..e0ef78f
--- /dev/null
@@ -0,0 +1,33 @@
+PEAR-Builder-print-info-about-php@PHP_VERSION@-dev.patch
+php@PHP_VERSION@.bug-control
+php@PHP_VERSION@-cgi.conf
+php@PHP_VERSION@-cli.links
+php@PHP_VERSION@-common.dirs.extra
+php@PHP_VERSION@-common.docs
+php@PHP_VERSION@-common.lintian-overrides.extra
+php@PHP_VERSION@-common.preinst.extra
+php@PHP_VERSION@-common.README.Debian
+php@PHP_VERSION@-common.substvars.extra
+php@PHP_VERSION@.conf
+php@PHP_VERSION@-curl.substvars.extra
+php@PHP_VERSION@dbg.1
+php@PHP_VERSION@-dev.dirs
+php@PHP_VERSION@-dev.files
+php@PHP_VERSION@-dev.install
+php@PHP_VERSION@-dev.lintian-overrides
+php@PHP_VERSION@-dev.postinst
+php@PHP_VERSION@-dev.prerm
+php@PHP_VERSION@-fpm.conf
+php@PHP_VERSION@-fpm.init
+php@PHP_VERSION@-fpm.logrotate
+php@PHP_VERSION@-fpm-reopenlogs
+php@PHP_VERSION@-fpm.service
+php@PHP_VERSION@-fpm.tmpfile
+php@PHP_VERSION@-fpm.maintscript
+php@PHP_VERSION@.load
+php@PHP_VERSION@-xml.substvars.extra
+php@PHP_VERSION@-xml.postinst.extra
+php@PHP_VERSION@-snmp.substvars.extra
+php@PHP_VERSION@-cgi.NEWS
+php@PHP_VERSION@-fpm.NEWS
+libapache2-mod-php@PHP_VERSION@.NEWS
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..bf4f72c
--- /dev/null
+++ b/rules
@@ -0,0 +1,613 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+# Hardcode correct absolute path to sed
+export ac_cv_path_SED = $(shell command -v sed)
+
+SANE_ARCHS := amd64 i386 arm64
+
+# Enable parallel builds
+PARALLEL=--parallel
+
+# Enable this for debugging the sed scripts
+#SED=$(CURDIR)/debian/sedsed
+export SED := /bin/sed
+
+# Make the shell scripts fail after first failed command (important for SAPI loops)
+SHELL := /bin/sh -e
+
+# enable dpkg build flags
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=-lto
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/default.mk
+
+export DEB_HOST_MULTIARCH
+PHP_SOURCE_VERSION   := $(DEB_VERSION)
+PHP_UPSTREAM_VERSION := $(DEB_VERSION_UPSTREAM)
+PHP_DEBIAN_REVISION  := $(shell echo $(PHP_SOURCE_VERSION) | $(SED) -e 's/.*-//')
+PHP_DFSG_VERSION     := $(shell echo $(PHP_UPSTREAM_VERSION) | $(SED) -e 's/+.*//')
+PHP_MAJOR_VERSION    := $(shell echo $(PHP_DFSG_VERSION) | awk -F. '{print $$1}')
+PHP_MINOR_VERSION    := $(shell echo $(PHP_DFSG_VERSION) | awk -F. '{print $$2}')
+PHP_RELEASE_VERSION  := $(shell echo $(PHP_DFSG_VERSION) | awk -F. '{print $$3}')
+
+# Enable ZTS build if $(DEB_SOURCE) ends with -zts
+ZTS=$(shell echo $(DEB_SOURCE) | sed 's/php$(PHP_MAJOR_VERSION).$(PHP_MINOR_VERSION)//')
+ifeq ($(ZTS),-zts)
+$(warning Enabling ZTS build)
+CONFIGURE_ZTS        := --enable-maintainer-zts
+endif
+
+PHP_NAME_VERSION     := $(PHP_MAJOR_VERSION).$(PHP_MINOR_VERSION)$(ZTS)
+PHP_ZEND_VERSION     := $(shell $(SED) -ne 's/\#define ZEND_MODULE_API_NO //p' Zend/zend_modules.h)$(ZTS)
+
+ifneq ($(DEB_SOURCE),php$(PHP_NAME_VERSION))
+$(error $(DEB_SOURCE) != php$(PHP_NAME_VERSION))
+endif
+REAL_TARGETS         := apache2 phpdbg embed fpm cgi cli
+EXTRA_TARGETS        := ext
+TARGETS              := $(EXTRA_TARGETS) $(REAL_TARGETS)
+
+# Special package names
+PHP_PHP      := php$(PHP_NAME_VERSION)
+PHP_COMMON   := php$(PHP_NAME_VERSION)-common
+PHP_FPM      := php$(PHP_NAME_VERSION)-fpm
+PHP_LIBEMBED := libphp$(PHP_NAME_VERSION)-embed
+PHP_DEV      := php$(PHP_NAME_VERSION)-dev
+PHP_APACHE2  := libapache2-mod-php$(PHP_NAME_VERSION)
+PHP_CGI      := php$(PHP_NAME_VERSION)-cgi
+PHP_CLI      := php$(PHP_NAME_VERSION)-cli
+PHP_PHPDBG   := php$(PHP_NAME_VERSION)-phpdbg
+
+# Generic commands
+
+SED_VARIABLES := \
+       $(SED) -e "s,@sapi@,$${sapi},g"                         |\
+       $(SED) -e "s,@package@,$${package},g"                   |\
+       $(SED) -e "s,@extensions@,$${extensions},g"             |\
+       $(SED) -e "s,@module@,$${module},g"                     |\
+       $(SED) -e "s,@extdir@,$${extdir},g"                     |\
+       $(SED) -e "s,@priority@,$${priority},g"                 |\
+       $(SED) -e "s,@PHP_VERSION@,$(PHP_NAME_VERSION),g"       |\
+       $(SED) -e "s,@PHP_MAJOR@,$(PHP_MAJOR_VERSION),g"        |\
+       $(SED) -e "s,@PHP_MINOR@,$(PHP_MINOR_VERSION),g"        |\
+       $(SED) -e "s,@PHP_RELEASE@,$(PHP_RELEASE_VERSION),g"    |\
+       $(SED) -e "s,@PHP_API@,$(PHP_ZEND_VERSION),g"
+
+SED_REPLACEMENT := $(SED) -e "/\#EXTRA\#/ r debian/$${versionless}.$${tmpl}.extra" | $(SED_VARIABLES) | $(SED) -e '/\#EXTRA\#/ d'
+
+SAPI_PACKAGE := \
+       case $${sapi} in \
+         embed)         package=$(PHP_LIBEMBED); source=libphp-$${sapi} ;; \
+         apache2)       package=$(PHP_APACHE2); source=libapache2-mod-php ;; \
+         *)             package=php$(PHP_NAME_VERSION)-$${sapi}; source=php-$${sapi} ;; \
+       esac; \
+       versionless=$$(echo $${package} | $(SED) -e 's/$(PHP_NAME_VERSION)//g');
+
+MODULE_PACKAGE := \
+       package=php$(PHP_NAME_VERSION)-$${module}; \
+       versionless=$$(echo $${package} | $(SED) -e 's/$(PHP_NAME_VERSION)//g');
+
+LIBTOOL_VERSION := $(shell dpkg-query -f'$${Version}' -W libtool)
+
+# Disable the test now
+RUN_TESTS := yes
+ifeq (nocheck,$(filter nocheck,$(DEB_BUILD_PROFILES)))
+  $(warning Disabling tests due DEB_BUILD_PROFILES)
+  DEB_BUILD_OPTIONS += nocheck
+  RUN_TESTS := no
+else
+  ifeq (nocheck,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+    $(warning Disabling tests due DEB_BUILD_OPTIONS)
+    RUN_TESTS := no
+  endif
+endif
+ifeq (,$(filter $(DEB_HOST_ARCH),$(SANE_ARCHS)))
+  $(warning Disabling checks on $(DEB_HOST_ARCH))
+  RUN_TESTS := no
+endif
+
+CONFIGURE_PCRE_JIT :=
+ifeq (,$(filter $(DEB_HOST_ARCH),$(SANE_ARCHS)))
+  CONFIGURE_PCRE_JIT := --without-pcre-jit
+endif
+
+ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),amd64 armel armhf i386 ia64 powerpc))
+  CONFIGURE_DTRACE_ARGS := --enable-dtrace
+else
+  CONFIGURE_DTRACE_ARGS := --disable-dtrace
+endif
+
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+  CONFIGURE_SYSTEMD := --with-fpm-systemd
+  CONFIGURE_APPARMOR := --with-fpm-apparmor
+endif
+
+# specify some options to our patch system
+QUILT_DIFF_OPTS := -p
+QUILT_NO_DIFF_TIMESTAMPS := 1
+export QUILT_DIFF_OPTS QUILT_NO_DIFF_TIMESTAMPS
+
+export PROG_SENDMAIL := /usr/sbin/sendmail
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+  DEB_CFLAGS_MAINT_APPEND += -O2
+else
+  DEB_CFLAGS_MAINT_APPEND += -O0
+endif
+DEB_CFLAGS_MAINT_APPEND += -Wall -pedantic -fsigned-char -fno-strict-aliasing 
+DEB_CFLAGS_MAINT_APPEND += $(shell getconf LFS_CFLAGS)
+
+# OpenSSL 3.0 support
+DEB_CFLAGS_MAINT_APPEND += -DOPENSSL_SUPPRESS_DEPRECATED
+
+# Enable IEEE-conformant floating point math on alphas (not the default)
+ifeq (alpha-linux-gnu,$(DEB_HOST_GNU_TYPE))
+  DEB_CFLAGS_MAINT_APPEND += -mieee
+endif
+
+ifeq (arm-linux-gnueabihf,$(DEB_HOST_GNU_TYPE))
+  DEB_CFLAGS_MAINT_APPEND += -mfpu=vfpv3-d16
+endif
+
+# Enable producing of debugging information
+DEB_CFLAGS_MAINT_APPEND += -g
+
+DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+
+export DEB_CFLAGS_MAINT_APPEND
+export DEB_LDFLAGS_MAINT_APPEND
+
+# some other helpful (for readability at least) shorthand variables
+PHPIZE_BUILDDIR := /usr/lib/php/$(PHP_ZEND_VERSION)/build/
+
+COMMON_CONFIG := \
+               --build=$(DEB_BUILD_GNU_TYPE) \
+               --host=$(DEB_HOST_GNU_TYPE) \
+               --config-cache --cache-file=$(CURDIR)/config.cache \
+               --libdir=\$${prefix}/lib/php \
+               --libexecdir=\$${prefix}/lib/php \
+               --datadir=\$${prefix}/share/php/$(PHP_NAME_VERSION) \
+               --program-suffix=$(PHP_NAME_VERSION) \
+               --sysconfdir=/etc \
+               --localstatedir=/var \
+               --mandir=/usr/share/man \
+               --disable-all \
+               --disable-debug \
+               --disable-rpath \
+               --disable-static \
+               --with-pic \
+               --with-layout=GNU \
+               --without-pear \
+               --enable-filter \
+               --with-openssl \
+               --with-password-argon2=/usr \
+               --with-external-pcre \
+               --enable-hash \
+                 --with-mhash=/usr \
+               --with-libxml \
+               --enable-session \
+               --with-sodium \
+               --with-system-tzdata \
+               --with-zlib=/usr \
+                 --with-zlib-dir=/usr \
+               $(CONFIGURE_ZTS) \
+               $(CONFIGURE_DTRACE_ARGS) \
+               $(CONFIGURE_PCRE_JIT)
+
+# disable all SAPIs in extension build
+export ext_config = \
+               --prefix=/usr --enable-cli --disable-cgi --disable-phpdbg \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/apache2 \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/apache2/conf.d \
+               $(COMMON_CONFIG)
+
+export apache2_config = \
+               --prefix=/usr --with-apxs2=/usr/bin/apxs2 --enable-cli --disable-cgi --disable-phpdbg \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/apache2 \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/apache2/conf.d \
+               $(COMMON_CONFIG)
+
+export cgi_config = \
+               --prefix=/usr --enable-cgi --enable-cli --disable-phpdbg \
+               --enable-force-cgi-redirect --enable-fastcgi \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/cgi \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/cgi/conf.d \
+               $(COMMON_CONFIG) \
+               --enable-pcntl
+
+export cli_config = \
+               --prefix=/usr --enable-cli --disable-cgi --disable-phpdbg \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/cli \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/cli/conf.d \
+               $(COMMON_CONFIG) \
+               --enable-pcntl \
+               --with-libedit=shared,/usr
+
+export embed_config = \
+               --prefix=/usr --enable-embed --enable-cli --disable-cgi --disable-phpdbg \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/embed \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/embed/conf.d \
+               $(COMMON_CONFIG) \
+               --without-mm \
+               --enable-pcntl
+
+export fpm_config = \
+               --prefix=/usr --enable-fpm --enable-cli --disable-cgi --disable-phpdbg \
+               --sysconfdir=/etc/php/$(PHP_NAME_VERSION)/fpm \
+               --with-fpm-user=www-data --with-fpm-group=www-data \
+               --with-fpm-acl \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/fpm \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/fpm/conf.d \
+               $(COMMON_CONFIG) \
+               --with-libevent-dir=/usr \
+               $(CONFIGURE_SYSTEMD) \
+               $(CONFIGURE_APPARMOR)
+
+export phpdbg_config = \
+               --prefix=/usr --enable-phpdbg --enable-cli --disable-cgi \
+               --with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/phpdbg \
+               --with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/phpdbg/conf.d \
+               $(COMMON_CONFIG) \
+               --enable-pcntl \
+               --with-libedit=shared,/usr
+
+BUILTIN_EXTENSION_CHECK=$$e=get_loaded_extensions(); natcasesort($$e); \
+                       $$s="The following extensions are built in:"; \
+                       foreach($$e as $$i) { $$s .= " $$i"; } \
+                       echo("php:Extensions=" . wordwrap($$s . ".\n", 75, "\$${Newline}"));
+
+include $(CURDIR)/debian/rules.d/*.mk
+
+#extensions
+
+ext_DEBS       := $(addprefix php$(PHP_NAME_VERSION)-,$(ext_PACKAGES))
+ext_EXTENSIONS := $(foreach ext_package,$(ext_PACKAGES),$($(ext_package)_EXTENSIONS))
+ext_config     += $(foreach ext_ext,$(ext_EXTENSIONS),$($(ext_ext)_config))
+
+#$(info Enabled packages $(ext_DEBS))
+#$(info Enabled extensions $(ext_EXTENSIONS))
+#$(info Enabled config $(ext_config))
+
+%:
+       dh $@ --with systemd --with apache2 --without=build-stamp --without autoreconf $(PARALLEL)
+
+PREPARE_FILES := $(addprefix debian/,$(shell cat debian/prepare-files))
+
+prepared: prepared-stamp debian/control debian/source.lintian-overrides
+prepared-stamp:
+       $(SED) -i -e 's/EXTRA_VERSION=""/EXTRA_VERSION="-$(PHP_DEBIAN_REVISION)"/' configure.ac
+       ./buildconf --force
+       touch prepared-stamp
+
+unprepared:
+       dh_testdir
+       $(SED) -i -e 's/EXTRA_VERSION="-$(PHP_DEBIAN_REVISION)"/EXTRA_VERSION=""/' configure.ac
+       -[ -f ext/ext_skel.in ] && mv ext/ext_skel.in ext/ext_skel
+       rm -f prepared-stamp
+
+override_dh_auto_clean: unprepared
+       rm -f $(subst @PHP_VERSION@,$(PHP_NAME_VERSION),$(PREPARE_FILES))
+
+       rm -rf test-results.txt
+
+       # clean up autogenerated cruft
+       cat debian/modulelist | while read module extname dsoname priority; do \
+           $(MODULE_PACKAGE) \
+           for cruft in postinst preinst prerm postrm; do \
+               rm -f debian/$${package}.$${cruft}; \
+           done; \
+       done
+
+       extdir=`debian/tmp/usr/bin/php-config$(PHP_NAME_VERSION) --extension-dir | cut -b2- `; \
+       for sapi in $(REAL_TARGETS); do \
+               $(SAPI_PACKAGE) \
+               for cruft in preinst postinst prerm postrm links dirs triggers lintian-overrides; do \
+                       rm -f debian/$${package}.$${cruft}; \
+               done; \
+       done
+
+       # clean build directories
+       for target in $(TARGETS); do \
+         dh_auto_clean --builddirectory $${target}-build $(PARALLEL); \
+         rm -rf $${target}-build; \
+       done
+
+       # remove shared config.cache
+       rm -f $(CURDIR)/config.cache
+
+override_dh_auto_configure-indep:
+
+override_dh_auto_configure-arch: prepared
+       for target in $(TARGETS); do \
+         dh_auto_configure --builddirectory $${target}-build $(PARALLEL) -- $$(eval echo \$${$${target}_config}); \
+       done
+
+override_dh_auto_build-indep:
+
+override_dh_auto_build-arch:
+       for target in $(TARGETS); do \
+         dh_auto_build --builddirectory $${target}-build $(PARALLEL); \
+       done
+
+override_dh_auto_install:
+       for target in $(TARGETS); do \
+         dh_auto_install --builddirectory $${target}-build $(PARALLEL) -- install INSTALL_ROOT=$(CURDIR)/debian/tmp; \
+       done
+
+PCNTL_FUNCTIONS := $(shell < ext/pcntl/php_pcntl.h $(SED) -ne "/^PHP_FUNCTION/ s/PHP_FUNCTION(\(.*\));/\1/;t end;d;:end p" | tr '\n' ',')
+
+override_dh_auto_test-indep:
+
+override_dh_auto_test-arch: test-results.txt
+
+test-results.txt:
+ifeq (yes,$(RUN_TESTS))
+       mkdir -p temp_session_store
+       extensions=""; \
+       for f in $(CURDIR)/ext-build/modules/*.so; do \
+           ext=`basename "$$f"`; \
+           test -d "$(CURDIR)/ext/$${ext%.so}/tests" || continue; \
+           test "$$ext" != "imap.so" || continue; \
+           test "$$ext" != "interbase.so" || continue; \
+           test "$$ext" != "ldap.so" || continue; \
+           test "$$ext" != "odbc.so" || continue; \
+           test "$$ext" != "pgsql.so" || continue; \
+           test "$$ext" != "pdo_dblib.so" || continue; \
+           test "$$ext" != "pdo_firebird.so" || continue; \
+           test "$$ext" != "pdo_odbc.so" || continue; \
+           test "$$ext" != "pdo_pgsql.so" || continue; \
+           test "$$ext" != "snmp.so" || continue; \
+           test "$$ext" != "opcache.so" || continue; \
+           test "$$ext" != "mysqlnd.so" || continue; \
+           test "$$ext" != "mysqli.so" || continue; \
+           test "$$ext" != "pdo_mysql.so" || continue; \
+           test "$$ext" != "wddx.so" || continue; \
+           extensions="$$extensions -d extension=$$ext"; \
+       done; \
+       [ "$$extensions" ] || { echo "extensions list is empty"; exit 1; }; \
+       env NO_INTERACTION=1 \
+           TEST_PHP_CGI_EXECUTABLE=$(CURDIR)/cgi-build/sapi/php-cgi \
+           TEST_PHP_EXECUTABLE=$(CURDIR)/cli-build/sapi/cli/php \
+       $(CURDIR)/cli-build/sapi/cli/php run-tests.php \
+               -n \
+               -d extension_dir=$(CURDIR)/ext-build/modules/ \
+               $$extensions | \
+       tee test-results.txt
+       rm -rf temp_session_store
+       @for test in `find . -name '*.log' -a '!' -name 'config.log' -a '!' -name 'bootstrap.log' -a '!' -name 'run.log'`; do \
+           echo; \
+           echo -n "$${test#./}:"; \
+           cat $$test; \
+           echo; \
+       done | tee -a test-results.txt
+else
+       echo 'nocheck found in DEB_BUILD_OPTIONS or unsupported architecture' | tee test-results.txt
+endif
+
+prepare-files-stamp:
+       # Do this first so we don't overwrite any debhelper-generated files
+       #
+       # generate versioned files from versionless variants
+       for file in $(PREPARE_FILES); do \
+           versionless=$$(echo $$file | $(SED) -e 's/@PHP_VERSION@//g'); \
+           versioned=$$(echo $$file | $(SED) -e 's/@PHP_VERSION@/$(PHP_NAME_VERSION)/g'); \
+           package=$$(echo $$file | $(SED) -e 's,^debian/,,;s/\..*$$//;s/@PHP_VERSION@/$(PHP_NAME_VERSION)/g'); \
+           < $${versionless} $(SED_REPLACEMENT) > $${versioned}; \
+           if [ -x $${versionless} ]; then chmod +x $${versioned}; fi; \
+       done
+       # generate config snippets and maintscripts for the different sapi implementations
+       # from the templates
+       for sapi in $(REAL_TARGETS); do \
+           $(SAPI_PACKAGE) \
+           mkdir -p "debian/tmp/usr/lib/php/$(PHP_NAME_VERSION)/sapi/"; \
+           touch "debian/tmp/usr/lib/php/$(PHP_NAME_VERSION)/sapi/$${sapi}"; \
+           for tmpl in postrm prerm postinst dirs install triggers bug-script bug-control; do \
+               < debian/php-sapi.$${tmpl} $(SED_REPLACEMENT) > debian/$${package}.$${tmpl}; \
+               if [ -x debian/php-sapi.$${tmpl} ]; then chmod +x debian/$${package}.$${tmpl}; fi; \
+           done; \
+           < debian/php-sapi.lintian-overrides $(SED_REPLACEMENT) | grep -E "^$${package}" > debian/$${package}.lintian-overrides; \
+       done
+
+       for module in $(ext_PACKAGES); do \
+         package=php$(PHP_NAME_VERSION)-$${module}; \
+         extensions=$$(eval echo \$${$${module}_EXTENSIONS}); \
+         description=$$(eval echo \$${$${module}_DESCRIPTION}); \
+         for tmpl in preinst postinst postrm prerm bug-script bug-control triggers dirs substvars lintian-overrides; do \
+             < debian/php-module.$${tmpl}.in \
+               $(SED) -e "/\#EXTRA\#/ r debian/$${package}.$${tmpl}.extra" | \
+               $(SED) -e "s,@package@,$${package},g"           \
+                  -e "s,@extensions@,$${extensions},g"         \
+                  -e "s,@module@,$${module},g"                 \
+                  -e "s|@description@|$${description}|g"       \
+                  -e "s,@PHP_VERSION@,$(PHP_NAME_VERSION),g"   \
+                  -e "s,@PHP_API@,$${phpapi},g" | \
+               $(SED) -e '/\#EXTRA\#/ d' \
+             > debian/$${package}.$${tmpl}; \
+         done; \
+         provides=""; \
+         for dsoname in $${extensions}; do \
+           normalized=$$(echo $${dsoname} | sed -e 's/_/-/g'); \
+           priority=$$(eval echo \$${$${dsoname}_PRIORITY}); \
+           if [ -z "$${priority}" ]; then priority=20; fi; \
+           extension=$$(eval echo \$${$${dsoname}_EXTENSION}); \
+           if [ -z "$${extension}" ]; then extension=extension; fi; \
+           mkdir -p debian/tmp/usr/share/$${package}/$${module}/; \
+           $(SED) -e "s,@extname@,$${module}," \
+                  -e "s,@dsoname@,$${dsoname}," \
+                  -e "s,@extension@,$${extension}," \
+                  -e "s,@priority@,$${priority}," \
+             < debian/php-module.ini.in \
+             > debian/tmp/usr/share/$${package}/$${module}/$${dsoname}.ini; \
+           echo "usr/lib/php/*/$${dsoname}.so" >> debian/$${package}.install; \
+           echo "usr/share/$${package}/$${module}/$${dsoname}.ini" >> debian/$${package}.install; \
+           if [ "$${normalized}" = "opcache" ]; then echo "opcache.jit=off" >> debian/tmp/usr/share/$${package}/$${module}/$${dsoname}.ini; fi; \
+           if [ "$${normalized}" != "gettext" ]; then provides="php-$${normalized}, $${provides}"; fi; \
+           if [ "$${module}" != "$${normalized}" ]; then provides="php$(PHP_NAME_VERSION)-$${normalized}, $${provides}"; fi; \
+         done; \
+         echo "php-$${module}:Provides=$${provides}" >> debian/$${package}.substvars; \
+       done
+       touch prepare-files-stamp
+
+remove-files-stamp:
+       # get rid of dreaded libtool files
+       find debian/tmp/ -name '*.la' -delete
+       # get rid of static versions of PHP modules (WTF?)
+       rm -f debian/tmp/usr/lib/php/$(PHP_ZEND_VERSION)/*.a
+
+       rm -rf \
+         debian/tmp/.filemap \
+         debian/tmp/.channels \
+         debian/tmp/.lock \
+         debian/tmp/.depdb* \
+         debian/tmp/usr/bin/pear* \
+         debian/tmp/usr/bin/pecl* \
+         debian/tmp/usr/share/php/.filemap \
+         debian/tmp/usr/share/php/.lock \
+         debian/tmp/usr/share/php/.depdb* \
+         debian/tmp/usr/share/php/*.php \
+         debian/tmp/usr/share/php/.registry/ \
+         debian/tmp/usr/share/php/.channels/ \
+         debian/tmp/usr/share/php/doc/ \
+         debian/tmp/usr/share/php/Archive/ \
+         debian/tmp/usr/share/php/Console/ \
+         debian/tmp/usr/share/php/Structures/ \
+         debian/tmp/usr/share/php/test/ \
+         debian/tmp/usr/share/php/XML/ \
+         debian/tmp/usr/share/php/OS/ \
+         debian/tmp/usr/share/php/PEAR/ \
+         debian/tmp/usr/share/php/data/ \
+         debian/tmp/etc/pear.conf
+       # shipping duplicate files from other packages is hell for security audits
+       rm -f \
+         debian/tmp$(PHPIZE_BUILDDIR)/config.guess \
+         debian/tmp$(PHPIZE_BUILDDIR)/config.sub \
+         debian/tmp$(PHPIZE_BUILDDIR)/libtool.m4 \
+         debian/tmp$(PHPIZE_BUILDDIR)/pkg.m4 \
+         debian/tmp$(PHPIZE_BUILDDIR)/ltmain.sh \
+         debian/tmp$(PHPIZE_BUILDDIR)/shtool
+       touch remove-files-stamp
+
+override_dh_installdirs: prepare-files-stamp
+       dh_installdirs
+
+override_dh_install-arch: remove-files-stamp prepare-fpm-pools
+# Rename Apache2 SAPI
+       mv -u debian/tmp/usr/lib/apache2/modules/libphp.so debian/tmp/usr/lib/apache2/modules/libphp$(PHP_NAME_VERSION).so
+# Rename embed SAPI
+       mv -u debian/tmp/usr/lib/php/libphp.so debian/tmp/usr/lib/libphp$(PHP_NAME_VERSION).so
+# Install extra CGI-BIN
+       install -d -m 755 debian/tmp/usr/lib/cgi-bin/
+       ln debian/tmp/usr/bin/php-cgi$(PHP_NAME_VERSION) debian/tmp/usr/lib/cgi-bin/php$(PHP_NAME_VERSION)
+
+       dh_install --fail-missing
+
+# Install a helper script for checking PHP FPM configuration
+       mkdir -p debian/$(PHP_FPM)/usr/lib/php/
+       install -m 755 debian/$(PHP_FPM)-reopenlogs debian/$(PHP_FPM)/usr/lib/php/
+
+       # sanitize php.ini files
+       mkdir -p debian/$(PHP_COMMON)/usr/lib/php/$(PHP_NAME_VERSION)/
+       cat php.ini-production | tr "\t" " " | \
+       $(SED) -e'/session.gc_probability =/ s/1/0/g;' \
+           -e'/disable_functions =/ s/$$/ $(PCNTL_FUNCTIONS)/g;' \
+           -e'/expose_php =/ s/On/Off/g;' \
+         > debian/$(PHP_COMMON)/usr/lib/php/$(PHP_NAME_VERSION)/php.ini-production
+
+       cat php.ini-production | tr "\t" " " | \
+       $(SED) -e'/memory_limit =/ s/128M/-1/g;' \
+           -e'/session.gc_probability =/ s/1/0/g' \
+         > debian/$(PHP_COMMON)/usr/lib/php/$(PHP_NAME_VERSION)/php.ini-production.cli
+
+       cat php.ini-development | tr "\t" " " | \
+       $(SED) -e'/session.gc_probability =/ s/1/0/g;' \
+           -e'/disable_functions =/ s/$$/ $(PCNTL_FUNCTIONS)/g;' \
+         > debian/$(PHP_COMMON)/usr/lib/php/$(PHP_NAME_VERSION)/php.ini-development
+
+ifeq (yes,$(RUN_TESTS))
+       mkdir -p debian/$(PHP_COMMON)/usr/share/doc/$(PHP_COMMON)/
+endif
+
+       $(SED) -i -e's@-ffile-prefix-map=[^ ]*[ ]*@@g' \
+               -e's@-fdebug-prefix-map=[^ ]*[ ]*@@g' \
+               -e's@$(CURDIR)@/tmp/buildd/nonexistent@g' \
+               debian/$(PHP_DEV)/usr/include/php/*/main/build-defs.h \
+               debian/$(PHP_DEV)/usr/bin/php-config$(PHP_NAME_VERSION)
+
+override_dh_installinit:
+       dh_installinit --restart-after-upgrade
+
+override_dh_systemd_start:
+       dh_systemd_start --restart-after-upgrade
+
+override_dh_apache2:
+       for sapi in apache2 cgi fpm; do \
+           $(SAPI_PACKAGE) \
+           < debian/$${versionless}.apache2 $(SED_REPLACEMENT) > debian/$${package}.apache2; \
+       done
+       dh_apache2 --conditional=php_enable
+
+override_dh_installdocs-indep:
+       dh_installdocs -i
+
+override_dh_installdocs-arch:
+       dh_installdocs -p$(PHP_COMMON)
+       dh_installdocs -a --remaining-packages --link-doc=$(PHP_COMMON)
+
+override_dh_compress:
+       dh_compress -Xphp.ini
+
+override_dh_installchangelogs-arch:
+       dh_installchangelogs -a -p$(PHP_COMMON) NEWS
+
+override_dh_installchangelogs-indep:
+       dh_installchangelogs -i NEWS
+
+override_dh_strip:
+       dh_strip --dbgsym-migration='php$(PHP_NAME_VERSION)-dbg' || dh_strip
+
+override_dh_makeshlibs-arch:
+       dh_makeshlibs -a -p$(PHP_LIBEMBED) -V '$(PHP_LIBEMBED) (>= $(PHP_MAJOR_VERSION).$(PHP_MINOR_VERSION))'
+
+override_dh_gencontrol-arch:
+       # Bail-out if PHPAPI has changed
+       stored=$$(cat debian/phpapi); \
+       for sapi in $(REAL_TARGETS); do \
+           $(SAPI_PACKAGE) \
+           $${sapi}-build/sapi/cli/php -n -r '$(BUILTIN_EXTENSION_CHECK)' \
+             >> debian/$${package}.substvars; \
+           phpapi=$$(sh $${sapi}-build/scripts/php-config --phpapi); \
+           if [ "$${phpapi}" != "$${stored}" ]; then \
+               echo "PHPAPI has changed from $${stored} to $${phpapi}, please modify debian/phpapi"; \
+               exit 1; \
+           fi; \
+           echo "php:Provides=phpapi-$${phpapi}" >> debian/$${package}.substvars; \
+       done; \
+       if dpkg --compare-versions $(LIBTOOL_VERSION) gt 2.4.6-0.1~; then \
+           echo "libtool:Depends=libtool (>= 2.4.6-0.1~)" >> debian/php$(PHP_NAME_VERSION)-dev.substvars; \
+       else \
+           echo "libtool:Depends=libtool" >> debian/php$(PHP_NAME_VERSION)-dev.substvars; \
+       fi
+       dh_gencontrol -a
+
+debian/control: debian/control.in debian/rules debian/changelog debian/source.lintian-overrides debian/rules.d/* debian/php-module.control.in
+       $(SED) -e "s/@PHP_VERSION@/$(PHP_NAME_VERSION)/g" -e "s/@BUILT_USING@/$(BUILT_USING)/g" >$@ <$<
+       for ext in $(sort $(ext_PACKAGES)); do \
+         package=php$(PHP_NAME_VERSION)-$${ext}; \
+         description=$$(eval echo \$${$${ext}_DESCRIPTION}); \
+         echo >>$@; \
+         $(SED) -e "s|@ext@|$${ext}|" -e "s|@package@|$${package}|" -e "s|@description@|$${description}|" >>$@ <debian/php-module.control.in; \
+       done
+       mkdir -p debian/tests
+       for f in debian/tests.in/*; do \
+         t=$$(basename $${f}); \
+         < debian/tests.in/$${t} $(SED_REPLACEMENT) > debian/tests/$${t}; \
+       done
+
+debian/source.lintian-overrides: debian/source.lintian-overrides.in debian/rules debian/changelog
+       $(SED) -e "s/@PHP_VERSION@/$(PHP_NAME_VERSION)/g" >$@ <$<
+
+.PHONY: prepared unprepared debian/control debian/source.lintian-overrides
diff --git a/rules.d/ext-bcmath.mk b/rules.d/ext-bcmath.mk
new file mode 100644 (file)
index 0000000..6673ced
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES    += bcmath
+bcmath_DESCRIPTION := Bcmath
+bcmath_EXTENSIONS  := bcmath
+bcmath_config = --enable-bcmath=shared
+export bcmath_EXTENSIONS
+export bcmath_DESCRIPTION
diff --git a/rules.d/ext-bz2.mk b/rules.d/ext-bz2.mk
new file mode 100644 (file)
index 0000000..1666467
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += bz2
+bz2_DESCRIPTION := bzip2
+bz2_EXTENSIONS  := bz2
+bz2_config      := --with-bz2=shared,/usr
+export bz2_EXTENSIONS
+export bz2_DESCRIPTION
diff --git a/rules.d/ext-common.mk b/rules.d/ext-common.mk
new file mode 100644 (file)
index 0000000..3719047
--- /dev/null
@@ -0,0 +1,24 @@
+ext_PACKAGES     += common
+common_DESCRIPTION := documentation, examples and common
+common_EXTENSIONS  := calendar ctype exif fileinfo ffi ftp gettext iconv pdo phar posix shmop sockets sysvmsg sysvsem sysvshm tokenizer
+calendar_config = --enable-calendar=shared
+ctype_config = --enable-ctype=shared
+exif_config = --enable-exif=shared
+fileinfo_config = --enable-fileinfo=shared
+ffi_config = --with-ffi=shared
+ftp_config = --enable-ftp=shared --with-openssl-dir=/usr
+gettext_config = --with-gettext=shared,/usr
+iconv_config = --with-iconv=shared
+pdo_config = --enable-pdo=shared
+pdo_PRIORITY := 10
+phar_config = --enable-phar=shared
+posix_config = --enable-posix=shared
+shmop_config = --enable-shmop=shared
+sockets_config = --enable-sockets=shared
+sysvmsg_config = --enable-sysvmsg=shared
+sysvsem_config = --enable-sysvsem=shared
+sysvshm_config = --enable-sysvshm=shared
+tokenizer_config = --enable-tokenizer=shared
+export pdo_PRIORITY
+export common_EXTENSIONS
+export common_DESCRIPTION
diff --git a/rules.d/ext-curl.mk b/rules.d/ext-curl.mk
new file mode 100644 (file)
index 0000000..d173ca8
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += curl
+curl_DESCRIPTION := CURL
+curl_EXTENSIONS  := curl
+curl_config      := --with-curl=shared
+export curl_EXTENSIONS
+export curl_DESCRIPTION
diff --git a/rules.d/ext-dba.mk b/rules.d/ext-dba.mk
new file mode 100644 (file)
index 0000000..d557e26
--- /dev/null
@@ -0,0 +1,13 @@
+ext_PACKAGES    += dba
+dba_DESCRIPTION := DBA
+dba_EXTENSIONS  := dba
+dba_config = \
+       --enable-dba=shared \
+       --with-db4=/usr \
+       --without-gdbm \
+       --with-qdbm=/usr \
+       --with-lmdb=/usr \
+       --enable-inifile \
+       --enable-flatfile
+export dba_EXTENSIONS
+export dba_DESCRIPTION
diff --git a/rules.d/ext-enchant.mk b/rules.d/ext-enchant.mk
new file mode 100644 (file)
index 0000000..1200a34
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += enchant
+enchant_DESCRIPTION := Enchant
+enchant_EXTENSIONS  := enchant
+enchant_config      := --with-enchant=shared
+export enchant_EXTENSIONS
+export enchant_DESCRIPTION
diff --git a/rules.d/ext-gd.mk b/rules.d/ext-gd.mk
new file mode 100644 (file)
index 0000000..07b8ba6
--- /dev/null
@@ -0,0 +1,8 @@
+ext_PACKAGES   += gd
+gd_DESCRIPTION := GD
+gd_EXTENSIONS  := gd
+gd_config      := \
+       --enable-gd=shared,/usr \
+       --with-external-gd
+export gd_EXTENSIONS
+export gd_DESCRIPTION
diff --git a/rules.d/ext-gmp.mk b/rules.d/ext-gmp.mk
new file mode 100644 (file)
index 0000000..a5b49da
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += gmp
+gmp_DESCRIPTION := GMP
+gmp_EXTENSIONS  := gmp
+gmp_config      := --with-gmp=shared
+export gmp_EXTENSIONS
+export gmp_DESCRIPTION
diff --git a/rules.d/ext-imap.mk b/rules.d/ext-imap.mk
new file mode 100644 (file)
index 0000000..63f6b17
--- /dev/null
@@ -0,0 +1,8 @@
+ext_PACKAGES     += imap
+imap_DESCRIPTION := IMAP
+imap_EXTENSIONS  := imap
+imap_config      := --with-imap=shared,/usr \
+                   --with-kerberos \
+                   --with-imap-ssl=yes
+export imap_EXTENSIONS
+export imap_DESCRIPTION
diff --git a/rules.d/ext-interbase.mk b/rules.d/ext-interbase.mk
new file mode 100644 (file)
index 0000000..cc1a963
--- /dev/null
@@ -0,0 +1,8 @@
+ifneq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),hurd-i386 m68k hppa ppc64))
+  ext_PACKAGES += interbase
+  interbase_DESCRIPTION := Interbase
+  interbase_EXTENSIONS  := pdo_firebird
+  pdo_firebird_config   := --with-pdo-firebird=shared,/usr
+  export interbase_EXTENSIONS
+  export interbase_DESCRIPTION
+endif
diff --git a/rules.d/ext-intl.mk b/rules.d/ext-intl.mk
new file mode 100644 (file)
index 0000000..f58f5a4
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += intl
+intl_DESCRIPTION := Internationalisation
+intl_EXTENSIONS  := intl
+intl_config      := --enable-intl=shared
+export intl_EXTENSIONS
+export intl_DESCRIPTION
diff --git a/rules.d/ext-ldap.mk b/rules.d/ext-ldap.mk
new file mode 100644 (file)
index 0000000..da8d40e
--- /dev/null
@@ -0,0 +1,7 @@
+ext_PACKAGES     += ldap
+ldap_DESCRIPTION := LDAP
+ldap_EXTENSIONS  := ldap
+ldap_config      := --with-ldap=shared,/usr \
+                   --with-ldap-sasl
+export ldap_EXTENSIONS
+export ldap_DESCRIPTION
diff --git a/rules.d/ext-mbstring.mk b/rules.d/ext-mbstring.mk
new file mode 100644 (file)
index 0000000..6d978c3
--- /dev/null
@@ -0,0 +1,9 @@
+ext_PACKAGES    += mbstring
+mbstring_DESCRIPTION := MBSTRING
+mbstring_EXTENSIONS  := mbstring
+mbstring_config = \
+       --enable-mbstring=shared \
+       --enable-mbregex \
+       --enable-mbregex-backtrack
+export mbstring_EXTENSIONS
+export mbstring_DESCRIPTION
diff --git a/rules.d/ext-mysql.mk b/rules.d/ext-mysql.mk
new file mode 100644 (file)
index 0000000..c635c5c
--- /dev/null
@@ -0,0 +1,10 @@
+ext_PACKAGES      += mysql
+mysql_DESCRIPTION := MySQL
+mysql_EXTENSIONS  := mysqlnd mysqli pdo_mysql
+mysqlnd_config    := --enable-mysqlnd=shared --enable-mysqlnd-compression-support --with-zlib-dir=/usr
+mysqli_config     := --with-mysqli=shared,mysqlnd --with-mysql-sock=/var/run/mysqld/mysqld.sock
+pdo_mysql_config  := --with-pdo-mysql=shared,mysqlnd --with-mysql-sock=/var/run/mysqld/mysqld.sock
+mysqlnd_PRIORITY  := 10
+export mysqlnd_PRIORITY
+export mysql_EXTENSIONS
+export mysql_DESCRIPTION
diff --git a/rules.d/ext-odbc.mk b/rules.d/ext-odbc.mk
new file mode 100644 (file)
index 0000000..0852b1f
--- /dev/null
@@ -0,0 +1,7 @@
+ext_PACKAGES      += odbc
+odbc_DESCRIPTION := ODBC
+odbc_EXTENSIONS  := odbc pdo_odbc
+odbc_config      := --with-unixODBC=shared,/usr
+pdo_odbc_config  := --with-pdo-odbc=shared,unixODBC,/usr
+export odbc_EXTENSIONS
+export odbc_DESCRIPTION
diff --git a/rules.d/ext-pgsql.mk b/rules.d/ext-pgsql.mk
new file mode 100644 (file)
index 0000000..1e62a95
--- /dev/null
@@ -0,0 +1,7 @@
+ext_PACKAGES      += pgsql
+pgsql_DESCRIPTION := PostgreSQL
+pgsql_EXTENSIONS  := pgsql pdo_pgsql
+pgsql_config      := --with-pgsql=shared,/usr
+pdo_pgsql_config   := --with-pdo-pgsql=shared,/usr
+export pgsql_EXTENSIONS
+export pgsql_DESCRIPTION
diff --git a/rules.d/ext-pspell.mk b/rules.d/ext-pspell.mk
new file mode 100644 (file)
index 0000000..456588a
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES       += pspell
+pspell_DESCRIPTION := pspell
+pspell_EXTENSIONS  := pspell
+pspell_config      := --with-pspell=shared,/usr
+export pspell_EXTENSIONS
+export pspell_DESCRIPTION
diff --git a/rules.d/ext-readline.mk b/rules.d/ext-readline.mk
new file mode 100644 (file)
index 0000000..15fe5e7
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES       += readline
+readline_DESCRIPTION := readline
+readline_EXTENSIONS  := readline
+readline_config      := --with-libedit=shared
+export readline_EXTENSIONS
+export readline_DESCRIPTION
diff --git a/rules.d/ext-snmp.mk b/rules.d/ext-snmp.mk
new file mode 100644 (file)
index 0000000..d6dce4f
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += snmp
+snmp_DESCRIPTION := SNMP
+snmp_EXTENSIONS  := snmp
+snmp_config      := --with-snmp=shared,/usr
+export snmp_EXTENSIONS
+export snmp_DESCRIPTION
diff --git a/rules.d/ext-soap.mk b/rules.d/ext-soap.mk
new file mode 100644 (file)
index 0000000..4d374c0
--- /dev/null
@@ -0,0 +1,8 @@
+ext_PACKAGES    += soap
+soap_DESCRIPTION := SOAP
+soap_EXTENSIONS  := soap
+soap_config = \
+       --enable-soap=shared \
+       --with-libxml-dir=/usr
+export soap_EXTENSIONS
+export soap_DESCRIPTION
diff --git a/rules.d/ext-sqlite3.mk b/rules.d/ext-sqlite3.mk
new file mode 100644 (file)
index 0000000..3bfa20a
--- /dev/null
@@ -0,0 +1,7 @@
+ext_PACKAGES        += sqlite3
+sqlite3_DESCRIPTION := SQLite3
+sqlite3_EXTENSIONS  := sqlite3 pdo_sqlite
+sqlite3_config      := --with-sqlite3=shared
+pdo_sqlite_config   := --with-pdo-sqlite=shared
+export sqlite3_EXTENSIONS
+export sqlite3_DESCRIPTION
diff --git a/rules.d/ext-sybase.mk b/rules.d/ext-sybase.mk
new file mode 100644 (file)
index 0000000..542398f
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES       += sybase
+sybase_DESCRIPTION := Sybase
+sybase_EXTENSIONS  := pdo_dblib
+pdo_dblib_config   := --with-pdo-dblib=shared,/usr
+export sybase_EXTENSIONS
+export sybase_DESCRIPTION
diff --git a/rules.d/ext-tidy.mk b/rules.d/ext-tidy.mk
new file mode 100644 (file)
index 0000000..2b0c678
--- /dev/null
@@ -0,0 +1,6 @@
+ext_PACKAGES     += tidy
+tidy_DESCRIPTION := tidy
+tidy_EXTENSIONS  := tidy
+tidy_config      := --with-tidy=shared,/usr
+export tidy_EXTENSIONS
+export tidy_DESCRIPTION
diff --git a/rules.d/ext-xml.mk b/rules.d/ext-xml.mk
new file mode 100644 (file)
index 0000000..edb8b2e
--- /dev/null
@@ -0,0 +1,13 @@
+ext_PACKAGES    += xml
+xml_DESCRIPTION := DOM, SimpleXML, XML, and XSL
+xml_EXTENSIONS  := dom simplexml xml xmlreader xmlwriter xsl
+dom_config = --enable-dom=shared
+simplexml_config = --enable-simplexml=shared
+xml_config = --enable-xml=shared
+xml_PRIORITY := 15
+xmlreader_config = --enable-xmlreader=shared
+xmlwriter_config = --enable-xmlwriter=shared
+xsl_config      := --with-xsl=shared
+export xml_PRIORITY
+export xml_EXTENSIONS
+export xml_DESCRIPTION
diff --git a/rules.d/ext-zip.mk b/rules.d/ext-zip.mk
new file mode 100644 (file)
index 0000000..41405d6
--- /dev/null
@@ -0,0 +1,7 @@
+ext_PACKAGES    += zip
+zip_DESCRIPTION := Zip
+zip_EXTENSIONS  := zip
+zip_config = \
+       --with-zip=shared
+export zip_EXTENSIONS
+export zip_DESCRIPTION
diff --git a/rules.d/opcache.mk b/rules.d/opcache.mk
new file mode 100644 (file)
index 0000000..11d0adf
--- /dev/null
@@ -0,0 +1,10 @@
+ext_PACKAGES      += opcache
+opcache_DESCRIPTION := Zend OpCache
+opcache_EXTENSIONS  := opcache
+opcache_PRIORITY    := 10
+opcache_EXTENSION   := zend_extension
+opcache_config      := --enable-opcache --enable-opcache-file --enable-huge-code-pages
+export opcache_EXTENSIONS
+export opcache_DESCRIPTION
+export opcache_PRIORITY
+export opcache_EXTENSION
diff --git a/rules.d/prepare-fpm-pools.mk b/rules.d/prepare-fpm-pools.mk
new file mode 100644 (file)
index 0000000..2a598cf
--- /dev/null
@@ -0,0 +1,43 @@
+ifeq ($(PHP_MAJOR_VERSION),5)
+# PHP 5.x version
+# install the FPM configuration files to respective locations and customize them for Debian
+prepare-fpm-pools:
+       mkdir -p debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/
+       sed -r '/('"'"'|\[)www('"'"'|\])/Q' \
+           < debian/tmp/etc/php-fpm.conf.default | \
+       sed -e's,^pid[[:space:]]*=[[:space:]].*,pid = /run/php/$(PHP_FPM).pid,' \
+           -e's,^error_log[[:space:]]*=[[:space:]].*,error_log = /var/log/$(PHP_FPM).log,' \
+           -e's,^include[[:space:]]*=[[:space:]]*.*,include=/etc/php/$(PHP_NAME_VERSION)/fpm/pool.d/*.conf,' \
+           > debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/php-fpm.conf
+
+       mkdir -p debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/pool.d/
+       sed -nr '/('"'"'|\[)www('"'"'|\])/{h;p;d};x;/www/{x;p}' \
+           < debian/tmp/etc/php-fpm.conf.default | \
+       sed -e's,^listen = .*,listen = /run/php/$(PHP_FPM).sock,' \
+           -e's{^;listen\.owner{listen.owner{;' \
+            -e's{^;listen\.group{listen.group{;' \
+           > debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/pool.d/www.conf
+
+       rm -f \
+           debian/tmp/etc/php-fpm.conf.default
+else
+# install the FPM configuration files to respective locations and customize them for Debian
+prepare-fpm-pools:
+       mkdir -p debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/
+       sed -e's,^pid[[:space:]]*=[[:space:]].*,pid = /run/php/$(PHP_FPM).pid,' \
+           -e's,^error_log[[:space:]]*=[[:space:]].*,error_log = /var/log/$(PHP_FPM).log,' \
+           -e's,^include[[:space:]]*=[[:space:]]*.*,include=/etc/php/$(PHP_NAME_VERSION)/fpm/pool.d/*.conf,' \
+         < debian/tmp/etc/php-fpm.conf.default \
+         > debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/php-fpm.conf
+
+       mkdir -p debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/pool.d/
+       sed -e's,^listen = .*,listen = /run/php/$(PHP_FPM).sock,' \
+           -e's{^;listen\.owner{listen.owner{;' \
+           -e's{^;listen\.group{listen.group{;' \
+         < debian/tmp/etc/php-fpm.d/www.conf.default \
+         > debian/$(PHP_FPM)/etc/php/$(PHP_NAME_VERSION)/fpm/pool.d/www.conf
+
+       rm -f  \
+         debian/tmp/etc/php-fpm.conf.default \
+         debian/tmp/etc/php-fpm.d/www.conf.default
+endif
diff --git a/sedsed b/sedsed
new file mode 100755 (executable)
index 0000000..6049385
--- /dev/null
+++ b/sedsed
@@ -0,0 +1,3 @@
+#!/bin/sh
+echo "Calling sed $@..." >&2
+exec sed "$@"
diff --git a/source.lintian-overrides b/source.lintian-overrides
new file mode 100644 (file)
index 0000000..96ac523
--- /dev/null
@@ -0,0 +1,3 @@
+php8.2 source: license-problem-json-evil README.REDIST.BINS
+php8.2 source: missing-build-dependency-for-dh_-command dh_systemd_start *
+php8.2 source: source-is-missing ext/standard/tests/image/*
diff --git a/source.lintian-overrides.in b/source.lintian-overrides.in
new file mode 100644 (file)
index 0000000..f0c5d56
--- /dev/null
@@ -0,0 +1,3 @@
+php@PHP_VERSION@ source: license-problem-json-evil README.REDIST.BINS
+php@PHP_VERSION@ source: missing-build-dependency-for-dh_-command dh_systemd_start *
+php@PHP_VERSION@ source: source-is-missing ext/standard/tests/image/*
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/source/include-binaries b/source/include-binaries
new file mode 100644 (file)
index 0000000..5b6eeea
--- /dev/null
@@ -0,0 +1 @@
+debian/patches/use_updated_install-pear-nozlib.phar.patch
diff --git a/tests.in/cgi b/tests.in/cgi
new file mode 100644 (file)
index 0000000..937951f
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+# Author: Robie Basak <robie.basak@ubuntu.com>
+
+# /etc/apache2/conf-available/php@PHP_VERSION@-cgi.conf should exist.
+
+if [ ! -f /etc/apache2/conf-available/php@PHP_VERSION@-cgi.conf ]; then
+    echo "/etc/apache2/conf-available/php@PHP_VERSION@-cgi.conf not found" >&2
+    exit 1
+fi
+
+echo "Action application/x-httpd-php /cgi-bin/php@PHP_VERSION@" >> /etc/apache2/conf-available/php@PHP_VERSION@-cgi.conf
+
+cat > /var/www/html/hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+# Make sure that any mod_php mechanism is disabled, since we want to get CGI
+# mode here.
+a2dismod php@PHP_VERSION@ 2>/dev/null || true
+
+# Ensure that fpm is disabled, since we want to get CGI here
+a2dismod proxy-fcgi 2>/dev/null || true
+a2disconf php@PHP_VERSION@ 2>/dev/null || true
+
+a2enmod actions 2>/dev/null || true
+a2enmod cgi 2>/dev/null || true
+a2enconf php@PHP_VERSION@-cgi 2>/dev/null || true
+service apache2 restart 2>/dev/null
+result=`wget -O- http://localhost/hello.php 2>/dev/null`
+test "$result" = "Hello, world!"
diff --git a/tests.in/cli b/tests.in/cli
new file mode 100644 (file)
index 0000000..1e38ab9
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -e
+
+# Author: Robie Basak <robie.basak@ubuntu.com>
+
+cd "$ADTTMP"
+cat > hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+result=`php@PHP_VERSION@ hello.php`
+test "$result" = "Hello, world!"
diff --git a/tests.in/control b/tests.in/control
new file mode 100644 (file)
index 0000000..706c6c8
--- /dev/null
@@ -0,0 +1,21 @@
+Tests: cli
+Depends: php@PHP_VERSION@-cli,
+         wget
+
+Tests: cgi
+Depends: apache2,
+         php@PHP_VERSION@-cgi,
+         wget
+Restrictions: needs-root
+
+Tests: mod-php
+Depends: apache2,
+         libapache2-mod-php@PHP_VERSION@,
+          wget
+Restrictions: needs-root
+
+Tests: fpm
+Depends: apache2,
+         php@PHP_VERSION@-fpm,
+         wget
+Restrictions: needs-root
diff --git a/tests.in/fpm b/tests.in/fpm
new file mode 100644 (file)
index 0000000..dc77c20
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+# PHP-FPM test based on mod-php test
+# Author: Neal Gompa <ngompa13@gmail.com>
+
+# /etc/apache2/conf-available/php@PHP_VERSION@-fpm.conf should exist.
+
+if [ ! -f /etc/apache2/conf-available/php@PHP_VERSION@-fpm.conf ]; then
+    echo "/etc/apache2/conf-available/php@PHP_VERSION@-fpm.conf not found" >&2
+    exit 1
+fi
+
+cat > /var/www/html/hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+# Make sure that any CGI mechanism is disabled, since we want to test
+# php-fpm here.
+a2dismod actions 2>/dev/null || true
+a2dismod cgi 2>/dev/null || true
+a2disconf php@PHP_VERSION@-cgi 2>/dev/null || true
+
+# Ensure that mod_php is disabled
+a2dismod php@PHP_VERSION@ 2>/dev/null || true
+
+# php-fpm configuration requires mod_proxy_fcgi
+a2enmod proxy_fcgi 2>/dev/null || true
+a2enconf php@PHP_VERSION@-fpm 2>/dev/null || true
+service apache2 restart 2>/dev/null
+result=`wget -O- http://localhost/hello.php 2>/dev/null`
+test "$result" = "Hello, world!"
diff --git a/tests.in/mod-php b/tests.in/mod-php
new file mode 100644 (file)
index 0000000..9b822d1
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -e
+
+# Author: Robie Basak <robie.basak@ubuntu.com>
+
+
+# /etc/apache2/mods-available/php@PHP_VERSION@.{conf,load} should exist.
+
+if [ ! -f /etc/apache2/mods-available/php@PHP_VERSION@.conf ]; then
+    echo "/etc/apache2/mods-available/php@PHP_VERSION@.conf not found" >&2
+    exit 1
+fi
+
+if [ ! -f /etc/apache2/mods-available/php@PHP_VERSION@.load ]; then
+    echo "/etc/apache2/mods-available/php@PHP_VERSION@.load not found" >&2
+    exit 1
+fi
+
+
+cat > /var/www/html/hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+# Make sure that any CGI mechanism is disabled, since we want to test mod_php
+# mode here.
+a2dismod actions 2>/dev/null || true
+a2dismod cgi 2>/dev/null || true
+a2disconf php@PHP_VERSION@-cgi 2>/dev/null || true
+
+# Make sure that fpm configuration is disabled for the same reasons we disabled
+# CGI mechanisms
+a2dismod proxy_fcgi 2>/dev/null || true
+a2disconf php@PHP_VERSION@-fpm 2>/dev/null || true
+
+a2enmod php@PHP_VERSION@ 2>/dev/null || true
+service apache2 restart 2>/dev/null
+result=`wget -O- http://localhost/hello.php 2>/dev/null`
+test "$result" = "Hello, world!"
diff --git a/tests/cgi b/tests/cgi
new file mode 100644 (file)
index 0000000..358acea
--- /dev/null
+++ b/tests/cgi
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+# Author: Robie Basak <robie.basak@ubuntu.com>
+
+# /etc/apache2/conf-available/php8.2-cgi.conf should exist.
+
+if [ ! -f /etc/apache2/conf-available/php8.2-cgi.conf ]; then
+    echo "/etc/apache2/conf-available/php8.2-cgi.conf not found" >&2
+    exit 1
+fi
+
+echo "Action application/x-httpd-php /cgi-bin/php8.2" >> /etc/apache2/conf-available/php8.2-cgi.conf
+
+cat > /var/www/html/hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+# Make sure that any mod_php mechanism is disabled, since we want to get CGI
+# mode here.
+a2dismod php8.2 2>/dev/null || true
+
+# Ensure that fpm is disabled, since we want to get CGI here
+a2dismod proxy-fcgi 2>/dev/null || true
+a2disconf php8.2 2>/dev/null || true
+
+a2enmod actions 2>/dev/null || true
+a2enmod cgi 2>/dev/null || true
+a2enconf php8.2-cgi 2>/dev/null || true
+service apache2 restart 2>/dev/null
+result=`wget -O- http://localhost/hello.php 2>/dev/null`
+test "$result" = "Hello, world!"
diff --git a/tests/cli b/tests/cli
new file mode 100644 (file)
index 0000000..a676cb8
--- /dev/null
+++ b/tests/cli
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -e
+
+# Author: Robie Basak <robie.basak@ubuntu.com>
+
+cd "$ADTTMP"
+cat > hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+result=`php8.2 hello.php`
+test "$result" = "Hello, world!"
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..b346b9d
--- /dev/null
@@ -0,0 +1,21 @@
+Tests: cli
+Depends: php8.2-cli,
+         wget
+
+Tests: cgi
+Depends: apache2,
+         php8.2-cgi,
+         wget
+Restrictions: needs-root
+
+Tests: mod-php
+Depends: apache2,
+         libapache2-mod-php8.2,
+          wget
+Restrictions: needs-root
+
+Tests: fpm
+Depends: apache2,
+         php8.2-fpm,
+         wget
+Restrictions: needs-root
diff --git a/tests/fpm b/tests/fpm
new file mode 100644 (file)
index 0000000..558fdec
--- /dev/null
+++ b/tests/fpm
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+# PHP-FPM test based on mod-php test
+# Author: Neal Gompa <ngompa13@gmail.com>
+
+# /etc/apache2/conf-available/php8.2-fpm.conf should exist.
+
+if [ ! -f /etc/apache2/conf-available/php8.2-fpm.conf ]; then
+    echo "/etc/apache2/conf-available/php8.2-fpm.conf not found" >&2
+    exit 1
+fi
+
+cat > /var/www/html/hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+# Make sure that any CGI mechanism is disabled, since we want to test
+# php-fpm here.
+a2dismod actions 2>/dev/null || true
+a2dismod cgi 2>/dev/null || true
+a2disconf php8.2-cgi 2>/dev/null || true
+
+# Ensure that mod_php is disabled
+a2dismod php8.2 2>/dev/null || true
+
+# php-fpm configuration requires mod_proxy_fcgi
+a2enmod proxy_fcgi 2>/dev/null || true
+a2enconf php8.2-fpm 2>/dev/null || true
+service apache2 restart 2>/dev/null
+result=`wget -O- http://localhost/hello.php 2>/dev/null`
+test "$result" = "Hello, world!"
diff --git a/tests/mod-php b/tests/mod-php
new file mode 100644 (file)
index 0000000..b3eebbf
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -e
+
+# Author: Robie Basak <robie.basak@ubuntu.com>
+
+
+# /etc/apache2/mods-available/php8.2.{conf,load} should exist.
+
+if [ ! -f /etc/apache2/mods-available/php8.2.conf ]; then
+    echo "/etc/apache2/mods-available/php8.2.conf not found" >&2
+    exit 1
+fi
+
+if [ ! -f /etc/apache2/mods-available/php8.2.load ]; then
+    echo "/etc/apache2/mods-available/php8.2.load not found" >&2
+    exit 1
+fi
+
+
+cat > /var/www/html/hello.php <<EOT
+<?php echo "Hello, world!\n"; ?>
+EOT
+
+# Make sure that any CGI mechanism is disabled, since we want to test mod_php
+# mode here.
+a2dismod actions 2>/dev/null || true
+a2dismod cgi 2>/dev/null || true
+a2disconf php8.2-cgi 2>/dev/null || true
+
+# Make sure that fpm configuration is disabled for the same reasons we disabled
+# CGI mechanisms
+a2dismod proxy_fcgi 2>/dev/null || true
+a2disconf php8.2-fpm 2>/dev/null || true
+
+a2enmod php8.2 2>/dev/null || true
+service apache2 restart 2>/dev/null
+result=`wget -O- http://localhost/hello.php 2>/dev/null`
+test "$result" = "Hello, world!"
diff --git a/upstream/signing-key.asc b/upstream/signing-key.asc
new file mode 100644 (file)
index 0000000..9f3bf4c
--- /dev/null
@@ -0,0 +1,144 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGBlJjMBEAC2wbO/PIAzVSAp2kk7MXmzoXVRSPyEbnjN6qm77nrzvugh/beP
+ZucG6lbXMxRsCj4GS9xLcGZoSQZhT/2GJdy+aUt7zf6sympJUTcgPdEVmf5uTxWn
+QkBg0Bdm6h8xwvgTZVrdfwy7f7jfAsGSXKzEmJfJ2L6LHmAMI3I+csdPqKBHSzj6
+hYjZYcwXSp2TAISkpKKmV9kpkY3ZKDoJCdDb5Q6bzy4xK+BI7XFbIMLWCEkfpUas
+GXlPoV/9qvWWr3SGtnKjE5VjoVgA5iqgMUymyd2L9z3Bqy8+mKtmdxXyXg3O0o68
+xG9o7pcjoavVbRWiqE9TqZcwar+42KoL6BchWYlMveZ9RO6X+umq9wGJjR3G99PE
+cHtF6WomMXGieLqbUz/WW0GioL37vkqKMZYZ0tyITiJZf7am2J4Tigyq8kk1HG6r
+mSbXSSOBcIXWv+aVnnTM14HKjsbf6jx91Vd/54yD7hyozwEutb4+Cz/O3R9Z3V6p
+/OfcnATLXCdDg1hYNjWoz6TZclxGTpZJp7TevqEBhqQ8ua/QXHJyF6za3VFYXI4C
+2XtaV6X6c7H2SvRphsnnVZEMWSBsZecW+u931eamQizz5dmWW7jCtQqD/rcybqo+
+PetszW+Drsxg3zF9dPM3H+G1Xc4RIL1K4PhRrrpl+HwZtsOgUiJLMgrXPwARAQAB
+tDJQaWVycmljayBDaGFycm9uIChQaWVycmljayBQSFApIDxwaWVycmlja0BwaHAu
+bmV0PokCTgQTAQoAOAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBBGYwBF1
+k0l6XsXBmShq8fmJdGncBQJic0zgAAoJEChq8fmJdGncIWwP/RFhFn+2/X+dhZGy
+0SDwdvPA+dGXGiAEMC9BloT/CjZbVcMQ3tlA5A9Zytuyi1FBe09AJbLHO4ba4XMZ
+mNCxd2WISLPC1zjgemjWz5bryYFfRxA8Z1iqQn4z+kHlcLMpNeFsmuYWPx/aW5mV
+1STdGv9pUHv98u3cOWNg56qRhoD0ktZ0lBoQjqxdcJpfObTC1VKD+B+NMl3QkBlz
+XRwmNk5Q5qlmxG+38EHU3hPPAxHhP+UupuW+M7OTFuW2WGAx0zp4D7eI++5ViM4u
+W2ZNQYeKhLbAoSVO8PvPgCIx/n++pSOenO1HbYkk5oNU1ypF1JSg5eKeKPMmmB3d
+EaII3ImJ0c8zJ+rg75gqxIzm7yi8kPRZeE7mLX6IpDuMvfuhn+DUqS6RCRuOT7Q/
+0AxIaivUnBrVl+0P9MAH7h+dsz28DJ0SeBHeOQailbPE+Dm8QroDQYUNhjlmkVwd
+es8f6IUhal9X20zxVkEAzw5qkN9twh+tvEvich/m9idrhExVLeUKTOjgxOe17OQk
+Js45pdqmKt3otzNJTBgEOeMYHFMSsd7pewDONjxACo0jj6/QipNK1mad7RTR96ne
+rqCYSKqP5HDpq4FYUU/bLKxyt771Ir0jULSUfqkclwlsvIYvuQlnZmpSUYS04vIH
+6SDqEMMr4S/0+kNRme4V3v8+80kXtCNQaWVycmljayBDaGFycm9uIDxwaWVycmlj
+a0BwaHAubmV0PokCTgQTAQgAOBYhBBGYwBF1k0l6XsXBmShq8fmJdGncBQJicJ29
+AhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJEChq8fmJdGnchjkP/iYwps3x
+V3I/KJKSBNUHdm7obMuXW1qnDZ/OXNh5L28T0Py8XTdSyF0T2EpBvSq0yiRuVpTV
+wE8aspZY+q/HSwltIBnHr1gp9kCIlZ8exWC8BPB8yByqWl0YepGcQSfx8q1rT5Uv
+cYrBdb9ocCd0noktPmonaqoyhrxWqFPkJwejtMncJ8xcPDt0jlOIT8w4g+5FQTDL
+DYleozYZOpKlfV3P88w8/9QczYEyBPXtNJIvqDr0mEc1Vyu5jKlAc3EU4FaqDmU/
+yJe62pL9InoUkRZ8pfuAvJ90D9mPTnW22rITWL+WJV8u2LxDh5lff7+1tCfrxPeO
+1CJjJL9OOr3/y3nS3UHvgVcJ7z/CVJwGlNrOeAlPGQMVj2Q1JxiBoJ/B1r39kX1O
+aEn+saiqmP4gfWdYfJTqS8vKWeCuvn+A2qDCZzSDj+fa3BhxtYGCxNfwBMtKjF1E
+Xz2Er1+clIVLqlenctEysyuSIeD+wW4OSISIrwC3ezR4wWnIGACYMm6Iai020k+8
+14wjqAASM0qUx/TxBdvKCqGHM7UEVg8deDxDBxQi1eJ5faF2QzJJeZUuAFD8hpJY
+BAjHiI724ogySUaXNsTtmRIwsytTumdYFck67s31piygsLHutz/0Lx16yjyxtC+T
+PC7nmszKJN7Xgm8fq0U5VCumMswHJeeHMVqruQINBGBlJjMBEADtm6XiVTQIq5Up
+NUXpaudyuuMEjkE1hI7hy/j4OL+dv8XbjJv3tKNOHncJUd+dixXBHBriWZUlNYrc
+xtEMJbxPs4jw9CuZafK6Tnt7n6cbKGG/RTnPwvDL+jOGp+1n3aBHupCaC69RBclP
+0evYNT9rzqAy4NIc9AFLECHy4pbdBQKEz9A66TNUlbV6RijhIWCju9vvVrQgwE9M
+2XWXT/RukJkmnwwWilGTCk2/Z9BRczZyUS6edD1gp66FBqlpEF582PnL+7oAtjww
+Y8NBYgXkQmTEwvvTj4hj1VTsf/ygZc8N2TNi2sX6ffYFaSJFd4xxfKT0DIdUckI2
+0m+zxLMweVZOvb6kFV53/wKDD/9LfKCp8mvvfrSUjlrkKtNtJvbxQjRAhhRTpGaF
+0jDOmREXPlHn5r/BPsFylX24FJt2WsFna2ORt3gosm2PkXy3p5r/W1VdqwgRVFxA
+iV6zzEPAUppY/UeXwGVrbXMsIb1oFtpPgbT0Cu4tj3pPVse87cW9bUlBcTl7XW3K
+hlXuEwOho6jcUIzqno6s45tPOKt3tL9epIFWEN5X+Y5Bx4Pt4pecwYxPevqu99yT
+JYOls0uqdee9TzPIudIbcLysZvQH8J8EfM5urqUQcCOmXPJjeaSmteTdOlCn124f
+eXd6m50dZOee4DpoaZLOxxERUJjG5wARAQABiQI2BBgBCAAgAhsMFiEEEZjAEXWT
+SXpexcGZKGrx+Yl0adwFAmJv7usACgkQKGrx+Yl0adx3Ew/9FGoms1QQzlGD/xla
+QCswyEDNlmFls7ft44ss9RgfMEJCZTb+5e/niDXGHFikZqX2YjebIo2zF0iRN7g9
+9El57gobnxFPoxJTHz+9aNM0Mk0+6yhEWekJrzOePDoxt7Zkk/NGaQQ+tvQJ3nB4
+ZOqz8M6HaLj0Ssf0gQTwOp6CXZ/JsnNxY9QVCQxeQgSGi+kgUq3kdJ1xbIae4ZrG
+HOOgda4YIo9HO2IhTZY1qKWV2FHAunq1WlhVbGbFPuXXkzOKBZe5iK5Lh4bQBO5A
+dTGzg8mMvUr6DaS5vEfniGFjc5pdPaiWHhgtak9yplrSnSVc9GJRdvql8l0lTDGk
+bGdSpw++0De2S0zrs7A1OLabATxYoYoUjcMe2Q0bfLmGf864eG95PJK7gMUAQW+W
+APAkCGs9NHi4y7MHSEJwAibzYSmK1XTtoPWzzNnQMiu4ehnZJZVU1MGV+t4E/50C
+AgblTkdF0FQc9LiZRAEIeaa5qF7ggc+1CL/o0eDKlb2+WIN3pMUYjqON7iCTRf/S
+O0mKkSRf0F4VNBcPjoOdRCnnnmDaV8NN/jXmWflV8QaGRa9LsrT25Dj3818Q0r6s
+sbrDylaLrWEKuZ19TQ1TpNAEH9lPCmtNHWKsBPU1GFH+T2CUy4kM43jWJ5LZli/n
+wpxdIIyaoaS8NSuPIrV1g4SUXYs=
+=w4mR
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBGBd5LkBEADOcegzhSUO+DqPpQSTRyVE5mHE9dAhpexUvAmyT3b5rJoOgUXp
+I+/VzKa2t40gkcdkg/uHZbMGTQg43fvtsY1eD32uveJK0rMntBINnOaf7jDRa9Qd
+KqXWyQIbOSM/yyyItc6n2mFC4rZHaNU1QwZCPGEYt4PTgTmOiFj6NHfyWMIUzITY
+a/7EkuFcV3tiqeu8Gm2cGllFgaQ09/3dhLzblstggd4f1A7z75aoGmMy6xvwFzc3
+ZAy1rxXdF5QCpds+uvWXkrpNJpRGZJ4eR8O42LODJEpgRGk4LA+jvZunW0gtJOIK
+mAGfX2ISk28arCR129dxahHHKefUS8Qc2zTK6/I/Bp/ZMVc/NC3os6JurQJD/Kff
+4amhNaBYRWD+Nn7fR+itZ3HPBH2yf0nzL0cgwGt37GbQXGqRvHcwmoABY9m3WZVC
+1ImdOS6T3zMrUC4ATyD/qtUs6NuxyV22C1jLRtGqu2YMdAw+s1G6V6Q3Y0SrlRqw
+0Nb4Ug0gMwKZdVCU+22qGmVJ44D7fSr7AyIZmSrC4i6IoF9I0pcpZYdIImgOBnmS
+mwOIin5/k0Oqg3gZWZAn2YV6qpVn3RjVz/GkFkml31TneDi+aZJSvmypbvTjkaH/
+zALwKpcSIdVZYlmlWfWprG8UY3Wc3XJq6zRYjG9YAdgZLzH+7B7yr/VR8wARAQAB
+tCFTZXJnZXkgUGFudGVsZWV2IDxzZXJnZXlAcGhwLm5ldD6JAlcEEwEIAEECGwMF
+CwkIBwIGFQoJCAsCBBYCAwECHgECF4ACGQEWIQTmCRPk3yCZB9jjDZZlmpfJzyp5
+WgUCYmuyVgUJEO1yXAAKCRBlmpfJzyp5WoQ2EACCVGtdOTFMQWF7cpnAbNFSGzMv
+9dffE7aOacVahEcRMuu5O5ONhZMlKweXjXJjmXJga4XxZifcopnoJEiiAmd6eb1o
+deHfrXAarKig/HqCHXtTFBc0ADEgIew9ErHjKCipg3uBAxvR8ndCV/xDmAIDdZGM
+7uhklYvtk68jgzK3tzYyDzes+eQKhjQdXfHgp2MqV+aeuuy8csFWvJV/DJDTXFMe
+DwAm9tB8fMqHZDOlF1jpl+FbXS3NdN/Oee8Ltja+x5iTMMI5lVmnHpemx62W+O2y
+CHUdd4TXxI6afvpKXnHDjsXZoZoLU1iYwVtA7XGIZTCzfzWMvFsXtXp+3GsfOFFZ
+teXYk4XgoF+3m+VRUDXckyd33Hc2WZDIe4PKYU+SjxV9Gn/Ltq9XzwPb9UgLoi6u
+FRnJo9r4zATKeU4e0mK9mZyy5Ndl57tHXsEd+r2Saih0kv0bX3LxWI8ab6JWpOCF
+WY+3nVUXJq5aH3Gtsdv/XUqk+M7616LIsdDZbLZ789QrE9mOEvADns9wIjt8XFcd
+//5k7/OM/5f/GK0+p9dv51uSnuyqtX21StG5/Y+ixu0MuK7jK2gSmQ0HwoU2uzlU
+XvFyIWgEH/+QUgM1QoflovBjp+5cwIb7CIl0sqPDoRbaWWAqtgiRIFeI/UcIss2W
+qHUY+bIZbtipSA+Tv7QoU2VyZ2V5IFBhbnRlbGVldiA8c2VyZ2V5QHMtcGFudGVs
+ZWV2LnJ1PokCVAQTAQgAPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBOYJ
+E+TfIJkH2OMNlmWal8nPKnlaBQJia7JWBQkQ7XJcAAoJEGWal8nPKnlaeLQP/3dE
+YpCNYxSx6itLIkMnVifdWi7Oe7ATqIGfIO5Z4uZ9E0JCv0CDHy4AMQ78NG67zK5X
+SngoCGHdsXUw9h857dtXTqVKpG7wDABSJQC+g6hu4sK67tpFlu8Zc+IGtGc2eNjT
+FSciMdlCaocY+ehWVVuuEew7KvdVfEMxJILRk3grhqzsXo0PaePqjRK/lx/wYHDW
+7255ALibJ8Q3yf9h+LOdEa0qH1xsdSP7G55t1kBCoGsFbT8sPLNzFMtqzuiTgQgs
+TMNOeiwOrPRUIw4yVQOO5svZ0+agjOGf0iklG0heQMC7LGKFAzKIFtxVrV6hSgwH
+t7y2fA5RvRBR0zZG6L5bUkP0/9txF6c6HsSVihAOpX2Mypel5uHDgnqq6eGbMzG4
+0MoOmnaWcFrICNr+uZLY1FfAlr1Nl4syiqXF36+rA2e53QVcPp2nlv9IR+ijWtUV
+IO+xcpAFKZ5NwWERO+oQoGNkquW7UK4x8jO8ezkYs/nC6Y+cJ3AiuPS76avnP47/
+SAvbyVLDamyzyt8mSMsnyqgghz6ivqqWE810i103AfFCjDokNTd0uzpCcL74VN5p
+FsveI563xWinbIoAtgPvFHd18NfYgkyLbk69V4s/h0onD8pEid23ExDKXKOXBZzn
+1Bw57z/ZFCxySlULQs59BMFTdY9VXTqX8l2pahmLtC1TZXJnZXkgUGFudGVsZWV2
+IDxzZXJnZXlAc2VyZ2V5cGFudGVsZWV2LmNvbT6JAlQEEwEIAD4CGwMFCwkIBwIG
+FQoJCAsCBBYCAwECHgECF4AWIQTmCRPk3yCZB9jjDZZlmpfJzyp5WgUCYmuyVgUJ
+EO1yXAAKCRBlmpfJzyp5WlRDEACcPD/Dra0f0HW4qqu0ZYeorsmRqyI2+pb1tsXU
+5qLn7VUZebyRaLkt3kq/E3emnxB2Mftn3OW9YzHDWQcjczHtkKPrfeU82Ja13TF5
+vutyHUSTn9RqzL5ftx+O4OZ0H5cqssnypgdnkBA5ca2G2s3DqnpthZP7e2Yh3vPE
+EHg5HvE7GsH1cyN73Efp4xAJltFSdFVtNDrZ8xIjw9iUnnl0Pa6YxFKuy5AsLTv9
+T6yhAP882o5fW1jqiTUpKq4l/GCjKZWIjBgUQaUPDdWISNhG0qoK/GUNpR/WfaJM
+dyYFt9bG+NGSx+g0RXYOWmn3OEVga5J7f1pkXgciOdHY4FMRGWGGhDDcfaWBTXVa
+k/iMlWbrPNwUeu371W4pMkZaDHq0RqFbzkX5ePCcUqeOHZPz5qrjASkOrDrp75D5
+Zho6UcMEaOmA3E883LZQCY+zh9H9n34UUIqla2js7pnq9Ab0uYOVe5F+TirH3qAz
+IrpfbralGnED6lgLbJaxU3eUTu13L/xgUfH2jqa4mvDBS4g+rBqj4J2Qcbc/fjnU
+Eintu2HN8QGJEpkNSFAjuWXQ0Dmjidl710DzcVZy+WMcHmANeXZ7MSXXvGwUV+RC
+5Kr/PzVATkCwJUY+cemU3E/+vp+oUOF1OxvISKKEF1QH9p64kyE0ezPJ5SsVz4nz
+i6CE+bkCDQRgXeS5ARAAkDhiIBBJa1Hml3MB3yDDg7JvVbDAA6Bi9w5Xeym0sqId
+M623U2O/RQlzzfZXsg3f4a66Zjot1t1axFZXXNw6p999kZtE5xk10Qcq6zfmUDM6
+yrlmatmCImu+mlWRrW7Yqba7DpgWJ5m4FXGTp08Np8nNJiICaG7Hfk7HtZIjzMr9
+5ffaTaXsiSLadvP0o2knP0cvBLPWQKMU89ADI8xh80mm6omsnSby2fluUeugSKNo
+KxJqdoqWCWD5br0Ypk3UyG9gUcoJUyQmC2gUUs9g1ksyeq/xGlrTcJ9l7c5I2iby
+frRrafWyE5Zg/vlKLBffnsSkIrV+0c4RFjjlteRm6Eig6lVmXbOXbfSopIyvG9IY
+mbgY5tRX/aMvpOeUcbqx9Wfsup1MYY7th5B/XSXJQCsRg2k1nMl7Hgq9MVrmkKCu
+X1IvWBmAilrxlAqdldqSA+8/ZJxQyapdDtw8ecV0NIFFG2tCxodnJcl5RVZRGsO4
+gNjQVZW6Hp3ktpcDLsJkpNhnsH8yK9hmBve//KBftpzb0I13W7bJMJoz6rg52FDb
+O99NZmLJl9N85mCPNISvhaHFOLKcyFpROnue2eiER8OLv/M24n/2nvp1SWwkhv+i
+M6FIT1yCFpxXjXxCISJM1oYmTM9e5Wj30jZAvYcgwD9KY/TGzSZo1W/BPiuIQiUA
+EQEAAYkCPAQYAQgAJhYhBOYJE+TfIJkH2OMNlmWal8nPKnlaBQJgXeS5AhsMBQkH
+hh9cAAoJEGWal8nPKnla6mwP/3D/kYM2nkvoXLMO8K0q59Y7uf3SE3wZ2VHyDd/X
+aKjOfXQFEyK5RqZYI+mbv/xI58+XoVlf9y3nUzyURCaBRaPtvTbpy6b8Y3ARw8xT
+5wBYDVaY0xzlHjidFVNnDJ1MKNvwn68V4qZdX1dxzHB+PrUeZG5YVoGCSw1au4Yq
+GuYP0VuE5AeY9pP6c/mC7sSuLAJ7izkaz6INiIW7hcJcRPXY2NdyCRwzSY36UAI7
+ZVnKervpK1eXrLhpwSbbBgS4/oh+sdu90oQb32dJRVTZZ/nT18CR6Ttxvsu5rFt8
+Q4bVkXHiDZPvrrz9kOCo1pe3DfXOb2oRMlF3oZ6h+MhNC3IZvVTEY0WK62I5Grfe
+uGdMBvcI+BFpQ+prv7bZVOU/jZlQL6DEfQ2T2eNc2xiYP1dKwoqH6hcb8j3Oids8
+8xPfLxeMIPZBgCLyxwRJIW8ChSh/R9vo9P+HNmFkt7TLy+AVQm5QV/gmdvwJnTS3
+tDsPUBA7WX2pMsYbQEDzWyQdrmSAgpGw5naHqz+hcjGK6VsYW/bH5FQeOKfUPE4E
+VPpIcXjQE//JzrJ8sJkPITD4I8cIrMo2DSessrODvkDootC5wCwD2jzKzbwVjGTg
+tm6LWTIamS0UshAHDk9tnddxgPD8yeFzXbQRJC7sBoFcLcBRJrF6urlEBgmmWo4A
+bItY
+=z8k6
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..3649afc
--- /dev/null
+++ b/watch
@@ -0,0 +1,3 @@
+version=4
+opts=pgpsigurlmangle=s/$/.asc/ \
+https://www.php.net/downloads.php /distributions/php-(8\.2\..*)\.tar\.xz debian