Subject: pkg/34555: security/cy2-sql ignores options, and fails to work
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <explorer@flame.org>
List: pkgsrc-bugs
Date: 09/19/2006 04:45:00
>Number:         34555
>Category:       pkg
>Synopsis:       security/cy2-sql ignores options, and fails to work
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 19 04:45:00 +0000 2006
>Originator:     explorer@flame.org
>Release:        NetBSD 4.99.2
>Organization:
	
>Environment:
System: NetBSD white.flame.org 4.99.2 NetBSD 4.99.2 (GENERIC.MP) #0: Sun Sep 17 11:43:26 CDT 2006 explorer@speedy.home.flame.org:/sys/arch/i386/compile/GENERIC.MP i386
Architecture: i386
Machine: i386
>Description:
It seems that the security/cy2-sql package no longer works.  When compiled,
it does not create libsql.so* but instead libsql.a.  Additionally, even though
my options have pgsql -mysql in them, it builds with mysql support.

Whatever broke this package has caused my mail server to no longer use
auxprop sql methods to authenticate with.  This breaks my postfix.

Here's the result of "make options:"

speedy# make show-options
Any of the following general options may be selected:
        mysql    Enable MySQL support.
        pgsql    Enable PostgreSQL support.
        sqlite   Enable SQLite support.

These options are enabled by default:
        mysql

These options are currently enabled:
        pgsql

You can select which build options to use by setting PKG_DEFAULT_OPTIONS
or PKG_OPTIONS.cy2-sql.

After compiling, the libsql.la file does not contain any reference to the
libsql.so shared library, but instead has an error (empty dlname):

# The name that we can dlopen(3).
dlname=''

# Names of this library.
library_names=''

# The name of the static archive.
old_library='libsql.a'

Note also that this error message appears while compiling this package:

shlibtool --mode=link cc  -Wall -W -O2 -I/usr/pkg/include -I/usr/include -module -export-dynamic -rpath
 /usr/pkg/lib/sasl2 -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -o libsql.la  -L/usr/pk
g/lib/mysql  -R/usr/pkg/lib/mysql -lmysqlclient -L/usr/pkg/lib  -R/usr/pkg/lib -lpq  -version-info 2:21
:0 sql.lo sql_init.lo plugin_common.lo  -lresolv 

*** Warning: linker path does not have real file for library -lmysqlclient.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libmysqlclient but no candidates were found. (...for regex pattern test)

*** Warning: libtool could not satisfy all declared inter-library
*** dependencies of module libsql.  Therefore, libtool will create
*** a static module, that should work as long as the dlopening
*** application is linked with the -dlopen flag.
ar cru .libs/libsql.a .libs/sql.o .libs/sql_init.o .libs/plugin_common.o
ranlib .libs/libsql.a
creating libsql.la
(cd .libs && rm -f libsql.la && ln -s ../libsql.la libsql.la)

CD'ing into the plugins directory and manually running the SAME shlibtool
command shown above causes the .so files to be made, and the installation
to work.
>How-To-Repeat:
See above
>Fix: