[fedora-java] Enhanced aot-compile script
Thomas Fitzsimmons
fitzsim at redhat.com
Fri Nov 11 16:02:16 UTC 2005
Hi,
On Fri, 2005-11-11 at 13:00 +0000, Gary Benson wrote:
[...]
> That aside, having the database rebuilding as an alternative (so
> possibly a no-op) would also cause problems. Imagine this:
>
> 1. User has GCJ as their JVM.
> 2. a) User installs some Fedora packages.
> b) GCJ database is rebuilt into a consistent state.
> 3. User switches to some other JVM.
> 4. a) User installs some more Fedora packages.
> b) GCJ database is not rebuilt.
> 5. User switches to GCJ as their JVM.
>
> The user has ended up with a broken database. His applications will
> be slower, and in some (admittedly broken) cases will suddenly start
> to fail.
Right, aot-compile should definitely not be an alternative. The idea is
that "aot-compile --rebuilddb" decides what to do based on three
criteria:
1) a config file, maybe /etc/java/java.conf, specifies the default
behaviour -- to run gcj-dbtool or to be a no-op
2) an environment variable can override this default on a per-run basis
3) if gcj-dbtool is not installed, "aot-compile --rebuilddb" is
automatically a no-op
[...]
> > IMPORTANT: please note that aot-compile should not be tied to GCJ,
> > but instead be a characteristic of any Java that is capable of
> > pre-compilation.
>
> Sure. This doesn't preclude us from putting the present, GCJ-specific
> aot-compile-rpm into the gcc-java rpm, and I still think we should
> proceed with this.
Agreed -- aot-compile-rpm is still needed here (and in fact, "aot-
compile" is a confusing name to use in this proposal for a new jpackage-
neutral script).
>
> > In any case, we should try and keep the command names generic so if
> > necessary one day the JVMs that are AOT-capable can provide
> > alternatives for those.
>
> How about making them even more generic and mandating that all
> JPackage rpms call certain scripts at certain points. At the end of
> %install, for example, you could require that all packages invoke
> jpackage-install, and similarly %post would have jpackage-post and
> %postun would have jpackage-postun.
>
> Each script could do both generic JPackage stuff and call specific JVM
> stuff. Under your system jpackage-install would call aot-compile-rpm
> if GCJ was selected as your JVM, and jpackage-post and -postun would
> do the database rebuilding. The scripts could do allsorts: the %prep
> script jpackage-prep could check for bundled jars and classes for
> example.
This sounds excellent. Perhaps we should post a proposal to the
jpackage list, along with an example of a converted package.
Tom
More information about the fedora-devel-java-list
mailing list