[opensuse-buildservice] Problem building Perl packages for SLES11SP2 with certain build requirements
Hello everyone, I have a question/problem with Perl packages and BuildRequires when building for SLES(SP2). The problem comes up with multiple packages when trying to build them for SLES, let's look at perl-HTTP-BrowserDetect from devel:languages:perl for example. The spec files includes: --- BuildRequires: perl(Module::Build) >= 0.3601 --- and the build log clearly states (see https://build.opensuse.org/package/rawlog?arch=x86_64&package=perl-HTTP-BrowserDetect&project=devel%3Alanguages%3Aperl&repository=SLE_11_SP2) that it is being installed: --- installing perl-Module-Build-0.36.07-4.1 --- but still, the build fails with: --- Module::Build version 0.3601 required--this is only version 0.280801 at Build.PL line 5. --- As far as I understand, "Module::Build" v0.280801 is already installed by default under SLES11SP2 and the newer required version 0.3607 is not found OR the older version is found first by the script "Build.pl". A second example would be "perl-POE-Test-Loops" which requires a version of Test::More/Test::Simple >=0.94, but this is not found although installed (i.e. only an older version is found), see log here: https://build.opensuse.org/package/live_build_log?arch=x86_64&package=perl-POE-Test-Loops&project=devel%3Alanguages%3Aperl&repository=SLE_11_SP2 How do I circumvent this problem? Thanks for your help!
On 05.03.2012 10:41, Joschi Brauchle wrote:
Hello everyone,
I have a question/problem with Perl packages and BuildRequires when building for SLES(SP2).
The problem comes up with multiple packages when trying to build them for SLES, let's look at perl-HTTP-BrowserDetect from devel:languages:perl for example.
The spec files includes: --- BuildRequires: perl(Module::Build) >= 0.3601 --- and the build log clearly states (see https://build.opensuse.org/package/rawlog?arch=x86_64&package=perl-HTTP-BrowserDetect&project=devel%3Alanguages%3Aperl&repository=SLE_11_SP2) that it is being installed: --- installing perl-Module-Build-0.36.07-4.1 --- but still, the build fails with: --- Module::Build version 0.3601 required--this is only version 0.280801 at Build.PL line 5. ---
As far as I understand, "Module::Build" v0.280801 is already installed by default under SLES11SP2 and the newer required version 0.3607 is not found OR the older version is found first by the script "Build.pl".
That's the way perl 5.10 works - if perl is bundled with a module it always wins, even if you have installed an update as extra module. It was fixed in 5.12, but it won't help you with 5.10/ SLES11. Greetings, Stephan -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On 03/05/2012 10:51 AM, Stephan Kulow wrote:
On 05.03.2012 10:41, Joschi Brauchle wrote:
Hello everyone,
I have a question/problem with Perl packages and BuildRequires when building for SLES(SP2).
The problem comes up with multiple packages when trying to build them for SLES, let's look at perl-HTTP-BrowserDetect from devel:languages:perl for example.
The spec files includes: --- BuildRequires: perl(Module::Build)>= 0.3601 --- and the build log clearly states (see https://build.opensuse.org/package/rawlog?arch=x86_64&package=perl-HTTP-BrowserDetect&project=devel%3Alanguages%3Aperl&repository=SLE_11_SP2) that it is being installed: --- installing perl-Module-Build-0.36.07-4.1 --- but still, the build fails with: --- Module::Build version 0.3601 required--this is only version 0.280801 at Build.PL line 5. ---
As far as I understand, "Module::Build" v0.280801 is already installed by default under SLES11SP2 and the newer required version 0.3607 is not found OR the older version is found first by the script "Build.pl".
That's the way perl 5.10 works - if perl is bundled with a module it always wins, even if you have installed an update as extra module.
It was fixed in 5.12, but it won't help you with 5.10/ SLES11.
Greetings, Stephan
Ah, ok, thanks for this information. I was able to get around the problem now using the following lines in the spec file: --- %if 0%{?sles_version} export PERL5LIB=%{perl_vendorlib}:%{perl_sitelib} %endif --- which prepends the vendor and site library paths to the @INC for SLES. This way, the updated extra modules get loaded. I'm by no means a perl expert, thus: Are there any downsides/severe problems to be expected using this approach? Thanks again.
On 03/05/2012 01:17 PM, Joschi Brauchle wrote:
On 03/05/2012 10:51 AM, Stephan Kulow wrote:
On 05.03.2012 10:41, Joschi Brauchle wrote:
Hello everyone,
I have a question/problem with Perl packages and BuildRequires when building for SLES(SP2).
The problem comes up with multiple packages when trying to build them for SLES, let's look at perl-HTTP-BrowserDetect from devel:languages:perl for example.
The spec files includes: --- BuildRequires: perl(Module::Build)>= 0.3601 --- and the build log clearly states (see https://build.opensuse.org/package/rawlog?arch=x86_64&package=perl-HTTP-BrowserDetect&project=devel%3Alanguages%3Aperl&repository=SLE_11_SP2)
that it is being installed: --- installing perl-Module-Build-0.36.07-4.1 --- but still, the build fails with: --- Module::Build version 0.3601 required--this is only version 0.280801 at Build.PL line 5. ---
As far as I understand, "Module::Build" v0.280801 is already installed by default under SLES11SP2 and the newer required version 0.3607 is not found OR the older version is found first by the script "Build.pl".
That's the way perl 5.10 works - if perl is bundled with a module it always wins, even if you have installed an update as extra module.
It was fixed in 5.12, but it won't help you with 5.10/ SLES11.
Greetings, Stephan
Ah, ok, thanks for this information.
I was able to get around the problem now using the following lines in the spec file: --- %if 0%{?sles_version} export PERL5LIB=%{perl_vendorlib}:%{perl_sitelib} %endif --- which prepends the vendor and site library paths to the @INC for SLES. This way, the updated extra modules get loaded.
I'm by no means a perl expert, thus: Are there any downsides/severe problems to be expected using this approach?
Thanks again.
Coming back to this problem: Probably since the last OBS update, my package is now in state "unresolvable" with the message "conflict for provider of perl(Module::Build) >= 0.3601, (provider perl-Module-Build is obsoleted by installed perl)". The error message *would* be correct, if one does not change the PERL5LIB path to search vendorlib first (as is done with the lines quoted above). Actually the package in question was building fine previously... but now OBS refuses to even start building. Looking at the build results of the "devel:languages:perl" project, more than 2000 packages are "unresolvable" for SLES11 and SLES11SP2 with the same kind of problem. Is that how it's gonna stay for now? If so, OBS has become useless for building perl packages for SLES11+ that have BuildRequires on newer modules than provided by perl 5.10.0. Best regards, J Brauchle
hi,
Coming back to this problem:
Probably since the last OBS update, my package is now in state "unresolvable" with the message "conflict for provider of perl(Module::Build) >= 0.3601, (provider perl-Module-Build is obsoleted by installed perl)".
have you already tried it this way: ? # osc meta prjconf -e and add a line like this: Prefer: perl-Module-Build cu Frank
The error message *would* be correct, if one does not change the PERL5LIB path to search vendorlib first (as is done with the lines quoted above). Actually the package in question was building fine previously... but now OBS refuses to even start building.
Looking at the build results of the "devel:languages:perl" project, more than 2000 packages are "unresolvable" for SLES11 and SLES11SP2 with the same kind of problem.
Is that how it's gonna stay for now? If so, OBS has become useless for building perl packages for SLES11+ that have BuildRequires on newer modules than provided by perl 5.10.0.
Best regards, J Brauchle
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On 11/20/2012 06:16 PM, Frank Schreiner wrote:
hi,
Coming back to this problem:
Probably since the last OBS update, my package is now in state "unresolvable" with the message "conflict for provider of perl(Module::Build) >= 0.3601, (provider perl-Module-Build is obsoleted by installed perl)".
have you already tried it this way: ?
# osc meta prjconf -e
and add a line like this:
Prefer: perl-Module-Build
Thanks for the suggestion! Just tried that, but does not help. Package still stays in "unresolvable" state. -- Dipl.-Ing. Joschi Brauchle, M.S. Institute for Communications Engineering (LNT) Technische Universitaet Muenchen (TUM) 80290 Munich, Germany Tel (work): +49 89 289-23474 Fax (work): +49 89 289-23490 E-mail: joschi.brauchle@tum.de Web: http://www.lnt.ei.tum.de/
Joschi Brauchle <joschi.brauchle@tum.de> writes:
On 11/20/2012 06:16 PM, Frank Schreiner wrote:
hi,
Coming back to this problem:
Probably since the last OBS update, my package is now in state "unresolvable" with the message "conflict for provider of perl(Module::Build) >= 0.3601, (provider perl-Module-Build is obsoleted by installed perl)".
have you already tried it this way: ?
# osc meta prjconf -e
and add a line like this:
Prefer: perl-Module-Build
Thanks for the suggestion!
Just tried that, but does not help. Package still stays in "unresolvable" state.
Perhaps you want "Prefer: -perl-Module-Build" instead. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On 11/20/2012 09:47 PM, Andreas Schwab wrote:
Joschi Brauchle <joschi.brauchle@tum.de> writes:
On 11/20/2012 06:16 PM, Frank Schreiner wrote:
hi,
Coming back to this problem:
Probably since the last OBS update, my package is now in state "unresolvable" with the message "conflict for provider of perl(Module::Build) >= 0.3601, (provider perl-Module-Build is obsoleted by installed perl)".
have you already tried it this way: ?
# osc meta prjconf -e
and add a line like this:
Prefer: perl-Module-Build
Thanks for the suggestion!
Just tried that, but does not help. Package still stays in "unresolvable" state.
Perhaps you want "Prefer: -perl-Module-Build" instead.
Unfortunately, this does not help as well... Thanks though! I am wondering how the 2000+ unresolvable perl packages for SLES11+ will be delt with? Adjusting the prjconf for that repo with a statement for each and every one of these packages seems unfeasible. There should be a more general solution for this problem, right?
participants (4)
-
Andreas Schwab
-
Frank Schreiner
-
Joschi Brauchle
-
Stephan Kulow