[packages/php/dev-7.4] pcre extension can not disabled

glen glen at pld-linux.org
Thu Jun 20 01:16:37 CEST 2019


commit 7a1d0fd3285fd91d090f7930d636e516d0f27912
Author: Elan Ruusamäe <glen at pld-linux.org>
Date:   Wed Jun 19 23:04:28 2019 +0300

    pcre extension can not disabled

 pcre-shared.patch | 189 ------------------------------------------------------
 php.spec          |  47 +++-----------
 2 files changed, 8 insertions(+), 228 deletions(-)
---
diff --git a/php.spec b/php.spec
index d842d68..e666677 100644
--- a/php.spec
+++ b/php.spec
@@ -1,7 +1,7 @@
 # NOTES
 # - mysqlnd driver doesn't support reconnect: https://bugs.php.net/bug.php?id=52561
 # TODO 7.4:
-# - follow upstream: drop spl, pcre, subpackages (tired of maintaining them)
+# - follow upstream: drop spl, subpackages (tired of maintaining them)
 # TODO 5.6:
 # - enable --with-fpm-systemd, but ensure it checks for sd_booted()
 # TODO 5.4:
@@ -72,7 +72,6 @@
 %bcond_without	opcache		# without Enable Zend OPcache extension support
 %bcond_without	openssl		# without OpenSSL support and OpenSSL extension (module)
 %bcond_without	pcntl		# without pcntl extension module
-%bcond_without	pcre		# without PCRE extension module
 %bcond_without	pdo		# without PDO extension module
 %bcond_without	pdo_dblib	# without PDO dblib extension module
 %bcond_without	pdo_firebird	# without PDO Firebird extension module
@@ -145,11 +144,6 @@
 %undefine	with_fpm
 %endif
 
-# filter depends on pcre
-%if %{without pcre}
-%undefine	with_filter
-%endif
-
 %if %{without pdo}
 %undefine	with_pdo_dblib
 %undefine	with_pdo_firebird
@@ -225,7 +219,6 @@ Patch45:	%{orgname}-imap-annotations.patch
 Patch46:	%{orgname}-imap-myrights.patch
 Patch50:	extension-shared-optional-dep.patch
 Patch51:	spl-shared.patch
-Patch52:	pcre-shared.patch
 Patch53:	fix-test-run.patch
 Patch55:	bug-52078-fileinode.patch
 Patch59:	%{orgname}-systzdata.patch
@@ -289,7 +282,7 @@ BuildRequires:	openssl-devel >= 1.0.1
 %endif
 %{?with_oci:%{?with_instantclient:BuildRequires:	oracle-instantclient-devel}}
 BuildRequires:	pam-devel
-%{?with_pcre:BuildRequires:	pcre2-8-devel >= 10.30}
+BuildRequires:	pcre2-8-devel >= 10.30
 BuildRequires:	pkgconfig
 %{?with_pgsql:BuildRequires:	postgresql-devel}
 BuildRequires:	readline-devel
@@ -584,16 +577,18 @@ Provides:	%{name}(zend_module_api) = %{zend_module_api}
 Provides:	%{name}-core
 Provides:	%{name}-date
 Provides:	%{name}-hash = %{epoch}:%{version}-%{release}
+Provides:	%{name}-pcre = %{epoch}:%{version}-%{release}
 Provides:	%{name}-reflection
 Provides:	%{name}-standard
 Provides:	php(core) = %{version}
 Provides:	php(date)
 Provides:	php(hash) = %{hashver}
 Provides:	php(libxml)
+Provides:	php(pcre)
 Provides:	php(reflection)
 Provides:	php(standard)
 %{!?with_mysqlnd:Obsoletes:	%{name}-mysqlnd}
-%{?with_pcre:%requires_ge_to	pcre2-8 pcre2-8-devel}
+%requires_ge_to	pcre2-8 pcre2-8-devel
 Suggests:	browscap
 Obsoletes:	php-common < 4:5.3.28-7
 Obsoletes:	php-filepro < 4:5.2.0
@@ -607,6 +602,7 @@ Obsoletes:	php-pecl-hash < %{hashver}
 Obsoletes:	php-qtdom < 3:5.0.0
 Conflicts:	php4-common < 3:4.4.4-8
 Conflicts:	php55-common < 4:5.5.10-4
+Obsoletes:	php-pcre < 4:5.3.28-7
 Conflicts:	rpm < 4.4.2-0.2
 %if %{with mhash}
 Provides:	php(mhash)
@@ -643,7 +639,7 @@ Requires:	libtool >= 2:2.4.6
 %else
 Requires:	libtool
 %endif
-%{?with_pcre:Requires:	pcre2-8-devel >= 10.30}
+Requires:	pcre2-8-devel >= 10.30
 Requires:	shtool
 Provides:	php-devel = %{epoch}:%{version}-%{release}
 Obsoletes:	php-devel
@@ -1261,22 +1257,6 @@ waitpid(), signal() etc.
 Moduł PHP umożliwiający tworzenie nowych procesów i kontrolę nad nimi.
 Obsługuje funkcje takie jak fork(), waitpid(), signal() i podobne.
 
-%package pcre
-Summary:	PCRE extension module for PHP
-Summary(pl.UTF-8):	Moduł PCRE dla PHP
-Group:		Libraries
-Requires:	%{name}-common = %{epoch}:%{version}-%{release}
-Provides:	php(pcre)
-Obsoletes:	php-pcre < 4:5.3.28-7
-
-%description pcre
-This is a dynamic shared object (DSO) for PHP that will add Perl
-Compatible Regular Expression support.
-
-%description pcre -l pl.UTF-8
-Moduł PHP umożliwiający korzystanie z perlowych wyrażeń regularnych
-(Perl Compatible Regular Expressions)
-
 %package pdo
 Summary:	PHP Data Objects (PDO)
 Summary(pl.UTF-8):	Obsługa PHP Data Objects (PDO)
@@ -1969,7 +1949,6 @@ cp -p php.ini-production php.ini
 #%patch46 -p1 # imap myrights. fixme
 %patch50 -p1
 %patch51 -p1 -b .spl-shared
-%patch52 -p1 -b .pcre-shared
 %patch53 -p1
 %undos ext/spl/tests/SplFileInfo_getInode_basic.phpt
 %patch55 -p1
@@ -2354,6 +2333,7 @@ for sapi in $sapis; do
 	%{?with_kerberos5:--with-kerberos} \
 	--with-tcadb=/usr \
 	%{__with_without pcre pcre-regex /usr} \
+	%{?with_pcre:--with-external-pcre} \
 	%{__enable_disable filter filter shared} \
 	--with-pear=%{php_pear_dir} \
 	%{__with_without pgsql pgsql shared,/usr} \
@@ -2445,8 +2425,6 @@ generate_inifiles() {
 		# opcache.so is zend extension
 		nm $so | grep -q zend_extension_entry && ext=zend_extension
 		conf="$mod.ini"
-		# pre needs to be loaded before SPL
-		[ "$mod" = "pcre" ] && conf="PCRE.ini"
 		# spl needs to be loaded before mysqli
 		[ "$mod" = "spl" ] && conf="SPL.ini"
 		# session needs to be loaded before php-pecl-http, php-pecl-memcache, php-pecl-session_mysql
@@ -2823,7 +2801,6 @@ fi \
 %extension_scripts odbc
 %extension_scripts opcache
 %extension_scripts openssl
-%extension_scripts pcre
 %extension_scripts pdo
 %extension_scripts pdo-dblib
 %extension_scripts pdo-firebird
@@ -3196,14 +3173,6 @@ fi
 %attr(755,root,root) %{php_extensiondir}/pcntl.so
 %endif
 
-%if %{with pcre}
-%files pcre
-%defattr(644,root,root,755)
-%doc ext/pcre/CREDITS
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/PCRE.ini
-%attr(755,root,root) %{php_extensiondir}/pcre.so
-%endif
-
 %if %{with pdo}
 %files pdo
 %defattr(644,root,root,755)
diff --git a/pcre-shared.patch b/pcre-shared.patch
deleted file mode 100644
index b57e59e..0000000
--- a/pcre-shared.patch
+++ /dev/null
@@ -1,189 +0,0 @@
---- php-src-PHP-7.4/ext/pcre/config0.m4~	2019-05-04 15:24:15.000000000 +0300
-+++ php-src-PHP-7.4/ext/pcre/config0.m4	2019-05-05 18:48:35.524688151 +0300
-@@ -58,8 +58,9 @@
-       fi
-   fi
- 
--  PHP_NEW_EXTENSION(pcre, php_pcre.c, no,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
-+  PHP_NEW_EXTENSION(pcre, php_pcre.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
-   PHP_INSTALL_HEADERS([ext/pcre], [php_pcre.h])
-+  EXTRA_LIBS="$EXTRA_LIBS -lpcre2-8"
- else
-   AC_MSG_CHECKING([for PCRE library to use])
-   AC_MSG_RESULT([bundled])
---- php-7.3.0beta3/ext/pcre/php_pcre.h~	2018-09-11 11:41:50.000000000 +0300
-+++ php-7.3.0beta3/ext/pcre/php_pcre.h	2018-09-11 11:41:54.865778887 +0300
-@@ -33,7 +33,29 @@
- #include <locale.h>
- #endif
- 
-+#if !defined(COMPILE_DL_PCRE_NOREDIRECT)
-+#define pcre_get_compiled_regex (*pcre_get_compiled_regex_p)
-+#define pcre_get_compiled_regex_cache (*pcre_get_compiled_regex_cache_p)
-+#define php_pcre_replace_impl (*php_pcre_replace_impl_p)
-+#define php_pcre_match_impl (*php_pcre_match_impl_p)
-+#define php_pcre_split_impl (*php_pcre_split_impl_p)
-+#if !defined(COMPILE_DL_PCRE_NOEXTERN)
-+#	define PCRE_EXTERN extern
-+#else
-+#	define PCRE_EXTERN
-+#endif
-+#else
-+// for pcre.c
-+#define PCRE_EXTERN
-+extern void *pcre_get_compiled_regex_p;
-+extern void *pcre_get_compiled_regex_cache_p;
-+extern void *php_pcre_replace_impl_p;
-+extern void *php_pcre_match_impl_p;
-+extern void *php_pcre_split_impl_p;
-+#endif
-+
- PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, size_t limit, size_t *replace_count);
-+PCRE_EXTERN
- PHPAPI pcre2_code* pcre_get_compiled_regex(zend_string *regex, uint32_t *capture_count, uint32_t *options);
- PHPAPI pcre2_code* pcre_get_compiled_regex_ex(zend_string *regex, uint32_t *capture_count, uint32_t *preg_options, uint32_t *coptions);
- 
-@@ -45,14 +67,18 @@
- 
- typedef struct _pcre_cache_entry pcre_cache_entry;
- 
-+PCRE_EXTERN
- PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex);
- 
-+PCRE_EXTERN
- PHPAPI void  php_pcre_match_impl(  pcre_cache_entry *pce, char *subject, size_t subject_len, zval *return_value,
- 	zval *subpats, int global, int use_flags, zend_long flags, zend_off_t start_offset);
- 
-+PCRE_EXTERN
- PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str,
- 	size_t limit, size_t *replace_count);
- 
-+PCRE_EXTERN
- PHPAPI void  php_pcre_split_impl(  pcre_cache_entry *pce, zend_string *subject_str, zval *return_value,
- 	zend_long limit_val, zend_long flags);
- 
---- php-7.3.0beta3/ext/pcre/php_pcre.c~	2018-09-11 11:43:27.000000000 +0300
-+++ php-7.3.0beta3/ext/pcre/php_pcre.c	2018-09-11 11:43:30.747506034 +0300
-@@ -21,6 +21,9 @@
- #include "php.h"
- #include "php_ini.h"
- #include "php_globals.h"
-+#if COMPILE_DL_PCRE
-+#define COMPILE_DL_PCRE_NOREDIRECT
-+#endif
- #include "php_pcre.h"
- #include "ext/standard/info.h"
- #include "ext/standard/basic_functions.h"
-@@ -208,6 +211,17 @@
- 	REGISTER_LONG_CONSTANT("PREG_JIT_STACKLIMIT_ERROR", PHP_PCRE_JIT_STACKLIMIT_ERROR, CONST_CS | CONST_PERSISTENT);
- 	REGISTER_STRING_CONSTANT("PCRE_VERSION", (char *)pcre_version(), CONST_CS | CONST_PERSISTENT);
- 
-+#if COMPILE_DL_PCRE
-+	pcre_get_compiled_regex_p = pcre_get_compiled_regex;
-+	pcre_get_compiled_regex_cache_p = pcre_get_compiled_regex_cache;
-+	php_pcre_replace_impl_p = php_pcre_replace_impl;
-+	php_pcre_match_impl_p = php_pcre_match_impl;
-+	php_pcre_split_impl_p = php_pcre_split_impl;
-+	php_pcre_create_match_data_p = php_pcre_create_match_data;
-+	php_pcre_free_match_data_p = php_pcre_free_match_data;
-+	php_pcre_mctx_p = php_pcre_mctx;
-+#endif
-+
- 	return SUCCESS;
- }
- /* }}} */
---- php-7.2.0RC5/ext/standard/basic_functions.c	2017-10-28 21:08:47.383549141 +0300
-+++ php-7.2.0RC5/ext/standard/basic_functions.c	2017-10-28 21:10:20.625051932 +0300
-@@ -113,6 +113,18 @@
- PHPAPI php_basic_globals basic_globals;
- #endif
- 
-+#if COMPILE_DL_PCRE
-+// Declare the pointers in core library
-+void *pcre_get_compiled_regex_p;
-+void *pcre_get_compiled_regex_cache_p;
-+void *php_pcre_replace_impl_p;
-+void *php_pcre_match_impl_p;
-+void *php_pcre_split_impl_p;
-+void *php_pcre_create_match_data_p;
-+void *php_pcre_free_match_data_p;
-+void *php_pcre_mctx_p;
-+#endif
-+
- #include "php_fopen_wrappers.h"
- #include "streamsfuncs.h"
- 
---- php-5.3.2/sapi/cli/tests/018.phpt~	2008-03-17 16:05:39.000000000 +0200
-+++ php-5.3.2/sapi/cli/tests/018.phpt	2010-03-16 20:41:11.341251246 +0200
-@@ -20,8 +20,6 @@
- --EXPECTF--     
- [PHP Modules]
- %a
--pcre
--%a
- 
- [Zend Modules]
- %aDone
---- php-7.0.0beta3/main/php_ini.c~	2015-08-26 18:50:15.000000000 +0300
-+++ php-7.0.0beta3/main/php_ini.c	2015-08-26 22:33:59.126957396 +0300
-@@ -765,8 +765,8 @@
-  */
- void php_ini_register_extensions(void)
- {
--	zend_llist_apply(&extension_lists.engine, php_load_zend_extension_cb);
- 	zend_llist_apply(&extension_lists.functions, php_load_php_extension_cb);
-+	zend_llist_apply(&extension_lists.engine, php_load_zend_extension_cb);
- 
- 	zend_llist_destroy(&extension_lists.engine);
- 	zend_llist_destroy(&extension_lists.functions);
---- php-5.3.1/ext/phar/Makefile.frag~	2009-07-23 15:48:04.000000000 +0000
-+++ php-5.3.1/ext/phar/Makefile.frag	2009-11-30 16:10:29.687175948 +0000
-@@ -10,7 +10,7 @@
- 		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
- 		if test "x$(PHP_MODULES)" != "x"; then \
- 		$(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
--		for i in spl bz2 zlib phar; do \
-+		for i in pcre spl bz2 zlib phar; do \
- 			if test -f "$(top_builddir)/modules/$$i.la"; then \
- 				. $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
- 			fi; \
---- php-7.3.0beta3/ext/pcre/php_pcre.h~	2018-09-11 11:41:50.000000000 +0300
-+++ php-7.3.0beta3/ext/pcre/php_pcre.h	2018-09-11 11:41:54.865778887 +0300
-@@ -37,6 +37,9 @@
- #define php_pcre_replace_impl (*php_pcre_replace_impl_p)
- #define php_pcre_match_impl (*php_pcre_match_impl_p)
- #define php_pcre_split_impl (*php_pcre_split_impl_p)
-+#define php_pcre_create_match_data (*php_pcre_create_match_data_p)
-+#define php_pcre_free_match_data (*php_pcre_free_match_data_p)
-+#define php_pcre_mctx (*php_pcre_mctx_p)
- #if !defined(COMPILE_DL_PCRE_NOEXTERN)
- #	define PCRE_EXTERN extern
- #else
-@@ -50,6 +53,9 @@
- extern void *php_pcre_replace_impl_p;
- extern void *php_pcre_match_impl_p;
- extern void *php_pcre_split_impl_p;
-+extern void *php_pcre_create_match_data_p;
-+extern void *php_pcre_free_match_data_p;
-+extern void *php_pcre_mctx_p;
- #endif
- 
- PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, size_t limit, size_t *replace_count);
-@@ -83,6 +89,7 @@
- PHPAPI void  php_pcre_grep_impl(   pcre_cache_entry *pce, zval *input, zval *return_value,
- 	zend_long flags);
- 
-+PCRE_EXTERN
- PHPAPI pcre2_match_context *php_pcre_mctx(void);
- PHPAPI pcre2_general_context *php_pcre_gctx(void);
- PHPAPI pcre2_compile_context *php_pcre_cctx(void);
-@@ -90,7 +97,9 @@
- PHPAPI void php_pcre_pce_decref(pcre_cache_entry *);
- PHPAPI pcre2_code *php_pcre_pce_re(pcre_cache_entry *);
- /* capture_count can be ignored, re is required. */
-+PCRE_EXTERN
- PHPAPI pcre2_match_data *php_pcre_create_match_data(uint32_t, pcre2_code *);
-+PCRE_EXTERN
- PHPAPI void php_pcre_free_match_data(pcre2_match_data *);
- 
- ZEND_BEGIN_MODULE_GLOBALS(pcre)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/php.git/commitdiff/dc749f05f4e6b8ecc255d77e12a1599af9aea8a7



More information about the pld-cvs-commit mailing list