GCJ AOT bits are mandatory parts of any Java packages according to current
guidelines. There are at least 2 reasons to not require them:
1. GCJ has stagnated at Java 1.5 level and gcj bits require having GCJ
installed even in cases when the package requires Java >= 1.6. Resulting in an
installed but unusable for the given package JVM
2. GCJ AOT bits makes every package an arch specific one (when they are noarch
in general)- resulting in slower package build, slower install/uninstall,
bigger packages and etc.
There are other benefits like - much more readable RPM spec files, using less
resources on Fedora infrastructure. But the main benefit is for the users - we
do not have to force them to install something they will never use. E.g
installing eclipse-jdt drags gcj in but upstream is not supporting it and
there is even a warning added to indicate that you're running gcj and it may
not work as expected but gcj is still installed because of eclipse
dependencies that have the gcj bits.
This mail is by no means saying that there is no value in gcj. But gcj has a
different usecases and shouldn't be thrown at every user. GCJGuidelines should
be changed in such a way that they should indicate that you may add GCJ AOT
bits to your package but this should not result in mandatory installation of
GCJ (e.g. by making the gcj aot bits a separate subpackage auto-generated like
the debug packages, but this is up to the people interested in gcj to solve).
We simply don't have to force users to install a non-default and less feature
full JVM in order to use our packages with another JVM.
Regards,
Alexander Kurtakov