diff --git a/SOURCES/10-opcache.ini b/SOURCES/10-opcache.ini index 845fd85..1935a26 100644 --- a/SOURCES/10-opcache.ini +++ b/SOURCES/10-opcache.ini @@ -1,5 +1,5 @@ ; Enable Zend OPcache extension module -zend_extension=opcache.so +zend_extension=opcache ; Determines if Zend OPCache is enabled opcache.enable=1 @@ -14,7 +14,7 @@ opcache.memory_consumption=128 opcache.interned_strings_buffer=8 ; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 100000 are allowed. +; Only numbers between 200 and 1000000 are allowed. opcache.max_accelerated_files=4000 ; The maximum percentage of "wasted" memory until a restart is scheduled. @@ -43,6 +43,7 @@ opcache.max_accelerated_files=4000 ;opcache.save_comments=1 ; If enabled, a fast shutdown sequence is used for the accelerated code +; Depending on the used Memory Manager this may cause some incompatibilities. ;opcache.fast_shutdown=0 ; Allow file existence override (file_exists, etc.) performance feature. @@ -112,9 +113,15 @@ opcache.blacklist_filename=/etc/php.d/opcache*.blacklist ;opcache.file_cache_fallback=1 ; Validate cached file permissions. +; Leads OPcache to check file readability on each access to cached file. +; This directive should be enabled in shared hosting environment, when few +; users (PHP-FPM pools) reuse the common OPcache shared memory. ;opcache.validate_permission=0 ; Prevent name collisions in chroot'ed environment. +; This directive prevents file name collisions in different "chroot" +; environments. It should be enabled for sites that may serve requests in +; different "chroot" environments. ;opcache.validate_root=0 ; Enables or disables copying of PHP code (text segment) into HUGE PAGES. diff --git a/SOURCES/nginx-php.conf b/SOURCES/nginx-php.conf index 9b01536..1df1b04 100644 --- a/SOURCES/nginx-php.conf +++ b/SOURCES/nginx-php.conf @@ -4,11 +4,13 @@ # index index.php index.html index.htm; -location ~ \.php$ { - try_files $uri =404; +location ~ \.(php|phar)(/.*)?$ { + fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; + fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php-fpm; } diff --git a/SOURCES/php-7.1.7-httpd.patch b/SOURCES/php-7.1.7-httpd.patch new file mode 100644 index 0000000..1ec8f02 --- /dev/null +++ b/SOURCES/php-7.1.7-httpd.patch @@ -0,0 +1,28 @@ +Disable MPM detection + +mod_php is build twice +- as NTS without option +- as ZTS using --enable-maintainer-zts + +diff --git a/sapi/apache2handler/config.m4 b/sapi/apache2handler/config.m4 +index 2e64b21..ec4799f 100644 +--- a/sapi/apache2handler/config.m4 ++++ b/sapi/apache2handler/config.m4 +@@ -116,17 +116,6 @@ if test "$PHP_APXS2" != "no"; then + ;; + esac + +- if test "$APACHE_VERSION" -lt 2004001; then +- APXS_MPM=`$APXS -q MPM_NAME` +- if test "$APXS_MPM" != "prefork" && test "$APXS_MPM" != "peruser" && test "$APXS_MPM" != "itk"; then +- PHP_BUILD_THREAD_SAFE +- fi +- else +- APACHE_THREADED_MPM=`$APXS_HTTPD -V | grep 'threaded:.*yes'` +- if test -n "$APACHE_THREADED_MPM"; then +- PHP_BUILD_THREAD_SAFE +- fi +- fi + AC_MSG_RESULT(yes) + PHP_SUBST(APXS) + else diff --git a/SOURCES/php-7.2.0-includedir.patch b/SOURCES/php-7.2.0-includedir.patch new file mode 100644 index 0000000..59bcd94 --- /dev/null +++ b/SOURCES/php-7.2.0-includedir.patch @@ -0,0 +1,11 @@ +--- php-7.2.0/configure.ac.includedir ++++ php-7.2.0/configure.ac +@@ -1230,7 +1230,7 @@ + EXPANDED_DATADIR=$datadir + EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` + EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"` +-INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR ++INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR:${EXPANDED_DATADIR}/php + + exec_prefix=$old_exec_prefix + libdir=$old_libdir diff --git a/SOURCES/php-7.2.0-libdb.patch b/SOURCES/php-7.2.0-libdb.patch new file mode 100644 index 0000000..d606b7b --- /dev/null +++ b/SOURCES/php-7.2.0-libdb.patch @@ -0,0 +1,92 @@ +diff -up php-7.2.0alpha0/ext/dba/config.m4.libdb php-7.2.0alpha0/ext/dba/config.m4 +--- php-7.2.0alpha0/ext/dba/config.m4.libdb 2017-05-29 08:56:06.000000000 +0200 ++++ php-7.2.0alpha0/ext/dba/config.m4 2017-05-29 09:13:52.014823282 +0200 +@@ -346,61 +346,13 @@ if test "$PHP_DB4" != "no"; then + dbdp4="/usr/local/BerkeleyDB.4." + dbdp5="/usr/local/BerkeleyDB.5." + for i in $PHP_DB4 ${dbdp5}1 ${dbdp5}0 ${dbdp4}8 ${dbdp4}7 ${dbdp4}6 ${dbdp4}5 ${dbdp4}4 ${dbdp4}3 ${dbdp4}2 ${dbdp4}1 ${dbdp}0 /usr/local /usr; do +- if test -f "$i/db5/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/db5/db.h +- break +- elif test -f "$i/db4/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/db4/db.h +- break +- elif test -f "$i/include/db5.3/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db5.3/db.h +- break +- elif test -f "$i/include/db5.1/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db5.1/db.h +- break +- elif test -f "$i/include/db5.0/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db5.0/db.h +- break +- elif test -f "$i/include/db4.8/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.8/db.h +- break +- elif test -f "$i/include/db4.7/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.7/db.h +- break +- elif test -f "$i/include/db4.6/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.6/db.h +- break +- elif test -f "$i/include/db4.5/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.5/db.h +- break +- elif test -f "$i/include/db4/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4/db.h +- break +- elif test -f "$i/include/db/db4.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db/db4.h +- break +- elif test -f "$i/include/db4.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.h +- break +- elif test -f "$i/include/db.h"; then ++ if test -f "$i/include/db.h"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db.h + break + fi + done +- PHP_DBA_DB_CHECK(4, db-5.3 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)]) ++ PHP_DBA_DB_CHECK(4, db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)]) + fi + PHP_DBA_STD_RESULT(db4,Berkeley DB4) + +diff -up php-7.2.0alpha0/ext/dba/dba.c.libdb php-7.2.0alpha0/ext/dba/dba.c +--- php-7.2.0alpha0/ext/dba/dba.c.libdb 2017-05-29 09:16:15.736628202 +0200 ++++ php-7.2.0alpha0/ext/dba/dba.c 2017-05-29 09:16:20.494654746 +0200 +@@ -53,6 +53,10 @@ + #include "php_tcadb.h" + #include "php_lmdb.h" + ++#ifdef DB4_INCLUDE_FILE ++#include DB4_INCLUDE_FILE ++#endif ++ + /* {{{ arginfo */ + ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_popen, 0, 0, 2) + ZEND_ARG_INFO(0, path) +@@ -558,6 +562,10 @@ PHP_MINFO_FUNCTION(dba) + + php_info_print_table_start(); + php_info_print_table_row(2, "DBA support", "enabled"); ++#ifdef DB_VERSION_STRING ++ php_info_print_table_row(2, "libdb header version", DB_VERSION_STRING); ++ php_info_print_table_row(2, "libdb library version", db_version(NULL, NULL, NULL)); ++#endif + if (handlers.s) { + smart_str_0(&handlers); + php_info_print_table_row(2, "Supported handlers", ZSTR_VAL(handlers.s)); diff --git a/SOURCES/php-7.2.12-phpize.patch b/SOURCES/php-7.2.12-phpize.patch new file mode 100644 index 0000000..77004d9 --- /dev/null +++ b/SOURCES/php-7.2.12-phpize.patch @@ -0,0 +1,35 @@ +diff -up php-7.2.12RC1/scripts/phpize.in.headers php-7.2.12RC1/scripts/phpize.in +--- php-7.2.12RC1/scripts/phpize.in.headers 2018-10-23 11:47:43.000000000 +0200 ++++ php-7.2.12RC1/scripts/phpize.in 2018-10-23 11:49:51.651818777 +0200 +@@ -162,6 +162,15 @@ phpize_autotools() + $PHP_AUTOHEADER || exit 1 + } + ++phpize_check_headers() ++{ ++ if test ! -f $includedir/main/php.h; then ++ echo "Can't find PHP headers in $includedir" ++ echo "The php-devel package is required for use of this command." ++ exit 1 ++ fi ++} ++ + # Main script + + case "$1" in +@@ -180,12 +189,15 @@ case "$1" in + + # Version + --version|-v) ++ phpize_check_headers + phpize_print_api_numbers + exit 0 + ;; + + # Default + *) ++ phpize_check_headers ++ + phpize_check_configm4 0 + + phpize_check_build_files diff --git a/SOURCES/php-7.2.3-ldap_r.patch b/SOURCES/php-7.2.3-ldap_r.patch new file mode 100644 index 0000000..9d7e2f3 --- /dev/null +++ b/SOURCES/php-7.2.3-ldap_r.patch @@ -0,0 +1,18 @@ + +Use -lldap_r by default. + +diff -up php-7.2.3RC1/ext/ldap/config.m4.ldap_r php-7.2.3RC1/ext/ldap/config.m4 +--- php-7.2.3RC1/ext/ldap/config.m4.ldap_r 2018-02-14 06:05:11.553142812 +0100 ++++ php-7.2.3RC1/ext/ldap/config.m4 2018-02-14 06:07:31.179816122 +0100 +@@ -119,7 +119,11 @@ if test "$PHP_LDAP" != "no"; then + + MACHINE_INCLUDES=$($CC -dumpmachine) + +- if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then ++ if test -f $LDAP_LIBDIR/libldap_r.$SHLIB_SUFFIX_NAME; then ++ PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(ldap_r, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) ++ ++ elif test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then + PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) diff --git a/SOURCES/php-7.2.3-systzdata-v16.patch b/SOURCES/php-7.2.3-systzdata-v16.patch new file mode 100644 index 0000000..1844cf6 --- /dev/null +++ b/SOURCES/php-7.2.3-systzdata-v16.patch @@ -0,0 +1,654 @@ +# License: MIT +# http://opensource.org/licenses/MIT + +Add support for use of the system timezone database, rather +than embedding a copy. Discussed upstream but was not desired. + +History: +r16: adapt for timelib 2017.06 (in 7.2.3RC1) +r15: adapt for timelib 2017.05beta7 (in 7.2.0RC1) +r14: improve check for valid tz file +r13: adapt for upstream changes to use PHP allocator +r12: adapt for upstream changes for new zic +r11: use canonical names to avoid more case sensitivity issues + round lat/long from zone.tab towards zero per builtin db +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 +r6: fix fd leak in r5, fix country code/BC flag use in + timezone_identifiers_list() using system db, + fix use of PECL timezonedb to override system db, +r5: reverts addition of "System/Localtime" fake tzname. + updated for 5.3.0, parses zone.tab to pick up mapping between + timezone name, country code and long/lat coords +r4: added "System/Localtime" tzname which uses /etc/localtime +r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert) +r2: add filesystem trawl to set up name alias index +r1: initial revision + +diff -up php-7.2.3RC1/ext/date/lib/parse_tz.c.systzdata php-7.2.3RC1/ext/date/lib/parse_tz.c +--- php-7.2.3RC1/ext/date/lib/parse_tz.c.systzdata 2018-02-13 20:18:34.000000000 +0100 ++++ php-7.2.3RC1/ext/date/lib/parse_tz.c 2018-02-14 06:14:23.484804852 +0100 +@@ -25,8 +25,21 @@ + #include "timelib.h" + #include "timelib_private.h" + ++#ifdef HAVE_SYSTEM_TZDATA ++#include ++#include ++#include ++#include ++#include ++ ++#include "php_scandir.h" ++ ++#else + #define TIMELIB_SUPPORTS_V2DATA + #include "timezonedb.h" ++#endif ++ ++#include + + #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) + # if defined(__LITTLE_ENDIAN__) +@@ -67,6 +80,11 @@ static int read_php_preamble(const unsig + { + uint32_t version; + ++ if (memcmp(*tzf, "TZif", 4) == 0) { ++ *tzf += 20; ++ return 0; ++ } ++ + /* read ID */ + version = (*tzf)[3] - '0'; + *tzf += 4; +@@ -374,7 +392,429 @@ void timelib_dump_tzinfo(timelib_tzinfo + } + } + +-static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) ++#ifdef HAVE_SYSTEM_TZDATA ++ ++#ifdef HAVE_SYSTEM_TZDATA_PREFIX ++#define ZONEINFO_PREFIX HAVE_SYSTEM_TZDATA_PREFIX ++#else ++#define ZONEINFO_PREFIX "/usr/share/zoneinfo" ++#endif ++ ++/* System timezone database pointer. */ ++static const timelib_tzdb *timezonedb_system; ++ ++/* Hash table entry for the cache of the zone.tab mapping table. */ ++struct location_info { ++ char code[2]; ++ double latitude, longitude; ++ char name[64]; ++ char *comment; ++ struct location_info *next; ++}; ++ ++/* Cache of zone.tab. */ ++static struct location_info **system_location_table; ++ ++/* Size of the zone.tab hash table; a random-ish prime big enough to ++ * 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 = tolower(*p++)) != '\0') { ++ hash = (hash << 5) ^ hash ^ c; ++ } ++ ++ return hash % LOCINFO_HASH_SIZE; ++} ++ ++/* Parse an ISO-6709 date as used in zone.tab. Returns end of the ++ * parsed string on success, or NULL on parse error. On success, ++ * writes the parsed number to *result. */ ++static char *parse_iso6709(char *p, double *result) ++{ ++ double v, sign; ++ char *pend; ++ size_t len; ++ ++ if (*p == '+') ++ sign = 1.0; ++ else if (*p == '-') ++ sign = -1.0; ++ else ++ return NULL; ++ ++ p++; ++ for (pend = p; *pend >= '0' && *pend <= '9'; pend++) ++ ;; ++ ++ /* Annoying encoding used by zone.tab has no decimal point, so use ++ * the length to determine the format: ++ * ++ * 4 = DDMM ++ * 5 = DDDMM ++ * 6 = DDMMSS ++ * 7 = DDDMMSS ++ */ ++ len = pend - p; ++ if (len < 4 || len > 7) { ++ return NULL; ++ } ++ ++ /* p => [D]DD */ ++ v = (p[0] - '0') * 10.0 + (p[1] - '0'); ++ p += 2; ++ if (len == 5 || len == 7) ++ v = v * 10.0 + (*p++ - '0'); ++ /* p => MM[SS] */ ++ v += (10.0 * (p[0] - '0') ++ + p[1] - '0') / 60.0; ++ p += 2; ++ /* p => [SS] */ ++ if (len > 5) { ++ v += (10.0 * (p[0] - '0') ++ + p[1] - '0') / 3600.0; ++ p += 2; ++ } ++ ++ /* Round to five decimal place, not because it's a good idea, ++ * but, because the builtin data uses rounded data, so, match ++ * that. */ ++ *result = trunc(v * sign * 100000.0) / 100000.0; ++ ++ return p; ++} ++ ++/* This function parses the zone.tab file to build up the mapping of ++ * timezone to country code and geographic location, and returns a ++ * hash table. The hash table is indexed by the function: ++ * ++ * tz_hash(timezone-name) ++ */ ++static struct location_info **create_location_table(void) ++{ ++ struct location_info **li, *i; ++ char zone_tab[PATH_MAX]; ++ char line[512]; ++ FILE *fp; ++ ++ strncpy(zone_tab, ZONEINFO_PREFIX "/zone.tab", sizeof zone_tab); ++ ++ fp = fopen(zone_tab, "r"); ++ if (!fp) { ++ return NULL; ++ } ++ ++ li = calloc(LOCINFO_HASH_SIZE, sizeof *li); ++ ++ while (fgets(line, sizeof line, fp)) { ++ char *p = line, *code, *name, *comment; ++ uint32_t hash; ++ double latitude, longitude; ++ ++ while (isspace(*p)) ++ p++; ++ ++ if (*p == '#' || *p == '\0' || *p == '\n') ++ continue; ++ ++ if (!isalpha(p[0]) || !isalpha(p[1]) || p[2] != '\t') ++ continue; ++ ++ /* code => AA */ ++ code = p; ++ p[2] = 0; ++ p += 3; ++ ++ /* coords => [+-][D]DDMM[SS][+-][D]DDMM[SS] */ ++ p = parse_iso6709(p, &latitude); ++ if (!p) { ++ continue; ++ } ++ p = parse_iso6709(p, &longitude); ++ if (!p) { ++ continue; ++ } ++ ++ if (!p || *p != '\t') { ++ continue; ++ } ++ ++ /* name = string */ ++ name = ++p; ++ while (*p != '\t' && *p && *p != '\n') ++ p++; ++ ++ *p++ = '\0'; ++ ++ /* comment = string */ ++ comment = p; ++ while (*p != '\t' && *p && *p != '\n') ++ p++; ++ ++ if (*p == '\n' || *p == '\t') ++ *p = '\0'; ++ ++ hash = tz_hash(name); ++ i = malloc(sizeof *i); ++ memcpy(i->code, code, 2); ++ strncpy(i->name, name, sizeof i->name); ++ i->comment = strdup(comment); ++ i->longitude = longitude; ++ i->latitude = latitude; ++ i->next = li[hash]; ++ li[hash] = i; ++ /* printf("%s [%u, %f, %f]\n", name, hash, latitude, longitude); */ ++ } ++ ++ fclose(fp); ++ ++ return li; ++} ++ ++/* Return location info from hash table, using given timezone name. ++ * Returns NULL if the name could not be found. */ ++const struct location_info *find_zone_info(struct location_info **li, ++ const char *name) ++{ ++ uint32_t hash = tz_hash(name); ++ const struct location_info *l; ++ ++ if (!li) { ++ return NULL; ++ } ++ ++ for (l = li[hash]; l; l = l->next) { ++ if (timelib_strcasecmp(l->name, name) == 0) ++ return l; ++ } ++ ++ return NULL; ++} ++ ++/* Filter out some non-tzdata files and the posix/right databases, if ++ * present. */ ++static int index_filter(const struct dirent *ent) ++{ ++ return strcmp(ent->d_name, ".") != 0 ++ && strcmp(ent->d_name, "..") != 0 ++ && strcmp(ent->d_name, "posix") != 0 ++ && strcmp(ent->d_name, "posixrules") != 0 ++ && strcmp(ent->d_name, "right") != 0 ++ && strstr(ent->d_name, ".list") == NULL ++ && strstr(ent->d_name, ".tab") == NULL; ++} ++ ++static int sysdbcmp(const void *first, const void *second) ++{ ++ const timelib_tzdb_index_entry *alpha = first, *beta = second; ++ ++ return timelib_strcasecmp(alpha->id, beta->id); ++} ++ ++ ++/* Create the zone identifier index by trawling the filesystem. */ ++static void create_zone_index(timelib_tzdb *db) ++{ ++ size_t dirstack_size, dirstack_top; ++ size_t index_size, index_next; ++ timelib_tzdb_index_entry *db_index; ++ char **dirstack; ++ ++ /* LIFO stack to hold directory entries to scan; each slot is a ++ * directory name relative to the zoneinfo prefix. */ ++ dirstack_size = 32; ++ dirstack = malloc(dirstack_size * sizeof *dirstack); ++ dirstack_top = 1; ++ dirstack[0] = strdup(""); ++ ++ /* Index array. */ ++ index_size = 64; ++ db_index = malloc(index_size * sizeof *db_index); ++ index_next = 0; ++ ++ do { ++ struct dirent **ents; ++ char name[PATH_MAX], *top; ++ int count; ++ ++ /* Pop the top stack entry, and iterate through its contents. */ ++ top = dirstack[--dirstack_top]; ++ snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s", top); ++ ++ count = php_scandir(name, &ents, index_filter, php_alphasort); ++ ++ while (count > 0) { ++ struct stat st; ++ const char *leaf = ents[count - 1]->d_name; ++ ++ snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s/%s", ++ top, leaf); ++ ++ if (strlen(name) && stat(name, &st) == 0) { ++ /* Name, relative to the zoneinfo prefix. */ ++ const char *root = top; ++ ++ if (root[0] == '/') root++; ++ ++ snprintf(name, sizeof name, "%s%s%s", root, ++ *root ? "/": "", leaf); ++ ++ if (S_ISDIR(st.st_mode)) { ++ if (dirstack_top == dirstack_size) { ++ dirstack_size *= 2; ++ dirstack = realloc(dirstack, ++ dirstack_size * sizeof *dirstack); ++ } ++ dirstack[dirstack_top++] = strdup(name); ++ } ++ else { ++ if (index_next == index_size) { ++ index_size *= 2; ++ db_index = realloc(db_index, ++ index_size * sizeof *db_index); ++ } ++ ++ db_index[index_next++].id = strdup(name); ++ } ++ } ++ ++ free(ents[--count]); ++ } ++ ++ if (count != -1) free(ents); ++ free(top); ++ } while (dirstack_top); ++ ++ qsort(db_index, index_next, sizeof *db_index, sysdbcmp); ++ ++ db->index = db_index; ++ db->index_size = index_next; ++ ++ free(dirstack); ++} ++ ++#define FAKE_HEADER "1234\0??\1??" ++#define FAKE_UTC_POS (7 - 4) ++ ++/* Create a fake data segment for database 'sysdb'. */ ++static void fake_data_segment(timelib_tzdb *sysdb, ++ struct location_info **info) ++{ ++ size_t n; ++ char *data, *p; ++ ++ data = malloc(3 * sysdb->index_size + 7); ++ ++ p = mempcpy(data, FAKE_HEADER, sizeof(FAKE_HEADER) - 1); ++ ++ for (n = 0; n < sysdb->index_size; n++) { ++ const struct location_info *li; ++ timelib_tzdb_index_entry *ent; ++ ++ ent = (timelib_tzdb_index_entry *)&sysdb->index[n]; ++ ++ /* Lookup the timezone name in the hash table. */ ++ if (strcmp(ent->id, "UTC") == 0) { ++ ent->pos = FAKE_UTC_POS; ++ continue; ++ } ++ ++ li = find_zone_info(info, ent->id); ++ if (li) { ++ /* If found, append the BC byte and the ++ * country code; set the position for this ++ * section of timezone data. */ ++ ent->pos = (p - data) - 4; ++ *p++ = '\1'; ++ *p++ = li->code[0]; ++ *p++ = li->code[1]; ++ } ++ else { ++ /* If not found, the timezone data can ++ * point at the header. */ ++ ent->pos = 0; ++ } ++ } ++ ++ sysdb->data = (unsigned char *)data; ++} ++ ++/* Returns true if the passed-in stat structure describes a ++ * probably-valid timezone file. */ ++static int is_valid_tzfile(const struct stat *st, int fd) ++{ ++ if (fd) { ++ char buf[20]; ++ if (read(fd, buf, 20)!=20) { ++ return 0; ++ } ++ lseek(fd, SEEK_SET, 0); ++ if (memcmp(buf, "TZif", 4)) { ++ return 0; ++ } ++ } ++ return S_ISREG(st->st_mode) && st->st_size > 20; ++} ++ ++/* To allow timezone names to be used case-insensitively, find the ++ * canonical name for this timezone, if possible. */ ++static const char *canonical_tzname(const char *timezone) ++{ ++ if (timezonedb_system) { ++ timelib_tzdb_index_entry *ent, lookup; ++ ++ lookup.id = (char *)timezone; ++ ++ ent = bsearch(&lookup, timezonedb_system->index, ++ timezonedb_system->index_size, sizeof lookup, ++ sysdbcmp); ++ if (ent) { ++ return ent->id; ++ } ++ } ++ ++ return timezone; ++} ++ ++/* Return the mmap()ed tzfile if found, else NULL. On success, the ++ * length of the mapped data is placed in *length. */ ++static char *map_tzfile(const char *timezone, size_t *length) ++{ ++ char fname[PATH_MAX]; ++ struct stat st; ++ char *p; ++ int fd; ++ ++ if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) { ++ return NULL; ++ } ++ ++ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone)); ++ ++ fd = open(fname, O_RDONLY); ++ if (fd == -1) { ++ return NULL; ++ } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) { ++ close(fd); ++ return NULL; ++ } ++ ++ *length = st.st_size; ++ p = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); ++ close(fd); ++ ++ return p != MAP_FAILED ? p : NULL; ++} ++ ++#endif ++ ++static int inmem_seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) + { + int left = 0, right = tzdb->index_size - 1; + +@@ -400,9 +840,48 @@ static int seek_to_tz_position(const uns + return 0; + } + ++static int seek_to_tz_position(const unsigned char **tzf, char *timezone, ++ char **map, size_t *maplen, ++ const timelib_tzdb *tzdb) ++{ ++#ifdef HAVE_SYSTEM_TZDATA ++ if (tzdb == timezonedb_system) { ++ char *orig; ++ ++ orig = map_tzfile(timezone, maplen); ++ if (orig == NULL) { ++ return 0; ++ } ++ ++ (*tzf) = (unsigned char *)orig; ++ *map = orig; ++ return 1; ++ } ++ else ++#endif ++ { ++ return inmem_seek_to_tz_position(tzf, timezone, tzdb); ++ } ++} ++ + const timelib_tzdb *timelib_builtin_db(void) + { ++#ifdef HAVE_SYSTEM_TZDATA ++ if (timezonedb_system == NULL) { ++ timelib_tzdb *tmp = malloc(sizeof *tmp); ++ ++ tmp->version = "0.system"; ++ tmp->data = NULL; ++ create_zone_index(tmp); ++ system_location_table = create_location_table(); ++ fake_data_segment(tmp, system_location_table); ++ timezonedb_system = tmp; ++ } ++ ++ return timezonedb_system; ++#else + return &timezonedb_builtin; ++#endif + } + + const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count) +@@ -414,7 +893,30 @@ const timelib_tzdb_index_entry *timelib_ + int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) + { + const unsigned char *tzf; +- return (seek_to_tz_position(&tzf, timezone, tzdb)); ++ ++#ifdef HAVE_SYSTEM_TZDATA ++ if (tzdb == timezonedb_system) { ++ char fname[PATH_MAX]; ++ struct stat st; ++ ++ if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) { ++ 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", canonical_tzname(timezone)); ++ ++ return stat(fname, &st) == 0 && is_valid_tzfile(&st, 0); ++ } ++#endif ++ ++ return (inmem_seek_to_tz_position(&tzf, timezone, tzdb)); + } + + static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz) +@@ -456,12 +958,14 @@ static timelib_tzinfo* timelib_tzinfo_ct + timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, int *error_code) + { + const unsigned char *tzf; ++ char *memmap = NULL; ++ size_t maplen; + timelib_tzinfo *tmp; + int version; + int transitions_result, types_result; + unsigned int type; /* TIMELIB_TZINFO_PHP or TIMELIB_TZINFO_ZONEINFO */ + +- if (seek_to_tz_position(&tzf, timezone, tzdb)) { ++ if (seek_to_tz_position(&tzf, timezone, &memmap, &maplen, tzdb)) { + tmp = timelib_tzinfo_ctor(timezone); + + version = read_preamble(&tzf, tmp, &type); +@@ -484,6 +988,29 @@ timelib_tzinfo *timelib_parse_tzfile(cha + timelib_tzinfo_dtor(tmp); + return NULL; + } ++ ++#ifdef HAVE_SYSTEM_TZDATA ++ if (memmap) { ++ const struct location_info *li; ++ ++ /* TZif-style - grok the location info from the system database, ++ * if possible. */ ++ ++ if ((li = find_zone_info(system_location_table, timezone)) != NULL) { ++ tmp->location.comments = timelib_strdup(li->comment); ++ strncpy(tmp->location.country_code, li->code, 2); ++ tmp->location.longitude = li->longitude; ++ tmp->location.latitude = li->latitude; ++ tmp->bc = 1; ++ } ++ else { ++ set_default_location_and_comments(&tzf, tmp); ++ } ++ ++ /* Now done with the mmap segment - discard it. */ ++ munmap(memmap, maplen); ++ } else { ++#endif + if (version == 2 || version == 3) { + if (!skip_64bit_preamble(&tzf, tmp)) { + /* 64 bit preamble is not in place */ +@@ -501,6 +1028,9 @@ timelib_tzinfo *timelib_parse_tzfile(cha + } else { + set_default_location_and_comments(&tzf, tmp); + } ++#ifdef HAVE_SYSTEM_TZDATA ++ } ++#endif + } else { + *error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE; + tmp = NULL; +diff -up php-7.2.3RC1/ext/date/lib/timelib.m4.systzdata php-7.2.3RC1/ext/date/lib/timelib.m4 +--- php-7.2.3RC1/ext/date/lib/timelib.m4.systzdata 2018-02-13 20:18:34.000000000 +0100 ++++ php-7.2.3RC1/ext/date/lib/timelib.m4 2018-02-14 06:11:54.273089963 +0100 +@@ -81,3 +81,16 @@ io.h + + dnl Check for strtoll, atoll + AC_CHECK_FUNCS(strtoll atoll strftime gettimeofday) ++ ++PHP_ARG_WITH(system-tzdata, for use of system timezone data, ++[ --with-system-tzdata[=DIR] to specify use of system timezone data], ++no, no) ++ ++if test "$PHP_SYSTEM_TZDATA" != "no"; then ++ AC_DEFINE(HAVE_SYSTEM_TZDATA, 1, [Define if system timezone data is used]) ++ ++ if test "$PHP_SYSTEM_TZDATA" != "yes"; then ++ AC_DEFINE_UNQUOTED(HAVE_SYSTEM_TZDATA_PREFIX, "$PHP_SYSTEM_TZDATA", ++ [Define for location of system timezone data]) ++ fi ++fi diff --git a/SOURCES/php-7.2.4-dlopen.patch b/SOURCES/php-7.2.4-dlopen.patch new file mode 100644 index 0000000..6e51c22 --- /dev/null +++ b/SOURCES/php-7.2.4-dlopen.patch @@ -0,0 +1,30 @@ +diff -up php-7.2.4RC1/sapi/litespeed/lsapilib.c.dlopen php-7.2.4RC1/sapi/litespeed/lsapilib.c +--- php-7.2.4RC1/sapi/litespeed/lsapilib.c.dlopen 2018-03-13 12:40:25.330885880 +0100 ++++ php-7.2.4RC1/sapi/litespeed/lsapilib.c 2018-03-13 12:41:35.797251042 +0100 +@@ -755,7 +755,7 @@ static int (*fp_lve_leave)(struct liblve + static int (*fp_lve_jail)( struct passwd *, char *) = NULL; + static int lsapi_load_lve_lib(void) + { +- s_liblve = dlopen("liblve.so.0", RTLD_LAZY); ++ s_liblve = dlopen("liblve.so.0", RTLD_NOW); + if (s_liblve) + { + fp_lve_is_available = dlsym(s_liblve, "lve_is_available"); +diff -up php-7.2.4RC1/Zend/zend_portability.h.dlopen php-7.2.4RC1/Zend/zend_portability.h +--- php-7.2.4RC1/Zend/zend_portability.h.dlopen 2018-03-13 12:33:38.000000000 +0100 ++++ php-7.2.4RC1/Zend/zend_portability.h 2018-03-13 12:40:25.330885880 +0100 +@@ -144,11 +144,11 @@ + # endif + + # if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT) +-# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) ++# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) + # elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) +-# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND) ++# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_DEEPBIND) + # else +-# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL) ++# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL) + # endif + # define DL_UNLOAD dlclose + # if defined(DLSYM_NEEDS_UNDERSCORE) diff --git a/SOURCES/php-7.2.4-fixheader.patch b/SOURCES/php-7.2.4-fixheader.patch new file mode 100644 index 0000000..3d137c8 --- /dev/null +++ b/SOURCES/php-7.2.4-fixheader.patch @@ -0,0 +1,12 @@ +diff -up php-7.2.4RC1/configure.ac.fixheader php-7.2.4RC1/configure.ac +--- php-7.2.4RC1/configure.ac.fixheader 2018-03-13 12:42:47.594623100 +0100 ++++ php-7.2.4RC1/configure.ac 2018-03-13 12:43:35.591871825 +0100 +@@ -1275,7 +1275,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d` + fi + AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date]) + +-PHP_UNAME=`uname -a | xargs` ++PHP_UNAME=`uname | xargs` + AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output]) + PHP_OS=`uname | xargs` + AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output]) diff --git a/SOURCES/php-7.2.8-getallheaders.patch b/SOURCES/php-7.2.8-getallheaders.patch new file mode 100644 index 0000000..91df8b9 --- /dev/null +++ b/SOURCES/php-7.2.8-getallheaders.patch @@ -0,0 +1,279 @@ +Adapted for 7.2 from 7.3 by remi + + +From 0ea4013f101d64fbeb9221260b36e98f10ed1ddd Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Wed, 4 Jul 2018 08:48:38 +0200 +Subject: [PATCH] Fixed bug #62596 add getallheaders (apache_request_headers) + missing function in FPM add sapi_add_request_header in public API (was + add_request_header) fix arginfo for fastcgi_finish_request fucntion + +--- + main/SAPI.c | 50 +++++++++++++++++++++++++++++ + main/SAPI.h | 1 + + sapi/cgi/cgi_main.c | 51 +---------------------------- + sapi/fpm/fpm/fpm_main.c | 25 ++++++++++++++- + sapi/fpm/tests/getallheaders.phpt | 67 +++++++++++++++++++++++++++++++++++++++ + 5 files changed, 143 insertions(+), 51 deletions(-) + create mode 100644 sapi/fpm/tests/getallheaders.phpt + +diff --git a/main/SAPI.c b/main/SAPI.c +index b6c3329..7e0c7c8 100644 +--- a/main/SAPI.c ++++ b/main/SAPI.c +@@ -1104,6 +1104,56 @@ SAPI_API void sapi_terminate_process(void) { + } + } + ++SAPI_API void sapi_add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg) /* {{{ */ ++{ ++ zval *return_value = (zval*)arg; ++ char *str = NULL; ++ ++ ALLOCA_FLAG(use_heap) ++ ++ if (var_len > 5 && ++ var[0] == 'H' && ++ var[1] == 'T' && ++ var[2] == 'T' && ++ var[3] == 'P' && ++ var[4] == '_') { ++ ++ char *p; ++ ++ var_len -= 5; ++ p = var + 5; ++ var = str = do_alloca(var_len + 1, use_heap); ++ *str++ = *p++; ++ while (*p) { ++ if (*p == '_') { ++ *str++ = '-'; ++ p++; ++ if (*p) { ++ *str++ = *p++; ++ } ++ } else if (*p >= 'A' && *p <= 'Z') { ++ *str++ = (*p++ - 'A' + 'a'); ++ } else { ++ *str++ = *p++; ++ } ++ } ++ *str = 0; ++ } else if (var_len == sizeof("CONTENT_TYPE")-1 && ++ memcmp(var, "CONTENT_TYPE", sizeof("CONTENT_TYPE")-1) == 0) { ++ var = "Content-Type"; ++ } else if (var_len == sizeof("CONTENT_LENGTH")-1 && ++ memcmp(var, "CONTENT_LENGTH", sizeof("CONTENT_LENGTH")-1) == 0) { ++ var = "Content-Length"; ++ } else { ++ return; ++ } ++ add_assoc_stringl_ex(return_value, var, var_len, val, val_len); ++ if (str) { ++ free_alloca(var, use_heap); ++ } ++} ++/* }}} */ ++ + /* + * Local variables: + * tab-width: 4 +diff --git a/main/SAPI.h b/main/SAPI.h +index f829fd7..4b8e223 100644 +--- a/main/SAPI.h ++++ b/main/SAPI.h +@@ -151,6 +151,7 @@ SAPI_API void sapi_shutdown(void); + SAPI_API void sapi_activate(void); + SAPI_API void sapi_deactivate(void); + SAPI_API void sapi_initialize_empty_request(void); ++SAPI_API void sapi_add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg); + END_EXTERN_C() + + /* +diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c +index 2e9cefe..350846d 100644 +--- a/sapi/cgi/cgi_main.c ++++ b/sapi/cgi/cgi_main.c +@@ -1591,54 +1591,6 @@ PHP_FUNCTION(apache_child_terminate) /* + } + /* }}} */ + +-static void add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg) /* {{{ */ +-{ +- zval *return_value = (zval*)arg; +- char *str = NULL; +- char *p; +- ALLOCA_FLAG(use_heap) +- +- if (var_len > 5 && +- var[0] == 'H' && +- var[1] == 'T' && +- var[2] == 'T' && +- var[3] == 'P' && +- var[4] == '_') { +- +- var_len -= 5; +- p = var + 5; +- var = str = do_alloca(var_len + 1, use_heap); +- *str++ = *p++; +- while (*p) { +- if (*p == '_') { +- *str++ = '-'; +- p++; +- if (*p) { +- *str++ = *p++; +- } +- } else if (*p >= 'A' && *p <= 'Z') { +- *str++ = (*p++ - 'A' + 'a'); +- } else { +- *str++ = *p++; +- } +- } +- *str = 0; +- } else if (var_len == sizeof("CONTENT_TYPE")-1 && +- memcmp(var, "CONTENT_TYPE", sizeof("CONTENT_TYPE")-1) == 0) { +- var = "Content-Type"; +- } else if (var_len == sizeof("CONTENT_LENGTH")-1 && +- memcmp(var, "CONTENT_LENGTH", sizeof("CONTENT_LENGTH")-1) == 0) { +- var = "Content-Length"; +- } else { +- return; +- } +- add_assoc_stringl_ex(return_value, var, var_len, val, val_len); +- if (str) { +- free_alloca(var, use_heap); +- } +-} +-/* }}} */ +- + PHP_FUNCTION(apache_request_headers) /* {{{ */ + { + if (zend_parse_parameters_none()) { +@@ -1648,7 +1600,7 @@ PHP_FUNCTION(apache_request_headers) /* + if (fcgi_is_fastcgi()) { + fcgi_request *request = (fcgi_request*) SG(server_context); + +- fcgi_loadenv(request, add_request_header, return_value); ++ fcgi_loadenv(request, sapi_add_request_header, return_value); + } else { + char buf[128]; + char **env, *p, *q, *var, *val, *t = buf; +diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c +index 3256660..e815be4 100644 +--- a/sapi/fpm/fpm/fpm_main.c ++++ b/sapi/fpm/fpm/fpm_main.c +@@ -1533,6 +1533,10 @@ PHP_FUNCTION(fastcgi_finish_request) /* {{{ */ + { + fcgi_request *request = (fcgi_request*) SG(server_context); + ++ if (zend_parse_parameters_none() == FAILURE) { ++ return; ++ } ++ + if (!fcgi_is_closed(request)) { + php_output_end_all(); + php_header(); +@@ -1547,8 +1551,27 @@ PHP_FUNCTION(fastcgi_finish_request) /* {{{ */ + } + /* }}} */ + ++ZEND_BEGIN_ARG_INFO(cgi_fcgi_sapi_no_arginfo, 0) ++ZEND_END_ARG_INFO() ++ ++PHP_FUNCTION(apache_request_headers) /* {{{ */ ++{ ++ fcgi_request *request; ++ ++ if (zend_parse_parameters_none() == FAILURE) { ++ return; ++ } ++ ++ array_init(return_value); ++ if ((request = (fcgi_request*) SG(server_context))) { ++ fcgi_loadenv(request, sapi_add_request_header, return_value); ++ } ++} /* }}} */ ++ + static const zend_function_entry cgi_fcgi_sapi_functions[] = { +- PHP_FE(fastcgi_finish_request, NULL) ++ PHP_FE(fastcgi_finish_request, cgi_fcgi_sapi_no_arginfo) ++ PHP_FE(apache_request_headers, cgi_fcgi_sapi_no_arginfo) ++ PHP_FALIAS(getallheaders, apache_request_headers, cgi_fcgi_sapi_no_arginfo) + PHP_FE_END + }; + +diff --git a/sapi/fpm/tests/getallheaders.phpt b/sapi/fpm/tests/getallheaders.phpt +new file mode 100644 +index 0000000..b41f1c6 +--- /dev/null ++++ b/sapi/fpm/tests/getallheaders.phpt +@@ -0,0 +1,67 @@ ++--TEST-- ++FPM: Function getallheaders basic test ++--SKIPIF-- ++ ++--FILE-- ++start(); ++$tester->expectLogStartNotices(); ++$tester->request( ++ '', ++ [ ++ 'HTTP_X_FOO' => 'BAR', ++ 'HTTP_FOO' => 'foo' ++ ] ++ )->expectBody( ++ [ ++ 'Test Start', ++ 'array(4) {', ++ ' ["Foo"]=>', ++ ' string(3) "foo"', ++ ' ["X-Foo"]=>', ++ ' string(3) "BAR"', ++ ' ["Content-Length"]=>', ++ ' string(1) "0"', ++ ' ["Content-Type"]=>', ++ ' string(0) ""', ++ '}', ++ 'Test End', ++ ] ++ ); ++$tester->terminate(); ++$tester->expectLogTerminatingNotices(); ++$tester->close(); ++ ++?> ++Done ++--EXPECT-- ++Done ++--CLEAN-- ++ +-- +2.1.4 diff --git a/SOURCES/php-fpm-www.conf b/SOURCES/php-fpm-www.conf index 8a31ba8..4c6d9dd 100644 --- a/SOURCES/php-fpm-www.conf +++ b/SOURCES/php-fpm-www.conf @@ -71,6 +71,12 @@ listen.allowed_clients = 127.0.0.1 ; Default Value: no set ; process.priority = -19 +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + ; Choose how the process manager will control the number of child processes. ; Possible Values: ; static - a fixed number (pm.max_children) of child processes; diff --git a/SOURCES/php-fpm.conf b/SOURCES/php-fpm.conf index 55dc684..29ec0d9 100644 --- a/SOURCES/php-fpm.conf +++ b/SOURCES/php-fpm.conf @@ -49,7 +49,7 @@ error_log = /var/log/php-fpm/error.log ; Default Value: 0 ;emergency_restart_threshold = 0 -; Interval of time used by emergency_restart_interval to determine when +; Interval of time used by emergency_restart_interval to determine when ; a graceful restart will be initiated. This can be useful to work around ; accidental corruptions in an accelerator's shared memory. ; Available Units: s(econds), m(inutes), h(ours), or d(ays) @@ -63,7 +63,7 @@ error_log = /var/log/php-fpm/error.log ; Default Value: 0 ;process_control_timeout = 0 -; The maximum number of processes FPM will fork. This has been design to control +; The maximum number of processes FPM will fork. This has been designed to control ; the global number of processes when using dynamic PM within a lot of pools. ; Use it with caution. ; Note: A value of 0 indicates no limit @@ -71,10 +71,10 @@ error_log = /var/log/php-fpm/error.log ;process.max = 128 ; Specify the nice(2) priority to apply to the master process (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) +; The value can vary from -19 (highest priority) to 20 (lowest priority) ; Note: - It will only work if the FPM master process is launched as root ; - The pool process will inherit the master process priority -; unless it specified otherwise +; unless specified otherwise ; Default Value: no set ;process.priority = -19 @@ -98,8 +98,8 @@ daemonize = yes ; Default Value: not set (auto detection) ;events.mechanism = epoll -; When FPM is build with systemd integration, specify the interval, -; in second, between health report notification to systemd. +; When FPM is built with systemd integration, specify the interval, +; in seconds, between health report notification to systemd. ; Set to 0 to disable. ; Available Units: s(econds), m(inutes), h(ours) ; Default Unit: seconds @@ -107,7 +107,7 @@ daemonize = yes ;systemd_interval = 10 ;;;;;;;;;;;;;;;;;;;; -; Pool Definitions ; +; Pool Definitions ; ;;;;;;;;;;;;;;;;;;;; ; Multiple pools of child processes may be started with different listening diff --git a/SOURCES/php-fpm.wants b/SOURCES/php-fpm.wants new file mode 100644 index 0000000..bd1dd56 --- /dev/null +++ b/SOURCES/php-fpm.wants @@ -0,0 +1,2 @@ +[Unit] +Wants=php-fpm.service diff --git a/SOURCES/php-imap.patch b/SOURCES/php-imap.patch new file mode 100644 index 0000000..7b2088e --- /dev/null +++ b/SOURCES/php-imap.patch @@ -0,0 +1,70 @@ +From d8765852e0400ee2ce8ae9e2177c42731d4539d8 Mon Sep 17 00:00:00 2001 +From: Stanislav Malyshev +Date: Wed, 28 Nov 2018 15:45:51 -0800 +Subject: [PATCH] Add DISPLAY_INI_ENTRIES for imap + +--- + ext/imap/php_imap.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c +index f6feebe9f769..a23e84c08521 100644 +--- a/ext/imap/php_imap.c ++++ b/ext/imap/php_imap.c +@@ -1153,6 +1153,8 @@ PHP_MINFO_FUNCTION(imap) + php_info_print_table_row(2, "Kerberos Support", "enabled"); + #endif + php_info_print_table_end(); ++ ++ DISPLAY_INI_ENTRIES(); + } + /* }}} */ + +From 7edc639b9ff1c3576773d79d016abbeed1f93846 Mon Sep 17 00:00:00 2001 +From: Stanislav Malyshev +Date: Sun, 11 Nov 2018 10:04:01 -0800 +Subject: [PATCH] Fix #77020: null pointer dereference in imap_mail + +If an empty $message is passed to imap_mail(), we must not set message +to NULL, since _php_imap_mail() is not supposed to handle NULL pointers +(opposed to pointers to NUL). +--- + NEWS | 1 + + ext/imap/php_imap.c | 1 - + ext/imap/tests/bug77020.phpt | 15 +++++++++++++++ + 3 files changed, 16 insertions(+), 1 deletion(-) + create mode 100644 ext/imap/tests/bug77020.phpt + +diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c +index a23e84c08521..b30440f000f3 100644 +--- a/ext/imap/php_imap.c ++++ b/ext/imap/php_imap.c +@@ -4125,7 +4125,6 @@ PHP_FUNCTION(imap_mail) + if (!ZSTR_LEN(message)) { + /* this is not really an error, so it is allowed. */ + php_error_docref(NULL, E_WARNING, "No message string in mail command"); +- message = NULL; + } + + if (_php_imap_mail(ZSTR_VAL(to), ZSTR_VAL(subject), ZSTR_VAL(message), headers?ZSTR_VAL(headers):NULL, cc?ZSTR_VAL(cc):NULL, +diff --git a/ext/imap/tests/bug77020.phpt b/ext/imap/tests/bug77020.phpt +new file mode 100644 +index 000000000000..8a65232eec6d +--- /dev/null ++++ b/ext/imap/tests/bug77020.phpt +@@ -0,0 +1,15 @@ ++--TEST-- ++Bug #77020 (null pointer dereference in imap_mail) ++--SKIPIF-- ++ ++--FILE-- ++ ++===DONE=== ++--EXPECTF-- ++Warning: imap_mail(): No message string in mail command in %s on line %d ++%s ++===DONE=== diff --git a/SOURCES/php.conf b/SOURCES/php.conf index 1a5d148..8585837 100644 --- a/SOURCES/php.conf +++ b/SOURCES/php.conf @@ -16,12 +16,31 @@ AddType text/html .php # DirectoryIndex index.php +# +# Redirect to local php-fpm (no mod_php in default configuration) +# + + + # Enable http authorization headers + SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 + + + SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost" + + + + +# +# mod_php is deprecated as FPM is now used by default with httpd in event mode +# mod_php is only used when explicitly enabled or httpd switch to prefork mode +# # mod_php options +# # # Cause the PHP interpreter to handle files with a .php extension. # - + SetHandler application/x-httpd-php @@ -43,15 +62,3 @@ DirectoryIndex index.php #php_value opcache.file_cache "/var/lib/php/opcache" - -# Redirect to local php-fpm if mod_php is not available - - - # Enable http authorization headers - SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 - - - SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost" - - - diff --git a/SOURCES/php.ztsmodconf b/SOURCES/php.ztsmodconf index 8085cbd..38b2cd0 100644 --- a/SOURCES/php.ztsmodconf +++ b/SOURCES/php.ztsmodconf @@ -1,6 +1,7 @@ - LoadModule php7_module modules/libphp7-zts.so + # ZTS module is not supported, so FPM is preferred + # LoadModule php7_module modules/libphp7-zts.so diff --git a/SPECS/php72.spec b/SPECS/php72.spec new file mode 100644 index 0000000..d8331ab --- /dev/null +++ b/SPECS/php72.spec @@ -0,0 +1,3056 @@ +# Fedora spec file for php +# +# License: MIT +# http://opensource.org/licenses/MIT +# +# Please preserve changelog entries +# + +# API/ABI check +%global apiver 20170718 +%global zendver 20170718 +%global pdover 20170320 +# Extension version +%global jsonver 1.6.0 + +# we don't want -z defs linker flag +%undefine _strict_symbol_defs_build + +# Adds -z now to the linker flags +%global _hardened_build 1 + +# version used for php embedded library soname +%global embed_version 7.2 + +%global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock) + +# Regression tests take a long time, you can skip 'em with this +#global runselftest 0 +%{!?runselftest: %global runselftest 1} + +# Use the arch-specific mysql_config binary to avoid mismatch with the +# arch detection heuristic used by bindir/mysql_config. +%global mysql_config %{_libdir}/mysql/mysql_config + +# needed at srpm build time, when httpd-devel not yet installed +%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}} + +%global with_argon2 1 +%global with_dtrace 1 +%global with_libgd 1 +%global with_zip 0 +%global with_libzip 0 +%if 0%{?fedora} +%global with_zts 1 +%global with_firebird 1 +%global with_imap 1 +%global with_freetds 1 +%global with_sodium 1 +%global with_pspell 1 +%global with_lmdb 1 +%else +%global with_zts 0 +%global with_firebird 0 +%global with_imap 0 +%global with_freetds 0 +%global with_sodium 0 +%global with_pspell 0 +%global with_lmdb 0 +%endif + +%global upver 7.2.13 + +Summary: PHP scripting language for creating dynamic web sites +Name: php +Version: %{upver} +Release: 2%{?dist} +# All files licensed under PHP version 3.01, except +# Zend is licensed under Zend +# TSRM is licensed under BSD +# main/snprintf.c, main/spprintf.c and main/rfc1867.c are ASL 1.0 +# ext/date/lib is MIT +# Zend/zend_sort is NCSA +License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA +URL: http://www.php.net/ + +Source0: http://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz +Source1: php.conf +Source2: php.ini +Source3: macros.php +Source4: php-fpm.conf +Source5: php-fpm-www.conf +Source6: php-fpm.service +Source7: php-fpm.logrotate +Source9: php.modconf +Source10: php.ztsmodconf +Source12: php-fpm.wants +Source13: nginx-fpm.conf +Source14: nginx-php.conf +# Configuration files for some extensions +Source50: 10-opcache.ini +Source51: opcache-default.blacklist + +# Build fixes +Patch1: php-7.1.7-httpd.patch +Patch5: php-7.2.0-includedir.patch +Patch6: php-5.6.3-embed.patch +Patch7: php-5.3.0-recode.patch +Patch8: php-7.2.0-libdb.patch + +# Functional changes +Patch40: php-7.2.4-dlopen.patch +Patch42: php-7.2.3-systzdata-v16.patch +# See http://bugs.php.net/53436 +Patch43: php-7.2.12-phpize.patch +# Use -lldap_r for OpenLDAP +Patch45: php-7.2.3-ldap_r.patch +# Make php_config.h constant across builds +Patch46: php-7.2.4-fixheader.patch +# drop "Configure command" from phpinfo output +Patch47: php-5.6.3-phpinfo.patch +# getallheaders for FPM backported from 7.3 +Patch48: php-7.2.8-getallheaders.patch + +# Upstream fixes (100+) + +# Security fixes (200+) +Patch200: php-imap.patch + +# Fixes for tests (300+) +# Factory is droped from system tzdata +Patch300: php-5.6.3-datetests.patch + + +BuildRequires: bzip2-devel, curl-devel >= 7.9 +BuildRequires: httpd-devel >= 2.0.46-1, pam-devel +# to ensure we are using httpd with filesystem feature (see #1081453) +BuildRequires: httpd-filesystem +# to ensure we are using nginx with filesystem feature (see #1142298) +BuildRequires: nginx-filesystem +BuildRequires: libstdc++-devel, openssl-devel +BuildRequires: sqlite-devel >= 3.6.0 +BuildRequires: zlib-devel, smtpdaemon, libedit-devel +BuildRequires: pcre-devel >= 6.6 +BuildRequires: bzip2 +BuildRequires: perl-interpreter +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: libtool +BuildRequires: libtool-ltdl-devel +%if %{with_libzip} +BuildRequires: libzip-devel >= 0.11 +%endif +%if %{with_dtrace} +BuildRequires: systemtap-sdt-devel +%endif +%if %{with_argon2} +BuildRequires: libargon2-devel +%endif + +%if %{with_zts} +Provides: php-zts = %{version}-%{release} +Provides: php-zts%{?_isa} = %{version}-%{release} +%endif + +Requires: httpd-mmn = %{_httpd_mmn} +Provides: mod_php = %{version}-%{release} +Requires: php-common%{?_isa} = %{version}-%{release} +# For backwards-compatibility, require php-cli for the time being: +Requires: php-cli%{?_isa} = %{version}-%{release} +Recommends: php-fpm%{?_isa} = %{version}-%{release} +# To ensure correct /var/lib/php/session ownership: +Requires(pre): httpd-filesystem +# php engine for Apache httpd webserver +Provides: php(httpd) + + +%description +PHP is an HTML-embedded scripting language. PHP attempts to make it +easy for developers to write dynamically generated web pages. PHP also +offers built-in database integration for several commercial and +non-commercial database management systems, so writing a +database-enabled webpage with PHP is fairly simple. The most common +use of PHP coding is probably as a replacement for CGI scripts. + +The php package contains the module (often referred to as mod_php) +which adds support for the PHP language to Apache HTTP Server. + +%package cli +Summary: Command-line interface for PHP +# sapi/cli/ps_title.c is PostgreSQL +License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA and PostgreSQL +Requires: php-common%{?_isa} = %{version}-%{release} +Provides: php-cgi = %{version}-%{release}, php-cgi%{?_isa} = %{version}-%{release} +Provides: php-pcntl, php-pcntl%{?_isa} +Provides: php-readline, php-readline%{?_isa} + +%description cli +The php-cli package contains the command-line interface +executing PHP scripts, /usr/bin/php, and the CGI interface. + + +%package dbg +Summary: The interactive PHP debugger +Requires: php-common%{?_isa} = %{version}-%{release} + +%description dbg +The php-dbg package contains the interactive PHP debugger. + + +%package fpm +Summary: PHP FastCGI Process Manager +BuildRequires: libacl-devel +Requires: php-common%{?_isa} = %{version}-%{release} +Requires(pre): /usr/sbin/useradd +BuildRequires: systemd-devel +%{?systemd_requires} +# To ensure correct /var/lib/php/session ownership: +Requires(pre): httpd-filesystem +# For php.conf in /etc/httpd/conf.d +# and version 2.4.10 for proxy support in SetHandler +Requires: httpd-filesystem >= 2.4.10 +# php engine for Apache httpd webserver +Provides: php(httpd) +# for /etc/nginx ownership +Requires: nginx-filesystem + +%description fpm +PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI +implementation with some additional features useful for sites of +any size, especially busier sites. + +%package common +Summary: Common files for PHP +# All files licensed under PHP version 3.01, except +# fileinfo is licensed under PHP version 3.0 +# regex, libmagic are licensed under BSD +License: PHP and BSD +# ABI/API check - Arch specific +Provides: php(api) = %{apiver}-%{__isa_bits} +Provides: php(zend-abi) = %{zendver}-%{__isa_bits} +Provides: php(language) = %{version}, php(language)%{?_isa} = %{version} +# Provides for all builtin/shared modules: +Provides: php-bz2, php-bz2%{?_isa} +Provides: php-calendar, php-calendar%{?_isa} +Provides: php-core = %{version}, php-core%{?_isa} = %{version} +Provides: php-ctype, php-ctype%{?_isa} +Provides: php-curl, php-curl%{?_isa} +Provides: php-date, php-date%{?_isa} +Provides: bundled(timelib) +Provides: php-exif, php-exif%{?_isa} +Provides: php-fileinfo, php-fileinfo%{?_isa} +Provides: bundled(libmagic) = 5.29 +Provides: php-filter, php-filter%{?_isa} +Provides: php-ftp, php-ftp%{?_isa} +Provides: php-gettext, php-gettext%{?_isa} +Provides: php-hash, php-hash%{?_isa} +Provides: php-mhash = %{version}, php-mhash%{?_isa} = %{version} +Provides: php-iconv, php-iconv%{?_isa} +Provides: php-libxml, php-libxml%{?_isa} +Provides: php-openssl, php-openssl%{?_isa} +Provides: php-phar, php-phar%{?_isa} +Provides: php-pcre, php-pcre%{?_isa} +Provides: php-reflection, php-reflection%{?_isa} +Provides: php-session, php-session%{?_isa} +Provides: php-sockets, php-sockets%{?_isa} +Provides: php-spl, php-spl%{?_isa} +Provides: php-standard = %{version}, php-standard%{?_isa} = %{version} +Provides: php-tokenizer, php-tokenizer%{?_isa} +%if %{with_zip} +Provides: php-zip, php-zip%{?_isa} +Obsoletes: php-pecl-zip < 1.11 +%endif +Provides: php-zlib, php-zlib%{?_isa} + +%description common +The php-common package contains files used by both the php +package and the php-cli package. + +%package devel +Summary: Files needed for building PHP extensions +Requires: php-cli%{?_isa} = %{version}-%{release} +# always needed to build extension +Requires: autoconf +Requires: automake +Requires: gcc +Requires: gcc-c++ +Requires: libtool +Requires: pcre-devel%{?_isa} +Obsoletes: php-pecl-json-devel < %{jsonver} +Obsoletes: php-pecl-jsonc-devel < %{jsonver} +%if %{with_zts} +Provides: php-zts-devel = %{version}-%{release} +Provides: php-zts-devel%{?_isa} = %{version}-%{release} +%endif + +%description devel +The php-devel package contains the files needed for building PHP +extensions. If you need to compile your own PHP extensions, you will +need to install this package. + +%package opcache +Summary: The Zend OPcache +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +Provides: php-pecl-zendopcache = %{version} +Provides: php-pecl-zendopcache%{?_isa} = %{version} +Provides: php-pecl(opcache) = %{version} +Provides: php-pecl(opcache)%{?_isa} = %{version} + +%description opcache +The Zend OPcache provides faster PHP execution through opcode caching and +optimization. It improves PHP performance by storing precompiled script +bytecode in the shared memory. This eliminates the stages of 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. + +%if %{with_imap} +%package imap +Summary: A module for PHP applications that use IMAP +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: krb5-devel, openssl-devel, libc-client-devel + +%description imap +The php-imap module will add IMAP (Internet Message Access Protocol) +support to PHP. IMAP is a protocol for retrieving and uploading e-mail +messages on mail servers. PHP is an HTML-embedded scripting language. +%endif + +%package ldap +Summary: A module for PHP applications that use LDAP +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel + +%description ldap +The php-ldap adds Lightweight Directory Access Protocol (LDAP) +support to PHP. LDAP is a set of protocols for accessing directory +services over the Internet. PHP is an HTML-embedded scripting +language. + +%package pdo +Summary: A database access abstraction module for PHP applications +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +# ABI/API check - Arch specific +Provides: php-pdo-abi = %{pdover}-%{__isa_bits} +Provides: php(pdo-abi) = %{pdover}-%{__isa_bits} +Provides: php-sqlite3, php-sqlite3%{?_isa} +Provides: php-pdo_sqlite, php-pdo_sqlite%{?_isa} + +%description pdo +The php-pdo package contains a dynamic shared object that will add +a database access abstraction layer to PHP. This module provides +a common interface for accessing MySQL, PostgreSQL or other +databases. + +%package mysqlnd +Summary: A module for PHP applications that use MySQL databases +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-pdo%{?_isa} = %{version}-%{release} +Provides: php_database +Provides: php-mysqli = %{version}-%{release} +Provides: php-mysqli%{?_isa} = %{version}-%{release} +Provides: php-pdo_mysql, php-pdo_mysql%{?_isa} + +%description mysqlnd +The php-mysqlnd package contains a dynamic shared object that will add +MySQL database support to PHP. MySQL is an object-relational database +management system. PHP is an HTML-embeddable scripting language. If +you need MySQL support for PHP applications, you will need to install +this package and the php package. + +This package use the MySQL Native Driver + +%package pgsql +Summary: A PostgreSQL database module for PHP +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-pdo%{?_isa} = %{version}-%{release} +Provides: php_database +Provides: php-pdo_pgsql, php-pdo_pgsql%{?_isa} +BuildRequires: krb5-devel, openssl-devel, postgresql-devel + +%description pgsql +The php-pgsql package add PostgreSQL database support to PHP. +PostgreSQL is an object-relational database management +system that supports almost all SQL constructs. PHP is an +HTML-embedded scripting language. If you need back-end support for +PostgreSQL, you should install this package in addition to the main +php package. + +%package process +Summary: Modules for PHP script using system process interfaces +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +Provides: php-posix, php-posix%{?_isa} +Provides: php-shmop, php-shmop%{?_isa} +Provides: php-sysvsem, php-sysvsem%{?_isa} +Provides: php-sysvshm, php-sysvshm%{?_isa} +Provides: php-sysvmsg, php-sysvmsg%{?_isa} + +%description process +The php-process package contains dynamic shared objects which add +support to PHP using system interfaces for inter-process +communication. + +%package odbc +Summary: A module for PHP applications that use ODBC databases +# All files licensed under PHP version 3.01, except +# pdo_odbc is licensed under PHP version 3.0 +License: PHP +Requires: php-pdo%{?_isa} = %{version}-%{release} +Provides: php_database +Provides: php-pdo_odbc, php-pdo_odbc%{?_isa} +BuildRequires: unixODBC-devel + +%description odbc +The php-odbc package contains a dynamic shared object that will add +database support through ODBC to PHP. ODBC is an open specification +which provides a consistent API for developers to use for accessing +data sources (which are often, but not always, databases). PHP is an +HTML-embeddable scripting language. If you need ODBC support for PHP +applications, you will need to install this package and the php +package. + +%package soap +Summary: A module for PHP applications that use the SOAP protocol +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: libxml2-devel + +%description soap +The php-soap package contains a dynamic shared object that will add +support to PHP for using the SOAP web services protocol. + +%if %{with_firebird} +%package interbase +Summary: A module for PHP applications that use Interbase/Firebird databases +# All files licensed under PHP version 3.01 +License: PHP +# for fb_config command +BuildRequires: firebird-devel +Requires: php-pdo%{?_isa} = %{version}-%{release} +Provides: php_database +Provides: php-firebird, php-firebird%{?_isa} +Provides: php-pdo_firebird, php-pdo_firebird%{?_isa} + +%description interbase +The php-interbase package contains a dynamic shared object that will add +database support through Interbase/Firebird to PHP. + +InterBase is the name of the closed-source variant of this RDBMS that was +developed by Borland/Inprise. + +Firebird is a commercially independent project of C and C++ programmers, +technical advisors and supporters developing and enhancing a multi-platform +relational database management system based on the source code released by +Inprise Corp (now known as Borland Software Corp) under the InterBase Public +License. +%endif + +%package snmp +Summary: A module for PHP applications that query SNMP-managed devices +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release}, net-snmp +BuildRequires: net-snmp-devel + +%description snmp +The php-snmp package contains a dynamic shared object that will add +support for querying SNMP devices to PHP. PHP is an HTML-embeddable +scripting language. If you need SNMP support for PHP applications, you +will need to install this package and the php package. + +%package xml +Summary: A module for PHP applications which use XML +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +Provides: php-dom, php-dom%{?_isa} +Provides: php-domxml, php-domxml%{?_isa} +Provides: php-simplexml, php-simplexml%{?_isa} +Provides: php-wddx, php-wddx%{?_isa} +Provides: php-xmlreader, php-xmlreader%{?_isa} +Provides: php-xmlwriter, php-xmlwriter%{?_isa} +Provides: php-xsl, php-xsl%{?_isa} +BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1 + +%description xml +The php-xml package contains dynamic shared objects which add support +to PHP for manipulating XML documents using the DOM tree, +and performing XSL transformations on XML documents. + +%package xmlrpc +Summary: A module for PHP applications which use the XML-RPC protocol +# All files licensed under PHP version 3.01, except +# libXMLRPC is licensed under BSD +License: PHP and BSD +Requires: php-xml%{?_isa} = %{version}-%{release} + +%description xmlrpc +The php-xmlrpc package contains a dynamic shared object that will add +support for the XML-RPC protocol to PHP. + +%package mbstring +Summary: A module for PHP applications which need multi-byte string handling +# All files licensed under PHP version 3.01, except +# libmbfl is licensed under LGPLv2 +# ucgendat is licensed under OpenLDAP +License: PHP and LGPLv2 and OpenLDAP +BuildRequires: oniguruma-devel +Provides: bundled(libmbfl) = 1.3.2 +Requires: php-common%{?_isa} = %{version}-%{release} + +%description mbstring +The php-mbstring package contains a dynamic shared object that will add +support for multi-byte string handling to PHP. + +%package gd +Summary: A module for PHP applications for using the gd graphics library +# All files licensed under PHP version 3.01 +%if %{with_libgd} +License: PHP +%else +# bundled libgd is licensed under BSD +License: PHP and BSD +%endif +Requires: php-common%{?_isa} = %{version}-%{release} +%if %{with_libgd} +BuildRequires: gd-devel >= 2.1.0 +%else +# Required to build the bundled GD library +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: freetype-devel +BuildRequires: libXpm-devel +BuildRequires: libwebp-devel +Provides: bundled(gd) = 2.0.35 +%endif + +%description gd +The php-gd package contains a dynamic shared object that will add +support for using the gd graphics library to PHP. + +%package bcmath +Summary: A module for PHP applications for using the bcmath library +# All files licensed under PHP version 3.01, except +# libbcmath is licensed under LGPLv2+ +License: PHP and LGPLv2+ +Requires: php-common%{?_isa} = %{version}-%{release} + +%description bcmath +The php-bcmath package contains a dynamic shared object that will add +support for using the bcmath library to PHP. + +%package gmp +Summary: A module for PHP applications for using the GNU MP library +# All files licensed under PHP version 3.01 +License: PHP +BuildRequires: gmp-devel +Requires: php-common%{?_isa} = %{version}-%{release} + +%description gmp +These functions allow you to work with arbitrary-length integers +using the GNU MP library. + +%package dba +Summary: A database abstraction layer module for PHP applications +# All files licensed under PHP version 3.01 +License: PHP +BuildRequires: libdb-devel +BuildRequires: tokyocabinet-devel +%if %{with_lmdb} +BuildRequires: lmdb-devel +%endif +Requires: php-common%{?_isa} = %{version}-%{release} + +%description dba +The php-dba package contains a dynamic shared object that will add +support for using the DBA database abstraction layer to PHP. + +%package tidy +Summary: Standard PHP module provides tidy library support +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: libtidy-devel + +%description tidy +The php-tidy package contains a dynamic shared object that will add +support for using the tidy library to PHP. + +%if %{with_freetds} +%package pdo-dblib +Summary: PDO driver Microsoft SQL Server and Sybase databases +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-pdo%{?_isa} = %{version}-%{release} +BuildRequires: freetds-devel +Provides: php-pdo_dblib, php-pdo_dblib%{?_isa} + +%description pdo-dblib +The php-pdo-dblib package contains a dynamic shared object +that implements the PHP Data Objects (PDO) interface to enable access from +PHP to Microsoft SQL Server and Sybase databases through the FreeTDS libary. +%endif + +%package embedded +Summary: PHP library for embedding in applications +Requires: php-common%{?_isa} = %{version}-%{release} +# doing a real -devel package for just the .so symlink is a bit overkill +Provides: php-embedded-devel = %{version}-%{release} +Provides: php-embedded-devel%{?_isa} = %{version}-%{release} + +%description embedded +The php-embedded package contains a library which can be embedded +into applications to provide PHP scripting language support. + +%if %{with_pspell} +%package pspell +Summary: A module for PHP applications for using pspell interfaces +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: aspell-devel >= 0.50.0 + +%description pspell +The php-pspell package contains a dynamic shared object that will add +support for using the pspell library to PHP. +%endif + +%package recode +Summary: A module for PHP applications for using the recode library +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: recode-devel + +%description recode +The php-recode package contains a dynamic shared object that will add +support for using the recode library to PHP. + +%package intl +Summary: Internationalization extension for PHP applications +# All files licensed under PHP version 3.01 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: libicu-devel >= 4.0 + +%description intl +The php-intl package contains a dynamic shared object that will add +support for using the ICU library to PHP. + +%package enchant +Summary: Enchant spelling extension for PHP applications +# All files licensed under PHP version 3.0 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +BuildRequires: enchant-devel >= 1.2.4 + +%description enchant +The php-enchant package contains a dynamic shared object that will add +support for using the enchant library to PHP. + +%package json +Summary: JavaScript Object Notation extension for PHP +# All files licensed under PHP version 3.0.1 +License: PHP +Requires: php-common%{?_isa} = %{version}-%{release} +Obsoletes: php-pecl-json < %{jsonver} +Obsoletes: php-pecl-jsonc < %{jsonver} +Provides: php-pecl(json) = %{jsonver} +Provides: php-pecl(json)%{?_isa} = %{jsonver} +Provides: php-pecl-json = %{jsonver} +Provides: php-pecl-json%{?_isa} = %{jsonver} + +%description json +The php-json package provides an extension that will add +support for JavaScript Object Notation (JSON) to PHP. + +%if %{with_sodium} +%package sodium +Summary: Wrapper for the Sodium cryptographic library +# All files licensed under PHP version 3.0.1 +License: PHP +BuildRequires: pkgconfig(libsodium) >= 1.0.9 + +Requires: php-common%{?_isa} = %{version}-%{release} +Obsoletes: php-pecl-libsodium2 < 3 +Provides: php-pecl(libsodium) = %{version} +Provides: php-pecl(libsodium)%{?_isa} = %{version} + +%description sodium +The php-sodium package provides a simple, +low-level PHP extension for the libsodium cryptographic library. +%endif + + +%prep +%setup -q -n php-%{upver}%{?rcver} + +%patch1 -p1 -b .mpmcheck +%patch5 -p1 -b .includedir +%patch6 -p1 -b .embed +%patch7 -p1 -b .recode +%patch8 -p1 -b .libdb + +%patch40 -p1 -b .dlopen +%patch42 -p1 -b .systzdata +%patch43 -p1 -b .headers +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 +%patch45 -p1 -b .ldap_r +%endif +%patch46 -p1 -b .fixheader +%patch47 -p1 -b .phpinfo +%patch48 -p1 -b .getallheaders + +# upstream patches + +# security patches +%patch200 -p1 -b .imap + +# Fixes for tests +%patch300 -p1 -b .datetests + + +# Prevent %%doc confusion over LICENSE files +cp Zend/LICENSE Zend/ZEND_LICENSE +cp TSRM/LICENSE TSRM_LICENSE +%if ! %{with_libgd} +cp ext/gd/libgd/README libgd_README +cp ext/gd/libgd/COPYING libgd_COPYING +%endif +cp sapi/fpm/LICENSE fpm_LICENSE +cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE +cp ext/mbstring/ucgendat/OPENLDAP_LICENSE ucgendat_LICENSE +cp ext/fileinfo/libmagic/LICENSE libmagic_LICENSE +cp ext/phar/LICENSE phar_LICENSE +cp ext/bcmath/libbcmath/COPYING.LIB libbcmath_COPYING +cp ext/date/lib/LICENSE.rst timelib_LICENSE + +# Multiple builds for multiple SAPIs +mkdir build-cgi build-apache build-embedded \ +%if %{with_zts} + build-zts build-ztscli \ +%endif + build-fpm + +# ----- Manage known as failed test ------- +# affected by systzdata patch +rm ext/date/tests/timezone_location_get.phpt +rm ext/date/tests/timezone_version_get.phpt +rm ext/date/tests/timezone_version_get_basic1.phpt +# fails sometime +rm ext/sockets/tests/mcast_ipv?_recv.phpt +# cause stack exhausion +rm Zend/tests/bug54268.phpt +rm Zend/tests/bug68412.phpt + +# Safety check for API version change. +pver=$(sed -n '/#define PHP_VERSION /{s/.* "//;s/".*$//;p}' main/php_version.h) +if test "x${pver}" != "x%{upver}%{?rcver}"; then + : Error: Upstream PHP version is now ${pver}, expecting %{upver}%{?rcver}. + : Update the version/rcver macros and rebuild. + exit 1 +fi + +vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h` +if test "x${vapi}" != "x%{apiver}"; then + : Error: Upstream API version is now ${vapi}, expecting %{apiver}. + : Update the apiver macro and rebuild. + exit 1 +fi + +vzend=`sed -n '/#define ZEND_MODULE_API_NO/{s/^[^0-9]*//;p;}' Zend/zend_modules.h` +if test "x${vzend}" != "x%{zendver}"; then + : Error: Upstream Zend ABI version is now ${vzend}, expecting %{zendver}. + : Update the zendver macro and rebuild. + exit 1 +fi + +# Safety check for PDO ABI version change +vpdo=`sed -n '/#define PDO_DRIVER_API/{s/.*[ ]//;p}' ext/pdo/php_pdo_driver.h` +if test "x${vpdo}" != "x%{pdover}"; then + : Error: Upstream PDO ABI version is now ${vpdo}, expecting %{pdover}. + : Update the pdover macro and rebuild. + exit 1 +fi + +ver=$(sed -n '/#define PHP_JSON_VERSION /{s/.* "//;s/".*$//;p}' ext/json/php_json.h) +if test "$ver" != "%{jsonver}"; then + : Error: Upstream JSON version is now ${ver}, expecting %{jsonver}. + : Update the %{jsonver} macro and rebuild. + exit 1 +fi + +# https://bugs.php.net/63362 - Not needed but installed headers. +# Drop some Windows specific headers to avoid installation, +# before build to ensure they are really not needed. +rm -f TSRM/tsrm_win32.h \ + TSRM/tsrm_config.w32.h \ + Zend/zend_config.w32.h \ + ext/mysqlnd/config-win.h \ + ext/standard/winver.h \ + main/win32_internal_function_disabled.h \ + main/win95nt.h + +# Fix some bogus permissions +find . -name \*.[ch] -exec chmod 644 {} \; +chmod 644 README.* + +# Some extensions have their own configuration file +cp %{SOURCE50} 10-opcache.ini + +%ifarch x86_64 +sed -e '/opcache.huge_code_pages/s/0/1/' -i 10-opcache.ini +%endif + + +%build +# Set build date from https://reproducible-builds.org/specs/source-date-epoch/ +export SOURCE_DATE_EPOCH=$(date +%s -r NEWS) + +# aclocal workaround - to be improved +cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4 + +# Force use of system libtool: +libtoolize --force --copy +cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4 + +# Regenerate configure scripts (patches change config.m4's) +touch configure.ac +./buildconf --force + +CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign" +export CFLAGS + +# Install extension modules in %%{_libdir}/php/modules. +EXTENSION_DIR=%{_libdir}/php/modules; export EXTENSION_DIR + +# Set PEAR_INSTALLDIR to ensure that the hard-coded include_path +# includes the PEAR directory even though pear is packaged +# separately. +PEAR_INSTALLDIR=%{_datadir}/pear; export PEAR_INSTALLDIR + +# Shell function to configure and build a PHP tree. +build() { +# Old/recent bison version seems to produce a broken parser; +# upstream uses GNU Bison 2.3. Workaround: +mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend + +# Always static: +# date, ereg, filter, libxml, reflection, spl: not supported +# hash: for PHAR_SIG_SHA256 and PHAR_SIG_SHA512 +# session: dep on hash, used by soap and wddx +# pcre: used by filter, zip +# pcntl, readline: only used by CLI sapi +# openssl: for PHAR_SIG_OPENSSL +# zlib: used by image + +ln -sf ../configure +%configure \ + --cache-file=../config.cache \ + --with-libdir=%{_lib} \ + --with-config-file-path=%{_sysconfdir} \ + --with-config-file-scan-dir=%{_sysconfdir}/php.d \ + --disable-debug \ + --with-pic \ + --disable-rpath \ + --without-pear \ + --with-exec-dir=%{_bindir} \ + --with-freetype-dir=%{_prefix} \ + --with-png-dir=%{_prefix} \ + --with-xpm-dir=%{_prefix} \ + --without-gdbm \ + --with-jpeg-dir=%{_prefix} \ + --with-openssl \ + --with-system-ciphers \ + --with-pcre-regex=%{_prefix} \ + --with-zlib \ + --with-layout=GNU \ + --with-kerberos \ + --with-libxml-dir=%{_prefix} \ + --with-system-tzdata \ + --with-mhash \ +%if %{with_argon2} + --with-password-argon2 \ +%endif +%if %{with_dtrace} + --enable-dtrace \ +%endif + $* +if test $? != 0; then + tail -500 config.log + : configure failed + exit 1 +fi + +make %{?_smp_mflags} +} + +# Build /usr/bin/php-cgi with the CGI SAPI, and most shared extensions +pushd build-cgi + +build --libdir=%{_libdir}/php \ + --enable-pcntl \ + --enable-opcache \ + --enable-opcache-file \ + --enable-phpdbg \ +%if %{with_imap} + --with-imap=shared --with-imap-ssl \ +%endif + --enable-mbstring=shared \ + --with-onig=%{_prefix} \ + --enable-mbregex \ +%if %{with_libgd} + --with-gd=shared,%{_prefix} \ +%else + --with-gd=shared \ +%endif + --with-gmp=shared \ + --enable-calendar=shared \ + --enable-bcmath=shared \ + --with-bz2=shared \ + --enable-ctype=shared \ + --enable-dba=shared --with-db4=%{_prefix} \ + --with-tcadb=%{_prefix} \ +%if %{with_lmdb} + --with-lmdb=%{_prefix} \ +%endif + --enable-exif=shared \ + --enable-ftp=shared \ + --with-gettext=shared \ + --with-iconv=shared \ + --enable-sockets=shared \ + --enable-tokenizer=shared \ + --with-xmlrpc=shared \ + --with-ldap=shared --with-ldap-sasl \ + --enable-mysqlnd=shared \ + --with-mysqli=shared,mysqlnd \ + --with-mysql-sock=%{mysql_sock} \ +%if %{with_firebird} + --with-interbase=shared \ + --with-pdo-firebird=shared \ +%endif + --enable-dom=shared \ + --with-pgsql=shared \ + --enable-simplexml=shared \ + --enable-xml=shared \ + --enable-wddx=shared \ + --with-snmp=shared,%{_prefix} \ + --enable-soap=shared \ + --with-xsl=shared,%{_prefix} \ + --enable-xmlreader=shared --enable-xmlwriter=shared \ + --with-curl=shared,%{_prefix} \ + --enable-pdo=shared \ + --with-pdo-odbc=shared,unixODBC,%{_prefix} \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-pgsql=shared,%{_prefix} \ + --with-pdo-sqlite=shared,%{_prefix} \ +%if %{with_freetds} + --with-pdo-dblib=shared,%{_prefix} \ +%endif + --with-sqlite3=shared,%{_prefix} \ + --enable-json=shared \ +%if %{with_zip} + --enable-zip=shared \ +%if %{with_libzip} + --with-libzip \ +%endif +%endif + --without-readline \ + --with-libedit \ +%if %{with_pspell} + --with-pspell=shared \ +%endif + --enable-phar=shared \ + --with-tidy=shared,%{_prefix} \ + --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared \ + --enable-shmop=shared \ + --enable-posix=shared \ + --with-unixODBC=shared,%{_prefix} \ + --enable-fileinfo=shared \ +%if %{with_sodium} + --with-sodium=shared \ +%else + --without-sodium \ +%endif + --enable-intl=shared \ + --with-icu-dir=%{_prefix} \ + --with-enchant=shared,%{_prefix} \ + --with-recode=shared,%{_prefix} +popd + +without_shared="--without-gd \ + --disable-dom --disable-dba --without-unixODBC \ + --disable-opcache \ + --disable-json \ + --disable-xmlreader --disable-xmlwriter \ + --without-sodium \ + --without-sqlite3 --disable-phar --disable-fileinfo \ + --without-pspell --disable-wddx \ + --without-curl --disable-posix --disable-xml \ + --disable-simplexml --disable-exif --without-gettext \ + --without-iconv --disable-ftp --without-bz2 --disable-ctype \ + --disable-shmop --disable-sockets --disable-tokenizer \ + --disable-sysvmsg --disable-sysvshm --disable-sysvsem" + +# Build Apache module, and the CLI SAPI, /usr/bin/php +pushd build-apache +build --with-apxs2=%{_httpd_apxs} \ + --libdir=%{_libdir}/php \ + --without-mysqli \ + --disable-pdo \ + ${without_shared} +popd + +# Build php-fpm +pushd build-fpm +build --enable-fpm \ + --with-fpm-acl \ + --with-fpm-systemd \ + --libdir=%{_libdir}/php \ + --without-mysqli \ + --disable-pdo \ + ${without_shared} +popd + +# Build for inclusion as embedded script language into applications, +# /usr/lib[64]/libphp7.so +pushd build-embedded +build --enable-embed \ + --without-mysqli --disable-pdo \ + ${without_shared} +popd + +%if %{with_zts} +# Build a special thread-safe (mainly for modules) +pushd build-ztscli + +EXTENSION_DIR=%{_libdir}/php-zts/modules +build --includedir=%{_includedir}/php-zts \ + --libdir=%{_libdir}/php-zts \ + --enable-maintainer-zts \ + --program-prefix=zts- \ + --disable-cgi \ + --with-config-file-scan-dir=%{_sysconfdir}/php-zts.d \ + --enable-pcntl \ + --enable-opcache \ + --enable-opcache-file \ +%if %{with_imap} + --with-imap=shared --with-imap-ssl \ +%endif + --enable-mbstring=shared \ + --with-onig=%{_prefix} \ + --enable-mbregex \ +%if %{with_libgd} + --with-gd=shared,%{_prefix} \ +%else + --with-gd=shared \ +%endif + --with-gmp=shared \ + --enable-calendar=shared \ + --enable-bcmath=shared \ + --with-bz2=shared \ + --enable-ctype=shared \ + --enable-dba=shared --with-db4=%{_prefix} \ + --with-tcadb=%{_prefix} \ +%if %{with_lmdb} + --with-lmdb=%{_prefix} \ +%endif + --with-gettext=shared \ + --with-iconv=shared \ + --enable-sockets=shared \ + --enable-tokenizer=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --with-xmlrpc=shared \ + --with-ldap=shared --with-ldap-sasl \ + --enable-mysqlnd=shared \ + --with-mysqli=shared,mysqlnd \ + --with-mysql-sock=%{mysql_sock} \ + --enable-mysqlnd-threading \ +%if %{with_firebird} + --with-interbase=shared \ + --with-pdo-firebird=shared \ +%endif + --enable-dom=shared \ + --with-pgsql=shared \ + --enable-simplexml=shared \ + --enable-xml=shared \ + --enable-wddx=shared \ + --with-snmp=shared,%{_prefix} \ + --enable-soap=shared \ + --with-xsl=shared,%{_prefix} \ + --enable-xmlreader=shared --enable-xmlwriter=shared \ + --with-curl=shared,%{_prefix} \ + --enable-pdo=shared \ + --with-pdo-odbc=shared,unixODBC,%{_prefix} \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-pgsql=shared,%{_prefix} \ + --with-pdo-sqlite=shared,%{_prefix} \ +%if %{with_freetds} + --with-pdo-dblib=shared,%{_prefix} \ +%endif + --with-sqlite3=shared,%{_prefix} \ + --enable-json=shared \ +%if %{with_zip} + --enable-zip=shared \ +%if %{with_libzip} + --with-libzip \ +%endif +%endif + --without-readline \ + --with-libedit \ +%if %{with_pspell} + --with-pspell=shared \ +%endif + --enable-phar=shared \ + --with-tidy=shared,%{_prefix} \ + --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared \ + --enable-shmop=shared \ + --enable-posix=shared \ + --with-unixODBC=shared,%{_prefix} \ + --enable-fileinfo=shared \ +%if %{with_sodium} + --with-sodium=shared \ +%else + --without-sodium \ +%endif + --enable-intl=shared \ + --with-icu-dir=%{_prefix} \ + --with-enchant=shared,%{_prefix} \ + --with-recode=shared,%{_prefix} +popd + +# Build a special thread-safe Apache SAPI +pushd build-zts +build --with-apxs2=%{_httpd_apxs} \ + --includedir=%{_includedir}/php-zts \ + --libdir=%{_libdir}/php-zts \ + --enable-maintainer-zts \ + --with-config-file-scan-dir=%{_sysconfdir}/php-zts.d \ + --without-mysqli \ + --disable-pdo \ + ${without_shared} +popd + +### NOTE!!! EXTENSION_DIR was changed for the -zts build, so it must remain +### the last SAPI to be built. +%endif + + +%check +%if %runselftest +cd build-apache + +# Run tests, using the CLI SAPI +export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 +export SKIP_ONLINE_TESTS=1 +export SKIP_IO_CAPTURE_TESTS=1 +unset TZ LANG LC_ALL +if ! make test; then + set +x + for f in $(find .. -name \*.diff -type f -print); do + if ! grep -q XFAIL "${f/.diff/.phpt}" + then + echo "TEST FAILURE: $f --" + cat "$f" + echo -e "\n-- $f result ends." + fi + done + set -x + #exit 1 +fi +unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_ +%endif + +%install +%if %{with_zts} +# Install the extensions for the ZTS version +make -C build-ztscli install \ + INSTALL_ROOT=$RPM_BUILD_ROOT +%endif + +# Install the version for embedded script language in applications + php_embed.h +make -C build-embedded install-sapi install-headers \ + INSTALL_ROOT=$RPM_BUILD_ROOT + +# Install the php-fpm binary +make -C build-fpm install-fpm \ + INSTALL_ROOT=$RPM_BUILD_ROOT + +# Install everything from the CGI SAPI build +make -C build-cgi install \ + INSTALL_ROOT=$RPM_BUILD_ROOT + +# Install the default configuration file and icons +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/ +install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php.ini +install -m 755 -d $RPM_BUILD_ROOT%{_httpd_contentdir}/icons +install -m 644 php.gif $RPM_BUILD_ROOT%{_httpd_contentdir}/icons/php.gif + +# For third-party packaging: +install -m 755 -d $RPM_BUILD_ROOT%{_datadir}/php + +# install the DSO +install -m 755 -d $RPM_BUILD_ROOT%{_httpd_moddir} +install -m 755 build-apache/libs/libphp7.so $RPM_BUILD_ROOT%{_httpd_moddir} + +%if %{with_zts} +# install the ZTS DSO +install -m 755 build-zts/libs/libphp7.so $RPM_BUILD_ROOT%{_httpd_moddir}/libphp7-zts.so +%endif + +# Apache config fragment +# Dual config file with httpd >= 2.4 (fedora >= 18) +install -D -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{_httpd_modconfdir}/15-php.conf +%if %{with_zts} +cat %{SOURCE10} >>$RPM_BUILD_ROOT%{_httpd_modconfdir}/15-php.conf +%endif +install -D -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_httpd_confdir}/php.conf + +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d +%if %{with_zts} +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d +%endif +install -m 755 -d $RPM_BUILD_ROOT%{_sharedstatedir}/php +install -m 755 -d $RPM_BUILD_ROOT%{_sharedstatedir}/php/peclxml +install -m 700 -d $RPM_BUILD_ROOT%{_sharedstatedir}/php/session +install -m 700 -d $RPM_BUILD_ROOT%{_sharedstatedir}/php/wsdlcache +install -m 700 -d $RPM_BUILD_ROOT%{_sharedstatedir}/php/opcache + +install -m 755 -d $RPM_BUILD_ROOT%{_docdir}/pecl +install -m 755 -d $RPM_BUILD_ROOT%{_datadir}/tests/pecl + +# PHP-FPM stuff +# Log +install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/log/php-fpm +install -m 755 -d $RPM_BUILD_ROOT/run/php-fpm +# Config +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d +install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf +install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf +mv $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf.default . +mv $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf.default . +# install systemd unit files and scripts for handling server startup +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/php-fpm.service.d +install -Dm 644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/php-fpm.service +install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/httpd.service.d/php-fpm.conf +install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/nginx.service.d/php-fpm.conf +# LogRotate +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/php-fpm +# Nginx configuration +install -D -m 644 %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/php-fpm.conf +install -D -m 644 %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/default.d/php.conf + +# Generate files lists and stub .ini files for each subpackage +for mod in pgsql odbc ldap snmp xmlrpc \ +%if %{with_imap} + imap \ +%endif + json \ + mysqlnd mysqli pdo_mysql \ + mbstring gd dom xsl soap bcmath dba xmlreader xmlwriter \ + simplexml bz2 calendar ctype exif ftp gettext gmp iconv \ + sockets tokenizer opcache \ + pdo pdo_pgsql pdo_odbc pdo_sqlite \ +%if %{with_zip} + zip \ +%endif +%if %{with_firebird} + interbase pdo_firebird \ +%endif + sqlite3 \ + enchant phar fileinfo intl \ + tidy \ +%if %{with_freetds} + pdo_dblib \ +%endif +%if %{with_pspell} + pspell \ +%endif + curl wddx \ +%if %{with_sodium} + sodium \ +%endif + posix shmop sysvshm sysvsem sysvmsg recode xml \ + ; do + case $mod in + opcache) + # Zend extensions + ini=10-${mod}.ini;; + pdo_*|mysqli|wddx|xmlreader|xmlrpc) + # Extensions with dependencies on 20-* + ini=30-${mod}.ini;; + *) + # Extensions with no dependency + ini=20-${mod}.ini;; + esac + # some extensions have their own config file + if [ -f ${ini} ]; then + cp -p ${ini} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${ini} +%if %{with_zts} + cp -p ${ini} $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d/${ini} +%endif + else + cat > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${ini} < $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d/${ini} < files.${mod} <> files.xml + +# mysqlnd +cat files.mysqli \ + files.pdo_mysql \ + >> files.mysqlnd + +# Split out the PDO modules +cat files.pdo_pgsql >> files.pgsql +cat files.pdo_odbc >> files.odbc +%if %{with_firebird} +cat files.pdo_firebird >> files.interbase +%endif + +# sysv* and posix in packaged in php-process +cat files.shmop files.sysv* files.posix > files.process + +# Package sqlite3 and pdo_sqlite with pdo; isolating the sqlite dependency +# isn't useful at this time since rpm itself requires sqlite. +cat files.pdo_sqlite >> files.pdo +cat files.sqlite3 >> files.pdo + +# Package zip, curl, phar and fileinfo in -common. +cat files.curl files.phar files.fileinfo \ + files.exif files.gettext files.iconv files.calendar \ + files.ftp files.bz2 files.ctype files.sockets \ + files.tokenizer > files.common +%if %{with_zip} +cat files.zip >> files.common +%endif + +# The default Zend OPcache blacklist file +install -m 644 %{SOURCE51} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/opcache-default.blacklist +%if %{with_zts} +install -m 644 %{SOURCE51} $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d/opcache-default.blacklist +sed -e '/blacklist_filename/s/php.d/php-zts.d/' \ + -i $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d/10-opcache.ini +%endif + +# Install the macros file: +sed -e "s/@PHP_APIVER@/%{apiver}-%{__isa_bits}/" \ + -e "s/@PHP_ZENDVER@/%{zendver}-%{__isa_bits}/" \ + -e "s/@PHP_PDOVER@/%{pdover}-%{__isa_bits}/" \ + -e "s/@PHP_VERSION@/%{upver}/" \ +%if ! %{with_zts} + -e "/zts/d" \ +%endif + < %{SOURCE3} > macros.php +install -m 644 -D macros.php \ + $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d/macros.php + +# Remove unpackaged files +rm -rf $RPM_BUILD_ROOT%{_libdir}/php/modules/*.a \ + $RPM_BUILD_ROOT%{_libdir}/php-zts/modules/*.a \ + $RPM_BUILD_ROOT%{_bindir}/{phptar} \ + $RPM_BUILD_ROOT%{_datadir}/pear \ + $RPM_BUILD_ROOT%{_libdir}/libphp7.la + +# Remove irrelevant docs +rm -f README.{Zeus,QNX,CVS-RULES} + + +%post fpm +%systemd_post php-fpm.service + +%preun fpm +%systemd_preun php-fpm.service + +# Raised by new pool installation or new extension installation +%transfiletriggerin fpm -- %{_sysconfdir}/php-fpm.d %{_sysconfdir}/php.d +systemctl try-restart php-fpm.service >/dev/null 2>&1 || : + + +%files +%{_httpd_moddir}/libphp7.so +%if %{with_zts} +%{_httpd_moddir}/libphp7-zts.so +%endif +%attr(0770,root,apache) %dir %{_sharedstatedir}/php/session +%attr(0770,root,apache) %dir %{_sharedstatedir}/php/wsdlcache +%attr(0770,root,apache) %dir %{_sharedstatedir}/php/opcache +%config(noreplace) %{_httpd_confdir}/php.conf +%config(noreplace) %{_httpd_modconfdir}/15-php.conf +%{_httpd_contentdir}/icons/php.gif + +%files common -f files.common +%doc CODING_STANDARDS CREDITS EXTENSIONS NEWS README* +%license LICENSE TSRM_LICENSE +%license libmagic_LICENSE +%license phar_LICENSE +%license timelib_LICENSE +%doc php.ini-* +%config(noreplace) %{_sysconfdir}/php.ini +%dir %{_sysconfdir}/php.d +%dir %{_libdir}/php +%dir %{_libdir}/php/modules +%if %{with_zts} +%dir %{_sysconfdir}/php-zts.d +%dir %{_libdir}/php-zts +%dir %{_libdir}/php-zts/modules +%endif +%dir %{_sharedstatedir}/php +%dir %{_sharedstatedir}/php/peclxml +%dir %{_datadir}/php +%dir %{_docdir}/pecl +%dir %{_datadir}/tests +%dir %{_datadir}/tests/pecl + +%files cli +%{_bindir}/php +%if %{with_zts} +%{_bindir}/zts-php +%{_mandir}/man1/zts-php.1* +%endif +%{_bindir}/php-cgi +%{_bindir}/phar.phar +%{_bindir}/phar +# provides phpize here (not in -devel) for pecl command +%{_bindir}/phpize +%{_mandir}/man1/php.1* +%{_mandir}/man1/php-cgi.1* +%{_mandir}/man1/phar.1* +%{_mandir}/man1/phar.phar.1* +%{_mandir}/man1/phpize.1* +%doc sapi/cgi/README* sapi/cli/README + +%files dbg +%doc sapi/phpdbg/{README.md,CREDITS} +%{_bindir}/phpdbg +%{_mandir}/man1/phpdbg.1* +%if %{with_zts} +%{_bindir}/zts-phpdbg +%{_mandir}/man1/zts-phpdbg.1* +%endif + +%files fpm +%doc php-fpm.conf.default www.conf.default +%license fpm_LICENSE +%attr(0770,root,apache) %dir %{_sharedstatedir}/php/session +%attr(0770,root,apache) %dir %{_sharedstatedir}/php/wsdlcache +%attr(0770,root,apache) %dir %{_sharedstatedir}/php/opcache +%config(noreplace) %{_httpd_confdir}/php.conf +%config(noreplace) %{_sysconfdir}/php-fpm.conf +%config(noreplace) %{_sysconfdir}/php-fpm.d/www.conf +%config(noreplace) %{_sysconfdir}/logrotate.d/php-fpm +%config(noreplace) %{_sysconfdir}/nginx/conf.d/php-fpm.conf +%config(noreplace) %{_sysconfdir}/nginx/default.d/php.conf +%{_unitdir}/php-fpm.service +%{_unitdir}/httpd.service.d/php-fpm.conf +%{_unitdir}/nginx.service.d/php-fpm.conf +%{_sbindir}/php-fpm +%dir %{_sysconfdir}/systemd/system/php-fpm.service.d +%dir %{_sysconfdir}/php-fpm.d +# log owned by apache for log +%attr(770,apache,root) %dir %{_localstatedir}/log/php-fpm +%dir %ghost /run/php-fpm +%{_mandir}/man8/php-fpm.8* +%dir %{_datadir}/fpm +%{_datadir}/fpm/status.html + +%files devel +%{_bindir}/php-config +%{_includedir}/php +%{_libdir}/php/build +%if %{with_zts} +%{_bindir}/zts-php-config +%{_bindir}/zts-phpize +%{_includedir}/php-zts +%{_libdir}/php-zts/build +%{_mandir}/man1/zts-php-config.1* +%{_mandir}/man1/zts-phpize.1* +%endif +%{_mandir}/man1/php-config.1* +%{_rpmconfigdir}/macros.d/macros.php + +%files embedded +%{_libdir}/libphp7.so +%{_libdir}/libphp7-%{embed_version}.so + +%files pgsql -f files.pgsql +%files odbc -f files.odbc +%if %{with_imap} +%files imap -f files.imap +%endif +%files ldap -f files.ldap +%files snmp -f files.snmp +%files xml -f files.xml +%files xmlrpc -f files.xmlrpc +%files mbstring -f files.mbstring +%license libmbfl_LICENSE +%license ucgendat_LICENSE +%files gd -f files.gd +%if ! %{with_libgd} +%license libgd_README +%license libgd_COPYING +%endif +%files soap -f files.soap +%files bcmath -f files.bcmath +%license libbcmath_COPYING +%files gmp -f files.gmp +%files dba -f files.dba +%files pdo -f files.pdo +%files tidy -f files.tidy +%if %{with_freetds} +%files pdo-dblib -f files.pdo_dblib +%endif +%if %{with_pspell} +%files pspell -f files.pspell +%endif +%files intl -f files.intl +%files process -f files.process +%files recode -f files.recode +%if %{with_firebird} +%files interbase -f files.interbase +%endif +%files enchant -f files.enchant +%files mysqlnd -f files.mysqlnd +%files opcache -f files.opcache +%config(noreplace) %{_sysconfdir}/php.d/opcache-default.blacklist +%if %{with_zts} +%config(noreplace) %{_sysconfdir}/php-zts.d/opcache-default.blacklist +%endif +%files json -f files.json +%if %{with_sodium} +%files sodium -f files.sodium +%endif + + +%changelog +* Sat Dec 8 2018 Remi Collet - 7.2.13-2 +- Fix null pointer dereference in imap_mail CVE-2018-19935 + +* Wed Dec 5 2018 Remi Collet - 7.2.13-1 +- Update to 7.2.13 - http://www.php.net/releases/7_2_13.php + +* Tue Nov 6 2018 Remi Collet - 7.2.12-1 +- Update to 7.2.12 - http://www.php.net/releases/7_2_12.php + +* Wed Oct 10 2018 Remi Collet - 7.2.11-1 +- Update to 7.2.11 - http://www.php.net/releases/7_2_11.php + +* Tue Sep 11 2018 Remi Collet - 7.2.10-1 +- Update to 7.2.10 - http://www.php.net/releases/7_2_10.php + +* Thu Aug 16 2018 Remi Collet - 7.2.9-1 +- Update to 7.2.9 - http://www.php.net/releases/7_2_9.php + +* Tue Jul 17 2018 Remi Collet - 7.2.8-1 +- Update to 7.2.8 - http://www.php.net/releases/7_2_8.php +- FPM: add getallheaders, backported from 7.3 + +* Wed Jun 20 2018 Remi Collet - 7.2.7-1 +- Update to 7.2.7 - http://www.php.net/releases/7_2_7.php + +* Wed May 23 2018 Remi Collet - 7.2.6-1 +- Update to 7.2.6 - http://www.php.net/releases/7_2_6.php + +* Tue Apr 24 2018 Remi Collet - 7.2.5-1 +- Update to 7.2.5 - http://www.php.net/releases/7_2_5.php + +* Wed Apr 11 2018 Remi Collet - 7.2.5~RC1-1 +- update to 7.2.5RC1 + +* Tue Apr 3 2018 Remi Collet - 7.2.4-2 +- add upstream patch for oniguruma 6.8.1, FTBFS #1562583 + +* Sun Apr 01 2018 Mamoru TASAKA - 7.2.4-2 +- Rebuild against oniguruma 6.8.1 + +* Tue Mar 27 2018 Remi Collet - 7.2.4-1 +- Update to 7.2.4 - http://www.php.net/releases/7_2_4.php +- FPM: update default pool configuration for process.dumpable + +* Wed Mar 21 2018 Remi Collet - 7.2.4~RC1-3 +- use systemd RuntimeDirectory instead of /etc/tmpfiles.d + +* Thu Mar 15 2018 Remi Collet - 7.2.4~RC1-2 +- add file trigger to restart the php-fpm service + when new pool or new extension installed #1556762 + +* Tue Mar 13 2018 Remi Collet - 7.2.4~RC1-1 +- update to 7.2.4RC1 + +* Wed Feb 28 2018 Remi Collet - 7.2.3-1 +- Update to 7.2.3 - http://www.php.net/releases/7_2_3.php +- FPM: revert pid file removal + +* Wed Feb 21 2018 Remi Collet - 7.2.3~RC1-4 +- disable ZTS on RHEL + +* Fri Feb 16 2018 Remi Collet - 7.2.3~RC1-3 +- disable pspell extension on RHEL +- improve devel dependencies + +* Wed Feb 14 2018 Remi Collet - 7.2.3~RC1-2 +- rebuild for new tag and drop patch merged upstream +- drop ldconfig scriptlets + +* Wed Feb 14 2018 Remi Collet - 7.2.3~RC1-1 +- update to 7.2.3RC1 +- adapt systzdata, fixheader and ldap_r patches +- apply upstream patch for date ext + +* Fri Feb 09 2018 Fedora Release Engineering - 7.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 Remi Collet - 7.2.2-1 +- Update to 7.2.2 - http://www.php.net/releases/7_2_2.php + +* Mon Jan 29 2018 Remi Collet - 7.2.2~RC1-3 +- disable interbase, imap, pdo_dblib and sodium on rhel + +* Thu Jan 25 2018 Remi Collet - 7.2.2~RC1-3 +- undefine _strict_symbol_defs_build + +* Sat Jan 20 2018 Björn Esser - 7.2.2~RC1-2 +- Rebuilt for switch to libxcrypt + +* Tue Jan 16 2018 Remi Collet - 7.2.2~RC1-1 +- update to 7.2.2RC1 +- define SOURCE_DATE_EPOCH for reproducible build + +* Wed Jan 3 2018 Remi Collet - 7.2.1-1 +- Update to 7.2.1 - http://www.php.net/releases/7_2_1.php + +* Wed Dec 13 2017 Remi Collet - 7.2.1~RC1-1 +- update to 7.2.1RC1 + +* Thu Nov 30 2017 Pete Walter - 7.2.0-3 +- Rebuild for ICU 60.1 + +* Tue Nov 28 2017 Remi Collet - 7.2.0-2 +- refresh patch for https://bugs.php.net/75514 + +* Tue Nov 28 2017 Remi Collet - 7.2.0-1 +- update to 7.2.0 GA +- add upstream patch for https://bugs.php.net/75514 + +* Tue Nov 7 2017 Remi Collet - 7.2.0~RC6-1 +- Update to 7.2.0RC6 + +* Wed Oct 25 2017 Remi Collet - 7.2.0~RC5-1 +- Update to 7.2.0RC5 +- make php-fpm a weak dependency + +* Wed Oct 18 2017 Remi Collet - 7.2.0~RC4-2 +- enable argon2 password hash + +* Tue Oct 10 2017 Remi Collet - 7.2.0~RC4-1 +- Update to 7.2.0RC4 + +* Fri Sep 29 2017 Remi Collet - 7.2.0~RC3-1 +- Update to 7.2.0RC3 +- drop mcrypt extension +- add sodium extension +- use system oniguruma +- drop .so suffix from ini files +- refresh configuration files from upstream + +* Wed Sep 27 2017 Remi Collet - 7.1.10-1 +- Update to 7.1.10 - http://www.php.net/releases/7_1_10.php + +* Mon Sep 25 2017 Remi Collet - 7.1.10~RC1-2 +- php now requires php-fpm and start it with httpd / nginx + +* Wed Sep 13 2017 Remi Collet - 7.1.10~RC1-1 +- Update to 7.1.10RC1 + +* Wed Sep 6 2017 Remi Collet - 7.1.9-2 +- Automatically load OpenSSL configuration file, from PHP 7.2 + +* Wed Aug 30 2017 Remi Collet - 7.1.9-1 +- Update to 7.1.9 - http://www.php.net/releases/7_1_9.php + +* Wed Aug 16 2017 Remi Collet - 7.1.9~RC1-1 +- Update to 7.1.9RC1 +- php-fpm: drop unneeded "pid" from default configuration + +* Wed Aug 2 2017 Remi Collet - 7.1.8-1 +- Update to 7.1.8 - http://www.php.net/releases/7_1_8.php + +* Thu Jul 27 2017 Fedora Release Engineering - 7.1.8~RC1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 19 2017 Remi Collet - 7.1.8~RC1-1 +- Update to 7.1.8RC1 + +* Tue Jul 18 2017 Remi Collet - 7.1.7-2 +- disable httpd MPM check + +* Thu Jul 6 2017 Remi Collet - 7.1.7-1 +- Update to 7.1.7 - http://www.php.net/releases/7_1_7.php + +* Wed Jun 21 2017 Remi Collet - 7.1.7~RC1-1 +- Update to 7.1.7RC1 + +* Wed Jun 7 2017 Remi Collet - 7.1.6-1 +- Update to 7.1.6 - http://www.php.net/releases/7_1_6.php +- add upstream security patches for oniguruma + +* Wed May 24 2017 Remi Collet - 7.1.6~RC1-1 +- Update to 7.1.6RC1 + +* Tue May 9 2017 Remi Collet - 7.1.5-1 +- Update to 7.1.5 - http://www.php.net/releases/7_1_5.php + +* Sat May 6 2017 Remi Collet - 7.1.5-0.3.RC1 +- enable PHP execution of .phar files, see #1117140 + +* Thu Apr 27 2017 Remi Collet - 7.1.5-0.2.RC1 +- new sources from new tag + +* Tue Apr 25 2017 Remi Collet - 7.1.5-0.1.RC1 +- Update to 7.1.5RC1 + +* Tue Apr 11 2017 Remi Collet - 7.1.4-1 +- Update to 7.1.4 - http://www.php.net/releases/7_1_4.php + +* Wed Mar 29 2017 Remi Collet - 7.1.4-0.1.RC1 +- Update to 7.1.4RC1 + +* Wed Mar 22 2017 Remi Collet - 7.1.3-3 +- timelib is MIT license + +* Wed Mar 15 2017 Remi Collet - 7.1.3-2 +- remove %%attr, see #1432372 + +* Wed Mar 15 2017 Remi Collet - 7.1.3-1 +- Update to 7.1.3 - http://www.php.net/releases/7_1_3.php + +* Tue Feb 28 2017 Remi Collet 7.1.3-0.1.RC1 +- Update to 7.1.3RC1 + +* Wed Feb 15 2017 Remi Collet - 7.1.2-1 +- Update to 7.1.2 - http://www.php.net/releases/7_1_2.php + +* Sat Feb 11 2017 Fedora Release Engineering - 7.1.2-0.2.RC1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 2 2017 Remi Collet - 7.1.2-0.2.RC1 +- Update to 7.1.2RC1 (new sources) + +* Wed Feb 1 2017 Remi Collet 7.1.2-0.1.RC1 +- Update to 7.1.2RC1 + +* Wed Jan 18 2017 Remi Collet 7.1.1-1 +- Update to 7.1.1 - http://www.php.net/releases/7_1_1.php + +* Fri Jan 6 2017 Remi Collet 7.1.1-0.1.RC1 +- Update to 7.1.1RC1 + +* Thu Dec 1 2016 Remi Collet 7.1.0-1 +- Update to 7.1.0 - http://www.php.net/releases/7_1_0.php + +* Fri Nov 25 2016 Remi Collet 7.1.0-0.3.RC6 +- disable pcre.jit everywhere as it raise AVC #1398474 +- sync provided configuration with upstream production defaults + +* Mon Nov 14 2016 Remi Collet 7.1.0-0.2.RC6 +- re-enable interbase sub package + see http://bugzilla.redhat.com/1394750 sub package inconsistency +- add patch to fix firebird include path (using fb_config) + +* Mon Nov 14 2016 Remi Collet 7.1.0-0.1.RC6 +- Update to 7.1.0RC6 +- update tzdata patch to v14, improve check for valid tz file +- disable interbase sub package (interbase and pdo_firebird) + +* Tue Oct 11 2016 Remi Collet 7.1.0-0.1.RC3 +- Update to 7.1.0RC3 + +* Wed Sep 28 2016 Remi Collet 7.0.12-0.1.RC1 +- Update to 7.0.12RC1 + +* Wed Sep 14 2016 Remi Collet 7.0.11-1 +- Update to 7.0.11 - http://www.php.net/releases/7_0_11.php + +* Fri Sep 2 2016 Remi Collet 7.0.11-0.1.RC1 +- Update to 7.0.11RC1 + +* Thu Sep 1 2016 Remi Collet 7.0.10-1 +- Update to 7.0.10 - http://www.php.net/releases/7_0_10.php + +* Wed Aug 3 2016 Remi Collet 7.0.10-0.1.RC1 +- Update to 7.0.10RC1 + +* Wed Jul 20 2016 Remi Collet 7.0.9-1 +- Update to 7.0.9 - http://www.php.net/releases/7_0_9.php +- wddx: add upstream patch for https://bugs.php.net/72564 + +* Wed Jul 6 2016 Remi Collet 7.0.9-0.1.RC1 +- Update to 7.0.9RC1 + +* Thu Jun 30 2016 Remi Collet 7.0.8-2 +- own tests/doc directories for pecl packages #1351345 + +* Wed Jun 22 2016 Remi Collet 7.0.8-1 +- Update to 7.0.8 - http://www.php.net/releases/7_0_8.php +- https://fedoraproject.org/wiki/Changes/php70 +- drop ereg, mysql, mssql extensions +- add json extension + +* Wed Jun 22 2016 Remi Collet 5.6.23-1 +- Update to 5.6.23 - http://www.php.net/releases/5_6_23.php + +* Thu Jun 9 2016 Remi Collet 5.6.23-0.1.RC1 +- update to 5.6.23RC1 + +* Fri May 27 2016 Remi Collet 5.6.22-2 +- drop unneeded option --with-vpx-dir, fix FTBFS, thanks Koschei + +* Thu May 26 2016 Remi Collet 5.6.22-1 +- Update to 5.6.22 - http://www.php.net/releases/5_6_22.php + +* Thu May 12 2016 Remi Collet 5.6.22-0.1.RC1 +- update to 5.6.22RC1 + +* Thu Apr 28 2016 Remi Collet 5.6.21-1 +- Update to 5.6.21 + http://www.php.net/releases/5_6_21.php + +* Mon Apr 18 2016 Remi Collet 5.6.21-0.2.RC1 +- rebuild for ICU 57.1 + +* Mon Apr 18 2016 Remi Collet 5.6.21-0.1.RC1 +- update to 5.6.21RC1 + +* Fri Apr 15 2016 David Tardon - 5.6.20-1.1 +- rebuild for ICU 57.1 + +* Thu Mar 31 2016 Remi Collet 5.6.20-1 +- Update to 5.6.20 + http://www.php.net/releases/5_6_20.php + +* Thu Mar 17 2016 Remi Collet 5.6.20-0.1.RC1 +- update to 5.6.20RC1 + +* Thu Mar 3 2016 Remi Collet 5.6.19-1 +- Update to 5.6.19 + http://www.php.net/releases/5_6_19.php + +* Thu Feb 18 2016 Remi Collet 5.6.19-0.1.RC1 +- update to 5.6.19RC1 + +* Tue Feb 9 2016 Remi Collet 5.6.18-2 +- define %%pecl_xmldir and own it (/var/lib/php/peclxml) + +* Wed Feb 3 2016 Remi Collet 5.6.18-1 +- Update to 5.6.18 + http://www.php.net/releases/5_6_18.php + +* Thu Jan 21 2016 Remi Collet 5.6.18-0.1.RC1 +- update to 5.6.18RC1 + +* Thu Jan 7 2016 Remi Collet 5.6.17-1 +- Update to 5.6.17 + http://www.php.net/releases/5_6_17.php + +* Thu Dec 10 2015 Remi Collet 5.6.17-0.1.RC1 +- update to 5.6.17RC1 + +* Tue Dec 1 2015 Tom Callaway 5.6.16-2 +- rebuild for libvpx 1.5.0 + +* Thu Nov 26 2015 Remi Collet 5.6.16-1 +- Update to 5.6.16 + http://www.php.net/releases/5_6_16.php + +* Wed Nov 18 2015 Rex Dieter 5.6.16-0.2.RC2 +- rebuild (tidy) + +* Thu Nov 12 2015 Remi Collet 5.6.16-0.1.RC1 +- update to 5.6.16RC1 + +* Thu Oct 29 2015 Remi Collet 5.6.15-1 +- Update to 5.6.15 + http://www.php.net/releases/5_6_15.php +- php-config: reports all built sapis + +* Thu Oct 15 2015 Remi Collet 5.6.15-0.1.RC1 +- update to 5.6.15RC1 + +* Wed Sep 30 2015 Remi Collet 5.6.14-1 +- Update to 5.6.14 + http://www.php.net/releases/5_6_14.php +- php-fpm: enable http authorization headers + +* Thu Sep 17 2015 Remi Collet 5.6.14-0.1.RC1 +- update to 5.6.14RC1 + +* Thu Sep 3 2015 Remi Collet 5.6.13-1 +- Update to 5.6.13 + http://www.php.net/releases/5_6_13.php + +* Thu Aug 6 2015 Remi Collet 5.6.12-1 +- Update to 5.6.12 + http://www.php.net/releases/5_6_12.php + +* Fri Jul 24 2015 Remi Collet 5.6.12-0.1.RC1 +- update to 5.6.12RC1 + +* Fri Jul 17 2015 Remi Collet 5.6.11-2 +- fix typo in php.conf #1244104 + +* Sun Jul 12 2015 Remi Collet 5.6.11-1 +- Update to 5.6.11 + http://www.php.net/releases/5_6_11.php + +* Thu Jun 25 2015 Remi Collet 5.6.11-0.1.RC1 +- update to 5.6.11RC1 +- the phar link is now correctly created + +* Thu Jun 18 2015 Fedora Release Engineering - 5.6.10-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 11 2015 Remi Collet 5.6.10-1 +- Update to 5.6.10 + http://www.php.net/releases/5_6_10.php +- add explicit spec license (implicit by FPCA) + +* Thu May 28 2015 Remi Collet 5.6.10-0.1.RC1 +- update to 5.6.10RC1 +- opcache is now 7.0.6-dev + +* Fri May 15 2015 Remi Collet 5.6.9-1 +- Update to 5.6.9 + http://www.php.net/releases/5_6_9.php + +* Thu Apr 30 2015 Remi Collet 5.6.9-0.1.RC1 +- update to 5.6.9RC1 +- adapt systzdata patch for upstream changes for new zic + +* Thu Apr 16 2015 Remi Collet 5.6.8-1 +- Update to 5.6.8 + http://www.php.net/releases/5_6_8.php + +* Fri Apr 10 2015 Remi Collet 5.6.8-0.3.RC1 +- add upstream patch to drop SSLv3 tests + +* Mon Apr 6 2015 Tom Callaway - 5.6.8-0.2.RC1 +- rebuild for libvpx 1.4.0 + +* Wed Apr 1 2015 Remi Collet 5.6.8-0.1.RC1 +- update to 5.6.8RC1 + +* Fri Mar 20 2015 Remi Collet 5.6.7-2 +- Update to 5.6.7 + http://www.php.net/releases/5_6_7.php + +* Sun Mar 8 2015 Remi Collet 5.6.7-1 +- update to 5.6.7RC1 + +* Thu Feb 19 2015 Remi Collet 5.6.6-1 +- Update to 5.6.6 + http://www.php.net/releases/5_6_6.php + +* Thu Feb 5 2015 Remi Collet 5.6.6-0.1.RC1 +- php 5.6.6RC1 for Koschei + +* Mon Jan 26 2015 David Tardon - 5.6.5-2 +- rebuild for ICU 54.1 + +* Thu Jan 22 2015 Remi Collet 5.6.5-1 +- Update to 5.6.5 + http://www.php.net/releases/5_6_5.php +- drop deprecated php-fpm EnvironmentFile + +* Fri Jan 9 2015 Remi Collet 5.6.5-0.1.RC1 +- update to 5.6.5RC1 +- FPM: enable ACL support for Unix Domain Socket +- FPM: switch default configuration to use UDS + +* Wed Dec 17 2014 Remi Collet 5.6.4-2 +- Update to 5.6.4 (real) + http://www.php.net/releases/5_6_4.php +- php-xmlrpc requires php-xml + +* Wed Dec 10 2014 Remi Collet 5.6.4-1 +- Update to 5.6.4 + http://www.php.net/releases/5_6_4.php + +* Fri Nov 28 2014 Remi Collet 5.6.4-0.1.RC1 +- php 5.6.4RC1 + +* Mon Nov 17 2014 Remi Collet 5.6.3-4 +- FPM: add upstream patch for https://bugs.php.net/68428 + listen.allowed_clients is IPv4 only + +* Mon Nov 17 2014 Remi Collet 5.6.3-3 +- sync php-fpm configuration with upstream +- refresh upstream patch for 68421 + +* Sun Nov 16 2014 Remi Collet 5.6.3-2 +- FPM: add upstream patch for https://bugs.php.net/68421 + access.format=R doesn't log ipv6 address +- FPM: add upstream patch for https://bugs.php.net/68420 + listen=9000 listens to ipv6 localhost instead of all addresses +- FPM: add upstream patch for https://bugs.php.net/68423 + will no longer load all pools + +* Thu Nov 13 2014 Remi Collet 5.6.3-1 +- Update to PHP 5.6.3 + http://php.net/releases/5_6_3.php + +* Fri Oct 31 2014 Remi Collet 5.6.3-0.2.RC1 +- php 5.6.3RC1 (refreshed, phpdbg changes reverted) +- new version of systzdata patch, fix case sensitivity +- ignore Factory in date tests + +* Wed Oct 29 2014 Remi Collet 5.6.3-0.1.RC1 +- php 5.6.3RC1 +- disable opcache.fast_shutdown in default config +- enable phpdbg_webhelper new extension (in php-dbg) + +* Thu Oct 16 2014 Remi Collet 5.6.1-1 +- Update to PHP 5.6.2 + http://php.net/releases/5_6_2.php + +* Fri Oct 3 2014 Remi Collet 5.6.1-1 +- Update to PHP 5.6.1 + http://php.net/releases/5_6_1.php +- use default system cipher list by Fedora policy + http://fedoraproject.org/wiki/Changes/CryptoPolicy + +* Wed Sep 24 2014 Remi Collet 5.6.1-0.2.RC1 +- provides nginx configuration (see #1142298) + +* Sat Sep 13 2014 Remi Collet 5.6.1-0.1.RC1 +- php 5.6.1RC1 + +* Thu Aug 28 2014 Remi Collet 5.6.0-1 +- PHP 5.6.0 is GA + http://php.net/releases/5_6_0.php +- fix ZTS man pages, upstream patch for 67878 +- provides php(httpd) + +* Sun Aug 17 2014 Fedora Release Engineering - 5.6.0-0.7.RC4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Aug 14 2014 Remi Collet 5.6.0-0.6.RC4 +- php 5.6.0RC4 + +* Thu Jul 31 2014 Remi Collet 5.6.0-0.5.RC3 +- fpm requires httpd >= 2.4.10 for proxy support in SetHandler + +* Thu Jul 31 2014 Remi Collet 5.6.0-0.4.RC3 +- php 5.6.0RC3 +- cleanup with_libmysql +- fix licenses handling +- fix zts-php-config --php-binary output #1124605 +- provide php.conf with php-fpm, allow apache + fpm + to work with default configuration, without mod_php + +* Mon Jul 7 2014 Remi Collet 5.6.0-0.3.RC2 +- php 5.6.0RC2 + +* Mon Jun 23 2014 Remi Collet 5.6.0-0.2.RC1 +- fix phpdbg with libedit https://bugs.php.net/67499 +- add workaround for unserialize/mock issue from 5.4/5.5 + +* Thu Jun 19 2014 Remi Collet 5.6.0-0.1.RC1 +- php 5.6.0RC1 + https://fedoraproject.org/wiki/Changes/Php56 +- add php-dbg subpackage +- update php.ini and opcache.ini from upstream production template +- move zts-php to php-cli + +* Thu Jun 5 2014 Remi Collet 5.5.13-3 +- fix regression introduce in fix for #67118 + +* Tue Jun 3 2014 Remi Collet 5.5.13-2 +- fileinfo: fix insufficient boundary check +- workaround regression introduce in fix for 67072 in + serialize/unzerialize functions + +* Fri May 30 2014 Remi Collet 5.5.13-1 +- Update to 5.5.13 + http://www.php.net/releases/5_5_13.php +- sync php.ini with upstream php.ini-production + +* Sat May 3 2014 Remi Collet 5.5.12-1 +- Update to 5.5.12 + http://www.php.net/releases/5_5_12.php +- php-fpm: change default unix socket permission CVE-2014-0185 + +* Wed Apr 23 2014 Remi Collet 5.5.11-2 +- add numerical prefix to extension configuration files +- prevent .user.ini files from being viewed by Web clients +- load php directives only when mod_php is active + +* Thu Apr 3 2014 Remi Collet 5.5.11-1 +- Update to 5.5.11 + http://www.php.net/ChangeLog-5.php#5.5.11 + +* Thu Mar 6 2014 Remi Collet 5.5.10-1 +- Update to 5.5.10 + http://www.php.net/ChangeLog-5.php#5.5.10 +- php-fpm should own /var/lib/php/session and wsdlcache +- fix pcre test results with libpcre < 8.34 + +* Tue Feb 18 2014 Remi Collet 5.5.9-2 +- upstream patch for https://bugs.php.net/66731 + +* Thu Feb 13 2014 Remi Collet 5.5.9-1.1 +- rebuild + +* Tue Feb 11 2014 Remi Collet 5.5.9-1 +- Update to 5.5.9 + http://www.php.net/ChangeLog-5.php#5.5.9 +- Install macros to /usr/lib/rpm/macros.d + +* Thu Jan 23 2014 Joe Orton - 5.5.8-2 +- fix _httpd_mmn expansion in absence of httpd-devel + +* Wed Jan 8 2014 Remi Collet 5.5.8-1 +- update to 5.5.8 +- drop conflicts with other opcode caches as both can + be used only for user data cache + +* Wed Dec 11 2013 Remi Collet 5.5.7-1 +- update to 5.5.7, fix for CVE-2013-6420 +- fix zend_register_functions breaks reflection, php bug 66218 +- fix Heap buffer over-read in DateInterval, php bug 66060 +- fix fix overflow handling bug in non-x86 + +* Wed Nov 13 2013 Remi Collet 5.5.6-1 +- update to 5.5.6 + +* Thu Oct 17 2013 Remi Collet - 5.5.5-1 +- update to 5.5.5 +- sync php.ini with upstream + +* Thu Sep 19 2013 Remi Collet - 5.5.4-1 +- update to 5.5.4 +- improve security, use specific soap.wsdl_cache_dir + use /var/lib/php/wsdlcache for mod_php and php-fpm +- sync short_tag comments in php.ini with upstream + +* Wed Aug 21 2013 Remi Collet - 5.5.3-1 +- update to 5.5.3 +- fix typo and add missing entries in php.ini +- drop zip extension + +* Mon Aug 19 2013 Remi Collet - 5.5.2-1 +- update to 5.5.2, fixes for CVE-2011-4718 + CVE-2013-4248 + +* Thu Aug 08 2013 Remi Collet - 5.5.1-3 +- improve system libzip patch + +* Sun Aug 04 2013 Fedora Release Engineering - 5.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jul 22 2013 Remi Collet - 5.5.1-1 +- update to 5.5.1 +- add Provides: php(pdo-abi), for consistency with php(api) + and php(zend-abi) +- improved description for mod_php +- fix opcache ZTS configuration (blacklists in /etc/php-zts.d) +- add missing man pages (phar, php-cgi) + +* Fri Jul 12 2013 Remi Collet - 5.5.0-2 +- add security fix for CVE-2013-4113 +- add missing ASL 1.0 license +- 32k stack size seems ok for tests on both 32/64bits build + +* Thu Jun 20 2013 Remi Collet 5.5.0-1 +- update to 5.5.0 final + +* Fri Jun 14 2013 Remi Collet 5.5.0-0.11.RC3 +- also drop JSON from sources +- clean conditional for JSON (as removed from the sources) +- clean conditional for FPM (always build) + +* Thu Jun 13 2013 Remi Collet 5.5.0-0.10.RC3 +- drop JSON extension + +* Tue Jun 11 2013 Remi Collet 5.5.0-0.9.RC3 +- build with system GD >= 2.1.0 + +* Thu Jun 6 2013 Remi Collet 5.5.0-0.8.RC3 +- update to 5.5.0RC3 + +* Thu May 23 2013 Remi Collet 5.5.0-0.7.RC2 +- update to 5.5.0RC2 +- add missing options in php-fpm.conf +- run php-fpm in systemd notify mode +- /etc/syconfig/php-fpm is deprecated (still used) +- add /systemd/system/php-fpm.service.d + +* Wed May 8 2013 Remi Collet 5.5.0-0.6.RC1 +- update to 5.5.0RC1 +- remove reference to apache in some sub-packages description +- add option to disable json extension +- drop most (very old) "Obsoletes", add version to others + +* Thu Apr 25 2013 Remi Collet 5.5.0-0.5.beta4 +- update to 5.5.0beta4 +- zend_extension doesn't requires full path +- refresh patch for system libzip +- drop opcache patch merged upstream +- add BuildRequires libvpx-devel for WebP support in php-gd +- php-fpm own /usr/share/fpm + +* Thu Apr 11 2013 Remi Collet 5.5.0-0.4.beta3 +- update to 5.5.0beta3 +- allow wildcard in opcache.blacklist_filename and provide + default /etc/php.d/opcache-default.blacklist +- clean spec, use only spaces (no tab) + +* Thu Apr 4 2013 Remi Collet 5.5.0-0.3.beta2 +- clean old deprecated options + +* Thu Mar 28 2013 Remi Collet 5.5.0-0.2.beta2 +- update to 5.5.0beta2 +- Zend Optimizer+ renamed to Zend OPcache +- sync provided configuration with upstream + +* Fri Mar 22 2013 Remi Collet 5.5.0-0.1.beta1 +- update to 5.5.0beta1 + http://fedoraproject.org/wiki/Features/Php55 +- new Zend OPcache extension in php-opccache new sub-package +- don't display XFAIL tests in report +- use xz compressed tarball +- build simplexml and xml extensions shared (moved in php-xml) +- build bz2, calendar, ctype, exif, ftp, gettext, iconv + sockets and tokenizer extensions shared (in php-common) +- build gmp extension shared (in php-gmp new sub-package) +- build shmop extension shared (moved in php-process) +- drop some old compatibility provides (php-api, php-zend-abi, php-pecl-*) + +* Thu Mar 14 2013 Remi Collet 5.4.13-1 +- update to 5.4.13 +- security fix for CVE-2013-1643 +- Hardened build (links with -z now option) + +* Mon Mar 11 2013 Ralf Corsépius - 5.4.13-0.2.RC1 +- Remove %%config from %%{_sysconfdir}/rpm/macros.* + (https://fedorahosted.org/fpc/ticket/259). + +* Thu Feb 28 2013 Remi Collet 5.4.13-0.1.RC1 +- update to 5.4.13RC1 +- drop patches merged upstream + +* Sat Feb 23 2013 Karsten Hopp 5.4.12-4 +- add support for ppc64p7 arch (Power7 optimized) + +* Thu Feb 21 2013 Remi Collet 5.4.12-3 +- make ZTS build optional (still enabled) + +* Wed Feb 20 2013 Remi Collet 5.4.12-2 +- make php-mysql package optional and disabled + +* Wed Feb 20 2013 Remi Collet 5.4.12-1 +- update to 5.4.12 +- security fix for CVE-2013-1635 +- drop gdbm because of license incompatibility + +* Wed Feb 13 2013 Remi Collet 5.4.12-0.6.RC2 +- enable tokyocabinet and gdbm dba handlers + +* Wed Feb 13 2013 Remi Collet 5.4.12-0.5.RC2 +- update to 5.4.12RC2 + +* Mon Feb 11 2013 Remi Collet 5.4.12-0.4.RC1 +- upstream patch (5.4.13) to fix dval to lval conversion + https://bugs.php.net/64142 + +* Mon Feb 4 2013 Remi Collet 5.4.12-0.3.RC1 +- upstream patch (5.4.13) for 2 failed tests + +* Fri Feb 1 2013 Remi Collet 5.4.12-0.2.RC1 +- fix buit-in web server on ppc64 (fdset usage) + https://bugs.php.net/64128 + +* Thu Jan 31 2013 Remi Collet 5.4.12-0.1.RC1 +- update to 5.4.12RC1 + +* Mon Jan 28 2013 Remi Collet 5.4.11-3 +- rebuild for new libicu + +* Mon Jan 21 2013 Adam Tkac - 5.4.11-2 +- rebuild due to "jpeg8-ABI" feature drop + +* Wed Jan 16 2013 Remi Collet 5.4.11-1 +- update to 5.4.11 + +* Thu Jan 10 2013 Remi Collet 5.4.11-0.2.RC1 +- fix php.conf to allow MultiViews managed by php scripts + +* Thu Jan 10 2013 Remi Collet 5.4.11-0.1.RC1 +- update to 5.4.11RC1 + +* Wed Dec 19 2012 Remi Collet 5.4.10-1 +- update to 5.4.10 +- remove patches merged upstream + +* Tue Dec 11 2012 Remi Collet 5.4.9-3 +- drop "Configure Command" from phpinfo output + +* Tue Dec 11 2012 Joe Orton - 5.4.9-2 +- prevent php_config.h changes across (otherwise identical) rebuilds + +* Thu Nov 22 2012 Remi Collet 5.4.9-1 +- update to 5.4.9 + +* Thu Nov 15 2012 Remi Collet 5.4.9-0.5.RC1 +- switch back to upstream generated scanner/parser + +* Thu Nov 15 2012 Remi Collet 5.4.9-0.4.RC1 +- use _httpd_contentdir macro and fix php.gif path + +* Wed Nov 14 2012 Remi Collet 5.4.9-0.3.RC1 +- improve system libzip patch to use pkg-config + +* Wed Nov 14 2012 Remi Collet 5.4.9-0.2.RC1 +- use _httpd_moddir macro + +* Wed Nov 14 2012 Remi Collet 5.4.9-0.1.RC1 +- update to 5.4.9RC1 +- improves php.conf (use FilesMatch + SetHandler) +- improves filter (httpd module) +- apply ldap_r patch on fedora >= 18 only + +* Fri Nov 9 2012 Remi Collet 5.4.8-6 +- clarify Licenses +- missing provides xmlreader and xmlwriter +- modernize spec +- change php embedded library soname version to 5.4 + +* Tue Nov 6 2012 Remi Collet 5.4.8-5 +- fix _httpd_mmn macro definition + +* Mon Nov 5 2012 Remi Collet 5.4.8-4 +- fix mysql_sock macro definition + +* Thu Oct 25 2012 Remi Collet 5.4.8-3 +- fix installed headers + +* Tue Oct 23 2012 Joe Orton - 5.4.8-2 +- use libldap_r for ldap extension + +* Thu Oct 18 2012 Remi Collet 5.4.8-1 +- update to 5.4.8 +- define both session.save_handler and session.save_path +- fix possible segfault in libxml (#828526) +- php-fpm: create apache user if needed +- use SKIP_ONLINE_TEST during make test +- php-devel requires pcre-devel and php-cli (instead of php) + +* Fri Oct 5 2012 Remi Collet 5.4.7-11 +- provides php-phar +- update systzdata patch to v10, timezone are case insensitive + +* Mon Oct 1 2012 Remi Collet 5.4.7-10 +- fix typo in systemd macro + +* Mon Oct 1 2012 Remi Collet 5.4.7-9 +- php-fpm: enable PrivateTmp +- php-fpm: new systemd macros (#850268) +- php-fpm: add upstream patch for startup issue (#846858) + +* Fri Sep 28 2012 Remi Collet 5.4.7-8 +- systemd integration, https://bugs.php.net/63085 +- no odbc call during timeout, https://bugs.php.net/63171 +- check sqlite3_column_table_name, https://bugs.php.net/63149 + +* Mon Sep 24 2012 Remi Collet 5.4.7-7 +- most failed tests explained (i386, x86_64) + +* Wed Sep 19 2012 Remi Collet 5.4.7-6 +- fix for http://bugs.php.net/63126 (#783967) + +* Wed Sep 19 2012 Remi Collet 5.4.7-5 +- patch to ensure we use latest libdb (not libdb4) + +* Wed Sep 19 2012 Remi Collet 5.4.7-4 +- really fix rhel tests (use libzip and libdb) + +* Tue Sep 18 2012 Remi Collet 5.4.7-3 +- fix test to enable zip extension on RHEL-7 + +* Mon Sep 17 2012 Remi Collet 5.4.7-2 +- remove session.save_path from php.ini + move it to apache and php-fpm configuration files + +* Fri Sep 14 2012 Remi Collet 5.4.7-1 +- update to 5.4.7 + http://www.php.net/releases/5_4_7.php +- php-fpm: don't daemonize + +* Mon Aug 20 2012 Remi Collet 5.4.6-2 +- enable php-fpm on secondary arch (#849490) + +* Fri Aug 17 2012 Remi Collet 5.4.6-1 +- update to 5.4.6 +- update to v9 of systzdata patch +- backport fix for new libxml + +* Fri Jul 20 2012 Remi Collet 5.4.5-1 +- update to 5.4.5 + +* Mon Jul 02 2012 Remi Collet 5.4.4-4 +- also provide php(language)%%{_isa} +- define %%{php_version} + +* Mon Jul 02 2012 Remi Collet 5.4.4-3 +- drop BR for libevent (#835671) +- provide php(language) to allow version check + +* Thu Jun 21 2012 Remi Collet 5.4.4-2 +- add missing provides (core, ereg, filter, standard) + +* Thu Jun 14 2012 Remi Collet 5.4.4-1 +- update to 5.4.4 (CVE-2012-2143, CVE-2012-2386) +- use /usr/lib/tmpfiles.d instead of /etc/tmpfiles.d +- use /run/php-fpm instead of /var/run/php-fpm + +* Wed May 09 2012 Remi Collet 5.4.3-1 +- update to 5.4.3 (CVE-2012-2311, CVE-2012-2329) + +* Thu May 03 2012 Remi Collet 5.4.2-1 +- update to 5.4.2 (CVE-2012-1823) + +* Fri Apr 27 2012 Remi Collet 5.4.1-1 +- update to 5.4.1 + +* Wed Apr 25 2012 Joe Orton - 5.4.0-6 +- rebuild for new icu +- switch (conditionally) to libdb-devel + +* Sat Mar 31 2012 Remi Collet 5.4.0-5 +- fix Loadmodule with MPM event (use ZTS if not MPM worker) +- split conf.d/php.conf + conf.modules.d/10-php.conf with httpd 2.4 + +* Thu Mar 29 2012 Joe Orton - 5.4.0-4 +- rebuild for missing automatic provides (#807889) + +* Mon Mar 26 2012 Joe Orton - 5.4.0-3 +- really use _httpd_mmn + +* Mon Mar 26 2012 Joe Orton - 5.4.0-2 +- rebuild against httpd 2.4 +- use _httpd_mmn, _httpd_apxs macros + +* Fri Mar 02 2012 Remi Collet 5.4.0-1 +- update to PHP 5.4.0 finale + +* Sat Feb 18 2012 Remi Collet 5.4.0-0.4.RC8 +- update to PHP 5.4.0RC8 + +* Sat Feb 04 2012 Remi Collet 5.4.0-0.3.RC7 +- update to PHP 5.4.0RC7 +- provides env file for php-fpm (#784770) +- add patch to use system libzip (thanks to spot) +- don't provide INSTALL file + +* Wed Jan 25 2012 Remi Collet 5.4.0-0.2.RC6 +- all binaries in /usr/bin with zts prefix + +* Wed Jan 18 2012 Remi Collet 5.4.0-0.1.RC6 +- update to PHP 5.4.0RC6 + https://fedoraproject.org/wiki/Features/Php54 + +* Sun Jan 08 2012 Remi Collet 5.3.8-4.4 +- fix systemd unit + +* Mon Dec 12 2011 Remi Collet 5.3.8-4.3 +- switch to systemd + +* Tue Dec 06 2011 Adam Jackson - 5.3.8-4.2 +- Rebuild for new libpng + +* Wed Oct 26 2011 Marcela Mašláňová - 5.3.8-3.2 +- rebuild with new gmp without compat lib + +* Wed Oct 12 2011 Peter Schiffer - 5.3.8-3.1 +- rebuild with new gmp + +* Wed Sep 28 2011 Remi Collet 5.3.8-3 +- revert is_a() to php <= 5.3.6 behavior (from upstream) + with new option (allow_string) for new behavior + +* Tue Sep 13 2011 Remi Collet 5.3.8-2 +- add mysqlnd sub-package +- drop patch4, use --libdir to use /usr/lib*/php/build +- add patch to redirect mysql.sock (in mysqlnd) + +* Tue Aug 23 2011 Remi Collet 5.3.8-1 +- update to 5.3.8 + http://www.php.net/ChangeLog-5.php#5.3.8 + +* Thu Aug 18 2011 Remi Collet 5.3.7-1 +- update to 5.3.7 + http://www.php.net/ChangeLog-5.php#5.3.7 +- merge php-zts into php (#698084) + +* Tue Jul 12 2011 Joe Orton - 5.3.6-4 +- rebuild for net-snmp SONAME bump + +* Mon Apr 4 2011 Remi Collet 5.3.6-3 +- enable mhash extension (emulated by hash extension) + +* Wed Mar 23 2011 Remi Collet 5.3.6-2 +- rebuild for new MySQL client library + +* Thu Mar 17 2011 Remi Collet 5.3.6-1 +- update to 5.3.6 + http://www.php.net/ChangeLog-5.php#5.3.6 +- fix php-pdo arch specific requires + +* Tue Mar 15 2011 Joe Orton - 5.3.5-6 +- disable zip extension per "No Bundled Libraries" policy (#551513) + +* Mon Mar 07 2011 Caolán McNamara 5.3.5-5 +- rebuild for icu 4.6 + +* Mon Feb 28 2011 Remi Collet 5.3.5-4 +- fix systemd-units requires + +* Thu Feb 24 2011 Remi Collet 5.3.5-3 +- add tmpfiles.d configuration for php-fpm +- add Arch specific requires/provides + +* Wed Feb 09 2011 Fedora Release Engineering - 5.3.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 07 2011 Remi Collet 5.3.5-1 +- update to 5.3.5 + http://www.php.net/ChangeLog-5.php#5.3.5 +- clean duplicate configure options + +* Tue Dec 28 2010 Remi Collet 5.3.4-2 +- rebuild against MySQL 5.5.8 +- remove all RPM_SOURCE_DIR + +* Sun Dec 12 2010 Remi Collet 5.3.4-1.1 +- security patch from upstream for #660517 + +* Sat Dec 11 2010 Remi Collet 5.3.4-1 +- update to 5.3.4 + http://www.php.net/ChangeLog-5.php#5.3.4 +- move phpize to php-cli (see #657812) + +* Wed Dec 1 2010 Remi Collet 5.3.3-5 +- ghost /var/run/php-fpm (see #656660) +- add filter_setup to not provides extensions as .so + +* Mon Nov 1 2010 Joe Orton - 5.3.3-4 +- use mysql_config in libdir directly to avoid biarch build failures + +* Fri Oct 29 2010 Joe Orton - 5.3.3-3 +- rebuild for new net-snmp + +* Sun Oct 10 2010 Remi Collet 5.3.3-2 +- add php-fpm sub-package + +* Thu Jul 22 2010 Remi Collet 5.3.3-1 +- PHP 5.3.3 released + +* Fri Apr 30 2010 Remi Collet 5.3.2-3 +- garbage collector upstream patches (#580236) + +* Fri Apr 02 2010 Caolán McNamara 5.3.2-2 +- rebuild for icu 4.4 + +* Sat Mar 06 2010 Remi Collet 5.3.2-1 +- PHP 5.3.2 Released! +- remove mime_magic option (now provided by fileinfo, by emu) +- add patch for http://bugs.php.net/50578 +- remove patch for libedit (upstream) +- add runselftest option to allow build without test suite + +* Fri Nov 27 2009 Joe Orton - 5.3.1-3 +- update to v7 of systzdata patch + +* Wed Nov 25 2009 Joe Orton - 5.3.1-2 +- fix build with autoconf 2.6x + +* Fri Nov 20 2009 Remi Collet 5.3.1-1 +- update to 5.3.1 +- remove openssl patch (merged upstream) +- add provides for php-pecl-json +- add prod/devel php.ini in doc + +* Tue Nov 17 2009 Tom "spot" Callaway - 5.3.0-7 +- use libedit instead of readline to resolve licensing issues + +* Tue Aug 25 2009 Tomas Mraz - 5.3.0-6 +- rebuilt with new openssl + +* Sun Jul 26 2009 Fedora Release Engineering - 5.3.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 16 2009 Joe Orton 5.3.0-4 +- rediff systzdata patch + +* Thu Jul 16 2009 Joe Orton 5.3.0-3 +- update to v6 of systzdata patch; various fixes + +* Tue Jul 14 2009 Joe Orton 5.3.0-2 +- update to v5 of systzdata patch; parses zone.tab and extracts + timezone->{country-code,long/lat,comment} mapping table + +* Sun Jul 12 2009 Remi Collet 5.3.0-1 +- update to 5.3.0 +- remove ncurses, dbase, mhash extensions +- add enchant, sqlite3, intl, phar, fileinfo extensions +- raise sqlite version to 3.6.0 (for sqlite3, build with --enable-load-extension) +- sync with upstream "production" php.ini + +* Sun Jun 21 2009 Remi Collet 5.2.10-1 +- update to 5.2.10 +- add interbase sub-package + +* Sat Feb 28 2009 Remi Collet - 5.2.9-1 +- update to 5.2.9 + +* Thu Feb 26 2009 Fedora Release Engineering - 5.2.8-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Feb 5 2009 Joe Orton 5.2.8-9 +- add recode support, -recode subpackage (#106755) +- add -zts subpackage with ZTS-enabled build of httpd SAPI +- adjust php.conf to use -zts SAPI build for worker MPM + +* Wed Feb 4 2009 Joe Orton 5.2.8-8 +- fix patch fuzz, renumber patches + +* Wed Feb 4 2009 Joe Orton 5.2.8-7 +- drop obsolete configure args +- drop -odbc patch (#483690) + +* Mon Jan 26 2009 Joe Orton 5.2.8-5 +- split out sysvshm, sysvsem, sysvmsg, posix into php-process + +* Sun Jan 25 2009 Joe Orton 5.2.8-4 +- move wddx to php-xml, build curl shared in -common +- remove BR for expat-devel, bogus configure option + +* Fri Jan 23 2009 Joe Orton 5.2.8-3 +- rebuild for new MySQL + +* Sat Dec 13 2008 Remi Collet 5.2.8-2 +- libtool 2 workaround for phpize (#476004) +- add missing php_embed.h (#457777) + +* Tue Dec 09 2008 Remi Collet 5.2.8-1 +- update to 5.2.8 + +* Sat Dec 06 2008 Remi Collet 5.2.7-1.1 +- libtool 2 workaround + +* Fri Dec 05 2008 Remi Collet 5.2.7-1 +- update to 5.2.7 +- enable pdo_dblib driver in php-mssql + +* Mon Nov 24 2008 Joe Orton 5.2.6-7 +- tweak Summary, thanks to Richard Hughes + +* Tue Nov 4 2008 Joe Orton 5.2.6-6 +- move gd_README to php-gd +- update to r4 of systzdata patch; introduces a default timezone + name of "System/Localtime", which uses /etc/localtime (#469532) + +* Sat Sep 13 2008 Remi Collet 5.2.6-5 +- enable XPM support in php-gd +- Fix BR for php-gd + +* Sun Jul 20 2008 Remi Collet 5.2.6-4 +- enable T1lib support in php-gd + +* Mon Jul 14 2008 Joe Orton 5.2.6-3 +- update to 5.2.6 +- sync default php.ini with upstream +- drop extension_dir from default php.ini, rely on hard-coded + default, to make php-common multilib-safe (#455091) +- update to r3 of systzdata patch + +* Thu Apr 24 2008 Joe Orton 5.2.5-7 +- split pspell extension out into php-spell (#443857) + +* Tue Feb 19 2008 Fedora Release Engineering - 5.2.5-6 +- Autorebuild for GCC 4.3 + +* Fri Jan 11 2008 Joe Orton 5.2.5-5 +- ext/date: use system timezone database + +* Fri Dec 28 2007 Joe Orton 5.2.5-4 +- rebuild for libc-client bump + +* Wed Dec 05 2007 Release Engineering - 5.2.5-3 +- Rebuild for openssl bump + +* Wed Dec 5 2007 Joe Orton 5.2.5-2 +- update to 5.2.5 + +* Mon Oct 15 2007 Joe Orton 5.2.4-3 +- correct pcre BR version (#333021) +- restore metaphone fix (#205714) +- add READMEs to php-cli + +* Sun Sep 16 2007 Joe Orton 5.2.4-2 +- update to 5.2.4 + +* Sun Sep 2 2007 Joe Orton 5.2.3-9 +- rebuild for fixed APR + +* Tue Aug 28 2007 Joe Orton 5.2.3-8 +- add ldconfig post/postun for -embedded (Hans de Goede) + +* Fri Aug 10 2007 Hans de Goede 5.2.3-7 +- add php-embedded sub-package + +* Fri Aug 10 2007 Joe Orton 5.2.3-6 +- fix build with new glibc +- fix License + +* Mon Jul 16 2007 Joe Orton 5.2.3-5 +- define php_extdir in macros.php + +* Mon Jul 2 2007 Joe Orton 5.2.3-4 +- obsolete php-dbase + +* Tue Jun 19 2007 Joe Orton 5.2.3-3 +- add mcrypt, mhash, tidy, mssql subpackages (Dmitry Butskoy) +- enable dbase extension and package in -common + +* Fri Jun 8 2007 Joe Orton 5.2.3-2 +- update to 5.2.3 (thanks to Jeff Sheltren) + +* Wed May 9 2007 Joe Orton 5.2.2-4 +- fix php-pdo *_arg_force_ref global symbol abuse (#216125) + +* Tue May 8 2007 Joe Orton 5.2.2-3 +- rebuild against uw-imap-devel + +* Fri May 4 2007 Joe Orton 5.2.2-2 +- update to 5.2.2 +- synch changes from upstream recommended php.ini + +* Thu Mar 29 2007 Joe Orton 5.2.1-5 +- enable SASL support in LDAP extension (#205772) + +* Wed Mar 21 2007 Joe Orton 5.2.1-4 +- drop mime_magic extension (deprecated by php-pecl-Fileinfo) + +* Mon Feb 19 2007 Joe Orton 5.2.1-3 +- fix regression in str_{i,}replace (from upstream) + +* Thu Feb 15 2007 Joe Orton 5.2.1-2 +- update to 5.2.1 +- add Requires(pre) for httpd +- trim %%changelog to versions >= 5.0.0 + +* Thu Feb 8 2007 Joe Orton 5.2.0-10 +- bump default memory_limit to 32M (#220821) +- mark config files noreplace again (#174251) +- drop trailing dots from Summary fields +- use standard BuildRoot +- drop libtool15 patch (#226294) + +* Tue Jan 30 2007 Joe Orton 5.2.0-9 +- add php(api), php(zend-abi) provides (#221302) +- package /usr/share/php and append to default include_path (#225434) + +* Tue Dec 5 2006 Joe Orton 5.2.0-8 +- fix filter.h installation path +- fix php-zend-abi version (Remi Collet, #212804) + +* Tue Nov 28 2006 Joe Orton 5.2.0-7 +- rebuild again + +* Tue Nov 28 2006 Joe Orton 5.2.0-6 +- rebuild for net-snmp soname bump + +* Mon Nov 27 2006 Joe Orton 5.2.0-5 +- build json and zip shared, in -common (Remi Collet, #215966) +- obsolete php-json and php-pecl-zip +- build readline extension into /usr/bin/php* (#210585) +- change module subpackages to require php-common not php (#177821) + +* Wed Nov 15 2006 Joe Orton 5.2.0-4 +- provide php-zend-abi (#212804) +- add /etc/rpm/macros.php exporting interface versions +- synch with upstream recommended php.ini + +* Wed Nov 15 2006 Joe Orton 5.2.0-3 +- update to 5.2.0 (#213837) +- php-xml provides php-domxml (#215656) +- fix php-pdo-abi provide (#214281) + +* Tue Oct 31 2006 Joseph Orton 5.1.6-4 +- rebuild for curl soname bump +- add build fix for curl 7.16 API + +* Wed Oct 4 2006 Joe Orton 5.1.6-3 +- from upstream: add safety checks against integer overflow in _ecalloc + +* Tue Aug 29 2006 Joe Orton 5.1.6-2 +- update to 5.1.6 (security fixes) +- bump default memory_limit to 16M (#196802) + +* Wed Jul 12 2006 Jesse Keating - 5.1.4-8.1 +- rebuild + +* Fri Jun 9 2006 Joe Orton 5.1.4-8 +- Provide php-posix (#194583) +- only provide php-pcntl from -cli subpackage +- add missing defattr's (thanks to Matthias Saou) + +* Fri Jun 9 2006 Joe Orton 5.1.4-7 +- move Obsoletes for php-openssl to -common (#194501) +- Provide: php-cgi from -cli subpackage + +* Fri Jun 2 2006 Joe Orton 5.1.4-6 +- split out php-cli, php-common subpackages (#177821) +- add php-pdo-abi version export (#193202) + +* Wed May 24 2006 Radek Vokal 5.1.4-5.1 +- rebuilt for new libnetsnmp + +* Thu May 18 2006 Joe Orton 5.1.4-5 +- provide mod_php (#187891) +- provide php-cli (#192196) +- use correct LDAP fix (#181518) +- define _GNU_SOURCE in php_config.h and leave it defined +- drop (circular) dependency on php-pear + +* Mon May 8 2006 Joe Orton 5.1.4-3 +- update to 5.1.4 + +* Wed May 3 2006 Joe Orton 5.1.3-3 +- update to 5.1.3 + +* Tue Feb 28 2006 Joe Orton 5.1.2-5 +- provide php-api (#183227) +- add provides for all builtin modules (Tim Jackson, #173804) +- own %%{_libdir}/php/pear for PEAR packages (per #176733) +- add obsoletes to allow upgrade from FE4 PDO packages (#181863) + +* Fri Feb 10 2006 Jesse Keating - 5.1.2-4.3 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 5.1.2-4.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Jan 31 2006 Joe Orton 5.1.2-4 +- rebuild for new libc-client soname + +* Mon Jan 16 2006 Joe Orton 5.1.2-3 +- only build xmlreader and xmlwriter shared (#177810) + +* Fri Jan 13 2006 Joe Orton 5.1.2-2 +- update to 5.1.2 + +* Thu Jan 5 2006 Joe Orton 5.1.1-8 +- rebuild again + +* Mon Jan 2 2006 Joe Orton 5.1.1-7 +- rebuild for new net-snmp + +* Mon Dec 12 2005 Joe Orton 5.1.1-6 +- enable short_open_tag in default php.ini again (#175381) + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Thu Dec 8 2005 Joe Orton 5.1.1-5 +- require net-snmp for php-snmp (#174800) + +* Sun Dec 4 2005 Joe Orton 5.1.1-4 +- add /usr/share/pear back to hard-coded include_path (#174885) + +* Fri Dec 2 2005 Joe Orton 5.1.1-3 +- rebuild for httpd 2.2 + +* Mon Nov 28 2005 Joe Orton 5.1.1-2 +- update to 5.1.1 +- remove pear subpackage +- enable pdo extensions (php-pdo subpackage) +- remove non-standard conditional module builds +- enable xmlreader extension + +* Thu Nov 10 2005 Tomas Mraz 5.0.5-6 +- rebuilt against new openssl + +* Mon Nov 7 2005 Joe Orton 5.0.5-5 +- pear: update to XML_RPC 1.4.4, XML_Parser 1.2.7, Mail 1.1.9 (#172528) + +* Tue Nov 1 2005 Joe Orton 5.0.5-4 +- rebuild for new libnetsnmp + +* Wed Sep 14 2005 Joe Orton 5.0.5-3 +- update to 5.0.5 +- add fix for upstream #34435 +- devel: require autoconf, automake (#159283) +- pear: update to HTTP-1.3.6, Mail-1.1.8, Net_SMTP-1.2.7, XML_RPC-1.4.1 +- fix imagettftext et al (upstream, #161001) + +* Thu Jun 16 2005 Joe Orton 5.0.4-11 +- ldap: restore ldap_start_tls() function + +* Fri May 6 2005 Joe Orton 5.0.4-10 +- disable RPATHs in shared extensions (#156974) + +* Tue May 3 2005 Joe Orton 5.0.4-9 +- build simplexml_import_dom even with shared dom (#156434) +- prevent truncation of copied files to ~2Mb (#155916) +- install /usr/bin/php from CLI build alongside CGI +- enable sysvmsg extension (#142988) + +* Mon Apr 25 2005 Joe Orton 5.0.4-8 +- prevent build of builtin dba as well as shared extension + +* Wed Apr 13 2005 Joe Orton 5.0.4-7 +- split out dba and bcmath extensions into subpackages +- BuildRequire gcc-c++ to avoid AC_PROG_CXX{,CPP} failure (#155221) +- pear: update to DB-1.7.6 +- enable FastCGI support in /usr/bin/php-cgi (#149596) + +* Wed Apr 13 2005 Joe Orton 5.0.4-6 +- build /usr/bin/php with the CLI SAPI, and add /usr/bin/php-cgi, + built with the CGI SAPI (thanks to Edward Rudd, #137704) +- add php(1) man page for CLI +- fix more test cases to use -n when invoking php + +* Wed Apr 13 2005 Joe Orton 5.0.4-5 +- rebuild for new libpq soname + +* Tue Apr 12 2005 Joe Orton 5.0.4-4 +- bundle from PEAR: HTTP, Mail, XML_Parser, Net_Socket, Net_SMTP +- snmp: disable MSHUTDOWN function to prevent error_log noise (#153988) +- mysqli: add fix for crash on x86_64 (Georg Richter, upstream #32282) + +* Mon Apr 11 2005 Joe Orton 5.0.4-3 +- build shared objects as PIC (#154195) + +* Mon Apr 4 2005 Joe Orton 5.0.4-2 +- fix PEAR installation and bundle PEAR DB-1.7.5 package + +* Fri Apr 1 2005 Joe Orton 5.0.4-1 +- update to 5.0.4 (#153068) +- add .phps AddType to php.conf (#152973) +- better gcc4 fix for libxmlrpc + +* Wed Mar 30 2005 Joe Orton 5.0.3-5 +- BuildRequire mysql-devel >= 4.1 +- don't mark php.ini as noreplace to make upgrades work (#152171) +- fix subpackage descriptions (#152628) +- fix memset(,,0) in Zend (thanks to Dave Jones) +- fix various compiler warnings in Zend + +* Thu Mar 24 2005 Joe Orton 5.0.3-4 +- package mysqli extension in php-mysql +- really enable pcntl (#142903) +- don't build with --enable-safe-mode (#148969) +- use "Instant Client" libraries for oci8 module (Kai Bolay, #149873) + +* Fri Feb 18 2005 Joe Orton 5.0.3-3 +- fix build with GCC 4 + +* Wed Feb 9 2005 Joe Orton 5.0.3-2 +- install the ext/gd headers (#145891) +- enable pcntl extension in /usr/bin/php (#142903) +- add libmbfl array arithmetic fix (dcb314@hotmail.com, #143795) +- add BuildRequire for recent pcre-devel (#147448) + +* Wed Jan 12 2005 Joe Orton 5.0.3-1 +- update to 5.0.3 (thanks to Robert Scheck et al, #143101) +- enable xsl extension (#142174) +- package both the xsl and dom extensions in php-xml +- enable soap extension, shared (php-soap package) (#142901) +- add patches from upstream 5.0 branch: + * Zend_strtod.c compile fixes + * correct php_sprintf return value usage + +* Mon Nov 22 2004 Joe Orton 5.0.2-8 +- update for db4-4.3 (Robert Scheck, #140167) +- build against mysql-devel +- run tests in %%check + +* Wed Nov 10 2004 Joe Orton 5.0.2-7 +- truncate changelog at 4.3.1-1 +- merge from 4.3.x package: + - enable mime_magic extension and Require: file (#130276) + +* Mon Nov 8 2004 Joe Orton 5.0.2-6 +- fix dom/sqlite enable/without confusion + +* Mon Nov 8 2004 Joe Orton 5.0.2-5 +- fix phpize installation for lib64 platforms +- add fix for segfault in variable parsing introduced in 5.0.2 + +* Mon Nov 8 2004 Joe Orton 5.0.2-4 +- update to 5.0.2 (#127980) +- build against mysqlclient10-devel +- use new RTLD_DEEPBIND to load extension modules +- drop explicit requirement for elfutils-devel +- use AddHandler in default conf.d/php.conf (#135664) +- "fix" round() fudging for recent gcc on x86 +- disable sqlite pending audit of warnings and subpackage split + +* Fri Sep 17 2004 Joe Orton 5.0.1-4 +- don't build dom extension into 2.0 SAPI + +* Fri Sep 17 2004 Joe Orton 5.0.1-3 +- ExclusiveArch: x86 ppc x86_64 for the moment + +* Fri Sep 17 2004 Joe Orton 5.0.1-2 +- fix default extension_dir and conf.d/php.conf + +* Thu Sep 9 2004 Joe Orton 5.0.1-1 +- update to 5.0.1 +- only build shared modules once +- put dom extension in php-dom subpackage again +- move extension modules into %%{_libdir}/php/modules +- don't use --with-regex=system, it's ignored for the apache* SAPIs + +* Wed Aug 11 2004 Tom Callaway +- Merge in some spec file changes from Jeff Stern (jastern@uci.edu) + +* Mon Aug 09 2004 Tom Callaway +- bump to 5.0.0 +- add patch to prevent clobbering struct re_registers from regex.h +- remove domxml references, replaced with dom now built-in +- fix php.ini to refer to php5 not php4