> > Rebuilding ruby gives: > > > > ld -shared -expect_unresolved "*" -L"../.." -o curses.so curses.o > > -lncurses -ltermcap -lm -lc > > ld: > > Can't locate file for: -lncurses > > make: *** [curses.so] Error 1 > > [dev:medusa] /openpkg/RPM/TMP/ruby-1.8.2/ext/curses > > > > Which shows the ruby extensions are picking up system > libraries instead of > > OpenPKG libs. Following patch fixes it > > > > --- ruby.spec~ 2005-02-21 18:02:32 +0100 > > +++ ruby.spec 2005-03-16 17:43:15 +0100 > > @@ -70,6 +70,7 @@ > > CFLAGS="%{l_cflags -O} %{l_cppflags}" \ > > ./configure \ > > --prefix=%{l_prefix} \ > > + --with-ldflags=%{l_ldflags} \ > > --disable-shared > > %{l_make} %{l_mflags} > > Comitted to OpenPKG-CURRENT: > http://cvs.openpkg.org/chngview?cn=22621 > Thanks. Looks like Ruby is picking up some more system libraries. I wonder if it's possible to plug-in a check into the RPM build phase to look for references to external libs. On Linux / Tru64 it's possible to view the shared libs dependencies.. Solaris probably has this too. Might be useful to only allow certain system libs and fail in case a non-approved system lib is linked to. ie. on Tru64 looking at /openpkg/lib/ruby/1.8/alphaev68-osf5.1b $ for a in *.so > do > echo ==== $a > ldd $a > done ==== bigdecimal.so Main => bigdecimal.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== curses.so Main => curses.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== dbm.so Main => dbm.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== digest.so Main => digest.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== dl.so Main => dl.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== enumerator.so Main => enumerator.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== etc.so Main => etc.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== fcntl.so Main => fcntl.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== iconv.so Main => iconv.so libiconv.so => /usr/shlib/libiconv.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ^^^ linkage to iconv, OpenPKG also has a libiconv package.. so probably could use a requires: libiconv line in the spec ==== nkf.so Main => nkf.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== openssl.so Main => openssl.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== pty.so Main => pty.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== readline.so Main => readline.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== sdbm.so Main => sdbm.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== socket.so Main => socket.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== stringio.so Main => stringio.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== strscan.so Main => strscan.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== syck.so Main => syck.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== syslog.so Main => syslog.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ==== tcltklib.so Main => tcltklib.so libtk.so => /usr/shlib/libtk.so libtcl.so => /usr/shlib/libtcl.so libX11.so => /usr/shlib/libX11.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so libdnet_stub.so => /usr/shlib/libdnet_stub.so ^^^ should this 'require' the OpenPKG tcl package? ==== tkutil.so Main => tkutil.so libm.so => /usr/shlib/libm.so libc.so => /usr/shlib/libc.so ______________________________________________________________________ The OpenPKG Project www.openpkg.org Developer Communication List openpkg-dev@openpkg.org