| Summary: | dev-java/fop-2.0 is non-functional | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Nick Bowler <nbowler> |
| Component: | [OLD] Java | Assignee: | Java team <java> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| URL: | https://bz.apache.org/bugzilla/show_bug.cgi?id=50575 | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
|
Description
Nick Bowler
2015-07-09 21:06:21 UTC
This upstream report seems related. The binary distribution provided by upstream works correctly. Nick Older versions were certainly working but relied on an unsecure version of batik which we had to drop. Therefor, we had to bump fop to its latest iteration in order to make it work with batik (since fop 1.x wasn't compatible with it), and maybe, I must admit, it was done in a hurry. But again, it was done in order to give users the latest version possible. Sometimes, such transitions go smoothly and sometimes it doesn't. Deal with it. See bug 543858 for a bit of background. On a side note: arch teams try to do their best to test whether packages compile or not, when a stabilise request for the so-called package is filed. If it does compile on the target platform, they mark it as stable and move on. They do not go into details and test every single edge case and every single option. It would be MADNESS to do so and a HUGE time sink. We simply cannot afford it. That being said, I have found the correct fix for this error thanks to the link you've provided. fop has a strange way to compile up and it is all laid out in this link: http://wiki.apache.org/xmlgraphics-fop/HowTo/BuildFOPAlternatively For Gentoo, this results in the following diff: Index: fop-2.0.ebuild =================================================================== RCS file: /var/cvsroot/gentoo-x86/dev-java/fop/fop-2.0.ebuild,v retrieving revision 1.10 diff -u -B -r1.10 fop-2.0.ebuild --- fop-2.0.ebuild 5 Jul 2015 21:51:08 -0000 1.10 +++ fop-2.0.ebuild 11 Jul 2015 17:38:27 -0000 @@ -67,19 +67,28 @@ " TARGETS=( + resourcegen jar-hyphenation jar-sandbox jar-main ) java_prepare() { - epatch "${FILESDIR}"/${P}-build.xml.patch - - find "${S}"/lib -type f -name \*.jar | xargs rm -v + find "${S}"/lib -type f | xargs rm -v } src_compile() { - EANT_GENTOO_CLASSPATH_EXTRA="$(java-pkg_getjars --build-only qdox-1.12)" + # https://bugs.gentoo.org/show_bug.cgi?id=554386 + # http://wiki.apache.org/xmlgraphics-fop/HowTo/BuildFOPAlternatively + java-pkg_jar-from --into lib qdox-1.12 qdox.jar + java-pkg_jar-from --into lib xmlgraphics-commons-2 xmlgraphics-commons.jar + java-pkg_jar-from --into lib commons-logging commons-logging.jar + java-pkg_jar-from --into lib commons-io-1 commons-io.jar + java-pkg_jar-from --into lib fontbox-1.7 fontbox.jar + java-pkg_jar-from --into lib xml-commons-external-1.3 xml-apis-ext.jar + java-pkg_jar-from --into lib xml-commons-external-1.3 xml-apis.jar + java-pkg_jar-from --into lib avalon-framework-4.2 avalon-framework.jar + java-pkg_jar-from --virtual --into lib servlet-api-3.0 servlet-api.jar The patch that I previously commited in bug 553982 disabled the eventResourceGenerator task definition. It turns out this task generates the missing event-model.xml file. See: resourcegen: [mkdir] Created dir: /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/codegen-classes [javac] Compiling 3 source files to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/codegen-classes [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6 [javac] 1 warning [copy] Copying 2 files to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/codegen-classes [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/accessibility/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/afp/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/area/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/fo/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/fo/flow/table/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/fonts/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/layoutmgr/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/layoutmgr/inline/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/bitmap/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/pcl/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/pdf/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/pdf/extensions/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/ps/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/render/rtf/event-model.xml [eventResourceGenerator] Event model written to /var/tmp/portage/dev-java/fop-2.0/work/fop-2.0/build/gensrc/org/apache/fop/svg/event-model.xml So far so good. After installing the resulting ebuild, if I try your command again, the outcome looks lot better: # bzcat /usr/share/fop-2/examples/fo/basic/simple.fo.bz2 > simple.fo # fop-2 simple.fo out.pdf Jul 11, 2015 6:39:16 PM org.apache.fop.events.LoggingEventListener processEvent INFO: Rendered page #1. + 11 Jul 2015; Patrice Clement <monsieurp@gentoo.org> + -files/fop-2.0-build.xml.patch, fop-2.0.ebuild: + Mend compiling process by dropping previous patch and adding back + eventResourceGenerator task definition so that event-model.xml files are + correctly generated. Add required jars into lib directory using java-pkg_jar- + from. Fix bug 554386. + I must admit though, this package is a pain in the arse to compile. I would never have found out the fix without your link. Thanks for the heads up and the hint. |