In the medium term, I think some sort of protocol for provides/requires and versioning will have to be established for matching jars. It has always galled me that everyone bundles everything to ensure that a particular application runs.
Short: use Maven.
What does mavenizing entail?
Write a project.xml file which describes the project on a higher level than the ant build file. Whether that's really easy for FOP with all the weirdness and conditional compiles is another matter. Because Maven downloads dependencies from a repository, we could outsource some more common stuff more easy, and the source distro becomes leaner.