[opensuse-buildservice] Repository order and package versions
Hi, I want to create a package for openSUSE 11.1 that requires Qt >= 4.5, and so I say in the BuildRequires entry. That means I must compile it against the version from KDE:Qt, but there are other packages in the repo, and I would prefer that they use the official Qt packages. Using <repository name="openSUSE_11.1"> <path project="KDE:Qt" repository="openSUSE_11.1"/> <path project="openSUSE:11.1" repository="standard"/> <arch>x86_64</arch> <arch>i586</arch> </repository> all the packages will use the version from KDE:Qt. So I though that using <repository name="openSUSE_11.1"> <path project="openSUSE:11.1" repository="standard"/> <path project="KDE:Qt" repository="openSUSE_11.1"/> <arch>x86_64</arch> <arch>i586</arch> </repository> packages that BuildRequire "libqt-devel" would use the one from openSUSE:11.1, and the ones that BuildRequire "libqt-devel >= 4.5.0" would use the one from KDE:Qt. But at practice what I get with the second option is an expansion error complaining about the lack of "libqt-devel >= 4.5.0". ...well, it isn't missing, it just should continue searching. Bug or something unfixable given the internal working of the OBS? -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Donnerstag, 7. Mai 2009 18:36:02 schrieb Cristian Morales Vega:
Hi,
I want to create a package for openSUSE 11.1 that requires Qt >= 4.5, and so I say in the BuildRequires entry. That means I must compile it against the version from KDE:Qt, but there are other packages in the repo, and I would prefer that they use the official Qt packages. Using <repository name="openSUSE_11.1"> <path project="KDE:Qt" repository="openSUSE_11.1"/>
<path project="openSUSE:11.1" repository="standard"/>
You can skip this line, since KDE:Qt/openSUSE_11.1 is anyway building against it, this get pulled anyway.
<arch>x86_64</arch> <arch>i586</arch> </repository> all the packages will use the version from KDE:Qt. So I though that using <repository name="openSUSE_11.1">
<path project="openSUSE:11.1" repository="standard"/> <path project="KDE:Qt" repository="openSUSE_11.1"/>
double definition, but due to the order, packages from openSUSE:11.1 get prefered (if they have same name).
<arch>x86_64</arch> <arch>i586</arch> </repository> packages that BuildRequire "libqt-devel" would use the one from openSUSE:11.1, and the ones that BuildRequire "libqt-devel >= 4.5.0" would use the one from KDE:Qt. But at practice what I get with the second option is an expansion error complaining about the lack of "libqt-devel >= 4.5.0".
...well, it isn't missing, it just should continue searching. Bug or something unfixable given the internal working of the OBS?
it is more considered as user error ;) When you have a package which should build in a different setup, you need to create another target definition. for example: <repository name="openSUSE_11.1"> <path project="openSUSE:11.1" repository="standard"/> <arch>x86_64</arch> <arch>i586</arch> </repository> <repository name="openSUSE_11.1_with_KDE_Qt"> <path project="KDE:Qt" repository="openSUSE_11.1"/> <arch>x86_64</arch> <arch>i586</arch> </repository> afterwards you can enable and/or disable your packages to build in the proper targets aka repositories. The user has anyway to decide afterwards if he want to use the new or the original libqt. But that happens automatically for him by deciding which repo from your project he is using. bye adrian -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (2)
-
Adrian Schröter
-
Cristian Morales Vega