Subject: devel/smpeg build failed because libncurses.* isn't buildlinked
To: None <tech-pkg@netbsd.org>
From: Sebastian Prause <sebastian-p@gmx.net>
List: tech-pkg
Date: 11/14/2003 15:42:16
hi,
i'm trying to install devel/smpeg. unfortuately it fails, because
it can't find libncurses.la:

[...]
grep: /usr/pkgsrc/devel/smpeg/work/.buildlink/lib/libncurses.la: No such file or directory
sed: can't read /usr/pkgsrc/devel/smpeg/work/.buildlink/lib/libncurses.la: No such file or directory
libtool: link: `/usr/pkgsrc/devel/smpeg/work/.buildlink/lib/libncurses.la' is not a valid libtool archive
make[1]: *** [libaudio.la] Error 1
make[1]: Leaving directory `/usr/pkgsrc/devel/smpeg/work/smpeg-0.4.4/audio'
make: *** [all-recursive] Error 1
*** Error code 2
[...]

i thought that i just have to include devel/ncurses/buildlink2.mk, but it
didn't solve the problem. i guess i have some problems with the base systems 
ncurses (slackware linux), which don't have a libtool archive:

# locate libncurses
/lib/libncurses.so.5
/lib/libncurses.so.5.3
/usr/lib/libncurses++.a
/usr/lib/libncurses_g.a
/usr/lib/libncurses_p.a
/usr/lib/libncurses.so
/usr/lib/libncurses.a
/usr/pkg/lib/libncurses++.so.5
/usr/pkg/lib/libncurses++.la
/usr/pkg/lib/libncurses++.so
/usr/pkg/lib/libncurses.so.5
/usr/pkg/lib/libncurses++.so.5.3
/usr/pkg/lib/libncurses.so.5.3
/usr/pkg/lib/libncurses++.a
/usr/pkg/lib/libncurses.la
/usr/pkg/lib/libncurses.so
/usr/pkg/lib/libncurses.a

# ls -l work/.buildlink/lib/libncurses*
lrwxrwxrwx    1 root     root           23 Nov 14 15:19 work/.buildlink/lib/libncurses++.a -> /usr/lib/libncurses++.a
lrwxrwxrwx    1 root     root           21 Nov 14 15:19 work/.buildlink/lib/libncurses.a -> /usr/lib/libncurses.a
lrwxrwxrwx    1 root     root           22 Nov 14 15:19 work/.buildlink/lib/libncurses.so -> /usr/lib/libncurses.so*

(now i am sure its my base systems ncurses fault)

maybe we can add some magic to buildlink to automatically generate libtool 
archives or to link against the version in pkgsrc (and install it if neccessary)
in such cases (or at least buildlink should abort the build immediately if it finds
libraries without a correspoding *.la file). i think that would be better than just
failing during the build.

sebastian

(PS: my solution to this problem was to add devel/curses/buildlink2.mk AND setting USE_NCURSES=yes)