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