[opensuse-buildservice] version resolution problem
Hi, I am having a version resolution problem in that my spec file triggers the following error message: Building perl-Test-ClassAPI.spec for openSUSE_11.1/x86_64 Getting buildinfo from server buildinfo is broken... it says: expansion error: nothing provides perl-Class-Inspector >= 1.23 The project is home:rjschwei:perl-test-classapi The spec file contains the following tags: Requires: perl-Class-Inspector >= 1.23 ... BuildRequires: perl-Class-Inspector >= 1.23 I have added <path repository="openSUSE_11.1" project="devel:languages:perl"/> to the meta data and according to https://build.opensuse.org/package/view_file?file=perl-Class-Inspector.spec&package=perl-Class-Inspector&project=openSUSE%3AFactory the Class-Inspector package is at version 1.23, something confirmed based on the package installed on my system: -> rpm -qa | grep perl | grep Class-Inspector perl-Class-Inspector-1.23-2.1 What am I missing here? Help is much appreciated. Thanks, Robert -- Robert Schweikert MAY THE SOURCE BE WITH YOU Software Engineer Consultant LINUX rschweikert@novell.com 781-464-8147 Novell Making IT Work As One -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Robert Schweikert wrote:
Hi,
I am having a version resolution problem in that my spec file triggers the following error message:
Building perl-Test-ClassAPI.spec for openSUSE_11.1/x86_64 Getting buildinfo from server buildinfo is broken... it says: expansion error: nothing provides perl-Class-Inspector >= 1.23
The project is home:rjschwei:perl-test-classapi
The spec file contains the following tags:
Requires: perl-Class-Inspector >= 1.23 ... BuildRequires: perl-Class-Inspector >= 1.23
I have added <path repository="openSUSE_11.1" project="devel:languages:perl"/>
to the meta data and according to https://build.opensuse.org/package/view_file?file=perl-Class-Inspector.spec&package=perl-Class-Inspector&project=openSUSE%3AFactory
the Class-Inspector package is at version 1.23, something confirmed based on the package installed on my system:
-> rpm -qa | grep perl | grep Class-Inspector perl-Class-Inspector-1.23-2.1
What am I missing here?
Help is much appreciated.
Thanks, Robert Looking at your spec file you actually seem to have two lines: BuildRequires: perl-Class-Inspector >= 1.23 BuildRequires: perl-Class-Inspector >= 2.12 and of course the second one cannot be satisfied. Try removing that second line and see what the build system says.
As an aside your repository layout seems odd, IIRC you are building all these packages to eventually be able to build perlcritic. Dependencies should ideally be also in the same project as the final perlcritic package, otherwise you will end up linking to them again to build perlcritic. Having one package per repository seems exceedingly inefficient ... Regards, MasterPatricko -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
MasterPatricko wrote:
Robert Schweikert wrote:
Hi,
I am having a version resolution problem in that my spec file triggers the following error message:
Building perl-Test-ClassAPI.spec for openSUSE_11.1/x86_64 Getting buildinfo from server buildinfo is broken... it says: expansion error: nothing provides perl-Class-Inspector >= 1.23
The project is home:rjschwei:perl-test-classapi
The spec file contains the following tags:
Requires: perl-Class-Inspector >= 1.23 ... BuildRequires: perl-Class-Inspector >= 1.23
I have added <path repository="openSUSE_11.1" project="devel:languages:perl"/>
to the meta data and according to https://build.opensuse.org/package/view_file?file=perl-Class-Inspector.spec&package=perl-Class-Inspector&project=openSUSE%3AFactory
the Class-Inspector package is at version 1.23, something confirmed based on the package installed on my system:
-> rpm -qa | grep perl | grep Class-Inspector perl-Class-Inspector-1.23-2.1
What am I missing here?
Help is much appreciated.
Thanks, Robert
Looking at your spec file you actually seem to have two lines: BuildRequires: perl-Class-Inspector >= 1.23 BuildRequires: perl-Class-Inspector >= 2.12
I did notice this and had fixed it in my local copy prior to posting my original message. Thus, this was not the root cause. I have committed my changes thus the server now reflects my latest copy.
and of course the second one cannot be satisfied. Try removing that second line and see what the build system says.
As an aside your repository layout seems odd, IIRC you are building all these packages to eventually be able to build perlcritic. Dependencies should ideally be also in the same project as the final perlcritic package, otherwise you will end up linking to them again to build perlcritic. Having one package per repository seems exceedingly inefficient ...
Thanks for the info. How would I organize this if instead of a project all the things perlcritic depends on would be part of the perlcritic project? home:rjschwei:perl-perlcritic/ perl-Test-ClassAPI perl-Test-Object perl-Test-SubCalls ..... i.e. each dependency is a directory containing the spec file and the source tarball? Thanks, Robert
Regards,
MasterPatricko
-- Robert Schweikert MAY THE SOURCE BE WITH YOU Software Engineer Consultant LINUX rschweikert@novell.com 781-464-8147 Novell Making IT Work As One -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Thanks for the info. How would I organize this if instead of a project all the things perlcritic depends on would be part of the perlcritic project?
home:rjschwei:perl-perlcritic/ perl-Test-ClassAPI perl-Test-Object perl-Test-SubCalls .....
i.e. each dependency is a directory containing the spec file and the source tarball? Exactly. Each _project_ can contain many _packages_ with their own
Robert Schweikert wrote: source and spec file and history. It is common to build a package and all its dependencies and related packages in one project rather than having many smaller projects all linking to each other. For example all of KDE is built in the one project KDE:43. Also, any project can build each package for many _repositories_, e.g. both openSUSE 11.1 and openSUSE Factory as you are already doing. Each _repository_ can be told to fetch the required BuildRequires packages from a different parent repository, so for example KDE:43/openSUSE_11.1 builds against the project openSUSE:11.1/standard while KDE:KDE4:Community/openSUSE_11.1_KDE43 builds against KDE:43/openSUSE_11.1. Note that KDE:KDE4:Community/openSUSE_11.1_KDE43 does not have to separately reference openSUSE:11.1/standard because it inherits that reference from its parent KDE:43/openSUSE_11.1. Now if you try to build against the devel:languages:perl for each of your repositories in your project config (e.g. for openSUSE_11.1 use devel:languages:perl/openSUSE_11.1, for openSUSE_Factory use devel:languages:perl/openSUSE_Factory) it should find the missing packages (the current expansion errors) and start building ... (hopefully!). While adding that reference you may want to remove the redundant references to openSUSE:11.1/standard or openSUSE:Factory/snapshot. That should avoid any conflicts which might have been the problem you were seeing earlier with the apparently unresolved dependency. Regards, MasterPatricko -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Thanks, Moved everything to a new project home:rjschwei:perl-perlcritic and got the perl-Test-ClassAPI package to build now. The help is appreciated. Robert MasterPatricko wrote:
Robert Schweikert wrote:
Thanks for the info. How would I organize this if instead of a project all the things perlcritic depends on would be part of the perlcritic project?
home:rjschwei:perl-perlcritic/ perl-Test-ClassAPI perl-Test-Object perl-Test-SubCalls .....
i.e. each dependency is a directory containing the spec file and the source tarball?
Exactly. Each _project_ can contain many _packages_ with their own source and spec file and history. It is common to build a package and all its dependencies and related packages in one project rather than having many smaller projects all linking to each other. For example all of KDE is built in the one project KDE:43.
Also, any project can build each package for many _repositories_, e.g. both openSUSE 11.1 and openSUSE Factory as you are already doing. Each _repository_ can be told to fetch the required BuildRequires packages from a different parent repository, so for example KDE:43/openSUSE_11.1 builds against the project openSUSE:11.1/standard while KDE:KDE4:Community/openSUSE_11.1_KDE43 builds against KDE:43/openSUSE_11.1.
Note that KDE:KDE4:Community/openSUSE_11.1_KDE43 does not have to separately reference openSUSE:11.1/standard because it inherits that reference from its parent KDE:43/openSUSE_11.1.
Now if you try to build against the devel:languages:perl for each of your repositories in your project config (e.g. for openSUSE_11.1 use devel:languages:perl/openSUSE_11.1, for openSUSE_Factory use devel:languages:perl/openSUSE_Factory) it should find the missing packages (the current expansion errors) and start building ... (hopefully!). While adding that reference you may want to remove the redundant references to openSUSE:11.1/standard or openSUSE:Factory/snapshot. That should avoid any conflicts which might have been the problem you were seeing earlier with the apparently unresolved dependency.
Regards,
MasterPatricko
-- Robert Schweikert MAY THE SOURCE BE WITH YOU Software Engineer Consultant LINUX rschweikert@novell.com 781-464-8147 Novell Making IT Work As One -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (2)
-
MasterPatricko
-
Robert Schweikert