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

Reply via email to