Hi,

I am one of the maintainers for the Perl module ExtUtils::PkgConfig,
which is available on CPAN.

We have been getting failure reports from CPAN's automated testing
system for ExtUtils::PkgConfig on OpenBSD[1].

I did some digging last night, and I found out that the replacement
/usr/bin/pkg-config does not honor the --max-version command line
switch, which the tests in ExtUtils::PkgConfig exercise as part of the
test suite for that module.

I've included a patch to the version of pkg-config currently in
OpenBSD's CVS tree (1.75)[2] that fixes the issue.  I'm going to guess
it was a copy/paste issue that introduced the bug.

I've tested this patch on the installed version of /usr/bin/pkg-config
on OpenBSD 5.2 and the currently released version of
ExtUtils::PkgConfig from CPAN (1.13), and all of the tests for that
Perl module now pass.

To reproduce the bug:
1) Install OpenBSD 5.2 on a computer with an Internet connection
2) Run the CPAN module and 'look' at ExtUtils::PkgConfig
2a) # perl -MCPAN -e shell
2b) cpan[#]> look ExtUtils::PkgConfig
3) Create the Makefile and run make/make test
3a) # perl Makefile.PL
3b) # time make
3c) # time make test
4) Watch test #3 fail (because it is trying to call pkg-config
--max-version, which currently does nothing)

To fix the bug:
1) Apply this patch to /usr/bin/pkg-config:
@@ -215,7 +215,7 @@
    exit $rc;
 }

-if ($mode{minversion}) {
+if ($mode{maxversion}) {
    my $v = $mode{maxversion};
    for my $pkg (@$top_config) {
        $rc = 1 unless versionmatch($configs{$pkg}, '<=', $v);

To verify the bug fix:
1) Go back to the unpacked ExtUtils::PkgConfig directory, and run
'make test' again, all of the tests should pass

Thanks,

Brian

[1] http://www.cpantesters.org/cpan/report/d2fbd25c-3bec-11e2-8669-e1a096fec937
[2] http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/pkg-config/pkg-config

Reply via email to