Mailinglist Archive: opensuse-buildservice (142 mails)

< Previous Next >
Re: [opensuse-buildservice] Spec file for obs?
On 08/05/2013 03:38 AM, Adrian Schröter wrote:
Am Freitag, 2. August 2013, 11:47:57 schrieb Miroslav Suchý:
On 07/02/2013 02:57 PM, Adrian Schröter wrote:
But I can update it in git as well ...
It would be nice if it can be updated in git as well. Because then I can
track the changes.
Okay, so far it was just much easier for me to maintain it directly in OBS.
But I have changed this now to take the spec file from git, so it will become
easier for use to work on that.


A related story, well more or less related ...

At SGI, we also faced this "design" where we absolutely have metadata ( _service, spec file, etc ... )
controlled via an SCM, ie GIT. We did it by creating a new "obs service" script responsible for:
- extracting a "_spec" file froim the tarball, as part of the standard source tarball.
- fan out "_spec" file onto several targets distributions ( sles11sp2, sles11sp3, rhel6, rhel7 )
while proceeding to the kind of adjustments you showed below. Oi course, "_spec" fans out
as product-sles11sp2.spec, product-sles11sp3.spec, etc ...

That's how we could simplify the fact a single spec file ( _spec ) could be used
against several distributions without clobbering it with bazillions of "%if vendor/vendor_release" statements.
In fact, we just substitute, on a target distro basis, the appropriate "BuildRequires" and "Requires",
simply using "sed". Iow, we don't require Developers to maintan a specfile-for-each-distro.
Only one is used ( "_spec" ) and a generic sed-based substitution is used.

In short, SGI Developers just have to 'git commit' _service, _spec, _pkg ( listing the distros
this package should build against ) and a "_prepare" script specifying instructions to extract
the source from the tarball and how "_spec" is fanned out. As a result, we could spin a new
OBS appliance from scratch without worrying about any "OBS" history since it's all via "GIT".


Yes, I know that osc can track version of spec as well. But it really
does not help with finding e.g. why
BuildRequires: perl-XML-Parser
+BuildRequires: xorg-x11-server
PreReq: /usr/sbin/useradd /usr/sbin/groupadd
happened. Because osc could not 'blame', while git can.

I know that updating something on two locations sucks, so I prepared OBS
releaser for Tito [1]. Which can help you to pack sources and spec and
send it to OBS. I will elaborate on this, once this PR will be accepted
and new version released.

[1] https://github.com/dgoodwin/tito/pull/91
hm, I have not looked at it directly, but I personally do like a server side
hosted approach, like the source services better. In that way it is documented
how to update sources while looking at it and it is reproducable and can
be verified.


--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups