commit 8f2c8fef9d0f21bb87c226f93c8634e8f500ea2e
Author: Elan Ruusamäe <[email protected]>
Date:   Sat Aug 10 14:19:16 2019 +0300

    install extra sapi config to <sapi>.d dir
    
    this allows us keep previous behaviour:
    - load main php.ini
    - load extra sapi specific ini
    
    without maintaining huge patch for main/php_ini.c
    
    the patch is still needed to load <sapi>.d as extra besides conf.d

 php-sapi-ini-file.patch | 100 +++++-------------------------------------------
 php.spec                |  12 +++---
 2 files changed, 15 insertions(+), 97 deletions(-)
---
diff --git a/php.spec b/php.spec
index ed4a3c7..75cb58b 100644
--- a/php.spec
+++ b/php.spec
@@ -2455,7 +2455,7 @@ libtool --mode=install install -p libphp_common.la 
$RPM_BUILD_ROOT%{_libdir}
 # install-cgi
 libtool --mode=install install -p sapi/cgi/php-cgi 
$RPM_BUILD_ROOT%{_bindir}/%{name}.cgi
 ln -sf %{name}.cgi $RPM_BUILD_ROOT%{_bindir}/%{name}.fcgi
-cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/php-cgi-fcgi.ini
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/cgi-fcgi.d/php.ini
 %endif
 
 # install FCGI PM
@@ -2503,11 +2503,11 @@ ln -sf php%{ver_suffix} $RPM_BUILD_ROOT%{_bindir}/php
 
 cp -p php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/timezone.ini
-cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-cli.ini
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/cli.d/php.ini
 
 %if %{with apache2}
 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/httpd/conf.d/70_mod_php.conf
-cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-apache2handler.ini
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/apache2handler.d/php.ini
 %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/apache/libphp7.la
 %endif
 
@@ -2743,7 +2743,7 @@ fi
 %files -n apache-mod_%{name}-core
 %defattr(644,root,root,755)
 %dir %{_sysconfdir}/apache2handler.d
-%config(noreplace) %verify(not md5 mtime size) 
%{_sysconfdir}/php-apache2handler.ini
+%config(noreplace) %verify(not md5 mtime size) 
%{_sysconfdir}/apache2handler.d/php.ini
 %attr(755,root,root) %{_libdir}/apache/libphp7-*.*.so
 %endif
 
@@ -2757,7 +2757,7 @@ fi
 %files cgi
 %defattr(644,root,root,755)
 %dir %{_sysconfdir}/cgi-fcgi.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cgi-fcgi.ini
+%config(noreplace) %verify(not md5 mtime size) 
%{_sysconfdir}/cgi-fcgi.d/php.ini
 %attr(755,root,root) %{_bindir}/%{name}.cgi
 %attr(755,root,root) %{_bindir}/%{name}.fcgi
 %endif
@@ -2771,7 +2771,7 @@ fi
 %files cli
 %defattr(644,root,root,755)
 %dir %{_sysconfdir}/cli.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cli.ini
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cli.d/php.ini
 %attr(755,root,root) %{_bindir}/php%{ver_suffix}
 %{_mandir}/man1/php%{ver_suffix}.1*
 
diff --git a/php-sapi-ini-file.patch b/php-sapi-ini-file.patch
index 0ed4d79..6c9dcf4 100644
--- a/php-sapi-ini-file.patch
+++ b/php-sapi-ini-file.patch
@@ -1,12 +1,14 @@
-to test which is main php.ini:
+To test which is main php.ini:
 $ php -r 'var_dump(array(get_cfg_var("cfg_file_path"),php_ini_loaded_file()));'
 
 https://github.com/pld-linux/php/commit/762ec2e
 
---- php-7.0.0RC6.orig/main/php_ini.c   2015-11-10 23:58:52.227101032 +0200
-+++ php-7.0.0RC6/main/php_ini.c        2015-11-11 00:01:43.502674750 +0200
-@@ -375,12 +375,19 @@
- }
+diff --git a/main/php_ini.c b/main/php_ini.c
+index d508c13b50..2cf28eb7f5 100644
+--- a/main/php_ini.c
++++ b/main/php_ini.c
+@@ -410,6 +410,11 @@ static void php_load_zend_extension_cb(void *arg) { }
+ #endif
  /* }}} */
  
 +static int php_csort(const struct dirent **a, const struct dirent **b)
@@ -17,90 +19,7 @@ https://github.com/pld-linux/php/commit/762ec2e
  /* {{{ php_init_config
   */
  int php_init_config(void)
- {
-       char *php_ini_file_name = NULL;
-       char *php_ini_search_path = NULL;
-+      // value for php_ini_loaded_file() to be stored into php_ini_opened_path
-+      char *php_ini_loaded_file = NULL;
-       int php_ini_scanned_path_len;
-       char *open_basedir;
-       int free_ini_search_path = 0;
-@@ -557,8 +564,26 @@
-                               }
-                       }
-               }
-+              /* Search (global) php.ini file in search path */
-+              if (!fh.handle.fp) {
-+                      fh.handle.fp = php_fopen_with_path("php.ini", "r", 
php_ini_search_path, &opened_path);
-+                      if (fh.handle.fp) {
-+                              fh.filename = ZSTR_VAL(opened_path);
-+
-+                              // parse the ini file now
-+                              PG(open_basedir) = open_basedir;
-+                              fh.type = ZEND_HANDLE_FP;
-+                              zend_parse_ini_file(&fh, 1, 
ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t) php_ini_parser_cb, 
&configuration_hash TSRMLS_CC);
-+                              open_basedir = PG(open_basedir);
-+                              PG(open_basedir) = NULL;
-+                              fh.handle.fp = NULL;
-+
-+                              php_ini_loaded_file = estrdup(fh.filename);
-+                              fh.filename = NULL;
-+                      }
-+              }
- 
--              /* Otherwise search for php-%sapi-module-name%.ini file in 
search path */
-+              /* Also search for php-%sapi-module-name%.ini file in search 
path */
-               if (!fh.handle.fp) {
-                       const char *fmt = "php-%s.ini";
-                       char *ini_fname;
-@@ -568,15 +593,8 @@
-                       if (fh.handle.fp) {
-                               fh.filename = ZSTR_VAL(opened_path);
-                       }
--              }
- 
--              /* If still no ini file found, search for php.ini file in 
search path */
--              if (!fh.handle.fp) {
--                      fh.handle.fp = php_fopen_with_path("php.ini", "r", 
php_ini_search_path, &opened_path);
--                      if (fh.handle.fp) {
--                              fh.filename = ZSTR_VAL(opened_path);
--                      }
--              }
-+              }
-       }
- 
-       if (free_ini_search_path) {
-@@ -593,14 +611,28 @@
- 
-               {
-                       zval tmp;
-+                      // use main php.ini if loaded
-+                      // see https://github.com/pld-linux/php/commit/762ec2e
-+                      // test with:
-+                      // php -r 
'var_dump(array(get_cfg_var("cfg_file_path"),php_ini_loaded_file()));'
-+                      if (php_ini_loaded_file) {
-+                              if (fh.filename) {
-+                                      efree((char *)fh.filename);
-+                              }
-+                              fh.filename = php_ini_loaded_file;
-+                      }
- 
-                       ZVAL_NEW_STR(&tmp, zend_string_init(fh.filename, 
strlen(fh.filename), 1));
-                       zend_hash_str_update(&configuration_hash, 
"cfg_file_path", sizeof("cfg_file_path")-1, &tmp);
-                       if (opened_path) {
-                               zend_string_release_ex(opened_path, 0);
--                      } else {
-+                      }
-+
-+                      if (fh.filename) {
-                               efree((char *)fh.filename);
-+                              fh.filename = NULL;
-                       }
-+
-                       php_ini_opened_path = zend_strndup(Z_STRVAL(tmp), 
Z_STRLEN(tmp));
-               }
-       }
-@@ -624,13 +656,15 @@
+@@ -661,12 +666,14 @@ int php_init_config(void)
                zend_llist scanned_ini_list;
                zend_llist_element *element;
                int l, total_l = 0;
@@ -109,7 +28,6 @@ https://github.com/pld-linux/php/commit/762ec2e
                int lenpath;
  
                zend_llist_init(&scanned_ini_list, sizeof(char *), 
(llist_dtor_func_t) free_estring, 1);
-               memset(&fh2, 0, sizeof(fh2));
  
 -              bufpath = estrdup(php_ini_scanned_path);
 +              bufpath = emalloc(strlen(php_ini_scanned_path) + strlen(fmt) + 
strlen(sapi_module.name));
@@ -117,7 +35,7 @@ https://github.com/pld-linux/php/commit/762ec2e
                for (debpath = bufpath ; debpath ; debpath=endpath) {
                        endpath = strchr(debpath, DEFAULT_DIR_SEPARATOR);
                        if (endpath) {
-@@ -643,7 +677,7 @@
+@@ -679,7 +686,7 @@ int php_init_config(void)
                        }
                        lenpath = (int)strlen(debpath);
  
================================================================

---- gitweb:

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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to