7.1.0RC4
This commit is contained in:
parent
e0a51599b8
commit
ad59d31f50
@ -2,6 +2,7 @@ Add support for use of the system timezone database, rather
|
|||||||
than embedding a copy. Discussed upstream but was not desired.
|
than embedding a copy. Discussed upstream but was not desired.
|
||||||
|
|
||||||
History:
|
History:
|
||||||
|
r14: improve check for valid tz file
|
||||||
r13: adapt for upstream changes to use PHP allocator
|
r13: adapt for upstream changes to use PHP allocator
|
||||||
r12: adapt for upstream changes for new zic
|
r12: adapt for upstream changes for new zic
|
||||||
r11: use canonical names to avoid more case sensitivity issues
|
r11: use canonical names to avoid more case sensitivity issues
|
||||||
@ -21,10 +22,10 @@ r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert)
|
|||||||
r2: add filesystem trawl to set up name alias index
|
r2: add filesystem trawl to set up name alias index
|
||||||
r1: initial revision
|
r1: initial revision
|
||||||
|
|
||||||
diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/lib/parse_tz.c
|
diff -up php-7.1.0RC4/ext/date/lib/parse_tz.c.systzdata php-7.1.0RC4/ext/date/lib/parse_tz.c
|
||||||
--- php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata 2015-08-18 23:39:24.000000000 +0200
|
--- php-7.1.0RC4/ext/date/lib/parse_tz.c.systzdata 2016-10-17 13:35:11.000000000 +0200
|
||||||
+++ php-7.0.0RC1/ext/date/lib/parse_tz.c 2015-08-22 07:54:38.097258458 +0200
|
+++ php-7.1.0RC4/ext/date/lib/parse_tz.c 2016-10-17 13:40:47.806358674 +0200
|
||||||
@@ -20,6 +20,16 @@
|
@@ -24,6 +24,16 @@
|
||||||
|
|
||||||
#include "timelib.h"
|
#include "timelib.h"
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#ifdef HAVE_LOCALE_H
|
#ifdef HAVE_LOCALE_H
|
||||||
@@ -32,8 +42,12 @@
|
@@ -36,8 +46,12 @@
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -54,7 +55,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
|
|
||||||
#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
|
#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
|
||||||
# if defined(__LITTLE_ENDIAN__)
|
# if defined(__LITTLE_ENDIAN__)
|
||||||
@@ -55,6 +69,11 @@ static int read_preamble(const unsigned
|
@@ -59,6 +73,11 @@ static int read_preamble(const unsigned
|
||||||
{
|
{
|
||||||
uint32_t version;
|
uint32_t version;
|
||||||
|
|
||||||
@ -66,7 +67,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
/* read ID */
|
/* read ID */
|
||||||
version = (*tzf)[3] - '0';
|
version = (*tzf)[3] - '0';
|
||||||
*tzf += 4;
|
*tzf += 4;
|
||||||
@@ -298,7 +317,418 @@ void timelib_dump_tzinfo(timelib_tzinfo
|
@@ -302,7 +321,429 @@ void timelib_dump_tzinfo(timelib_tzinfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,6 +286,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
+ && strcmp(ent->d_name, "posix") != 0
|
+ && strcmp(ent->d_name, "posix") != 0
|
||||||
+ && strcmp(ent->d_name, "posixrules") != 0
|
+ && strcmp(ent->d_name, "posixrules") != 0
|
||||||
+ && strcmp(ent->d_name, "right") != 0
|
+ && strcmp(ent->d_name, "right") != 0
|
||||||
|
+ && strstr(ent->d_name, ".list") == NULL
|
||||||
+ && strstr(ent->d_name, ".tab") == NULL;
|
+ && strstr(ent->d_name, ".tab") == NULL;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@ -425,8 +427,18 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
+
|
+
|
||||||
+/* Returns true if the passed-in stat structure describes a
|
+/* Returns true if the passed-in stat structure describes a
|
||||||
+ * probably-valid timezone file. */
|
+ * probably-valid timezone file. */
|
||||||
+static int is_valid_tzfile(const struct stat *st)
|
+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;
|
+ return S_ISREG(st->st_mode) && st->st_size > 20;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@ -464,11 +476,11 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone));
|
+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone));
|
||||||
+
|
+
|
||||||
+ fd = open(fname, O_RDONLY);
|
+ fd = open(fname, O_RDONLY);
|
||||||
+ if (fd == -1) {
|
+ if (fd == -1) {
|
||||||
+ return NULL;
|
+ return NULL;
|
||||||
+ } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st)) {
|
+ } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) {
|
||||||
+ close(fd);
|
+ close(fd);
|
||||||
+ return NULL;
|
+ return NULL;
|
||||||
+ }
|
+ }
|
||||||
@ -486,7 +498,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
{
|
{
|
||||||
int left = 0, right = tzdb->index_size - 1;
|
int left = 0, right = tzdb->index_size - 1;
|
||||||
#ifdef HAVE_SETLOCALE
|
#ifdef HAVE_SETLOCALE
|
||||||
@@ -337,21 +767,88 @@ static int seek_to_tz_position(const uns
|
@@ -341,21 +782,88 @@ static int seek_to_tz_position(const uns
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -568,7 +580,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
+
|
+
|
||||||
+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone));
|
+ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone));
|
||||||
+
|
+
|
||||||
+ return stat(fname, &st) == 0 && is_valid_tzfile(&st);
|
+ return stat(fname, &st) == 0 && is_valid_tzfile(&st, 0);
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
@ -576,7 +588,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
|
static void skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
|
||||||
@@ -376,24 +873,54 @@ static void read_64bit_header(const unsi
|
@@ -380,24 +888,54 @@ static void read_64bit_header(const unsi
|
||||||
timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb)
|
timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb)
|
||||||
{
|
{
|
||||||
const unsigned char *tzf;
|
const unsigned char *tzf;
|
||||||
@ -640,13 +652,13 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
} else {
|
} else {
|
||||||
tmp = NULL;
|
tmp = NULL;
|
||||||
}
|
}
|
||||||
diff -up php-7.0.0RC1/ext/date/lib/timelib.m4.systzdata php-7.0.0RC1/ext/date/lib/timelib.m4
|
diff -up php-7.1.0RC4/ext/date/lib/timelib.m4.systzdata php-7.1.0RC4/ext/date/lib/timelib.m4
|
||||||
--- php-7.0.0RC1/ext/date/lib/timelib.m4.systzdata 2015-08-18 23:39:24.000000000 +0200
|
--- php-7.1.0RC4/ext/date/lib/timelib.m4.systzdata 2016-10-17 13:40:47.807358679 +0200
|
||||||
+++ php-7.0.0RC1/ext/date/lib/timelib.m4 2015-08-22 07:47:34.854055364 +0200
|
+++ php-7.1.0RC4/ext/date/lib/timelib.m4 2016-10-17 13:42:06.304743330 +0200
|
||||||
@@ -78,3 +78,17 @@ stdlib.h
|
@@ -78,3 +78,16 @@ stdlib.h
|
||||||
|
|
||||||
dnl Check for strtoll, atoll
|
dnl Check for strtoll, atoll
|
||||||
AC_CHECK_FUNCS(strtoll atoll strftime)
|
AC_CHECK_FUNCS(strtoll atoll strftime gettimeofday)
|
||||||
+
|
+
|
||||||
+PHP_ARG_WITH(system-tzdata, for use of system timezone data,
|
+PHP_ARG_WITH(system-tzdata, for use of system timezone data,
|
||||||
+[ --with-system-tzdata[=DIR] to specify use of system timezone data],
|
+[ --with-system-tzdata[=DIR] to specify use of system timezone data],
|
||||||
@ -660,4 +672,3 @@ diff -up php-7.0.0RC1/ext/date/lib/timelib.m4.systzdata php-7.0.0RC1/ext/date/li
|
|||||||
+ [Define for location of system timezone data])
|
+ [Define for location of system timezone data])
|
||||||
+ fi
|
+ fi
|
||||||
+fi
|
+fi
|
||||||
+
|
|
8
php.spec
8
php.spec
@ -58,7 +58,7 @@
|
|||||||
%global db_devel libdb-devel
|
%global db_devel libdb-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global rcver RC3
|
%global rcver RC4
|
||||||
%global rpmrel 1
|
%global rpmrel 1
|
||||||
|
|
||||||
Summary: PHP scripting language for creating dynamic web sites
|
Summary: PHP scripting language for creating dynamic web sites
|
||||||
@ -100,7 +100,7 @@ Patch8: php-7.0.2-libdb.patch
|
|||||||
|
|
||||||
# Functional changes
|
# Functional changes
|
||||||
Patch40: php-7.0.0-dlopen.patch
|
Patch40: php-7.0.0-dlopen.patch
|
||||||
Patch42: php-7.0.0-systzdata-v13.patch
|
Patch42: php-7.1.0-systzdata-v14.patch
|
||||||
# See http://bugs.php.net/53436
|
# See http://bugs.php.net/53436
|
||||||
Patch43: php-5.4.0-phpize.patch
|
Patch43: php-5.4.0-phpize.patch
|
||||||
# Use -lldap_r for OpenLDAP
|
# Use -lldap_r for OpenLDAP
|
||||||
@ -1490,6 +1490,10 @@ rm -f README.{Zeus,QNX,CVS-RULES}
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Oct 17 2016 Remi Collet <remi@fedoraproject.org> 7.1.0-0.1.RC4
|
||||||
|
- Update to 7.1.0RC4
|
||||||
|
- update tzdata patch to v14, improve check for valid tz file
|
||||||
|
|
||||||
* Tue Oct 11 2016 Remi Collet <remi@fedoraproject.org> 7.1.0-0.1.RC3
|
* Tue Oct 11 2016 Remi Collet <remi@fedoraproject.org> 7.1.0-0.1.RC3
|
||||||
- Update to 7.1.0RC3
|
- Update to 7.1.0RC3
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user