From 755287cc79c5bdda5f9f1a5df41e4189d2611805 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Sun, 3 Aug 2025 09:32:21 +0200 Subject: [PATCH] Import php8.4_8.4.11-1.debian.tar.xz [dgit import tarball php8.4 8.4.11-1 php8.4_8.4.11-1.debian.tar.xz] --- PEAR-Builder-print-info-about-php-dev.patch | 10 + README.Debian.security | 23 + README.source | 45 + changelog | 1507 +++++++++++++++++ compat | 1 + control | 842 +++++++++ control.in | 290 ++++ copyright | 726 ++++++++ freexian-dists | 4 + gbp.conf | 10 + libapache2-mod-php.apache2 | 2 + libapache2-mod-php.dirs.extra | 2 + libapache2-mod-php.install.extra | 1 + libapache2-mod-php.postinst.extra | 48 + libphp-embed.dirs.extra | 1 + libphp-embed.install.extra | 1 + libphp-embed.postinst.extra | 6 + libphp-embed.postrm.extra | 6 + libphp-embed.prerm.extra | 3 + patches/0001-libtool_fixes.patch | 21 + patches/0002-debian_quirks.patch | 143 ++ patches/0003-php-5.4.9-phpinfo.patch | 38 + patches/0004-extension_api.patch | 66 + patches/0005-php.ini_securitynotes.patch | 34 + ...-use-of-the-system-timezone-database.patch | 675 ++++++++ .../0007-strcmp_null-OnUpdateErrorLog.patch | 25 + patches/0008-qdbm-is-usr_include_qdbm.patch | 23 + patches/0009-session_save_path.patch | 35 + ...0010-php-fpm-man-section-and-cleanup.patch | 48 + patches/0011-fpm-config.patch | 37 + patches/0012-php-fpm-sysconfdir.patch | 21 + patches/0013-lp564920-fix-big-files.patch | 27 + ...4-temporary-path-fixes-for-multiarch.patch | 54 + patches/0015-hurd-noptrace.patch | 24 + patches/0016-php-5.3.3-macropen.patch | 55 + patches/0017-php-5.2.4-embed.patch | 21 + patches/0018-php-fpm-m68k.patch | 60 + ...-expose_all_built_and_installed_apis.patch | 43 + patches/0020-Use-system-timezone.patch | 43 + .../0021-php-fpm-do-reload-on-SIGHUP.patch | 67 + patches/0022-php-5.4.8-ldap_r.patch | 25 + patches/0023-php-5.4.9-fixheader.patch | 24 + patches/0024-php-5.6.0-noNO.patch | 53 + patches/0025-php-5.6.0-oldpcre.patch | 39 + ...pdbg-to-explicitly-link-with-libedit.patch | 21 + ...TALL_ROOT-into-phar.phar-exec-stanza.patch | 21 + ...bdir-datadir-into-EXPANDED_LIBDIR-DA.patch | 24 + ...ate-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch | 23 + ...tall-php7-module-directly-to-APXS_LI.patch | 34 + patches/0031-libtool2.2.patch | 33 + ...ude-all-libtool-files-from-phpize.m4.patch | 23 + ...opy-config.guess-config.sub-ltmain.s.patch | 42 + patches/0034-Show-packaging-credits.patch | 210 +++ ...inting-credits-buffer-larger-than-4k.patch | 44 + ...credits-buffer-file-descriptor-too-e.patch | 30 + ...wer-the-OpenSSL-requirement-to-1.0.1.patch | 120 ++ ...of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch | 24 + patches/0039-Update-gcc-func-attr-macro.patch | 30 + ...in-Explicitly-define-the-path-to-sed.patch | 42 + .../0041-Remove-timestamps-from-phar.patch | 38 + ...-detection-in-Zend-arithmetic-with-g.patch | 48 + ...043-Disable-avx-detection-with-gcc-6.patch | 43 + ...4-Disable-garbage-collection-routine.patch | 54 + .../0045-Add-missing-header-includes.patch | 22 + ...-enable-rtld-deepbind-configure-flag.patch | 50 + patches/series | 46 + php-cgi.apache2 | 1 + php-cgi.conf | 34 + php-cgi.dirs.extra | 4 + php-cgi.install.extra | 3 + php-cgi.postinst.extra | 14 + php-cgi.prerm.extra | 4 + php-cli.dirs.extra | 2 + php-cli.install.extra | 6 + php-cli.links | 2 + php-cli.postinst.extra | 7 + php-cli.prerm.extra | 5 + php-common.README.Debian | 184 ++ php-common.dirs.extra | 3 + php-common.docs | 5 + php-common.lintian-overrides.extra | 4 + php-common.preinst.extra | 26 + php-common.substvars.extra | 1 + php-curl.substvars.extra | 1 + php-dev.dirs | 2 + php-dev.files | 6 + php-dev.install | 6 + php-dev.lintian-overrides | 2 + php-dev.postinst | 16 + php-dev.prerm | 12 + php-fpm-checkconf | 9 + php-fpm-reopenlogs | 7 + php-fpm.apache2 | 1 + php-fpm.conf | 34 + php-fpm.dirs.extra | 3 + php-fpm.init | 161 ++ php-fpm.install.extra | 3 + php-fpm.logrotate | 13 + php-fpm.maintscript | 1 + php-fpm.postinst.extra | 22 + php-fpm.prerm.extra | 0 php-fpm.service | 15 + php-fpm.tmpfile | 2 + php-module.bug-control.in | 1 + php-module.bug-script.in | 20 + php-module.control.in | 22 + php-module.dirs.in | 3 + php-module.ini.in | 3 + php-module.lintian-overrides.in | 2 + php-module.postinst.in | 36 + php-module.postrm.in | 56 + php-module.preinst.in | 39 + php-module.prerm.in | 9 + php-module.substvars.in | 1 + php-module.triggers.in | 3 + php-phpdbg.dirs.extra | 2 + php-phpdbg.install.extra | 2 + php-phpdbg.postinst.extra | 5 + php-phpdbg.prerm.extra | 3 + php-sapi.bug-control | 1 + php-sapi.bug-script | 23 + php-sapi.dirs | 4 + php-sapi.install | 2 + php-sapi.lintian-overrides | 27 + php-sapi.postinst | 35 + php-sapi.postrm | 40 + php-sapi.prerm | 29 + php-sapi.triggers | 2 + php-snmp.substvars.extra | 1 + php-xml.postinst.extra | 7 + php-xml.substvars.extra | 2 + php.bug-control | 1 + php.conf | 27 + php.load | 3 + phpapi | 1 + phpdbg.1 | 59 + prepare-files | 33 + rules | 615 +++++++ rules.d/ext-bcmath.mk | 6 + rules.d/ext-bz2.mk | 6 + rules.d/ext-common.mk | 24 + rules.d/ext-curl.mk | 6 + rules.d/ext-dba.mk | 13 + rules.d/ext-enchant.mk | 6 + rules.d/ext-gd.mk | 8 + rules.d/ext-gmp.mk | 6 + rules.d/ext-interbase.mk | 8 + rules.d/ext-intl.mk | 6 + rules.d/ext-ldap.mk | 7 + rules.d/ext-mbstring.mk | 9 + rules.d/ext-mysql.mk | 10 + rules.d/ext-odbc.mk | 7 + rules.d/ext-pgsql.mk | 7 + rules.d/ext-readline.mk | 6 + rules.d/ext-snmp.mk | 6 + rules.d/ext-soap.mk | 8 + rules.d/ext-sqlite3.mk | 7 + rules.d/ext-sybase.mk | 6 + rules.d/ext-tidy.mk | 6 + rules.d/ext-xml.mk | 13 + rules.d/ext-zip.mk | 7 + rules.d/opcache.mk | 10 + rules.d/prepare-fpm-pools.mk | 43 + sedsed | 3 + source.lintian-overrides | 3 + source.lintian-overrides.in | 3 + source/format | 1 + source/include-binaries | 1 + tests.in/cgi | 32 + tests.in/cli | 12 + tests.in/control | 21 + tests.in/fpm | 32 + tests.in/mod-php | 38 + tests/cgi | 32 + tests/cli | 12 + tests/control | 21 + tests/fpm | 32 + tests/mod-php | 38 + upstream/signing-key.asc | 212 +++ watch | 3 + 180 files changed, 8728 insertions(+) create mode 100644 PEAR-Builder-print-info-about-php-dev.patch create mode 100644 README.Debian.security create mode 100644 README.source create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 control.in create mode 100644 copyright create mode 100644 freexian-dists create mode 100644 gbp.conf create mode 100644 libapache2-mod-php.apache2 create mode 100644 libapache2-mod-php.dirs.extra create mode 100755 libapache2-mod-php.install.extra create mode 100644 libapache2-mod-php.postinst.extra create mode 100644 libphp-embed.dirs.extra create mode 100644 libphp-embed.install.extra create mode 100644 libphp-embed.postinst.extra create mode 100644 libphp-embed.postrm.extra create mode 100644 libphp-embed.prerm.extra create mode 100644 patches/0001-libtool_fixes.patch create mode 100644 patches/0002-debian_quirks.patch create mode 100644 patches/0003-php-5.4.9-phpinfo.patch create mode 100644 patches/0004-extension_api.patch create mode 100644 patches/0005-php.ini_securitynotes.patch create mode 100644 patches/0006-Add-support-for-use-of-the-system-timezone-database.patch create mode 100644 patches/0007-strcmp_null-OnUpdateErrorLog.patch create mode 100644 patches/0008-qdbm-is-usr_include_qdbm.patch create mode 100644 patches/0009-session_save_path.patch create mode 100644 patches/0010-php-fpm-man-section-and-cleanup.patch create mode 100644 patches/0011-fpm-config.patch create mode 100644 patches/0012-php-fpm-sysconfdir.patch create mode 100644 patches/0013-lp564920-fix-big-files.patch create mode 100644 patches/0014-temporary-path-fixes-for-multiarch.patch create mode 100644 patches/0015-hurd-noptrace.patch create mode 100644 patches/0016-php-5.3.3-macropen.patch create mode 100644 patches/0017-php-5.2.4-embed.patch create mode 100644 patches/0018-php-fpm-m68k.patch create mode 100644 patches/0019-expose_all_built_and_installed_apis.patch create mode 100644 patches/0020-Use-system-timezone.patch create mode 100644 patches/0021-php-fpm-do-reload-on-SIGHUP.patch create mode 100644 patches/0022-php-5.4.8-ldap_r.patch create mode 100644 patches/0023-php-5.4.9-fixheader.patch create mode 100644 patches/0024-php-5.6.0-noNO.patch create mode 100644 patches/0025-php-5.6.0-oldpcre.patch create mode 100644 patches/0026-hack-phpdbg-to-explicitly-link-with-libedit.patch create mode 100644 patches/0027-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch create mode 100644 patches/0028-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch create mode 100644 patches/0029-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch create mode 100644 patches/0030-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch create mode 100644 patches/0031-libtool2.2.patch create mode 100644 patches/0032-Include-all-libtool-files-from-phpize.m4.patch create mode 100644 patches/0033-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch create mode 100644 patches/0034-Show-packaging-credits.patch create mode 100644 patches/0035-Allow-printing-credits-buffer-larger-than-4k.patch create mode 100644 patches/0036-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch create mode 100644 patches/0037-Lower-the-OpenSSL-requirement-to-1.0.1.patch create mode 100644 patches/0038-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch create mode 100644 patches/0039-Update-gcc-func-attr-macro.patch create mode 100644 patches/0040-scripts-php-.in-Explicitly-define-the-path-to-sed.patch create mode 100644 patches/0041-Remove-timestamps-from-phar.patch create mode 100644 patches/0042-Disable-assembly-detection-in-Zend-arithmetic-with-g.patch create mode 100644 patches/0043-Disable-avx-detection-with-gcc-6.patch create mode 100644 patches/0044-Disable-garbage-collection-routine.patch create mode 100644 patches/0045-Add-missing-header-includes.patch create mode 100644 patches/0046-Add-enable-rtld-deepbind-configure-flag.patch create mode 100644 patches/series create mode 100644 php-cgi.apache2 create mode 100644 php-cgi.conf create mode 100644 php-cgi.dirs.extra create mode 100644 php-cgi.install.extra create mode 100644 php-cgi.postinst.extra create mode 100644 php-cgi.prerm.extra create mode 100644 php-cli.dirs.extra create mode 100644 php-cli.install.extra create mode 100644 php-cli.links create mode 100644 php-cli.postinst.extra create mode 100644 php-cli.prerm.extra create mode 100644 php-common.README.Debian create mode 100644 php-common.dirs.extra create mode 100644 php-common.docs create mode 100644 php-common.lintian-overrides.extra create mode 100644 php-common.preinst.extra create mode 100644 php-common.substvars.extra create mode 100644 php-curl.substvars.extra create mode 100644 php-dev.dirs create mode 100644 php-dev.files create mode 100644 php-dev.install create mode 100644 php-dev.lintian-overrides create mode 100644 php-dev.postinst create mode 100644 php-dev.prerm create mode 100644 php-fpm-checkconf create mode 100644 php-fpm-reopenlogs create mode 100644 php-fpm.apache2 create mode 100644 php-fpm.conf create mode 100644 php-fpm.dirs.extra create mode 100644 php-fpm.init create mode 100644 php-fpm.install.extra create mode 100644 php-fpm.logrotate create mode 100644 php-fpm.maintscript create mode 100644 php-fpm.postinst.extra create mode 100644 php-fpm.prerm.extra create mode 100644 php-fpm.service create mode 100644 php-fpm.tmpfile create mode 100644 php-module.bug-control.in create mode 100755 php-module.bug-script.in create mode 100644 php-module.control.in create mode 100644 php-module.dirs.in create mode 100644 php-module.ini.in create mode 100644 php-module.lintian-overrides.in create mode 100644 php-module.postinst.in create mode 100644 php-module.postrm.in create mode 100644 php-module.preinst.in create mode 100644 php-module.prerm.in create mode 100644 php-module.substvars.in create mode 100644 php-module.triggers.in create mode 100644 php-phpdbg.dirs.extra create mode 100644 php-phpdbg.install.extra create mode 100644 php-phpdbg.postinst.extra create mode 100644 php-phpdbg.prerm.extra create mode 100644 php-sapi.bug-control create mode 100755 php-sapi.bug-script create mode 100644 php-sapi.dirs create mode 100644 php-sapi.install create mode 100644 php-sapi.lintian-overrides create mode 100644 php-sapi.postinst create mode 100644 php-sapi.postrm create mode 100644 php-sapi.prerm create mode 100644 php-sapi.triggers create mode 100644 php-snmp.substvars.extra create mode 100644 php-xml.postinst.extra create mode 100644 php-xml.substvars.extra create mode 100644 php.bug-control create mode 100644 php.conf create mode 100644 php.load create mode 100644 phpapi create mode 100644 phpdbg.1 create mode 100644 prepare-files create mode 100755 rules create mode 100644 rules.d/ext-bcmath.mk create mode 100644 rules.d/ext-bz2.mk create mode 100644 rules.d/ext-common.mk create mode 100644 rules.d/ext-curl.mk create mode 100644 rules.d/ext-dba.mk create mode 100644 rules.d/ext-enchant.mk create mode 100644 rules.d/ext-gd.mk create mode 100644 rules.d/ext-gmp.mk create mode 100644 rules.d/ext-interbase.mk create mode 100644 rules.d/ext-intl.mk create mode 100644 rules.d/ext-ldap.mk create mode 100644 rules.d/ext-mbstring.mk create mode 100644 rules.d/ext-mysql.mk create mode 100644 rules.d/ext-odbc.mk create mode 100644 rules.d/ext-pgsql.mk create mode 100644 rules.d/ext-readline.mk create mode 100644 rules.d/ext-snmp.mk create mode 100644 rules.d/ext-soap.mk create mode 100644 rules.d/ext-sqlite3.mk create mode 100644 rules.d/ext-sybase.mk create mode 100644 rules.d/ext-tidy.mk create mode 100644 rules.d/ext-xml.mk create mode 100644 rules.d/ext-zip.mk create mode 100644 rules.d/opcache.mk create mode 100644 rules.d/prepare-fpm-pools.mk create mode 100755 sedsed create mode 100644 source.lintian-overrides create mode 100644 source.lintian-overrides.in create mode 100644 source/format create mode 100644 source/include-binaries create mode 100644 tests.in/cgi create mode 100644 tests.in/cli create mode 100644 tests.in/control create mode 100644 tests.in/fpm create mode 100644 tests.in/mod-php create mode 100644 tests/cgi create mode 100644 tests/cli create mode 100644 tests/control create mode 100644 tests/fpm create mode 100644 tests/mod-php create mode 100644 upstream/signing-key.asc create mode 100644 watch diff --git a/PEAR-Builder-print-info-about-php-dev.patch b/PEAR-Builder-print-info-about-php-dev.patch new file mode 100644 index 00000000..95d41633 --- /dev/null +++ b/PEAR-Builder-print-info-about-php-dev.patch @@ -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 index 00000000..e75c57b1 --- /dev/null +++ b/README.Debian.security @@ -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 index 00000000..bd56f405 --- /dev/null +++ b/README.source @@ -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: +" " + +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ý , Tue, 27 Nov 2012 17:01:53 +0100 diff --git a/changelog b/changelog new file mode 100644 index 00000000..64649af3 --- /dev/null +++ b/changelog @@ -0,0 +1,1507 @@ +php8.4 (8.4.11-1) unstable; urgency=medium + + * New upstream version 8.4.11 + + -- Ondřej Surý Sun, 03 Aug 2025 09:32:21 +0200 + +php8.4 (8.4.10-1) unstable; urgency=medium + + * Set PHP_BUILD_PROVIDER to Debian with option to override this from + shell environment + * New upstream version 8.4.10 + + -- Ondřej Surý Thu, 03 Jul 2025 14:35:27 +0200 + +php8.4 (8.4.8-1) unstable; urgency=medium + + * Move setting ICU_CXXFLAGS to the right place in d/rules + * Use ICU >= 75 version to determine the need for C++11 or C++17 + * New upstream version 8.4.8 + + -- Ondřej Surý Sat, 07 Jun 2025 16:22:04 +0200 + +php8.4 (8.4.7-1) unstable; urgency=medium + + * New upstream version 8.4.7 + + -- Ondřej Surý Fri, 09 May 2025 08:06:27 +0200 + +php8.4 (8.4.6-2) unstable; urgency=medium + + * Remove libxmltok1-dev from Build-Depends (Closes: #871826) + + -- Ondřej Surý Mon, 14 Apr 2025 18:59:47 +0200 + +php8.4 (8.4.6-1) unstable; urgency=medium + + * New upstream version 8.4.6 + + -- Ondřej Surý Fri, 11 Apr 2025 03:47:19 +0200 + +php8.4 (8.4.5-1) unstable; urgency=medium + + * New upstream version 8.4.5 + - [CVE-2024-11235]: Reference counting in php_request_shutdown + causes Use-After-Free. + - [CVE-2025-1219]: libxml streams use wrong `content-type` header + when requesting a redirected resource. + - [CVE-2025-1736]: Stream HTTP wrapper header check might omit + basic auth header. + - [CVE-2025-1861]: Stream HTTP wrapper truncate redirect location + to 1024 bytes. + - [CVE-2025-1734]: Streams HTTP wrapper does not fail for headers + without colon. + - [CVE-2025-1217]: Header parser of `http` stream wrapper does not + handle folded headers. + + -- Ondřej Surý Thu, 13 Mar 2025 16:28:14 +0100 + +php8.4 (8.4.4-1) unstable; urgency=medium + + * New upstream version 8.4.4 + + -- Ondřej Surý Sat, 15 Feb 2025 09:51:15 +0100 + +php8.4 (8.4.3-1) unstable; urgency=medium + + * New upstream version 8.4.3 + * Remove the C++11 compatibility patch (Closes: #1092329) + + -- Ondřej Surý Sun, 19 Jan 2025 14:35:15 +0100 + +php8.4 (8.4.2-1) unstable; urgency=medium + + * Add --enable-rtld-deepbind configure flag, disable it by default + except for apache (Closes: #1089097) + * New upstream version 8.4.2 + + -- Ondřej Surý Tue, 24 Dec 2024 06:58:15 +0100 + +php8.4 (8.4.1-6) unstable; urgency=medium + + * Bump php-common dependency to >= 2:95~ + + -- Ondřej Surý Wed, 04 Dec 2024 12:17:25 +0100 + +php8.4 (8.4.1-5) unstable; urgency=medium + + * Remove the /usr/lib/libphp.so symbolic link if unowned + (Closes: #1035798) + + -- Ondřej Surý Mon, 02 Dec 2024 08:28:50 +0100 + +php8.4 (8.4.1-4) unstable; urgency=medium + + * Upload to unstable. + + -- Ondřej Surý Wed, 27 Nov 2024 13:57:13 +0100 + +php8.4 (8.4.1-3) experimental; urgency=medium + + * Revert "ext/gmp: gmp_pow fix FPE with large values" patch + + -- Ondřej Surý Mon, 25 Nov 2024 18:17:44 +0100 + +php8.4 (8.4.1-2) experimental; urgency=medium + + * Fix GH-16870: gmp_pow(64, 11) throws overflow exception + + -- Ondřej Surý Thu, 21 Nov 2024 15:37:00 +0100 + +php8.4 (8.4.1-1) experimental; urgency=medium + + * New upstream version 8.4.1 + + -- Ondřej Surý Thu, 21 Nov 2024 14:21:13 +0100 + +php8.4 (8.4.0~rc4-1) experimental; urgency=medium + + * New upstream version 8.4.0~rc4 + + -- Ondřej Surý Sat, 16 Nov 2024 10:40:32 +0100 + +php8.4 (8.4.0~rc3-1) experimental; urgency=medium + + * New upstream version 8.4.0~rc3 + + -- Ondřej Surý Wed, 30 Oct 2024 12:23:46 +0100 + +php8.4 (8.4.0~rc1-2) experimental; urgency=medium + + * Bump required versions for several build-dependencies + + -- Ondřej Surý Wed, 02 Oct 2024 11:50:27 +0200 + +php8.4 (8.4.0~rc1-1) experimental; urgency=medium + + * New upstream version 8.4.0~rc1 + * Bump PHP API number to 20240924 + + -- Ondřej Surý Fri, 27 Sep 2024 05:39:51 +0200 + +php8.4 (8.4.0~beta5-1) experimental; urgency=medium + + * New upstream version 8.4.0~beta5 + + -- Ondřej Surý Sat, 14 Sep 2024 13:40:48 +0200 + +php8.4 (8.4.0~beta4-1) experimental; urgency=medium + + * New upstream version 8.4.0~beta4 + + -- Ondřej Surý Fri, 30 Aug 2024 11:14:08 +0200 + +php8.4 (8.4.0~beta3-1) experimental; urgency=medium + + * New upstream version 8.4.0~beta3 + + -- Ondřej Surý Tue, 27 Aug 2024 05:20:02 +0200 + +php8.4 (8.4.0~alpha4-1) experimental; urgency=medium + + * New upstream version 8.4.0~alpha4 + + -- Ondřej Surý Fri, 02 Aug 2024 18:03:15 +0200 + +php8.4 (8.4.0~alpha2-1) experimental; urgency=medium + + * New upstream version 8.4.0~alpha2 + * Update d/watch to use qa.php.net site + + -- Ondřej Surý Sat, 20 Jul 2024 21:07:00 +0200 + +php8.4 (8.4.0~alpha1-1) experimental; urgency=medium + + * Update upstream signing keys for PHP 8.4 + * New upstream version 8.4.0~alpha1 + * The IMAP extension has been unbundled and moved to PECL. + * The pspell extension has been unbundled and moved to PECL. + * Bump phpapi to 20230901 + + -- Ondřej Surý Sat, 06 Jul 2024 07:48:05 +0200 + +php8.3 (8.3.9-1) experimental; urgency=medium + + * Add Restart=on-failure to the systemd service file + * New upstream version 8.3.9 + * Remove the patch that fixed GH-14480 (merged upstream) + + -- Ondřej Surý Fri, 05 Jul 2024 13:48:48 +0200 + +php8.3 (8.3.8-2) experimental; urgency=medium + + * Fix GH-14480: Method visibility issue introduced in version 8.3.8 (#14484) + + -- Ondřej Surý Sat, 08 Jun 2024 22:27:05 +0200 + +php8.3 (8.3.8-1) experimental; urgency=medium + + * New upstream version 8.3.8 + + [CVE-2024-4577]: Bypass of CVE-2012-1823, Argument Injection in + PHP-CGI. + + [CVE-2024-5458]: Filter bypass in filter_var FILTER_VALIDATE_URL. + + [CVE-2024-5585]: Bypass of CVE-2024-1874. + + -- Ondřej Surý Thu, 06 Jun 2024 17:16:55 +0200 + +php8.3 (8.3.7-2) experimental; urgency=medium + + * Fix the php-config mangling script in configure embeds the options in + a single quote + + -- Ondřej Surý Thu, 23 May 2024 12:29:30 +0200 + +php8.3 (8.3.7-1) experimental; urgency=medium + + * New upstream version 8.3.7 + + -- Ondřej Surý Mon, 13 May 2024 17:25:50 +0200 + +php8.3 (8.3.6-1) experimental; urgency=medium + + * New upstream version 8.3.6 + + -- Ondřej Surý Thu, 11 Apr 2024 22:16:27 +0200 + +php8.3 (8.3.4-1) experimental; urgency=medium + + [ Ondřej Surý ] + * New upstream version 8.3.4 + * Just don't set PHP extra version at all - it makes a little + sense when we are just updating upstream versions + * Remove hardcoded dependency on libmagic1 (Closes: #1065985) + + [ Andrey Rakhmatullin ] + * Fix FTBFS with -Werror=implicit-function-declaration (Closes: #1066234). + + -- Ondřej Surý Sat, 16 Mar 2024 09:31:56 +0100 + +php8.3 (8.3.3-1) experimental; urgency=medium + + * New upstream version 8.3.3 + + -- Ondřej Surý Thu, 15 Feb 2024 19:30:31 +0100 + +php8.3 (8.3.2-1) experimental; urgency=medium + + [ Ondřej Surý ] + * New upstream version 8.3.2 + + [ Athos Ribeiro ] + * Fix PHP_EXTRA_VERSION setting + * Test the PHP_EXTRA_VERSION setting + * Move disabling the upstream GC routine to a patch (Closes: #831752) + + -- Ondřej Surý Sat, 20 Jan 2024 14:05:31 +0100 + +php8.3 (8.3.1-1) experimental; urgency=medium + + * New upstream version 8.3.1 + + -- Ondřej Surý Thu, 21 Dec 2023 21:05:27 +0100 + +php8.3 (8.3.0-5) experimental; urgency=medium + + * Disable avx512vbmi detection with gcc < 6 + + -- Ondřej Surý Tue, 05 Dec 2023 08:12:00 +0100 + +php8.3 (8.3.0-4) experimental; urgency=medium + + * Disable AVX detection with GCC < 6 + + -- Ondřej Surý Mon, 04 Dec 2023 19:54:57 +0100 + +php8.3 (8.3.0-3) experimental; urgency=medium + + * Also disable avx detection with older compilers + + -- Ondřej Surý Sun, 03 Dec 2023 08:59:08 +0100 + +php8.3 (8.3.0-2) experimental; urgency=medium + + * We also have to disable assembly code with gcc 4.9 on i386. + + -- Ondřej Surý Sat, 02 Dec 2023 22:10:03 +0100 + +php8.3 (8.3.0-1) experimental; urgency=medium + + * New upstream version 8.3.0 + + -- Ondřej Surý Fri, 24 Nov 2023 09:03:44 +0100 + +php8.3 (8.3.0~rc5-1) experimental; urgency=medium + + * New upstream version 8.3.0~rc5 + + -- Ondřej Surý Thu, 26 Oct 2023 08:55:54 +0200 + +php8.3 (8.3.0~rc3-1) experimental; urgency=medium + + * Reintroduce patch to copy config.guess, config.sub, and ltmain.sh + * New upstream version 8.3.0~rc3 + + -- Ondřej Surý Fri, 06 Oct 2023 11:18:21 +0200 + +php8.3 (8.3.0~rc1-1) experimental; urgency=medium + + * New upstream version 8.3.0~rc1 + * Bump PHPAPI to 20230831 + + -- Ondřej Surý Sat, 02 Sep 2023 08:28:02 +0200 + +php8.3 (8.3.0~beta3-2) experimental; urgency=medium + + * Disable DTrace as it still FTBFS + + -- Ondřej Surý Tue, 29 Aug 2023 11:19:05 +0200 + +php8.3 (8.3.0~beta3-1) experimental; urgency=medium + + * New upstream version 8.3.0~beta3 + + -- Ondřej Surý Tue, 29 Aug 2023 09:27:19 +0200 + +php8.3 (8.3.0~beta2-1) experimental; urgency=medium + + * New upstream version 8.3.0~beta2 + * Remove DTrace build patch, fixed upstream + * Enable DTrace on all architectures + * Pull patch to fix DTrace enabled build + + -- Ondřej Surý Sun, 20 Aug 2023 13:28:13 +0200 + +php8.3 (8.3.0~alpha3-1) experimental; urgency=medium + + * New upstream version 8.3.0~alpha3 + * Bump PHPAPI to 20220830 + + -- Ondřej Surý Mon, 10 Jul 2023 09:57:19 +0200 + +php8.3 (8.3.0~alpha1-1) experimental; urgency=low + + * New upstream version 8.3.0~alpha1 + + -- Ondřej Surý Fri, 09 Jun 2023 19:15:41 +0200 + +php8.2 (8.2.6-1) unstable; urgency=medium + + * New upstream version 8.2.6 + + -- Ondřej Surý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý Fri, 06 Jan 2023 16:12:40 +0100 + +php8.2 (8.2.0-4) unstable; urgency=medium + + * Upload to unstable + + -- Ondřej Surý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý Sat, 03 Apr 2021 16:19:27 +0200 + +php8.0 (8.0.3-2) unstable; urgency=medium + + * Update the packaging credits + + -- Ondřej Surý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý 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ý Thu, 06 Jul 2017 13:50:44 +0200 diff --git a/compat b/compat new file mode 100644 index 00000000..f599e28b --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 00000000..10a0a2cd --- /dev/null +++ b/control @@ -0,0 +1,842 @@ +Source: php8.4 +Section: php +Priority: optional +Maintainer: Debian PHP Maintainers +Uploaders: Ondřej Surý , + Lior Kaplan +Build-Depends: apache2-bin (>= 2.4), + 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, + 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 (>= 50.1), + 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 (>= 10.0), + libqdbm-dev, + libsasl2-dev, + libsnmp-dev, + libsodium-dev, + libsqlite3-dev (>= 3.7.7), + libssl-dev (>= 1.1.1), + libsystemd-dev [linux-any], + libtidy-dev (>= 1:5.2.0), + libtool (>= 2.2), + libwebp-dev, + libwrap0-dev, + libxml2-dev (>= 2.9.4), + libxslt1-dev (>= 1.0.18), + libzip-dev (>= 1.0.0), + locales-all | language-pack-de, + netbase, + netcat-openbsd, + re2c, + systemtap-sdt-dev, + tzdata, + unixodbc-dev, + zlib1g-dev (>= 1.2.11) +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.4 +Vcs-Browser: https://salsa.debian.org/php-team/php/-/tree/debian/main/8.4 +Homepage: http://www.php.net/ + +Package: libapache2-mod-php8.4 +Section: httpd +Architecture: any +Depends: media-types | mime-support, + php8.4-cli, + php8.4-common (= ${binary:Version}), + php8.4-opcache, + tzdata, + ucf, + ${misc:Depends}, + ${shlibs:Depends} +Provides: libapache2-mod-php, + php-json, + php8.4-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.4-embed +Architecture: any +Depends: media-types | mime-support, + php8.4-cli, + php8.4-common (= ${binary:Version}), + php8.4-opcache, + tzdata, + ucf, + ${misc:Depends}, + ${shlibs:Depends} +Provides: libphp-embed, + php-json, + php8.4-json, + ${php:Provides} +Suggests: php-pear +Description: HTML-embedded scripting language (Embedded SAPI library) + This package provides the library /usr/lib/libphp8.4.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.4 +Architecture: all +Depends: libapache2-mod-php8.4 | php8.4-fpm | php8.4-cgi, + php8.4-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.4-cgi +Architecture: any +Depends: media-types | mime-support, + php8.4-cli, + php8.4-common (= ${binary:Version}), + php8.4-opcache, + tzdata, + ucf, + ${misc:Depends}, + ${shlibs:Depends} +Provides: php-cgi, + php-json, + php8.4-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.4-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.4-cli +Architecture: any +Depends: libedit2 (>= 2.11-20080614-4), + media-types | mime-support, + php8.4-common (= ${binary:Version}), + php8.4-opcache, + php8.4-readline, + tzdata, + ucf, + ${misc:Depends}, + ${shlibs:Depends} +Provides: php-cli, + php-json, + php8.4-json, + ${php:Provides} +Suggests: php-pear +Description: command-line interpreter for the PHP scripting language + This package provides the /usr/bin/php8.4 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.4-dev +Depends: autoconf (>= 2.63), + automake (>= 1.11), + libpcre2-dev (>= 10.30), + libssl-dev, + php8.4-cli (>= ${binary:Version}), + php8.4-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.4 module development + This package provides the files from the PHP8.4 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.4-fpm +Architecture: any +Depends: media-types | mime-support, + php8.4-cli, + php8.4-common (= ${binary:Version}), + php8.4-opcache, + procps, + systemd | systemd-tmpfiles, + tzdata, + ucf, + ${misc:Depends}, + ${shlibs:Depends} +Provides: php-fpm, + php-json, + php8.4-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.4 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.4-phpdbg +Architecture: any +Depends: media-types | mime-support, + php8.4-cli, + php8.4-common (= ${binary:Version}), + php8.4-opcache, + tzdata, + ucf, + ${misc:Depends}, + ${shlibs:Depends} +Provides: php-json, + php-phpdbg, + php8.4-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.4-xsl +Architecture: all +Depends: php8.4-common, + php8.4-xml, + ${misc:Depends} +Description: XSL module for PHP (dummy) + This package is a transitional dummy package and can be safely + removed. + +Package: php8.4-bcmath +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-bz2 +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-common +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-curl +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-dba +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-enchant +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-gd +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-gmp +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-interbase +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-intl +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-ldap +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-mbstring +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-mysql +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-odbc +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-opcache +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-pgsql +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-readline +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-snmp +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-soap +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-sqlite3 +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-sybase +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-tidy +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-xml +Architecture: any +Depends: php-common (>= 2:95~), + 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.4-zip +Architecture: any +Depends: php-common (>= 2:95~), + 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 index 00000000..48144511 --- /dev/null +++ b/control.in @@ -0,0 +1,290 @@ +Source: php@PHP_VERSION@ +Section: php +Priority: optional +Maintainer: Debian PHP Maintainers +Uploaders: Ondřej Surý , + Lior Kaplan +Build-Depends: apache2-bin (>= 2.4), + 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, + 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 (>= 50.1), + 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 (>= 10.0), + libqdbm-dev, + libsasl2-dev, + libsnmp-dev, + libsodium-dev, + libsqlite3-dev (>= 3.7.7), + libssl-dev (>= 1.1.1), + libsystemd-dev [linux-any], + libtidy-dev (>= 1:5.2.0), + libtool (>= 2.2), + libwebp-dev, + libwrap0-dev, + libxml2-dev (>= 2.9.4), + libxslt1-dev (>= 1.0.18), + libzip-dev (>= 1.0.0), + locales-all | language-pack-de, + netbase, + netcat-openbsd, + re2c, + systemtap-sdt-dev, + tzdata, + unixodbc-dev, + zlib1g-dev (>= 1.2.11) +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: 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: 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: 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), + 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: 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: 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 index 00000000..3ffd5951 --- /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 + 1997-2006 The PHP Group + 2004 The PEAR Group + 2001-2015 The PEAR developers + 2004-2005 Michael Wallner + 2004-2008 Greg Beaver + Alexander Merz + Baba Buehler + Bertrand Mansion + David C. Morse + Hannes Magnusson + Hans Lellelid + Helgi Þormar Þorbjörnsson + Ian Eure + Mark Wiesemann + Martin Jansen + Moritz Heidkamp + Paul M. Jones + Pierre-Alain Joye + Sara Golemon + Stephan Schmidt + Sterling Hughes + Stig Bakken + Tatsuhiko Miyagawa + Tomas V. V. Cox + Vincent Blavet + Wez Furlong + 1997-2008 Vincent Blavet + 2003 Sérgio Gonçalves Carvalho + 2003-2008 Stephan Schmidt + 2008 Chuck Burgess +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 +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ý +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 + 1999-2002, Philip Warner + 2000-2002, Maurice Szmurlo + 2000-2002, Johan Van den Brande + 2000-2002, Doug Becker + 2000-2009, Pierre-Alain Joye +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 +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 + ". + . + 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 + ". + . + 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/freexian-dists b/freexian-dists new file mode 100644 index 00000000..3101ed8d --- /dev/null +++ b/freexian-dists @@ -0,0 +1,4 @@ +DISTS=${DISTS//bionic} +DISTS=${DISTS//xenial} +DISTS=${DISTS//jessie} +DISTS=${DISTS//stretch} diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 00000000..fe9b1b52 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,10 @@ +[DEFAULT] +debian-branch = debian/main/8.4 +upstream-branch = upstream/8.4 +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 index 00000000..1d5f6b60 --- /dev/null +++ b/libapache2-mod-php.apache2 @@ -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 index 00000000..1204391b --- /dev/null +++ b/libapache2-mod-php.dirs.extra @@ -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 index 00000000..3a6a7805 --- /dev/null +++ b/libapache2-mod-php.install.extra @@ -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 index 00000000..923e475f --- /dev/null +++ b/libapache2-mod-php.postinst.extra @@ -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 index 00000000..0bf940b3 --- /dev/null +++ b/libphp-embed.dirs.extra @@ -0,0 +1 @@ +/usr/lib diff --git a/libphp-embed.install.extra b/libphp-embed.install.extra new file mode 100644 index 00000000..f11d27a7 --- /dev/null +++ b/libphp-embed.install.extra @@ -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 index 00000000..f7190859 --- /dev/null +++ b/libphp-embed.postinst.extra @@ -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 index 00000000..8807e49f --- /dev/null +++ b/libphp-embed.postrm.extra @@ -0,0 +1,6 @@ +if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then + if [ -L /usr/lib/libphp.so ] && [ "$(realpath -L /usr/lib/libphp.so)" = /usr/lib/libphp@PHP_VERSION@.so ]; then + rm -f /usr/lib/libphp.so + fi + ldconfig +fi diff --git a/libphp-embed.prerm.extra b/libphp-embed.prerm.extra new file mode 100644 index 00000000..02518d5e --- /dev/null +++ b/libphp-embed.prerm.extra @@ -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 index 00000000..e506f2c5 --- /dev/null +++ b/patches/0001-libtool_fixes.patch @@ -0,0 +1,21 @@ +From: Debian PHP Maintainers +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 49d7ffe..8b42844 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1573,8 +1573,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 index 00000000..4dec0ea8 --- /dev/null +++ b/patches/0002-debian_quirks.patch @@ -0,0 +1,143 @@ +From: Debian PHP Maintainers +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 | 6 +++--- + scripts/phpize.in | 4 ++-- + 7 files changed, 20 insertions(+), 15 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 8b42844..b3572d2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1130,7 +1130,7 @@ AS_VAR_IF([PHP_CLI], [no], [with_pear=no]) + 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]) + +@@ -1158,6 +1158,8 @@ AS_VAR_IF([PHP_PEAR], [no],, [ + [pear]) + ]) + ++PEAR_INSTALLDIR=/usr/share/php ++ + dnl Configuring Zend and TSRM. + dnl ---------------------------------------------------------------------------- + +@@ -1323,6 +1325,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) ++ + AC_ARG_VAR([EXTENSION_DIR], + [Default directory for dynamically loadable PHP extensions. If left empty, it + is determined automatically. Can be overridden using the PHP 'extension_dir' +diff --git a/php.ini-development b/php.ini-development +index 6e5064d..d912779 100644 +--- a/php.ini-development ++++ b/php.ini-development +@@ -736,7 +736,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 c62faf5..cb3363b 100644 +--- a/php.ini-production ++++ b/php.ini-production +@@ -738,7 +738,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 e8ac382..acd292c 100644 +--- a/sapi/cli/php.1.in ++++ b/sapi/cli/php.1.in +@@ -374,13 +374,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 cf56852..82aa641 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 87c2008..59a6b14 100644 +--- a/scripts/php-config.in ++++ b/scripts/php-config.in +@@ -6,10 +6,10 @@ datarootdir="@datarootdir@" + exec_prefix="@exec_prefix@" + version="@PHP_VERSION@" + vernum="@PHP_VERSION_ID@" +-include_dir="@includedir@/php" ++include_dir="@includedir@/php/@DEBIAN_PHP_API@" + lib_dir="@orig_libdir@" +-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@" ++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@" + man_dir=`eval echo @mandir@` +diff --git a/scripts/phpize.in b/scripts/phpize.in +index 2f11765..30080ef 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 index 00000000..9b97e9b1 --- /dev/null +++ b/patches/0003-php-5.4.9-phpinfo.patch @@ -0,0 +1,38 @@ +From: Debian PHP Maintainers +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 4ed33f3..ab1f302 100644 +--- a/ext/standard/info.c ++++ b/ext/standard/info.c +@@ -816,9 +816,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 ac7cabd..6a98638 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 => %r(.+?)%r +-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 index 00000000..9ba22199 --- /dev/null +++ b/patches/0004-extension_api.patch @@ -0,0 +1,66 @@ +From: Debian PHP Maintainers +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 b3572d2..1ade7e7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1327,12 +1327,14 @@ ZEND_MODULE_API_NO=$($EGREP '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modu + + AC_SUBST(ZEND_MODULE_API_NO) + ++DEBIAN_PHP_API=$ZEND_MODULE_API_NO ++ + AC_ARG_VAR([EXTENSION_DIR], + [Default directory for dynamically loadable PHP extensions. If left empty, it + is determined automatically. Can be overridden using the PHP 'extension_dir' + INI directive.]) + AS_VAR_IF([EXTENSION_DIR],, [ +- extbasedir=$ZEND_MODULE_API_NO ++ extbasedir=$DEBIAN_PHP_API + AS_VAR_IF([oldstyleextdir], [yes], [ + AS_VAR_IF([PHP_DEBUG], [1], [part1=debug], [part1=no-debug]) + AS_VAR_IF([PHP_THREAD_SAFETY], [yes], [part2=zts], [part2=non-zts]) +@@ -1456,6 +1458,7 @@ PHP_SUBST([CPPFLAGS]) + PHP_SUBST([CXX]) + PHP_SUBST([CXXFLAGS]) + PHP_SUBST([CXXFLAGS_CLEAN]) ++PHP_SUBST_OLD(DEBIAN_PHP_API) + PHP_SUBST_OLD([EXTENSION_DIR]) + PHP_SUBST([EXTRA_LDFLAGS]) + PHP_SUBST([EXTRA_LDFLAGS_PROGRAM]) +diff --git a/scripts/php-config.in b/scripts/php-config.in +index 59a6b14..3d4e0f1 100644 +--- a/scripts/php-config.in ++++ b/scripts/php-config.in +@@ -20,6 +20,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@" + php_embed_type="@PHP_EMBED_TYPE@" +@@ -72,6 +73,8 @@ case "$1" in + echo $php_embed_lib;; + --php-binary) + echo $php_binary;; ++--phpapi) ++ echo $phpapi;; + --php-sapis) + echo $php_sapis;; + --configure-options) +@@ -101,6 +104,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 index 00000000..661abba9 --- /dev/null +++ b/patches/0005-php.ini_securitynotes.patch @@ -0,0 +1,34 @@ +From: Debian PHP Maintainers +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 d912779..6509686 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. +@@ -1289,7 +1295,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-Add-support-for-use-of-the-system-timezone-database.patch b/patches/0006-Add-support-for-use-of-the-system-timezone-database.patch new file mode 100644 index 00000000..8823fa61 --- /dev/null +++ b/patches/0006-Add-support-for-use-of-the-system-timezone-database.patch @@ -0,0 +1,675 @@ +From: Debian PHP Maintainers +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 5af6be1..bac3004 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 ++ + AX_CHECK_COMPILE_FLAG([-Wno-implicit-fallthrough], + [PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -Wno-implicit-fallthrough"],, + [-Werror]) +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 ++#include ++#include ++#include ++#include ++ ++#include "php_scandir.h" ++ ++#else + #define TIMELIB_SUPPORTS_V2DATA + #define TIMELIB_SUPPORT_SLIM_FILE + #include "timezonedb.h" ++#endif ++ ++#include + + #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/0007-strcmp_null-OnUpdateErrorLog.patch b/patches/0007-strcmp_null-OnUpdateErrorLog.patch new file mode 100644 index 00000000..186f6270 --- /dev/null +++ b/patches/0007-strcmp_null-OnUpdateErrorLog.patch @@ -0,0 +1,25 @@ +From: Debian PHP Maintainers +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-- ++ ++--EXPECT-- diff --git a/patches/0008-qdbm-is-usr_include_qdbm.patch b/patches/0008-qdbm-is-usr_include_qdbm.patch new file mode 100644 index 00000000..5069f1a4 --- /dev/null +++ b/patches/0008-qdbm-is-usr_include_qdbm.patch @@ -0,0 +1,23 @@ +From: Debian PHP Maintainers +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 6d8867e..17cddfc 100644 +--- a/ext/dba/config.m4 ++++ b/ext/dba/config.m4 +@@ -166,6 +166,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/0009-session_save_path.patch b/patches/0009-session_save_path.patch new file mode 100644 index 00000000..0e97026b --- /dev/null +++ b/patches/0009-session_save_path.patch @@ -0,0 +1,35 @@ +From: Debian PHP Maintainers +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 70e1673..1c69ca1 100644 +--- a/ext/session/session.c ++++ b/ext/session/session.c +@@ -897,7 +897,7 @@ static PHP_INI_MH(OnUpdateRefererCheck) + + /* {{{ 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 cb3363b..e0c83c8 100644 +--- a/php.ini-production ++++ b/php.ini-production +@@ -1291,7 +1291,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/0010-php-fpm-man-section-and-cleanup.patch b/patches/0010-php-fpm-man-section-and-cleanup.patch new file mode 100644 index 00000000..3646c135 --- /dev/null +++ b/patches/0010-php-fpm-man-section-and-cleanup.patch @@ -0,0 +1,48 @@ +From: Debian PHP Maintainers +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 941b911..533d5a7 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 + For a more or less complete description of PHP-FPM look here: + .PD 0 diff --git a/patches/0011-fpm-config.patch b/patches/0011-fpm-config.patch new file mode 100644 index 00000000..1be805b4 --- /dev/null +++ b/patches/0011-fpm-config.patch @@ -0,0 +1,37 @@ +From: Debian PHP Maintainers +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 f1b48ad..f24a64c 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 +@@ -139,4 +141,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/0012-php-fpm-sysconfdir.patch b/patches/0012-php-fpm-sysconfdir.patch new file mode 100644 index 00000000..8e7dcab5 --- /dev/null +++ b/patches/0012-php-fpm-sysconfdir.patch @@ -0,0 +1,21 @@ +From: Debian PHP Maintainers +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 ac4343b..88c505d 100644 +--- a/sapi/fpm/fpm/fpm_conf.c ++++ b/sapi/fpm/fpm/fpm_conf.c +@@ -1852,7 +1852,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/0013-lp564920-fix-big-files.patch b/patches/0013-lp564920-fix-big-files.patch new file mode 100644 index 00000000..4f9e3db1 --- /dev/null +++ b/patches/0013-lp564920-fix-big-files.patch @@ -0,0 +1,27 @@ +From: Debian PHP Maintainers +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 85771ea..aaa8518 100644 +--- a/main/streams/plain_wrapper.c ++++ b/main/streams/plain_wrapper.c +@@ -767,7 +767,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/0014-temporary-path-fixes-for-multiarch.patch b/patches/0014-temporary-path-fixes-for-multiarch.patch new file mode 100644 index 00000000..b5f9d174 --- /dev/null +++ b/patches/0014-temporary-path-fixes-for-multiarch.patch @@ -0,0 +1,54 @@ +From: Debian PHP Maintainers +Date: Sat, 2 May 2015 10:26:54 +0200 +Subject: temporary-path-fixes-for-multiarch + +--- + ext/dba/config.m4 | 2 +- + ext/ldap/config.m4 | 4 ++-- + ext/pdo_dblib/config.m4 | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ext/dba/config.m4 b/ext/dba/config.m4 +index 17cddfc..b9b3423 100644 +--- a/ext/dba/config.m4 ++++ b/ext/dba/config.m4 +@@ -336,7 +336,7 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[ + AS_VAR_IF([THIS_INCLUDE],, + [AC_MSG_ERROR([DBA: Could not find necessary header file(s).])]) + for LIB in m4_normalize([$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([#include "$THIS_INCLUDE"], +diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4 +index bb57d63..295cdf5 100644 +--- a/ext/ldap/config.m4 ++++ b/ext/ldap/config.m4 +@@ -72,11 +72,11 @@ if test "$PHP_LDAP" != "no"; then + AH_TEMPLATE([HAVE_ORALDAP], + [Define to 1 if the ldap extension uses the Oracle Instant Client.]) + +- 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 4cfea50..423623f 100644 +--- a/ext/pdo_dblib/config.m4 ++++ b/ext/pdo_dblib/config.m4 +@@ -22,7 +22,7 @@ if test "$PHP_PDO_DBLIB" != "no"; then + AC_MSG_ERROR([Directory $PHP_PDO_DBLIB is not a FreeTDS installation directory]) + 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/0015-hurd-noptrace.patch b/patches/0015-hurd-noptrace.patch new file mode 100644 index 00000000..68f1a5c6 --- /dev/null +++ b/patches/0015-hurd-noptrace.patch @@ -0,0 +1,24 @@ +From: Debian PHP Maintainers +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 4d4952e..4441600 100644 +--- a/sapi/fpm/config.m4 ++++ b/sapi/fpm/config.m4 +@@ -85,6 +85,11 @@ AC_DEFUN([PHP_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/0016-php-5.3.3-macropen.patch b/patches/0016-php-5.3.3-macropen.patch new file mode 100644 index 00000000..0f5c46b0 --- /dev/null +++ b/patches/0016-php-5.3.3-macropen.patch @@ -0,0 +1,55 @@ +From: Debian PHP Maintainers +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 7982e42..c4b988c 100644 +--- a/ext/dba/dba.c ++++ b/ext/dba/dba.c +@@ -917,7 +917,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, bool persistent) + } + } + +- if (error || hptr->open(connection->info, &error) == FAILURE) { ++ if (error || (hptr->open)(connection->info, &error) == FAILURE) { + if (EXPECTED(!EG(exception))) { + if (error) { + php_error_docref(NULL, E_WARNING, "Driver initialization failed for handler: %s: %s", hptr->name, error); +diff --git a/ext/dba/dba_db3.c b/ext/dba/dba_db3.c +index 8efc8d4..a59121e 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, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { ++ (err=(dbp->open)(dbp, 0, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { + #else +- (err=dbp->open(dbp, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { ++ (err=(dbp->open)(dbp, ZSTR_VAL(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 f64db55..5798fb1 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, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { ++ (err=(dbp->open)(dbp, 0, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { + #else +- (err=dbp->open(dbp, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { ++ (err=(dbp->open)(dbp, ZSTR_VAL(info->path), NULL, type, gmode, filemode)) == 0) { + #endif + dba_db4_data *data; + diff --git a/patches/0017-php-5.2.4-embed.patch b/patches/0017-php-5.2.4-embed.patch new file mode 100644 index 00000000..81cceadd --- /dev/null +++ b/patches/0017-php-5.2.4-embed.patch @@ -0,0 +1,21 @@ +From: Debian PHP Maintainers +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 2bb5ed4..6cdcb9c 100644 +--- a/sapi/embed/config.m4 ++++ b/sapi/embed/config.m4 +@@ -15,7 +15,7 @@ if test "$PHP_EMBED" != "no"; then + SAPI_SHARED="libs/libphp.dylib" + PHP_EMBED_TYPE=shared-dylib + ], [PHP_EMBED_TYPE=shared]) +- INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(orig_libdir); \$(INSTALL) -m 0755 $SAPI_SHARED \$(INSTALL_ROOT)\$(orig_libdir)" ++ INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(orig_libdir); \$(LIBTOOL) --mode=install \$(INSTALL) -m 0755 $SAPI_SHARED \$(INSTALL_ROOT)\$(orig_libdir)" + ], + [static], [ + LIBPHP_CFLAGS="-static" diff --git a/patches/0018-php-fpm-m68k.patch b/patches/0018-php-fpm-m68k.patch new file mode 100644 index 00000000..782a7225 --- /dev/null +++ b/patches/0018-php-fpm-m68k.patch @@ -0,0 +1,60 @@ +From: Debian PHP Maintainers +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 02009f6..3d43007 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 ++#include ++#endif ++ + #include + #include + +@@ -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/0019-expose_all_built_and_installed_apis.patch b/patches/0019-expose_all_built_and_installed_apis.patch new file mode 100644 index 00000000..0687d907 --- /dev/null +++ b/patches/0019-expose_all_built_and_installed_apis.patch @@ -0,0 +1,43 @@ +From: Debian PHP Maintainers +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 9944ac9..3114207 100644 +--- a/scripts/man1/php-config.1.in ++++ b/scripts/man1/php-config.1.in +@@ -52,7 +52,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 3d4e0f1..9e415da 100644 +--- a/scripts/php-config.in ++++ b/scripts/php-config.in +@@ -19,12 +19,15 @@ 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@" + php_embed_type="@PHP_EMBED_TYPE@" + ++# 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/0020-Use-system-timezone.patch b/patches/0020-Use-system-timezone.patch new file mode 100644 index 00000000..ca36e2ef --- /dev/null +++ b/patches/0020-Use-system-timezone.patch @@ -0,0 +1,43 @@ +From: Debian PHP Maintainers +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 94ffd97..172e2f0 100644 +--- a/ext/date/php_date.c ++++ b/ext/date/php_date.c +@@ -566,6 +566,23 @@ static const 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/0021-php-fpm-do-reload-on-SIGHUP.patch b/patches/0021-php-fpm-do-reload-on-SIGHUP.patch new file mode 100644 index 00000000..878a324a --- /dev/null +++ b/patches/0021-php-fpm-do-reload-on-SIGHUP.patch @@ -0,0 +1,67 @@ +From: Debian PHP Maintainers +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 1ccf2c9..30d638a 100644 +--- a/sapi/fpm/fpm/fpm_events.c ++++ b/sapi/fpm/fpm/fpm_events.c +@@ -131,6 +131,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 aca7c9e..5481e55 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 533d5a7..64ee547 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/0022-php-5.4.8-ldap_r.patch b/patches/0022-php-5.4.8-ldap_r.patch new file mode 100644 index 00000000..506ae393 --- /dev/null +++ b/patches/0022-php-5.4.8-ldap_r.patch @@ -0,0 +1,25 @@ +From: Debian PHP Maintainers +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 295cdf5..19a38cb 100644 +--- a/ext/ldap/config.m4 ++++ b/ext/ldap/config.m4 +@@ -72,7 +72,10 @@ if test "$PHP_LDAP" != "no"; then + AH_TEMPLATE([HAVE_ORALDAP], + [Define to 1 if the ldap extension uses the Oracle Instant Client.]) + +- 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/0023-php-5.4.9-fixheader.patch b/patches/0023-php-5.4.9-fixheader.patch new file mode 100644 index 00000000..4bf4f717 --- /dev/null +++ b/patches/0023-php-5.4.9-fixheader.patch @@ -0,0 +1,24 @@ +From: Debian PHP Maintainers +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 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1ade7e7..6b0d761 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1398,8 +1398,8 @@ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS" + + AC_ARG_VAR([PHP_UNAME], + [System information (defaults to the 'uname -a' output)]) +-AS_VAR_IF([PHP_UNAME],, [PHP_UNAME=$(uname -a | xargs)]) +-AC_DEFINE_UNQUOTED([PHP_UNAME], ["$PHP_UNAME"], [The 'uname -a' output.]) ++AS_VAR_IF([PHP_UNAME],, [PHP_UNAME=$(uname | xargs)]) ++AC_DEFINE_UNQUOTED([PHP_UNAME], ["$PHP_UNAME"], [The 'uname' output.]) + + PHP_OS=$(uname | xargs) + AC_DEFINE_UNQUOTED([PHP_OS], ["$PHP_OS"], [The 'uname' output.]) diff --git a/patches/0024-php-5.6.0-noNO.patch b/patches/0024-php-5.6.0-noNO.patch new file mode 100644 index 00000000..ae739e76 --- /dev/null +++ b/patches/0024-php-5.6.0-noNO.patch @@ -0,0 +1,53 @@ +From: Debian PHP Maintainers +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/0025-php-5.6.0-oldpcre.patch b/patches/0025-php-5.6.0-oldpcre.patch new file mode 100644 index 00000000..a28f92f2 --- /dev/null +++ b/patches/0025-php-5.6.0-oldpcre.patch @@ -0,0 +1,39 @@ +From: Debian PHP Maintainers +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/0026-hack-phpdbg-to-explicitly-link-with-libedit.patch b/patches/0026-hack-phpdbg-to-explicitly-link-with-libedit.patch new file mode 100644 index 00000000..7bac3b1a --- /dev/null +++ b/patches/0026-hack-phpdbg-to-explicitly-link-with-libedit.patch @@ -0,0 +1,21 @@ +From: Debian PHP Maintainers +Date: Sat, 2 May 2015 10:26:57 +0200 +Subject: hack-phpdbg-to-explicitly-link-with-libedit + +--- + sapi/phpdbg/config.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sapi/phpdbg/config.m4 b/sapi/phpdbg/config.m4 +index 55f8fa3..612ed26 100644 +--- a/sapi/phpdbg/config.m4 ++++ b/sapi/phpdbg/config.m4 +@@ -32,7 +32,7 @@ if test "$PHP_PHPDBG" != "no"; then + if test "$PHP_READLINE" != "no" || test "$PHP_LIBEDIT" != "no"; then + AC_DEFINE([HAVE_PHPDBG_READLINE], [1], + [Define to 1 if the phpdbg SAPI has libedit/readline integration.]) +- PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS" ++ PHPDBG_EXTRA_LIBS="-ledit -ltermcap" + AC_MSG_RESULT([ok]) + else + AC_MSG_RESULT([readline is not available]) diff --git a/patches/0027-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch b/patches/0027-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch new file mode 100644 index 00000000..1b1a04cf --- /dev/null +++ b/patches/0027-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch @@ -0,0 +1,21 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 cedde76..58d8337 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/0028-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch b/patches/0028-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch new file mode 100644 index 00000000..cd5ec1e7 --- /dev/null +++ b/patches/0028-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch @@ -0,0 +1,24 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 6b0d761..fc7f49e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1358,9 +1358,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/0029-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch b/patches/0029-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch new file mode 100644 index 00000000..3db03504 --- /dev/null +++ b/patches/0029-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch @@ -0,0 +1,23 @@ +From: Svante Signell +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 + ++#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/0030-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch b/patches/0030-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch new file mode 100644 index 00000000..516d3585 --- /dev/null +++ b/patches/0030-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch @@ -0,0 +1,34 @@ +From: Thijs Kinkhorst +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 e335721..e754933 100644 +--- a/sapi/apache2handler/config.m4 ++++ b/sapi/apache2handler/config.m4 +@@ -69,18 +69,9 @@ if test "$PHP_APXS2" != "no"; then + [AC_MSG_ERROR([Please note that Apache version >= 2.4 is required])]) + + 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/0031-libtool2.2.patch b/patches/0031-libtool2.2.patch new file mode 100644 index 00000000..92ed5c44 --- /dev/null +++ b/patches/0031-libtool2.2.patch @@ -0,0 +1,33 @@ +From: Debian PHP Maintainers +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 30080ef..0874c3e 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/ \ +@@ -149,6 +151,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/0032-Include-all-libtool-files-from-phpize.m4.patch b/patches/0032-Include-all-libtool-files-from-phpize.m4.patch new file mode 100644 index 00000000..d7402d19 --- /dev/null +++ b/patches/0032-Include-all-libtool-files-from-phpize.m4.patch @@ -0,0 +1,23 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 be7065b..6fb4f33 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/0033-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch b/patches/0033-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch new file mode 100644 index 00000000..1975e49d --- /dev/null +++ b/patches/0033-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch @@ -0,0 +1,42 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 0874c3e..66086aa 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/ \ +@@ -152,6 +159,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/0034-Show-packaging-credits.patch b/patches/0034-Show-packaging-credits.patch new file mode 100644 index 00000000..21e2220f --- /dev/null +++ b/patches/0034-Show-packaging-credits.patch @@ -0,0 +1,210 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 ++#include ++#include ++#include ++#include ++ + #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("\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(""); ++ PUTS("DEB.SURY.ORG, an Ondřej Surý project"); ++ PUTS("\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("

PHP Vendor

\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(""); ++ ++ PUTS("This PHP version is maintained by " ++ "Freexian SARL as part of " ++ "their PHP LTS 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."); ++ } ++ PUTS("\n"); ++ } else { ++ PUTS("This PHP version is maintained by " ++ "Freexian SARL as part of " ++ "their PHP LTS 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 ."); ++ } ++ } ++ 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 ab1f302..a7dd7d9 100644 +--- a/ext/standard/info.c ++++ b/ext/standard/info.c +@@ -770,6 +770,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 380d2b6..7d11343 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/0035-Allow-printing-credits-buffer-larger-than-4k.patch b/patches/0035-Allow-printing-credits-buffer-larger-than-4k.patch new file mode 100644 index 00000000..a174117f --- /dev/null +++ b/patches/0035-Allow-printing-credits-buffer-larger-than-4k.patch @@ -0,0 +1,44 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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/0036-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch b/patches/0036-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch new file mode 100644 index 00000000..f9b84d3e --- /dev/null +++ b/patches/0036-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch @@ -0,0 +1,30 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 ."); + } + } ++ if (fd > 0) { ++ close(fd); ++ } + php_info_print_table_end(); + break; + case DEBIAN: diff --git a/patches/0037-Lower-the-OpenSSL-requirement-to-1.0.1.patch b/patches/0037-Lower-the-OpenSSL-requirement-to-1.0.1.patch new file mode 100644 index 00000000..7b950339 --- /dev/null +++ b/patches/0037-Lower-the-OpenSSL-requirement-to-1.0.1.patch @@ -0,0 +1,120 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 d8a5cbf..74a9989 100644 +--- a/build/php.m4 ++++ b/build/php.m4 +@@ -1808,7 +1808,7 @@ dnl + AC_DEFUN([PHP_SETUP_OPENSSL],[ + found_openssl=no + +- PKG_CHECK_MODULES([OPENSSL], [openssl >= 1.1.1], [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 70ecb0a..62a92aa 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.1.1)])]) ++ [Include OpenSSL support (requires OpenSSL >= 1.0.1)])]) + + PHP_ARG_WITH([system-ciphers], + [whether to use system default cipher list instead of hardcoded value], +diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c +index 8a0d58d..5a47c09 100644 +--- a/ext/openssl/openssl.c ++++ b/ext/openssl/openssl.c +@@ -96,7 +96,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 + + /* the OPENSSL_EC_EXPLICIT_CURVE value was added +@@ -1293,6 +1293,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 + #if PHP_OPENSSL_API_VERSION >= 0x30000 && defined(LOAD_OPENSSL_LEGACY_PROVIDER) +diff --git a/ext/openssl/php_openssl.h b/ext/openssl/php_openssl.h +index 134081f..f4ded12 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 < 0x30000000L ++#if OPENSSL_VERSION_NUMBER < 0x10002000L ++#define PHP_OPENSSL_API_VERSION 0x10001 ++#elif OPENSSL_VERSION_NUMBER < 0x30000000L + #define PHP_OPENSSL_API_VERSION 0x10100 + #elif OPENSSL_VERSION_NUMBER < 0x30200000L + #define PHP_OPENSSL_API_VERSION 0x30000 +diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c +index ec41379..ebc8313 100644 +--- a/ext/openssl/xp_ssl.c ++++ b/ext/openssl/xp_ssl.c +@@ -33,8 +33,11 @@ + #include + #include + #include ++ ++#if OPENSSL_VERSION_NUMBER >= 0x10002000L + #include + #include ++#endif + + #ifdef PHP_WIN32 + #include "win32/winutil.h" +@@ -86,8 +89,10 @@ + + #ifndef OPENSSL_NO_TLSEXT + #define HAVE_TLS_SNI 1 ++#if OPENSSL_VERSION_NUMBER >= 0x10002000L + #define HAVE_TLS_ALPN 1 + #endif ++#endif + + #ifndef LIBRESSL_VERSION_NUMBER + #define HAVE_SEC_LEVEL 1 +@@ -1312,8 +1317,12 @@ static zend_result php_openssl_set_server_ecdh_curve(php_stream *stream, SSL_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/0038-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch b/patches/0038-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch new file mode 100644 index 00000000..29dd8819 --- /dev/null +++ b/patches/0038-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch @@ -0,0 +1,24 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +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 fc7f49e..cfc1305 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -122,6 +122,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 ++ + AS_VAR_IF([cross_compiling], [yes], + [AC_CHECK_PROGS([BUILD_CC], [gcc clang c99 c89 cc cl], [none]) + AC_MSG_CHECKING([for native build C compiler]) diff --git a/patches/0039-Update-gcc-func-attr-macro.patch b/patches/0039-Update-gcc-func-attr-macro.patch new file mode 100644 index 00000000..4f562ca7 --- /dev/null +++ b/patches/0039-Update-gcc-func-attr-macro.patch @@ -0,0 +1,30 @@ +From: Ming Chen +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 79f3eef..4633093 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/0040-scripts-php-.in-Explicitly-define-the-path-to-sed.patch b/patches/0040-scripts-php-.in-Explicitly-define-the-path-to-sed.patch new file mode 100644 index 00000000..7d1bbc0f --- /dev/null +++ b/patches/0040-scripts-php-.in-Explicitly-define-the-path-to-sed.patch @@ -0,0 +1,42 @@ +From: Vagrant Cascadian +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 9e415da..5fb2a92 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 66086aa..a7c9f9d 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/0041-Remove-timestamps-from-phar.patch b/patches/0041-Remove-timestamps-from-phar.patch new file mode 100644 index 00000000..3318af51 --- /dev/null +++ b/patches/0041-Remove-timestamps-from-phar.patch @@ -0,0 +1,38 @@ +From: Vagrant Cascadian +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 7650478..f807094 100644 +--- a/ext/phar/phar.c ++++ b/ext/phar/phar.c +@@ -2965,7 +2965,7 @@ void phar_flush_ex(phar_archive_data *phar, zend_string *user_stub, bool is_defa + 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 e49e15a..91dd417 100644 +--- a/ext/phar/util.c ++++ b/ext/phar/util.c +@@ -701,7 +701,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/0042-Disable-assembly-detection-in-Zend-arithmetic-with-g.patch b/patches/0042-Disable-assembly-detection-in-Zend-arithmetic-with-g.patch new file mode 100644 index 00000000..cac45324 --- /dev/null +++ b/patches/0042-Disable-assembly-detection-in-Zend-arithmetic-with-g.patch @@ -0,0 +1,48 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +Date: Sat, 2 Dec 2023 22:09:36 +0100 +Subject: Disable assembly detection in Zend arithmetic with gcc < 5 + +--- + Zend/zend_operators.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h +index 6a3d54a..057f911 100644 +--- a/Zend/zend_operators.h ++++ b/Zend/zend_operators.h +@@ -528,7 +528,7 @@ ZEND_API void zend_reset_lc_ctype_locale(void); + + static zend_always_inline void fast_long_increment_function(zval *op1) + { +-#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) ++#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && (__GNUC__ > 4) + __asm__ goto( + "addl $1,(%0)\n\t" + "jo %l1\n" +@@ -591,7 +591,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL + + static zend_always_inline void fast_long_decrement_function(zval *op1) + { +-#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) ++#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && (__GNUC__ > 4) + __asm__ goto( + "subl $1,(%0)\n\t" + "jo %l1\n" +@@ -654,7 +654,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL + + static zend_always_inline void fast_long_add_function(zval *result, zval *op1, zval *op2) + { +-#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) ++#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && (__GNUC__ > 4) + __asm__ goto( + "movl (%1), %%eax\n\t" + "addl (%2), %%eax\n\t" +@@ -744,7 +744,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL + + static zend_always_inline void fast_long_sub_function(zval *result, zval *op1, zval *op2) + { +-#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) ++#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && (__GNUC__ > 4) + __asm__ goto( + "movl (%1), %%eax\n\t" + "subl (%2), %%eax\n\t" diff --git a/patches/0043-Disable-avx-detection-with-gcc-6.patch b/patches/0043-Disable-avx-detection-with-gcc-6.patch new file mode 100644 index 00000000..ca7be1c9 --- /dev/null +++ b/patches/0043-Disable-avx-detection-with-gcc-6.patch @@ -0,0 +1,43 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= +Date: Sat, 2 Dec 2023 22:09:36 +0100 +Subject: Disable avx detection with gcc < 6 + +--- + Zend/zend_cpuinfo.h | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/Zend/zend_cpuinfo.h b/Zend/zend_cpuinfo.h +index 7e53ba6..7e4a076 100644 +--- a/Zend/zend_cpuinfo.h ++++ b/Zend/zend_cpuinfo.h +@@ -215,9 +215,14 @@ static inline int zend_cpu_supports_avx512(void) { + #ifdef PHP_HAVE_BUILTIN_CPU_INIT + __builtin_cpu_init(); + #endif +- return __builtin_cpu_supports("avx512f") && __builtin_cpu_supports("avx512dq") +- && __builtin_cpu_supports("avx512cd") && __builtin_cpu_supports("avx512bw") +- && __builtin_cpu_supports("avx512vl"); ++ return __builtin_cpu_supports("avx512f") ++#if (__GNUC__ > 5) ++ && __builtin_cpu_supports("avx512dq") ++ && __builtin_cpu_supports("avx512cd") ++ && __builtin_cpu_supports("avx512bw") ++ && __builtin_cpu_supports("avx512vl") ++#endif ++ ; + } + #endif + +@@ -227,7 +232,11 @@ static inline int zend_cpu_supports_avx512_vbmi(void) { + #ifdef PHP_HAVE_BUILTIN_CPU_INIT + __builtin_cpu_init(); + #endif +- return zend_cpu_supports_avx512() && __builtin_cpu_supports("avx512vbmi"); ++ return zend_cpu_supports_avx512() ++#if (__GNUC__ > 5) ++ && __builtin_cpu_supports("avx512vbmi") ++#endif ++ ; + } + #endif + diff --git a/patches/0044-Disable-garbage-collection-routine.patch b/patches/0044-Disable-garbage-collection-routine.patch new file mode 100644 index 00000000..68e31e93 --- /dev/null +++ b/patches/0044-Disable-garbage-collection-routine.patch @@ -0,0 +1,54 @@ +From: Athos Ribeiro +Date: Sat, 20 Jan 2024 14:01:24 +0100 +Subject: Disable GC in ini files + +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831752 +Bug-Ubuntu: https://bugs.launchpad.net/debian/+source/php7.3/+bug/1772915 +Forwarded: not-needed +Last-Update: 2024-01-19 + +This is disabled in the Debian packages due to the strict permissions on +/var/lib/php. Instead, GC is performed through /etc/cron.d/php, which uses the +session.gc_maxlifetime setting. +Last-Update: 2024-01-19 +--- + php.ini-development | 7 ++++++- + php.ini-production | 7 ++++++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/php.ini-development b/php.ini-development +index 6509686..ef35f3e 100644 +--- a/php.ini-development ++++ b/php.ini-development +@@ -1362,7 +1362,12 @@ session.serialize_handler = php + ; Development Value: 1 + ; Production Value: 1 + ; https://php.net/session.gc-probability +-session.gc_probability = 1 ++; Debian Default Value: 0 ++; This is disabled in the Debian packages due to the strict permissions ++; on /var/lib/php. Instead, GC is performed through /etc/cron.d/php, ++; which uses the session.gc_maxlifetime setting. Please, check ++; /usr/share/doc/php8.3-common/README.Debian.gz for further reference. ++session.gc_probability = 0 + + ; Defines the probability that the 'garbage collection' process is started on every + ; session initialization. The probability is calculated by using gc_probability/gc_divisor, +diff --git a/php.ini-production b/php.ini-production +index e0c83c8..d0ef58b 100644 +--- a/php.ini-production ++++ b/php.ini-production +@@ -1358,7 +1358,12 @@ session.serialize_handler = php + ; Development Value: 1 + ; Production Value: 1 + ; https://php.net/session.gc-probability +-session.gc_probability = 1 ++; Debian Default Value: 0 ++; This is disabled in the Debian packages due to the strict permissions ++; on /var/lib/php. Instead, GC is performed through /etc/cron.d/php, ++; which uses the session.gc_maxlifetime setting. Please, check ++; /usr/share/doc/php8.2-common/README.Debian.gz for further reference. ++session.gc_probability = 0 + + ; Defines the probability that the 'garbage collection' process is started on every + ; session initialization. The probability is calculated by using gc_probability/gc_divisor, diff --git a/patches/0045-Add-missing-header-includes.patch b/patches/0045-Add-missing-header-includes.patch new file mode 100644 index 00000000..f6f34faf --- /dev/null +++ b/patches/0045-Add-missing-header-includes.patch @@ -0,0 +1,22 @@ +From: Andrey Rakhmatullin +Date: Sat, 16 Mar 2024 09:04:24 +0100 +Subject: Add missing header includes. + +Bug-Debian: https://bugs.debian.org/1066234 +Last-Update: 2024-03-15 +--- + ext/standard/credits.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ext/standard/credits.c b/ext/standard/credits.c +index 1103bea..f981b01 100644 +--- a/ext/standard/credits.c ++++ b/ext/standard/credits.c +@@ -24,6 +24,7 @@ + #include "php.h" + #include "info.h" + #include "SAPI.h" ++#include "credits.h" + + #define CREDIT_LINE(module, authors) php_info_print_table_row(2, module, authors) + diff --git a/patches/0046-Add-enable-rtld-deepbind-configure-flag.patch b/patches/0046-Add-enable-rtld-deepbind-configure-flag.patch new file mode 100644 index 00000000..d9478544 --- /dev/null +++ b/patches/0046-Add-enable-rtld-deepbind-configure-flag.patch @@ -0,0 +1,50 @@ +From: Daniil Gentili +Date: Wed, 13 Nov 2024 12:24:29 +0000 +Subject: Add --enable-rtld-deepbind configure flag + +--- + Zend/zend_portability.h | 2 +- + configure.ac | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+), 1 deletion(-) + +diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h +index e419540..44d4daf 100644 +--- a/Zend/zend_portability.h ++++ b/Zend/zend_portability.h +@@ -161,7 +161,7 @@ + + # if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT) + # define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) +-# elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) && !__has_feature(memory_sanitizer) ++# elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) && !__has_feature(memory_sanitizer) && defined(PHP_USE_RTLD_DEEPBIND) + # define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL | RTLD_DEEPBIND) + # else + # define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL) +diff --git a/configure.ac b/configure.ac +index cfc1305..38d4fca 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -867,6 +867,23 @@ AS_VAR_IF([PHP_RTLD_NOW], [yes], + [Define to 1 if 'dlopen()' uses the 'RTLD_NOW' mode flag instead of + 'RTLD_LAZY'.])]) + ++if test "$PHP_SAPI" = "apache2handler"; then ++ PHP_RTLD_DEEPBIND_DEFAULT=yes ++else ++ PHP_RTLD_DEEPBIND_DEFAULT=no ++fi ++ ++PHP_ARG_ENABLE([rtld-deepbind], ++ [whether to dlopen extensions with RTLD_DEEPBIND], ++ [AS_HELP_STRING([--enable-rtld-deepbind], ++ [Use dlopen with RTLD_DEEPBIND])], ++ [$PHP_RTLD_DEEPBIND_DEFAULT], ++ [$PHP_RTLD_DEEPBIND_DEFAULT]) ++ ++if test "$PHP_RTLD_DEEPBIND" = "yes"; then ++ AC_DEFINE(PHP_USE_RTLD_DEEPBIND, 1, [ Use dlopen with RTLD_DEEPBIND ]) ++fi ++ + PHP_ARG_WITH([layout], + [layout of installed files], + [AS_HELP_STRING([--with-layout=TYPE], diff --git a/patches/series b/patches/series new file mode 100644 index 00000000..dccd8b86 --- /dev/null +++ b/patches/series @@ -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-Add-support-for-use-of-the-system-timezone-database.patch +0007-strcmp_null-OnUpdateErrorLog.patch +0008-qdbm-is-usr_include_qdbm.patch +0009-session_save_path.patch +0010-php-fpm-man-section-and-cleanup.patch +0011-fpm-config.patch +0012-php-fpm-sysconfdir.patch +0013-lp564920-fix-big-files.patch +0014-temporary-path-fixes-for-multiarch.patch +0015-hurd-noptrace.patch +0016-php-5.3.3-macropen.patch +0017-php-5.2.4-embed.patch +0018-php-fpm-m68k.patch +0019-expose_all_built_and_installed_apis.patch +0020-Use-system-timezone.patch +0021-php-fpm-do-reload-on-SIGHUP.patch +0022-php-5.4.8-ldap_r.patch +0023-php-5.4.9-fixheader.patch +0024-php-5.6.0-noNO.patch +0025-php-5.6.0-oldpcre.patch +0026-hack-phpdbg-to-explicitly-link-with-libedit.patch +0027-Don-t-put-INSTALL_ROOT-into-phar.phar-exec-stanza.patch +0028-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch +0029-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch +0030-Add-patch-to-install-php7-module-directly-to-APXS_LI.patch +0031-libtool2.2.patch +0032-Include-all-libtool-files-from-phpize.m4.patch +0033-In-phpize-also-copy-config.guess-config.sub-ltmain.s.patch +0034-Show-packaging-credits.patch +0035-Allow-printing-credits-buffer-larger-than-4k.patch +0036-Don-t-close-the-credits-buffer-file-descriptor-too-e.patch +0037-Lower-the-OpenSSL-requirement-to-1.0.1.patch +0038-Override-result-of-AC_PROG_LN_S-to-fix-FTBFS-on-ppc6.patch +0039-Update-gcc-func-attr-macro.patch +0040-scripts-php-.in-Explicitly-define-the-path-to-sed.patch +0041-Remove-timestamps-from-phar.patch +0042-Disable-assembly-detection-in-Zend-arithmetic-with-g.patch +0043-Disable-avx-detection-with-gcc-6.patch +0044-Disable-garbage-collection-routine.patch +0045-Add-missing-header-includes.patch +0046-Add-enable-rtld-deepbind-configure-flag.patch diff --git a/php-cgi.apache2 b/php-cgi.apache2 new file mode 100644 index 00000000..38de4e1d --- /dev/null +++ b/php-cgi.apache2 @@ -0,0 +1 @@ +conf debian/php@PHP_VERSION@-cgi.conf diff --git a/php-cgi.conf b/php-cgi.conf new file mode 100644 index 00000000..9f4da4b2 --- /dev/null +++ b/php-cgi.conf @@ -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 + + SetHandler application/x-httpd-php + +# application/x-httpd-php-source 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 + +# Deny access to files without filename (e.g. '.php') + + Require all denied + + +# 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/ +# +# AllowOverride None +# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +# Order allow,deny +# Allow from all +# +#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 index 00000000..4c87a133 --- /dev/null +++ b/php-cgi.dirs.extra @@ -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 index 00000000..50513e0e --- /dev/null +++ b/php-cgi.install.extra @@ -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 index 00000000..792915b6 --- /dev/null +++ b/php-cgi.postinst.extra @@ -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 index 00000000..8803e261 --- /dev/null +++ b/php-cgi.prerm.extra @@ -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 index 00000000..1317f865 --- /dev/null +++ b/php-cli.dirs.extra @@ -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 index 00000000..b32f655b --- /dev/null +++ b/php-cli.install.extra @@ -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 index 00000000..c1a4e9d0 --- /dev/null +++ b/php-cli.links @@ -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 index 00000000..ca4e3255 --- /dev/null +++ b/php-cli.postinst.extra @@ -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 index 00000000..dea3984a --- /dev/null +++ b/php-cli.prerm.extra @@ -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 index 00000000..a4b48241 --- /dev/null +++ b/php-common.README.Debian @@ -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ý , Mon, 1 Aug 2016 11:53:53 +0200 diff --git a/php-common.dirs.extra b/php-common.dirs.extra new file mode 100644 index 00000000..fd84b030 --- /dev/null +++ b/php-common.dirs.extra @@ -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 index 00000000..d371b619 --- /dev/null +++ b/php-common.docs @@ -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 index 00000000..5f9bf7aa --- /dev/null +++ b/php-common.lintian-overrides.extra @@ -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 index 00000000..1836956a --- /dev/null +++ b/php-common.preinst.extra @@ -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 index 00000000..11a9192a --- /dev/null +++ b/php-common.substvars.extra @@ -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 index 00000000..ad655e93 --- /dev/null +++ b/php-curl.substvars.extra @@ -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 index 00000000..9c68fefa --- /dev/null +++ b/php-dev.dirs @@ -0,0 +1,2 @@ +/usr/bin +/usr/share/lintian/overrides diff --git a/php-dev.files b/php-dev.files new file mode 100644 index 00000000..3b8b761c --- /dev/null +++ b/php-dev.files @@ -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 index 00000000..78b1167d --- /dev/null +++ b/php-dev.install @@ -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 index 00000000..91854e96 --- /dev/null +++ b/php-dev.lintian-overrides @@ -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 index 00000000..18ef0f45 --- /dev/null +++ b/php-dev.postinst @@ -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 index 00000000..02bcb00b --- /dev/null +++ b/php-dev.prerm @@ -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 index 00000000..a7effe8a --- /dev/null +++ b/php-fpm-checkconf @@ -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 index 00000000..0a3bc742 --- /dev/null +++ b/php-fpm-reopenlogs @@ -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 index 00000000..54b47230 --- /dev/null +++ b/php-fpm.apache2 @@ -0,0 +1 @@ +conf debian/php@PHP_VERSION@-fpm.conf diff --git a/php-fpm.conf b/php-fpm.conf new file mode 100644 index 00000000..755ecc83 --- /dev/null +++ b/php-fpm.conf @@ -0,0 +1,34 @@ +# Redirect to local php-fpm if mod_php is not available + + + # Enable http authorization headers + + SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 + + + # Using (?:pattern) instead of (pattern) is a small optimization that + # avoid capturing the matching pattern (as $1) which isn't used here + + SetHandler "proxy:unix:/run/php/php@PHP_VERSION@-fpm.sock|fcgi://localhost" + +# 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 +# +# +# SetHandler "proxy:unix:/run/php/php@PHP_VERSION@-fpm.sock|fcgi://localhost" +# +# + + # 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 + + # Deny access to files without filename (e.g. '.php') + + Require all denied + + + diff --git a/php-fpm.dirs.extra b/php-fpm.dirs.extra new file mode 100644 index 00000000..c1381424 --- /dev/null +++ b/php-fpm.dirs.extra @@ -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 index 00000000..865376e5 --- /dev/null +++ b/php-fpm.init @@ -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 + +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 index 00000000..f8038fd0 --- /dev/null +++ b/php-fpm.install.extra @@ -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 index 00000000..cb932054 --- /dev/null +++ b/php-fpm.logrotate @@ -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 index 00000000..6ff500c2 --- /dev/null +++ b/php-fpm.maintscript @@ -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 index 00000000..8e0d74a8 --- /dev/null +++ b/php-fpm.postinst.extra @@ -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 index 00000000..e69de29b diff --git a/php-fpm.service b/php-fpm.service new file mode 100644 index 00000000..c73d73f5 --- /dev/null +++ b/php-fpm.service @@ -0,0 +1,15 @@ +[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 +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/php-fpm.tmpfile b/php-fpm.tmpfile new file mode 100644 index 00000000..1074344e --- /dev/null +++ b/php-fpm.tmpfile @@ -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 index 00000000..2849edad --- /dev/null +++ b/php-module.bug-control.in @@ -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 index 00000000..fcabba47 --- /dev/null +++ b/php-module.bug-script.in @@ -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 index 00000000..ac266b94 --- /dev/null +++ b/php-module.control.in @@ -0,0 +1,22 @@ +Package: @package@ +Architecture: any +Depends: php-common (>= 2:95~), + 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 index 00000000..e1f5a4b2 --- /dev/null +++ b/php-module.dirs.in @@ -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 index 00000000..085c296f --- /dev/null +++ b/php-module.ini.in @@ -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 index 00000000..bf699428 --- /dev/null +++ b/php-module.lintian-overrides.in @@ -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 index 00000000..7991ec34 --- /dev/null +++ b/php-module.postinst.in @@ -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 index 00000000..6564db16 --- /dev/null +++ b/php-module.postrm.in @@ -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 index 00000000..1154b9fa --- /dev/null +++ b/php-module.preinst.in @@ -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 index 00000000..58166c7c --- /dev/null +++ b/php-module.prerm.in @@ -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 index 00000000..33b27123 --- /dev/null +++ b/php-module.substvars.in @@ -0,0 +1 @@ +#EXTRA# diff --git a/php-module.triggers.in b/php-module.triggers.in new file mode 100644 index 00000000..11fa8580 --- /dev/null +++ b/php-module.triggers.in @@ -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 index 00000000..1317f865 --- /dev/null +++ b/php-phpdbg.dirs.extra @@ -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 index 00000000..8790945c --- /dev/null +++ b/php-phpdbg.install.extra @@ -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 index 00000000..87b2d08e --- /dev/null +++ b/php-phpdbg.postinst.extra @@ -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 index 00000000..1bb83246 --- /dev/null +++ b/php-phpdbg.prerm.extra @@ -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 index 00000000..f900d595 --- /dev/null +++ b/php-sapi.bug-control @@ -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 index 00000000..b0c7f485 --- /dev/null +++ b/php-sapi.bug-script @@ -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 index 00000000..8c53b979 --- /dev/null +++ b/php-sapi.dirs @@ -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 index 00000000..18d42181 --- /dev/null +++ b/php-sapi.install @@ -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 index 00000000..a14482c8 --- /dev/null +++ b/php-sapi.lintian-overrides @@ -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 index 00000000..ac6f09fb --- /dev/null +++ b/php-sapi.postinst @@ -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 index 00000000..e4a6dfea --- /dev/null +++ b/php-sapi.postrm @@ -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 index 00000000..91357282 --- /dev/null +++ b/php-sapi.prerm @@ -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 index 00000000..8a0ccc56 --- /dev/null +++ b/php-sapi.triggers @@ -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 index 00000000..8e41a003 --- /dev/null +++ b/php-snmp.substvars.extra @@ -0,0 +1 @@ +php-snmp:Recommends=snmp diff --git a/php-xml.postinst.extra b/php-xml.postinst.extra new file mode 100644 index 00000000..526e8aef --- /dev/null +++ b/php-xml.postinst.extra @@ -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 index 00000000..93fb4dfa --- /dev/null +++ b/php-xml.substvars.extra @@ -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 index 00000000..24f0c5d6 --- /dev/null +++ b/php.bug-control @@ -0,0 +1 @@ +Submit-As: php@PHP_VERSION@-common diff --git a/php.conf b/php.conf new file mode 100644 index 00000000..812eb046 --- /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 + + SetHandler application/x-httpd-php + + + 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 + +# Deny access to files without filename (e.g. '.php') + + Require all denied + + +# Running PHP scripts in user directories is disabled by default +# +# To re-enable PHP in user directories comment the following lines +# (from to .) Do NOT set it to On as it +# prevents .htaccess files from disabling it. + + + php_admin_flag engine Off + + diff --git a/php.load b/php.load new file mode 100644 index 00000000..2ae07665 --- /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 index 00000000..f4255371 --- /dev/null +++ b/phpapi @@ -0,0 +1 @@ +20240924 diff --git a/phpdbg.1 b/phpdbg.1 new file mode 100644 index 00000000..b697fb29 --- /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 index 00000000..e0ef78f2 --- /dev/null +++ b/prepare-files @@ -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 index 00000000..2378b694 --- /dev/null +++ b/rules @@ -0,0 +1,615 @@ +#!/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 PHP_BUILD_PROVIDER ?= Debian + +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}') + +ICU_VERSION := $(shell dpkg -s libicu-dev | sed -ne 's/^Version: \(.*\)$$/\1/p') + +ifeq ($(shell dpkg --compare-versions $(ICU_VERSION) ge 75;echo $$?),0) +export ICU_CXXFLAGS := -std=c++17 +else +export ICU_CXXFLAGS := -std=c++11 +endif + +# 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_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 \ + --disable-dtrace \ + --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_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: + ./buildconf --force + touch prepared-stamp + +unprepared: + dh_testdir + -[ -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'/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;' \ + > debian/$(PHP_COMMON)/usr/lib/php/$(PHP_NAME_VERSION)/php.ini-production.cli + + cat php.ini-development | tr "\t" " " | \ + $(SED) -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@[[:space:]]*'"'"'-ffile-prefix-map=[^'"'"']*'"'"'@@g' \ + -e's@[[:space:]]*'"'"'-fdebug-prefix-map=[^'"'"']*'"'"'@@g' \ + -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/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 index 00000000..6673ced1 --- /dev/null +++ b/rules.d/ext-bcmath.mk @@ -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 index 00000000..1666467e --- /dev/null +++ b/rules.d/ext-bz2.mk @@ -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 index 00000000..3719047d --- /dev/null +++ b/rules.d/ext-common.mk @@ -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 index 00000000..d173ca87 --- /dev/null +++ b/rules.d/ext-curl.mk @@ -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 index 00000000..d557e261 --- /dev/null +++ b/rules.d/ext-dba.mk @@ -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 index 00000000..1200a34c --- /dev/null +++ b/rules.d/ext-enchant.mk @@ -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 index 00000000..07b8ba68 --- /dev/null +++ b/rules.d/ext-gd.mk @@ -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 index 00000000..a5b49daf --- /dev/null +++ b/rules.d/ext-gmp.mk @@ -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-interbase.mk b/rules.d/ext-interbase.mk new file mode 100644 index 00000000..cc1a9637 --- /dev/null +++ b/rules.d/ext-interbase.mk @@ -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 index 00000000..f58f5a49 --- /dev/null +++ b/rules.d/ext-intl.mk @@ -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 index 00000000..da8d40e8 --- /dev/null +++ b/rules.d/ext-ldap.mk @@ -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 index 00000000..6d978c3d --- /dev/null +++ b/rules.d/ext-mbstring.mk @@ -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 index 00000000..c635c5c4 --- /dev/null +++ b/rules.d/ext-mysql.mk @@ -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 index 00000000..0852b1f6 --- /dev/null +++ b/rules.d/ext-odbc.mk @@ -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 index 00000000..1e62a95c --- /dev/null +++ b/rules.d/ext-pgsql.mk @@ -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-readline.mk b/rules.d/ext-readline.mk new file mode 100644 index 00000000..15fe5e76 --- /dev/null +++ b/rules.d/ext-readline.mk @@ -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 index 00000000..d6dce4f1 --- /dev/null +++ b/rules.d/ext-snmp.mk @@ -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 index 00000000..4d374c0b --- /dev/null +++ b/rules.d/ext-soap.mk @@ -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 index 00000000..3bfa20a1 --- /dev/null +++ b/rules.d/ext-sqlite3.mk @@ -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 index 00000000..542398f1 --- /dev/null +++ b/rules.d/ext-sybase.mk @@ -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 index 00000000..2b0c6786 --- /dev/null +++ b/rules.d/ext-tidy.mk @@ -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 index 00000000..edb8b2ef --- /dev/null +++ b/rules.d/ext-xml.mk @@ -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 index 00000000..41405d6c --- /dev/null +++ b/rules.d/ext-zip.mk @@ -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 index 00000000..11d0adf7 --- /dev/null +++ b/rules.d/opcache.mk @@ -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 index 00000000..2a598cf1 --- /dev/null +++ b/rules.d/prepare-fpm-pools.mk @@ -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 index 00000000..60493858 --- /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 index 00000000..d6a26cb4 --- /dev/null +++ b/source.lintian-overrides @@ -0,0 +1,3 @@ +php8.4 source: license-problem-json-evil README.REDIST.BINS +php8.4 source: missing-build-dependency-for-dh_-command dh_systemd_start * +php8.4 source: source-is-missing ext/standard/tests/image/* diff --git a/source.lintian-overrides.in b/source.lintian-overrides.in new file mode 100644 index 00000000..f0c5d564 --- /dev/null +++ b/source.lintian-overrides.in @@ -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 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 00000000..5b6eeea5 --- /dev/null +++ b/source/include-binaries @@ -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 index 00000000..937951f5 --- /dev/null +++ b/tests.in/cgi @@ -0,0 +1,32 @@ +#!/bin/sh +set -e + +# Author: Robie Basak + +# /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 + +# 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 index 00000000..1e38ab97 --- /dev/null +++ b/tests.in/cli @@ -0,0 +1,12 @@ +#!/bin/sh +set -e + +# Author: Robie Basak + +cd "$ADTTMP" +cat > hello.php < +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 index 00000000..706c6c88 --- /dev/null +++ b/tests.in/control @@ -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 index 00000000..dc77c20b --- /dev/null +++ b/tests.in/fpm @@ -0,0 +1,32 @@ +#!/bin/sh +set -e + +# PHP-FPM test based on mod-php test +# Author: Neal Gompa + +# /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 + +# 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 index 00000000..9b822d16 --- /dev/null +++ b/tests.in/mod-php @@ -0,0 +1,38 @@ +#!/bin/sh +set -e + +# Author: Robie Basak + + +# /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 + +# 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 index 00000000..48d810ef --- /dev/null +++ b/tests/cgi @@ -0,0 +1,32 @@ +#!/bin/sh +set -e + +# Author: Robie Basak + +# /etc/apache2/conf-available/php8.4-cgi.conf should exist. + +if [ ! -f /etc/apache2/conf-available/php8.4-cgi.conf ]; then + echo "/etc/apache2/conf-available/php8.4-cgi.conf not found" >&2 + exit 1 +fi + +echo "Action application/x-httpd-php /cgi-bin/php8.4" >> /etc/apache2/conf-available/php8.4-cgi.conf + +cat > /var/www/html/hello.php < +EOT + +# Make sure that any mod_php mechanism is disabled, since we want to get CGI +# mode here. +a2dismod php8.4 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.4 2>/dev/null || true + +a2enmod actions 2>/dev/null || true +a2enmod cgi 2>/dev/null || true +a2enconf php8.4-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 index 00000000..763c4249 --- /dev/null +++ b/tests/cli @@ -0,0 +1,12 @@ +#!/bin/sh +set -e + +# Author: Robie Basak + +cd "$ADTTMP" +cat > hello.php < +EOT + +result=`php8.4 hello.php` +test "$result" = "Hello, world!" diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..edf70a6d --- /dev/null +++ b/tests/control @@ -0,0 +1,21 @@ +Tests: cli +Depends: php8.4-cli, + wget + +Tests: cgi +Depends: apache2, + php8.4-cgi, + wget +Restrictions: needs-root + +Tests: mod-php +Depends: apache2, + libapache2-mod-php8.4, + wget +Restrictions: needs-root + +Tests: fpm +Depends: apache2, + php8.4-fpm, + wget +Restrictions: needs-root diff --git a/tests/fpm b/tests/fpm new file mode 100644 index 00000000..0af5e472 --- /dev/null +++ b/tests/fpm @@ -0,0 +1,32 @@ +#!/bin/sh +set -e + +# PHP-FPM test based on mod-php test +# Author: Neal Gompa + +# /etc/apache2/conf-available/php8.4-fpm.conf should exist. + +if [ ! -f /etc/apache2/conf-available/php8.4-fpm.conf ]; then + echo "/etc/apache2/conf-available/php8.4-fpm.conf not found" >&2 + exit 1 +fi + +cat > /var/www/html/hello.php < +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.4-cgi 2>/dev/null || true + +# Ensure that mod_php is disabled +a2dismod php8.4 2>/dev/null || true + +# php-fpm configuration requires mod_proxy_fcgi +a2enmod proxy_fcgi 2>/dev/null || true +a2enconf php8.4-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 index 00000000..ed7bd5fb --- /dev/null +++ b/tests/mod-php @@ -0,0 +1,38 @@ +#!/bin/sh +set -e + +# Author: Robie Basak + + +# /etc/apache2/mods-available/php8.4.{conf,load} should exist. + +if [ ! -f /etc/apache2/mods-available/php8.4.conf ]; then + echo "/etc/apache2/mods-available/php8.4.conf not found" >&2 + exit 1 +fi + +if [ ! -f /etc/apache2/mods-available/php8.4.load ]; then + echo "/etc/apache2/mods-available/php8.4.load not found" >&2 + exit 1 +fi + + +cat > /var/www/html/hello.php < +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.4-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.4-fpm 2>/dev/null || true + +a2enmod php8.4 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 index 00000000..f7a2b1de --- /dev/null +++ b/upstream/signing-key.asc @@ -0,0 +1,212 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFg4q4YBEAD50HOLDAVpW88rUHnX/TYTCLpqmHMKXPjuf1l3ZEkY3PXF6wqm +qaWWMPeWJFsik3cMebtLQzsgXHl4xDUBQhOOtdfax2ZKBHQmoUknw2dKkqdkVLh8 +Xpu8tw00SmcTiAFVCA2+HOqQ+Drq9NUpnMeJpJZiZu84eZbJBEzgabi0s4jf67NH +7E3ENFb8DRilcM1aNT0rD1xVKR1spMKmBmOoJ/pj5OlWNH34/qdeqIrvKB46/pFE +LH8SRiorYTDhQTaS0PlT3LxRqVWo8+JlgnFIe96p2d7JF1A1DwQUJerRY4789gNY +zjW4fh1tc6jtTE2opbLVfbqujHsxrHFKoBO4CPBcPtzf6TUPxDevvBh9omsd+V5F +W7k/VFIiWFQv0RfQe8nwkNjmA0U3TOX3xKrU+59RU6w+uOuQy564jxg691a7peiQ +2Y90FqIVUlEL9Guf8U9ezp1DGo/UhnRNJcPmSwhYRcKMUV53mDqWQW8p7XXjSqnV +VF3cP9bc94UNAf28kXvnJBMGOZwp19dqD7ws+25WM6qQ7u7qQoGZzSI4Wn0ZaXnF +rXwQXfY4+R20XSDt3oxGP8h08VSz09Xd3C7XV8Eg+0RrTSXVtZruAdcOIE/AWK4a +BpN7yfGlMTfOOoYZa5tPFYf906yE56vtHcfJttJ7CO+kQMIW5PgRVMAE/QARAQAB +tBlFcmljIEEgTWFubiA8ZXJpY0BlYW0ubWU+iQJOBBMBCgAhBQJYOKxcAhsDBQsJ +CAcDBRUKCQgLBRYCAwEAAh4BAheAACEJEGPxWptxU3bKFiEEr9hpH9rt8DvfbkYF +Y/Fam3FTdsr/ShAAxODmai32oTE2V2fmtffhmMiQ+5yHo7dFfG+qzx7sKTpJIvbR +WoY2vMUlNjr+czm5QOugDZu2rYvPajkQY9qO6JeX/y70pL+rIFUR73Lkt0dH60ED +VBUBiRUaFr4ggijjFwcGiFtfV2GE6UqcwKLL5/dMRnQOvXcDAVmW+5+i8R5fXJ2/ +EYOQrXDaMBLllk/Qu5BwCS9a1xt8w0l3BpiYllZzY5SvRd3dIfutKvRTMTrdNMas +DyrYG7OqLwRD7rW4LgT8Qe0WuHCHRXTy3TJQEz2F5s8ThdXUgoi2Gm8qUAn+sqzK +zE5dWj+AnJ9D+rrzRxf/Mz8xe9Z4ZX7LJfWADKXO9xUCGpaoE/ajY/LQvnqgdl1J +mSK8vy27KiDyWRdYD79NTESRfVgUuRZameVi8/JyLIUrkB/Bji98fAX8y859mbFb +hSu/yb1YlUR4YS/PU2Qisp8HwQUPSjJNF9zT9DBmqXtdfV713Yry+xwH3letiyd8 +1D5NzgxJGv3lMqTyusT9NOtHof1WzDQFgRayma8ZwamZ6odKbnFiA8aZQiJFgniJ +YMICkEfbfMrwazgnJ/tLDsFk3UdHC1LNPQ4gvkW4oC2HynsRXEoYb9b7LPwsb1Hr +WYI+SpdBEzW8DZq1bK7hiUvMWI/ufQSoqrPICQxrU14rdb5VQ/K6Gqgi/ru0HUVy +aWMgQSBNYW5uIDxlcmljQGVhbWFubi5jb20+iQJOBBMBCgAhBQJYOKuGAhsDBQsJ +CAcDBRUKCQgLBRYCAwEAAh4BAheAACEJEGPxWptxU3bKFiEEr9hpH9rt8DvfbkYF +Y/Fam3FTdsoUTRAAg2YDJkmQlKRdm0u9Oh2oY+e16UI+ceOaZ0gryfCswM/rNieq +sjiJJP5N0CYTeyOg/RkHQOAUuVft65bjjWSpTHY6LS9XYcYg5mt4StTCib5q9PhW +78gOnkE3tm6Ql5njpcUhio5O9qCGz2FgXJW07pOFSrOePTL4BH3oxQnb0PyNTWXQ +LWo9Sa5XlBwqHgBFauyq7J75HlfD7uyKbQIb4Eu/Ba+5uAPesyeeBWt0D9pA/vy3 +9UXcXgzB80R8mVvqFR/xpDkeo8ce/J2G0BJTNSA0GqqiqdKKlwbYhd3r4LxziWUM +W3hvI+PFtqxZlBLI17wO4GIVqQt6J8tDo9e9gbjPwEVtoNDBt+3ymOdqoGZtlMG6 +6/VEvrtmQMPBY8VVjKDPvupVXhobyJjnj2NLj0a9xhRuJNhX8WGk4Td+U/n1j+Su +OmhVQN9dDhdcorsX2vuB6Wj7sk22JxVhPu9jfZqIWUER6gO6lJTOhP5M2A2xKJc2 +CmwRwZ7OXEc265MJNY7qEzNM0fno4y8JMPJn6+CVimjKHolFPTZW9YbhKwgaG564 +XoypW1GAbesiyhsdIE8Re8mXl6/1BGjXVgjZ/xzTU1grrDobWNX7sbh4+3EdEiUD +QAzuURvW3lyW0Ulfizx4Ofc06ejmgNDlcUILq3EKauoLnD+/jjPxCKZfsUi0HkVy +aWMgQSBNYW5uIDxlcmljQHNpeHRocmVlLm1lPokCUQQTAQoAOwIbAwULCQgHAwUV +CgkICwUWAgMBAAIeAQIXgBYhBK/YaR/a7fA7325GBWPxWptxU3bKBQJbTfHrAhkB +AAoJEGPxWptxU3bK9BkQAJAzmFm25lvXuMoiPiRDAo1qRvdoMgLB+rk0eZQn6Lt5 +0bFZ+6iMRlLilNBLFXDW0uIYO01tTpsItmI1V2LnXaPjOpThvcNQEB14T+5UmfJG +PuRQT/CsoGBewB0A2DCRJi7HhxV9Ex/3z/4ETcr2FipO8seOIL8DOKRqNOa+2H9E +pYI9gE37lKPfU1KtFtM9gHiQH2MkTsXQHe0QQHYnq9nwn0gQXyqjqE2nPm8/Gl6V +5IbyaLeV0AsDh+5zqDcGquTOt1wbT1CPN/Ozloh5NpL/l8MpNbYFLZfzOXtiMRq0 +vxEfWMO5j6GeYQOYD3xvR3VUuByK13XMYa2s43LHeNypeHTFAk27J+bZD5TgtCYS +CVFTxaHqzNZW/w50kDrdwTRJC24w31PN4S9dZ505Mx3+xVswsrvnqogkldkjt81m +hO249tKqFj1zHijs0XdQCTvEHmdsti4mw6Mvb+ZmmqJxYkhNe0Vc/b1UijYpdPBj +sptLewW/F/PeOD0mEa7BA2BJV2x/slsyESVwWif7gVT73idPNQK93LQyMedRhRuM +pxv1X/yfoRtGsXepIO/oVNxme8/TvXJaoFDzIqR1ERkkYVVKHXWQNtDhxIfX7ynK +XZlpJvP5bYrDyBzQm02zCOqZmI+s2uZMCe6V3p2tiDU7F+UCcSIxoiTBJpKkxj4p +tBxFcmljIE1hbm4gPGVyaWNtYW5uQHBocC5uZXQ+iQJOBBMBCgA4FiEEr9hpH9rt +8DvfbkYFY/Fam3FTdsoFAmRjnNgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AA +CgkQY/Fam3FTdsqv3BAAhDY7/d3oxt3YzD5HGdJhqL0Ij6pqBMpW/GbF12eKxnnm +z0VitT7lzayD7UHzUzTT8ZwSbrOaH2SIUFMl//vgL4PW7aUpYgSl00mowvazp1CG +2085B8H8N1rXJKgUYuQfdmco8qfha0iI6YWH65CSBNupl5maCBwXk6cX3C2XVJ3A +P6rz4bnVJLohc88PQwSX33hWEHYxQh2mJ0Eb40QTB+pS2iU2W2+Mhd33ryAGrCIZ +od76uCkNge+vioshDOlKxDA1j77tJiAO3FJkix1LOM13SQmapeqP7HnGfkNPZSNa +ZiOcOxM6rPAGk1sBUZSfktnDu4gdW74yC/IcCqyQZVyXV3OVvatkBXHz90yje5zC +6YKP3IU/CUU4XMdWr9KfYpnfi42JF1KT9G8Iv33HbpMikgJrJtHgUxoKXQ0rzoT3 +gh4jUK8q4OPaCRBVCE3MqVwyc4Joj0/97X4/Hqa78pf874xKNRY5K18NDM+su3Ww +Yfp7kkEpc2YMHDjzUenQZJRKHOIJXgwK0pibSM41okMZFE3o9G8DdMUMQRqeCM/c +bpivfmnCAVqGk5VFLYcWxQsq0b6nlqTv9k+fqH3WtJAS1NDzX1axrJ0tPfKPQlZT +vBAZIp6KDfO1MvovnVO21erG33lI2o+0fonX3k6gPuQKbXNZG4QcaSTAV9WUp0G5 +Ag0EWDitOwEQALQtlBtJl9A9sOxcPeeObMwDz3csw0I56VgUfvngLSHToiq2IEVd +4TSFQKb+/FsMvTsUEtJIf+0E2LzzZ9h1ha+SqUK4PsQhf5cr2TjIYU2hPP2fqYdJ +d2r0GgjavK0OfcW5geUtDu/YUBAfMqm5SCkYlRdTqReL09YuINRayqgDdfsK8i4j +ltBMnTeS/vtoGn+T6v0w+aJ5aKl7VNPmVYs6pFrz3EKj8qV5WE+WVZ5KukaaLGMj +rxiItN6OV3V7PAaxvTB8b+KaWU76Dibw9Pm1Y0qUigehX3OgS16xdHwwqg9ZlWPo +FCcet4rsVLVyuOvdBZT+MHvhzRc6fVUnHocKdo4DIntWCTyiAveel/BQrlzE/Gyw +k20BY6JQO4+ceeTwRUI/6IwAfGYups+qMPIsnWWQl1S5jXJ+1ba9jnHsrhjhfoSL +tp3Yb+1FE1GMNzY6VL+TAckLXrhK9a0goONJwqhLD4ZKJPhi/epieWg8A1u5dOxy +Cxh53e1UHKMD+ntp4SPUMthPdJQ7GeJYlBJxLDakBF2v7f91ynNgN0vj67laq+u5 +CRzQx+nW7C22mIr2pevIomjQpy01nmVDhdSEJcteOpjoPJBRiY44M3jEq5BGkKiU +1XnlBHV/qK9rXJ2gXT4uRkRVGkSu56+Zi0OTwICwkkXumFxjaw2VnxnfABEBAAGJ +AjYEGAEKAAkFAlg4rTsCGyAAIQkQY/Fam3FTdsoWIQSv2Gkf2u3wO99uRgVj8Vqb +cVN2yrKxD/9QgFZmvesPlsmr7EcHWDOAhpi+DJYwzr9ADC1VE69bXQ/5ilCBoOj2 +z9xhsrm/CmCNMRW9mwgFjExCyEhJbUfLUcH0bVde5fR43ZoPhi8tf2WZiLJTy559 +Apb6bowiOWMnFGcBdhxmTOeCSYTvmuvcSKQckJHfykD3R8eUIaSoN2qJJjRZ0F6x +MJXJtVg6+oNfHQ6WdrFO0ULwDN4JywtZMtYn23h9pxvB91x5K0qvttHGZ3FOBzVV +YmvKQVRimKDTA9KpxVULlh4jrnwub+tAJIQqpaKLdwlYCCrJQ4o8CSGP5xrhfLkd +HwpLxjGePjb58xp4m+/gJdrBChk2N5xlk/XnTnT1YOeM7CsooEa3SQOV7Yws5w3b +uRVZISqtSbi9jFZGGKq1WxK6zfp5eWLzoklsOO4Z/8Ji3bHZ1cJxw4Cu3o7UJBc3 +6xv15daGA0fUxkYarRsOQtBxGj3KZ5vbWBVSZvGUAVp0gFOUEWnIaDJrc2Mzt4Co +Fx/fZ8nLOxKS0BmfRzXgT9KLlodKAwU6y+Vf9/f9Q6NcRPqyWdpYHz0hQz4+OF3y +GZWKc2vC+l31f6+HyiE5n5GyBLEth/kdmgJRDlyQqkgh9CUv5l89etp286/3Eeyl +hwujn3U4NMqkXxz7dFUYSueGezBM+GOyGFL74Cdt5moQyZjrxaVGsrkCDQRYOK0d +ARAAxbj34OlZA1kiEjolyHGVcSErfvhNxmoqOl/sP1l2vvMMHaJEPxwrG8zKvnrp +EemgP/qi13R/bruRFWMdMvXVMq61IqXBPbv6clygVFEXVKEFTaA+P27W1qxSwM+5 +FeVb8EDzI949Zd3FqLNNjuQbHAKjszZCRIaEeHib7UC5iGxlh0K51o24pI0UPoK3 +EHAoTg2jDey8PdPNknYvYjEY5Q5TDuarpYnKBghd5jJxVSCARselhwvfm+Ztg1ta +p3ULDRtyPNDfZiLz27W31g61q0+ABwxP0ssuBGQPQWDpg5C6huGyiwfZ9HLffae4 +vpAV2Thl/VaUoXU+OJhGDeSb5CA6KkiMrdF8qIDvhGtu9Sv7NRZbd83SrPGsXa5v +wzKgQI/NGN+jzHnyCXjlJXWlcFiUUml0DRpL5Pu6lU5jqDp+8UHufjGX/dorm5ew +faSUprtPBG0sIBW20ZXZ2QI8dnGpM0pzT9S87auMYq0QxiCm/OgfC1IzoWJamFyB +YaJFLuocFlhyAvvBX0uSbZk1HKG0iShQO+RoRldzcCUiKzhxQQmOkbAh5KdWJTwV +6n0zbrOFLCYdiMUP6Vu6s5kAykIr7CxTbXgyVudBlmElxPIKc5Eee8NRlPAzddhU +t2F+o/xrSx92DpWQYmjSSG3fQIwcnOnQTIa3yY48vILcsg8AEQEAAYkCNgQYAQoA +CQUCWDitHQIbDAAhCRBj8VqbcVN2yhYhBK/YaR/a7fA7325GBWPxWptxU3bKVWUP +/j2A5yJvkbEK5gktiWlglEoGmm0W9+AGyKrYPTfDRTtj486L6OseprYtJ5boMUsY +QqAv7XEkIUYoUn8KbZ4K3h+kaK19o4WAs7+B2OOA8VCy4WbfzjSwpxdKqXjD1b1n +6g+D/124vjEOp6+6/eY5A75HUG3/hX7282TTWRfV+0xHIxeGWqM9FRSn61JBNPko +zm7EPe0sJbFwHESI6Nn3ieCJG4W6I1KdnXoYxyQSH0y6bVj5HjAmxFpl66WuYDTZ +owvjUiRlMcAtGErLFsN+NV4xREczmAGE9hRXD2OjGdcLML4FEIMXDttUvzncvCBK +raBdkLRF927ZoG0tdaWIZ2a2/0XAoIsWsQLKDFtS7Z8YHn9oxDSi1XauCNqKA9+F +mgRBjRBqwBDhb4JHx84ZRFaiygAqktt5QZ33/M5/bneDdeg3XfDBMrKOFcoQ1Q/D +xmq+N08762A2c4tSc87orXR49tbi9pl0UJ2LG6bGpk+iR4E+QE9mryh4CzCSBZqE +rBDtl+BTgdMsy17c0Sf/ZZlCwtSjrwgxpMIq3cAe8ahiLzrC13r/cNs0zE2xZqav +xJbOJr/UMYzkXWjcKWtl60P55k3Xd24XeAj/XH777kuFY/6rE887MGFdkbnMnY/f +55HBa5Lv1kZ+iHrDu4XgDeuSOQp+kAjCs0jZaUApdZ0FuQINBFg4rQABEADNKGim +7IUB68YJ9YY8ETZgkDonFlbS0377+iPpsb5ALHb56E77l5WXE/xw3O7qYFQADXmw +9GgqrX4lQz6XR0ke+kyA7kOdExQFRgrgWtJvOxIWcOSCHUb0sPy9uJ1j/il7PoxB +PDZ6LbmPMFgOeaXAF1c3SkIcUwgFrAu/4YU73kcJl31/00hnhMCPoiAsqjysx2PM +s0IgICYFY/B+VzU2snfhNcI0t/7MCPH/xqGp1XJedW96vOl8spgjdZqZNEhNurJa +jiqqqo+M+VmlchDoPI0f7bPqiAb/6ejeIlql7l8LpOkRmIokxhw7nfJr5vLGHIGD +MmdWotGI4h11RNcNuoBDLAxD1dNiRr53qzogSI7vRUZOtX5pl9873IqiovWYH1mp +0Qu6eSOQfMVi4VDTNh0LDApXCksMP0DbiB1ir1jbVyj0E9qjBY2uPPZlzhLKvfy+ +Dflm9nLhPFxMWXvTtWRR4CprE+ubkoTABR4K9Zx6NCcCCw3eugnbioiMj2TVZ7+R +Xkt4DD3akIewI4sNc+eTLnh8aVJtWQTeJjYN4ULeXqO4y9UzPDZVNtN+y3LG97uB +UqFwXPT60cBIhYhAPd6StQkEcI4HvyXlDzrUPtA8zq+kECD8G1Wq3Eo1HhBrH4Wb +WsoSbZPJasBPNSZa/encxRuudiYVMVQeNNWo8QARAQABiQRVBBgBCgAJBQJYOK0A +AhsCAkAJEGPxWptxU3bKwV0gBBkBCgAGBQJYOK0AAAoJEL7FVeIqFDVT5AQP/Asy +OIjxYhVg1m8YOZNwvggG48gwKH/ZfPFPSc3jd+FjQH/G1aM9iWAIFqt1kQkTXVW1 +NCNR7wMZor3d5qryeBTkSRu2LTcBlsmCsYdI8vguxa4jjAVBqWfYT8MBfYiEwSCz +vENSL2hMeW3Ck2oZrSyIfRJ9UlXTa9TNCuRwqcgfOMx5rbJMlmlBhlxzMZs9sU/X +dSvl+eBiUtMS8q3mPfocWDBBWT91aNME4Rkiwgn9uqDGwILO2fGl7AaqqMHdt1kP +h6Y6qxmhV9yj3C4W/CVl2AVkSRV6Kzai2f3jQ5A7dv36ppOAqhV7EZByh0Sye3KH +9AEBiUyANZQzJaWPG8McMlqojCJR1lF1yGgPGil27z62g5o3LicljlBiBkvycyp6 +wSVgYngPOkTS/GOuQRpI3jHW8SvE852Y+sOHJ49PF9roUBu9/w0zkY6/casgOJn7 +pFUrThH6wrP+GP2V7V09DAMV7gqj5bdZruwRaLwjFRd5Pe8EBqLWx8ntchUKp68N +y7Bzv0TdXz9yaao9a/w2qQb61XdKwolkkkflsVx5+FesLHk6/Sb7lKZaHp5g72Ix +Av6R84SHn+rHaPPqGLaSGiZUCGO2pC8zZwaND662KqAiTRrskvYCXwJXDXOuvj/G +K9ADn+vP5/mdJiAI7JOB9am22UJkjBP5/ptKLicYFiEEr9hpH9rt8DvfbkYFY/Fa +m3FTdsoGrRAAlZi9v25eV1LsP6JkDASm/bEWgto/a/zQBaZZwl60y8MfpZihBU4C +01jKyW1K0XQ13HG5q/z5w1OcK+0asCqkK/HJf+gZ8U0E4osLWJBp4CwDw6pDrotZ +woAmATVwzOPV9cuwJg6T3AgawpoZQgDl3kJG57OruFhrAhOxYFBkHU/lefOguY+D +3VEIZhN4/4NjpK4JOdeUXBXOwcGRh7c3ijJJeqfwkxCYR5r1sksY3zI+It74o0aV +/utQ1IpPIwIROmlfns0KCxXclVGNPStg3LZzS8x3wmXGDVBG5zeMqklC1/Eqrfkv +LPWWLZTQfHWitKSeADGaFw5qqMfwzczyOoz2GMIFNq1zwBsF0V1enFKqKH8ritAA +m+lUFu+S/0B/tL+4SNFHP1qMA+A2Hb9vju/GO+F909XOFq1alfkI5lu4FKt7qCX2 +6QwHSsafPun6/mvrQh+pa/DxwF8EpuLvRg5vilHv2VwbFz8PojiRsiV78SDBpQuY +BCIkG30XeWtxYjR5/lnDgut1b+xVaO1DFMrI7uR2SGrZuQzHrtyoUOfpjovKRc7x +TUGWXYtVdQxEmj9NWBShREhACuxqJtKJn+XD5EPSP2QAqNeNbaksJpMcSXunKitg +4ZOOmGMfzqdUQDCThyyEQkAo5dIpqM2dFNK+I/J/8QqXovhBoCTlBaU= +=SHny +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEZiANXBYJKwYBBAHaRw8BAQdARP8nnoCEXdWhbte9/J1LeQZVMQ3vPM7ADToq +ZGNvXDe0JkNhbHZpbiBCdWNrbGV5IChQSFApIDxjYWx2aW5iQHBocC5uZXQ+iJME +ExYKADsWIQSdf5mgy48FyKaVjWJWqXr3YAo5pgUCZiANXAIbAwULCQgHAgIiAgYV +CgkICwIEFgIDAQIeBwIXgAAKCRBWqXr3YAo5ppvGAP9TWg8OSAuIZqsBwxd62k01 +YbG08JClqfB8/aPeoEqPcQEA++VwjC5BppelKywM6CtYtxR0tM+zt3OjjKlN400A +wga4OARmIA1cEgorBgEEAZdVAQUBAQdA+SOq91v3irC1wiZR9kesStsulsJ+liFC +01oLuT9OhwEDAQgHiHgEGBYKACAWIQSdf5mgy48FyKaVjWJWqXr3YAo5pgUCZiAN +XAIbDAAKCRBWqXr3YAo5pkbYAP9oqokC5fA5yWPdi3fXGEl4K66tkebIOa5Pbm23 +Hng4PwEAplx8F6SVD7tfszojqJDf5W4w4q0F0wknPSCLjCuldAQ= +=anm6 +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGZLNvEBEADLRJ//ovPDl1oL8OUdCevYx12mazjaxcimm2ei5WxRxYlB1LSj +jFzWrzvSlwq8WXoxjyb7lLw+VHSXokO88Jx3zAUpepZNT2wQ3/YTGw4i6wq2uyyP +sgVPELe9qr0Y8mROPf2CHsDfEaFzoXYZZ31ucXzP7N1bIH0uvH3THYOMAQ3Ag637 +py8exU5lehs9m8mLv0pQIDsWJUCsXsjiDptI0/8qRaBbuP10bo8gJlxCH+7UQI+A +dac0drMgbIWqfsVhm64nbvOIwxMz+wliNztXlkw1anmK5Q9ceUrpkkjiFuEvstyy +Blwqpr8a4sOfT7wxjs/2wg7IdJvcQZFVbVRw+WVZ3eVgSkoqoCGd2KrbaQjktCih +kmSxd6gTCJYUOVUl/Nxrz35AW7kIOUICsYrd6Zh7Xr+jyjfVcGs55bbxzl5QCsPc +DtHXdOQ2oAVC3zqkjWDDloFdGHIVW5W7flc9jvfg7otmmSlsCTABc97JCoOdlDoR +tp4wLg50RZXfQJ8FNpqebyFhFmGO4AGkbYuycGiupVq5rfdWM46V7K0yWftSZSKF +HiD+B2hq3docuk+o4g2AdZV0eEH3/UKRz0L1p5VCWk/yU+oF+tzDrhCwfGSy8PQL +4zfnkfttSFMmrlrgohyAF5QvBYZt99MWO1Hr8O2hPOkcZ6CLgsvrMaD2mQARAQAB +tCtTYWtpIFRha2FtYWNoaSAoZm9yIHBocC5uZXQpIDxzYWtpQHBocC5uZXQ+iQJO +BBMBCAA4FiEEBhbpPZWvRxJD4mdhdwQm4X67s90FAmZLNvECGwMFCwkIBwIGFQoJ +CAsCBBYCAwECHgECF4AACgkQdwQm4X67s90g4Q/6A8hovyPm0qUadEJzXEWVLdLB +qwHf5Aagxu8TEQUhn7ku/VKWfx8UBaI/5hTpPEC+LexkeweaK3xjs6DeIyFeeY87 +ZpujZ8U2pS1DgrYNH11lRPcJM9sh5X5p0EnsHZMAIAqNq+k5bv0jYNNKduf5v44C +ls1mg+I5CBhpgeZGRE+QLxRGb3YoQC3HwRnXHCYNsQNYbRhYgsUwfwxoHiGpM1Ej +eeX37mVhETDnJNnxKf/7r0nAVcQZqz1okJyhNBpM1Y/NgCxuTyG222TZmJOYuNby +ZIT2ZG6z0IbQZbst4rhWmJk1oEA8EV5chMMOwP0eUuKWBHqT/QCmrX9JyWKeTm7X +Jb1LBi416esrTNKicrPnhZopTkEEHFc60RvchO8XlZYepisiJprUjW2T2KY+FbKw +wQOFDQk99dVwYocd4CzzkdG/dKeda+Dj6oz/lIniEtPQREC/rZGlQNw+czkHhvk1 +Vu49BrYMY+AfnJ3QZqQr5xAQaVehnpcxaUPM23pOmLiFm0lrtuU32yIXeCy+UEX+ +0k2f6iODlr+3792cbpMcH7Bk0YNOm8b9SNYvqVPrunFGttg04TtnTMFpDaN3i8GW +oMXj+NmrFnQLBy/dpc3YvRD/hqtRXDwRXTNoIaCg1vttFWV4F86XHs0p5xoKeUfH +oHlV1320gZCBn8dm+a65Ag0EZks28QEQANZ9UNHdyJJSGTqjLIPQQET+E11Nmpwb +sLjLiQMFKZEmL0VPtqjh2qtLeKGSD9BQQNLHfEU48M3GiUNqH21UDWh6ObDCGE2u +PvL3U/C8w+2F4IABv8WD8FVaZkREX9MoRiPVd1HOEAOYsgP9Qwv60jVM+REDSnk/ +0lUfbcvt/JIxNYoRnBLR2LEG2WV0GNnBFpkJ5+KzR/cdtZEoxodNJvE2QOeN2BM7 +Rj4LTtwxh6sCI2Xd60Si7nNtHSn/C/1/+KA2igH/w1+buS3pJXkhtH+Z6/8kBdUz +7GgfIzRBfnJ78+H9PFjIPPa0/waRsaS1Sgk9FLNFXMrmjzg8v67qmhjgMrdPcVGk +W0S2WvK3pY1FiYf0iMlfW4kKwPJAKNM3x+x35Bsf2a6tIAQkZOjcidJppenAX3tl +9T0vpuCO4eaEKnP2Dyxgnpm8+Um9kwhapjhU0tJVx//vMzqovb6dG5zSiG1XZt5k +0YpJMVEuuYpuwTnJCBkZz8nzb7+JQ12he0IT2mPsXgMlq2Ddj9OnuoCZpeM/Ykjx +OGwVZfNvEJUUhbcH6Vu5gPnG3+5tXbwWnC1jeA45pKkq4BHYQnoBW03OAcavKxUW +ud8Xh5E4FNAWJQ2VyrI1Bl1raXL7mvbDxRXMLGyaz2KDRRoKtpYCvjoBr6azfIR1 +yjDTheJpAHGxABEBAAGJAjYEGAEIACAWIQQGFuk9la9HEkPiZ2F3BCbhfruz3QUC +Zks28QIbDAAKCRB3BCbhfruz3b8ND/4mPooynDsIAXQ2ygvAXC/zpIKm1fc9f81J +u3hC99vMBdTHjMD4miBxRrlUZNAWqpzORMJqMZFQy0BHvwphKDtRyhE+PPu9pQHq +cOe9weiCKu+MCTrlS0hUuzg7RBrzzOrf2GuQYS8SbHBqb1CrWQFnOJ0L5tGHd0sR +q7KPY9P3Wy9OPX1JX8eo637LgxKbWC5i4spd4qRpXYU1xaeoG8s353O8oTdNCfHq +xKI2G3lu3J9ojMNUxRbi0ATS3VOXGkLkhyvtDeXDwe+N+9cTRwMc8QEEYvBhL9+B +1NUMzRfC3GSQ+e9oDBVrvtEYs4pY+H56ETm56Dl2j8uiyCGHSsjjL48lDc1pQXnl +G9aQn/zANQFG6PdMsYYV+qN+Ktp3sd6a3LN83UaeGxfaOn3A+SsShQenAGKUmGWi +DNMJdeCrLwXvSFJO+qEFMrkEFnKb1lPCLkGer/5oM/KLyLZDzOy3+3/Wl0B0nFZI +lNw5VZB9OUC4PcR7ZPsFhb5QIxpQrq3o6g1eQXrxTrZVJzk/0K3Lm+U29jbmGgQT +4S31gnxwzXNKEkVFnMlCnAFHA3XR8l3W2tswMbPSSogcNS3GPro6LL3ImaCVxmrI +/w1QgGZrxP53PNSyH0MxH1kVTqTcxnGJL6BUt/pTdScHstABscsNO/h9K2rfsNin +uiQPA0QDZA== +=67ZA +-----END PGP PUBLIC KEY BLOCK----- diff --git a/watch b/watch new file mode 100644 index 00000000..99dcc0f3 --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=4 +opts=pgpsigurlmangle=s/$/.asc/ \ +https://www.php.net/downloads.php /distributions/php-(8\.4\..*)\.tar\.xz debian -- 2.30.2