Bug#691727: libdbd-pg-perl: Build failed when PostgreSQL is installed

Xavier x.guimard at free.fr
Mon Oct 29 17:59:00 UTC 2012


Le 29/10/2012 17:27, gregor herrmann a écrit :
> ...
>>
>> Hmm, does anything change when you build in the "C" locale instead of
>> the French one (LC_ALL=C)?
> 
> There seem to be more factors:
> 
> - With (build depending on locales-all and) exporting LC_ALL=fr_FR.UTF-8 I get:
> 
> make[1]: entrant dans le répertoire « /tmp/buildd/libdbd-pg-perl-2.19.2 »
> PGINITDB="/usr/lib/postgresql/9.1/bin/initdb" PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/00_signature.t .... skipped: Set the environment variable TEST_SIGNATURE to enable this test
> t/00basic.t ......... ok
> Please wait, creating new database for testing
> Use of uninitialized value $info in pattern match (m//) at t/dbdpg_test_setup.pl line 402.
> Use of uninitialized value $info in pattern match (m//) at t/dbdpg_test_setup.pl line 402.
> # 
> # DBI                         Version 1.622
> # DBD::Pg                     Version 2.19.2
> # Perl                        Version 5.14.2
> # OS                          linux
> # PostgreSQL (compiled)       ?
> # PostgreSQL (target)         ?
> # PostgreSQL (reported)       ?
> # Default port                ?
> # DBI_DSN                     ?
> # DBI_USER                    <not set>
> # Test schema                 dbd_pg_testschema
> # LANG                        C
> # Adjusted:                   initdb
> # Error was: FATAL:  role "postgres" does not exist at t/dbdpg_test_setup.pl line 494
> t/01connect.t ....... skipped: Connection to database failed, cannot continue testing
> t/01constants.t ..... ok
> t/02attribs.t ....... skipped: Connection to database failed, cannot continue testing
> t/03dbmethod.t ...... skipped: Connection to database failed, cannot continue testing
> t/03smethod.t ....... skipped: Connection to database failed, cannot continue testing
> t/04misc.t .......... skipped: Connection to database failed, cannot continue testing
> t/06bytea.t ......... skipped: Connection to database failed, cannot continue testing
> t/07copy.t .......... skipped: Connection to database failed, cannot continue testing
> t/08async.t ......... skipped: Connection to database failed, cannot continue testing
> t/09arrays.t ........ skipped: Connection to database failed, cannot continue testing
> t/12placeholders.t .. skipped: Connection to database failed, cannot continue testing
> t/20savepoints.t .... skipped: Connection to database failed, cannot continue testing
> Removing test database directory
> t/99cleanup.t ....... ok
> All tests successful.
> Files=15, Tests=140,  7 wallclock secs ( 0.08 usr  0.04 sys +  1.49 cusr  0.35 csys =  1.96 CPU)
> Result: PASS
> make[1]: quittant le répertoire « /tmp/buildd/libdbd-pg-perl-2.19.2 »
> 
>   But the tests still pass ...
> 
> - After that I still have a postgresql process running, and from then
>   on the tests are the same as above, with or without LC_ALL.
> 
> - If I kill the process and revert the LC_ALL, the tests are actually
>   run:
> 
> make[1]: Entering directory `/tmp/buildd/libdbd-pg-perl-2.19.2'
> PGINITDB="/usr/lib/postgresql/9.1/bin/initdb" PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/00_signature.t .... skipped: Set the environment variable TEST_SIGNATURE to enable this test
> t/00basic.t ......... ok
> Please wait, creating new database for testing
> Use of uninitialized value $info in pattern match (m//) at t/dbdpg_test_setup.pl line 402.
> Use of uninitialized value $info in pattern match (m//) at t/dbdpg_test_setup.pl line 402.
> # 
> # DBI                         Version 1.622
> # DBD::Pg                     Version 2.19.2
> # Perl                        Version 5.14.2
> # OS                          linux
> # PostgreSQL (compiled)       90106
> # PostgreSQL (target)         90106
> # PostgreSQL (reported)       PostgreSQL 9.1.6 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.7.2-2) 4.7.2, 64-bit
> # Default port                5432
> # DBI_DSN                     dbi:Pg:db="postgres";port=5440;host=/tmp/dbdpg_testdatabase_16RMn5/data/socket
> # DBI_USER                    pbuilder
> # Test schema                 dbd_pg_testschema
> # LANG                        C
> # array_nulls                 on
> # backslash_quote             safe_encoding
> # client_encoding             UTF8
> # server_encoding             UTF8
> # standard_conforming_strings on
> # Adjusted:                   initdb
> t/01connect.t ....... ok
> t/01constants.t ..... ok
> t/02attribs.t ....... ok
> t/03dbmethod.t ...... ok
> t/03smethod.t ....... ok
> t/04misc.t .......... ok
> t/06bytea.t ......... ok
> t/07copy.t .......... ok
> t/08async.t ......... ok
> t/09arrays.t ........ ok
> t/12placeholders.t .. ok
> t/20savepoints.t .... ok
> Removing test database directory
> t/99cleanup.t ....... ok
> All tests successful.
> Files=15, Tests=1677, 21 wallclock secs ( 0.33 usr  0.02 sys +  2.16 cusr  0.52 csys =  3.03 CPU)
> Result: PASS
> make[1]: Leaving directory `/tmp/buildd/libdbd-pg-perl-2.19.2'
> 
>   ... and there's no leftover pg process.
> 
>   
> So it seems that the locale somehow influences the tests but I can't
> reproduce Xavier's error.
> 
> (I don't have a machine with a "real" postgressql server and a build
> environment right now ...)
> 
> 
> Cheers,
> gregor

OK, it works fine with LC_ALL=C or with LANG=C. I think the problem
cames because LANG=fr_FR.UTF-8 but LC_ALL="".
Thanks for your help, I think we just have to export LC_ALL=C.

Regards,
Xavier



More information about the pkg-perl-maintainers mailing list