Mailinglist Archive: opensuse-buildservice (116 mails)

< Previous Next >
Re: [opensuse-buildservice] Project linking of type linkedbuild="localdep"
On Montag, 25. August 2014, 16:15:08 wrote Uwe Geuder:
Hi!

I tried to use a linked project of type linkedbuild="localdep", and I
expect some packages from the base project to become visible in the
linked project and be built there, but nothing happens. Only packages
existing locally in the linked project are visible.

they do not become visible as sources, when you list package eg via

osc ls $PROJECT

but they should become visible on the build monitor.

(with newer osc versions you can also list the expanded sources using
the -e switch).


So here is the whole story:

In a private OBS instance I have a couple of bigger projects with deep
dependencies.

One of the "patterns" I saw, is that a package has 2 alternative
implementations.

To just limit the explanation to a small core, let's say package "a"
depends on package "b" (actually it depends on
pkgconfig(some-stuff-provided-by-b), but I think that should not make
a difference.

Now "b" exists in 2 alternative implementations, which cannot co-exist
in the same installation.

So my idea was:

1. Make a "base project", which contains everything except any
implementation of "b". Quite many packages are built inside the
"base project" but of course "a" is not because "b" is missing. (In
reality I have many "a"s in different depths of dependencies, but
again I guess this should not change the basic concepts)


2. Make a linked project of type linkedbuild="localdep"
(http://en.opensuse.org/openSUSE:Build_Service_Concept_project_linking) ,
which contains one implementation of "b"

The project meta is like this:

<project name="linked">
<title>Linked project</title>
<description></description>
<link project="base"/>
<person userid="uwe.geuder" role="maintainer"/>
<person userid="uwe.geuder" role="bugowner"/>
<repository linkedbuild="localdep" name="foo">
<path project="base" repository="foo"/>
<arch>armv8el</arch>
</repository>
</project>

Now "b" is built successfully and thereafter I would expect OBS to
automatically build "a" in the linked project. But simply nothing
happens. What am I missing here?

a does not depend on b? try to use linkedbuild="all" if you really want
to build it again nevertheless.

...

II. use linkedbuild="all"

Because the project contains quite some packages I have not yet played
with these alternatives, rebuilding will take time. Primarily I would
like to understand what was wrong with my initial plan and can it be
salvaged somehow.

okay, then you can of course still create a single package branch to enforce
the build of that package.


P.S. After rereading the documentation, I started to wonder...
Is the localdep in 'linkedbuild="localdep"' really a keyword or
does it somehow refer to the name in 'name="localdep"' in the same XML
element? I did not call my new repo "localdep", could that make
the whole repo definition wrong?

this is perfectly fine. localdep says trigger only the build of the linked
packages if another package in your layered project affects a build dependency.
otherwise OBS assumes that you just can add both repos and have no dependency
problems.

--

Adrian Schroeter
email: adrian@xxxxxxx

SUSE LINUX GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 21284
(AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany



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

< Previous Next >
References