PHP_SUBST_OLD(PHP_INSTALLED_SAPIS)
PHP_SUBST(PHP_EXECUTABLE)
---- php-5.5.0alpha2/Makefile.global~ 2013-01-02 15:26:29.000000000 +0200
-+++ php-5.5.0alpha2/Makefile.global 2013-01-02 15:29:53.064968422 +0200
-@@ -77,7 +77,8 @@
+--- php-5.5.11/Makefile.global 2014-04-27 15:05:38.963814051 +0300
++++ php-5.5.11/Makefile.global 2014-04-27 15:09:54.438443707 +0300
+@@ -81,8 +81,15 @@
done; \
fi
-PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1'
+PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d 'safe_mode=0'
-+PHP_TEST_SHARED_SYSTEM_EXTENSIONS = pcre
++PHP_TEST_SHARED_SYSTEM_EXTENSIONS =
PHP_TEST_SHARED_EXTENSIONS = ` \
- if test "x$(PHP_MODULES)" != "x"; then \
- for i in $(PHP_MODULES)""; do \
-@@ -88,6 +89,12 @@
- for i in $(PHP_ZEND_EX)""; do \
- . $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
- done; \
-+ fi; \
+ if test "x$(PHP_TEST_SHARED_SYSTEM_EXTENSIONS)" != "x"; then \
+ for i in $(PHP_TEST_SHARED_SYSTEM_EXTENSIONS)""; do \
+ dlname=$$i.$(SHLIB_DL_SUFFIX_NAME); \
+ $(top_srcdir)/build/shtool echo -n -- " -d extension=$(EXTENSION_DIR)/$$dlname"; \
+ done; \
- fi`
- PHP_DEPRECATED_DIRECTIVES_REGEX = '^(define_syslog_variables|register_(globals|long_arrays)?|safe_mode|magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
-
-@@ -118,7 +118,10 @@
++ fi; \
+ if test "x$(PHP_MODULES)" != "x"; then \
+ for i in $(PHP_MODULES)""; do \
+ . $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+@@ -111,7 +118,10 @@
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
TEST_RESULT_EXIT_CODE=$$?; \
rm $(top_builddir)/tmp-php.ini; \
exit $$TEST_RESULT_EXIT_CODE; \
---- php-5.3.2/Makefile.global 2010-03-16 16:31:36.972576955 +0200
-+++ php-5.3.2/Makefile.global 2010-03-16 16:31:36.972576955 +0200
-@@ -296,7 +296,7 @@
- fi
-
- PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d 'safe_mode=0'
--PHP_TEST_SHARED_SYSTEM_EXTENSIONS = pcre
-+PHP_TEST_SHARED_SYSTEM_EXTENSIONS =
- PHP_TEST_SHARED_EXTENSIONS = ` \
- if test "x$(PHP_MODULES)" != "x"; then \
- for i in $(PHP_MODULES)""; do \
--- /dev/null
+--- php-5.5.7/sapi/fpm/php-fpm.conf.in~ 2013-12-16 17:57:03.000000000 +0200
++++ php-5.5.7/sapi/fpm/php-fpm.conf.in 2013-12-16 17:58:37.618025260 +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/php/fpm.d/*.conf
+-
+ ;;;;;;;;;;;;;;;;;;
+ ; Global Options ;
+ ;;;;;;;;;;;;;;;;;;
+@@ -116,404 +116,10 @@
+ ; 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:
+-; - '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 address on
+-; a specific port;
+-; 'port' - to listen on a TCP socket to all addresses on a
+-; specific port;
+-; '/path/to/unix/socket' - to listen on a unix socket.
+-; Note: This value is mandatory.
+-listen = /var/run/php/@processname@.sock
+-
+-; 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
+-
+-; List of ipv4 addresses 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] = $PATH
+-;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
++; 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/php/fpm.d/*.conf
+--- /dev/null 2007-02-13 18:29:53.000000000 +0200
++++ php-5.6.0beta1/sapi/fpm/php-fpm.conf-d.in 2014-04-21 21:58:46.191751631 +0300
+@@ -0,0 +1,403 @@
++; vim:ft=dosini
++;
++; 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:
++; - '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 address on
++; a specific port;
++; 'port' - to listen on a TCP socket to all addresses on a
++; specific port;
++; '/path/to/unix/socket' - to listen on a unix socket.
++; Note: This value is mandatory.
++listen = /var/run/php/@processname@.sock
++
++; 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
++
++; List of ipv4 addresses 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] = $PATH
++;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.5.7/sapi/fpm/Makefile.frag~ 2013-12-16 17:57:03.000000000 +0200
++++ php-5.5.7/sapi/fpm/Makefile.frag 2013-12-16 18:01:19.511829907 +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 || :
++ @$(INSTALL_DATA) sapi/fpm/php-fpm.conf-d $(INSTALL_ROOT)$(sysconfdir)/fpm.d/www.conf || :
+
+ @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/"
+ @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8
--- /dev/null
+--- php-5.6.0RC4/configure.in~ 2014-08-20 16:08:27.000000000 +0300
++++ php-5.6.0RC4/configure.in 2014-08-21 20:49:14.693072513 +0300
+@@ -1408,6 +1408,9 @@
+ dnl libtool 1.4.3 needs this.
+ PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps])
+
++dnl pass --tag=CC to unconfuse when CC="ccache gcc"
++PHP_SET_LIBTOOL_VARIABLE([--tag=CC])
++
+ test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
+ test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<'
+ SHARED_LIBTOOL='$(LIBTOOL)'
--- /dev/null
+--- php-5.6.0RC4/sapi/milter/config.m4~ 2014-08-14 03:54:13.000000000 +0300
++++ php-5.6.0RC4/sapi/milter/config.m4 2014-08-21 19:57:21.584244904 +0300
+@@ -6,18 +6,13 @@
+ [ --with-milter[=DIR] Build PHP as Milter application], no, no)
+
+ if test "$PHP_MILTER" != "no"; then
+- if test "$PHP_MILTER" = "yes"; then
+- if test -f /usr/lib/libmilter.a ; then
+- MILTERPATH=/usr/lib
+- else
+- if test -f /usr/lib/libmilter/libmilter.a ; then
+- MILTERPATH=/usr/lib/libmilter
+- else
+- AC_MSG_ERROR([Unable to find libmilter.a])
+- fi
+- fi
+- else
+- MILTERPATH=$PHP_MILTER
++ for i in $PHP_MILTER /usr/lib/libmilter /usr/local /usr; do
++ test -f $i/$PHP_LIBDIR/libmilter.a && MILTERPATH=$i/$PHP_LIBDIR && break
++ test -f $i/libmilter.a && MILTERPATH=$i && break
++ done
++
++ if test -z "$MILTERPATH"; then
++ AC_MSG_ERROR([Unable to find libmilter.a])
+ fi
+
+ SAPI_MILTER_PATH=sapi/milter/php-milter
--- /dev/null
+--- php-5.3.27/ext/mysqli/mysqli_nonapi.c~ 2013-11-20 00:19:11.000000000 +0200
++++ php-5.3.27/ext/mysqli/mysqli_nonapi.c 2013-11-20 00:19:44.725872552 +0200
+@@ -73,7 +73,7 @@
+ zend_bool self_alloced = 0;
+
+
+-#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,
+ "Headers and client library minor version mismatch. Headers:%d Library:%ld",
+--- php-5.3.27/ext/mysql/php_mysql.c~ 2013-11-20 00:19:11.000000000 +0200
++++ php-5.3.27/ext/mysql/php_mysql.c 2013-11-20 00:20:01.719956531 +0200
+@@ -704,7 +704,7 @@
+ zend_bool free_host=0, new_link=0;
+ long connect_timeout;
+
+-#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,
+ "Headers and client library minor version mismatch. Headers:%d Library:%ld",
+++ /dev/null
---- php-5.4.0alpha2/ext/mysqlnd/config9.m4~ 2011-03-23 19:14:28.000000000 +0200
-+++ php-5.4.0alpha2/ext/mysqlnd/config9.m4 2011-08-07 12:45:42.205921715 +0300
-@@ -28,7 +28,7 @@
- AC_DEFINE([MYSQLND_SSL_SUPPORTED], 1, [Enable SSL support])
-
- mysqlnd_sources="$mysqlnd_base_sources $mysqlnd_ps_sources"
-- PHP_NEW_EXTENSION(mysqlnd, $mysqlnd_sources, no)
-+ PHP_NEW_EXTENSION(mysqlnd, $mysqlnd_sources, yes)
- PHP_ADD_BUILD_DIR([ext/mysqlnd], 1)
- PHP_INSTALL_HEADERS([ext/mysqlnd/])
- fi
---- php-5.3.2/ext/mysqlnd/php_mysqlnd.c~ 2010-01-20 19:09:28.000000000 +0200
-+++ php-5.3.2/ext/mysqlnd/php_mysqlnd.c 2010-04-14 09:18:30.725599897 +0300
-@@ -273,6 +273,9 @@
- };
- /* }}} */
-
-+#ifdef COMPILE_DL_MYSQLND
-+ZEND_GET_MODULE(mysqlnd)
-+#endif
-
- /*
- * Local variables:
+++ /dev/null
---- php-5.4.0RC3/main/php_ini.c~ 2011-12-10 03:26:15.000000000 +0200
-+++ php-5.4.0RC3/main/php_ini.c 2011-12-10 03:26:54.901295707 +0200
-@@ -376,6 +376,7 @@
- char *open_basedir;
- int free_ini_search_path = 0;
- zend_file_handle fh;
-+ static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };
-
- if (zend_hash_init(&configuration_hash, 0, NULL, (dtor_func_t) config_zval_dtor, 1) == FAILURE) {
- return FAILURE;
-@@ -398,7 +399,6 @@
- int search_path_size;
- char *default_location;
- char *env_location;
-- static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };
- #ifdef PHP_WIN32
- char *reg_location;
- char phprc_path[MAXPATHLEN];
-@@ -608,72 +608,86 @@
-
- /* Scan and parse any .ini files found in scan path if path not empty. */
- if (!sapi_module.php_ini_ignore && php_ini_scanned_path_len) {
-- struct dirent **namelist;
- int ndir, i;
- struct stat sb;
- char ini_file[MAXPATHLEN];
-- char *p;
-+ char *p, *last, *path_copy, *ini_path = NULL;
- zend_file_handle fh2;
- zend_llist scanned_ini_list;
- zend_llist_element *element;
- int l, total_l = 0;
-
-- if ((ndir = php_scandir(php_ini_scanned_path, &namelist, 0, php_alphasort)) > 0) {
-- zend_llist_init(&scanned_ini_list, sizeof(char *), (llist_dtor_func_t) free_estring, 1);
-- memset(&fh2, 0, sizeof(fh2));
--
-- for (i = 0; i < ndir; i++) {
--
-- /* check for any file with .ini extension */
-- if (!(p = strrchr(namelist[i]->d_name, '.')) || (p && strcmp(p, ".ini"))) {
-- free(namelist[i]);
-- continue;
-- }
-- /* Reset active ini section */
-- RESET_ACTIVE_INI_HASH();
--
-- if (IS_SLASH(php_ini_scanned_path[php_ini_scanned_path_len - 1])) {
-- snprintf(ini_file, MAXPATHLEN, "%s%s", php_ini_scanned_path, namelist[i]->d_name);
-- } else {
-- snprintf(ini_file, MAXPATHLEN, "%s%c%s", php_ini_scanned_path, DEFAULT_SLASH, namelist[i]->d_name);
-- }
-- if (VCWD_STAT(ini_file, &sb) == 0) {
-- if (S_ISREG(sb.st_mode)) {
-- if ((fh2.handle.fp = VCWD_FOPEN(ini_file, "r"))) {
-- fh2.filename = ini_file;
-- fh2.type = ZEND_HANDLE_FP;
--
-- if (zend_parse_ini_file(&fh2, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t) php_ini_parser_cb, &configuration_hash TSRMLS_CC) == SUCCESS) {
-- /* Here, add it to the list of ini files read */
-- l = strlen(ini_file);
-- total_l += l + 2;
-- p = estrndup(ini_file, l);
-- zend_llist_add_element(&scanned_ini_list, &p);
-+ /* List of found ini files */
-+ zend_llist_init(&scanned_ini_list, sizeof(char *), (llist_dtor_func_t) free_estring, 1);
-+
-+ /* Split by paths_separator and load ini-files from all paths */
-+ path_copy = estrdup(php_ini_scanned_path);
-+ ini_path = php_strtok_r(path_copy, paths_separator, &last);
-+
-+ while (ini_path != NULL) {
-+ struct dirent **namelist;
-+ int ini_path_len = strlen(ini_path);
-+
-+ if ((ndir = php_scandir(ini_path, &namelist, 0, php_alphasort)) > 0) {
-+ memset(&fh2, 0, sizeof(fh2));
-+
-+ for (i = 0; i < ndir; i++) {
-+ /* check for any file with .ini extension */
-+ if (!(p = strrchr(namelist[i]->d_name, '.')) || (p && strcmp(p, ".ini"))) {
-+ free(namelist[i]);
-+ continue;
-+ }
-+ /* Reset active ini section */
-+ RESET_ACTIVE_INI_HASH();
-+
-+ if (IS_SLASH(ini_path[ini_path_len - 1])) {
-+ snprintf(ini_file, MAXPATHLEN, "%s%s", ini_path, namelist[i]->d_name);
-+ } else {
-+ snprintf(ini_file, MAXPATHLEN, "%s%c%s", ini_path, DEFAULT_SLASH, namelist[i]->d_name);
-+ }
-+ if (VCWD_STAT(ini_file, &sb) == 0) {
-+ if (S_ISREG(sb.st_mode)) {
-+ if ((fh2.handle.fp = VCWD_FOPEN(ini_file, "r"))) {
-+ fh2.filename = ini_file;
-+ fh2.type = ZEND_HANDLE_FP;
-+
-+ /* Reset active ini section */
-+ RESET_ACTIVE_INI_HASH();
-+
-+ if (zend_parse_ini_file(&fh2, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t) php_ini_parser_cb, &configuration_hash TSRMLS_CC) == SUCCESS) {
-+ /* Here, add it to the list of ini files read */
-+ l = strlen(ini_file);
-+ total_l += l + 2;
-+ p = estrndup(ini_file, l);
-+ zend_llist_add_element(&scanned_ini_list, &p);
-+ }
- }
- }
- }
-+ free(namelist[i]);
- }
-- free(namelist[i]);
-+ free(namelist);
- }
-- free(namelist);
--
-- if (total_l) {
-- int php_ini_scanned_files_len = (php_ini_scanned_files) ? strlen(php_ini_scanned_files) + 1 : 0;
-- php_ini_scanned_files = (char *) realloc(php_ini_scanned_files, php_ini_scanned_files_len + total_l + 1);
-- if (!php_ini_scanned_files_len) {
-- *php_ini_scanned_files = '\0';
-- }
-- total_l += php_ini_scanned_files_len;
-- for (element = scanned_ini_list.head; element; element = element->next) {
-- if (php_ini_scanned_files_len) {
-- strlcat(php_ini_scanned_files, ",\n", total_l);
-- }
-- strlcat(php_ini_scanned_files, *(char **)element->data, total_l);
-- strlcat(php_ini_scanned_files, element->next ? ",\n" : "\n", total_l);
-+ ini_path = php_strtok_r(NULL, paths_separator, &last);
-+ }
-+
-+ if (total_l) {
-+ int php_ini_scanned_files_len = (php_ini_scanned_files) ? strlen(php_ini_scanned_files) + 1 : 0;
-+ php_ini_scanned_files = (char *) realloc(php_ini_scanned_files, php_ini_scanned_files_len + total_l + 1);
-+ if (!php_ini_scanned_files_len) {
-+ *php_ini_scanned_files = '\0';
-+ }
-+ total_l += php_ini_scanned_files_len;
-+ for (element = scanned_ini_list.head; element; element = element->next) {
-+ if (php_ini_scanned_files_len) {
-+ strlcat(php_ini_scanned_files, ",\n", total_l);
- }
-+ strlcat(php_ini_scanned_files, *(char **)element->data, total_l);
-+ strlcat(php_ini_scanned_files, element->next ? ",\n" : "\n", total_l);
- }
-- zend_llist_destroy(&scanned_ini_list);
- }
-+ efree(path_copy);
-+ zend_llist_destroy(&scanned_ini_list);
- } else {
- /* Make sure an empty php_ini_scanned_path ends up as NULL */
- php_ini_scanned_path = NULL;
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
+--- php-5.3.9/sapi/fpm/status.html.in~ 2011-10-08 23:43:12.000000000 +0300
++++ php-5.3.9/sapi/fpm/status.html.in 2012-01-12 02:19:09.573191879 +0200
+@@ -96,7 +96,7 @@
+ var sort_index;
+ var sort_order;
+
+- doc_url.value = location.protocol + '//' + location.host + "/status?json&full";
++ doc_url.value = location.protocol + '//' + location.host + "/fpm-status?json&full";
+
+ ths = document.getElementsByTagName("th");
+ for (var i=0; i<ths.length; i++) {
+--- php-5.4.18/sapi/fpm/Makefile.frag~ 2013-08-14 08:47:24.000000000 +0300
++++ php-5.4.18/sapi/fpm/Makefile.frag 2013-08-29 10:20:38.161424172 +0300
+@@ -12,7 +12,7 @@
+
+ @echo "Installing PHP FPM config: $(INSTALL_ROOT)$(sysconfdir)/" && \
+ $(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir) || :
+- @$(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default || :
++ @$(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf || :
+
+ @echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/"
+ @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man8
pidfile=$(sed -ne 's,^pid\s*=\s*\(.*\),\1,p' $configfile)
pidfile=${pidfile:-/var/run/@processname@.pid}
+# configtest itself
+# must return non-zero if check failed
+# output is discarded if checkconfig is ran without details
+configtest() {
+ /usr/sbin/@processname@ --fpm-config $configfile -t
+ return $?
+}
+
+# wrapper for configtest
+checkconfig() {
+ local details=${1:-0}
+
+ if [ $details = 1 ]; then
+ # run config test and display report (status action)
+ show "Checking %s configuration" "PHP FastCGI Process Manager"; busy
+ local out
+ out=$(configtest 2>&1)
+ RETVAL=$?
+ if [ $RETVAL = 0 ]; then
+ ok
+ else
+ fail
+ fi
+ [ "$out" ] && echo >&2 "$out"
+ else
+ # run config test and abort with nice message if failed
+ # (for actions checking status before action).
+ configtest >/dev/null 2>&1
+ RETVAL=$?
+ if [ $RETVAL != 0 ]; then
+ show "Checking %s configuration" "PHP FastCGI Process Manager"; fail
+ nls 'Configuration test failed. See details with %s "checkconfig"' $0
+ exit $RETVAL
+ fi
+ fi
+}
+
start() {
# Check if the service is already running?
if [ -f $lockfile ]; then
return
fi
+ checkconfig
msg_starting "PHP FastCGI Process Manager (@processname@)"
- daemon --pidfile $pidfile /usr/sbin/@processname@ --fpm-config $configfile
+ daemon --redirfds --pidfile $pidfile /usr/sbin/@processname@ --fpm-config $configfile
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
}
return
fi
+ checkconfig
msg_reloading "PHP FastCGI Process Manager (@processname@)"
killproc --pidfile $pidfile @processname@ -$sig
RETVAL=$?
return
fi
+ checkconfig
stop
start
}
reload|force-reload)
reload USR2 7
;;
+ checkconfig|configtest)
+ checkconfig 1
+ ;;
flush-logs|logrotate)
reload USR1 0
;;
RETVAL=$?
;;
*)
- msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|flush-logs|status}"
+ msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|flush-logs|checkconfig|status}"
exit 3
;;
esac
+++ /dev/null
-diff -ur php5.3-200812262130/ext/gd/config.m4 mod/ext/gd/config.m4
---- php5.3-200812262130/ext/gd/config.m4 2008-07-18 04:34:20.000000000 +0200
-+++ mod/ext/gd/config.m4 2008-12-27 01:12:23.000000000 +0100
-@@ -255,6 +255,7 @@
- PHP_CHECK_LIBRARY(gd, gdFreeFontCache, [AC_DEFINE(HAVE_GD_FREEFONTCACHE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
- PHP_CHECK_LIBRARY(gd, gdFontCacheMutexSetup, [AC_DEFINE(HAVE_GD_FONTMUTEX, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
- PHP_CHECK_LIBRARY(gd, gdNewDynamicCtxEx, [AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
-+ PHP_CHECK_LIBRARY(gd, gdImageRotate, [AC_DEFINE(HAVE_GD_ROTATE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
- ])
-
- dnl
-@@ -308,6 +309,7 @@
- AC_DEFINE(HAVE_GD_FONTMUTEX, 1, [ ])
- AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])
- AC_DEFINE(HAVE_GD_GIF_CTX, 1, [ ])
-+ AC_DEFINE(HAVE_GD_ROTATE, 1, [ ])
-
- dnl Make sure the libgd/ is first in the include path
- GDLIB_CFLAGS="-DHAVE_LIBPNG"
-diff -ur php5.3-200812262130/ext/gd/gd.c mod/ext/gd/gd.c
---- php5.3-200812262130/ext/gd/gd.c 2008-12-12 14:35:20.000000000 +0100
-+++ mod/ext/gd/gd.c 2008-12-27 01:18:43.000000000 +0100
-@@ -296,7 +296,7 @@
- ZEND_END_ARG_INFO()
- #endif
-
--#ifdef HAVE_GD_BUNDLED
-+#ifdef HAVE_GD_ROTATE
- ZEND_BEGIN_ARG_INFO_EX(arginfo_imagerotate, 0, 0, 3)
- ZEND_ARG_INFO(0, im)
- ZEND_ARG_INFO(0, angle)
-@@ -927,9 +927,12 @@
- PHP_FE(imagegrabscreen, arginfo_imagegrabscreen)
- #endif
-
-+#ifdef HAVE_GD_ROTATE
-+ PHP_FE(imagerotate, arginfo_imagerotate)
-+#endif
-+
- #ifdef HAVE_GD_BUNDLED
-- PHP_FE(imagerotate, arginfo_imagerotate)
-- PHP_FE(imageantialias, arginfo_imageantialias)
-+ PHP_FE(imageantialias, arginfo_imageantialias)
- #endif
-
- #if HAVE_GD_IMAGESETTILE
-@@ -1079,7 +1082,7 @@
- PHP_INI_ENTRY("gd.jpeg_ignore_warning", "0", PHP_INI_ALL, NULL)
- PHP_INI_END()
- /* }}} */
--
-+
- /* {{{ php_free_gd_image
- */
- static void php_free_gd_image(zend_rsrc_list_entry *rsrc TSRMLS_DC)
-@@ -1140,7 +1143,7 @@
- #endif
-
- REGISTER_INI_ENTRIES();
--
-+
- REGISTER_LONG_CONSTANT("IMG_GIF", 1, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_JPG", 2, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_JPEG", 2, CONST_CS | CONST_PERSISTENT);
-@@ -1168,11 +1171,14 @@
- #ifdef GD2_FMT_COMPRESSED
- REGISTER_LONG_CONSTANT("IMG_GD2_COMPRESSED", GD2_FMT_COMPRESSED, CONST_CS | CONST_PERSISTENT);
- #endif
--#if HAVE_GD_BUNDLED
-+#if HAVE_GD_ROTATE
- REGISTER_LONG_CONSTANT("IMG_EFFECT_REPLACE", gdEffectReplace, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_EFFECT_ALPHABLEND", gdEffectAlphaBlend, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_EFFECT_NORMAL", gdEffectNormal, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_EFFECT_OVERLAY", gdEffectOverlay, CONST_CS | CONST_PERSISTENT);
-+#endif
-+
-+#if HAVE_GD_BUNDLED
- REGISTER_LONG_CONSTANT("GD_BUNDLED", 1, CONST_CS | CONST_PERSISTENT);
-
- /* Section Filters */
-@@ -1760,7 +1766,7 @@
- long cx, cy, w, h, ST, E, col, style;
- gdImagePtr im;
- int e, st;
--
-+
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllllllll", &IM, &cx, &cy, &w, &h, &ST, &E, &col, &style) == FAILURE) {
- return;
- }
-@@ -2008,7 +2014,7 @@
- if ( handle == 0 ) {
- goto clean;
- }
-- pPrintWindow = (tPrintWindow) GetProcAddress(handle, "PrintWindow");
-+ pPrintWindow = (tPrintWindow) GetProcAddress(handle, "PrintWindow");
-
- if ( pPrintWindow ) {
- pPrintWindow(window, memDC, (UINT) client_area);
-@@ -2105,7 +2111,7 @@
- /* }}} */
- #endif /* PHP_WIN32 */
-
--#ifdef HAVE_GD_BUNDLED
-+#ifdef HAVE_GD_ROTATE
- /* {{{ proto resource imagerotate(resource src_im, float angle, int bgdcolor [, int ignoretransparent])
- Rotate an image using a custom angle */
- PHP_FUNCTION(imagerotate)
-@@ -3362,7 +3368,7 @@
- {
- zval *IM;
- gdImagePtr im;
--
-+
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &IM) == FAILURE) {
- return;
- }
-@@ -3946,7 +3952,7 @@
- if (zend_hash_get_current_data_ex(HASH_OF(EXT), (void **) &item, &pos) == FAILURE) {
- continue;
- }
--
-+
- if (strcmp("linespacing", key) == 0) {
- convert_to_double_ex(item);
- strex.flags |= gdFTEX_LINESPACE;
-@@ -3972,7 +3978,7 @@
- #endif
-
- PHP_GD_CHECK_OPEN_BASEDIR((char *)fontname, "Invalid font filename");
--
-+
- #ifdef USE_GD_IMGSTRTTF
- # if HAVE_GD_STRINGFTEX
- if (extended) {
-@@ -4373,11 +4379,11 @@
- if (argc != 3 && argc != 6) {
- ZEND_WRONG_PARAM_COUNT();
- }
--
-+
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "srl|lld", &str, &str_len, &fnt, &sz, &sp, &wd, &angle) == FAILURE) {
- return;
- }
--
-+
- if (argc == 6) {
- space = sp;
- add_width = wd;
-@@ -4562,7 +4568,7 @@
- #ifdef HAVE_GD_JPG
- long ignore_warning;
- #endif
--
-+
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sslll", &f_org, &f_org_len, &f_dest, &f_dest_len, &height, &width, &threshold) == FAILURE) {
- return;
- }
-diff -ur php5.3-200812262130/ext/gd/php_gd.h mod/ext/gd/php_gd.h
---- php5.3-200812262130/ext/gd/php_gd.h 2008-07-18 04:34:20.000000000 +0200
-+++ mod/ext/gd/php_gd.h 2008-12-27 01:20:04.000000000 +0100
-@@ -119,8 +119,11 @@
- PHP_FUNCTION(imagegrabscreen);
- #endif
-
--#ifdef HAVE_GD_BUNDLED
-+#ifdef HAVE_GD_ROTATE
- PHP_FUNCTION(imagerotate);
-+#endif
-+
-+#ifdef HAVE_GD_BUNDLED
- PHP_FUNCTION(imageantialias);
- #endif
-
---- php-5.5.4/php.ini 2013-09-18 13:08:04.000000000 +0000
-+++ php-5.5.4/php.ini 2013-09-20 07:55:29.509891329 +0000
+--- php-5.6.0beta1/php.ini~ 2014-04-21 21:38:01.000000000 +0300
++++ php-5.6.0beta1/php.ini 2014-04-21 21:51:47.379819417 +0300
@@ -82,6 +82,20 @@
; much more verbose when it comes to errors. We recommending using the
; development version only in development environments as errors shown to
; application users can inadvertently leak otherwise secure information.
+;
+; This is the default settings file for new PHP installations from
-+; TLD Linux.
++; PLD Linux Distribution.
+;
+; It's based mainly on php.ini-production, but with some changes made with
+; security in mind (see below, consult also http://php.net/manual/en/security.php).
+;
-+; Please note, that in TLD installations /etc/php/php.ini file
++; Please note, that in PLD installations /etc/php/php.ini file
+; contains global settings for all SAPIs (cgi, cli, apache...),
+; and after reading this file, SAPI-specific file (/etc/php/php-cgi-fcgi.ini,
+; /etc/php/php-cli.ini, /etc/php/php-apache.ini...) is INCLUDED
;;;;;;;;;;;;;;;;;;;
; Quick Reference ;
-@@ -157,7 +171,7 @@
- ; Production Value: 5
-
- ; short_open_tag
--; Default Value: On
-+; Default Value: Off
- ; Development Value: Off
- ; Production Value: Off
-
-@@ -203,7 +217,7 @@
- ; documents, however this remains supported for backward compatibility reasons.
- ; Note that this directive does not control the <?= shorthand tag, which can be
- ; used regardless of this directive.
--; Default Value: On
-+; Default Value: Off
+@@ -198,7 +212,7 @@
+ ;user_ini.filename = ".user.ini"
+
+ ; To disable this feature set this option to empty value
+-;user_ini.filename =
++user_ini.filename =
+
+ ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
+ ;user_ini.cache_ttl = 300
+@@ -223,7 +237,7 @@
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
-@@ -371,7 +385,7 @@
+-short_open_tag = Off
++short_open_tag = On
+
+ ; Allow ASP-style <% %> tags.
+ ; http://php.net/asp-tags
+@@ -372,7 +372,7 @@
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
-@@ -724,7 +738,7 @@
+@@ -725,7 +725,7 @@
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; On windows:
; extension_dir = "ext"
-@@ -738,53 +752,6 @@
+@@ -760,53 +760,6 @@
; http://php.net/enable-dl
enable_dl = Off
-;fastcgi.logging = 0
-
-; cgi.rfc2616_headers configuration option tells PHP what type of headers to
--; use when sending HTTP response code. If it's set 0 PHP sends Status: header that
--; is supported by Apache. When this option is set to 1 PHP will send
+-; use when sending HTTP response code. If set to 0, PHP sends Status: header that
+-; is supported by Apache. When this option is set to 1, PHP will send
-; RFC2616 compliant header.
-; Default is zero.
-; http://php.net/cgi.rfc2616-headers
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
-@@ -862,50 +829,8 @@
+@@ -884,49 +837,8 @@
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;
-;extension=php_exif.dll ; Must be after mbstring as it depends on it
-;extension=php_mysql.dll
-;extension=php_mysqli.dll
--;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
--;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
+-;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
-;extension=php_openssl.dll
-;extension=php_pdo_firebird.dll
-;extension=php_pdo_mysql.dll
-;extension=php_tidy.dll
-;extension=php_xmlrpc.dll
-;extension=php_xsl.dll
-+; Ideally in TLD Linux you should install appropriate php-<extension> or
++; Ideally in PLD Linux you should install appropriate php-<extension> or
+; php-pecl-<extension> package.
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
-@@ -940,9 +865,9 @@
- ;filter.default_flags =
-
- [iconv]
--;iconv.input_encoding = ISO-8859-1
--;iconv.internal_encoding = ISO-8859-1
--;iconv.output_encoding = ISO-8859-1
+@@ -964,19 +876,19 @@
+ ; Use of this INI entry is deprecated, use global input_encoding instead.
+ ; If empty, default_charset or input_encoding or iconv.input_encoding is used.
+ ; The precedence is: default_charset < intput_encoding < iconv.input_encoding
+-;iconv.input_encoding =
+iconv.input_encoding = UTF-8
+
+ ; Use of this INI entry is deprecated, use global internal_encoding instead.
+ ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
+ ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
+-;iconv.internal_encoding =
+iconv.internal_encoding = UTF-8
+
+ ; Use of this INI entry is deprecated, use global output_encoding instead.
+ ; If empty, default_charset or output_encoding or iconv.output_encoding is used.
+ ; The precedence is: default_charset < output_encoding < iconv.output_encoding
+ ; To use an output encoding conversion, iconv's output handler must be set
+ ; otherwise output encoding conversion cannot be performed.
+-;iconv.output_encoding =
+iconv.output_encoding = UTF-8
[intl]
;intl.default_locale =
-@@ -1156,6 +1081,9 @@
+@@ -1152,6 +1062,9 @@
; http://php.net/mysql.connect-timeout
mysql.connect_timeout = 60
; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
; http://php.net/mysql.trace-mode
-@@ -1195,6 +1123,9 @@
+@@ -1191,6 +1104,9 @@
; http://php.net/mysqli.default-socket
mysqli.default_socket =
; Default host for mysql_connect() (doesn't apply in safe mode).
; http://php.net/mysqli.default-host
mysqli.default_host =
-@@ -1361,7 +1292,7 @@
+@@ -1357,7 +1273,7 @@
[browscap]
; http://php.net/browscap
[Session]
; Handler used to store/retrieve data.
-@@ -1834,7 +1765,7 @@
+@@ -1822,7 +1738,7 @@
; Sets the directory name where SOAP extension will put cache files.
; http://php.net/soap.wsdl-cache-dir
<Files *.phtml>
AddType application/x-httpd-php .phtml
</Files>
+
+ # Uncomment to disable php in user directories.
+ # To re-enable php in user directories comment the following lines
+ # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
+ # prevents .htaccess files from disabling it.
+# <IfModule mod_userdir.c>
+# <Directory /home/users/*/public_html>
+# php_admin_value engine Off
+# </Directory>
+# </IfModule>
</IfModule>
---- php-5.5.2/sapi/apache2handler/config.m4 2013-08-19 08:41:24.865000066 +0000
-+++ php-5.5.2/sapi/apache2handler/config.m4 2013-08-19 08:46:02.000000068 +0000
+--- php-5.5.2/sapi/apache2handler/config.m4~ 2013-08-15 23:42:04.000000000 +0300
++++ php-5.5.2/sapi/apache2handler/config.m4 2013-08-18 15:13:02.728903161 +0300
@@ -60,9 +60,9 @@
# Test that we're trying to configure with apache 2.x
for (i = 0; i < ndir; i++) {
+
+++ /dev/null
---- php-5.1.6/acinclude.m4.orig 2006-11-21 10:43:13.179505000 +0100
-+++ php-5.1.6/acinclude.m4 2006-11-21 10:55:32.479505000 +0100
-@@ -68,8 +68,8 @@
- changequote({,})
- ep_dir=`echo $1|$SED 's%/*[^/][^/]*/*$%%'`
- changequote([,])
-- ep_realdir=`(cd "$ep_dir" && pwd)`
-- $2="$ep_realdir"/`basename "$1"`
-+ ep_realdir="$(cd "$ep_dir" && pwd)"
-+ $2="$ep_realdir/$(basename "$1")"
- fi
- ])
-
than embedding a copy. Discussed upstream but was not desired.
History:
+r10 : make timezone case insensitive
r9: fix another compile error without --with-system-tzdata configured (Michael Heimpold)
r8: fix compile error without --with-system-tzdata configured
r7: improve check for valid timezone id to exclude directories
--- a/ext/date/lib/parse_tz.c
+++ b/ext/date/lib/parse_tz.c
-@@ -24,6 +24,16 @@
+@@ -20,6 +20,16 @@
#include "timelib.h"
#include <stdio.h>
#ifdef HAVE_LOCALE_H
-@@ -35,7 +45,12 @@
+@@ -31,7 +41,12 @@
#else
#include <strings.h>
#endif
#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
# if defined(__LITTLE_ENDIAN__)
-@@ -55,9 +70,14 @@
+@@ -51,9 +66,14 @@
static void read_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
{
/* read BC flag */
tz->bc = (**tzf == '\1');
*tzf += 1;
-@@ -260,7 +280,397 @@ void timelib_dump_tzinfo(timelib_tzinfo
+@@ -256,7 +276,405 @@
}
}
+#endif
+
+/* System timezone database pointer. */
-+static const timelib_tzdb *timezonedb_system = NULL;
++static const timelib_tzdb *timezonedb_system;
+
+/* Hash table entry for the cache of the zone.tab mapping table. */
+struct location_info {
+ * prevent too many collisions. */
+#define LOCINFO_HASH_SIZE (1021)
+
++/* Compute a case insensitive hash of str */
+static uint32_t tz_hash(const char *str)
+{
+ const unsigned char *p = (const unsigned char *)str;
+ uint32_t hash = 5381;
+ int c;
+
-+ while ((c = *p++) != '\0') {
++ while ((c = tolower(*p++)) != '\0') {
+ hash = (hash << 5) ^ hash ^ c;
+ }
+
+ return NULL;
+ }
+
++ if (system_location_table) {
++ const struct location_info *li;
++ if ((li = find_zone_info(system_location_table, timezone)) != NULL) {
++ /* Use the stored name to avoid case issue */
++ timezone = li->name;
++ }
++ }
+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone);
+
+ fd = open(fname, O_RDONLY);
{
int left = 0, right = tzdb->index_size - 1;
#ifdef HAVE_SETLOCALE
-@@ -299,36 +709,128 @@ static int seek_to_tz_position(const uns
+@@ -295,36 +713,135 @@
return 0;
}
+ struct stat st;
+
+ if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) {
-+ return 0;
++ return 0;
++ }
++
++ if (system_location_table) {
++ if (find_zone_info(system_location_table, timezone) != NULL) {
++ /* found in cache */
++ return 1;
++ }
+ }
+
+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone);
+++ /dev/null
---- php-5.5.0alpha1/ext/standard/info.c~ 2012-11-13 22:00:16.000000000 +0200
-+++ php-5.5.0alpha1/ext/standard/info.c 2012-11-18 23:37:48.607735302 +0200
-@@ -794,6 +794,17 @@
- zend_html_puts(zend_version, strlen(zend_version) TSRMLS_CC);
- }
- php_info_print_box_end();
-+ /* TLD Linux */
-+ php_info_print_box_start(0);
-+ if (!sapi_module.phpinfo_as_text) {
-+ php_info_print("<a href=\"http://www.tld-linux.org/\">");
-+ }
-+ php_info_print("This server is using TLD Linux.");
-+ if (!sapi_module.phpinfo_as_text)
-+ php_info_print("<br />More information at <a href=\"http://www.tld-linux.org/\">http://www.tld-linux.org/</a>.<br />\n");
-+ else
-+ php_info_print("\nMore information at http://www.tld-linux.org/.\n");
-+ php_info_print_box_end();
- efree(php_uname);
- }
-# TODO 5.5:
+# TODO 5.6:
+# - phpdbg: link with libphp_common
# - enable --with-fpm-systemd, but ensure it checks for sd_booted()
# - build with system libgd 2.1, see 73c5128
# TODO 5.4:
-# - do not remove PatchX: definitions until merged to HEAD, needed for tracking their state
# - check php-sapi-ini-file.patch for safe mode removal
# - update imap annotations patch (needs api porting)
# - update imap myrights patch (needs api porting)
# --with-libmbfl=DIR MBSTRING: Use external libmbfl. DIR is the libmbfl base install directory BUNDLED
# --with-onig=DIR MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.
-# - uses libvpx for webp support, should use libwebp-devel instead?
# NOTE: mysqlnd does not support ssl or compression (see FAQ at http://dev.mysql.com/downloads/connector/php-mysqlnd/)
# UNPACKAGED EXTENSION NOTES:
# - com_dotnet is Win32-only
#+ereg
# libxml
# Reflection
+# standard
#
# Conditional build:
-
-%bcond_without default_php # use this PHP as default PHP in distro
%bcond_with interbase_inst # use InterBase install., not Firebird (BR: proprietary libs)
-%bcond_with oci8 # with Oracle oci8 extension module (BR: proprietary libs)
-%bcond_with instantclient # build Oracle oci8 extension module against oracle-instantclient package
-%bcond_with system_gd # with system gd (we prefer internal since it enables few more features)
+%bcond_with oci # with Oracle oci8 extension module (BR: proprietary libs)
+%bcond_without instantclient # build Oracle oci8 extension module against oracle-instantclient package
+%bcond_with system_gd # with system gd (imageantialias function is missing then)
%bcond_with system_libzip # with system libzip (reported broken currently)
+%bcond_with default_php # use this PHP as default PHP in distro
%bcond_without curl # without CURL extension module
%bcond_without enchant # without Enchant extension module
%bcond_without filter # without filter extension module
%bcond_with zts # Zend Thread Safety
%bcond_without cgi # disable CGI/FCGI SAPI
%bcond_without fpm # disable FPM
-%bcond_with embed # disable Embedded API
-%bcond_without suhosin # with suhosin patch
+%bcond_without embed # disable Embedded API
+%bcond_without phpdbg # disable phpdbg SAPI
+%bcond_with milter # disable Milter SAPI
+%bcond_with suhosin # with suhosin patch, has little point in PHP>=5.3, see https://github.com/stefanesser/suhosin/issues/42#issuecomment-41728178
%bcond_with tests # default off; test process very often hangs on builders, approx run time 45m; perform "make test"
%bcond_with gcov # Enable Code coverage reporting
%bcond_with type_hints # experimental support for strict typing/casting
%undefine with_mm
%endif
+# milter requires ZTS
+%if %{with milter} && %{without zts}
+%undefine with_milter
+%endif
+
%ifnarch %{ix86} %{x8664} sparc sparcv9 alpha
# ppc disabled (broken on th-ppc)
%undefine with_interbase
%define rel 1
%define orgname php
-%define ver_suffix 55
+%define ver_suffix 56
%define php_suffix %{!?with_default_php:%{ver_suffix}}
Summary: PHP: Hypertext Preprocessor
Summary(fr.UTF-8): Le langage de script embarque-HTML PHP
Summary(ru.UTF-8): PHP Версии 5 - язык препроцессирования HTML-файлов, выполняемый на сервере
Summary(uk.UTF-8): PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері
Name: %{orgname}%{php_suffix}
-Version: 5.5.15
-Release: %{rel}%{?with_type_hints:.th}%{?with_oci8:.oci}
+Version: 5.6.0
+Release: %{rel}%{?with_type_hints:.th}
Epoch: 4
License: PHP
Group: Libraries
-Source0: http://www.php.net/distributions/%{orgname}-%{version}.tar.bz2
-# Source0-md5: 5cb5f2ed9099299f8a4c952d59d93812
+Source0: http://www.php.net/distributions/%{orgname}-%{version}.tar.xz
+# Source0-md5: 642825d75ce2634d9513d5b21dbee521
Source2: %{orgname}-mod_%{orgname}.conf
Source3: %{orgname}-cgi-fcgi.ini
Source4: %{orgname}-apache.ini
Source13: dep-tests.sh
Source14: skip-tests.sh
Patch0: %{orgname}-shared.patch
-Patch1: %{orgname}-tld.patch
+Patch1: %{orgname}-pldlogo.patch
Patch2: %{orgname}-mail.patch
Patch3: %{orgname}-link-libs.patch
Patch4: %{orgname}-libpq_fs_h_path.patch
Patch5: %{orgname}-filter-shared.patch
Patch6: %{orgname}-build_modules.patch
Patch7: %{orgname}-sapi-ini-file.patch
-Patch9: %{orgname}-sh.patch
+Patch8: milter.patch
+Patch9: libtool-tag.patch
Patch10: %{orgname}-ini.patch
Patch11: embed.patch
%if %{with type_hints}
Patch12: http://ilia.ws/patch/type_hint_53_v2.txt
%endif
Patch14: %{orgname}-no_pear_install.patch
-#Patch15: %{orgname}-zlib.patch # no longer needed?
Patch17: %{orgname}-readline.patch
Patch18: %{orgname}-nohttpd.patch
-Patch19: %{orgname}-gd_imagerotate_enable.patch
Patch20: %{orgname}-uint32_t.patch
Patch21: %{orgname}-dba-link.patch
Patch22: %{orgname}-both-apxs.patch
Patch27: %{orgname}-config-dir.patch
Patch29: %{orgname}-fcgi-graceful.patch
Patch31: %{orgname}-fcgi-error_log-no-newlines.patch
-#Patch32: %{orgname}-curl-limit-speed.patch # applied upstream
Patch34: %{orgname}-libtool.patch
Patch35: %{orgname}-tds.patch
Patch36: %{orgname}-mysql-charsetphpini.patch
Patch45: %{orgname}-imap-annotations.patch
Patch46: %{orgname}-imap-myrights.patch
Patch47: suhosin.patch
-#Patch49: %{orgname}-m4-divert.patch # no longer needed, upstream supports new ac
Patch50: extension-shared-optional-dep.patch
Patch51: spl-shared.patch
Patch52: pcre-shared.patch
Patch53: fix-test-run.patch
-#Patch54: mysqlnd-shared.patch # shared build supported upstream
Patch55: bug-52078-fileinode.patch
-#Patch57: bug-52448.patch # outdated
Patch59: %{orgname}-systzdata.patch
Patch60: %{orgname}-oracle-instantclient.patch
-#Patch61: %{orgname}-krb5-ac.patch # not needed on 5.4 anymore
Patch62: mcrypt-libs.patch
Patch63: %{orgname}-mysql-nowarning.patch
-#Patch64: %{orgname}-m4.patch # not needed on 5.4 branch
Patch65: system-libzip.patch
Patch66: php-db.patch
+Patch67: mysql-lib-ver-mismatch.patch
+Patch69: fpm-conf-split.patch
URL: http://www.php.net/
%{?with_interbase:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}}
%{?with_pspell:BuildRequires: aspell-devel >= 2:0.50.0}
BuildRequires: db-devel >= 4.0
BuildRequires: elfutils-devel
%{?with_enchant:BuildRequires: enchant-devel >= 1.1.3}
-#BuildRequires: fcgi-devel
%{?with_kerberos5:BuildRequires: heimdal-devel}
%{?with_system_libzip:BuildRequires: libzip-devel >= 0.10.1-2}
%{!?with_mysqlnd:BuildRequires: mysql-devel}
%if %{with mssql} || %{with sybase_ct}
BuildRequires: freetds-devel >= 0.82
%endif
-BuildRequires: freetype-devel >= 2.0
+BuildRequires: freetype-devel >= 2.5.1
%if %{with system_gd}
BuildRequires: gd-devel >= 2.1
%endif
BuildRequires: libltdl-devel >= 1.4
BuildRequires: libmcrypt-devel >= 2.4.4
BuildRequires: libpng-devel >= 1.0.8
-#BuildRequires: libtiff-devel
%{?with_webp:BuildRequires: libvpx-devel}
BuildRequires: tokyocabinet-devel
+%if "%{pld_release}" != "ac"
BuildRequires: libtool >= 2:2.2
-#BuildRequires: libwrap-devel
+%else
+BuildRequires: libtool >= 1.4.3
+%endif
BuildRequires: libxml2-devel >= 1:2.7.6-4
BuildRequires: libxslt-devel >= 1.1.0
%{?with_mm:BuildRequires: mm-devel >= 1.3.0}
%{?with_gcov:BuildRequires: lcov}
%{?with_snmp:%{?with_tests:BuildRequires: mibs-net-snmp}}
%{?with_snmp:BuildRequires: net-snmp-devel >= 5.0.7}
-%{?with_instantclient:BuildRequires: oracle-instantclient-devel}
+%{?with_oci:%{?with_instantclient:BuildRequires: oracle-instantclient-devel}}
BuildRequires: pam-devel
%{?with_pcre:BuildRequires: pcre-devel >= 8.10}
BuildRequires: pkgconfig
BuildRequires: apr-devel >= 1:1.0.0
BuildRequires: apr-util-devel >= 1:1.0.0
%endif
-%if %{with fpm}
-#BuildRequires: judy-devel
-%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define php_sysconfdir /etc/%{name}
%define _sysconfdir %{php_sysconfdir}
# must be in sync with source. extra check ensuring that it is so is done in %%build
-%define php_api_version 20121113
-%define zend_module_api 20121212
-%define zend_extension_api 220121212
+%define php_api_version 20131106
+%define zend_module_api 20131226
+%define zend_extension_api 220131226
+%define php_pdo_api_version 20080721
# Extension versions
%define bz2ver 1.0
%define opcachever 7.0.4-dev
%define pharver 2.0.2
%define sqlite3ver 0.7-dev
-%define zipver 1.11.0
+%define zipver 1.12.4
+%define phpdbgver 0.4.0
-%define zend_zts %{!?with_zts:0}%{?with_zts:1}
+%define _zend_zts %{!?with_zts:0}%{?with_zts:1}
%define php_debug %{!?debug:0}%{?debug:1}
%if %{with gcov}
%undefine with_ccache
%endif
-%if %{with oci8}
+%if %{with oci}
# ORACLE_HOME is required for oci8 ext to build
%define _preserve_env %_preserve_env_base ORACLE_HOME
%endif
Summary: PHP DSO module for Apache 1.3.x
Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) PHP dla Apache 1.3.x
Group: Development/Languages/PHP
-Requires(triggerpostun): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: apache1(EAPI) >= 1.3.33-2
Requires: apache1-mod_mime
Provides: webserver(php) = %{version}
Obsoletes: apache-mod_php < 1:4.1.1
+Obsoletes: apache1-mod_php < 4:5.3.28-7
Obsoletes: phpfi
%description -n apache1-mod_%{name}
Requires: apache(modules-api) = %{apache_modules_api}
Requires: apache-mod_mime
Provides: webserver(php) = %{version}
+Obsoletes: apache-mod_php < 4:5.3.28-7
Obsoletes: phpfi
%description -n apache-mod_%{name}
Summary(pl.UTF-8): PHP dla serwera HTTP litespeed
Group: Development/Languages/PHP
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Provides: php(litespeed)
Provides: webserver(php) = %{version}
+Obsoletes: php-litespeed < 4:5.3.28-7
%description litespeed
PHP for litespeed HTTP server.
Provides: php(cgi)
Provides: php(fcgi)
Provides: webserver(php) = %{version}
+Obsoletes: php-cgi < 4:5.3.28-7
Obsoletes: php-fcgi < 4:5.3.0
+%if "%{pld_release}" != "ac"
Conflicts: logrotate < 3.8.0
+%endif
%description cgi
PHP as CGI or FastCGI program.
Summary(pl.UTF-8): PHP jako interpreter działający z linii poleceń
Group: Development/Languages/PHP
Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Provides: php-program
+Obsoletes: php-cli < 4:5.3.28-7
%description cli
PHP as CLI interpreter.
Summary(pl.UTF-8): Biblioteka PHP do osadzania w aplikacjach
Group: Libraries
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Obsoletes: php-embedded < 4:5.3.28-7
%description embedded
The php-embedded package contains a library which can be embedded into
Ten pakiet zawiera bibliotekę, którą można osadzać w aplikacjach w
celu obsługi PHP jako języka skryptowego.
+%package program
+Summary: /usr/bin/php symlink
+Summary(pl.UTF-8): Dowiązanie symboliczne /usr/bin/php
+Group: Development/Languages/PHP
+Requires: %{name}-cli = %{epoch}:%{version}-%{release}
+Obsoletes: /usr/bin/php
+Obsoletes: php-program < 4:5.3.28-7
+
+%description program
+Package providing /usr/bin/php symlink to PHP CLI.
+
+%description program -l pl.UTF-8
+Pakiet dostarczający dowiązanie symboliczne /usr/bin/php do PHP CLI.
+
%package fpm
Summary: PHP FastCGI Process Manager
Summary(pl.UTF-8): PHP FastCGI Process Manager - zarządca procesów FastCGI
Requires(pre): /usr/sbin/useradd
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: rc-scripts
+Provides: php(fpm)
Provides: user(http)
Provides: webserver(php) = %{version}
+Obsoletes: php-fpm < 4:5.3.28-7
%description fpm
PHP FastCGI Process Manager.
%description fpm -l pl.UTF-8
PHP FastCGI Process Manager - zarządca procesów FastCGI.
+%package phpdbg
+Summary: The debugging platform for PHP 5.4+
+Group: Development/Languages/PHP
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Provides: php(phpdbg) = %{phpdbgver}
+
+%description phpdbg
+phpdbg - The interactive PHP debugger.
+
+Implemented as a SAPI module, phpdbg can excert complete control over
+the environment without impacting the functionality or performance of
+your code.
+
+phpdbg aims to be a lightweight, powerful, easy to use debugging
+platform for PHP 5.4+
+
%package common
Summary: Common files needed by both Apache modules and CGI/CLI SAPIs
Summary(pl.UTF-8): Wspólne pliki dla modułu Apache'a i programu CGI
Requires: tzdata
Provides: %{name}(debug) = %{php_debug}
Provides: %{name}(modules_api) = %{php_api_version}
-Provides: %{name}(thread-safety) = %{zend_zts}
+Provides: %{name}(thread-safety) = %{_zend_zts}
Provides: %{name}(zend_extension_api) = %{zend_extension_api}
Provides: %{name}(zend_module_api) = %{zend_module_api}
Provides: %{name}-core
Provides: php(core) = %{version}
Provides: php(date)
Provides: php(ereg)
-Provides: php(hash)
Provides: php(libxml)
Provides: php(reflection)
Provides: php(standard)
%{!?with_mysqlnd:Obsoletes: php-mysqlnd}
%{?with_pcre:%requires_ge_to pcre pcre-devel}
+Obsoletes: php-common < 4:5.3.28-7
Obsoletes: php-pecl-domxml
Conflicts: php4-common < 3:4.4.4-8
+Conflicts: php55-common < 4:5.5.10-4
Conflicts: rpm < 4.4.2-0.2
%description common
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: autoconf >= 2.13
Requires: automake
+%if "%{pld_release}" != "ac"
Requires: libtool >= 2:2.2
+%else
+Requires: libtool
+%endif
%{?with_pcre:Requires: pcre-devel >= 8.10}
Requires: shtool
+Provides: php-devel = %{epoch}:%{version}-%{release}
Obsoletes: php-devel
Obsoletes: php-pear-devel
Obsoletes: php4-devel
Obsoletes: php52-devel
+Obsoletes: php53-devel
+Obsoletes: php54-devel
%description devel
The php-devel package lets you compile dynamic extensions to PHP.
URL: http://www.php.net/manual/en/book.bc.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(bcmath)
+Obsoletes: php-bcmath < 4:5.3.28-7
%description bcmath
This is a dynamic shared object (DSO) for PHP that will add bc style
Provides: php(bz2) = %{bz2ver}
Provides: php(bzip2)
Provides: php-bzip2 = %{epoch}:%{version}-%{release}
+Obsoletes: php-bz2 < 4:5.3.28-7
Obsoletes: php-bzip2 < 4:5.2.14-3
Obsoletes: php-pecl-bz2 < %{bz2ver}
URL: http://www.php.net/manual/en/book.calendar.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(calendar)
+Obsoletes: php-calendar < 4:5.3.28-7
%description calendar
This is a dynamic shared object (DSO) for PHP that will add calendar
URL: http://www.php.net/manual/en/book.ctype.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(ctype)
+Obsoletes: php-ctype < 4:5.3.28-7
%description ctype
This is a dynamic shared object (DSO) for PHP that will add ctype
URL: http://www.php.net/manual/en/book.curl.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(curl)
+Obsoletes: php-curl < 4:5.3.28-7
%description curl
This is a dynamic shared object (DSO) for PHP that will add curl
URL: http://www.php.net/manual/en/book.dba.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(dba)
+Obsoletes: php-dba < 4:5.3.28-7
%description dba
This is a dynamic shared object (DSO) for PHP that will add flat-file
# it has some compatibility functions
Provides: %{name}-domxml = %{epoch}:%{version}-%{release}
Provides: php(domxml)
+Obsoletes: php-dom < 4:5.3.28-7
Obsoletes: php-domxml <= 3:4.3.8-1
%description dom
URL: http://www.php.net/manual/en/book.exif.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(enchant) = %{enchantver}
+Obsoletes: php-enchant < 4:5.3.28-7
Obsoletes: php-pecl-enchant < %{enchantver}
%description enchant
URL: http://www.php.net/manual/en/book.exif.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(exif)
+Obsoletes: php-exif < 4:5.3.28-7
%description exif
This is a dynamic shared object (DSO) for PHP that will add EXIF tags
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pcre = %{epoch}:%{version}-%{release}
Provides: php(fileinfo) = %{fileinfover}
+Obsoletes: php-fileinfo < 4:5.3.28-7
Obsoletes: php-mime_magic
Obsoletes: php-pecl-fileinfo < %{fileinfover}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pcre = %{epoch}:%{version}-%{release}
Provides: php(filter)
+Obsoletes: php-filter < 4:5.3.28-7
Obsoletes: php-pecl-filter
%description filter
URL: http://www.php.net/manual/en/book.ftp.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(ftp)
+Obsoletes: php-ftp < 4:5.3.28-7
%description ftp
This is a dynamic shared object (DSO) for PHP that will add FTP
URL: http://www.php.net/manual/en/book.image.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
%if %{with system_gd}
-Requires: gd >= 2.0.28-4
+Requires: gd >= 2.1
Requires: gd(gif)
-Requires: gd(imagerotate) = 5.2.0
%endif
Provides: php(gd)
+Obsoletes: php-gd < 4:5.3.28-7
%description gd
This is a dynamic shared object (DSO) for PHP that will add GD
URL: http://www.php.net/manual/en/book.gettext.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(gettext)
+Obsoletes: php-gettext < 4:5.3.28-7
%description gettext
This is a dynamic shared object (DSO) for PHP that will add gettext
URL: http://www.php.net/manual/en/book.gmp.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(gmp)
+Obsoletes: php-gmp < 4:5.3.28-7
%description gmp
This is a dynamic shared object (DSO) for PHP that will add arbitrary
Provides: php-mhash = %{epoch}:%{version}-%{release}
Obsoletes: php-mhash < 4:5.3.0
%endif
+Obsoletes: php-hash < 4:5.3.28-7
Obsoletes: php-pecl-hash < %{hashver}
%description hash
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: iconv
Provides: php(iconv)
+Obsoletes: php-iconv < 4:5.3.28-7
%description iconv
This is a dynamic shared object (DSO) for PHP that will add iconv
Requires: %{name}-pcre = %{epoch}:%{version}-%{release}
Requires: imap-lib >= 1:2007e-2
Provides: php(imap)
+Obsoletes: php-imap < 4:5.3.28-7
%description imap
This is a dynamic shared object (DSO) for PHP that will add IMAP
Summary(pl.UTF-8): Moduł bazy danych InterBase/Firebird dla PHP
Group: Libraries
URL: http://www.php.net/manual/en/book.ibase.php
+%if %{with interbase_inst}
+%{?requires_php_extension}
+%else
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+%endif
Provides: php(interbase)
-%{?with_interbase_inst:Autoreq: false}
+Obsoletes: php-interbase < 4:5.3.28-7
%description interbase
This is a dynamic shared object (DSO) for PHP that will add InterBase
URL: http://www.php.net/intl
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(intl) = %{intlver}
+Obsoletes: php-intl < 4:5.3.28-7
Obsoletes: php-pecl-intl < %{intlver}
%description intl
URL: http://www.php.net/manual/en/book.json.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(json) = %{jsonver}
+Obsoletes: php-json < 4:5.3.28-7
Obsoletes: php-pecl-json < %{jsonver}
%description json
URL: http://www.php.net/manual/en/book.ldap.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(ldap)
+Obsoletes: php-ldap < 4:5.3.28-7
%description ldap
This is a dynamic shared object (DSO) for PHP that will add LDAP
URL: http://www.php.net/manual/en/book.mbstring.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(mbstring)
+Obsoletes: php-mbstring < 4:5.3.28-7
%description mbstring
This is a dynamic shared object (DSO) for PHP that will add multibyte
URL: http://www.php.net/manual/en/book.mcrypt.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(mcrypt)
+Obsoletes: php-mcrypt < 4:5.3.28-7
%description mcrypt
This is a dynamic shared object (DSO) for PHP that will add mcrypt
URL: http://www.php.net/manual/en/book.mssql.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(mssql)
+Obsoletes: php-mssql < 4:5.3.28-7
%description mssql
This is a dynamic shared object (DSO) for PHP that will add MS SQL
Requires: %{name}-common = %{epoch}:%{version}-%{release}
%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}}
Provides: php(mysql)
+Obsoletes: php-mysql < 4:5.3.28-7
%description mysql
This is a dynamic shared object (DSO) for PHP that will add MySQL
%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}}
Requires: %{name}-spl = %{epoch}:%{version}-%{release}
Provides: php(mysqli)
+Obsoletes: php-mysqli < 4:5.3.28-7
%description mysqli
This is a dynamic shared object (DSO) for PHP that will add MySQLi
URL: http://www.php.net/manual/en/book.mysqlnd.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(mysqlnd)
+Obsoletes: php-mysqlnd < 4:5.3.28-7
%description mysqlnd
MySQL Native Driver is a replacement for the MySQL Client Library
Summary(pl.UTF-8): Moduł bazy danych Oracle 8+ dla PHP
Group: Libraries
URL: http://www.php.net/manual/en/book.oci8.php
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+%{?requires_php_extension}
Provides: php(oci8)
-AutoReq: false
+Obsoletes: php-oci8 < 4:5.3.28-7
%description oci8
This is a dynamic shared object (DSO) for PHP that will add Oracle 7,
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: unixODBC >= 2.1.1-3
Provides: php(odbc)
+Obsoletes: php-odbc < 4:5.3.28-7
%description odbc
This is a dynamic shared object (DSO) for PHP that will add ODBC
%package opcache
Summary: Zend Optimizer+ - PHP code optimizer
+Summary(pl.UTF-8): Zend Optimizer+ - optymalizator kodu PHP
Group: Libraries
URL: https://wiki.php.net/rfc/optimizerplus
Requires: %{name}-common = %{epoch}:%{version}-%{release}
addition, it applies a few bytecode optimization patterns that make
code execution faster.
+%description opcache -l pl.UTF-8
+Zend OPcache zapewnia szybsze wykonywanie kodu PHP dzięki buforowaniu
+i optymalizacji na poziomie opcode'ów. Poprawia wydajność PHP
+przechowując prekompilowany bajtkod skryptu w pamięci współdzielonej.
+Eliminuje etapy odczytu kodu z dysku i kompilacji przy późniejszym
+dostępie. Ponadto wykonuje kilka wzorców optymalizacji bajtkodu,
+czyniąc wykonywanie kodu szybszym.
+
%package openssl
Summary: OpenSSL extension module for PHP
Summary(pl.UTF-8): Moduł OpenSSL dla PHP
URL: http://www.php.net/manual/en/book.openssl.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(openssl)
+Obsoletes: php-openssl < 4:5.3.28-7
%description openssl
This is a dynamic shared object (DSO) for PHP that will add OpenSSL
URL: http://www.php.net/manual/en/book.pcntl.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(pcntl)
+Obsoletes: php-pcntl < 4:5.3.28-7
%description pcntl
This is a dynamic shared object (DSO) for PHP that will add process
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
URL: http://www.php.net/manual/en/book.pdo.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-spl = %{epoch}:%{version}-%{release}
+Provides: %{name}(PDO_API) = %{php_pdo_api_version}
Provides: php(pdo)
+Obsoletes: php-pdo < 4:5.3.28-7
Obsoletes: php-pecl-PDO
%description pdo
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(dblib)
+Obsoletes: php-pdo-dblib < 4:5.3.28-7
%description pdo-dblib
This is a dynamic shared object (DSO) for PHP that will add PDO
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-firebird)
+Obsoletes: php-pdo-firebird < 4:5.3.28-7
Obsoletes: php-pecl-PDO_FIREBIRD
%description pdo-firebird
%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-mysql)
+Obsoletes: php-pdo-mysql < 4:5.3.28-7
Obsoletes: php-pecl-PDO_MYSQL
%description pdo-mysql
Summary(pl.UTF-8): Moduł PHP Data Objects (PDO) z obsługą Oracle'a
Group: Libraries
URL: http://www.php.net/manual/en/ref.pdo-oci.php
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
+%{?requires_php_extension}
+%{?requires_php_pdo_module}
Provides: php(pdo-oci)
+Obsoletes: php-pdo-oci < 4:5.3.28-7
Obsoletes: php-pecl-PDO_OCI
%description pdo-oci
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-odbc)
+Obsoletes: php-pdo-odbc < 4:5.3.28-7
Obsoletes: php-pecl-PDO_ODBC
%description pdo-odbc
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-pgsql)
Provides: php-pecl-PDO_PGSQL
+Obsoletes: php-pdo-pgsql < 4:5.3.28-7
Obsoletes: php-pecl-PDO_PGSQL < 4:5.2.1-2
%description pdo-pgsql
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
Provides: php(pdo-sqlite)
+Obsoletes: php-pdo-sqlite < 4:5.3.28-7
Obsoletes: php-pecl-PDO_SQLITE
%description pdo-sqlite
URL: http://www.php.net/manual/en/book.pgsql.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(pgsql)
+Obsoletes: php-pgsql < 4:5.3.28-7
%description pgsql
This is a dynamic shared object (DSO) for PHP that will add PostgreSQL
Suggests: %{name}-zlib
Provides: php(phar) = %{pharver}
Obsoletes: php-pecl-phar < %{pharver}
+Obsoletes: php-phar < 4:5.3.28-7
Conflicts: php-ioncube < 4.0.9
%description phar
URL: http://www.php.net/manual/en/book.posix.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(posix)
+Obsoletes: php-posix < 4:5.3.28-7
%description posix
This is a dynamic shared object (DSO) for PHP that will add POSIX
URL: http://www.php.net/manual/en/book.pspell.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(pspell)
+Obsoletes: php-pspell < 4:5.3.28-7
%description pspell
This is a dynamic shared object (DSO) for PHP that will add pspell
URL: http://www.php.net/manual/en/book.readline.php
Requires: %{name}-cli = %{epoch}:%{version}-%{release}
Provides: php(readline)
+Obsoletes: php-readline < 4:5.3.28-7
%description readline
This PHP module adds support for readline functions (only for cli and
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: recode >= 3.5d-3
Provides: php(recode)
+Obsoletes: php-recode < 4:5.3.28-7
%description recode
This is a dynamic shared object (DSO) for PHP that will add recode
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-spl = %{epoch}:%{version}-%{release}
Suggests: %{name}-hash = %{epoch}:%{version}-%{release}
+Suggests: tmpwatch
Provides: php(session)
+Obsoletes: php-session < 4:5.3.28-7
%description session
This is a dynamic shared object (DSO) for PHP that will add session
URL: http://www.php.net/manual/en/book.shmop.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(shmop)
+Obsoletes: php-shmop < 4:5.3.28-7
%description shmop
This is a dynamic shared object (DSO) for PHP that will add Shared
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-spl = %{epoch}:%{version}-%{release}
Provides: php(simplexml)
+Obsoletes: php-simplexml < 4:5.3.28-7
%description simplexml
This is a dynamic shared object (DSO) for PHP that will add Simple XML
Requires: %{name}-sockets = %{epoch}:%{version}-%{release}
Requires: %{name}-spl = %{epoch}:%{version}-%{release}
Provides: php(snmp)
+Obsoletes: php-snmp < 4:5.3.28-7
%description snmp
This is a dynamic shared object (DSO) for PHP that will add SNMP
URL: http://www.php.net/manual/en/book.soap.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(soap)
+Obsoletes: php-soap < 4:5.3.28-7
%description soap
This is a dynamic shared object (DSO) for PHP that will add SOAP/WSDL
URL: http://www.php.net/manual/en/book.sockets.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sockets)
+Obsoletes: php-sockets < 4:5.3.28-7
%description sockets
This is a dynamic shared object (DSO) for PHP that will add sockets
Requires: %{name}-pcre = %{epoch}:%{version}-%{release}
Requires: %{name}-simplexml = %{epoch}:%{version}-%{release}
Provides: php(spl)
+Obsoletes: php-spl < 4:5.3.28-7
%description spl
This is a dynamic shared object (DSO) for PHP that will add Standard
URL: http://php.net/manual/en/book.sqlite3.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sqlite3) = %{sqlite3ver}
+Obsoletes: php-sqlite3 < 4:5.3.28-7
%description sqlite3
SQLite is a C library that implements an embeddable SQL database
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sybase-ct)
Obsoletes: php-sybase
+Obsoletes: php-sybase-ct < 4:5.3.28-7
%description sybase-ct
This is a dynamic shared object (DSO) for PHP that will add Sybase and
URL: http://www.php.net/manual/en/book.sem.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sysvmsg)
+Obsoletes: php-sysvmsg < 4:5.3.28-7
%description sysvmsg
This is a dynamic shared object (DSO) for PHP that will add SysV
URL: http://www.php.net/manual/en/book.sem.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sysvsem)
+Obsoletes: php-sysvsem < 4:5.3.28-7
%description sysvsem
This is a dynamic shared object (DSO) for PHP that will add SysV
URL: http://www.php.net/manual/en/book.shmop.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(sysvshm)
+Obsoletes: php-sysvshm < 4:5.3.28-7
%description sysvshm
This is a dynamic shared object (DSO) for PHP that will add SysV
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: tidy
Provides: php(tidy)
+Obsoletes: php-tidy < 4:5.3.28-7
%description tidy
This is a dynamic shared object (DSO) for PHP that will add Tidy
URL: http://www.php.net/manual/en/book.tokenizer.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(tokenizer)
+Obsoletes: php-tokenizer < 4:5.3.28-7
%description tokenizer
This is a dynamic shared object (DSO) for PHP that will add tokenizer
#Requires: %{name}-session = %{epoch}:%{version}-%{release}
Requires: %{name}-xml = %{epoch}:%{version}-%{release}
Provides: php(wddx)
+Obsoletes: php-wddx < 4:5.3.28-7
%description wddx
This is a dynamic shared object (DSO) for PHP that will add wddx
URL: http://www.php.net/manual/en/book.xml.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(xml)
+Obsoletes: php-xml < 4:5.3.28-7
%description xml
This is a dynamic shared object (DSO) for PHP that will add XML
Group: Libraries
URL: http://www.php.net/manual/en/book.xmlreader.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Suggests: %{name}-dom = %{epoch}:%{version}-%{release}
+Requires: %{name}-dom = %{epoch}:%{version}-%{release}
Provides: php(xmlreader)
+Obsoletes: php-xmlreader < 4:5.3.28-7
%description xmlreader
This is a dynamic shared object (DSO) for PHP that will add XML Reader
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-xml = %{epoch}:%{version}-%{release}
Provides: php(xmlrpc)
+Obsoletes: php-xmlrpc < 4:5.3.28-7
%description xmlrpc
This is a dynamic shared object (DSO) for PHP that will add XMLRPC
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(xmlwriter)
Obsoletes: php-pecl-xmlwriter
+Obsoletes: php-xmlwriter < 4:5.3.28-7
%description xmlwriter
This extension wraps the libxml xmlWriter API. Represents a writer
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-dom = %{epoch}:%{version}-%{release}
Requires: libxslt >= 1.0.18
-# actually not true, functionality is similar, but API differs
Provides: php(xsl)
+Obsoletes: php-xsl < 4:5.3.28-7
+# actually not true, functionality is similar, but API differs
Obsoletes: php-xslt <= 3:4.3.8-1
%description xsl
%{?with_system_libzip:Requires: libzip >= 0.10.1-2}
Provides: php(zip) = %{zipver}
Obsoletes: php-pecl-zip < %{zipver}
+Obsoletes: php-zip < 4:5.3.28-7
%description zip
Zip is an extension to create, modify and read zip files.
URL: http://www.php.net/manual/en/book.zlib.php
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Provides: php(zlib)
+Obsoletes: php-zlib < 4:5.3.28-7
%description zlib
This is a dynamic shared object (DSO) for PHP that will add zlib
Moduł PHP umożliwiający używanie kompresji zlib.
%prep
-%setup -q -n %{orgname}-%{version}
+%setup -q -n %{orgname}-%{version}%{?subver}
+cp -p php.ini-production php.ini
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
%patch9 -p1
-cp -p php.ini-production php.ini
%patch10 -p1
%if %{with type_hints}
%patch12 -p0
%patch14 -p1
%patch17 -p1
%patch18 -p1
-%if %{with system_gd}
-%patch19 -p1
-%endif
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch27 -p1
%patch29 -p1
%patch31 -p1
+%if "%{pld_release}" != "ac"
%patch34 -p1
+%endif
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch63 -p1
%{?with_system_libzip:%patch65 -p1}
%patch66 -p1
+%patch67 -p1
+%patch69 -p1
sed -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4
#%{__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}
install -p %{SOURCE13} dep-tests.sh
exit 1
fi
+API=$(awk '/#define PDO_DRIVER_API/{print $3}' ext/pdo/php_pdo_driver.h)
+if [ $API != %{php_pdo_api_version} ]; then
+ echo "Set %%define php_pdo_api_version to $API and re-run."
+ exit 1
+fi
+
# Check for some extension version
ver=$(sed -n '/#define PHP_FILEINFO_VERSION /{s/.* "//;s/".*$//;p}' ext/fileinfo/php_fileinfo.h)
if test "$ver" != "%{fileinfover}"; then
: Update the sqlite3ver macro and rebuild.
exit 1
fi
-ver=$(sed -n '/#define PHP_ZIP_VERSION_STRING /{s/.* "//;s/".*$//;p}' ext/zip/php_zip.h)
+ver=$(sed -n '/#define PHP_ZIP_VERSION /{s/.* "//;s/".*$//;p}' ext/zip/php_zip.h)
if test "$ver" != "%{zipver}"; then
: Error: Upstream ZIP version is now ${ver}, expecting %{zipver}.
: Update the zipver macro and rebuild.
fi
ver=$(sed -n '/#define PHP_ZENDOPCACHE_VERSION /{s/.* "//;s/".*$//;p}' ext/opcache/ZendAccelerator.h)
if test "$ver" != "%{opcachever}"; then
- : Error: Upstream Zend Opcachge version is now ${ver}, expecting %{opcachever}.
+ : Error: Upstream Zend Opcache version is now ${ver}, expecting %{opcachever}.
: Update the opcachever macro and rebuild.
exit 1
fi
+ver=$(sed -n '/#define PHPDBG_VERSION /{s/.* "//;s/".*$//;p}' sapi/phpdbg/phpdbg.h)
+if test "$ver" != "%{phpdbgver}"; then
+ : Error: Upstream phpdbg version is now ${ver}, expecting %{phpdbgver}.
+ : Update the phpdbgver macro and rebuild.
+ exit 1
+fi
ver=$(sed -rne 's,.*<version>(.+)</version>,\1,p' ext/bz2/package.xml)
if test "$ver" != "%{bz2ver}"; then
: Error: Upstream BZIP2 version is now ${ver}, expecting %{bz2ver}.
# configure once (for faster debugging purposes)
if [ ! -f _built-conf ]; then
# now remove Makefile copies
- rm -f Makefile.{cgi-fcgi,fpm,cli,apxs1,apxs2,litespeed}
+ rm -f Makefile.{cgi-fcgi,fpm,cli,apxs1,apxs2,litespeed,phpdbg,milter}
%{__libtoolize}
%{__aclocal}
cp -f /usr/share/automake/config.* .
%if %{with apache2}
apxs2
%endif
+%if %{with phpdbg}
+phpdbg
+%endif
+%if %{with milter}
+milter
+%endif
"
for sapi in $sapis; do
: SAPI $sapi
sapi_args='--disable-cgi %{?with_gcov:--enable-gcov}'
;;
fpm)
- sapi_args='--disable-cli --enable-fpm'
+ sapi_args='--disable-cli --disable-cgi --enable-fpm'
;;
embed)
- sapi_args='--disable-cli --enable-embed'
+ sapi_args='--disable-cli --disable-cgi --enable-embed'
;;
apxs1)
ver=$(rpm -q --qf '%{V}' apache1-devel)
- sapi_args="--disable-cli --with-apxs=%{apxs1} --with-apache-version=$ver"
+ sapi_args="--disable-cli --disable-cgi --with-apxs=%{apxs1} --with-apache-version=$ver"
;;
apxs2)
ver=$(rpm -q --qf '%{V}' apache-devel)
- sapi_args="--disable-cli --with-apxs2=%{apxs2} --with-apache-version=$ver"
+ sapi_args="--disable-cli --disable-cgi --with-apxs2=%{apxs2} --with-apache-version=$ver"
;;
litespeed)
- sapi_args='--with-litespeed'
+ sapi_args='--disable-cli --disable-cgi --with-litespeed'
+ ;;
+ phpdbg)
+ sapi_args='--disable-cli --disable-cgi --enable-phpdbg %{?debug:--enable-phpdbg-debug}'
+ ;;
+ milter)
+ sapi_args='--disable-cli --disable-cgi --with-milter'
;;
esac
%{?with_mhash:--with-mhash=yes} \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-pdo-mysql=shared,%{!?with_mysqlnd:/usr}%{?with_mysqlnd:mysqlnd} \
- %{?with_oci8:--with-pdo-oci=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
+ %{?with_oci:--with-pdo-oci=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
%{?with_odbc:--with-pdo-odbc=shared,unixODBC,/usr} \
%{?with_pgsql:--with-pdo-pgsql=shared} \
%{?with_pdo_sqlite:--with-pdo-sqlite=shared,/usr} \
%{?with_mysqlnd:--enable-mysqlnd=shared} \
--with-mysql=shared,%{!?with_mysqlnd:/usr}%{?with_mysqlnd:mysqlnd} \
%{?with_mysqli:--with-mysqli=shared,%{!?with_mysqlnd:/usr/bin/mysql_config}%{?with_mysqlnd:mysqlnd}} \
- %{?with_oci8:--with-oci8=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
+ %{?with_oci:--with-oci8=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
%{?with_opcache:--enable-opcache=shared} \
%{?with_openssl:--with-openssl=shared} \
%{?with_kerberos5:--with-kerberos} \
%endif
%if %{with litespeed}
-%{__make} -f Makefile.litespeed
+%{__make} -f Makefile.litespeed litespeed
+%endif
+
+%if %{with embed}
+%{__make} -f Makefile.embed libphp5.la
+%endif
+
+%if %{with phpdbg}
+# PHP_READLINE_LIBS is empty, so force readline here
+%{__make} -f Makefile.phpdbg phpdbg \
+ PHPDBG_EXTRA_LIBS=-lreadline
+%endif
+
+%if %{with milter}
+%{__make} -f Makefile.milter milter
%endif
# CGI/FCGI
cp -pf php_config.h.cli main/php_config.h
cp -pf Makefile.cli Makefile
-./run-tests.sh -w failed.log -s tests.log
+./run-tests.sh -w failed.log -s tests.log || {
+rc=$?
# collect failed tests into cleanup script used in prep.
sed -ne '/^FAILED TEST SUMMARY/,/^===/p' tests.log | sed -e '1,/^---/d;/^===/,$d' > tests-failed.log
tty -q || cat tests.log
test ! -s failed.log
+exit $rc
+}
%endif
%install
cp -pf php_config.h.cli main/php_config.h
cp -pf Makefile.cli Makefile
%{__make} install \
+ phpbuilddir=%{_libdir}/%{name}/build \
INSTALL_ROOT=$RPM_BUILD_ROOT
# make link relative
libtool --mode=install install -p sapi/litespeed/php $RPM_BUILD_ROOT%{_sbindir}/%{name}.litespeed
%endif
+%if %{with phpdbg}
+%{__make} -f Makefile.phpdbg install-phpdbg \
+ INSTALL_ROOT=$RPM_BUILD_ROOT
+%endif
+
+%if %{with milter}
+%{__make} -f Makefile.milter install-milter \
+ INSTALL_ROOT=$RPM_BUILD_ROOT
+%endif
+
libtool --mode=install install -p libphp_common.la $RPM_BUILD_ROOT%{_libdir}
# install CGI/FCGI
libtool --mode=install install -p sapi/fpm/php-fpm $RPM_BUILD_ROOT%{_sbindir}/%{name}-fpm
cp -p sapi/fpm/php-fpm.8 $RPM_BUILD_ROOT%{_mandir}/man8/%{name}-fpm.8
cp -p sapi/fpm/php-fpm.conf $RPM_BUILD_ROOT%{_sysconfdir}
+cp -p sapi/fpm/php-fpm.conf-d $RPM_BUILD_ROOT%{_sysconfdir}/fpm.d/www.conf
install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-fpm
install -d $RPM_BUILD_ROOT/etc/logrotate.d
cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
+%if "%{pld_release}" == "ac"
+%{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm
+%endif
%{__sed} -i -e '
s#/usr/lib/php#%{php_extensiondir}#
s#/etc/php#%{_sysconfdir}#
s#@processname@#%{name}-fpm#g
-' $RPM_BUILD_ROOT{/etc/{rc.d/init.d/%{name}-fpm,logrotate.d/%{name}-fpm},%{_sysconfdir}/php-fpm.conf}
+' $RPM_BUILD_ROOT{/etc/{rc.d/init.d/%{name}-fpm,logrotate.d/%{name}-fpm},%{_sysconfdir}/php-fpm.conf,%{_sysconfdir}/fpm.d/www.conf}
%endif
# install Embedded API
%if %{with embed}
-%{__make} -f Makefile.embed install-sapi INSTALL_ROOT=$RPM_BUILD_ROOT
# we could use install-headers from Makefile.embed, but that would reinstall all headers
+# install-sapi installs to wrong dir, so just do it all manually
install -d $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed
+install -p libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}
cp -p sapi/embed/php_embed.h $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed
%endif
# versioned suffix is always installed
libtool --mode=install install -p sapi/cli/php $RPM_BUILD_ROOT%{_bindir}/php%{ver_suffix}
cp -p sapi/cli/php.1 $RPM_BUILD_ROOT%{_mandir}/man1/php%{ver_suffix}.1
-
-%if %{with default_php}
-# man for php
echo ".so php%{ver_suffix}.1" >$RPM_BUILD_ROOT%{_mandir}/man1/php.1
-# link as /usr/bin/php
ln -sf php%{ver_suffix} $RPM_BUILD_ROOT%{_bindir}/php
-# php.cli link for backward compatibility
-ln -sf php $RPM_BUILD_ROOT%{_bindir}/php.cli
-%endif
cp -p php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
mv $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/readline.ini,cli.d}
# use system automake and {lib,sh}tool
-ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/php/build
-for i in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
- ln -snf %{_aclocaldir}/${i} $RPM_BUILD_ROOT%{_libdir}/php/build
-done
-ln -snf %{_datadir}/libtool/config/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/php/build
-ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/php/build
+%if "%{pld_release}" != "ac"
+ ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ for i in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
+ ln -snf %{_aclocaldir}/${i} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ done
+ ln -snf %{_datadir}/libtool/config/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+%else
+ ln -snf %{_aclocaldir}/libtool.m4 $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+ ln -snf %{_datadir}/libtool/ltmain.sh $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+%endif
+ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/%{name}/build
+sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize
# for php-pecl-mailparse
install -d $RPM_BUILD_ROOT%{_includedir}/php/ext/mbstring
# fix install paths, avoid evil rpaths
sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.la
-%if %{with embed}
-# libphp5.la contains our buildroot in dependency_libs
-sed -i -e "/dependency_libs/ s,/[^ ]*/libs/libphp_common.la,%{_libdir}/libphp_common.la," $RPM_BUILD_ROOT%{_libdir}/libphp5.la
-%endif
# better solution?
-sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/php/build/acinclude.m4
+sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/%{name}/build/acinclude.m4
%clean
rm -rf $RPM_BUILD_ROOT
[ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
[ ! -f /etc/httpd/conf.d/??_mod_php.conf ] || %service -q httpd restart
+%triggerpostun common -- php-common < 4:5.3.28-7
+# 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!
+for f in /etc/php/*.ini.rpmsave /etc/php/*.d/*.ini.rpmsave; do
+ test -f "$f" || continue
+ bn=${f#/etc/php/}
+ dn=${bn%/*}
+ fn=${bn#*/}
+ test "$dn" = "$fn" && dn=
+ fn=${fn%.rpmsave}
+ nf=%{_sysconfdir}/$dn/$fn
+ test -f "$nf" || continue
+ cp -vf $nf{,.rpmnew}
+ mv -vf $f $nf
+ %{__sed} -i -e '
+ s#%{_libdir}/php#%{_libdir}/%{name}#
+ s#/etc/php#%{_sysconfdir}#
+ ' $nf
+done
+
# common macros called at extension post/postun scriptlet
%define extension_scripts() \
%post %1 \
%if %{with embed}
%files embedded
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libphp5-%{version}.so
+%attr(755,root,root) %{_libdir}/libphp5.so
%endif
%files cli
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cli.ini
%attr(755,root,root) %{_bindir}/php%{ver_suffix}
%{_mandir}/man1/php%{ver_suffix}.1*
-%if %{with default_php}
+
+%files program
+%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/php
-%attr(755,root,root) %{_bindir}/php.cli
%{_mandir}/man1/php.1*
-%endif
%if %{with fpm}
%files fpm
%doc sapi/fpm/{CREDITS,LICENSE}
%dir %{_sysconfdir}/fpm.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpm.d/www.conf
%attr(755,root,root) %{_sbindir}/%{name}-fpm
%{_mandir}/man8/%{name}-fpm.8*
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-fpm
%attr(754,root,root) /etc/rc.d/init.d/%{name}-fpm
%endif
+%if %{with phpdbg}
+%files phpdbg
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/phpdbg
+%{_mandir}/man1/phpdbg.1*
+%endif
+
+%if %{with milter}
+%files milter
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/php-milter
+%endif
+
%files common
%defattr(644,root,root,755)
-%doc CREDITS EXTENSIONS LICENSE NEWS README.{PHP4-TO-PHP5-THIN-CHANGES,namespaces} UPGRADING* Zend/{LICENSE.Zend,ZEND_CHANGES} php.ini-*
+%doc CREDITS EXTENSIONS LICENSE NEWS README.namespaces UPGRADING* Zend/{LICENSE.Zend,ZEND_CHANGES} php.ini-*
%dir %{_sysconfdir}
%dir %{_sysconfdir}/conf.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php.ini
%files devel
%defattr(644,root,root,755)
-%doc CODING_STANDARDS README.{EXTENSIONS,EXT_SKEL,PARAMETER_PARSING_API,SELF-CONTAINED-EXTENSIONS,STREAMS,SUBMITTING_PATCH,TESTING,TESTING2,UNIX-BUILD-SYSTEM,input_filter}
+%doc CODING_STANDARDS README.{EXT_SKEL,PARAMETER_PARSING_API,SELF-CONTAINED-EXTENSIONS,STREAMS,SUBMITTING_PATCH,TESTING,TESTING2,UNIX-BUILD-SYSTEM,input_filter}
%attr(755,root,root) %{_bindir}/phpize
%attr(755,root,root) %{_bindir}/php-config
%attr(755,root,root) %{_libdir}/libphp_common.so
%{_libdir}/libphp_common.la
%{_includedir}/php
-%{_libdir}/php/build
+%{_libdir}/%{name}/build
%{_mandir}/man1/php-config.1*
%{_mandir}/man1/phpize.1*
-%if %{with embed}
-# embedded
-%{_libdir}/libphp5.so
-%{_libdir}/libphp5.la
-%endif
%files bcmath
%defattr(644,root,root,755)
%files dom
%defattr(644,root,root,755)
%doc ext/dom/{CREDITS,TODO}
+%doc ext/dom/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/dom.ini
%attr(755,root,root) %{php_extensiondir}/dom.so
%attr(755,root,root) %{php_extensiondir}/mysqlnd.so
%endif
-%if %{with oci8}
+%if %{with oci}
%files oci8
%defattr(644,root,root,755)
%doc ext/oci8/{CREDITS,README}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo_mysql.ini
%attr(755,root,root) %{php_extensiondir}/pdo_mysql.so
-%if %{with oci8}
+%if %{with oci}
%files pdo-oci
%defattr(644,root,root,755)
%doc ext/pdo_oci/CREDITS
%attr(755,root,root) %{php_extensiondir}/phar.so
%attr(755,root,root) %{_bindir}/phar
%attr(755,root,root) %{_bindir}/phar.phar
+%{_mandir}/man1/phar.1*
+%{_mandir}/man1/phar.phar.1
%endif
%files posix
%files simplexml
%defattr(644,root,root,755)
%doc ext/simplexml/{CREDITS,README}
+%doc ext/simplexml/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/simplexml.ini
%attr(755,root,root) %{php_extensiondir}/simplexml.so
%files spl
%defattr(644,root,root,755)
-%doc ext/spl/{CREDITS,README,TODO,examples}
+%doc ext/spl/{CREDITS,README,TODO}
+%doc ext/spl/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/SPL.ini
%attr(755,root,root) %{php_extensiondir}/spl.so
%files tidy
%defattr(644,root,root,755)
%doc ext/tidy/{CREDITS,README}
+%doc ext/tidy/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/tidy.ini
%attr(755,root,root) %{php_extensiondir}/tidy.so
%endif
%files xmlreader
%defattr(644,root,root,755)
-%doc ext/xmlreader/{CREDITS,README,TODO,examples}
+%doc ext/xmlreader/{CREDITS,README,TODO}
+%doc ext/xmlreader/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/xmlreader.ini
%attr(755,root,root) %{php_extensiondir}/xmlreader.so
%files xmlwriter
%defattr(644,root,root,755)
%doc ext/xmlwriter/{CREDITS,TODO}
+%doc ext/xmlwriter/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/xmlwriter.ini
%attr(755,root,root) %{php_extensiondir}/xmlwriter.so
%files zip
%defattr(644,root,root,755)
%doc ext/zip/{CREDITS,TODO}
+%doc ext/zip/examples
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/zip.ini
%attr(755,root,root) %{php_extensiondir}/zip.so
PHP_VERSION, cli_sapi_module.name, __DATE__, __TIME__,
#if ZEND_DEBUG && defined(HAVE_GCOV)
"(DEBUG GCOV)",
---- php-5.5.0alpha1/sapi/litespeed/lsapi_main.c~ 2012-11-13 22:00:16.000000000 +0200
-+++ php-5.5.0alpha1/sapi/litespeed/lsapi_main.c 2012-11-17 13:47:51.979828334 +0200
-@@ -546,11 +546,19 @@
- break;
- case 'v':
- if (php_request_startup(TSRMLS_C) != FAILURE) {
+--- php-5.5.15/sapi/litespeed/lsapi_main.c 2014-08-21 11:45:02.000000000 +0300
++++ php-5.5.15/sapi/litespeed/lsapi_main.c 2014-08-25 11:50:36.603155796 +0300
+@@ -734,11 +546,19 @@
+ case 'v':
+ if (php_request_startup(TSRMLS_C) != FAILURE) {
+#if SUHOSIN_PATCH
+#if ZEND_DEBUG
+ php_printf("PHP %s with Suhosin-Patch (%s) (built: %s %s) (DEBUG)\nCopyright (c) 1997-2014 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+#endif
+#else
#if ZEND_DEBUG
- php_printf("PHP %s (%s) (built: %s %s) (DEBUG)\nCopyright (c) 1997-2014 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+ php_printf("PHP %s (%s) (built: %s %s) (DEBUG)\nCopyright (c) 1997-2014 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
#else
- php_printf("PHP %s (%s) (built: %s %s)\nCopyright (c) 1997-2014 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+ php_printf("PHP %s (%s) (built: %s %s)\nCopyright (c) 1997-2014 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
#endif
+#endif
#ifdef PHP_OUTPUT_NEWAPI
php_output_end_all(TSRMLS_C);
#else
+ php_end_ob_buffers(1 TSRMLS_CC);
--- a/sapi/milter/php_milter.c
+++ b/sapi/milter/php_milter.c
@@ -1109,7 +1109,11 @@ int main(int argc, char *argv[])