Hi Anatol! On 19.08.2016 at 13:17, Anatol Belski wrote:
> Hi Christoph, > >> -----Original Message----- >> From: Christoph Michael Becker [mailto:c...@php.net] >> Sent: Friday, August 19, 2016 11:42 AM >> To: php-...@lists.php.net >> Subject: [PHP-CVS] com php-src: Fix dba configuration for Windows: >> ext/dba/config.w32 >> >> Commit: ad76e8a529eabf150f17d313bb035b329bc68dec >> Author: Christoph M. Becker <cmbecke...@gmx.de> Fri, 19 Aug 2016 >> 11:42:16 +0200 >> Parents: bc1214f25e7c9525336b34e09aec1f1db82b9894 >> Branches: PHP-5.6 PHP-7.0 PHP-7.1 master >> >> Link: http://git.php.net/?p=php- >> src.git;a=commitdiff;h=ad76e8a529eabf150f17d313bb035b329bc68dec >> >> Log: >> Fix dba configuration for Windows >> >> To be able to build the dba extension on Windows, libdb was required. This is >> contrary to *nix where each handler can be configured individually. To avoid >> BC >> breaks, we only do minimal modifications, instead of adjusting the Windows >> configuration to match the *nix configuration, for now. >> >> Changed paths: >> M ext/dba/config.w32 >> >> >> Diff: >> diff --git a/ext/dba/config.w32 b/ext/dba/config.w32 index 4f3514e..c747323 >> 100644 >> --- a/ext/dba/config.w32 >> +++ b/ext/dba/config.w32 >> @@ -4,15 +4,16 @@ >> ARG_WITH("dba", "DBA support", "no"); >> >> if (PHP_DBA != "no") { >> + EXTENSION("dba", "dba.c dba_cdb.c dba_db1.c dba_db2.c dba_db3.c >> dba_dbm.c dba_flatfile.c dba_gdbm.c dba_ndbm.c dba_inifile.c"); >> + ADD_SOURCES("ext/dba/libcdb", "cdb.c cdb_make.c uint32.c", "dba"); >> + ADD_SOURCES("ext/dba/libflatfile", "flatfile.c", "dba"); >> + ADD_SOURCES("ext/dba/libinifile", "inifile.c", "dba"); >> + AC_DEFINE('HAVE_DBA', 1, 'DBA support'); >> + ADD_FLAG("CFLAGS_DBA", "/D DBA_FLATFILE=1 /D DBA_CDB=1 /D >> +DBA_CDB_MAKE=1 /D DBA_CDB_BUILTIN=1 /D DBA_INIFILE=1"); >> if (CHECK_LIB("libdb31s.lib", "dba", PHP_DBA) && >> CHECK_HEADER_ADD_INCLUDE("db.h", "CFLAGS_DBA")) { >> - EXTENSION("dba", "dba.c dba_cdb.c dba_db1.c dba_db2.c >> dba_db3.c dba_dbm.c dba_flatfile.c dba_gdbm.c dba_ndbm.c dba_inifile.c"); >> - ADD_SOURCES("ext/dba/libcdb", "cdb.c cdb_make.c uint32.c", >> "dba"); >> - ADD_SOURCES("ext/dba/libflatfile", "flatfile.c", "dba"); >> - ADD_SOURCES("ext/dba/libinifile", "inifile.c", "dba"); >> - AC_DEFINE('HAVE_DBA', 1, 'DBA support'); >> - ADD_FLAG("CFLAGS_DBA", "/D DBA_DB1=0 /D >> DB1_VERSION=\"\\\"Berkeley DB 1.85 emulation in DB3\\\"\" /D >> DB1_INCLUDE_FILE=\"\\\"db_185.h\\\"\" /D DBA_DB3=1 /D >> DB3_INCLUDE_FILE=\"\\\"db.h\\\"\" /D DBA_FLATFILE=1 /D DBA_CDB=1 /D >> DBA_CDB_MAKE=1 /D DBA_CDB_BUILTIN=1 /D DBA_INIFILE=1"); >> - } else { >> - WARNING("dba not enabled; libraries and headers not found"); >> + ADD_FLAG("CFLAGS_DBA", "/D DBA_DB1=0 /D >> DB1_VERSION=\"\\\"Berkeley DB 1.85 emulation in DB3\\\"\" /D >> DB1_INCLUDE_FILE=\"\\\"db_185.h\\\"\" /D DBA_DB3=1 /D >> DB3_INCLUDE_FILE=\"\\\"db.h\\\"\""); >> + } else if (PHP_DBA != "yes") { >> + WARNING("dba: db handlers not enabled; libraries and headers >> not >> +found"); >> } >> } > > I'm not sure it's ok to suddenly change this for stable branches, and even > not sure with 7.1. Effectively no builds for this were provided since 5.3, if > I don't err. Yes, you're right. > So from the QA perspective, it's quite a risky move. > It should go by master, so we have time to catch up with bugs, deps and users > to start testing and using it again. This appears to be a chicken-and-egg problem. Currently, there are several known issues wrt. to the flatfile and inifile drivers on Windows. These drivers will be enabled as soon as libdb3.1s (or libdb6.1 as of PHP 7.0.0) are available. Users may than experience these issues. However, it is not possible to test (and debug) with dba, if the libs are not available (unless one modifies config.w32), and it may be hard to get the respective libdb binaries. There may, however, dba_php.dlls available from third-party sites. Anyhow, if you still think the commit should only go to master, I can revert the changes. Or feel free to do so yourself. :-) -- Christoph M. Becker -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php