Port upgrade/install problem: MySQL and Perl I/F

2007-02-03 Thread Robert Inder
p5-DBD-mysql50 and mysql itself
Date: 03 Feb 2007 19:58:22 +
Message-ID: [EMAIL PROTECTED]
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. depends on file: 
/usr/local/lib/perl5/site_perl/5.8.8/mach/DBI.pm - found
===   p5-DBD-mysql50-4. depends on file: /usr/local/bin/perl5.8.8 - 
found
===   p5-DBD-mysql50-4. 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 

Re: Port upgrade/install problem: MySQL and Perl I/F

2007-02-03 Thread Ted Mittelstaedt
Stuff like this happens, you can e-mail the port maintainer and
bitch him out for making a stupid change to the dependency
requirement, or you can simply dispense with ports, download
the perl module and compile and install it the old fashioned way

You ought to have nuked and repaved that server, your just lucky
that this very minor thing was the only thing that blew up.

Ted

- Original Message - 
From: Robert Inder [EMAIL PROTECTED]
To: freebsd-questions@freebsd.org
Sent: Saturday, February 03, 2007 11:58 AM
Subject: Port upgrade/install problem: MySQL and Perl I/F


 p5-DBD-mysql50 and mysql itself
 Date: 03 Feb 2007 19:58:22 +
 Message-ID: [EMAIL PROTECTED]
 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. depends on file:
/usr/local/lib/perl5/site_perl/5.8.8/mach/DBI.pm - found
 ===   p5-DBD-mysql50-4. depends on file:
/usr/local/bin/perl5.8.8 - found
 ===   p5-DBD-mysql50-4. 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