IanDarwin / pdfshow

Deliver/present talks from PDFs - A simple PDF presenter oriented towards slideshow decks in PDF form
Other
8 stars 4 forks source link

Fails to build due to missing dependency #64

Closed Photon89 closed 6 months ago

Photon89 commented 6 months ago

Hi, I'm trying to build pdfshow on Raspbian and get the following warning and error when running ./mkinstaller -s:

[WARNING] The POM for com.darwinsys:darwinsys-api:jar:1.7.7-SNAPSHOT is missing, no dependency information available
[INFO] BUILD FAILURE
[ERROR] Failed to execute goal on project pdfshow: Could not resolve dependencies for project net.rejmi:pdfshow:jar:1.0.4: Could not find artifact com.darwinsys:darwinsys-api:jar:1.7.7-SNAPSHOT -> [Help 1]
Photon89 commented 6 months ago

I checked at maven.org and there is indeed no such version, so I just changed it to 1.8.0 instead of 1.7.7-SNAPSHOT.

However now I get the following error:

[INFO] BUILD FAILURE
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project pdfshow: Fatal error compiling: error: invalid target release: 21 -> [Help 1]
IanDarwin commented 6 months ago

Right. I also changed the version to 1.8.0 and committed/pushed that.

The Java 21 was a flight of vanity or a fool's errand: I really liked the "String Template" feature previewed in Java 21/22 so I used it here, but I recently found out they're withdrawing it from Java 23 to re-think it. So meanwhile, if you can download Java 21 it will work, and if not, let me know and I'll see if I can back out the STR uses.

Photon89 commented 6 months ago

Thanks for the quick fix!

Unfortunately, the latest openjdk version in Raspbian seems to be 17. Is it possible to make pdfshow build with this jdk version?

edit: Maybe it works, if I set the darwinsys-api version to 1.7.6?

edit2: For some reason, even after changing to 1.7.6, it tries to compile with Java 21... Sorry, I'm not familiar with the build process and I'd just use the .deb package, but I try to use pdfshow on an ancient Raspi 1 model B, so it is 32bit and the .deb package doesn't work.

IanDarwin commented 6 months ago

Right. The code currently does require Java 21; this is specified in the file pom.xml. Just changing that will not fix the problem though; as mentioned I've used a Java 21 feature in the source code. I'm probably going to rip out the Java 21 dependencies, but it'll take a while. Meanwhile you might try agitating with the debian people since Java 21 is the current LTS version of Java.

Photon89 commented 6 months ago

I see, thanks for the explanation! I thought, you referred to darwinsys-api 1.8.0 and not pdfshow itself. Please don't spend too much effort on it, I can just use an older pdfshow version! Could you give me some hints on how to build it from a release tarball (as mkinstaller always tries to find the .git folder, as far as I can see)?

IanDarwin commented 6 months ago

Sure. Download the file https://github.com/IanDarwin/pdfshow/releases/download/v1.0.3/pdfshow-1.0.3-jar-with-dependencies.jar

Do: java -jar ~/Downloads/https://github.com/IanDarwin/pdfshow/releases/download/v1.0.3/pdfshow-1.0.3-jar-with-dependencies.jar

(changing the path as appropriate for where you downloaded it, of course).

Not sure how that version will function with a dual-monitor setup but it's your quickest try.

Photon89 commented 6 months ago

Thanks a ton, works like a charm!