From 5cfb7d04be2f311c7ceec24a57fdce04be60b371 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Fri, 14 Sep 2012 13:13:04 +0200 Subject: [PATCH] - rel 20 ; fix php 5.3 build --- php-db.patch | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++ php.spec | 4 +- 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 php-db.patch diff --git a/php-db.patch b/php-db.patch new file mode 100644 index 0000000..0c19599 --- /dev/null +++ b/php-db.patch @@ -0,0 +1,127 @@ +diff --git a/ext/dba/config.m4 b/ext/dba/config.m4 +index 8dc8f1d..4269b1c 100644 +--- a/ext/dba/config.m4 ++++ b/ext/dba/config.m4 +@@ -83,16 +83,16 @@ PHP_ARG_WITH(ndbm,, + [ --with-ndbm[=DIR] DBA: NDBM support], no, no) + + PHP_ARG_WITH(db4,, +-[ --with-db4[=DIR] DBA: Berkeley DB4 support], no, no) ++[ --with-db4[=DIR] DBA: Oracle Berkeley DB 4.x or 5.x support], no, no) + + PHP_ARG_WITH(db3,, +-[ --with-db3[=DIR] DBA: Berkeley DB3 support], no, no) ++[ --with-db3[=DIR] DBA: Oracle Berkeley DB 3.x support], no, no) + + PHP_ARG_WITH(db2,, +-[ --with-db2[=DIR] DBA: Berkeley DB2 support], no, no) ++[ --with-db2[=DIR] DBA: Oracle Berkeley DB 2.x support], no, no) + + PHP_ARG_WITH(db1,, +-[ --with-db1[=DIR] DBA: Berkeley DB1 support/emulation], no, no) ++[ --with-db1[=DIR] DBA: Oracle Berkeley DB 1.x support/emulation], no, no) + + PHP_ARG_WITH(dbm,, + [ --with-dbm[=DIR] DBA: DBM support], no, no) +@@ -210,7 +210,7 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[ + ],[ + AC_EGREP_CPP(yes,[ + #include "$THIS_INCLUDE" +-#if DB_VERSION_MAJOR == $1 ++#if DB_VERSION_MAJOR == $1 || ($1 == 4 && DB_VERSION_MAJOR == 5) + yes + #endif + ],[ +@@ -233,7 +233,7 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[ + AC_MSG_CHECKING([for DB4 minor version and patch level]) + AC_EGREP_CPP(yes,[ + #include "$THIS_INCLUDE" +-#if DB_VERSION_MINOR != 1 || DB_VERSION_PATCH >= 25 ++#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR != 1) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 1 && DB_VERSION_PATCH >= 25) + yes + #endif + ],[ +@@ -274,12 +274,25 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[ + # DB4 + if test "$PHP_DB4" != "no"; then + PHP_DBA_STD_BEGIN +- dbdp="/usr/local/BerkeleyDB.4." +- for i in $PHP_DB4 ${dbdp}8 ${dbdp}7 ${dbdp}6 ${dbdp}5 ${dbdp}4 ${dbdp}3 ${dbdp}2 ${dbdp}1 ${dbdp}0 /usr/local /usr; do +- if test -f "$i/db4/db.h"; 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.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 +@@ -314,7 +327,7 @@ if test "$PHP_DB4" != "no"; then + break + fi + done +- PHP_DBA_DB_CHECK(4, 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-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)]) + fi + PHP_DBA_STD_RESULT(db4,Berkeley DB4) + +diff --git a/ext/dba/dba_db4.c b/ext/dba/dba_db4.c +index 6bf0095..a75d438 100644 +--- a/ext/dba/dba_db4.c ++++ b/ext/dba/dba_db4.c +@@ -37,25 +37,26 @@ + #endif + + static void php_dba_db4_errcall_fcn( +-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3) ++#if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)) + const DB_ENV *dbenv, + #endif + const char *errpfx, const char *msg) + { + TSRMLS_FETCH(); + +-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8 && DB_VERSION_PATCH <= 26) ++#if (DB_VERSION_MAJOR == 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8)) + /* Bug 51086, Berkeley DB 4.8.26 */ +-/* This code suppresses a BDB 4.8 error message that BDB incorrectly emits */ ++/* This code suppresses a BDB 4.8+ error message, thus keeping PHP test compatibility */ + { + char *function = get_active_function_name(TSRMLS_C); + if (function && (!strcmp(function,"dba_popen") || !strcmp(function,"dba_open")) +- && !strncmp(msg, "fop_read_meta", sizeof("fop_read_meta")-1)) { ++ && (!strncmp(msg, "fop_read_meta", sizeof("fop_read_meta")-1) ++ || !strncmp(msg, "BDB0004 fop_read_meta", sizeof("BDB0004 fop_read_meta")-1))) { + return; + } + } + #endif +- ++ + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s%s", errpfx?errpfx:"", msg); + } + +@@ -124,7 +125,7 @@ DBA_OPEN_FUNC(db4) + if ((err=db_create(&dbp, NULL, 0)) == 0) { + dbp->set_errcall(dbp, php_dba_db4_errcall_fcn); + if ( +-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) ++#if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)) + (err=dbp->open(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) { + #else + (err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) { + diff --git a/php.spec b/php.spec index cddd8bd..5c83801 100644 --- a/php.spec +++ b/php.spec @@ -120,7 +120,7 @@ Summary(ru.UTF-8): PHP Версии 5 - язык препроцессирова Summary(uk.UTF-8): PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері Name: %{orgname}%{php_suffix} Version: 5.2.17 -Release: 19 +Release: 20 Epoch: 4 License: PHP Group: Libraries @@ -204,6 +204,7 @@ Patch60: bug-60986.patch # http://spot.fedorapeople.org/php-5.3.6-libzip.patch Patch65: system-libzip.patch Patch66: bug-47930.patch +Patch67: php-db.patch # CENTALT patches # CVE Patch201: php-5.2.17-CVE-2011-2202.patch @@ -1985,6 +1986,7 @@ done %patch60 -p4 %{?with_system_libzip:%patch65 -p1} %patch66 -p2 +%patch67 -p1 %patch201 -p1 -b .CVE-2011-2202 %patch202 -p1 -b .CVE-2011-1938 -- 2.44.0