Subject: pkg/30971: python23 incorrectly configures itself for bdb
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <cube@cubidou.net>
List: pkgsrc-bugs
Date: 08/11/2005 10:11:00
>Number:         30971
>Category:       pkg
>Synopsis:       python23 incorrectly configures itself for bdb
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 11 10:11:00 +0000 2005
>Originator:     Quentin Garnier
>Release:        Linux
>Organization:
>Environment:
>Description:
lang/python23 has a patche to configure for bdb support that do a very evil thing.  It looks at BUILDLINK_TRANSFORM in order (I think) to know if a library is needed, and which.

This is evil, because teaching the package about an internal bit of pkgsrc is already wrong, and also because the purpose of BUILDLINK_TRANSFORM is to make the wrappers change on-the-fly the library name to the correct value.

However, the reason it breaks on Linux is because the db1 library is named libdb.so.  Thus, while BUIDLINK_LDADD.db1 is not empty (-ldb), BUILDLINK_TRANSFORM is because the library is already named libdb.  That later leads to a linking failure, which goes unnoticed because of the tolerant nature of python's build system.  But pkg_create sure does complain about the missing modules and the incorrect PLIST.

And anyway, why not simply use BDB_LIBS?  I tried that (patch not included, but it's trivial) and it Just Works on my system.
>How-To-Repeat:
Build python23 on a system where the library for db1 is named libdb.so.
>Fix: