A need for build triggers & automatic rebuilds

Krzysztof Daniel kdaniel at redhat.com
Fri Jun 21 06:28:40 UTC 2013


On Wed, 2013-06-19 at 12:23 +0200, Nicolas Mailhot wrote:
> Le Mer 19 juin 2013 10:07, Krzysztof Daniel a écrit :
> > Hello everyone,
> 
> > I'd like to be able to define a build trigger for Eclipse, so when a
> > "vital" dependency changes, Eclipse is rebuild, BR/R are updated, and a
> > bodhi update is performed. And I get a notification :-).
> >
> > Is there a way to do so?
> 
> You don't need a special trigger. You need your requirements to match the
> constraints declared at the rpm level, then incompatibilities will be
> caught at this level by normal distro tooling.
> 
> Regards,
> 
> -- 
> Nicolas Mailhot
> 

Not really. I can set up BR/R in two ways: 
(greater or equal) or exact match.

The problem with greater or equal is that Eclipse internally reads a
bundle manifest, and records a version, which sometimes can change after
plain rebuild (because a timestamp is added).

Plain Eclipse example:

Eclipse requires jetty, and it symlinks a jetty bundles.
 org.eclipse.jetty.http_9.0.3.v20130506.jar
-> /usr/share/java/jetty/jetty-http.jar

OSGI records that there is a file
org.eclipse.jetty.http_9.0.3.v20130506.jar that holds a plugin with
version 9.0.3.v20130506. That version goes at the build time in a couple
of places (including metabundle).

If jetty is rebuilt, and it changes let's say to 9.0.4 (minor update),
Eclipse metadata gets out of sync. Eclipse sees a jar
org.eclipse.jetty.http_9.0.3.v20130506.jar, but version inside the
manifest is 9.0.4. Since at the build time Eclipse used 9.0.3, a lot of
meta bundles will not be resolved.

At this point I can only rebuild Eclipse (yes, the build works even if
Eclipse is not working).

Exact match can't be used at all, because if jetty is updated, then it
will be impossible to install Eclipse.

-- 
Krzysztof Daniel <kdaniel at redhat.com>
Red Hat



More information about the devel mailing list