Mailinglist Archive: opensuse-buildservice (266 mails)

< Previous Next >
Re: [opensuse-buildservice] OBS 101: How to threat packages with multiple spec files
  • From: Hans-Peter Jansen <hpj@xxxxxxxxx>
  • Date: Tue, 15 Jan 2013 11:58:06 +0100
  • Message-id: <7592924.lOqoo0GzAB@xrated>
Am Dienstag, 15. Januar 2013, 11:11:36 schrieb Sascha Peilicke:
On 01/15/2013 10:41 AM, Dominique Leuenberger a.k.a. Dimstar wrote:
Quoting Sascha Peilicke <saschpe@xxxxxxx>:
On 01/15/2013 01:54 AM, Hans-Peter Jansen wrote:
Am Donnerstag, 10. Januar 2013, 10:22:52 schrieb Sascha Peilicke:
$ osc linkpac devel:languages:python python-nose \

devel:languages:python python-nose-doc

$ osc linkpac devel:languages:python python-nose \

devel:languages:python python3-nose

$ osc linkpac devel:languages:python python-nose \

devel:languages:python python3-nose-doc

If only osc co would deal with those packages correctly (e.g. by using a
symlink) and not checking out the same package 4 times. This is
true for things like kernels...

You can still do "osc co -u" to checkout the unexpanded sources (i.e.
just the _link file). However, due to the generic (and hugely overused)
nature of the link feature, it's not always easy to find out
programmatically what the packager is about to do with a package
containing links.

Actually, in above example (with multiple spec files in one package) I
usually ONLY care for the 'main' one (where all others link to). That
one being checked out and not the _link'ed ones is sufficient... all
modifications have to happen in this package anyway (not the linked ones).

But in the light of huge repos, which one is the base and which are the linked
ones. Only a logic, like outlined from Sascha below will make this manageable.

And to do local builds, I just do osc build

so, not checking out the kernel 10 times for each branch would be a big
bandwidth and time saver :)

Sure, I totally agree. So the magic that would have to go into "osc up"
is "If _link points to same project than and the OBS package that is
currently looked at corresponds to a spec file in the _link'ed OBS
package, do an unexpanded checkout else do expanded".

Doesn't sound too hard, no?

Something along these lines, I had in mind ;-)

If a "to be checked out" package links to an existing local repo, simply
create a symlink. If that linked package does not exist, I would prefer to
have that one checked out, along with the additional symlink.

The hard part will be to handle the inherited waste efficiently, but I bet,
this logic will show up in the download statistics, once done and used.

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

< Previous Next >