pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/41297: Many packages fail under Linux (linkage, -ldb4)



>Number:         41297
>Category:       pkg
>Synopsis:       Many packages fail under Linux (linkage, -ldb4)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 28 15:55:00 +0000 2009
>Originator:     cheusov%tut.by@localhost
>Release:        NetBSD 5.0_RC4
>Organization:
>Environment:
System: NetBSD chen.chizhovka.net 5.0_RC4 NetBSD 5.0_RC4 (GENERIC) #4: Mon Apr 
20 21:38:46 EEST 2009 
cheusov%chen.chizhovka.net@localhost:/srv/obj/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
Many packages such as

   sysutils/nautilus, sysutils/gnome-settings-daemon, devel/eel and others

fail under Linux because of absent db4 library at build time.
Linking stage ends like this.

   /bin/sh ../libtool --tag=CC   --mode=link gcc  -O2 ...
   gcc -O2 -I/tmp/obj_pkgsrc/devel/eel/work/.buildlink/include ...
   /usr/bin/ld: cannot find -ldb4
   collect2: ld returned 1 exit status

Full logs are available here
http://mova.org/~cheusov/pub/pkgsrc-distbb/Linux/current/logs/20090410.2105/META/report.html

An immediate problem of these failures is x11/gnome-desktop package.
Its library libgnome-desktop-2.la is used for linking all packages
mentioned above. In this .la file -ldb4 is listed in 'dependency_libs'
list but nautilus, gnome-settings-daemon and eel packages do not
include bdb.bl3.mk in their Makefiles.

Note that, neither of these packages need db4 libraries.
I successfully built all of them without -ldb4.  This means that
inclusion of bdb.bl3.mk to gnome-desktop/bl3.mk is easy but incorrect
solution.

In my view the real problem lies in lang/python/*.mk files.  The
problem is that libgnome-desktop-2.la (x11/gnome-desktop package) was
built incorrectly and this is why other packages fail. -ldb4 should
not appear in libgnome-desktop-2.la because there is no need for this.

It appears there from lang/python25/buildlink3.mk file

   21 .if ${OPSYS} != "IRIX"
   22 .  include "../../mk/bdb.buildlink3.mk"
   23 .endif

which is included from lang/python/pyversion.mk

   154 .if defined(PYPKGSRCDIR)
   155 .include "${PYPKGSRCDIR}/buildlink3.mk"
   156 .endif

which is included from lang/python/application.mk

   16 .include "../../lang/python/pyversion.mk"

which in turn is included in x11/gnome-desktop/Makefile

   52 .include "../../lang/python/application.mk"

Thus, the real problem is that lang/python/application.mk includes
lang/python25/buildlink3.mk (and therefore bdb.buildlink3.mk,
dlopen.buildlink3.mk and pthread.buildlink3.mk).

>Fix:
lang/python/application.mk should not include lang/pythonNN/buildlink3.mk

Potentially this change may cause bad
side-effects but I think all of them can easily be fixed.

P.S.
Also lang/python/application.mk should not include mk/pthread.buildlink3.mk

   lang/python/pyversion.mk:

      148 PTHREAD_OPTS+=require
      149 .include "../../mk/pthread.buildlink3.mk"



Home | Main Index | Thread Index | Old Index