[opensuse-buildservice] New Git workslow error for 42.1 target "nothing provides obs-service-tar"
Hello, I am trying to convert my OpenCPN package to the new Git workflow. I have taken example from the page http://openbuildservice.org/2016/04/08/new_git_in_27/ My sandbox is here: https://build.opensuse.org/package/show/home:dominig:opencpn-sandbox/OpenCPN... While my package build for 42.1 target, I cannot build for a 42.1 target. The error is the same from a 42.1 or 42.2 host. Following a hint in the mailing list, I have added to my meta prj pointers to the Tools and update repos in both cases (see file copied bellow), but that does not change the outcome. Here is my error log osc build openSUSE_Leap_42.1 Run source service: /usr/lib/obs/service/obs_scm --url https://github.com/OpenCPN/OpenCPN.git --scm git --versionprefix 4.6.0 --outdir /hdd/dominig/OpenCPN/home:dominig:opencpn-sandbox/OpenCPN-4.x-base/tmpz8mwe2.obs_scm.service Detected cached repository... 31047ac4642af8a3a49870edb9b65fa9d5d9fb40 Building OpenCPN-4.x-base.spec for openSUSE_Leap_42.1/x86_64 Getting buildinfo from server and store to /hdd/dominig/OpenCPN/home:dominig:opencpn-sandbox/OpenCPN-4.x-base/.osc/_buildinfo-openSUSE_Leap_42.1-x86_64.xml Getting buildconfig from server and store to /hdd/dominig/OpenCPN/home:dominig:opencpn-sandbox/OpenCPN-4.x-base/.osc/_buildconfig-openSUSE_Leap_42.1-x86_64 buildinfo is broken... it says: unresolvable: nothing provides obs-service-tar Any hint would be welcome. -- Dominig ar Foll Senior Software Architect Intel Open Source Technology Centre ------------- _service -------------- <services> <service name="obs_scm"> <param name="url">https://github.com/OpenCPN/OpenCPN.git</param> <param name="scm">git</param> <param name="versionprefix">4.6.0</param> </service> <service mode="buildtime" name="tar" /> <service mode="buildtime" name="recompress"> <param name="file">*.tar</param> <param name="compression">xz</param> </service> <service mode="buildtime" name="set_version" /> </services> -------------- meta prj ------------- <project name="home:dominig:opencpn-sandbox"> <title>Test zone for new OpenCPN releases</title> <description>This is my sand box. Please use the official repo for OpenCPN download Application:Geo:OpenCPN </description> <person userid="dominig" role="bugowner"/> <person userid="dominig" role="maintainer"/> <debuginfo> <enable/> <disable repository="Fedora_22"/> <disable repository="Fedora_23"/> </debuginfo> <repository name="openSUSE_Leap_42.2"> <path project="openSUSE:Leap:42.2" repository="standard"/> <path project="openSUSE:Leap:42.2:Update" repository="standard"/> <path project="openSUSE:Tools" repository="openSUSE_42.2"/> <arch>x86_64</arch> </repository> <repository name="openSUSE_Leap_42.1"> <path project="openSUSE:Leap:42.1" repository="standard"/> <path project="openSUSE:Leap:42.1:Update" repository="standard"/> <path project="openSUSE:Tools" repository="openSUSE_42.1"/> <arch>x86_64</arch> </repository> </project> -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On 2017-03-22 19:12:35 +0100, Dominig ar Foll (Intel Open Source) wrote:
My sandbox is here:
https://build.opensuse.org/package/show/home:dominig:opencpn-sandbox/OpenCPN...
While my package build for 42.1 target, I cannot build for a 42.1 target. The error is the same from a 42.1 or 42.2 host.
Building for 42.2 should work.
<repository name="openSUSE_Leap_42.1"> <path project="openSUSE:Leap:42.1" repository="standard"/> <path project="openSUSE:Leap:42.1:Update" repository="standard"/> <path project="openSUSE:Tools" repository="openSUSE_42.1"/> <arch>x86_64</arch> </repository>
You need to remove the first path entry, because "obs-service-tar" is only provided by the obs-service-tar_scm package that is shipped via the openSUSE:Leap:42.1:Update project. However, the openSUSE:Leap:42.1 project also ships a obs-service-tar_scm package (without the "Provides: obs-service-tar"). Since the <path /> element for openSUSE:Leap:42.1 precedes the <path /> element for openSUSE:Leap:42.1:Update, the package with the "correct" provides entry is not considered. Long story short: something like this should fix it: <repository name="openSUSE_Leap_42.1"> <path project="openSUSE:Leap:42.1:Update" repository="standard"/> <arch>x86_64</arch> </repository> Marcus -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Marcus, thanks for the explanation. I had just found a few minute before the trick but without understanding the why. If would be good to add the hint in the documentation as it is far from less obvious :-) http://openbuildservice.org/2016/04/08/new_git_in_27/ Dominig Le 22/03/2017 à 20:55, Marcus Hüwe a écrit :
On 2017-03-22 19:12:35 +0100, Dominig ar Foll (Intel Open Source) wrote:
My sandbox is here:
https://build.opensuse.org/package/show/home:dominig:opencpn-sandbox/OpenCPN...
While my package build for 42.1 target, I cannot build for a 42.1 target. The error is the same from a 42.1 or 42.2 host. Building for 42.2 should work.
<repository name="openSUSE_Leap_42.1"> <path project="openSUSE:Leap:42.1" repository="standard"/> <path project="openSUSE:Leap:42.1:Update" repository="standard"/> <path project="openSUSE:Tools" repository="openSUSE_42.1"/> <arch>x86_64</arch> </repository> You need to remove the first path entry, because "obs-service-tar" is only provided by the obs-service-tar_scm package that is shipped via the openSUSE:Leap:42.1:Update project. However, the openSUSE:Leap:42.1 project also ships a obs-service-tar_scm package (without the "Provides: obs-service-tar"). Since the <path /> element for openSUSE:Leap:42.1 precedes the <path /> element for openSUSE:Leap:42.1:Update, the package with the "correct" provides entry is not considered. Long story short: something like this should fix it:
<repository name="openSUSE_Leap_42.1"> <path project="openSUSE:Leap:42.1:Update" repository="standard"/> <arch>x86_64</arch> </repository>
Marcus
-- Dominig ar Foll Senior Software Architect Intel Open Source Technology Centre -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Hello, after many attempt, I have found a work around but to be honest I do not understand why it works ??? Nevertheless it might be of use for other miserable maintainer of package for 42.1 When declaring the repo "openSUSE_Leap_42.1" You SHALL NOT declare a path <path project="openSUSE:Leap:42.1" repository="standard"/> If you do so, 'obs-service-tar' will not be found. for 42.2 is does not matter. The work around works for 42.1 and 42.2 host when compiling with osc build as well as in the public OBS Do not under why but trick works. For info, I provide mly updated meta prj. regards Dominig ------------ updated meta prj ----------- <project name="home:dominig:opencpn-sandbox"> <title>Test zone for new OpenCPN releases</title> <description>This is my sand box. Please use the official repo for OpenCPN download Application:Geo:OpenCPN </description> <person userid="dominig" role="bugowner"/> <person userid="dominig" role="maintainer"/> <debuginfo> <enable/> </debuginfo> <repository name="openSUSE_Leap_42.2"> <path project="openSUSE:Leap:42.2" repository="standard"/> <path project="openSUSE:Leap:42.2:Update" repository="standard"/> <path project="openSUSE:Tools" repository="openSUSE_42.2"/> <arch>x86_64</arch> </repository> <repository name="openSUSE_Leap_42.1"> <path project="openSUSE:Leap:42.1:Update" repository="standard"/> <path project="openSUSE:Tools" repository="openSUSE_42.1"/> <arch>x86_64</arch> </repository> </project> Le 22/03/2017 à 19:12, Dominig ar Foll (Intel Open Source) a écrit :
Hello,
I am trying to convert my OpenCPN package to the new Git workflow. I have taken example from the page http://openbuildservice.org/2016/04/08/new_git_in_27/ My sandbox is here:
https://build.opensuse.org/package/show/home:dominig:opencpn-sandbox/OpenCPN...
While my package build for 42.1 target, I cannot build for a 42.1 target. The error is the same from a 42.1 or 42.2 host. Following a hint in the mailing list, I have added to my meta prj pointers to the Tools and update repos in both cases (see file copied bellow), but that does not change the outcome. Here is my error log
osc build openSUSE_Leap_42.1 Run source service: /usr/lib/obs/service/obs_scm --url https://github.com/OpenCPN/OpenCPN.git --scm git --versionprefix 4.6.0 --outdir /hdd/dominig/OpenCPN/home:dominig:opencpn-sandbox/OpenCPN-4.x-base/tmpz8mwe2.obs_scm.service Detected cached repository... 31047ac4642af8a3a49870edb9b65fa9d5d9fb40 Building OpenCPN-4.x-base.spec for openSUSE_Leap_42.1/x86_64 Getting buildinfo from server and store to /hdd/dominig/OpenCPN/home:dominig:opencpn-sandbox/OpenCPN-4.x-base/.osc/_buildinfo-openSUSE_Leap_42.1-x86_64.xml Getting buildconfig from server and store to /hdd/dominig/OpenCPN/home:dominig:opencpn-sandbox/OpenCPN-4.x-base/.osc/_buildconfig-openSUSE_Leap_42.1-x86_64 buildinfo is broken... it says: unresolvable: nothing provides obs-service-tar
Any hint would be welcome.
-- Dominig ar Foll Senior Software Architect Intel Open Source Technology Centre -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (2)
-
Dominig ar Foll (Intel Open Source)
-
Marcus Hüwe