Mailinglist Archive: opensuse-buildservice (239 mails)

< Previous Next >
Re: [opensuse-buildservice] Build a whole project with osc
  • From: Michal Marek <mmarek@xxxxxxx>
  • Date: Wed, 21 May 2008 19:02:54 +0200
  • Message-id: <483455BE.6020607@xxxxxxx>
Michal Marek wrote:
Marcus Hüwe wrote:
On 2008-05-21 18:05:18 +0200, Michal Marek wrote:
Note that the build order might change as you build packages and new
dependencies show up. It's probably not too hard but it isn't that easy
either ;-).
Hmm no. My plan was to send _all_ spec files (or just only BuildRequires
and Provides (we also need to associate this information to a particular
package)) to the backend.

What I was trying to say was that you can't statically extract all
dependency information from a specfile. Dependencies are also generated
at build time.

To give an example:
A.spec:
BuildRequires: B
# no Requires

B.spec
# no (Build)Requires, but
%post -f post.sh

C.spec
# no (Build)Requires
%files
/usr/bin/*

No locally built packages.

Now osc sends the three specs to the backend, which sends back this
buildorder: B, A, C. Osc builds B.spec, which results in a B.rpm with
following %post scriptlet:

#!/usr/bin/c
hello world

(/usr/bin/c being a part of the C package). Without asking the backend
again, osc is lost, because B suddenly has unresolved dependencies.

When building inside the bs, A would be set to "expansion error, nothing
provides /usr/bin/c needed by B" and C would be built instead (actually
C would be built alongside with B). A successful build of C would then
resolve the expansion error in A.

So osc needs to inform the bs about changes after each build.

Michal
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups