On Tue, Sep 19, 2006 at 07:39:46AM +0200, Ralf S. Engelschall wrote: > On Mon, Sep 18, 2006, Adam D. Morley wrote: > > > > [Core Features] > > > - Test::More ...loaded. (0.62 >= 0.52) > > > - DBD::SQLite ...missing. > > > - DBI ...loaded. (1.51) > > > - Want ...loaded. (0.10) > > > - Encode ...loaded. (2.18) > > > - Class::ReturnValue ...loaded. (0.53 >= 0.4) > > > - Cache::MemoryCache ...loaded. (0) > > > - Clone ...loaded. (0.20) > > > ==> Auto-install the 1 mandatory module(s) from CPAN? [Y/n] y > > > [Lower case API] > > > - capitalization ...missing. (would need 0.03) > > > ==> Auto-install the 1 optional module(s) from CPAN? [y/N] n > > > [Schema generation] > > > - DBIx::DBSchema ...loaded. (0.31) > > > - Class::Accessor ...loaded. (0.25) > > > > > > But it seems perl-dbi built SQLLite fine? (see attached) And openpkg > > > > [...] > > > I'm clearly doing something wrong here. Any ideas? > > [...] > > Writing Makefile for DBD::SQLite > > ++ step 3: build > > ++ building module via ExtUtils::MakeMaker environment > > cp lib/DBD/SQLite.pm blib/lib/DBD/SQLite.pm > > /opt/openpkg/RPM/TMP/adam-perl-openpkg-perl-dbi/perl.sh -p -e > > "s/~DRIVER~/SQLite/g" > > /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBI/Driver.xst > > > SQLite.xsi > > /opt/openpkg/RPM/TMP/adam-perl-openpkg-perl-dbi/perl.sh > > /opt/openpkg/lib/perl/5.8.8/ExtUtils/xsubpp -typemap > > /opt/openpkg/lib/perl/5.8.8/ExtUtils/typemap SQLite.xs > SQLite.xsc && mv > > SQLite.xsc SQLite.c > > /opt/openpkg/bin/cc -c -I/opt/openpkg/include > > -I/opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBI > > -fno-strict-aliasing -pipe -Wdeclaration-after-statement > > -I/opt/openpkg/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > > -DPERL_USE_SAFE_PUTENV -O2 -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -fPIC > > "-I/opt/openpkg/lib/perl/5.8.8/sun4-solaris/CORE" -DNDEBUG=1 > > -DSQLITE_PTR_SZ=4 -DHAVE_USLEEP=1 SQLite.c > > /opt/openpkg/bin/cc -c -I/opt/openpkg/include > > -I/opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBI > > -fno-strict-aliasing -pipe -Wdeclaration-after-statement > > -I/opt/openpkg/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > > -DPERL_USE_SAFE_PUTENV -O2 -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -fPIC > > "-I/opt/openpkg/lib/perl/5.8.8/sun4-solaris/CORE" -DNDEBUG=1 > > -DSQLITE_PTR_SZ=4 -DHAVE_USLEEP=1 dbdimp.c > > Running Mkbootstrap for DBD::SQLite () > > chmod 644 SQLite.bs > > rm -f blib/arch/auto/DBD/SQLite/SQLite.so > > /opt/openpkg/bin/cc -Wl,-E -G -L/opt/openpkg/lib SQLite.o dbdimp.o -o > > blib/arch/auto/DBD/SQLite/SQLite.so \ > > -L/opt/openpkg/lib -lsqlite3 \ > > > > chmod 755 blib/arch/auto/DBD/SQLite/SQLite.so > > cp SQLite.bs blib/arch/auto/DBD/SQLite/SQLite.bs > > chmod 644 blib/arch/auto/DBD/SQLite/SQLite.bs > > ++ step 4: install > > ++ installing module via ExtUtils::MakeMaker environment > > Installing > > /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.so > > Installing > > /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.bs > > Files found in blib/arch: installing files in blib/lib into architecture > > dependent library tree > > Installing > > /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/DBD/SQLite.pm > > Writing > > /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/.packlist > > [...] > > Hmmmm... this sounds all pretty good. DBD::SQLite is built and installed just > fine. > Whether it also _loads_ you can check manually with... > > $ /opt/openpkg/bin/perl -e 'use DBI; use DBD::SQLite;' > > ...just to make sure you are not confronted with some "undefined symbol" > or similar run-time problems. So, as long as the above command really > works, I've no more clue why the check in "perl-dbix" still fails for > you.
Ah. At least I know my perl-dbi is broken: [root perl-dbix]# /opt/openpkg/bin/perl -e 'use DBI; use DBD::SQLite;' Can't load '/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.so' for module DBD::SQLite: ld.so.1: perl: fatal: relocation error: file /opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.so: symbol fdatasync: referenced symbol not found at /opt/openpkg/lib/perl/5.8.8/sun4-solaris/DynaLoader.pm line 230. at -e line 1 Compilation failed in require at -e line 1. BEGIN failed--compilation aborted at -e line 1. Details: [root perl-dbix]# ls -l /opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.so -r-xr-xr-x 1 opkg opkg 493827 Sep 18 16:40 /opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.so [root perl-dbix]# ldd /opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBD/SQLite/SQLite.so libc.so.1 => /lib/libc.so.1 libm.so.2 => /lib/libm.so.2 /platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1 [root perl-dbix]# ls -l /opt/openpkg/lib/perl/5.8.8/sun4-solaris/DynaLoader.pm -r--r--r-- 1 opkg opkg 28125 Sep 15 23:04 /opt/openpkg/lib/perl/5.8.8/sun4-solaris/DynaLoader.pm I lucked upon the following three items: http://www.nntp.perl.org/group/perl.cpan.testers/281183 http://london.pm.org/pipermail/london.pm/Week-of-Mon-20060206/001201.html http://london.pm.org/pipermail/london.pm/Week-of-Mon-20060206/001191.html Which seem to describe the problem. The last one says, "-lposix4 needs to be passed to the linker (LDDLFLAGS)" subject, "DBD::SQLite failing on Solaris + fix" I'd test, but I have no idea where lddlflags shows up in .spec files. I know ldflags, and can usually whack that in to test things, but lddlflags is new to me. Thanks, -- adam ______________________________________________________________________ The OpenPKG Project www.openpkg.org User Communication List openpkg-users@openpkg.org