hrehfeld / QuakeInjector

Download, install and play quake singleplayer maps from the quaddicted.com archive
https://www.quaddicted.com/tools/quake_injector
GNU General Public License v3.0
94 stars 15 forks source link

Fix SSL error #149

Closed jjelliott closed 7 months ago

jjelliott commented 7 months ago

Fixes #148.

The program was using an old Mozilla cert bundle which I'm guessing expired or no longer applies to the newest Quaddicted cert. The modern JDK one will work just fine so I removed the code responsible for loading the custom one.

While I was troubleshooting, I updated the runtime to newer versions. This shouldn't make a difference but I left it as it's not a bad idea.

SpiritQuaddicted commented 7 months ago

Thank you so much! That works fine for me.

But the resulting Windows distribution is 4 times bigger than before (~180MB vs ~45MB). And I had to go back to gradle 7.x (7.3.2) to get it to build (with OpenJDK 17) and also launch on Windows. With gradle 8.x the Windows exe gave java.lang.UnsupportedClassVersionError: de/haukerehfeld/quakeinjector/QuakeInjector has been compiled by a more recent version of the Java Runtime (class file version 66.0), this version of the Java Runtime only recognizes class file versions up to 61.0.

I guess it is fine to compile with gradle 7.3.2 and OpenJDK17? I know nothing about this.

If that is fine, I would still reaaally not want to inflate the size so much. 50MB is already crazy. :} Any idea how to get it to be smaller again?

jjelliott commented 7 months ago

There's no JRE any more, as of Java 9. That's the reason for the inflated size, all distributions are now JDKs. I'm not sure of a way to fix that. I think there are options but it might take a bit longer.

As for the compilation error: make sure the JDK you have on your path is 17 or older. It sounds like you maybe have 21 or 22 as your system JDK.

ericwa commented 7 months ago

What if we remove the custom CA store but keep the previously used jdk8 for now?

It looks like I added that CA in 2014 when iirc Java didn’t include the CA needed for let’s encrypt, which quaddicted was using. The jdk8 configured in the build.gradle is from 2021.

jjelliott commented 7 months ago

JDK8 is now 3 LTS versions out of date. I don't think it gets security fixes any more.

ericwa commented 7 months ago

According to https://en.wikipedia.org/wiki/Java_version_history#Java_8 there was a 8u401 released 2024-01-16 but I'm not sure where to get it, the https://github.com/AdoptOpenJDK/openjdk8-binaries we were using isn't updated anymore.

SpiritQuaddicted commented 7 months ago

Ah, I see. The errors might have been from some mix up between Java versions, I was testing both 22 and 17. I am all for new versions. Java confuses me to no end though :)

There is a 48MB src.zip inside the winDist's runtime/lib, can we get rid of that at least?

Test releases build with this branch (gradle 8.x) and OpenJDK 17:

jjelliott commented 7 months ago

I will look into an enhancement for the file size - I think releasing the bug fix shouldn't be held up by that.

SpiritQuaddicted commented 7 months ago

Good point, let's do this.