It tests presence of the following on classpath: jimi (sun-jimi), jai (sun-jai-bin), trax (xalan), jdk14, jce This is bad because jimi and jai are controlled by useflags (linking appropriate jars into lib/ dir based on the flag), but the autodetection can mess with it because ant can be using jai itself, and that can result in (with USE="-jai" for fop): - java-strict is on, but the autodetection will still see jai on classpath when doing the test (-Dbuild.sysclasspath=ignore doesn't affect this, sadly), during compiling jai will be hidden and build will fail - java-strict is off, it will build jai support because it's in ant's classpath, but it won't be recorded as dep in fop's package.env One solution can be to put ignoresystemclasspath="true" parameter in <available> tags in build.xml used to test jai and jimi presence. This will ensure that jai and jimi support will be checked only in lib/ dir, not on classpath ant uses. This could be done even without patching, by running xml-rewrite.py from ebuild. But since there's already a build.xml patch, I expanded it to do the following: Instead of testing for jdk14 and jce, it enables is unconditionally. Also changed the dep from || (jdk1.4 jdk-1.3) to just jdk-1.4. Same with the trax testing, it's just enabled, because xalan is unconditional dep anyway. Tests for jai and jimi are removed and the associated properties are not set in build.xml at all. Ebuild passes these properties based on useflags. No automagical detection is left :)
Created attachment 95444 [details, diff] new patch for build.xml
Created attachment 95447 [details, diff] patch for fop's ebuild
Released in fop-0.20.5-r7