[opensuse-buildservice] prj config to get oss repo?
To compile a package in my OBS project I need a -devel package from the oss repo. How is that possible? osc meta -e prj <repository name="openSUSE_11.4"> <path project="openSUSE:11.4" repository="standard"/> What goes here?: <path project="openSUSE:11.4" repository="Oss"/> <arch>i586</arch> <arch>x86_64</arch> </repository> Searching gives no result. The biggest problem with OBS in my experience is that efficient work is not possible because documentation is so absent. Thanks, Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Am Dienstag, 22. November 2011, 00:57:49 schrieb Volker Kuhlmann:
To compile a package in my OBS project I need a -devel package from the oss repo. How is that possible?
oss is a product.
osc meta -e prj
<repository name="openSUSE_11.4"> <path project="openSUSE:11.4" repository="standard"/>
you should have all packages already. oss is just one product build based on it.
What goes here?: <path project="openSUSE:11.4" repository="Oss"/>
<arch>i586</arch> <arch>x86_64</arch> </repository>
Searching gives no result.
The biggest problem with OBS in my experience is that efficient work is not possible because documentation is so absent.
Feel free to join the book writing approach. I blogged about it.
Thanks,
Volker -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Tue 22 Nov 2011 01:29:32 NZDT +1300, Adrian Schröter wrote:
oss is a product.
Whatever that means in OBS.
you should have all packages already. oss is just one product build based on it.
Hmm, the error is error: Failed build dependencies: libelf0-devel is needed by avr-gcc-453-4.5.3-12.1.x86_64 oS 11.4 Unless I'm misinterpreting the error, it's correctly trying to install the package but can't find it. The package isn't showing up in the previous list of "installing ...".
Feel free to join the book writing approach. I blogged about it.
Haven't seen/read it. I'm not saying no, but I doubt I'll be reading the source to work out how it should be used so that that can be written up. Thanks, Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Nov 22, 11 02:01:51 +1300, Volker Kuhlmann wrote:
On Tue 22 Nov 2011 01:29:32 NZDT +1300, Adrian Schröter wrote:
oss is a product.
Whatever that means in OBS.
you should have all packages already. oss is just one product build based on it.
Hmm, the error is
error: Failed build dependencies: libelf0-devel is needed by avr-gcc-453-4.5.3-12.1.x86_64
oS 11.4
osc ll -b openSUSE:11.4 libelf0 standard/i586 37643 Feb 18 14:48 libelf0-0.8.13-4.1.i586.rpm 125225 Feb 18 14:48 libelf0-0.8.13-4.1.src.rpm 35367 Feb 18 14:48 libelf0-32bit-0.8.13-4.1.x86_64.rpm 65032 Feb 18 14:48 libelf0-debuginfo-0.8.13-4.1.i586.rpm 64181 Feb 18 14:48 libelf0-debuginfo-32bit-0.8.13-4.1.x86_64.rpm 64555 Feb 18 14:48 libelf0-debuginfo-x86-0.8.13-4.1.ia64.rpm 40909 Feb 18 14:48 libelf0-debugsource-0.8.13-4.1.i586.rpm 161791 Feb 18 14:48 libelf0-devel-0.8.13-4.1.i586.rpm 35605 Feb 18 14:48 libelf0-x86-0.8.13-4.1.ia64.rpm standard/x86_64 125227 Feb 18 22:27 libelf0-0.8.13-4.1.src.rpm 36475 Feb 18 22:27 libelf0-0.8.13-4.1.x86_64.rpm 66812 Feb 18 22:27 libelf0-debuginfo-0.8.13-4.1.x86_64.rpm 40886 Feb 18 22:27 libelf0-debugsource-0.8.13-4.1.x86_64.rpm 166622 Feb 18 22:27 libelf0-devel-0.8.13-4.1.x86_64.rpm So, a libelf0-devel (binary package) is provided by openSUSE:11.4 libelf0 (source package). And it is published in the download mirrors, e.g. http://download.opensuse.org/distribution/11.4/repo/oss/suse/x86_64/libelf0-... Cannot see what is wrong, so far. Lets visit your specfile: %if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1) BuildRequires: libelf0-devel %endif -> works when unconditional. Please check that %if ... sh: ${4.5.3:0:3}: bad substitution
Feel free to join the book writing approach. I blogged about it.
Haven't seen/read it. I'm not saying no, but I doubt I'll be reading the source to work out how it should be used so that that can be written up.
http://lists.opensuse.org/opensuse-buildservice/2011-01/msg00061.html cheers, JW- -- o \ Juergen Weigert paint it green! __/ _=======.=======_ <V> | jw@suse.de back to ascii! __/ _---|____________\/ \ | 0911 74053-508 __/ (____/ /\ (/) | _____________________________/ _/ \_ vim:set sw=2 wm=8 SUSE LINUX Products GmbH, GF: Jeff Hawn, J.Guild, F.Imendoerffer, HRB 16746 (AG Nuernberg), Maxfeldstrasse 5, 90409 Nuernberg, Germany SuSE. Supporting Linux since 1992. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Tue 22 Nov 2011 04:27:58 NZDT +1300, Juergen Weigert wrote: Thanks for having a look!
Cannot see what is wrong, so far. Lets visit your specfile:
%if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1) BuildRequires: libelf0-devel %endif
-> works when unconditional. Please check that %if ...
That %if works absolutely fine on my system with rpmbuild. If libelf0-devel is not installed the build fails with the expected error message, if the package exists the build succeeds. I do test spec files before uploading them to OBS.
sh: ${4.5.3:0:3}: bad substitution
Where do you get that from? Neither the OBS log nor my local log contain any error/warning regarding this conditional. I'd use rpm macros only, but don't see a solution here. They're a bit limited. So my conclusion is that the build service is broken. It is obviously not behaving as expected. Expected is the behaviour I see locally. I don't see how I can fix this. I am also not really prepared to spend my evenings on reverse-engineering the build service, which I don't see as part of my job when going out of my way to make packages available to everyone when these packages work fine in every respect as far as I can tell. Thanks, Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
I have found the problem. %if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1) works just fine, except in the OBS for BuildRequires:. It does work in the OBS in %description and %build. Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Tue, Nov 22, 2011 at 11:25:15PM +1300, Volker Kuhlmann wrote:
I have found the problem.
%if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1)
works just fine, except in the OBS for BuildRequires:. It does work in the OBS in %description and %build.
Yeah, OBS can't expand %() for obvious reasons. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Nov 22, 11 12:05:50 +0100, Michael Schroeder wrote:
On Tue, Nov 22, 2011 at 11:25:15PM +1300, Volker Kuhlmann wrote:
I have found the problem.
%if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1)
works just fine, except in the OBS for BuildRequires:. It does work in the OBS in %description and %build.
Yeah, OBS can't expand %() for obvious reasons.
The "obvious" reasons are, that * When building a package, the source server employs a virtual machine, and %() shell expansions are honored. * But when we evaluate BuildRequires, the source server does not employ a virtual machine, and %() shell expansions are disabled for security reasons. This also causes those warnings: Warning: spec file parser line 109: can't expand %(...) I'd suggest to put a hardcoded define next to the define of vers %define vers 4.5.3 %define vers_2digit 4.5 cheers, JW- -- o \ Juergen Weigert paint it green! __/ _=======.=======_ <V> | jw@suse.de back to ascii! __/ _---|____________\/ \ | 0911 74053-508 __/ (____/ /\ (/) | _____________________________/ _/ \_ vim:set sw=2 wm=8 SUSE LINUX Products GmbH, GF: Jeff Hawn, J.Guild, F.Imendoerffer, HRB 16746 (AG Nuernberg), Maxfeldstrasse 5, 90409 Nuernberg, Germany SuSE. Supporting Linux since 1992. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Wed 23 Nov 2011 05:57:33 NZDT +1300, Juergen Weigert wrote:
The "obvious" reasons are, that * When building a package, the source server employs a virtual machine, and %() shell expansions are honored. * But when we evaluate BuildRequires, the source server does not employ a virtual machine, and %() shell expansions are disabled for security reasons.
A perfectly good explanation. Drop it into the OBS manual under "additional limitations when using the build service".
This also causes those warnings: Warning: spec file parser line 109: can't expand %(...)
It's not obvious what generates those warnings and why, so I shrugged my shoulders.
I'd suggest to put a hardcoded define next to the define of vers
%define vers 4.5.3 %define vers_2digit 4.5
Adding another manually maintained setting is a possibility. I just removed the conditional, then it's only wasting some computer's time... Thanks, Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Juergen Weigert wrote:
On Nov 22, 11 12:05:50 +0100, Michael Schroeder wrote:
On Tue, Nov 22, 2011 at 11:25:15PM +1300, Volker Kuhlmann wrote:
I have found the problem.
%if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1)
works just fine, except in the OBS for BuildRequires:. It does work in the OBS in %description and %build.
Yeah, OBS can't expand %() for obvious reasons.
The "obvious" reasons are, that * When building a package, the source server employs a virtual machine, and %() shell expansions are honored. * But when we evaluate BuildRequires, the source server does not employ a virtual machine, and %() shell expansions are disabled for security reasons.
Not only that. It wouldn't make sense. BuildRequires are evaluated on the host system because BuildRequires define what's required to install the target system in the first place. So common constructs like %(rpm -q something) would run on the host which yields no useful result even if the execution could be made secure. The solution is to use macros in the prjconf to define the properties of the target system. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Wed 23 Nov 2011 23:21:25 NZDT +1300, Ludwig Nussel wrote:
Yeah, OBS can't expand %() for obvious reasons.
The "obvious" reasons are, that * When building a package, the source server employs a virtual machine, and %() shell expansions are honored. * But when we evaluate BuildRequires, the source server does not employ a virtual machine, and %() shell expansions are disabled for security reasons.
Not only that. It wouldn't make sense. BuildRequires are evaluated on the host system because BuildRequires define what's required to install the target system in the first place. So common constructs like %(rpm -q something) would run on the host which yields no useful result even if the execution could be made secure.
I understand that as evaluating buildrequires on the host system being a bug in the build system.
The solution is to use macros in the prjconf to define the properties of the target system.
And for obvious reasons I'm not interested in doing that for something like this %if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1) which clearly some computer should be doing for me. I am open for any other ways doing this with just macros though. Thanks, Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Volker Kuhlmann wrote:
On Wed 23 Nov 2011 23:21:25 NZDT +1300, Ludwig Nussel wrote:
The "obvious" reasons are, that * When building a package, the source server employs a virtual machine, and %() shell expansions are honored. * But when we evaluate BuildRequires, the source server does not employ a virtual machine, and %() shell expansions are disabled for security reasons.
Not only that. It wouldn't make sense. BuildRequires are evaluated on the host system because BuildRequires define what's required to install the target system in the first place. So common constructs like %(rpm -q something) would run on the host which yields no useful result even if the execution could be made secure.
I understand that as evaluating buildrequires on the host system being a bug in the build system.
o_O
The solution is to use macros in the prjconf to define the properties of the target system.
And for obvious reasons I'm not interested in doing that for something like this
%if 0%(vs="%{vers}"; test ${vs:0:3} = 4.5 && echo 1)
which clearly some computer should be doing for me. I am open for any other ways doing this with just macros though.
What are you trying to achieve exactly? Which project/package? cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Thu 24 Nov 2011 20:56:55 NZDT +1300, Ludwig Nussel wrote:
What are you trying to achieve exactly? Which project/package?
Package avr-gcc in various versions. In my home project and in Crosstoolchain, or search, there are only very few. This particular problem is about needing the first two numbers of a x.y.z version number (i.e. x.y), because they need different configure options. As rpm macro processing is rather limited, the shell's ${ver:1:3} will do just fine. Obviously one could alternatively use yet more macros. Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Nov 24, 11 07:51:12 +1300, Volker Kuhlmann wrote:
On Wed 23 Nov 2011 23:21:25 NZDT +1300, Ludwig Nussel wrote:
Yeah, OBS can't expand %() for obvious reasons.
The "obvious" reasons are, that * When building a package, the source server employs a virtual machine, and %() shell expansions are honored. * But when we evaluate BuildRequires, the source server does not employ a virtual machine, and %() shell expansions are disabled for security reasons.
Not only that. It wouldn't make sense. It would make a lot of sense to have a consistent way how %() expressions are evaluated, from an end user persoective.
BuildRequires are evaluated on the host system because BuildRequires define what's required to install the target system in the first place.
This is an implementation detail. An undocumented one. Hiding it would make sense too. I've added a paragraph 'OBS Caveat' below http://en.opensuse.org/openSUSE:Specfile_guidelines#BuildRequires so that it is no longer undocumented. cheers, JW- -- o \ Juergen Weigert paint it green! __/ _=======.=======_ <V> | jw@suse.de back to ascii! __/ _---|____________\/ \ | 0911 74053-508 __/ (____/ /\ (/) | _____________________________/ _/ \_ vim:set sw=2 wm=8 SUSE LINUX Products GmbH, GF: Jeff Hawn, J.Guild, F.Imendoerffer, HRB 16746 (AG Nuernberg), Maxfeldstrasse 5, 90409 Nuernberg, Germany SuSE. Supporting Linux since 1992. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Wed 23 Nov 2011 00:05:50 NZDT +1300, Michael Schroeder wrote:
Yeah, OBS can't expand %() for obvious reasons.
OBS does expand %() at least in %description and %build. Implementing only part of rpm in the build service but not saying so (at least not that I saw) while implying it works like rpm is making me feel like I'm being taken for a ride, and is not how I prefer to spend my evenings. Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Nov 21, 11 13:29:32 +0100, Adrian Schröter wrote:
Am Dienstag, 22. November 2011, 00:57:49 schrieb Volker Kuhlmann:
To compile a package in my OBS project I need a -devel package from the oss repo. How is that possible?
oss is a product.
osc meta -e prj
<repository name="openSUSE_11.4"> <path project="openSUSE:11.4" repository="standard"/>
you should have all packages already. oss is just one product build based on it.
Technically, we have name-clashes here: http://en.opensuse.org/Package_repositories#Official_repositories says, that http://download.opensuse.org/distribution/12.1/repo/oss/ is a repository. The above syntax suggests, that you can put a repository name after repository=... this is a completly different thing which happens to go by the same name. The build service is full of such misnomers: Platform, Repository, Distribution, Project, ... are often used and often confused here. openSUSE_11.1 and openSUS:11.4 try to make a difference, but users seeing them both as 'repository name=openSUSE_11.4' and repository=openSUSE:11.4 in the above xml structure, would associate them both with 'Repository'. whenever the project name would be identical to the repository name,
The biggest problem with OBS in my experience is that efficient work is not possible because documentation is so absent.
Feel free to join the book writing approach. I blogged about it.
The documentation would need to begin with sound definitions of terminology, and then admit inconsistencies and explain how confusing it is being used. Having understood this, one would ask for some mappings between projects, platforms and repositories. Entering next snakepit ... cheers, JW- -- o \ Juergen Weigert paint it green! __/ _=======.=======_ <V> | jw@suse.de back to ascii! __/ _---|____________\/ \ | 0911 74053-508 __/ (____/ /\ (/) | _____________________________/ _/ \_ vim:set sw=2 wm=8 SUSE LINUX Products GmbH, GF: Jeff Hawn, J.Guild, F.Imendoerffer, HRB 16746 (AG Nuernberg), Maxfeldstrasse 5, 90409 Nuernberg, Germany SuSE. Supporting Linux since 1992. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (5)
-
Adrian Schröter
-
Juergen Weigert
-
Ludwig Nussel
-
Michael Schroeder
-
Volker Kuhlmann