From: Marcin Krol Date: Mon, 4 Apr 2022 22:09:58 +0000 (+0200) Subject: - adjusted for rpm.org, partial PLD merge X-Git-Url: https://git.tld-linux.org/?a=commitdiff_plain;ds=sidebyside;h=2d2410bef4739689b5b8bf27c59229248e8b4363;p=packages%2Fphp.git - adjusted for rpm.org, partial PLD merge --- diff --git a/fix-test-run.patch b/fix-test-run.patch index 01742c4..39fba92 100644 --- a/fix-test-run.patch +++ b/fix-test-run.patch @@ -1,15 +1,15 @@ --- php-5.4.0alpha2/configure.ac~ 2011-08-07 12:43:31.000000000 +0300 +++ php-5.4.0alpha2/configure.ac 2011-08-07 12:44:11.495394662 +0300 @@ -1271,6 +1271,9 @@ - ;; - esac + PHP_OS=`uname | xargs` + AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output]) +# shift so that extensions like xml are loaded first +PHP_MODULES=$(echo "$PHP_MODULES" | sed -e 's,\(.*\)\(\$(phplibdir)/xml.la \),\2\1,') + PHP_SUBST_OLD(PHP_INSTALLED_SAPIS) - PHP_SUBST(PHP_EXECUTABLE) + PHP_SUBST(PHP_FASTCGI_OBJS) --- php-5.5.11/build/Makefile.global 2014-04-27 15:05:38.963814051 +0300 +++ php-5.5.11/build/Makefile.global 2014-04-27 15:09:54.438443707 +0300 @@ -81,8 +81,15 @@ diff --git a/fpm-conf-split.patch b/fpm-conf-split.patch deleted file mode 100644 index 3d4bd92..0000000 --- a/fpm-conf-split.patch +++ /dev/null @@ -1,871 +0,0 @@ ---- php-5.6.5/sapi/fpm/php-fpm.conf.in~ 2015-02-04 19:22:00.000000000 +0200 -+++ php-5.6.5/sapi/fpm/php-fpm.conf.in 2015-02-04 19:23:22.109298245 +0200 -@@ -6,14 +6,6 @@ - ; prefix (@prefix@). This prefix can be dynamically changed by using the - ; '-p' argument from the command line. - --; Include one or more files. If glob(3) exists, it is used to include a bunch of --; files from a glob(3) pattern. This directive can be used everywhere in the --; file. --; Relative path can also be used. They will be prefixed by: --; - the global prefix if it's been set (-p argument) --; - @prefix@ otherwise --;include=etc/fpm.d/*.conf -- - ;;;;;;;;;;;;;;;;;; - ; Global Options ; - ;;;;;;;;;;;;;;;;;; -@@ -115,415 +115,3 @@ - ; ports and different management options. The name of the pool will be - ; used in logs and stats. There is no limitation on the number of pools which - ; FPM can handle. Your system will tell you anyway :) -- --; Start a new pool named 'www'. --; the variable $pool can we used in any directive and will be replaced by the --; pool name ('www' here) --[www] -- --; Per pool prefix --; It only applies on the following directives: --; - 'access.log' --; - 'slowlog' --; - 'listen' (unixsocket) --; - 'chroot' --; - 'chdir' --; - 'php_values' --; - 'php_admin_values' --; When not set, the global prefix (or @php_fpm_prefix@) applies instead. --; Note: This directive can also be relative to the global prefix. --; Default Value: none --;prefix = /path/to/pools/$pool -- --; Unix user/group of processes --; Note: The user is mandatory. If the group is not set, the default user's group --; will be used. --user = @php_fpm_user@ --group = @php_fpm_group@ -- --; The address on which to accept FastCGI requests. --; Valid syntaxes are: --; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on --; a specific port; --; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on --; a specific port; --; 'port' - to listen on a TCP socket to all IPv4 addresses on a --; specific port; --; '[::]:port' - to listen on a TCP socket to all addresses --; (IPv6 and IPv4-mapped) on a specific port; --; '/path/to/unix/socket' - to listen on a unix socket. --; Note: This value is mandatory. --listen = 127.0.0.1:9000 -- --; Set listen(2) backlog. --; Default Value: 65535 (-1 on FreeBSD and OpenBSD) --;listen.backlog = 65535 -- --; Set permissions for unix socket, if one is used. In Linux, read/write --; permissions must be set in order to allow connections from a web server. Many --; BSD-derived systems allow connections regardless of permissions. --; Default Values: user and group are set as the running user --; mode is set to 0660 --;listen.owner = @php_fpm_user@ --;listen.group = @php_fpm_group@ --;listen.mode = 0660 --; When POSIX Access Control Lists are supported you can set them using --; these options, value is a comma separated list of user/group names. --; When set, listen.owner and listen.group are ignored --;listen.acl_users = --;listen.acl_groups = -- --; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. --; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original --; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address --; must be separated by a comma. If this value is left blank, connections will be --; accepted from any ip address. --; Default Value: any --;listen.allowed_clients = 127.0.0.1 -- --; Specify the nice(2) priority to apply to the pool processes (only if set) --; The value can vary from -19 (highest priority) to 20 (lower priority) --; Note: - It will only work if the FPM master process is launched as root --; - The pool processes will inherit the master process priority --; unless it specified otherwise --; Default Value: no set --; process.priority = -19 -- --; Choose how the process manager will control the number of child processes. --; Possible Values: --; static - a fixed number (pm.max_children) of child processes; --; dynamic - the number of child processes are set dynamically based on the --; following directives. With this process management, there will be --; always at least 1 children. --; pm.max_children - the maximum number of children that can --; be alive at the same time. --; pm.start_servers - the number of children created on startup. --; pm.min_spare_servers - the minimum number of children in 'idle' --; state (waiting to process). If the number --; of 'idle' processes is less than this --; number then some children will be created. --; pm.max_spare_servers - the maximum number of children in 'idle' --; state (waiting to process). If the number --; of 'idle' processes is greater than this --; number then some children will be killed. --; ondemand - no children are created at startup. Children will be forked when --; new requests will connect. The following parameter are used: --; pm.max_children - the maximum number of children that --; can be alive at the same time. --; pm.process_idle_timeout - The number of seconds after which --; an idle process will be killed. --; Note: This value is mandatory. --pm = dynamic -- --; The number of child processes to be created when pm is set to 'static' and the --; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. --; This value sets the limit on the number of simultaneous requests that will be --; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. --; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP --; CGI. The below defaults are based on a server without much resources. Don't --; forget to tweak pm.* to fit your needs. --; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' --; Note: This value is mandatory. --pm.max_children = 5 -- --; The number of child processes created on startup. --; Note: Used only when pm is set to 'dynamic' --; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 --pm.start_servers = 2 -- --; The desired minimum number of idle server processes. --; Note: Used only when pm is set to 'dynamic' --; Note: Mandatory when pm is set to 'dynamic' --pm.min_spare_servers = 1 -- --; The desired maximum number of idle server processes. --; Note: Used only when pm is set to 'dynamic' --; Note: Mandatory when pm is set to 'dynamic' --pm.max_spare_servers = 3 -- --; The number of seconds after which an idle process will be killed. --; Note: Used only when pm is set to 'ondemand' --; Default Value: 10s --;pm.process_idle_timeout = 10s; -- --; The number of requests each child process should execute before respawning. --; This can be useful to work around memory leaks in 3rd party libraries. For --; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. --; Default Value: 0 --;pm.max_requests = 500 -- --; The URI to view the FPM status page. If this value is not set, no URI will be --; recognized as a status page. It shows the following informations: --; pool - the name of the pool; --; process manager - static, dynamic or ondemand; --; start time - the date and time FPM has started; --; start since - number of seconds since FPM has started; --; accepted conn - the number of request accepted by the pool; --; listen queue - the number of request in the queue of pending --; connections (see backlog in listen(2)); --; max listen queue - the maximum number of requests in the queue --; of pending connections since FPM has started; --; listen queue len - the size of the socket queue of pending connections; --; idle processes - the number of idle processes; --; active processes - the number of active processes; --; total processes - the number of idle + active processes; --; max active processes - the maximum number of active processes since FPM --; has started; --; max children reached - number of times, the process limit has been reached, --; when pm tries to start more children (works only for --; pm 'dynamic' and 'ondemand'); --; Value are updated in real time. --; Example output: --; pool: www --; process manager: static --; start time: 01/Jul/2011:17:53:49 +0200 --; start since: 62636 --; accepted conn: 190460 --; listen queue: 0 --; max listen queue: 1 --; listen queue len: 42 --; idle processes: 4 --; active processes: 11 --; total processes: 15 --; max active processes: 12 --; max children reached: 0 --; --; By default the status page output is formatted as text/plain. Passing either --; 'html', 'xml' or 'json' in the query string will return the corresponding --; output syntax. Example: --; http://www.foo.bar/status --; http://www.foo.bar/status?json --; http://www.foo.bar/status?html --; http://www.foo.bar/status?xml --; --; By default the status page only outputs short status. Passing 'full' in the --; query string will also return status for each pool process. --; Example: --; http://www.foo.bar/status?full --; http://www.foo.bar/status?json&full --; http://www.foo.bar/status?html&full --; http://www.foo.bar/status?xml&full --; The Full status returns for each process: --; pid - the PID of the process; --; state - the state of the process (Idle, Running, ...); --; start time - the date and time the process has started; --; start since - the number of seconds since the process has started; --; requests - the number of requests the process has served; --; request duration - the duration in µs of the requests; --; request method - the request method (GET, POST, ...); --; request URI - the request URI with the query string; --; content length - the content length of the request (only with POST); --; user - the user (PHP_AUTH_USER) (or '-' if not set); --; script - the main script called (or '-' if not set); --; last request cpu - the %cpu the last request consumed --; it's always 0 if the process is not in Idle state --; because CPU calculation is done when the request --; processing has terminated; --; last request memory - the max amount of memory the last request consumed --; it's always 0 if the process is not in Idle state --; because memory calculation is done when the request --; processing has terminated; --; If the process is in Idle state, then informations are related to the --; last request the process has served. Otherwise informations are related to --; the current request being served. --; Example output: --; ************************ --; pid: 31330 --; state: Running --; start time: 01/Jul/2011:17:53:49 +0200 --; start since: 63087 --; requests: 12808 --; request duration: 1250261 --; request method: GET --; request URI: /test_mem.php?N=10000 --; content length: 0 --; user: - --; script: /home/fat/web/docs/php/test_mem.php --; last request cpu: 0.00 --; last request memory: 0 --; --; Note: There is a real-time FPM status monitoring sample web page available --; It's available in: @EXPANDED_DATADIR@/fpm/status.html --; --; Note: The value must start with a leading slash (/). The value can be --; anything, but it may not be a good idea to use the .php extension or it --; may conflict with a real PHP file. --; Default Value: not set --;pm.status_path = /status -- --; The ping URI to call the monitoring page of FPM. If this value is not set, no --; URI will be recognized as a ping page. This could be used to test from outside --; that FPM is alive and responding, or to --; - create a graph of FPM availability (rrd or such); --; - remove a server from a group if it is not responding (load balancing); --; - trigger alerts for the operating team (24/7). --; Note: The value must start with a leading slash (/). The value can be --; anything, but it may not be a good idea to use the .php extension or it --; may conflict with a real PHP file. --; Default Value: not set --;ping.path = /ping -- --; This directive may be used to customize the response of a ping request. The --; response is formatted as text/plain with a 200 response code. --; Default Value: pong --;ping.response = pong -- --; The access log file --; Default: not set --;access.log = log/$pool.access.log -- --; The access log format. --; The following syntax is allowed --; %%: the '%' character --; %C: %CPU used by the request --; it can accept the following format: --; - %{user}C for user CPU only --; - %{system}C for system CPU only --; - %{total}C for user + system CPU (default) --; %d: time taken to serve the request --; it can accept the following format: --; - %{seconds}d (default) --; - %{miliseconds}d --; - %{mili}d --; - %{microseconds}d --; - %{micro}d --; %e: an environment variable (same as $_ENV or $_SERVER) --; it must be associated with embraces to specify the name of the env --; variable. Some exemples: --; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e --; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e --; %f: script filename --; %l: content-length of the request (for POST request only) --; %m: request method --; %M: peak of memory allocated by PHP --; it can accept the following format: --; - %{bytes}M (default) --; - %{kilobytes}M --; - %{kilo}M --; - %{megabytes}M --; - %{mega}M --; %n: pool name --; %o: output header --; it must be associated with embraces to specify the name of the header: --; - %{Content-Type}o --; - %{X-Powered-By}o --; - %{Transfert-Encoding}o --; - .... --; %p: PID of the child that serviced the request --; %P: PID of the parent of the child that serviced the request --; %q: the query string --; %Q: the '?' character if query string exists --; %r: the request URI (without the query string, see %q and %Q) --; %R: remote IP address --; %s: status (response code) --; %t: server time the request was received --; it can accept a strftime(3) format: --; %d/%b/%Y:%H:%M:%S %z (default) --; %T: time the log has been written (the request has finished) --; it can accept a strftime(3) format: --; %d/%b/%Y:%H:%M:%S %z (default) --; %u: remote user --; --; Default: "%R - %u %t \"%m %r\" %s" --;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" -- --; The log file for slow requests --; Default Value: not set --; Note: slowlog is mandatory if request_slowlog_timeout is set --;slowlog = log/$pool.log.slow -- --; The timeout for serving a single request after which a PHP backtrace will be --; dumped to the 'slowlog' file. A value of '0s' means 'off'. --; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) --; Default Value: 0 --;request_slowlog_timeout = 0 -- --; The timeout for serving a single request after which the worker process will --; be killed. This option should be used when the 'max_execution_time' ini option --; does not stop script execution for some reason. A value of '0' means 'off'. --; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) --; Default Value: 0 --;request_terminate_timeout = 0 -- --; Set open file descriptor rlimit. --; Default Value: system defined value --;rlimit_files = 1024 -- --; Set max core size rlimit. --; Possible Values: 'unlimited' or an integer greater or equal to 0 --; Default Value: system defined value --;rlimit_core = 0 -- --; Chroot to this directory at the start. This value must be defined as an --; absolute path. When this value is not set, chroot is not used. --; Note: you can prefix with '$prefix' to chroot to the pool prefix or one --; of its subdirectories. If the pool prefix is not set, the global prefix --; will be used instead. --; Note: chrooting is a great security feature and should be used whenever --; possible. However, all PHP paths will be relative to the chroot --; (error_log, sessions.save_path, ...). --; Default Value: not set --;chroot = -- --; Chdir to this directory at the start. --; Note: relative path can be used. --; Default Value: current directory or / when chroot --;chdir = /var/www -- --; Redirect worker stdout and stderr into main error log. If not set, stdout and --; stderr will be redirected to /dev/null according to FastCGI specs. --; Note: on highloaded environement, this can cause some delay in the page --; process time (several ms). --; Default Value: no --;catch_workers_output = yes -- --; Clear environment in FPM workers --; Prevents arbitrary environment variables from reaching FPM worker processes --; by clearing the environment in workers before env vars specified in this --; pool configuration are added. --; Setting to "no" will make all environment variables available to PHP code --; via getenv(), $_ENV and $_SERVER. --; Default Value: yes --;clear_env = no -- --; Limits the extensions of the main script FPM will allow to parse. This can --; prevent configuration mistakes on the web server side. You should only limit --; FPM to .php extensions to prevent malicious users to use other extensions to --; exectute php code. --; Note: set an empty value to allow all extensions. --; Default Value: .php --;security.limit_extensions = .php .php3 .php4 .php5 -- --; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from --; the current environment. --; Default Value: clean env --;env[HOSTNAME] = $HOSTNAME --;env[PATH] = /usr/local/bin:/usr/bin:/bin --;env[TMP] = /tmp --;env[TMPDIR] = /tmp --;env[TEMP] = /tmp -- --; Additional php.ini defines, specific to this pool of workers. These settings --; overwrite the values previously defined in the php.ini. The directives are the --; same as the PHP SAPI: --; php_value/php_flag - you can set classic ini defines which can --; be overwritten from PHP call 'ini_set'. --; php_admin_value/php_admin_flag - these directives won't be overwritten by --; PHP call 'ini_set' --; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. -- --; Defining 'extension' will load the corresponding shared extension from --; extension_dir. Defining 'disable_functions' or 'disable_classes' will not --; overwrite previously defined php.ini values, but will append the new value --; instead. -- --; Note: path INI options can be relative and will be expanded with the prefix --; (pool, global or @prefix@) -- --; Default Value: nothing is defined by default except the values in php.ini and --; specified at startup with the -d argument --;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com --;php_flag[display_errors] = off --;php_admin_value[error_log] = /var/log/fpm-php.www.log --;php_admin_flag[log_errors] = on --;php_admin_value[memory_limit] = 32M ---- /dev/null 2007-02-13 18:29:53.000000000 +0200 -+++ php-5.6.5/sapi/fpm/php-fpm.conf-d.in 2015-02-04 19:23:20.709225773 +0200 -@@ -0,0 +1,411 @@ -+; Start a new pool named 'www'. -+; the variable $pool can we used in any directive and will be replaced by the -+; pool name ('www' here) -+[www] -+ -+; Per pool prefix -+; It only applies on the following directives: -+; - 'access.log' -+; - 'slowlog' -+; - 'listen' (unixsocket) -+; - 'chroot' -+; - 'chdir' -+; - 'php_values' -+; - 'php_admin_values' -+; When not set, the global prefix (or @php_fpm_prefix@) applies instead. -+; Note: This directive can also be relative to the global prefix. -+; Default Value: none -+;prefix = /path/to/pools/$pool -+ -+; Unix user/group of processes -+; Note: The user is mandatory. If the group is not set, the default user's group -+; will be used. -+user = @php_fpm_user@ -+group = @php_fpm_group@ -+ -+; The address on which to accept FastCGI requests. -+; Valid syntaxes are: -+; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -+; a specific port; -+; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -+; a specific port; -+; 'port' - to listen on a TCP socket to all IPv4 addresses on a -+; specific port; -+; '[::]:port' - to listen on a TCP socket to all addresses -+; (IPv6 and IPv4-mapped) on a specific port; -+; '/path/to/unix/socket' - to listen on a unix socket. -+; Note: This value is mandatory. -+listen = 127.0.0.1:9000 -+ -+; Set listen(2) backlog. -+; Default Value: 65535 (-1 on FreeBSD and OpenBSD) -+;listen.backlog = 65535 -+ -+; Set permissions for unix socket, if one is used. In Linux, read/write -+; permissions must be set in order to allow connections from a web server. Many -+; BSD-derived systems allow connections regardless of permissions. -+; Default Values: user and group are set as the running user -+; mode is set to 0660 -+;listen.owner = @php_fpm_user@ -+;listen.group = @php_fpm_group@ -+;listen.mode = 0660 -+; When POSIX Access Control Lists are supported you can set them using -+; these options, value is a comma separated list of user/group names. -+; When set, listen.owner and listen.group are ignored -+;listen.acl_users = -+;listen.acl_groups = -+ -+; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -+; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -+; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -+; must be separated by a comma. If this value is left blank, connections will be -+; accepted from any ip address. -+; Default Value: any -+;listen.allowed_clients = 127.0.0.1 -+ -+; Specify the nice(2) priority to apply to the pool processes (only if set) -+; The value can vary from -19 (highest priority) to 20 (lower priority) -+; Note: - It will only work if the FPM master process is launched as root -+; - The pool processes will inherit the master process priority -+; unless it specified otherwise -+; Default Value: no set -+; process.priority = -19 -+ -+; Choose how the process manager will control the number of child processes. -+; Possible Values: -+; static - a fixed number (pm.max_children) of child processes; -+; dynamic - the number of child processes are set dynamically based on the -+; following directives. With this process management, there will be -+; always at least 1 children. -+; pm.max_children - the maximum number of children that can -+; be alive at the same time. -+; pm.start_servers - the number of children created on startup. -+; pm.min_spare_servers - the minimum number of children in 'idle' -+; state (waiting to process). If the number -+; of 'idle' processes is less than this -+; number then some children will be created. -+; pm.max_spare_servers - the maximum number of children in 'idle' -+; state (waiting to process). If the number -+; of 'idle' processes is greater than this -+; number then some children will be killed. -+; ondemand - no children are created at startup. Children will be forked when -+; new requests will connect. The following parameter are used: -+; pm.max_children - the maximum number of children that -+; can be alive at the same time. -+; pm.process_idle_timeout - The number of seconds after which -+; an idle process will be killed. -+; Note: This value is mandatory. -+pm = dynamic -+ -+; The number of child processes to be created when pm is set to 'static' and the -+; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -+; This value sets the limit on the number of simultaneous requests that will be -+; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -+; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -+; CGI. The below defaults are based on a server without much resources. Don't -+; forget to tweak pm.* to fit your needs. -+; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -+; Note: This value is mandatory. -+pm.max_children = 5 -+ -+; The number of child processes created on startup. -+; Note: Used only when pm is set to 'dynamic' -+; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -+pm.start_servers = 2 -+ -+; The desired minimum number of idle server processes. -+; Note: Used only when pm is set to 'dynamic' -+; Note: Mandatory when pm is set to 'dynamic' -+pm.min_spare_servers = 1 -+ -+; The desired maximum number of idle server processes. -+; Note: Used only when pm is set to 'dynamic' -+; Note: Mandatory when pm is set to 'dynamic' -+pm.max_spare_servers = 3 -+ -+; The number of seconds after which an idle process will be killed. -+; Note: Used only when pm is set to 'ondemand' -+; Default Value: 10s -+;pm.process_idle_timeout = 10s; -+ -+; The number of requests each child process should execute before respawning. -+; This can be useful to work around memory leaks in 3rd party libraries. For -+; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -+; Default Value: 0 -+;pm.max_requests = 500 -+ -+; The URI to view the FPM status page. If this value is not set, no URI will be -+; recognized as a status page. It shows the following informations: -+; pool - the name of the pool; -+; process manager - static, dynamic or ondemand; -+; start time - the date and time FPM has started; -+; start since - number of seconds since FPM has started; -+; accepted conn - the number of request accepted by the pool; -+; listen queue - the number of request in the queue of pending -+; connections (see backlog in listen(2)); -+; max listen queue - the maximum number of requests in the queue -+; of pending connections since FPM has started; -+; listen queue len - the size of the socket queue of pending connections; -+; idle processes - the number of idle processes; -+; active processes - the number of active processes; -+; total processes - the number of idle + active processes; -+; max active processes - the maximum number of active processes since FPM -+; has started; -+; max children reached - number of times, the process limit has been reached, -+; when pm tries to start more children (works only for -+; pm 'dynamic' and 'ondemand'); -+; Value are updated in real time. -+; Example output: -+; pool: www -+; process manager: static -+; start time: 01/Jul/2011:17:53:49 +0200 -+; start since: 62636 -+; accepted conn: 190460 -+; listen queue: 0 -+; max listen queue: 1 -+; listen queue len: 42 -+; idle processes: 4 -+; active processes: 11 -+; total processes: 15 -+; max active processes: 12 -+; max children reached: 0 -+; -+; By default the status page output is formatted as text/plain. Passing either -+; 'html', 'xml' or 'json' in the query string will return the corresponding -+; output syntax. Example: -+; http://www.foo.bar/status -+; http://www.foo.bar/status?json -+; http://www.foo.bar/status?html -+; http://www.foo.bar/status?xml -+; -+; By default the status page only outputs short status. Passing 'full' in the -+; query string will also return status for each pool process. -+; Example: -+; http://www.foo.bar/status?full -+; http://www.foo.bar/status?json&full -+; http://www.foo.bar/status?html&full -+; http://www.foo.bar/status?xml&full -+; The Full status returns for each process: -+; pid - the PID of the process; -+; state - the state of the process (Idle, Running, ...); -+; start time - the date and time the process has started; -+; start since - the number of seconds since the process has started; -+; requests - the number of requests the process has served; -+; request duration - the duration in µs of the requests; -+; request method - the request method (GET, POST, ...); -+; request URI - the request URI with the query string; -+; content length - the content length of the request (only with POST); -+; user - the user (PHP_AUTH_USER) (or '-' if not set); -+; script - the main script called (or '-' if not set); -+; last request cpu - the %cpu the last request consumed -+; it's always 0 if the process is not in Idle state -+; because CPU calculation is done when the request -+; processing has terminated; -+; last request memory - the max amount of memory the last request consumed -+; it's always 0 if the process is not in Idle state -+; because memory calculation is done when the request -+; processing has terminated; -+; If the process is in Idle state, then informations are related to the -+; last request the process has served. Otherwise informations are related to -+; the current request being served. -+; Example output: -+; ************************ -+; pid: 31330 -+; state: Running -+; start time: 01/Jul/2011:17:53:49 +0200 -+; start since: 63087 -+; requests: 12808 -+; request duration: 1250261 -+; request method: GET -+; request URI: /test_mem.php?N=10000 -+; content length: 0 -+; user: - -+; script: /home/fat/web/docs/php/test_mem.php -+; last request cpu: 0.00 -+; last request memory: 0 -+; -+; Note: There is a real-time FPM status monitoring sample web page available -+; It's available in: @EXPANDED_DATADIR@/fpm/status.html -+; -+; Note: The value must start with a leading slash (/). The value can be -+; anything, but it may not be a good idea to use the .php extension or it -+; may conflict with a real PHP file. -+; Default Value: not set -+;pm.status_path = /status -+ -+; The ping URI to call the monitoring page of FPM. If this value is not set, no -+; URI will be recognized as a ping page. This could be used to test from outside -+; that FPM is alive and responding, or to -+; - create a graph of FPM availability (rrd or such); -+; - remove a server from a group if it is not responding (load balancing); -+; - trigger alerts for the operating team (24/7). -+; Note: The value must start with a leading slash (/). The value can be -+; anything, but it may not be a good idea to use the .php extension or it -+; may conflict with a real PHP file. -+; Default Value: not set -+;ping.path = /ping -+ -+; This directive may be used to customize the response of a ping request. The -+; response is formatted as text/plain with a 200 response code. -+; Default Value: pong -+;ping.response = pong -+ -+; The access log file -+; Default: not set -+;access.log = log/$pool.access.log -+ -+; The access log format. -+; The following syntax is allowed -+; %%: the '%' character -+; %C: %CPU used by the request -+; it can accept the following format: -+; - %{user}C for user CPU only -+; - %{system}C for system CPU only -+; - %{total}C for user + system CPU (default) -+; %d: time taken to serve the request -+; it can accept the following format: -+; - %{seconds}d (default) -+; - %{miliseconds}d -+; - %{mili}d -+; - %{microseconds}d -+; - %{micro}d -+; %e: an environment variable (same as $_ENV or $_SERVER) -+; it must be associated with embraces to specify the name of the env -+; variable. Some exemples: -+; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -+; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -+; %f: script filename -+; %l: content-length of the request (for POST request only) -+; %m: request method -+; %M: peak of memory allocated by PHP -+; it can accept the following format: -+; - %{bytes}M (default) -+; - %{kilobytes}M -+; - %{kilo}M -+; - %{megabytes}M -+; - %{mega}M -+; %n: pool name -+; %o: output header -+; it must be associated with embraces to specify the name of the header: -+; - %{Content-Type}o -+; - %{X-Powered-By}o -+; - %{Transfert-Encoding}o -+; - .... -+; %p: PID of the child that serviced the request -+; %P: PID of the parent of the child that serviced the request -+; %q: the query string -+; %Q: the '?' character if query string exists -+; %r: the request URI (without the query string, see %q and %Q) -+; %R: remote IP address -+; %s: status (response code) -+; %t: server time the request was received -+; it can accept a strftime(3) format: -+; %d/%b/%Y:%H:%M:%S %z (default) -+; %T: time the log has been written (the request has finished) -+; it can accept a strftime(3) format: -+; %d/%b/%Y:%H:%M:%S %z (default) -+; %u: remote user -+; -+; Default: "%R - %u %t \"%m %r\" %s" -+;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" -+ -+; The log file for slow requests -+; Default Value: not set -+; Note: slowlog is mandatory if request_slowlog_timeout is set -+;slowlog = log/$pool.log.slow -+ -+; The timeout for serving a single request after which a PHP backtrace will be -+; dumped to the 'slowlog' file. A value of '0s' means 'off'. -+; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -+; Default Value: 0 -+;request_slowlog_timeout = 0 -+ -+; The timeout for serving a single request after which the worker process will -+; be killed. This option should be used when the 'max_execution_time' ini option -+; does not stop script execution for some reason. A value of '0' means 'off'. -+; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -+; Default Value: 0 -+;request_terminate_timeout = 0 -+ -+; Set open file descriptor rlimit. -+; Default Value: system defined value -+;rlimit_files = 1024 -+ -+; Set max core size rlimit. -+; Possible Values: 'unlimited' or an integer greater or equal to 0 -+; Default Value: system defined value -+;rlimit_core = 0 -+ -+; Chroot to this directory at the start. This value must be defined as an -+; absolute path. When this value is not set, chroot is not used. -+; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -+; of its subdirectories. If the pool prefix is not set, the global prefix -+; will be used instead. -+; Note: chrooting is a great security feature and should be used whenever -+; possible. However, all PHP paths will be relative to the chroot -+; (error_log, sessions.save_path, ...). -+; Default Value: not set -+;chroot = -+ -+; Chdir to this directory at the start. -+; Note: relative path can be used. -+; Default Value: current directory or / when chroot -+;chdir = /var/www -+ -+; Redirect worker stdout and stderr into main error log. If not set, stdout and -+; stderr will be redirected to /dev/null according to FastCGI specs. -+; Note: on highloaded environement, this can cause some delay in the page -+; process time (several ms). -+; Default Value: no -+;catch_workers_output = yes -+ -+; Clear environment in FPM workers -+; Prevents arbitrary environment variables from reaching FPM worker processes -+; by clearing the environment in workers before env vars specified in this -+; pool configuration are added. -+; Setting to "no" will make all environment variables available to PHP code -+; via getenv(), $_ENV and $_SERVER. -+; Default Value: yes -+;clear_env = no -+ -+; Limits the extensions of the main script FPM will allow to parse. This can -+; prevent configuration mistakes on the web server side. You should only limit -+; FPM to .php extensions to prevent malicious users to use other extensions to -+; exectute php code. -+; Note: set an empty value to allow all extensions. -+; Default Value: .php -+;security.limit_extensions = .php .php3 .php4 .php5 -+ -+; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -+; the current environment. -+; Default Value: clean env -+;env[HOSTNAME] = $HOSTNAME -+;env[PATH] = /usr/local/bin:/usr/bin:/bin -+;env[TMP] = /tmp -+;env[TMPDIR] = /tmp -+;env[TEMP] = /tmp -+ -+; Additional php.ini defines, specific to this pool of workers. These settings -+; overwrite the values previously defined in the php.ini. The directives are the -+; same as the PHP SAPI: -+; php_value/php_flag - you can set classic ini defines which can -+; be overwritten from PHP call 'ini_set'. -+; php_admin_value/php_admin_flag - these directives won't be overwritten by -+; PHP call 'ini_set' -+; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. -+ -+; Defining 'extension' will load the corresponding shared extension from -+; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -+; overwrite previously defined php.ini values, but will append the new value -+; instead. -+ -+; Note: path INI options can be relative and will be expanded with the prefix -+; (pool, global or @prefix@) -+ -+; Default Value: nothing is defined by default except the values in php.ini and -+; specified at startup with the -d argument -+;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -+;php_flag[display_errors] = off -+;php_admin_value[error_log] = /var/log/fpm-php.www.log -+;php_admin_flag[log_errors] = on -+;php_admin_value[memory_limit] = 32M ---- php-5.5.7/sapi/fpm/config.m4~ 2013-12-16 17:57:03.000000000 +0200 -+++ php-5.5.7/sapi/fpm/config.m4 2013-12-16 18:00:34.936527309 +0200 -@@ -609,7 +609,7 @@ - - PHP_ADD_BUILD_DIR(sapi/fpm/fpm) - PHP_ADD_BUILD_DIR(sapi/fpm/fpm/events) -- PHP_OUTPUT(sapi/fpm/php-fpm.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html) -+ PHP_OUTPUT(sapi/fpm/php-fpm.conf sapi/fpm/php-fpm.conf-d sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html) - PHP_ADD_MAKEFILE_FRAGMENT([$abs_srcdir/sapi/fpm/Makefile.frag]) - - SAPI_FPM_PATH=sapi/fpm/php-fpm ---- php-5.6.2/sapi/fpm/Makefile.frag~ 2014-10-15 15:59:32.000000000 +0300 -+++ php-5.6.2/sapi/fpm/Makefile.frag 2014-10-27 08:12:57.402883790 +0200 -@@ -11,8 +11,9 @@ - @$(INSTALL) -m 0755 $(SAPI_FPM_PATH) $(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT) - - @echo "Installing PHP FPM config: $(INSTALL_ROOT)$(sysconfdir)/" && \ -- $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir) || : -+ $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/fpm.d || : - @$(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default || : -+ @$(INSTALL_DATA) sapi/fpm/php-fpm.conf-d $(INSTALL_ROOT)$(sysconfdir)/fpm.d/www.conf.default || : - - @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/" - @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8 diff --git a/intl-stdc++.patch b/intl-stdc++.patch index 7c18064..5f28248 100644 --- a/intl-stdc++.patch +++ b/intl-stdc++.patch @@ -17,10 +17,10 @@ so just omit PHP_ADD_LIBRARY(stdc++) --- php-7.0.6/ext/intl/config.m4~ 2016-04-28 21:13:06.000000000 +0300 +++ php-7.0.6/ext/intl/config.m4 2016-05-16 18:49:53.909531704 +0300 @@ -6,6 +6,7 @@ - [ --enable-intl Enable internationalization support]) + [Enable internationalization support])]) if test "$PHP_INTL" != "no"; then + dnl -lstdc++ not needed, will be inherited from icu PHP_SETUP_ICU(INTL_SHARED_LIBADD) PHP_SUBST(INTL_SHARED_LIBADD) - PHP_REQUIRE_CXX() + INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1" diff --git a/libdb-info.patch b/libdb-info.patch index ee25732..6713a61 100644 --- a/libdb-info.patch +++ b/libdb-info.patch @@ -1,8 +1,8 @@ --- php-7.0.0beta1/ext/dba/dba.c.libdb 2015-07-08 02:24:59.119020904 +0200 +++ php-7.0.0beta1/ext/dba/dba.c 2015-07-08 07:01:43.158767655 +0200 @@ -52,6 +52,10 @@ - #include "php_qdbm.h" #include "php_tcadb.h" + #include "php_lmdb.h" +#ifdef DB4_INCLUDE_FILE +#include DB4_INCLUDE_FILE diff --git a/mysql-lib-ver-mismatch.patch b/mysql-lib-ver-mismatch.patch index 81d9261..4968f50 100644 --- a/mysql-lib-ver-mismatch.patch +++ b/mysql-lib-ver-mismatch.patch @@ -7,5 +7,5 @@ -#if !defined(MYSQL_USE_MYSQLND) +#if 0 && !defined(MYSQL_USE_MYSQLND) if ((MYSQL_VERSION_ID / 100) != (mysql_get_client_version() / 100)) { - php_error_docref(NULL TSRMLS_CC, E_NOTICE, + php_error_docref(NULL, E_WARNING, "Headers and client library minor version mismatch. Headers:%d Library:%ld", diff --git a/openssl.patch b/openssl.patch new file mode 100644 index 0000000..33f759d --- /dev/null +++ b/openssl.patch @@ -0,0 +1,38 @@ +--- php-5.3.29/ext/openssl/openssl.c~ 2021-10-23 19:18:21.000000000 +0200 ++++ php-5.3.29/ext/openssl/openssl.c 2021-10-23 19:19:01.483125024 +0200 +@@ -1044,7 +1044,9 @@ PHP_MINIT_FUNCTION(openssl) + REGISTER_LONG_CONSTANT("PKCS7_NOSIGS", PKCS7_NOSIGS, CONST_CS|CONST_PERSISTENT); + + REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_CS|CONST_PERSISTENT); ++#ifdef RSA_SSLV23_PADDING + REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT); ++#endif + REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_CS|CONST_PERSISTENT); + +diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c +index 5564bf6f08..423f696c76 100644 +--- a/ext/openssl/xp_ssl.c ++++ b/ext/openssl/xp_ssl.c +@@ -1286,6 +1286,10 @@ static int php_openssl_set_server_specific_opts(php_stream *stream, SSL_CTX *ctx + zval *zv; + long ssl_ctx_options = SSL_CTX_get_options(ctx); + ++#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF ++ ssl_ctx_options |= SSL_OP_IGNORE_UNEXPECTED_EOF; ++#endif ++ + #if defined(HAVE_ECDH) && PHP_OPENSSL_API_VERSION < 0x10100 + if (php_openssl_set_server_ecdh_curve(stream, ctx) == FAILURE) { + return FAILURE; +@@ -1628,6 +1632,10 @@ int php_openssl_setup_crypto(php_stream *stream, + ssl_ctx_options = SSL_OP_ALL; + #endif + ++#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF ++ ssl_ctx_options |= SSL_OP_IGNORE_UNEXPECTED_EOF; ++#endif ++ + if (sslsock->ctx == NULL) { + php_error_docref(NULL, E_WARNING, "SSL context creation failure"); + return FAILURE; diff --git a/php-both-apxs.patch b/php-both-apxs.patch index 3cba2ae..f6c828b 100644 --- a/php-both-apxs.patch +++ b/php-both-apxs.patch @@ -1,7 +1,7 @@ --- php-5.2.4/build/Makefile.global~ 2007-08-31 19:35:54.000000000 +0300 +++ php-5.2.4/build/Makefile.global 2007-08-31 19:40:18.287528480 +0300 @@ -21,6 +21,12 @@ - $(LIBTOOL) --mode=link $(CC) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(phptempdir)/libphp_common.la $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ + $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(phptempdir)/libphp_common.la $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ -@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1 +$(LIBTOOL_SAPI): libphp_common.la $(PHP_SAPI_OBJS) diff --git a/php-config-dir.patch b/php-config-dir.patch index b6abad5..05158a3 100644 --- a/php-config-dir.patch +++ b/php-config-dir.patch @@ -1,13 +1,13 @@ --- php-5.2.0/scripts/php-config.in 2006-12-14 01:11:33.348180526 +0200 +++ php-5.2.4/scripts/php-config.in 2007-08-31 19:43:04.061307670 +0300 @@ -2,6 +2,7 @@ - + SED="@SED@" prefix="@prefix@" - exec_prefix="@exec_prefix@" + datarootdir="@datarootdir@" +sysconfdir='@sysconfdir@' + exec_prefix="@exec_prefix@" version="@PHP_VERSION@" - version_id="@PHP_VERSION_ID@" - includedir="@includedir@/php" + vernum="@PHP_VERSION_ID@" @@ -53,6 +54,8 @@ echo $extension_dir;; --include-dir) @@ -23,5 +23,5 @@ --extension-dir [$extension_dir] + --sysconfdir [$sysconfdir] --include-dir [$include_dir] + --man-dir [$man_dir] --php-binary [$php_binary] - --php-sapis [$php_sapis] diff --git a/php-db.patch b/php-db.patch index f6ba5be..3b43a3f 100644 --- a/php-db.patch +++ b/php-db.patch @@ -1,7 +1,7 @@ --- php-7.1.1/ext/dba/config.m4.orig 2017-01-17 21:44:40.000000000 +0100 +++ php-7.1.1/ext/dba/config.m4 2017-01-27 22:08:45.385645468 +0100 @@ -245,7 +245,7 @@ - ],[ + ]])],[ AC_EGREP_CPP(yes,[ #include "$THIS_INCLUDE" -#if DB_VERSION_MAJOR == $1 || ($1 == 4 && DB_VERSION_MAJOR == 5) diff --git a/php-dba-link.patch b/php-dba-link.patch index 125e9dc..1479ac7 100644 --- a/php-dba-link.patch +++ b/php-dba-link.patch @@ -8,4 +8,4 @@ + LIBS=$old_LIBS lib_found=1 ]) - ]) + ],[]) diff --git a/php-fcgi-error_log-no-newlines.patch b/php-fcgi-error_log-no-newlines.patch deleted file mode 100644 index 83c4509..0000000 --- a/php-fcgi-error_log-no-newlines.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- php-7.0/sapi/cgi/cgi_main.c~ 2015-05-21 23:12:23.000000000 +0300 -+++ php-7.0/sapi/cgi/cgi_main.c 2015-05-21 23:13:24.947976867 +0300 -@@ -701,12 +701,8 @@ - request = (fcgi_request*) SG(server_context); - if (request) { - int ret, len = (int)strlen(message); -- char *buf = malloc(len+2); - -- memcpy(buf, message, len); -- memcpy(buf + len, "\n", sizeof("\n")); -- ret = fcgi_write(request, FCGI_STDERR, buf, (int)(len + 1)); -- free(buf); -+ ret = fcgi_write(request, FCGI_STDERR, message, len); - if (ret < 0) { - php_handle_aborted_connection(); - } diff --git a/php-fcgi-graceful.patch b/php-fcgi-graceful.patch index 2540bc3..5ce13ea 100644 --- a/php-fcgi-graceful.patch +++ b/php-fcgi-graceful.patch @@ -27,12 +27,12 @@ echo "end!
\n"; +/* Socket we are listening on incoming connections */ +static int fcgi_fd = 0; + - /** - * Process group - */ + #ifndef PHP_WIN32 + /* Did parent received exit signals SIG_TERM/SIG_INT/SIG_QUIT */ + static int exit_signal = 0; @@ -1221,6 +1224,21 @@ - exit(0); } + #endif +/** + * Graceful shutdown. Close listening sockets. @@ -58,8 +58,8 @@ echo "end!
\n"; char *bindpath = NULL; - int fcgi_fd = 0; fcgi_request *request = NULL; + int warmup_repeats = 0; int repeats = 1; - int benchmark = 0; @@ -2080,9 +2080,14 @@ parent = 0; diff --git a/php-fpm-config.patch b/php-fpm-config.patch index c020558..11b9933 100644 --- a/php-fpm-config.patch +++ b/php-fpm-config.patch @@ -20,16 +20,16 @@ --- php-5.6.5/sapi/fpm/www.conf.in~ 2015-02-04 19:26:16.000000000 +0200 +++ php-5.6.5/sapi/fpm/www.conf.in 2015-02-04 19:27:25.275218535 +0200 @@ -32,7 +32,7 @@ - ; specific port; + ; (IPv6 and IPv4-mapped) on a specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. -listen = 127.0.0.1:9000 +listen = /var/run/php/@processname@.sock ; Set listen(2) backlog. - ; Default Value: 65535 (-1 on FreeBSD and OpenBSD) + ; Default Value: 511 (-1 on FreeBSD and OpenBSD) @@ -46,9 +46,9 @@ - ; BSD-derived systems allow connections regardless of permissions. + ; and group can be specified either by name or by their numeric IDs. ; Default Values: user and group are set as the running user ; mode is set to 0660 -;listen.owner = @php_fpm_user@ @@ -83,5 +83,5 @@ + $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf; \ + $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/fpm.d/www.conf; \ fi - + @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/" diff --git a/php-link-libs.patch b/php-link-libs.patch index fb73edd..edd3e4f 100644 --- a/php-link-libs.patch +++ b/php-link-libs.patch @@ -1,7 +1,7 @@ --- php-7.3.0beta3/build/php.m4~ 2018-08-28 13:26:36.000000000 +0300 +++ php-7.3.0beta3/build/php.m4 2018-09-05 18:56:49.744106256 +0300 @@ -1829,18 +1829,18 @@ - dnl Wrapper for AC_CHECK_LIB + dnl Wrapper for AC_CHECK_LIB. dnl AC_DEFUN([PHP_CHECK_LIBRARY], [ - save_old_LDFLAGS=$LDFLAGS diff --git a/php-mysql-ssl-context.patch b/php-mysql-ssl-context.patch new file mode 100644 index 0000000..c8ff48d --- /dev/null +++ b/php-mysql-ssl-context.patch @@ -0,0 +1,36 @@ +; obey default context options +; https://bugs.php.net/bug.php?id=68344 +diff -urbB php-5.6.12/ext/mysqlnd/mysqlnd_net.c php-5.6.12/ext/mysqlnd/mysqlnd_net.c +--- php-5.6.12/ext/mysqlnd/mysqlnd_net.c 2015-08-06 09:55:57.000000000 +0200 ++++ php-5.6.12/ext/mysqlnd/mysqlnd_net.c 2015-08-10 13:25:30.187912101 +0200 +@@ -29,6 +29,7 @@ + #include "mysqlnd_ext_plugin.h" + #include "php_network.h" + #include "zend_ini.h" ++#include "ext/standard/file.h" + #ifdef MYSQLND_COMPRESSION_ENABLED + #include + #endif +@@ -868,6 +868,21 @@ MYSQLND_METHOD(mysqlnd_net, enable_ssl)( + DBG_RETURN(FAIL); + } + ++ if (FG(default_context)) { ++ zval **tmpzval = NULL; ++ int i = 0; ++ /* copy values from default stream settings */ ++ char *opts[] = { "allow_self_signed", "cafile", "capath", "ciphers", "CN_match", ++ "disable_compression", "local_cert", "local_pk", "no_ticket", "passphrase", ++ "peer_fingerprint", "peer_name", "SNI_enabled", "SNI_server_certs", "SNI_server_name", ++ "verify_depth", "verify_peer", "verify_peer_name", NULL }; ++ while (opts[i]) { ++ if (php_stream_context_get_option(FG(default_context), "ssl", opts[i], &tmpzval) == SUCCESS) ++ php_stream_context_set_option(context, "ssl", opts[i], *tmpzval); ++ i++; ++ } ++ } ++ + if (net->data->options.ssl_key) { + zval key_zval; + ZVAL_STRING(&key_zval, net->data->options.ssl_key, 0); + diff --git a/php-mysqli-charsetphpini.patch b/php-mysqli-charsetphpini.patch deleted file mode 100644 index 8a22fa3..0000000 --- a/php-mysqli-charsetphpini.patch +++ /dev/null @@ -1,52 +0,0 @@ ---- php-7.0.1/ext/mysqli/mysqli.c 2015-12-16 10:42:04.000000000 +0000 -+++ php-7.0.1/ext/mysqli/mysqli.c 2015-12-28 15:16:20.868443158 +0000 -@@ -522,6 +522,7 @@ PHP_INI_BEGIN() - #else - STD_PHP_INI_ENTRY("mysqli.default_socket", NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_socket, zend_mysqli_globals, mysqli_globals) - #endif -+ STD_PHP_INI_ENTRY("mysqli.connect_charset", NULL, PHP_INI_ALL, OnUpdateString, connect_charset, zend_mysqli_globals, mysqli_globals) - STD_PHP_INI_BOOLEAN("mysqli.reconnect", "0", PHP_INI_SYSTEM, OnUpdateLong, reconnect, zend_mysqli_globals, mysqli_globals) - STD_PHP_INI_BOOLEAN("mysqli.allow_local_infile", "1", PHP_INI_SYSTEM, OnUpdateLong, allow_local_infile, zend_mysqli_globals, mysqli_globals) - PHP_INI_END() -@@ -545,6 +546,7 @@ static PHP_GINIT_FUNCTION(mysqli) - mysqli_globals->default_user = NULL; - mysqli_globals->default_pw = NULL; - mysqli_globals->default_socket = NULL; -+ mysqli_globals->connect_charset = NULL; - mysqli_globals->reconnect = 0; - mysqli_globals->report_mode = 0; - mysqli_globals->report_ht = 0; ---- php-7.0.1/ext/mysqli/mysqli_nonapi.c 2015-12-16 10:42:03.000000000 +0000 -+++ php-7.0.1/ext/mysqli/mysqli_nonapi.c 2015-12-28 15:23:36.769443158 +0000 -@@ -56,7 +56,7 @@ void mysqli_common_connect(INTERNAL_FUNC - zval *object = getThis(); - char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL, - *ssl_key = NULL, *ssl_cert = NULL, *ssl_ca = NULL, *ssl_capath = NULL, -- *ssl_cipher = NULL; -+ *ssl_cipher = NULL, *connect_charset = NULL; - size_t hostname_len = 0, username_len = 0, passwd_len = 0, dbname_len = 0, socket_len = 0; - zend_bool persistent = FALSE, ssl = FALSE; - zend_long port = 0, flags = 0; -@@ -257,6 +257,12 @@ void mysqli_common_connect(INTERNAL_FUNC - } - #endif - -+ connect_charset = MyG(connect_charset); -+ -+ if (connect_charset != NULL) { -+ mysql_options(mysql->mysql, MYSQL_SET_CHARSET_NAME, connect_charset); -+ } -+ - #if !defined(MYSQLI_USE_MYSQLND) - /* BC for prior to bug fix #53425 */ - flags |= CLIENT_MULTI_RESULTS; ---- php-7.0.1/ext/mysqli/php_mysqli_structs.h 2015-12-28 15:16:20.870443158 +0000 -+++ php-7.0.1/ext/mysqli/php_mysqli_structs.h 2015-12-28 15:23:04.136443158 +0000 -@@ -330,6 +330,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mysqli) - char *default_user; - char *default_socket; - char *default_pw; -+ char *connect_charset; - zend_long reconnect; - zend_long allow_local_infile; - zend_long strict; diff --git a/php-oracle-instantclient.patch b/php-oracle-instantclient.patch new file mode 100644 index 0000000..79c08c6 --- /dev/null +++ b/php-oracle-instantclient.patch @@ -0,0 +1,39 @@ +checking Oracle Instant Client SDK header directory... configure: error: Oracle Instant Client SDK header files not found + +--- php-5.3.3/ext/oci8/config.m4.orig 2010-06-25 23:18:09.000000000 +0200 ++++ php-5.3.3/ext/oci8/config.m4 2010-09-10 19:37:23.484315002 +0200 +@@ -304,6 +304,9 @@ + + AC_MSG_CHECKING([Oracle Instant Client SDK header directory]) + ++ dnl Header directory for Instant Client SDK PLD RPM install ++ OCISDKPLDINC=$PHP_OCI8_INSTANT_CLIENT/../include/oracle/client ++ + dnl Header directory for Instant Client SDK RPM install + OCISDKRPMINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!^/usr/lib/oracle/\(.*\)/client\('${PHP_OCI8_IC_LIBDIR_SUFFIX}'\)*/lib[/]*$!/usr/include/oracle/\1/client\2!'` + +@@ -313,7 +316,11 @@ + dnl Header directory for manual installation + OCISDKMANINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!\(.*\)/lib[/]*$!\1/include!'` + +- if test -f "$OCISDKRPMINC/oci.h"; then ++ if test -f "$OCISDKPLDINC/oci.h"; then ++ AC_MSG_RESULT($OCISDKPLDINC) ++ PHP_ADD_INCLUDE($OCISDKPLDINC) ++ OCI8INCDIR=$OCISDKPLDINC ++ elif test -f "$OCISDKRPMINC/oci.h"; then + AC_MSG_RESULT($OCISDKRPMINC) + PHP_ADD_INCLUDE($OCISDKRPMINC) + OCI8INCDIR=$OCISDKRPMINC +--- php-7.2.0RC1/ext/pdo_oci/config.m4~ 2017-09-11 14:32:13.000000000 +0300 ++++ php-7.2.0RC1/ext/pdo_oci/config.m4 2017-09-11 14:45:25.019346828 +0300 +@@ -113,6 +113,9 @@ + elif test -f "$OCISDKZIPINC/oci.h" ; then + PHP_ADD_INCLUDE($OCISDKZIPINC) + AC_MSG_RESULT($OCISDKZIPINC) ++ elif test -f $PDO_OCI_LIB_DIR/../include/oracle/client/oci.h ; then ++ PHP_ADD_INCLUDE($PDO_OCI_LIB_DIR/../include/oracle/client) ++ AC_MSG_RESULT($PDO_OCI_LIB_DIR/../include/oracle/client) + else + AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your Instant Client install]) + fi diff --git a/php-pdo_mysql-charsetphpini.patch b/php-pdo_mysql-charsetphpini.patch deleted file mode 100644 index 36a7c95..0000000 --- a/php-pdo_mysql-charsetphpini.patch +++ /dev/null @@ -1,66 +0,0 @@ -This is damn ugly patch if you need to update it, see PHP_5_2 branch version to -understand what this patch is supposed to do as in 5.3 the ini section is -enabled only if mysqlnd driver is enabled which makes the contexts really -small. - ---- php-5.3.1/ext/pdo_mysql/mysql_driver.c~ 2010-02-20 01:08:04.000000000 +0200 -+++ php-5.3.1/ext/pdo_mysql/mysql_driver.c 2010-02-20 01:08:52.982186037 +0200 -@@ -436,6 +436,7 @@ - pdo_mysql_db_handle *H; - int i, ret = 0; - char *host = NULL, *unix_socket = NULL; -+ char *connect_charset = NULL; - unsigned int port = 3306; - char *dbname; - struct pdo_data_src_parser vars[] = { -@@ -731,6 +731,12 @@ - password_len = strlen(dbh->password); - } - -+ connect_charset = PDO_MYSQL_G(connect_charset); -+ -+ if (connect_charset != NULL) { -+ mysql_options(H->server, MYSQL_SET_CHARSET_NAME, connect_charset); -+ } -+ - if (mysqlnd_connect(H->server, host, dbh->username, dbh->password, password_len, dbname, dbname_len, - port, unix_socket, connect_opts, PDO_MYSQL_G(mysqlnd_thd_zval_cache) TSRMLS_CC) == NULL) { - #else ---- php-5.3.3/ext/pdo_mysql/pdo_mysql.c~ 2010-07-24 19:23:14.000000000 +0300 -+++ php-5.3.3/ext/pdo_mysql/pdo_mysql.c 2010-07-24 19:24:48.363581841 +0300 -@@ -56,6 +56,7 @@ - #if PDO_DBG_ENABLED - STD_PHP_INI_ENTRY("pdo_mysql.debug", NULL, PHP_INI_SYSTEM, OnUpdateString, debug, zend_pdo_mysql_globals, pdo_mysql_globals) - #endif -+ STD_PHP_INI_ENTRY("pdo_mysql.connect_charset", NULL, PHP_INI_ALL, OnUpdateString, connect_charset, zend_pdo_mysql_globals, pdo_mysql_globals) - PHP_INI_END() - /* }}} */ - -@@ -89,9 +90,7 @@ - static PHP_MSHUTDOWN_FUNCTION(pdo_mysql) - { - php_pdo_unregister_driver(&pdo_mysql_driver); --#if PDO_USE_MYSQLND - UNREGISTER_INI_ENTRIES(); --#endif - - return SUCCESS; - } -@@ -161,6 +161,7 @@ - pdo_mysql_globals->debug = NULL; /* The actual string */ - pdo_mysql_globals->dbg = NULL; /* The DBG object*/ - #endif -+ pdo_mysql_globals->connect_charset = NULL; - } - /* }}} */ - ---- php-5.3.2RC3/ext/pdo_mysql/php_pdo_mysql_int.h~ 2010-02-04 11:37:38.000000000 +0200 -+++ php-5.3.2RC3/ext/pdo_mysql/php_pdo_mysql_int.h 2010-02-26 19:11:47.484055898 +0200 -@@ -69,6 +69,7 @@ - char *debug; /* The actual string */ - MYSQLND_DEBUG *dbg; /* The DBG object */ - #endif -+ char *connect_charset; - #if defined(PHP_WIN32) && !PDO_DBG_ENABLED - /* dummy member so we get at least one member in the struct - * and avoids build errors. diff --git a/php-readline.patch b/php-readline.patch index 01a0578..7fbecd5 100644 --- a/php-readline.patch +++ b/php-readline.patch @@ -1,7 +1,7 @@ ---- php-5.4.0alpha2/sapi/cli/config.m4~ 2011-08-05 12:59:18.000000000 +0300 -+++ php-5.4.0alpha2/sapi/cli/config.m4 2011-08-05 13:23:40.356628679 +0300 -@@ -31,7 +31,7 @@ - BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -Lnetware -lphp5lib -o \$(SAPI_CLI_PATH)" +--- php-7.4.0RC2/sapi/cli/config.m4~ 2019-09-23 11:55:05.000000000 +0300 ++++ php-7.4.0RC2/sapi/cli/config.m4 2019-09-23 11:56:17.340191296 +0300 +@@ -42,7 +42,7 @@ + BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" ;; *) - BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) libphp_common.la \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" diff --git a/php-shared.patch b/php-shared.patch index ac15661..64f7ea4 100644 --- a/php-shared.patch +++ b/php-shared.patch @@ -13,8 +13,8 @@ --- php-7.4.0RC3/build/Makefile.global~ 2019-10-04 16:11:24.000000000 +0300 +++ php-7.4.0RC3/build/Makefile.global 2019-10-09 15:21:11.198544363 +0300 @@ -13,8 +13,12 @@ - - build-modules: $(PHP_MODULES) + + build-binaries: $(PHP_BINARIES) -libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) - $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ @@ -44,7 +44,7 @@ --- php-7.4.0RC2/sapi/cgi/config9.m4~ 2019-09-17 19:37:54.000000000 +0300 +++ php-7.4.0RC2/sapi/cgi/config9.m4 2019-09-20 13:43:03.654012130 +0300 @@ -55,7 +55,7 @@ - BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ;; *) - BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" @@ -65,7 +65,7 @@ --- php-7.4.0RC2/sapi/cli/config.m4~ 2019-09-17 19:37:55.000000000 +0300 +++ php-7.4.0RC2/sapi/cli/config.m4 2019-09-20 13:44:29.124988912 +0300 @@ -42,7 +42,7 @@ - BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" + BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" ;; *) - BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" @@ -142,7 +142,7 @@ --- php-7.4.0RC2/sapi/fpm/config.m4~ 2019-09-17 19:37:55.000000000 +0300 +++ php-7.4.0RC2/sapi/fpm/config.m4 2019-09-20 13:56:34.351592384 +0300 @@ -660,7 +660,7 @@ - BUILD_FPM="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_FPM_OBJS) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" + BUILD_FPM="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_FPM_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" ;; *) - BUILD_FPM="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_FPM_OBJS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" diff --git a/php-stupidapache_version.patch b/php-stupidapache_version.patch index ab1d8e0..e8ae17b 100644 --- a/php-stupidapache_version.patch +++ b/php-stupidapache_version.patch @@ -1,7 +1,7 @@ --- php-5.4.0alpha2/build/php.m4 2011-08-07 21:13:21.581133944 +0300 +++ php-5.4.0alpha2/build/php.m4 2011-08-07 21:10:21.766717150 +0300 @@ -2607,7 +2609,14 @@ - dnl version for apache1/2. + dnl This macro is used to get a comparable version for Apache. dnl AC_DEFUN([PHP_AP_EXTRACT_VERSION],[ - ac_output=`$1 -v 2>&1 | grep version | $SED -e 's/Oracle-HTTP-//'` diff --git a/php-use-prog_sendmail.patch b/php-use-prog_sendmail.patch index 017b100..b14da33 100644 --- a/php-use-prog_sendmail.patch +++ b/php-use-prog_sendmail.patch @@ -1,6 +1,6 @@ ---- php-7.4.7/build/php.m4.orig 2020-06-26 16:43:50.784451000 +0200 -+++ php-7.4.7/build/php.m4 2020-06-26 16:45:13.716451000 +0200 -@@ -1732,8 +1732,10 @@ +--- php-7.4.12/build/php.m4~ 2020-11-09 14:38:20.000000000 +0200 ++++ php-7.4.12/build/php.m4 2020-11-09 14:39:53.522036584 +0200 +@@ -1731,8 +1731,10 @@ dnl Search for the sendmail binary. dnl AC_DEFUN([PHP_PROG_SENDMAIL], [ diff --git a/php-zlib-for-getimagesize.patch b/php-zlib-for-getimagesize.patch index 50a3ec3..4497859 100644 --- a/php-zlib-for-getimagesize.patch +++ b/php-zlib-for-getimagesize.patch @@ -5,8 +5,8 @@ see also http://bugs.php.net/bug.php?id=29611 --- php-7.0/ext/standard/image.c~ 2015-05-21 23:10:45.000000000 +0300 +++ php-7.0/ext/standard/image.c 2015-05-21 23:11:22.424948534 +0300 @@ -31,7 +31,7 @@ + #include "win32/php_stdint.h" #endif - #include "php_image.h" -#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) +#if HAVE_ZLIB @@ -20,7 +20,7 @@ see also http://bugs.php.net/bug.php?id=29611 -#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) +#if HAVE_ZLIB REGISTER_LONG_CONSTANT("IMAGETYPE_SWC", IMAGE_FILETYPE_SWC, CONST_CS | CONST_PERSISTENT); - #endif + #endif REGISTER_LONG_CONSTANT("IMAGETYPE_IFF", IMAGE_FILETYPE_IFF, CONST_CS | CONST_PERSISTENT); @@ -184,7 +184,7 @@ } @@ -30,7 +30,7 @@ see also http://bugs.php.net/bug.php?id=29611 +#if HAVE_ZLIB /* {{{ php_handle_swc */ - static struct gfxinfo *php_handle_swc(php_stream * stream TSRMLS_DC) + static struct gfxinfo *php_handle_swc(php_stream * stream) @@ -1321,7 +1321,7 @@ result = php_handle_swf(stream); break; diff --git a/php.spec b/php.spec index 6e0d51c..93f3cc9 100644 --- a/php.spec +++ b/php.spec @@ -15,7 +15,7 @@ %bcond_without phpdbg # disable phpdbg SAPI # - Extensions %bcond_without bcmath # without bcmath extension module -%bcond_without bz2 # without bz2 extension module +%bcond_without bzip2 # without bz2 extension module %bcond_without calendar # without calendar extension module %bcond_without ctype # without ctype extension module %bcond_without curl # without CURL extension module @@ -31,7 +31,7 @@ %bcond_without gettext # without gettext extension module %bcond_without gmp # without gmp extension module %bcond_without iconv # without iconv extension module -%bcond_without imap # without IMAP extension module +%bcond_with imap # without IMAP extension module %bcond_without intl # without Intl extension module %bcond_without json # without json extension module %bcond_without ldap # without LDAP extension module @@ -49,7 +49,7 @@ %bcond_without pdo_dblib # without PDO dblib extension module %bcond_without pdo_firebird # without PDO Firebird extension module %bcond_without pdo_mysql # without PDO MySQL extension module -%bcond_without pdo_oci # without PDO oci extension module +%bcond_without pdo_oci # without PDO oci extension module %bcond_without pdo_odbc # without PDO ODBC extension module %bcond_without pdo_pgsql # without PDO pgsql extension module %bcond_without pdo_sqlite # without PDO SQLite extension module @@ -65,8 +65,8 @@ %bcond_without sqlite3 # without SQLite3 extension module %bcond_without tidy # without Tidy extension module %bcond_without xmlrpc # without XML-RPC extension module -%bcond_without xsl # without xsl extension module -%bcond_without zip # without zip extension module +%bcond_without xsl # without xsl extension module +%bcond_without zip # without zip extension module # extensions options %bcond_without argon2 # argon2 password hashing %bcond_without instantclient # build Oracle oci8 extension module against oracle-instantclient package @@ -126,14 +126,14 @@ Summary(ru.UTF-8): PHP Версии 7 - язык препроцессирова Summary(uk.UTF-8): PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері Name: %{orgname}%{php_suffix} Version: 7.4.28 -Release: 1 +Release: 2 Epoch: 4 # All files licensed under PHP version 3.01, except # Zend is licensed under Zend # TSRM is licensed under BSD License: PHP 3.01 and Zend and BSD Group: Libraries -Source0: http://php.net/distributions/%{orgname}-%{version}.tar.xz +Source0: https://php.net/distributions/%{orgname}-%{version}.tar.xz # Source0-md5: ca4f40f41d028465bc810c007c3ed935 Source1: opcache.ini Source2: %{orgname}-mod_php.conf @@ -163,9 +163,6 @@ Patch24: %{orgname}-zlib-for-getimagesize.patch Patch25: %{orgname}-stupidapache_version.patch Patch27: %{orgname}-config-dir.patch Patch29: %{orgname}-fcgi-graceful.patch -Patch31: %{orgname}-fcgi-error_log-no-newlines.patch -Patch37: %{orgname}-mysqli-charsetphpini.patch -Patch38: %{orgname}-pdo_mysql-charsetphpini.patch Patch39: %{orgname}-use-prog_sendmail.patch Patch41: %{orgname}-fpm-config.patch Patch43: %{orgname}-silent-session-cleanup.patch @@ -173,12 +170,15 @@ Patch44: %{orgname}-include_path.patch Patch50: extension-shared-optional-dep.patch Patch53: fix-test-run.patch Patch59: %{orgname}-systzdata.patch +Patch60: %{orgname}-oracle-instantclient.patch Patch66: php-db.patch Patch67: mysql-lib-ver-mismatch.patch -Patch69: fpm-conf-split.patch +# https://bugs.php.net/bug.php?id=68344 +Patch68: php-mysql-ssl-context.patch Patch71: libdb-info.patch +Patch72: openssl.patch URL: http://php.net/ -%{?with_firebird:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}} +%{?with_pdo_firebird:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}} %{?with_pspell:BuildRequires: aspell-devel >= 2:0.50.0} BuildRequires: autoconf >= 2.59 BuildRequires: automake >= 1.4d @@ -189,10 +189,6 @@ BuildRequires: cyrus-sasl-devel >= 2 BuildRequires: db-devel >= 4.0 BuildRequires: elfutils-devel %{?with_enchant:BuildRequires: enchant-devel >= 1.1.3} -%{?with_kerberos5:BuildRequires: heimdal-devel} -%{?with_argon2:BuildRequires: libargon2-devel >= 20161029} -%{?with_ffi:BuildRequires: libffi-devel} -%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8} %if %{with pdo_dblib} BuildRequires: freetds-devel >= 0.82 %endif @@ -202,13 +198,17 @@ BuildRequires: gd-devel >= 2.1 %endif BuildRequires: gdbm-devel BuildRequires: gmp-devel >= 4.2 +%{?with_kerberos5:BuildRequires: heimdal-devel} %{?with_imap:BuildRequires: imap-devel >= 1:2007e-2} %{?with_gcov:BuildRequires: lcov} %{?with_fpm:BuildRequires: libapparmor-devel} +%{?with_argon2:BuildRequires: libargon2-devel >= 20161029} +%{?with_ffi:BuildRequires: libffi-devel} %{?with_intl:BuildRequires: libicu-devel >= 50.1} BuildRequires: libjpeg-devel BuildRequires: libltdl-devel >= 1.4 BuildRequires: libpng-devel >= 1.0.8 +%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8} %{?with_intl:BuildRequires: libstdc++-devel} BuildRequires: libtool >= 2:2.4.6 %{?with_webp:BuildRequires: libwebp-devel} @@ -220,7 +220,7 @@ BuildRequires: libxml2-devel >= 1:2.7.6-4 %{!?with_mysqli:BuildRequires: mysql-devel >= 4.1.13} %{!?with_pdo_mysql:BuildRequires: mysql-devel} %{?with_snmp:BuildRequires: net-snmp-devel >= 5.3} -BuildRequires: oniguruma-devel +BuildRequires: oniguruma-devel %{?with_ldap:BuildRequires: openldap-devel >= 2.3.0} %if %{with openssl} || %{with ldap} BuildRequires: openssl-devel >= 1.0.1 @@ -255,7 +255,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define php_sysconfdir /etc/%{name} %define php_extensiondir %{_libdir}/php/%{name} -%define php_datadir /usr/share/php/%{name} +%define php_data_dir /usr/share/php/%{name} %define _sysconfdir %{php_sysconfdir} # must be in sync with source. extra check ensuring that it is so is done in %%build @@ -785,7 +785,8 @@ support in image files. Moduł PHP dodający obsługę znaczników EXIF w plikach obrazków. %package ffi -Summary: %{modname} - Foreign Function Interface +Summary: Foreign Function Interface module for PHP +Summary(pl.UTF-8): Moduł Foreign Function Interface (interfejsu do obcych języków) dla PHP Group: Libraries URL: https://www.php.net/manual/en/book.ffi.php Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -795,6 +796,10 @@ Provides: php(ffi) = %{version} FFI is a multi-platform extension for PHP that allows you to bind to functions from arbitrary shared libraries and call them. +%description ffi -l pl.UTF-8 +FFI to wieloplatformowe rozszerzenie dla PHP pozwalające dowiązywać +funkcje z dowolnych bibliotek współdzielonych i wywoływać je. + %package fileinfo Summary: libmagic bindings Summary(pl.UTF-8): Wiązania do libmagic @@ -1547,6 +1552,7 @@ Moduł PHP dodający obsługę gniazdek. %package sodium Summary: Wrapper for the Sodium cryptographic library +Summary(pl.UTF-8): Interfejs do biblioteki kryptograficznej Sodium Group: Libraries URL: https://paragonie.com/book/pecl-libsodium Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -1555,6 +1561,9 @@ Provides: php(sodium) = %{sodiumver} %description sodium A simple, low-level PHP extension for libsodium. +%description sodium -l pl.UTF-8 +Proste, niskopoziomowe rozszerzenie PHP wykorzystując libsodium. + %package sqlite3 Summary: SQLite3 extension module for PHP Summary(pl.UTF-8): Moduł SQLite3 dla PHP @@ -1815,6 +1824,8 @@ cp -p php.ini-production php.ini %patch0 -p1 %patch1 -p1 %patch3 -p1 +%patch4 -p1 + %patch7 -p1 %patch9 -p1 %patch10 -p1 @@ -1828,22 +1839,26 @@ cp -p php.ini-production php.ini %patch25 -p1 %patch27 -p1 %patch29 -p1 -%patch31 -p1 -%patch37 -p1 -%patch38 -p1 %patch39 -p1 -%if %{with fpm} %patch41 -p1 -%endif %patch43 -p1 %patch44 -p1 %patch50 -p1 + %patch53 -p1 -%undos ext/spl/tests/SplFileInfo_getInode_basic.phpt %patch59 -p1 -b .systzdata +%if %{with instantclient} +%patch60 -p1 -b .instantclient +%endif %patch66 -p1 %patch67 -p1 +#%patch68 -p1 DROP or update to 7.0 APIs %patch71 -p1 +%patch72 -p1 + +sed -E -i -e '1s,#!\s*/usr/bin/env\s+(.*),#!%{__bindir}\1,' \ + ext/ext_skel.php \ + run-tests.php %{__sed} -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4 @@ -1854,7 +1869,18 @@ find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f %{__rm} -r ext/com_dotnet # remove all bundled libraries not to link with them accidentally +#%{__rm} -r ext/bcmath/libbcmath +#%{__rm} -r ext/date/lib +#%{__rm} -r ext/fileinfo/libmagic +#%{__rm} -r ext/dba/libcdb +#%{__rm} -r ext/dba/libflatfile +#%{__rm} -r ext/dba/libinifile +#%{__rm} -r ext/gd/libgd +#%{__rm} -r ext/mbstring/libmbfl +#%{__rm} -r ext/pcre/pcre2lib +#%{__rm} -r ext/soap/interop %{__rm} -r ext/xmlrpc/libxmlrpc +#%{__rm} -r ext/zip/lib %{__rm} ext/date/lib/timezonedb.h cp -pf Zend/LICENSE{,.Zend} @@ -1931,6 +1957,11 @@ ix86=: x8664=: \ sh -xe %{_sourcedir}/skip-tests.sh %build +get_version() { + local define="$1" filename="$2" + awk -vdefine="$define" '/#define/ && $2 == define {print $3}' "$filename" | xargs +} + API=$(awk '/#define PHP_API_VERSION/{print $3}' main/php.h) if [ $API != %{php_api_version} ]; then echo "Set %%define php_api_version to $API and re-run." @@ -1962,7 +1993,7 @@ if test "$ver" != "PHP_VERSION"; then : Update the fileinfover macro and rebuild. exit 1 fi -ver=$(awk '/#define PHP_PHAR_VERSION/ {print $3}' ext/phar/php_phar.h | xargs) +ver=$(get_version PHP_PHAR_VERSION ext/phar/php_phar.h) if test "$ver" != "PHP_VERSION"; then : Error: Upstream PHAR version is now ${ver}, expecting %{pharver}. : Update the pharver macro and rebuild. @@ -1984,19 +2015,19 @@ if test "$ver" != "%{zipver}"; then : Update the zipver macro and rebuild. exit 1 fi -ver=$(awk '/#define PHP_JSON_VERSION/ {print $3}' ext/json/php_json.h | xargs) +ver=$(get_version PHP_JSON_VERSION ext/json/php_json.h) if test "$ver" != "PHP_VERSION"; then : Error: Upstream JSON version is now ${ver}, expecting %{jsonver}. : Update the jsonver macro and rebuild. exit 1 fi -ver=$(awk '/#define PHPDBG_VERSION/ {print $3}' sapi/phpdbg/phpdbg.h | xargs) +ver=$(get_version PHPDBG_VERSION sapi/phpdbg/phpdbg.h) if test "$ver" != "PHP_VERSION"; then : Error: Upstream phpdbg version is now ${ver}, expecting %{phpdbgver}. : Update the phpdbgver macro and rebuild. exit 1 fi -ver=$(awk '/#define PHP_BZ2_VERSION/ {print $3}' ext/bz2/php_bz2.h | xargs) +ver=$(get_version PHP_BZ2_VERSION ext/bz2/php_bz2.h) if test "$ver" != "PHP_VERSION"; then : Error: Upstream BZIP2 version is now ${ver}, expecting %{bz2ver}. : Update the bz2ver macro and rebuild. @@ -2006,13 +2037,13 @@ ver=$(awk '/#define PHP_ENCHANT_VERSION/ {print $3}' ext/enchant/php_enchant.h | if test "$ver" != "PHP_VERSION"; then exit 1 fi -ver=$(awk '/#define PHP_HASH_VERSION/ {print $3}' ext/hash/php_hash.h | xargs) +ver=$(get_version PHP_HASH_VERSION ext/hash/php_hash.h) if test "$ver" != "PHP_VERSION"; then : Error: Upstream HASH version is now ${ver}, expecting %{hashver}. : Update the hashver macro and rebuild. exit 1 fi -ver=$(awk '/#define PHP_INTL_VERSION/ {print $3}' ext/intl/php_intl.h | xargs) +ver=$(get_version PHP_INTL_VERSION ext/intl/php_intl.h) if test "$ver" != "PHP_VERSION"; then : Error: Upstream Intl version is now ${ver}, expecting %{intlver}. : Update the intlver macro and rebuild. @@ -2083,37 +2114,40 @@ for sapi in $sapis; do sapi_args='' case $sapi in cgi-fcgi) - sapi_args='--disable-cli' + sapi_args='--enable-cgi' ;; cli) - sapi_args='--disable-cgi %{?with_gcov:--enable-gcov}' + sapi_args='--enable-cli %{?with_gcov:--enable-gcov}' ;; fpm) - sapi_args='--disable-cli --disable-cgi --enable-fpm' + sapi_args='--enable-fpm' ;; embed) - sapi_args='--disable-cli --disable-cgi --enable-embed' + sapi_args='--enable-embed' ;; apxs2) ver=$(rpm -q --qf '%{V}' apache-devel) - sapi_args="--disable-cli --disable-cgi --with-apxs2=%{apxs2} --with-apache-version=$ver" + sapi_args="--with-apxs2=%{apxs2} --with-apache-version=$ver" ;; litespeed) - sapi_args='--disable-cli --disable-cgi --enable-litespeed' + sapi_args='--enable-litespeed' ;; phpdbg) - sapi_args='--disable-cli --disable-cgi --enable-phpdbg %{?debug:--enable-phpdbg-debug}' + sapi_args='--enable-phpdbg %{?debug:--enable-phpdbg-debug}' ;; esac %configure \ EXTRA_LDFLAGS="%{rpmldflags}" \ --program-suffix=%{php_suffix} \ + --disable-cgi \ + --disable-cli \ + --disable-phpdbg \ $sapi_args \ %if "%{!?configure_cache:0}%{?configure_cache}" == "0" --cache-file=config.cache \ %endif - --datadir=%{php_datadir} \ + --datadir=%{php_data_dir} \ --with-libdir=%{_lib} \ --with-config-file-path=%{_sysconfdir} \ --with-config-file-scan-dir=%{_sysconfdir}/conf.d \ @@ -2122,6 +2156,7 @@ for sapi in $sapis; do --%{!?with_debug:dis}%{?with_debug:en}able-debug \ %{?with_zts:--enable-maintainer-zts} \ --enable-inline-optimization \ + --enable-option-checking=fatal \ %{__enable_disable bcmath bcmath shared} \ %{__enable_disable calendar calendar shared} \ %{__enable_disable ctype ctype shared} \ @@ -2171,7 +2206,7 @@ for sapi in $sapis; do --enable-tokenizer=shared \ --enable-xml=shared \ --enable-xmlreader=shared \ - %{__with_without bz2 bz2 shared} \ + %{__with_without bzip2 bz2 shared} \ %{__with_without curl curl shared} \ --with-db4 \ %{__with_without iconv iconv shared} \ @@ -2454,9 +2489,9 @@ install -d $RPM_BUILD_ROOT%{_includedir}/php/php%{php_suffix}/ext/mbstring cp -p ext/mbstring/libmbfl/mbfl/*.h $RPM_BUILD_ROOT%{_includedir}/php/php%{php_suffix}/ext/mbstring # tests -install -d $RPM_BUILD_ROOT%{php_datadir}/tests/php -install -p run-tests.php $RPM_BUILD_ROOT%{php_datadir}/tests/php/run-tests.php -cp -a tests/* $RPM_BUILD_ROOT%{php_datadir}/tests/php +install -d $RPM_BUILD_ROOT%{php_data_dir}/tests/php +install -p run-tests.php $RPM_BUILD_ROOT%{php_data_dir}/tests/php/run-tests.php +cp -a tests/* $RPM_BUILD_ROOT%{php_data_dir}/tests/php # fix install paths, avoid evil rpaths sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common%{php_suffix}.la @@ -2548,7 +2583,14 @@ fi # restart webserver at the end of transaction [ ! -f /etc/httpd/conf.d/??_mod_php.conf ] || %service -q httpd restart -%triggerpostun common -- php-common < 4:5.3.28-7 +%triggerpostun common -- %{name}-common < 4:5.6.4-2, php-common < 4:5.6.4-2 +# switch to browscap package if the ini file has original value +%{__sed} -i -e 's#%{_sysconfdir}/browscap.ini#/usr/share/browscap/php_browscap.ini#' %{_sysconfdir}/php.ini +# disable browscap, if optional package not present +if [ ! -e /usr/share/browscap/php_browscap.ini ]; then + %{__sed} -i -e 's#^browscap = /usr/share/browscap/php_browscap.ini#;&#' %{_sysconfdir}/php.ini +fi + # migrate configs /etc/php/conf.d -> /etc/phpXY/conf.d/ # do config migration in php-common trigger, as the trigger is ran after all packages are upgraded # this way we can stick to one trigger, instead of attaching one for each (sub)package! @@ -2569,14 +2611,6 @@ for f in /etc/php/*.ini.rpmsave /etc/php/*.d/*.ini.rpmsave; do ' $nf done -%triggerpostun common -- %{name}-common < 4:5.6.4-2, php-common < 4:5.6.4-2 -# switch to browscap package if the ini file has original value -%{__sed} -i -e 's#%{_sysconfdir}/browscap.ini#/usr/share/browscap/php_browscap.ini#' %{_sysconfdir}/php.ini -# disable browscap, if optional package not present -if [ ! -e /usr/share/browscap/php_browscap.ini ]; then - %{__sed} -i -e 's#^browscap = /usr/share/browscap/php_browscap.ini#;&#' %{_sysconfdir}/php.ini -fi - %triggerpostun -n apache-mod_%{name} -- apache-mod_%{name} < 4:7.0.0-2.RC4 sed -i -e 's#modules/libphp[57].so#modules/mod_php.so#g' /etc/httpd/conf.d/*_mod_php.conf @@ -2746,7 +2780,7 @@ fi %dir %{_sysconfdir}/conf.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php.ini %attr(755,root,root) %{_libdir}/libphp_common%{php_suffix}-*.so -%dir %{php_datadir} +%dir %{php_data_dir} %dir %{php_extensiondir} %doc ext/session/mod_files.sh @@ -2775,7 +2809,7 @@ fi %attr(755,root,root) %{php_extensiondir}/bcmath.so %endif -%if %{with bz2} +%if %{with bzip2} %files bz2 %defattr(644,root,root,755) %doc ext/bz2/CREDITS @@ -2959,7 +2993,7 @@ fi %attr(755,root,root) %{php_extensiondir}/mysqlnd.so %endif -%if %{with oci} +%if %{with pdo_oci} %files oci8 %defattr(644,root,root,755) %doc ext/oci8/{CREDITS,README} @@ -3031,7 +3065,7 @@ fi %attr(755,root,root) %{php_extensiondir}/pdo_mysql.so %endif -%if %{with pdo_oci} +%if %{with oci} %files pdo-oci %defattr(644,root,root,755) %doc ext/pdo_oci/CREDITS @@ -3094,7 +3128,6 @@ fi %if %{with pspell} %files pspell %defattr(644,root,root,755) -%doc ext/pspell/CREDITS %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/??_pspell.ini %attr(755,root,root) %{php_extensiondir}/pspell.so %endif @@ -3184,18 +3217,18 @@ fi %files tests %defattr(644,root,root,755) -%dir %{php_datadir}/tests -%dir %{php_datadir}/tests/php -%{php_datadir}/tests/php/basic -%{php_datadir}/tests/php/classes -%{php_datadir}/tests/php/func -%{php_datadir}/tests/php/lang -%{php_datadir}/tests/php/output -%{php_datadir}/tests/php/run-test -%{php_datadir}/tests/php/security -%{php_datadir}/tests/php/strings -%{php_datadir}/tests/php/quicktester.inc -%attr(755,root,root) %{php_datadir}/tests/php/run-tests.php +%dir %{php_data_dir}/tests +%dir %{php_data_dir}/tests/php +%{php_data_dir}/tests/php/basic +%{php_data_dir}/tests/php/classes +%{php_data_dir}/tests/php/func +%{php_data_dir}/tests/php/lang +%{php_data_dir}/tests/php/output +%{php_data_dir}/tests/php/run-test +%{php_data_dir}/tests/php/security +%{php_data_dir}/tests/php/strings +%{php_data_dir}/tests/php/quicktester.inc +%attr(755,root,root) %{php_data_dir}/tests/php/run-tests.php %if %{with tidy} %files tidy @@ -3248,7 +3281,8 @@ fi %if %{with zip} %files zip %defattr(644,root,root,755) -%doc ext/zip/{CREDITS,examples} +%doc ext/zip/CREDITS +%doc ext/zip/examples %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/??_zip.ini %attr(755,root,root) %{php_extensiondir}/zip.so %endif