[opensuse-buildservice] Making the build script solve package dependencies
In a quest to make sure I don't have to repeatedly make a small change, use osc to update the packages on the build service, and then wait for a rebuild, I've been using the build script[0]. For most packages this works well but on some of the perl packages I'm building, I'm having problems where two or more packages satisfying dependencies and the build script aborting because it can't choose one or the other. The most common situation is where perl-libwww-perl and sitescooper both provide several of the same dependencies, with sitescooper usually having the older version. While the build service installs the package perl-libwww-perl, the build script aborts with an expansion error listing all the packages that satisfy the dependencies. What I'd like to know is, short of adding a specific dependency for perl-libwww-perl to the spec files, is there a way to make the build script handle the dependencies just like the build service? [0] from build-2008.09.30-3.1 from openSUSE:Tools/openSUSE_10.3 Regards, David Bolt -- Team Acorn: http://www.distributed.net/ OGR-P2 @ ~100Mnodes RC5-72 @ ~15Mkeys SUSE 10.1 32 | | openSUSE 10.3 32b | openSUSE 11.0 32b | openSUSE 10.2 64b | openSUSE 10.3 64b | openSUSE 11.0 64b RISC OS 3.6 | TOS 4.02 | openSUSE 10.3 PPC | RISC OS 3.11 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thu, Oct 09, 2008 at 10:25:58PM +0100, David Bolt wrote:
In a quest to make sure I don't have to repeatedly make a small change, use osc to update the packages on the build service, and then wait for a rebuild, I've been using the build script[0]. For most packages this works well but on some of the perl packages I'm building, I'm having problems where two or more packages satisfying dependencies and the build script aborting because it can't choose one or the other.
The most common situation is where perl-libwww-perl and sitescooper both provide several of the same dependencies, with sitescooper usually having the older version. While the build service installs the package perl-libwww-perl, the build script aborts with an expansion error listing all the packages that satisfy the dependencies.
What I'd like to know is, short of adding a specific dependency for perl-libwww-perl to the spec files, is there a way to make the build script handle the dependencies just like the build service?
sitescooper should just not provide the stuff. There lies the fix :) Ciao, Marcus -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thu, 9 Oct 2008, Marcus Meissner wrote:- <snip>
sitescooper should just not provide the stuff. There lies the fix :)
While sitescooper is the main problem, I also get the same issue with apache2-mod_perl. The issue with sitescooper affects at least openSUSE 10.3, and since it exists in 10.2 will probably affect that as well. So, short of removing the package from my copies of both these two repos or adding perl-libwww-perl as a dependency[0], can you think of any other way around it? [0] While I can do that, and add it within and %if/%endif block, it's not really something I want to do unless I have to. Regards, David Bolt -- Team Acorn: http://www.distributed.net/ OGR-P2 @ ~100Mnodes RC5-72 @ ~15Mkeys SUSE 10.1 32 | | openSUSE 10.3 32b | openSUSE 11.0 32b | openSUSE 10.2 64b | openSUSE 10.3 64b | openSUSE 11.0 64b RISC OS 3.6 | TOS 4.02 | openSUSE 10.3 PPC | RISC OS 3.11 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thu, 9 Oct 2008, David Bolt wrote:-
On Thu, 9 Oct 2008, Marcus Meissner wrote:-
<snip>
sitescooper should just not provide the stuff. There lies the fix :)
I solved the sitescooper problem by just renaming it and specifying the specific RPM directories. However, that didn't solve the underlying issue where if there are two packages that would satisfy a dependency, the latest version isn't chosen. An example is like this run: lion:~ # build --ccache --clean --rpms /mounts/dav2/backups/backups/RPMS-10.3/ppc:/m ounts/dav2/backups/backups/RPMS-10.3/noarch:/mounts/dav2/backups/RPMS/DISTRO/10.3/pp c:/mounts/dav2/backups/RPMS/DISTRO/10.3/noarch:/mounts/dav2/backups/RPMS/OTHERS/10.3 /ppc:/mounts/dav2/backups/RPMS/OTHERS/10.3/noarch:/mounts/cobra-mk3/local/openSUSE- 10.3-GM/suse/ppc:/mounts/cobra-mk3/local/openSUSE-10.3-GM/suse/noarch:/mounts/playin g/share/suse/i386/update/10.3 --root /local/build-root-10.3 --arch ppc /usr/src/pack ages/SOURCES/kslide-1.0-2.1.suse103.src.rpm logging output to /local/build-root-10.3/.build.log... Memory limit set to 255828KB Using BUILD_ROOT=/local/build-root-10.3 Using BUILD_RPMS=/mounts/dav2/backups/backups/RPMS-10.3/ppc:/mounts/dav2/backups/bac kups/RPMS-10.3/noarch:/mounts/dav2/backups/RPMS/DISTRO/10.3/ppc:/mounts/dav2/backups /RPMS/DISTRO/10.3/noarch:/mounts/dav2/backups/RPMS/OTHERS/10.3/ppc:/mounts/dav2/back ups/RPMS/OTHERS/10.3/noarch:/mounts/cobra-mk3/local/openSUSE-10.3-GM/suse/ppc:/mount s/cobra-mk3/local/openSUSE-10.3-GM/suse/noarch:/mounts/playing/share/suse/i386/updat e/10.3 Using BUILD_ARCH=ppc lion started "build kslide-1.0-2.1.suse103.src.rpm" at Tue Oct 14 23:02:44 BST 2008. processing src rpm /usr/src/packages/SOURCES/kslide-1.0-2.1.suse103.src.rpm... init_buildsystem --clean /local/build-root-10.3/.build-srcdir/kslide.spec ccache ... expanding package dependencies... expansion error have choice for jack-devel needed by arts-devel: jack-devel libjack-devel have choice for libjack.so.0 needed by arts: libjack libjack0 lion:~ # In this case, libjack0 and libjack-devel provide newer versions but the build script won't continue because it can't choose my package. What I need help with is a way to force build to use the latest version. Is there any way of making build prefer RPMs I've built and stored in one path, to the distro supplied versions stored in another path? Regards, David Bolt -- Team Acorn: http://www.distributed.net/ OGR-P2 @ ~100Mnodes RC5-72 @ ~15Mkeys SUSE 10.1 32 | | openSUSE 10.3 32b | openSUSE 11.0 32b | openSUSE 10.2 64b | openSUSE 10.3 64b | openSUSE 11.0 64b RISC OS 3.6 | TOS 4.02 | openSUSE 10.3 PPC | RISC OS 3.11 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wednesday 15 October 2008 00:17:35 wrote David Bolt:
On Thu, 9 Oct 2008, David Bolt wrote:-
On Thu, 9 Oct 2008, Marcus Meissner wrote:-
<snip>
sitescooper should just not provide the stuff. There lies the fix :)
I solved the sitescooper problem by just renaming it and specifying the specific RPM directories. However, that didn't solve the underlying issue where if there are two packages that would satisfy a dependency, the latest version isn't chosen. An example is like this run:
lion:~ # build --ccache --clean --rpms /mounts/dav2/backups/backups/RPMS-10.3/ppc:/m ounts/dav2/backups/backups/RPMS-10.3/noarch:/mounts/dav2/backups/RPMS/DISTR O/10.3/pp c:/mounts/dav2/backups/RPMS/DISTRO/10.3/noarch:/mounts/dav2/backups/RPMS/OT HERS/10.3 /ppc:/mounts/dav2/backups/RPMS/OTHERS/10.3/noarch:/mounts/cobra-mk3/local/o penSUSE- 10.3-GM/suse/ppc:/mounts/cobra-mk3/local/openSUSE-10.3-GM/suse/noarch:/moun ts/playin g/share/suse/i386/update/10.3 --root /local/build-root-10.3 --arch ppc /usr/src/pack ages/SOURCES/kslide-1.0-2.1.suse103.src.rpm logging output to /local/build-root-10.3/.build.log... Memory limit set to 255828KB Using BUILD_ROOT=/local/build-root-10.3 Using BUILD_RPMS=/mounts/dav2/backups/backups/RPMS-10.3/ppc:/mounts/dav2/backups/ bac kups/RPMS-10.3/noarch:/mounts/dav2/backups/RPMS/DISTRO/10.3/ppc:/mounts/dav 2/backups /RPMS/DISTRO/10.3/noarch:/mounts/dav2/backups/RPMS/OTHERS/10.3/ppc:/mounts/ dav2/back ups/RPMS/OTHERS/10.3/noarch:/mounts/cobra-mk3/local/openSUSE-10.3-GM/suse/p pc:/mount s/cobra-mk3/local/openSUSE-10.3-GM/suse/noarch:/mounts/playing/share/suse/i 386/updat e/10.3 Using BUILD_ARCH=ppc
lion started "build kslide-1.0-2.1.suse103.src.rpm" at Tue Oct 14 23:02:44 BST 2008.
processing src rpm /usr/src/packages/SOURCES/kslide-1.0-2.1.suse103.src.rpm... init_buildsystem --clean /local/build-root-10.3/.build-srcdir/kslide.spec ccache ... expanding package dependencies... expansion error have choice for jack-devel needed by arts-devel: jack-devel libjack-devel have choice for libjack.so.0 needed by arts: libjack libjack0 lion:~ #
In this case, libjack0 and libjack-devel provide newer versions but the build script won't continue because it can't choose my package.
What I need help with is a way to force build to use the latest version. Is there any way of making build prefer RPMs I've built and stored in one path, to the distro supplied versions stored in another path?
If this is an upstream change, this might have defined already in 10.3 project config, so just using "osc build ..." would help. If not, you can set a "Prefer: libjack0" or "Prefer: -libjack" in the project config of your project. You can do so by osc meta prjconf -e $your_project and add the mentioned Prefer lines there. Note, you need to use "osc build" afterwards. bye adrian -- Adrian Schroeter SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thursday 09 October 2008 23:25:58 David Bolt wrote:
In a quest to make sure I don't have to repeatedly make a small change, use osc to update the packages on the build service, and then wait for a rebuild, I've been using the build script[0]. For most packages this works well but on some of the perl packages I'm building, I'm having problems where two or more packages satisfying dependencies and the build script aborting because it can't choose one or the other.
The most common situation is where perl-libwww-perl and sitescooper both provide several of the same dependencies, with sitescooper usually having the older version. While the build service installs the package perl-libwww-perl, the build script aborts with an expansion error listing all the packages that satisfy the dependencies.
What I'd like to know is, short of adding a specific dependency for perl-libwww-perl to the spec files, is there a way to make the build script handle the dependencies just like the build service?
You should be able to use the project conf files as configs for the build script as well. Just check for the configs which are part of the build script. You can get configs from obs via osc meta prjconf openSUSE:11.0 for example. The feature of using "osc build" is to get always the latest configs merged together and to use latest rpm package versions. bye adrian -- Adrian Schroeter SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (3)
-
Adrian Schröter
-
David Bolt
-
Marcus Meissner