First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 223891
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: PHP Bugs <php-bugs@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Matthias Sch. <matthias@dsx.at>
Add CC:
CC:
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
pdo_dblib-freetds-compat.patch fix pdo_dblib error patch Matthias Sch. 2008-07-17 08:16 0000 1.90 KB Details | Diff
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 223891 depends on: Show dependency tree
Show dependency graph
Bug 223891 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)







View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2008-05-27 20:12 0000
please include in portage!


Reproducible: Always

Steps to Reproduce:

------- Comment #1 From Jeroen Roovers 2008-05-27 21:00:33 0000 -------
Seems important:

Version 0.82 Released

Version 0.82 is now available from ftp.ibiblio.org. This is a major release,
almost two years in the making. See NEWS and ChangeLog-0.82, included in the
distribution, for details. (8 May 2008)

------- Comment #2 From Matthias Sch. 2008-07-14 08:44:00 0000 -------
hi!

is there any way to help maintaining this package?

thank you, mat

------- Comment #3 From Christian Hoffmann 2008-07-14 12:54:18 0000 -------
Yes, you could try and see if a simple ebuild rename is sufficient for this
version bump, and if not, you could try to findout what to change.
The main problem for me is that I have no means of testing this, and I don't
really want to commit completely untested stuff to the tree.

So, if you want to test or even proxy-maintain [1] this package, this would be
great. :)

[1] http://dev.gentoo.org/~antarus/projects/proxy-maint/

------- Comment #4 From Matthias Sch. 2008-07-14 13:06:29 0000 -------
i just renamed the ebuild and emerged it...

i'm testing it since i opened the bug with a lot of traffic on my web
application...

works without a probelm...

please tell me if you want more info!
and: yes, i'm interested in proxy-maintaining this package

------- Comment #5 From Christian Hoffmann 2008-07-14 14:29:51 0000 -------
Thanks for the testing, I've just committed it to the tree. I did some
stylistic and build-related cleanups myself, so it would be cool if you could
just re-merge it again (using the version I just committed) and change this bug
to "VERIFIED" if everything works as expected. :)

If you are interested in proxy-maintaining (which would be great!) then please
contact me using mail or IRC (Freenode, #gentoo-php / hoffie).

Thanks again. :)

------- Comment #6 From Matthias Sch. 2008-07-14 16:14:50 0000 -------
something is wrong... i emerged freetds without errors but php emerge fails:

checking for MSSQL support via FreeTDS... yes
configure: error: Cannot find FreeTDS in known installation directories

 *
 * ERROR: dev-lang/php-5.2.6-r2 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 4371:  Called src_compile_normal
 *             environment, line 4482:  Called php5_2-sapi_src_compile
 *             environment, line 3411:  Called die
 * The specific snippet of code:
 *       ./configure --prefix=${destdir} --host=${CHOST}
--mandir=${destdir}/man --infodir=${destdir}/info --sysconfdir=/etc
--cache-file=./config.cache ${my_conf} ${EXTRA_ECONF} || die "configure
failed";
 *  The die message:
 *   configure failed
 *
 * If you need support, post the topmost build error, and the call stack if
relevant.
 * A complete build log is located at
'/var/tmp/portage/dev-lang/php-5.2.6-r2/temp/build.log'.
 * The ebuild environment file is located at
'/var/tmp/portage/dev-lang/php-5.2.6-r2/temp/environment'.
 *

[ebuild     U ] dev-lang/php-5.2.6-r2 [5.2.6_rc4] USE="apache2 berkdb bzip2
calendar cgi cli crypt ctype curl doc filter flatfile ftp gd gdbm gmp hash
iconv imap inifile iodbc json kerberos ldap mssql mysql mysqli ncurses nls odbc
pcntl pcre pdo postgres readline reflection session simplexml soap sockets
spell spl tidy tokenizer truetype unicode wddx xml xmlreader xmlrpc xmlwriter
xsl zip zlib -adabas -bcmath -birdstep -cdb -cjk -concurrentmodphp
-curlwrappers -db2 -dbase -dbmaker -debug -discard-path -empress -empress-bcs
-esoob -exif -fastbuild -fdftk -firebird -force-cgi-redirect -frontbase
-gd-external -interbase -ipv6 (-java-external) -kolab% -ldap-sasl -libedit
-mcve -mhash -msql -oci8 -oci8-instant-client -pic -posix -qdbm -recode -sapdb
-sharedext -sharedmem -snmp -solid -sqlite -ssl -suhosin -sybase -sybase-ct
-sysvipc -threads -xpm -yaz -zip-external" 0 kB

------- Comment #7 From Christian Hoffmann 2008-07-14 18:47:13 0000 -------
I just hardmasked it... I don't see how this could work with php. I just tried
copying the 0.64 ebuild and it did not install tds.h (and libtds.so?) either,
so apparently there have been some upstream changes which break compatibility.

No idea what to do now; unless I messed up something w/ the build system, I
think that php in it's current state is simply not compatible with recent
versions of tds and as such would need patching.

------- Comment #8 From Matthias Sch. 2008-07-15 07:10:23 0000 -------
php actually seraches for tds.h...
but after (re-)emerge freetds i can not find any tds.h and libtds.a|so on my
system:
--- replaced obj /usr/include/tds_sysdep_public.h
--- replaced obj /usr/include/sybfront.h
--- replaced obj /usr/include/syberror.h
--- replaced obj /usr/include/sybdb.h
--- replaced obj /usr/include/sqlfront.h
--- replaced obj /usr/include/sqldb.h
--- replaced obj /usr/include/ctpublic.h
--- replaced obj /usr/include/cstypes.h
--- replaced obj /usr/include/cspublic.h
--- replaced obj /usr/include/bkpublic.h

but:
when i emerge 0.64 these files are existing...
--- replaced obj /usr/lib/libtdssrv.so.2.0.0
--- replaced sym /usr/lib/libtdssrv.so.2
--- replaced sym /usr/lib/libtdssrv.so
--- replaced obj /usr/lib/libtdssrv.la
--- replaced obj /usr/lib/libtdssrv.a
--- replaced obj /usr/lib/libtdsodbc.so.0.0.0
--- replaced sym /usr/lib/libtdsodbc.so.0
--- replaced sym /usr/lib/libtdsodbc.so
--- replaced obj /usr/lib/libtdsodbc.la
--- replaced obj /usr/lib/libtdsodbc.a
--- replaced obj /usr/lib/libtds.so.5.0.0
--- replaced sym /usr/lib/libtds.so.5
--- replaced sym /usr/lib/libtds.so
--- replaced obj /usr/lib/libtds.la
--- replaced obj /usr/lib/libtds.a
--- replaced obj /usr/lib/libsybdb.so.5.0.0
--- replaced sym /usr/lib/libsybdb.so.5
--- replaced sym /usr/lib/libsybdb.so
--- replaced obj /usr/lib/libsybdb.la
--- replaced obj /usr/lib/libsybdb.a
--- replaced obj /usr/lib/libct.so.4.0.0
--- replaced sym /usr/lib/libct.so.4
--- replaced sym /usr/lib/libct.so
--- replaced obj /usr/lib/libct.la
--- replaced obj /usr/lib/libct.a
--- replaced dir /usr/lib
--- replaced obj /usr/include/tdsver.h
--- replaced obj /usr/include/tdssrv.h
--- replaced obj /usr/include/tdsconvert.h
--- replaced obj /usr/include/tds_sysdep_public.h
--- replaced obj /usr/include/tds.h
--- replaced obj /usr/include/sybfront.h
--- replaced obj /usr/include/syberror.h
--- replaced obj /usr/include/sybdb.h
--- replaced obj /usr/include/sqlfront.h
--- replaced obj /usr/include/sqldb.h
--- replaced obj /usr/include/ctpublic.h
--- replaced obj /usr/include/cstypes.h
--- replaced obj /usr/include/cspublic.h
--- replaced obj /usr/include/bkpublic.h

but while ebuilding, these files exist in version 0.82 too:
./include/tds.h
./src/tds/libtds.la

maybe the ebuild does not copy these files?

------- Comment #9 From Matthias Sch. 2008-07-16 07:35:40 0000 -------
freetds was redesigned :-(
http://bugs.php.net/bug.php?id=44991

------- Comment #10 From Matthias Sch. 2008-07-16 08:48:24 0000 -------
SOLUTION:

found on http://www.freetds.org/news.html:
 > PHP tests for a FreeTDS installation by looking for files that FreeTDS no
 > longer installs. To assure PHP that FreeTDS is installed, create two files
 > where FreeTDS was installed e.g.:
 >    $ touch /usr/include/tds.h
 >    $ touch /usr/lib/libtds.a

tested with:
[ebuild   R   ] dev-lang/php-5.2.6_rc4  USE="apache2 berkdb bzip2 calendar cgi
cli crypt ctype curl doc filter flatfile ftp gd gdbm gmp hash iconv imap
inifile iodbc json kerberos ldap mssql mysql mysqli ncurses nls odbc pcntl pcre
pdo postgres readline reflection session simplexml soap sockets spell spl tidy
tokenizer truetype unicode wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib"

works without troubles!

could you include these 2 commands in the ebuild for compatibility? then
everything would be fine...

------- Comment #11 From Christian Hoffmann 2008-07-16 19:15:09 0000 -------
Thanks for those hints again. I don't think it is a good idea to install these
pseudo-files (as they're empty), it rather looks like an ugly hack. Installing
the files from the source directory would be better, but I don't really want to
diverge from upstream if not necessary.
That's why I chose to fix php instead by applying the patch from freetds
upstream (as you linked it).
So, can you please try building =dev-lang/php-5.2.6-r3 from php-testing overlay
(see layman, or manually use http://overlays.gentoo.org/svn/proj/php/testing
(SVN)) against =dev-db/freetds-0.82-r1 (I just committed it, it has some
changes regarding configure option handling specific to odbc)?

Compiling the mentioned php version against freetds-0.64 and freetds-0.82*
works fine in both cases, so it shouldn't break backwards compatibility. As
already noted, I cannot do anything else than compile-testing, so any
real-world tests would be nice to have. :)

------- Comment #12 From Matthias Sch. 2008-07-17 06:51:36 0000 -------
updated freetds -> ok!

tried to compile php:
checking whether to enable PDO support... yes
checking for PDO_DBLIB support via FreeTDS... yes
configure: error: Cannot find FreeTDS in known installation directories

i think i have seen file-checks for tds.h and libtds.la in the pdo-dblib
section too...

to reproduce:
compile php with these usefalgs:
[ebuild     U ] dev-lang/php-5.2.6-r4 [5.2.6-r2] USE="apache2 berkdb bzip2
calendar cgi cli crypt ctype curl doc filter flatfile ftp gd gdbm gmp hash
iconv imap inifile json kerberos ldap mssql mysql mysqli ncurses nls odbc pcntl
pcre pdo postgres readline reflection session simplexml soap sockets spell spl
tidy tokenizer truetype unicode wddx xml xmlreader xmlrpc xmlwriter xsl zip
zlib -adabas -bcmath -birdstep -cdb -cjk -concurrentmodphp -curlwrappers -db2
-dbase -dbmaker -debug -discard-path -empress -empress-bcs -esoob -exif
-fastbuild -fdftk -firebird -force-cgi-redirect -frontbase -gd-external
-interbase -iodbc -ipv6 (-java-external) -kolab -ldap-sasl -libedit -mcve
-mhash -msql -oci8 -oci8-instant-client -pic -posix -qdbm -recode -sapdb
-sharedext -sharedmem -snmp -solid -sqlite -ssl -suhosin -sybase -sybase-ct
-sysvipc -threads -xpm -yaz -zip-external" 0 kB

------- Comment #13 From Matthias Sch. 2008-07-17 08:16:48 0000 -------
Created an attachment (id=160623) [edit]
fix pdo_dblib error

please check and include this in php-patchset...

------- Comment #14 From Matthias Sch. 2008-07-17 09:35:43 0000 -------
compiled dev-lang/php-5.2.6-r4 with my patch and everything works!

also did some heavy-load tests on my 2 production servers -> everything works!

------- Comment #15 From Christian Hoffmann 2008-07-17 10:01:42 0000 -------
Thanks for the patch, this is now in the overlay as php-5.2.6-r5. If this works
for you, I'll move it to the main tree.
Tested the patch w/ both freetds-0.64 and freetds-0.82-r1.

------- Comment #16 From Matthias Sch. 2008-07-17 10:56:07 0000 -------
everything works fine!
no errors found!
performance great!

i think you can move it...

------- Comment #17 From Matthias Sch. 2008-07-17 11:07:11 0000 -------
btw. unmask freetds ;-)

------- Comment #18 From Christian Hoffmann 2008-07-17 13:56:09 0000 -------
Moved to the tree, freetds unmasked, thanks. :)

------- Comment #19 From Christian Hoffmann 2008-07-17 13:56:40 0000 -------
Meh, fixing status/resolution.

First Last Prev Next    No search results available      Search page      Enter new bug