Date: Sat, 3 Feb 2007 19:58:22 GMT From: Robert Inder <robert@interactive.co.uk> To: freebsd-questions@freebsd.org Subject: Port upgrade/install problem: MySQL and Perl I/F Message-ID: <200702031958.l13JwMH9068140@auk.3lg.org>
next in thread | raw e-mail | index | archive | help
p5-DBD-mysql50 and mysql itself Date: 03 Feb 2007 19:58:22 +0000 Message-ID: <f514pq3dndt.fsf@3lg.org> Lines: 128 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I've upgraded Perl (via "portupgrade"), but the ports I need to re-install to restore my perl-to-MySQL interface won't! I'm working on a rather long-neglected server running FreeBSD 5.2.1-RELEASE-p7 FreeBSD 5.2.1-RELEASE-p7 It was running Perl 5.6, but I'm trying to install some code that needs 5.8. So I did "cvsup" and then portupgrade -o lang/perl5.8 perl All went smoothly, and "perl-after-upgrade" gave me a list of perl packages to re-install, and I did "portupgrade" on each of them. Super! EXCEPT for the Perl to MySQL interface package: p5-DBD-mysql50 This is causing me two problems. Currently, "mysql" is installed and working. # pkg_info -Ia | grep mysql mysql-client-5.0.0_2 Multithreaded SQL database (client) mysql-server-5.0.0_2 Multithreaded SQL database (server) When I try to portupgrade the perl interface, it starts trying to build mysql for itself, even without a "-R" option. And it does the same thing even if I change to the ports directory and type "make". I don't understand why it is doing that. I am guessing the installed version of mysql is too old for the perl interface. But I didn't think upgrade (or a port "make") would recurse unless "told" to.... But here's what it says... ===> p5-DBD-mysql50-4.0000 depends on file: /usr/local/lib/perl5/site_perl/5.8.8/mach/DBI.pm - found ===> p5-DBD-mysql50-4.0000 depends on file: /usr/local/bin/perl5.8.8 - found ===> p5-DBD-mysql50-4.0000 depends on shared library: mysqlclient.15 - not found ===> Verifying install for mysqlclient.15 in /usr/ports/databases/mysql50-client ===> Building for mysql-client-5.0.33 The second problem is that the mysql port won't actually compile. It announces that it is "Configuring for mysql-client-5.0.33", and then proceeds to report a whole slew (hundreds) of "checking..." activities. About a dozen that start "pthread_", and some of them succeed. Then it starts compling, but this process finishes with.... mkdir .libs cc -DDBUG_OFF -O -pipe -mcpu=pentiumpro -D_THREAD_SAFE -o factorial my_main.o factorial.o libdbug.a ../mysys/libmysys.a ../strings/libmystrings.a -lcrypt -lm ../mysys/libmysys.a(my_thr_init.o): In function `my_thread_global_end': my_thr_init.o(.text+0x1b7): undefined reference to `pthread_cond_timedwait' *** Error code 1 Stop in /data/ports_build/usr/ports/databases/mysql50-client/work/mysql-5.0.33/dbug. *** Error code 1 Stop in /data/ports_build/usr/ports/databases/mysql50-client/work/mysql-5.0.33. *** Error code 1 Stop in /data/ports_build/usr/ports/databases/mysql50-client/work/mysql-5.0.33. *** Error code 1 Stop in /usr/ports/databases/mysql50-client. *** Error code 1 Stop in /usr/ports/databases/p5-DBD-mysql50. I've tried googling for this, but although I've found a handful of people with broadly similar problems, nobody has actually been offered anything I recognise as an applicable solution! The upshot of this is that the previous Perl application is now broken because it cannot access the MySQL database. So I need to either... get the latest MySQL port to compile, or somehow get p5-DBD-mysql50 to work with the existing MySQL. ...but I'm not sure how to start on either. Help? Any advice welcome! I have tried putting the p5-DBD-mysql50 package back the way it was (albeit in a rather simple-minded way -- just copying /usr/ports/databases/p5-DBD-mysql50 from its sister machine). But this didn't make any difference. It still decides that even this version (which was working) is incompatible with the existing mysql... boru/p5-DBD-mysql50# make ===> Vulnerability check disabled, database not found ===> Extracting for p5-DBD-mysql50-2.9003 => MD5 Checksum OK for DBD-mysql-2.9003.tar.gz. ===> p5-DBD-mysql50-2.9003 depends on file: /usr/local/bin/perl5.8.8 - found ===> Patching for p5-DBD-mysql50-2.9003 ===> p5-DBD-mysql50-2.9003 depends on file: /usr/local/bin/perl5.8.8 - found ===> p5-DBD-mysql50-2.9003 depends on file: /usr/local/lib/perl5/site_perl/5.8.8/mach/DBI.pm - found ===> p5-DBD-mysql50-2.9003 depends on file: /usr/local/bin/perl5.8.8 - found ===> p5-DBD-mysql50-2.9003 depends on shared library: mysqlclient.15 - not found : : Like the "current" version, this version claims it cannot find mysqlclient.15. And indeed, "locate" seems to confirm its absence... # locate mysqlclient /usr/local/lib/mysql/libmysqlclient.a /usr/local/lib/mysql/libmysqlclient.so /usr/local/lib/mysql/libmysqlclient.so.14 /usr/local/lib/mysql/libmysqlclient_r.a /usr/local/lib/mysql/libmysqlclient_r.so /usr/local/lib/mysql/libmysqlclient_r.so.14 I don't understand why the p5-DBD-mysql50-2.9003 now says it needs mysqlclient.15 when it used to run happily with what was there... Robert. -- Robert Inder Tel: 0131 229 1052 Interactive Information Ltd, Director Mobile: 07808 492 213 3, Lauriston Gardens, Edinburgh EH3 9HH Interactions speak louder than words SCOTLAND UK
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702031958.l13JwMH9068140>