]> TLD Linux GIT Repositories - packages/php.git/commitdiff
- PHP_5_6 from PLD minus pldlogo patch
authorMarcin Krol <hawk@tld-linux.org>
Sat, 13 Sep 2014 18:35:31 +0000 (18:35 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Sat, 13 Sep 2014 18:35:31 +0000 (18:35 +0000)
19 files changed:
fix-test-run.patch
fpm-conf-split.patch [new file with mode: 0644]
libtool-tag.patch [new file with mode: 0644]
milter.patch [new file with mode: 0644]
mysql-lib-ver-mismatch.patch [new file with mode: 0644]
mysqlnd-shared.patch [deleted file]
php-config-file-scan-dir.patch [deleted file]
php-fpm-config.patch
php-fpm.init
php-gd_imagerotate_enable.patch [deleted file]
php-ini.patch
php-mod_php.conf
php-nohttpd.patch
php-sapi-ini-file.patch
php-sh.patch [deleted file]
php-systzdata.patch
php-tld.patch [deleted file]
php.spec
suhosin.patch

index 3de5b431778e7ac0c2ebc1ab7fb8b355be1c8fe7..42afec5dfe8d8840a79ec54dadb8478c57cb2330 100644 (file)
  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 \
diff --git a/fpm-conf-split.patch b/fpm-conf-split.patch
new file mode 100644 (file)
index 0000000..be1b1bc
--- /dev/null
@@ -0,0 +1,859 @@
+--- 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
diff --git a/libtool-tag.patch b/libtool-tag.patch
new file mode 100644 (file)
index 0000000..951fd1e
--- /dev/null
@@ -0,0 +1,12 @@
+--- 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)'
diff --git a/milter.patch b/milter.patch
new file mode 100644 (file)
index 0000000..5ed3573
--- /dev/null
@@ -0,0 +1,28 @@
+--- 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
diff --git a/mysql-lib-ver-mismatch.patch b/mysql-lib-ver-mismatch.patch
new file mode 100644 (file)
index 0000000..d49d195
--- /dev/null
@@ -0,0 +1,22 @@
+--- 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",
diff --git a/mysqlnd-shared.patch b/mysqlnd-shared.patch
deleted file mode 100644 (file)
index 43eceb6..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- 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:
diff --git a/php-config-file-scan-dir.patch b/php-config-file-scan-dir.patch
deleted file mode 100644 (file)
index a01906e..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
---- 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;
index 03a9a7bac3bb3b4dcb937e17d3231fb71fc09dcf..353c0120b281c020a29c627695532285e2c33369 100644 (file)
  ;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
index 020fc7896fd9a1fc0af7bb4413aebe2401affbc3..381be8da71f9af4ee66d0e06c224ed09fe4d793e 100644 (file)
@@ -22,6 +22,43 @@ lockfile=/var/lock/subsys/@processname@
 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
@@ -29,8 +66,9 @@ start() {
                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
 }
@@ -58,6 +96,7 @@ reload() {
                return
        fi
 
+       checkconfig
        msg_reloading "PHP FastCGI Process Manager (@processname@)"
        killproc --pidfile $pidfile @processname@ -$sig
        RETVAL=$?
@@ -70,6 +109,7 @@ condrestart() {
                return
        fi
 
+       checkconfig
        stop
        start
 }
@@ -93,6 +133,9 @@ case "$1" in
   reload|force-reload)
        reload USR2 7
        ;;
+  checkconfig|configtest)
+       checkconfig 1
+       ;;
   flush-logs|logrotate)
        reload USR1 0
        ;;
@@ -101,7 +144,7 @@ case "$1" in
        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
diff --git a/php-gd_imagerotate_enable.patch b/php-gd_imagerotate_enable.patch
deleted file mode 100644 (file)
index 6d1e74c..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-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
index 7d3dbcd019aa279ad1498dd5dca3746e08c70fca..7d03c6e0aac17e99b6ec138d722d7567866f22d9 100644 (file)
@@ -1,17 +1,17 @@
---- 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
@@ -48,7 +48,7 @@
  
  ;;;;;;;;;;;;;;;;;;;
  ; Resource Limits ;
-@@ -724,7 +738,7 @@
+@@ -725,7 +725,7 @@
  
  ; Directory in which the loadable extensions (modules) reside.
  ; http://php.net/extension-dir
@@ -57,7 +57,7 @@
  ; 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
index 9a9f298fb5aaf860de1f57bf64e829b2ae67c192..a5f5f592dc5771496ad51bbc8bafd3ae5cfec4bf 100644 (file)
@@ -19,4 +19,14 @@ LoadModule php5_module modules/libphp5.so
        <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>
index 54dcbacf8e88613b717ca72aa858ca6f9436687b..8a68bc7eb26cd434a7220611ff7fc3e9e8447f19 100644 (file)
@@ -1,5 +1,5 @@
---- 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
index 140d46cb82b1d92e6fce516e29828643f5ca8619..7dab0cc200565d0b5252ce694e176392803ca9f0 100644 (file)
@@ -78,3 +78,4 @@
  
                                for (i = 0; i < ndir; i++) {
  
+
diff --git a/php-sh.patch b/php-sh.patch
deleted file mode 100644 (file)
index 4a68078..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- 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
- ])
index f841e9bb609264de40e464dc596f0773af4cb02d..b262faed85d2e4dbcae2c45368a7bbc18712b4df 100644 (file)
@@ -2,6 +2,7 @@ Add support for use of the system timezone database, rather
 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
@@ -18,7 +19,7 @@ r1: initial revision
 
 --- 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"
  
@@ -35,7 +36,7 @@ r1: initial revision
  #include <stdio.h>
  
  #ifdef HAVE_LOCALE_H
-@@ -35,7 +45,12 @@
+@@ -31,7 +41,12 @@
  #else
  #include <strings.h>
  #endif
@@ -48,7 +49,7 @@ r1: initial revision
  
  #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)
  {
@@ -66,7 +67,7 @@ r1: initial revision
        /* read BC flag */
        tz->bc = (**tzf == '\1');
        *tzf += 1;
-@@ -260,7 +280,397 @@ void timelib_dump_tzinfo(timelib_tzinfo
+@@ -256,7 +276,405 @@
        }
  }
  
@@ -80,7 +81,7 @@ r1: initial revision
 +#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 {
@@ -98,13 +99,14 @@ r1: initial revision
 + * 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;
 +    }
 +    
@@ -442,6 +444,13 @@ r1: initial revision
 +              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);
@@ -465,7 +474,7 @@ r1: initial revision
  {
        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;
  }
  
@@ -537,7 +546,14 @@ r1: initial revision
 +            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);
diff --git a/php-tld.patch b/php-tld.patch
deleted file mode 100644 (file)
index 28e3fe2..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- 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);
-       }
index b7a83d829ec3cc723221c4c052210ab4fc8c82b0..e314584c353894e808ef4308047874bfb6b63860 100644 (file)
--- a/php.spec
+++ b/php.spec
@@ -1,14 +1,13 @@
-# 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
@@ -131,7 +137,7 @@ ERROR: You need to select at least one Apache SAPI to build shared modules.
 
 %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
@@ -140,13 +146,13 @@ Summary(pt_BR.UTF-8):     A linguagem de script 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
@@ -159,24 +165,23 @@ Source12: %{orgname}-branch.sh
 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
@@ -187,7 +192,6 @@ Patch26:    %{orgname}-pear.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
@@ -201,22 +205,19 @@ Patch44:  %{orgname}-include_path.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}
@@ -229,7 +230,6 @@ BuildRequires:      cyrus-sasl-devel
 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}
@@ -238,7 +238,7 @@ BuildRequires:      sed >= 4.0
 %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
@@ -250,11 +250,13 @@ BuildRequires:    libjpeg-devel
 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}
@@ -265,7 +267,7 @@ BuildRequires:      openssl-devel >= 0.9.7d
 %{?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
@@ -294,9 +296,6 @@ BuildRequires:      apache-devel >= 2.0.52-2
 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}
@@ -304,9 +303,10 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %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
@@ -318,16 +318,17 @@ BuildRoot:        %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %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
@@ -389,12 +390,12 @@ PHP - це мова написання скриптів, що вбудовуют
 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}
@@ -411,6 +412,7 @@ Requires:   %{name}-common = %{epoch}:%{version}-%{release}
 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}
@@ -424,7 +426,9 @@ Summary:    PHP for litespeed HTTP server
 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.
@@ -441,8 +445,11 @@ Provides:  %{name}-fcgi = %{epoch}:%{version}-%{release}
 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.
@@ -455,7 +462,7 @@ Summary:    PHP as CLI interpreter
 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.
@@ -468,6 +475,7 @@ Summary:    PHP library for embedding in applications
 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
@@ -477,6 +485,20 @@ applications to provide PHP scripting language support.
 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
@@ -488,8 +510,10 @@ Requires(pre):     /bin/id
 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.
@@ -497,6 +521,22 @@ 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
@@ -511,7 +551,7 @@ Requires:   rpm-whiteout >= 1.28
 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
@@ -522,14 +562,15 @@ Provides: %{name}-standard
 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
@@ -556,13 +597,20 @@ Group:            Development/Languages/PHP
 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.
@@ -604,6 +652,7 @@ Group:              Libraries
 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
@@ -622,6 +671,7 @@ Requires:   %{name}-common = %{epoch}:%{version}-%{release}
 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}
 
@@ -639,6 +689,7 @@ Group:              Libraries
 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
@@ -654,6 +705,7 @@ Group:              Libraries
 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
@@ -669,6 +721,7 @@ Group:              Libraries
 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
@@ -684,6 +737,7 @@ Group:              Libraries
 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
@@ -703,6 +757,7 @@ Provides:   php(dom)
 # 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
@@ -719,6 +774,7 @@ Group:              Libraries
 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
@@ -748,6 +804,7 @@ Group:              Libraries
 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
@@ -764,6 +821,7 @@ URL:                http://www.php.net/manual/en/book.fileinfo.php
 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}
 
@@ -790,6 +848,7 @@ URL:                http://www.php.net/manual/en/book.filter.php
 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
@@ -813,6 +872,7 @@ Group:              Libraries
 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
@@ -828,11 +888,11 @@ Group:            Libraries
 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
@@ -849,6 +909,7 @@ Group:              Libraries
 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
@@ -864,6 +925,7 @@ Group:              Libraries
 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
@@ -885,6 +947,7 @@ Provides:   php(mhash)
 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
@@ -904,6 +967,7 @@ Requires:   %{_libdir}/gconv
 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
@@ -922,6 +986,7 @@ Requires:   %{name}-common = %{epoch}:%{version}-%{release}
 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
@@ -938,9 +1003,13 @@ Summary:  InterBase/Firebird database module for PHP
 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
@@ -956,6 +1025,7 @@ Group:             Libraries
 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
@@ -977,6 +1047,7 @@ Group:             Libraries
 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
@@ -995,6 +1066,7 @@ Group:             Libraries
 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
@@ -1013,6 +1085,7 @@ Group:            Libraries
 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
@@ -1028,6 +1101,7 @@ Group:            Libraries
 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
@@ -1043,6 +1117,7 @@ Group:            Libraries
 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
@@ -1061,6 +1136,7 @@ URL:              http://www.php.net/manual/en/book.mysql.php
 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
@@ -1081,6 +1157,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 %{?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
@@ -1099,6 +1176,7 @@ Group:            Libraries
 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
@@ -1134,9 +1212,9 @@ Summary:  Oracle 8+ database module for PHP
 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,
@@ -1155,6 +1233,7 @@ URL:              http://www.php.net/manual/en/book.uodbc.php
 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
@@ -1168,6 +1247,7 @@ Um módulo para aplicações PHP que usam 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}
@@ -1181,6 +1261,14 @@ reading code from the disk and compiling it on future access. In
 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
@@ -1188,6 +1276,7 @@ Group:            Libraries
 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
@@ -1203,6 +1292,7 @@ Group:            Libraries
 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
@@ -1219,6 +1309,7 @@ Summary(pl.UTF-8):        Moduł PCRE dla PHP
 Group:         Libraries
 Requires:      %{name}-common = %{epoch}:%{version}-%{release}
 Provides:      php(pcre)
+Obsoletes:     php-pcre < 4:5.3.28-7
 
 %description pcre
 This is a dynamic shared object (DSO) for PHP that will add Perl
@@ -1235,7 +1326,9 @@ Group:            Libraries
 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
@@ -1253,6 +1346,7 @@ URL:              http://www.php.net/manual/en/ref.pdo-dblib.php
 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
@@ -1270,6 +1364,7 @@ URL:              http://www.php.net/manual/en/ref.pdo-firebird.php
 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
@@ -1289,6 +1384,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 %{?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
@@ -1304,9 +1400,10 @@ Summary: PHP Data Objects (PDO) Oracle support
 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
@@ -1325,6 +1422,7 @@ URL:              http://www.php.net/manual/en/ref.pdo-odbc.php
 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
@@ -1344,6 +1442,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 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
@@ -1362,6 +1461,7 @@ URL:              http://www.php.net/manual/en/ref.pdo-sqlite.php
 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
@@ -1379,6 +1479,7 @@ Group:            Libraries
 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
@@ -1402,6 +1503,7 @@ Suggests: %{name}-cli
 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
@@ -1418,6 +1520,7 @@ Group:            Libraries
 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
@@ -1433,6 +1536,7 @@ Group:            Libraries
 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
@@ -1450,6 +1554,7 @@ Group:            Libraries
 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
@@ -1466,6 +1571,7 @@ URL:              http://www.php.net/manual/en/book.recode.php
 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
@@ -1482,7 +1588,9 @@ Group:            Libraries
 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
@@ -1498,6 +1606,7 @@ Group:            Libraries
 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
@@ -1514,6 +1623,7 @@ URL:              http://www.php.net/manual/en/book.simplexml.php
 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
@@ -1531,6 +1641,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 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
@@ -1546,6 +1657,7 @@ Group:            Libraries
 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
@@ -1561,6 +1673,7 @@ Group:            Libraries
 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
@@ -1578,6 +1691,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 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
@@ -1593,6 +1707,7 @@ Group:            Libraries
 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
@@ -1622,6 +1737,7 @@ URL:              http://www.php.net/manual/en/book.sybase.php
 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
@@ -1638,6 +1754,7 @@ Group:            Libraries
 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
@@ -1653,6 +1770,7 @@ Group:            Libraries
 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
@@ -1668,6 +1786,7 @@ Group:            Libraries
 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
@@ -1697,6 +1816,7 @@ URL:              http://www.php.net/manual/en/book.tidy.php
 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
@@ -1712,6 +1832,7 @@ Group:            Libraries
 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
@@ -1732,6 +1853,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 #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
@@ -1747,6 +1869,7 @@ Group:            Libraries
 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
@@ -1764,8 +1887,9 @@ Summary(pl.UTF-8):        Moduł XML Reader dla PHP
 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
@@ -1786,6 +1910,7 @@ URL:              http://www.php.net/manual/en/book.xmlrpc.php
 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
@@ -1802,6 +1927,7 @@ URL:              http://www.php.net/manual/en/book.xmlwriter.php
 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
@@ -1821,8 +1947,9 @@ URL:              http://www.php.net/manual/en/book.xsl.php
 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
@@ -1841,6 +1968,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release}
 %{?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.
@@ -1856,6 +1984,7 @@ Group:            Libraries
 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
@@ -1865,7 +1994,8 @@ compression support to PHP.
 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
@@ -1874,8 +2004,8 @@ Moduł PHP umożliwiający używanie kompresji zlib.
 %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
@@ -1883,9 +2013,6 @@ cp -p php.ini-production php.ini
 %patch14 -p1
 %patch17 -p1
 %patch18 -p1
-%if %{with system_gd}
-%patch19 -p1
-%endif
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
@@ -1896,7 +2023,9 @@ cp -p php.ini-production php.ini
 %patch27 -p1
 %patch29 -p1
 %patch31 -p1
+%if "%{pld_release}" != "ac"
 %patch34 -p1
+%endif
 %patch35 -p1
 %patch36 -p1
 %patch37 -p1
@@ -1925,6 +2054,8 @@ cp -p php.ini-production php.ini
 %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
 
@@ -1949,6 +2080,7 @@ find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
 #%{__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
@@ -2021,6 +2153,12 @@ if [ $API != %{zend_extension_api} ]; then
        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
@@ -2040,7 +2178,7 @@ if test "$ver" != "%{sqlite3ver}"; 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.
@@ -2054,10 +2192,16 @@ if test "$ver" != "%{jsonver}"; then
 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}.
@@ -2087,7 +2231,7 @@ export EXTENSION_DIR="%{php_extensiondir}"
 # 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.* .
@@ -2118,6 +2262,12 @@ apxs1
 %if %{with apache2}
 apxs2
 %endif
+%if %{with phpdbg}
+phpdbg
+%endif
+%if %{with milter}
+milter
+%endif
 "
 for sapi in $sapis; do
        : SAPI $sapi
@@ -2133,21 +2283,27 @@ for sapi in $sapis; do
                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
 
@@ -2194,7 +2350,7 @@ for sapi in $sapis; do
        %{?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} \
@@ -2234,7 +2390,7 @@ for sapi in $sapis; do
        %{?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} \
@@ -2288,7 +2444,21 @@ cp -af Makefile.cli Makefile
 %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
@@ -2374,7 +2544,8 @@ chmod +x run-tests.sh
 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
@@ -2385,6 +2556,8 @@ sed -ne '/^via/d;/\[.*\]/{s/\t*\(.*\) \[\(.*\)\]\(.*\)/# \1\3\nmv \2{,.skip}/p}'
 tty -q || cat tests.log
 
 test ! -s failed.log
+exit $rc
+}
 %endif
 
 %install
@@ -2397,6 +2570,7 @@ install -d $RPM_BUILD_ROOT{%{_libdir}/{php,apache{,1}},%{_sysconfdir}/{apache,cg
 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
@@ -2424,6 +2598,16 @@ ln -s libphp5-$v.so $RPM_BUILD_ROOT%{_libdir}/apache/libphp5.so
 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
@@ -2440,23 +2624,28 @@ install -d $RPM_BUILD_ROOT{%{_sysconfdir}/fpm.d,%{_sbindir}}
 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
 
@@ -2464,15 +2653,8 @@ cp -p sapi/embed/php_embed.h $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed
 # 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
 
@@ -2508,12 +2690,18 @@ install -d $RPM_BUILD_ROOT%{_sysconfdir}/{cgi-fcgi,cli,apache,apache2handler}.d
 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
@@ -2526,12 +2714,8 @@ cp -a tests/* $RPM_BUILD_ROOT%{php_data_dir}/tests/php
 
 # fix install paths, avoid evil rpaths
 sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.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
@@ -2601,6 +2785,27 @@ fi
 [ ! -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 \
@@ -2723,7 +2928,7 @@ fi
 %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
@@ -2732,11 +2937,11 @@ fi
 %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
@@ -2744,15 +2949,29 @@ fi
 %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
@@ -2764,20 +2983,15 @@ fi
 
 %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)
@@ -2819,6 +3033,7 @@ fi
 %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
 
@@ -2966,7 +3181,7 @@ fi
 %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}
@@ -3040,7 +3255,7 @@ fi
 %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
@@ -3088,6 +3303,8 @@ fi
 %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
@@ -3134,6 +3351,7 @@ fi
 %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
 
@@ -3159,7 +3377,8 @@ fi
 
 %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
 
@@ -3216,6 +3435,7 @@ fi
 %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
@@ -3242,7 +3462,8 @@ fi
 
 %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
 
@@ -3257,6 +3478,7 @@ fi
 %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
 
@@ -3269,6 +3491,7 @@ fi
 %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
 
index e5e3ed4112d17bb53699d9b6c556874f2d07f9ee..378a4e45e429458180c8b8927b02ea7bc2618c78 100644 (file)
@@ -5616,12 +5616,11 @@ the following modifications have been made:
                                        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());
@@ -5630,14 +5629,15 @@ the following modifications have been made:
 +#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[])