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