FS#64111 - [pdftk] Does not work when /usr/bin/java points to Java version <13

Attached to Project: Community Packages
Opened by Guenther Starnberger (gst) - Saturday, 12 October 2019, 18:34 GMT
Last edited by Jonas Witschel (diabonas) - Sunday, 13 October 2019, 22:35 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Jonas Witschel (diabonas)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

The source code of the upstream package depends on a JDK version greater or equal 1.7 (according to the README), but the binary package downloaded by the PKGBUILD was compiled with class file version 57.0 (JDK version 13). This breaks the package as the package doesn't depend on a specific version of java-runtime-headless (so the user might have an earlier version installed). Even with JDK version 13 installed the package might still break, as it executes /usr/bin/java which can point to a different JVM version.

It would be great if this package could be build from source with an earlier version of the JDK (7 or 8?) instead of pulling a binary package from upstream. This would not only solve the version conflict but would also reduce the security risk of pulling binary builds from untrusted third parties.

Additional info:
* package version(s): 3.0.7-2
* config and/or log files etc.: N/A
* link to upstream bug report, if any: N/A

Steps to reproduce:

* Install package on a host that where a Java version < 13 is installed that provides the java-runtime-headless dependency. (Or alternatively on a host where Java 13 is installed, but /usr/bin/java points to an earlier version).
* Run pdftk
* Output:

$ /usr/bin/java --version
openjdk 11.0.4 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11)
OpenJDK 64-Bit Server VM (build 11.0.4+11, mixed mode)

$ pdftk
Error: LinkageError occurred while loading main class com.gitlab.pdftk_java.pdftk
java.lang.UnsupportedClassVersionError: com/gitlab/pdftk_java/pdftk has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 55.0
This task depends upon

Closed by  Jonas Witschel (diabonas)
Sunday, 13 October 2019, 22:35 GMT
Reason for closing:  Fixed
Additional comments about closing:  pdftk 3.0.8-1
Comment by Jonas Witschel (diabonas) - Sunday, 13 October 2019, 22:34 GMT
Fixed by specifying the target Java version to build for, sent upstream as https://gitlab.com/pdftk-java/pdftk/merge_requests/9 and incorporated into the new release 3.0.8.

Note that the pdftk package in [community] builds is built from source using Apache Ant. I don't know where you got the idea from that it downloads binary sources from somewhere, but that is certainly not true.

Loading...