Port upgrade/install problem: MySQL and Perl I/F
Robert Inder
robert at interactive.co.uk
Sat Feb 3 20:21:49 UTC 2007
p5-DBD-mysql50 and mysql itself
Date: 03 Feb 2007 19:58:22 +0000
Message-ID: <f514pq3dndt.fsf at 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
More information about the freebsd-questions
mailing list