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