php5-5.4.17 and php5-pdo_dblib upgrade brakes MSSQL connections
bw.mail.lists
bw.mail.lists at gmail.com
Fri Jul 26 15:47:40 UTC 2013
Hello list,
Today I upgraded to php5-5.4.17 which broke the web pages because
connections to MSSQL servers were failing, /var/log/httpd-error.log:
/usr/local/lib/php/20100525/pdo_dblib.so: Undefined symbol "DBSETLDBNAME"
This is a php bug: https://bugs.php.net/bug.php?id=65219
What I did was REPLACE the file
/usr/ports/databases/php5-pdo_dblib/files/patch-dblib_driver.c with the
following contents, then recompile:
===========
--- dblib_driver.c.orig 2013-07-26 16:26:43.986888682 +0200
+++ dblib_driver.c 2013-07-26 16:33:27.930888754 +0200
@@ -274,9 +274,9 @@
,{"5.0",DBVERSION_70} /* FIXME: This does not work with
Sybase, but environ will */
,{"6.0",DBVERSION_70}
,{"7.0",DBVERSION_70}
- ,{"7.1",DBVERSION_71}
- ,{"7.2",DBVERSION_72}
- ,{"8.0",DBVERSION_72}
+ ,{"7.1",DBVERSION_80}
+ ,{"7.2",DBVERSION_80}
+ ,{"8.0",DBVERSION_80}
,{"10.0",DBVERSION_100}
,{"auto",0} /* Only works with FreeTDS. Other drivers
will bork */
@@ -346,6 +346,12 @@
DBSETLAPP(H->login, vars[1].optval);
+#ifdef DBSETLDBNAME
+ if (vars[3].optval) {
+ DBSETLDBNAME(H->login, vars[3].optval);
+ }
+#endif
+
H->link = dbopen(H->login, vars[2].optval);
if (!H->link) {
@@ -361,10 +367,6 @@
/* allow double quoted indentifiers */
DBSETOPT(H->link, DBQUOTEDIDENT, "1");
- if (vars[3].optval) {
- DBSETLDBNAME(H->login, vars[3].optval);
- }
-
ret = 1;
dbh->max_escaped_char_length = 2;
dbh->alloc_own_columns = 1;
===========
Basically applied the patch from the php bug linked above to the
php-5.4.17 dist file. Website works now. Note that I'm not really sure
what the patch is affecting.
I can't submit a proper PR now, will do it if no one else does in the
next 24 hours or so, just wanted to let people know in case someone else
hits this problem.
More information about the freebsd-ports
mailing list