tjake / Jlama

Jlama is a modern LLM inference engine for Java
Apache License 2.0
649 stars 60 forks source link

Unable to resolve artifact: Missing: com.google.protobuf:protoc:exe:linux-x86_64-fedora:3.17.3 #29

Closed tkobayas closed 4 months ago

tkobayas commented 5 months ago

In Fedora 39, when executing ./run-cli.sh download gpt2-medium or just mvn clean install, I hit the failure.

[INFO] --- protobuf:0.6.1:compile (default) @ jlama-net ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Jlama Parent 0.2.0-SNAPSHOT:
[INFO] 
[INFO] Jlama Parent ....................................... SUCCESS [  0.562 s]
[INFO] Jlama Core ......................................... SUCCESS [  2.585 s]
[INFO] Jlama Native ....................................... SUCCESS [  1.259 s]
[INFO] Jlama Net .......................................... FAILURE [  0.273 s]
[INFO] Jlama Cli .......................................... SKIPPED
[INFO] Jlama Tests ........................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.951 s
[INFO] Finished at: 2024-06-10T12:04:20+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project jlama-net: Unable to resolve artifact: Missing:
[ERROR] ----------
[ERROR] 1) com.google.protobuf:protoc:exe:linux-x86_64-fedora:3.17.3
[ERROR] 
[ERROR]   Try downloading the file manually from the project website.
[ERROR] 
[ERROR]   Then, install it using the command: 
[ERROR]       mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.17.3 -Dclassifier=linux-x86_64-fedora -Dpackaging=exe -Dfile=/path/to/file

Indeed, classifier linux-x86_64-fedora doesn't exist in https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.17.3/

I think possible workarounds are:

1) Fix os.detection.classifierWithLikes. I don't know why this configuration is required, but removing fedora solves the issue in my fedora.

diff --git a/pom.xml b/pom.xml
index bfeedeb..72cd2a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,7 +45,7 @@
     <revision>0.2.0-SNAPSHOT</revision>

     <osmaven.version>1.7.1</osmaven.version>
-    <os.detection.classifierWithLikes>fedora,suse,arch</os.detection.classifierWithLikes>
+    <os.detection.classifierWithLikes>suse,arch</os.detection.classifierWithLikes>
     <jni.classifier>${os.detected.name}-${os.detected.arch}</jni.classifier>

     <spotless.version>2.43.0</spotless.version>

2) Explicitly define os.detected.classifier

diff --git a/pom.xml b/pom.xml
index bfeedeb..bbe7db5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,7 @@
     <osmaven.version>1.7.1</osmaven.version>
     <os.detection.classifierWithLikes>fedora,suse,arch</os.detection.classifierWithLikes>
     <jni.classifier>${os.detected.name}-${os.detected.arch}</jni.classifier>
+    <os.detected.classifier>linux-x86_64</os.detected.classifier>

     <spotless.version>2.43.0</spotless.version>
     <junit.version>4.13.2</junit.version>

I confirmed that the issue was solved with either workaround.

Philipp0205 commented 4 months ago

I can confirm this solution. Thanks for lookin into that!

tjake commented 4 months ago

Thanks, I noticed this fails on mac m1 as well

tjake commented 4 months ago

Fixed in https://github.com/tjake/Jlama/commit/3ca08666386748e606fb39641108c0063df69db9