Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 447904 - games-rpg/pcgen Build from source with fewer bundled libraries
Summary: games-rpg/pcgen Build from source with fewer bundled libraries
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 69972
  Show dependency tree
 
Reported: 2012-12-20 05:08 UTC by Jonathan Lovelace
Modified: 2022-06-19 07:05 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Draft ebuild building from source. (pcgen-6.00.0-r1.ebuild,5.19 KB, text/plain)
2012-12-20 05:09 UTC, Jonathan Lovelace
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Lovelace 2012-12-20 05:08:23 UTC
PCGen is one of the few free-software/open-source packages I have installed that simply copied the official binaries into place rather than compiling from source. More importantly, for me (since I've come close to running out of disk space on this laptop a few times), it includes and installs bundled copies of third-party Java libraries, several of which are in Portage. It'd be nice to compile it from source, using system libraries, instead. (And to ensure it passes its tests before installation.)

(The "source" download from the official website doesn't include any of the build apparatus; I found a mirror on Github that was announced on the PCGen mailing list a while back and used its 6.00.0 tag for the SRC_URI.)

I've tried my hand at creating an ebuild, but since I'm really only a novice at this and PCGen is quite complicated it doesn't yet install a *working* system. I'll attach my initial ebuild attempt in a moment. The major difficulties I identified and wasn't able to solve yet include:
1. While dev-java/fop, one of the bundled libraries, is in Portage, the version in the tree is 0.95, but they bundle (according to the readme.txt in the lib/ directory, which is quite out of date) version 0.20.5, and include similarly ancient versions of its dependencies as well.
2. By contrast, they bundle a more recent version of dev-java/commons-io than is in the tree---they use version 2.1, but the latest in the tree is 2.0.1, which proved incompatible when I tried using it instead anyway. (Even 2.1 is over a year old ...)
3. They bundle two look-and-feel libraries that are in Portage, dev-java/skinlf and dev-java/kunststoff, but they also include a number of look-and-feel "plugins" with them, and I have no idea where they should go.
4. There's a JAR (MRJ141Stubs.jar) that, by its contents, looks like it might be a subset of dev-java/apple-java-extensions-bin; the comment in the readme.txt calls it "MRJ adapter" and gives a link for a homepage that is now broken).
5. Several others JARs from packages not in Portage (a couple from Spring, a closed-source code-coverage tool that probably shouldn't be installed in any case, and a "Java Expression Parser").
6. I have no idea what to do about the plugins/ directory---much of the contents is JARs, which I suppose ought to be in JAVA_PKG_SHAREPATH, but there's also a great number of other files.
7. There are several test failures. (Out of a great many tests that take nearly an hour to run.)

These difficulties are, I expect, surmountable, though solving them appears to be beyond my abilities; it'd be really nice to have a version of PCGen in Portage that follows the usual guidelines for Gentoo Java packages.

Reproducible: Always
Comment 1 Jonathan Lovelace 2012-12-20 05:09:28 UTC
Created attachment 332752 [details]
Draft ebuild building from source.
Comment 2 Mr. Bones. (RETIRED) gentoo-dev 2015-02-06 17:51:37 UTC
I agree with your points and would love to see a source-based version of pcgen in the tree.  I would be great if you or someone else would continue to work toward that by submitting ebuilds for the missing java libraries and finding ways to provide the equivalent functionality of the binary ebuild.