[opensuse-buildservice] Problem with "build" dependency resolver
Hi All, I have a problem with the opensuse "build" script which is used in MeeGo, too. For the tests below I used the current git version (25b46a909ba0bcfec97821c1d06ad6cc41a9a2bc). I want to build an external kernel module. In the specfile I have [...] %define kernelversion 2.6.33.5-27.1 [...] BuildRequires: kernel-netbook-devel [...] I use the kernelversion macro later to avoid the use of $(uname -r) commonly found in the Makefiles of out-of-tree kernel modules. I pass several repository URLs to build: sudo /usr/bin/build \ --repository http://linuxdownload.adobe.com/linux/i386/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/non-oss/repos/ia32/packages \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/non-oss/repos/ia32/packages \ --repository http://repo.meego.com/MeeGo/releases/1.0/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/non-oss/repos/ia32/packages \ --arch i686 \ --target i686 \ --root /mnt/pool/meego/build-root/ \ --cachedir /mnt/pool/meego/build-cache \ kernel-test.spec The latest version of the kernel-netbook-devel package (at the time of this writing) is http://repo.meego.com/MeeGo/updates/1.0/core/repos/ia32/packages/kernel-netb.... Unfortunately this is not the one "build" decides to install in the build-root directory. Instead it chooses some older version (not the oldest!) and yet another version for the kernel-netbook package (required by kernel-netbook-devel). I have tried to use BuildRequires: kernel-netbook-devel = 2.6.33.5-27.1 without success. Can you please give a hint what is going wrong. I have already sent an email to the meego-packaging list about this[1] and another user has the same problem and wrote to the meego-dev list[2]. Nobody answered. Thanks in advance, Rolf. [1] http://article.gmane.org/gmane.comp.handhelds.meego.packaging/558 [2] http://article.gmane.org/gmane.comp.handhelds.meego.devel/6911 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Nov 30, 2010 at 05:22:16PM +0100, Rolf Offermanns wrote:
I have a problem with the opensuse "build" script which is used in MeeGo, too. For the tests below I used the current git version (25b46a909ba0bcfec97821c1d06ad6cc41a9a2bc).
I want to build an external kernel module. In the specfile I have [...] %define kernelversion 2.6.33.5-27.1 [...] BuildRequires: kernel-netbook-devel [...]
I use the kernelversion macro later to avoid the use of $(uname -r) commonly found in the Makefiles of out-of-tree kernel modules.
I pass several repository URLs to build:
sudo /usr/bin/build \ --repository http://linuxdownload.adobe.com/linux/i386/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/non-oss/repos/ia32/packages \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/non-oss/repos/ia32/packages \ --repository http://repo.meego.com/MeeGo/releases/1.0/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/non-oss/repos/ia32/packages \ --arch i686 \ --target i686 \ --root /mnt/pool/meego/build-root/ \ --cachedir /mnt/pool/meego/build-cache \ kernel-test.spec
The latest version of the kernel-netbook-devel package (at the time of this writing) is http://repo.meego.com/MeeGo/updates/1.0/core/repos/ia32/packages/kernel-netb....
Unfortunately this is not the one "build" decides to install in the build-root directory. Instead it chooses some older version (not the oldest!) and yet another version for the kernel-netbook package (required by kernel-netbook-devel).
Is the older version also in the 1.0/core repo? Unlike the build service which always uses the best version of a package in a repo, the build script is a bit stupid and uses the first one it sees. (The repos itself are priorized, e.g. if a package is in 1.0/core, all versions in 1.0/extra and the following repos are ignored. This is by design.) I'll fix the code ASAP so that build script behaves the same as the build service. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 11/30/2010 05:43 PM, Michael Schroeder wrote:
sudo /usr/bin/build \ --repository http://linuxdownload.adobe.com/linux/i386/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/updates/1.0/non-oss/repos/ia32/packages \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0.1/non-oss/repos/ia32/packages \ --repository http://repo.meego.com/MeeGo/releases/1.0/core/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/extra/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/netbook/repos/ia32/packages/ \ --repository http://repo.meego.com/MeeGo/releases/1.0/non-oss/repos/ia32/packages \ --arch i686 \ --target i686 \ --root /mnt/pool/meego/build-root/ \ --cachedir /mnt/pool/meego/build-cache \ kernel-test.spec
[...]
Is the older version also in the 1.0/core repo? Unlike the build service which always uses the best version of a package in a repo, the build script is a bit stupid and uses the first one it sees. (The repos itself are priorized, e.g. if a package is in 1.0/core, all versions in 1.0/extra and the following repos are ignored. This is by design.)
It looks like this: releases/1.0/core ----------------- kernel-netbook-2.6.33.3-11.1.i586.rpm updates/1.0/core ---------------- kernel-netbook-devel-2.6.33.3-19.1.i586.rpm kernel-netbook-devel-2.6.33.5-20.1.i586.rpm kernel-netbook-devel-2.6.33.5-22.1.i586.rpm kernel-netbook-devel-2.6.33.5-23.1.i586.rpm kernel-netbook-devel-2.6.33.5-24.1.i586.rpm kernel-netbook-devel-2.6.33.5-25.1.i586.rpm kernel-netbook-devel-2.6.33.5-26.1.i586.rpm kernel-netbook-devel-2.6.33.5-27.1.i586.rpm releases/1.0.1/core ------------------- kernel-netbook-devel-2.6.33.3-11.1.i586.rpm kernel-netbook-devel-2.6.33.3-19.1.i586.rpm kernel-netbook-devel-2.6.33.5-20.1.i586.rpm kernel-netbook-devel-2.6.33.5-22.1.i586.rpm kernel-netbook-devel-2.6.33.5-23.1.i586.rpm The one picked is: 2.6.33.5-24.1 When you say the repos itself are priorized, do you mean by order of build cmdline arguments, or by some metadata in the repositories?
I'll fix the code ASAP so that build script behaves the same as the build service.
Thank you. Shall I open a bug for this? Or is there one I can track? -Rolf -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Nov 30, 2010 at 05:56:36PM +0100, Rolf Offermanns wrote:
When you say the repos itself are priorized, do you mean by order of build cmdline arguments, or by some metadata in the repositories?
Yes, by order of cmdline arguments.
I'll fix the code ASAP so that build script behaves the same as the build service.
Thank you. Shall I open a bug for this? Or is there one I can track?
Please open a bug in bugzilla.novell.com. Thanks, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 11/30/2010 06:01 PM, Michael Schroeder wrote:
On Tue, Nov 30, 2010 at 05:56:36PM +0100, Rolf Offermanns wrote:
When you say the repos itself are priorized, do you mean by order of build cmdline arguments, or by some metadata in the repositories?
Yes, by order of cmdline arguments.
I'll fix the code ASAP so that build script behaves the same as the build service.
Thank you. Shall I open a bug for this? Or is there one I can track?
Please open a bug in bugzilla.novell.com.
https://bugzilla.novell.com/show_bug.cgi?id=656599 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (2)
-
Michael Schroeder
-
Rolf Offermanns