Mailinglist Archive: opensuse-buildservice (116 mails)

< Previous Next >
[opensuse-buildservice] Project linking of type linkedbuild="localdep"
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.

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?

Admittedly the "documentation" at
http://en.opensuse.org/openSUSE:Build_Service_Concept_project_linking
talks about rebuilding if a dependency changes. In my case that would
be a bit stretched, because I expect the *first* build to happen when
the dependency becomes available. Is it really so strict that the
latter case is not supported at all?

Obviously, after 2. I wanted to do 3., but as long 2. doesn't work it makes
little sense

3. Make another linked project of type linkedbuild="localdep",
which contains another implementation of "b"


The whole idea is to have OBS to determine the minimal set of packages
needing rebuild and have a "natural set" of packages in my "base" project.
I guess the problem can be solved in 2 ways:

I. Split the "base" project into a lower layer not depending on "b" and
a higher level depending on "b". Then the higher layer could have
2 repos, each depending on a different project providing an implementation
of "b"

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.

Regards,

Uwe Geuder
Nomovok Ltd.
Tampere, Finland
uwe.gxuder@xxxxxxxxxxx (bot check: humans correct 1 obvious spelling error)


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?
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups