Re: perl-dbix 2.20060622 asks for input?
On Tue, Sep 19, 2006, Adam D. Morley wrote: On Tue, Sep 19, 2006 at 07:36:07AM +0200, Ralf S. Engelschall wrote: On Mon, Sep 18, 2006, Adam D. Morley wrote: So somewhere from the upgrade to 2.5 to 2.20060622, openpkg build seems to have missed the addition of sqlite as a requirement for perl-dbi. Likely because 2.5's perl-dbi has with_dbd_sqlite set to no, so the build script must not consider this possibility? Yes, seems like openpkg build has no possibility here. The default was no in 2.5 and is yes in 2.20060622. So, openpkg build thinks that the no in 2.5 was _manually_ set and correctly forward passes-through this value to the build of 2.20060622. There is real solution for this dependency-change-on-upgrade dilemma as RPM doesn't safe information whether an option was _explicitly_ set or not (and this way is set to the default). But I've now at least added the dependency perl-dbi::with_dbd_sqlite=yes to perl-dbix. Hmm. Does this mean an upgrade from 2.5 - 2.20060622 will now break when it sees perl-dbi installed with with_dbd_sqlite=no? Mostly, I'm just concerned about others upgrading from 2.5, as this is the one time I'll have to do it. Yes, seems like this is a nasty upgrade pitfall everyone can jump into. It at least hurts for those who used perl-dbix. But the solution is simple: one just has to _know_ to pass -Dwith_dbd_sqlite=yes on the openpkg build command when upgrading. Ralf S. Engelschall [EMAIL PROTECTED] www.engelschall.com __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org
Re: perl-dbix 2.20060622 asks for input?
On Tue, Sep 19, 2006, Adam D. Morley wrote: [...] Ah. At least I know my perl-dbi is broken: This should now be also fixed in OpenPKG-CURRENT. Please take the latest and greatest perl-dbi from there in the meantime. Ralf S. Engelschall [EMAIL PROTECTED] www.engelschall.com __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org
Re: perl-dbix 2.20060622 asks for input?
On Tue, Sep 19, 2006, Ralf S. Engelschall wrote: On Tue, Sep 19, 2006, Adam D. Morley wrote: ... Yes, seems like this is a nasty upgrade pitfall everyone can jump into. It at least hurts for those who used perl-dbix. But the solution is simple: one just has to _know_ to pass -Dwith_dbd_sqlite=yes on the openpkg build command when upgrading. See the rpmgetopts.pl script I just posted as it helps avoid problems like this by helpinb build an ~/.openpkg/build file with ALL the -D options for installed packages. Bill -- INTERNET: [EMAIL PROTECTED] Bill Campbell; Celestial Systems, Inc. UUCP: camco!bill PO Box 820; 6641 E. Mercer Way FAX:(206) 232-9186 Mercer Island, WA 98040-0820; (206) 236-1676 URL: http://www.celestial.com/ Cutting the space budget really restores my faith in humanity. It eliminates dreams, goals, and ideals and lets us get straight to the business of hate, debauchery, and self-annihilation. -- Johnny Hart __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org
Re: perl-dbix 2.20060622 asks for input?
On 9/19/06, Adam D. Morley [EMAIL PROTECTED] wrote: On Tue, Sep 19, 2006 at 08:10:49PM +0200, Ralf S. Engelschall wrote: On Tue, Sep 19, 2006, Adam D. Morley wrote: [...] Ah. At least I know my perl-dbi is broken: This should now be also fixed in OpenPKG-CURRENT. Please take the latest and greatest perl-dbi from there in the meantime. Ok. I grabbed perl-dbi-5.8.8-20060919.src.rpm from ftp.openpkg.org in current/SRC and built. I get: [root perl-dbi]# /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 sqlite3_version: referenced symbol not found at /opt/openpkg/lib/perl/5.8.8/sun4-solaris/DynaLoader.pm line 230. I think you might need to rebuild/update the sqlite package first to fix this. -- Caleb Epstein __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org
Re: perl-dbix 2.20060622 asks for input?
On Tue, Sep 19, 2006, Adam D. Morley wrote: On Tue, Sep 19, 2006 at 08:10:49PM +0200, Ralf S. Engelschall wrote: On Tue, Sep 19, 2006, Adam D. Morley wrote: [...] Ah. At least I know my perl-dbi is broken: This should now be also fixed in OpenPKG-CURRENT. Please take the latest and greatest perl-dbi from there in the meantime. Ok. I grabbed perl-dbi-5.8.8-20060919.src.rpm from ftp.openpkg.org in current/SRC and built. I get: [root perl-dbi]# /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 sqlite3_version: 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. But sqlite built fine (see attached log). Was there a second 0919 I was supposed to use, or do I need to upgrade perl-openpkg too? I did twiddle perl-dbi.spec so it wouldn't error on build: [...] /opt/openpkg/bin/cc -Wl,-E -G -L/opt/openpkg/lib SQLite.o dbdimp.o -o blib/arch/auto/DBD/SQLite/SQLite.so \ \ [...] Ops, for unknown reasons there is no -lsqlite3 at all on this line. Can you show me the output of the command $ /opt/openpkg/bin/pkg-config sqlite3 --libs on your side? Ralf S. Engelschall [EMAIL PROTECTED] www.engelschall.com __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org
Re: perl-dbix 2.20060622 asks for input?
On Mon, Sep 18, 2006 at 02:56:34PM -0700, Adam D. Morley wrote: On Mon, Sep 18, 2006 at 09:47:12PM +0200, Ralf S. Engelschall wrote: On Mon, Sep 18, 2006, Adam D. Morley wrote: I'm upgrading a 2.5 OpenPKG instance on Solaris 10 to 2.20060622. Everything has gone fine so far, but when openpkg build tries to build perl-dbix, it starts asking for input. First, it can't find the MIRRORED.BY file, since it isn't detecting http_proxy from the environment (see MIRRORED.BY.log). I'm guessing this is the same bug as the RPM 4.4 bug? If I manually download MIRRORED.BY to /opt/openpkg/.cpan/sources, I get asked (in a loop) for where I am in the world (see locale.loop.log) by CPAN's Config.pm. Other perl packages have been built fine, so I'm wondering if I'm doing something wrong, or if perl-dbix is the only one that uses CPAN. It seems odd to use CPAN, but I don't know much about perl-dbix's source rpm. Can building perl-dbix be made to not require user input/configuration of CPAN? Or do I just need to configure CPAN manually? If so, how do I get OpenPKG to tell me all the values it was going to manually program CPAN with? Thanks, -- adam /var/tmp/opkg/SRC/perl-dbix-5.8.8-2.20060622.src.rpm Installing /var/tmp/opkg/SRC/perl-dbix-5.8.8-2.20060622.src.rpm Executing(%prep): env -i /opt/openpkg/lib/openpkg/bash --norc --noprofile --posix -e /opt/openpkg/RPM/TMP/rpm-tmp.12743 [...] [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] [...] OpenPKG packages never should download anything their own. The issue is That's kind of what I expected, which is why I was surprised. not related to RPM. It is just that the CPAN stuff detected that for whatever obscure reasons DBD::SQLite is missing here. The perl-dbix package depends on the perl-dbi package which in turn provides DBD::SQLite by default. Please check your perl-dbi package. Either it has build-option with_dbd_sqlite set to no (which is _NOT_ the default) or something failed during building of DBD::SQLite in this package. Just rebuild perl-dbi again and watch for errors. [this is slightly rambly, as I was trying to figure out what's going on] It does indeed have with_dbd_sqlite set to no. Here's the tail end of the output of openpkg build -z -r /var/tmp/opkg perl-dbi (/var/tmp/opkg is a local cache of ftp.openpkg.org, circa last Thursday or so, since we're behind a proxy. without -r, the results are the same): echo /var/tmp/opkg/SRC/perl-dbi-5.8.8-2.20060622.src.rpm /opt/openpkg/bin/openpkg rpm --define 'with_dbd_sqlite no' --rebuild /var/tmp/opkg/SRC/perl-dbi-5.8.8-2.20060622.src.rpm || exit $? /opt/openpkg/bin/openpkg rpm --force -Uvh /opt/openpkg/RPM/PKG/perl-dbi-5.8.8-2.20060622.sparc64-solaris10-oop.rpm || exit $? echo /var/tmp/opkg/SRC/perl-dbi-5.8.8-2.20060622.src.rpm = $? The problem is: I built the package normally with 2.5. Further, another system running the exact same version of OpenPKG that I'm upgrading from reports the following from openpkg build -z perl-dbi: echo ftp://ftp.openpkg.org/release/2.5/SRC/perl-dbi-5.8.7-2.5.0.src.rpm /opt/openpkg/bin/openpkg rpm --rebuild ftp://ftp.openpkg.org/release/2.5/SRC/perl-dbi-5.8.7-2.5.0.src.rpm || exit $? /opt/openpkg/bin/openpkg rpm --force -Uvh /opt/openpkg/RPM/PKG/perl-dbi-5.8.7-2.5.0.sparc64-solaris10-oop.rpm || exit $? echo ftp://ftp.openpkg.org/release/2.5/SRC/perl-dbi-5.8.7-2.5.0.src.rpm = $? So somewhere, the option got twiddled. I do know that the src rpm I downloaded for 2.20060622 has the option set correctly at yes. But, upon trying to manually build the package from the source rpm, I get: [root perl-dbi]# openpkg rpm -bb perl-dbi.spec error: Failed build dependencies: sqlite is needed by perl-dbi-5.8.8-2.20060622 So somewhere from the upgrade to 2.5 to 2.20060622, openpkg build seems to have missed the addition of sqlite as a requirement for perl-dbi. Likely because 2.5's perl-dbi has with_dbd_sqlite set to no, so the build script must not consider this possibility? I take it the best way to reset the option is to manually build sqlite, then rebuild perl-dbi manually, and then continue with the -ZaKB? Ah. Even after I manually built gawk, sqlite, and perl-dbi, perl-dbix still fails: [Core Features] - Test::More ...loaded. (0.62 = 0.52) - DBD::SQLite...missing. - DBI...loaded. (1.51) - Want ...loaded. (0.10) - Encode
Re: perl-dbix 2.20060622 asks for input?
On Mon, Sep 18, 2006 at 04:51:24PM -0700, Adam D. Morley wrote: On Mon, Sep 18, 2006 at 02:56:34PM -0700, Adam D. Morley wrote: So somewhere from the upgrade to 2.5 to 2.20060622, openpkg build seems to have missed the addition of sqlite as a requirement for perl-dbi. Likely because 2.5's perl-dbi has with_dbd_sqlite set to no, so the build script must not consider this possibility? I take it the best way to reset the option is to manually build sqlite, then rebuild perl-dbi manually, and then continue with the -ZaKB? Ah. Even after I manually built gawk, sqlite, and perl-dbi, perl-dbix still fails: [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 This time, with attachment. build -z perl-dbi shows (after I rm the binary rpm): ... echo ftp://ftp.openpkg.org/stable/2.20060622/SRC/perl-dbi-5.8.8-2.20060622.src.rpm /opt/openpkg/bin/openpkg rpm --rebuild ftp://ftp.openpkg.org/stable/2.20060622/SRC/perl-dbi-5.8.8-2.20060622.src.rpm || exit $? /opt/openpkg/bin/openpkg rpm --force -Uvh /opt/openpkg/RPM/PKG/perl-dbi-5.8.8-2.20060622.sparc64-solaris10-oop.rpm || exit $? echo ftp://ftp.openpkg.org/stable/2.20060622/SRC/perl-dbi-5.8.8-2.20060622.src.rpm = $? I'm clearly doing something wrong here. Any ideas? -- adam __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org -- adam ... + /opt/openpkg/bin/perl-openpkg configure build install ++ OpenPKG perl-openpkg 2.0.1 (03-Dec-2004) ++ determined RPM program: /opt/openpkg/libexec/openpkg/rpm (4.2.1) ++ determined Perl program: /opt/openpkg/bin/perl (5.8.8) ++ step 2: configure ++ configuring module via ExtUtils::MakeMaker environment Checking installed SQLite version... SQLite version must be at least 3.1.3. No header file at that version or higher was found. Using the local version instead. Checking if your kit is complete... Looks good Multiple copies of Driver.xst found in: /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBI/ /opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBI/ at ./Makefile.PL line 106 Using DBI 1.51 (for perl 5.008008 on sun4-solaris) installed in /opt/openpkg/RPM/TMP/perl-dbi-5.8.8-root/opt/openpkg/lib/perl/vendor_perl/5.8.8/sun4-solaris/auto/DBI/ 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 ++
Re: perl-dbix 2.20060622 asks for input?
On Mon, Sep 18, 2006, Adam D. Morley wrote: [...] It does indeed have with_dbd_sqlite set to no. Here's the tail end of the output of openpkg build -z -r /var/tmp/opkg perl-dbi (/var/tmp/opkg is a local cache of ftp.openpkg.org, circa last Thursday or so, since we're behind a proxy. without -r, the results are the same): echo /var/tmp/opkg/SRC/perl-dbi-5.8.8-2.20060622.src.rpm /opt/openpkg/bin/openpkg rpm --define 'with_dbd_sqlite no' --rebuild /var/tmp/opkg/SRC/perl-dbi-5.8.8-2.20060622.src.rpm || exit $? /opt/openpkg/bin/openpkg rpm --force -Uvh /opt/openpkg/RPM/PKG/perl-dbi-5.8.8-2.20060622.sparc64-solaris10-oop.rpm || exit $? echo /var/tmp/opkg/SRC/perl-dbi-5.8.8-2.20060622.src.rpm = $? The problem is: I built the package normally with 2.5. Further, another system running the exact same version of OpenPKG that I'm upgrading from reports the following from openpkg build -z perl-dbi: echo ftp://ftp.openpkg.org/release/2.5/SRC/perl-dbi-5.8.7-2.5.0.src.rpm /opt/openpkg/bin/openpkg rpm --rebuild ftp://ftp.openpkg.org/release/2.5/SRC/perl-dbi-5.8.7-2.5.0.src.rpm || exit $? /opt/openpkg/bin/openpkg rpm --force -Uvh /opt/openpkg/RPM/PKG/perl-dbi-5.8.7-2.5.0.sparc64-solaris10-oop.rpm || exit $? echo ftp://ftp.openpkg.org/release/2.5/SRC/perl-dbi-5.8.7-2.5.0.src.rpm = $? So somewhere, the option got twiddled. I do know that the src rpm I downloaded for 2.20060622 has the option set correctly at yes. But, upon trying to manually build the package from the source rpm, I get: [root perl-dbi]# openpkg rpm -bb perl-dbi.spec error: Failed build dependencies: sqlite is needed by perl-dbi-5.8.8-2.20060622 So somewhere from the upgrade to 2.5 to 2.20060622, openpkg build seems to have missed the addition of sqlite as a requirement for perl-dbi. Likely because 2.5's perl-dbi has with_dbd_sqlite set to no, so the build script must not consider this possibility? Yes, seems like openpkg build has no possibility here. The default was no in 2.5 and is yes in 2.20060622. So, openpkg build thinks that the no in 2.5 was _manually_ set and correctly forward passes-through this value to the build of 2.20060622. There is real solution for this dependency-change-on-upgrade dilemma as RPM doesn't safe information whether an option was _explicitly_ set or not (and this way is set to the default). But I've now at least added the dependency perl-dbi::with_dbd_sqlite=yes to perl-dbix. I take it the best way to reset the option is to manually build sqlite, then rebuild perl-dbi manually, and then continue with the -ZaKB? [...] You can easily fix those situations with openpkg build -g -Dwith_dbd_sqlite=yes perl-dbi | sh as shown in the manual page which you can read via openpkg man build. Ralf S. Engelschall [EMAIL PROTECTED] www.engelschall.com __ The OpenPKG Projectwww.openpkg.org User Communication List openpkg-users@openpkg.org