From: Ondřej Surý Date: Sun, 3 Aug 2025 07:32:21 +0000 (+0200) Subject: Import php8.4_8.4.11-1.debian.tar.xz X-Git-Tag: archive/raspbian/8.4.11-1+rpi1~48^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=755287cc79c5bdda5f9f1a5df41e4189d2611805;p=php8.4.git 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] --- 755287cc79c5bdda5f9f1a5df41e4189d2611805 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