runs-on: ubuntu-latest
strategy:
matrix:
- java: [ '17', '21' ]
+ java: [ '21' ]
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
version: 'latest'
- java-version: '17'
+ java-version: '21'
cache: 'gradle'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build with Gradle
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21
- name: Checkout repository
uses: actions/checkout@v4
-FROM docker.io/eclipse-temurin:17-jre
+FROM docker.io/azul/zulu-openjdk:21-jre-headless
LABEL org.opencontainers.image.source=https://github.com/AsamK/signal-cli
LABEL org.opencontainers.image.description="signal-cli provides an unofficial commandline, dbus and JSON-RPC interface for the Signal messenger."
System requirements:
-- at least Java Runtime Environment (JRE) 17
+- at least Java Runtime Environment (JRE) 21
- native library: libsignal-client
The native libs are bundled for x86_64 Linux (with recent enough glibc), Windows and MacOS. For other
version = "0.12.4"
java {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
+ sourceCompatibility = JavaVersion.VERSION_21
+ targetCompatibility = JavaVersion.VERSION_21
+
+ toolchain {
+ languageVersion.set(JavaLanguageVersion.of(21))
+ }
}
application {
if (System.getenv("GRAALVM_HOME") == null) {
toolchainDetection.set(true)
javaLauncher.set(javaToolchains.launcherFor {
- languageVersion.set(JavaLanguageVersion.of(17))
+ languageVersion.set(JavaLanguageVersion.of(21))
})
} else {
toolchainDetection.set(false)
{
"name":"[Lorg.whispersystems.signalservice.internal.push.GroupStaleDevices;"
},
+{
+ "name":"android.os.Build$VERSION"
+},
{
"name":"byte[]",
"allDeclaredMethods":true,
"pattern":"\\QMETA-INF/services/kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition\\E"
}, {
"pattern":"\\QMETA-INF/services/kotlin.reflect.jvm.internal.impl.util.ModuleVisibilityHelper\\E"
+ }, {
+ "pattern":"\\QMETA-INF/services/org.freedesktop.dbus.spi.message.ISocketProvider\\E"
}, {
"pattern":"\\QMETA-INF/services/org.freedesktop.dbus.spi.transport.ITransportProvider\\E"
}, {
"pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt67b/nfc.nrm\\E"
}, {
"pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt67b/uprops.icu\\E"
+ }, {
+ "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt72b/nfc.nrm\\E"
}, {
"pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt72b/uprops.icu\\E"
}, {
}
java {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
+ sourceCompatibility = JavaVersion.VERSION_21
+ targetCompatibility = JavaVersion.VERSION_21
+
+ toolchain {
+ languageVersion.set(JavaLanguageVersion.of(21))
+ }
}
val libsignalClientPath = project.findProperty("libsignal_client_path")?.toString()
run() {
# To update graalvm config, set GRAALVM_HOME, e.g:
- # export GRAALVM_HOME=/usr/lib/jvm/java-17-graalvm
+ # export GRAALVM_HOME=/usr/lib/jvm/java-21-graalvm
if [ ! -z "$GRAALVM_HOME" ]; then
export JAVA_HOME=$GRAALVM_HOME
export SIGNAL_CLI_OPTS="-agentlib:native-image-agent=config-merge-dir=graalvm-config-dir-${SIGNAL_CLI_AGENT_ID}/"