apache / apache/arrow-java

[Java] Gandiva fails to build on M1 Mac

Aperta
#178 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
94
Fork
152
Merge medio
3g 16h
PR unite (30g)
11

Descrizione

### Describe the bug, including details regarding any error messages, version, and platform.

When building the Java JNI modules on M1
```
mvn \
-Darrow.cpp.build.dir=/java-dist/lib/ \
-Darrow.c.jni.dist.dir=/java-dist/lib/ \
-Parrow-jni clean install
```

.. we'll fail on the Gandiva module ..
```
...
[INFO] Arrow Gandiva ...................................... FAILURE [ 3.053 s]
[INFO] Arrow Java C Data Interface ........................ SKIPPED
[INFO] Arrow Java Dataset ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:34 min
[INFO] Finished at: 2023-07-27T17:17:21-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project arrow-gandiva: Unable to resolve artifact: Missing:
[ERROR] ----------
[ERROR] 1) com.google.protobuf:protoc:exe:osx-aarch_64:3.20.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.20.3 -Dclassifier=osx-aarch_64 -Dpackaging=exe -Dfile=/path/to/file
[ERROR]
[ERROR] Alternatively, if you host your own repository you can deploy the file there:
[ERROR] mvn deploy:deploy-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.20.3 -Dclassifier=osx-aarch_64 -Dpackaging=exe -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
[ERROR]
[ERROR] Path to dependency:
[ERROR] 1) org.apache.arrow.gandiva:arrow-gandiva:jar:13.0.0-SNAPSHOT
[ERROR] 2) com.google.protobuf:protoc:exe:osx-aarch_64:3.20.3
[ERROR]
[ERROR] ----------
[ERROR] 1 required artifact is missing.
[ERROR]
[ERROR] for artifact:
[ERROR] org.apache.arrow.gandiva:arrow-gandiva:jar:13.0.0-SNAPSHOT
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR] apache.snapshots (https://repository.apache.org/snapshots, releases=false, snapshots=true),
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false)
```

Why? Gandiva uses protoc version `v3.20.3`, which doesn't have an osx-aarch64 build on maven[1]. If you check +/-1 from this version, there _is_ an osx-aarch64 build.

We can either:
1) Request the osx-aarch64 build be uploaded (assuming it wasn't broken or removed deliberately).
2) Upgrade protobuf. There are 263 new commits if we upgrade to the next incremental release[2].

I built Gandiva with protobuf `v3.21.0` and tests passed, but I haven't verified any farther than that.

[1] https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/3.20.3/
[2] https://github.com/protocolbuffers/protobuf/compare/v3.20.3...v3.21.0

### Component(s)

Java

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con il comando Maven e il modulo Java di Arrow Gandiva descritti nell’issue, quindi esamina come è configurato protoc 3.20.3 per la build Java JNI. Confronta le versioni disponibili di protobuf e verifica la modifica selezionata compilando Gandiva su un M1 Mac ed eseguendo i relativi test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
build-system
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.