mirror of
https://gitlab.com/signald/libraries/libsignal-client.git
synced 2024-12-04 11:36:37 +00:00
update to v0.36.1
This commit is contained in:
parent
b4875de049
commit
430ac01541
5 changed files with 130 additions and 101 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
libsignal/
|
|
@ -3,7 +3,7 @@ stages:
|
|||
- bindings
|
||||
|
||||
variables:
|
||||
libsignal_version: "v0.26.0"
|
||||
libsignal_version: "v0.36.1"
|
||||
GRADLE_OPTS: -Dorg.gradle.daemon=false
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
|
@ -45,8 +45,8 @@ compile:
|
|||
before_script:
|
||||
- ./prepare-env.sh
|
||||
script:
|
||||
- git clone https://github.com/signalapp/libsignal-client
|
||||
- cd libsignal-client && git checkout "$libsignal_version"
|
||||
- git clone https://github.com/signalapp/libsignal.git
|
||||
- cd libsignal && git checkout "$libsignal_version"
|
||||
- rustup set profile minimal
|
||||
- rustup toolchain install nightly
|
||||
- rustup target add "${TARGET}"
|
||||
|
@ -63,24 +63,24 @@ compile:
|
|||
paths:
|
||||
- libsignal_jni-$TARGET.so
|
||||
|
||||
compile darwin:
|
||||
extends: .multitarget-darwin
|
||||
stage: native library
|
||||
tags: [darwin-builder]
|
||||
script:
|
||||
- git clone https://github.com/signalapp/libsignal-client
|
||||
- cd libsignal-client && git checkout "$libsignal_version"
|
||||
- rustup target add "${TARGET}"
|
||||
- RUSTFLAGS='-C link-arg=-s' cargo build -p libsignal-jni --target "${TARGET}" --release --verbose
|
||||
- cp -v target/${TARGET}/release/libsignal_jni.dylib ../libsignal_jni-${TARGET}.dylib
|
||||
artifacts:
|
||||
paths:
|
||||
- libsignal_jni-$TARGET.dylib
|
||||
rules:
|
||||
- if: '$CI_PROJECT_ROOT_NAMESPACE == "signald"'
|
||||
when: on_success
|
||||
- when: manual
|
||||
allow_failure: true
|
||||
# compile darwin:
|
||||
# extends: .multitarget-darwin
|
||||
# stage: native library
|
||||
# tags: [darwin-builder]
|
||||
# script:
|
||||
# - git clone https://github.com/signalapp/libsignal.git
|
||||
# - cd libsignal && git checkout "$libsignal_version"
|
||||
# - rustup target add "${TARGET}"
|
||||
# - RUSTFLAGS='-C link-arg=-s' cargo build -p libsignal-jni --target "${TARGET}" --release --verbose
|
||||
# - cp -v target/${TARGET}/release/libsignal_jni.dylib ../libsignal_jni-${TARGET}.dylib
|
||||
# artifacts:
|
||||
# paths:
|
||||
# - libsignal_jni-$TARGET.dylib
|
||||
# rules:
|
||||
# - if: '$CI_PROJECT_ROOT_NAMESPACE == "signald"'
|
||||
# when: on_success
|
||||
# - when: manual
|
||||
# allow_failure: true
|
||||
|
||||
jar:
|
||||
extends: .multitarget
|
||||
|
@ -88,8 +88,8 @@ jar:
|
|||
stage: bindings
|
||||
needs: ["compile"]
|
||||
script:
|
||||
- git clone https://github.com/signalapp/libsignal-client
|
||||
- cd libsignal-client && git checkout "$libsignal_version"
|
||||
- git clone https://github.com/signalapp/libsignal.git
|
||||
- cd libsignal && git checkout "$libsignal_version"
|
||||
- git config user.email nobody@signald.org && git config user.name signald
|
||||
- git am ../libsignal.patch
|
||||
- mkdir -p java/shared/resources
|
||||
|
@ -97,23 +97,23 @@ jar:
|
|||
- cd java
|
||||
- gradle assemble publish
|
||||
|
||||
jar darwin:
|
||||
extends: .multitarget-darwin
|
||||
image: gradle:7
|
||||
stage: bindings
|
||||
tags: [darwin-builder]
|
||||
needs: ["compile darwin"]
|
||||
script:
|
||||
- git clone https://github.com/signalapp/libsignal-client
|
||||
- cd libsignal-client && git checkout "$libsignal_version"
|
||||
- git config user.email nobody@signald.org && git config user.name signald
|
||||
- git am ../libsignal.patch
|
||||
- mkdir -p java/shared/resources
|
||||
- cp "../libsignal_jni-${TARGET}.dylib" java/shared/resources/libsignal_jni.dylib
|
||||
- cd java
|
||||
- gradle assemble publish
|
||||
rules:
|
||||
- if: '$CI_PROJECT_ROOT_NAMESPACE == "signald"'
|
||||
when: on_success
|
||||
- when: manual
|
||||
allow_failure: true
|
||||
# jar darwin:
|
||||
# extends: .multitarget-darwin
|
||||
# image: gradle:7
|
||||
# stage: bindings
|
||||
# tags: [darwin-builder]
|
||||
# needs: ["compile darwin"]
|
||||
# script:
|
||||
# - git clone https://github.com/signalapp/libsignal.git
|
||||
# - cd libsignal && git checkout "$libsignal_version"
|
||||
# - git config user.email nobody@signald.org && git config user.name signald
|
||||
# - git am ../libsignal.patch
|
||||
# - mkdir -p java/shared/resources
|
||||
# - cp "../libsignal_jni-${TARGET}.dylib" java/shared/resources/libsignal_jni.dylib
|
||||
# - cd java
|
||||
# - gradle assemble publish
|
||||
# rules:
|
||||
# - if: '$CI_PROJECT_ROOT_NAMESPACE == "signald"'
|
||||
# when: on_success
|
||||
# - when: manual
|
||||
# allow_failure: true
|
||||
|
|
10
README.md
10
README.md
|
@ -1,3 +1,11 @@
|
|||
# libsignal-client
|
||||
|
||||
this repo manages building and publishing of [libsignal-client](https://github.com/SignalApp/libsignal-client). The published artifact is a per-target jar in a maven-compatible repo.
|
||||
this repo manages building and publishing of [libsignal-client](https://github.com/SignalApp/libsignal-client). The published artifact is a per-target jar in a maven-compatible repo.
|
||||
|
||||
|
||||
## Developing
|
||||
|
||||
To update libsignal:
|
||||
1. download libsignal and checkout the desired tag: `git clone https://github.com/SignalApp/libsignal.git && cd libsignal && git checkout v0.36.1`
|
||||
3. make changes as needed
|
||||
4. test java build: `podman run --rm -v $(pwd):/build -w /build -e CI_API_V4_URL=https://gitlab.com/api -e CI_PROJECT_ID=1234 library/gradle:7 bash -c 'cd libsignal/java && gradle assemble publish'`
|
||||
|
|
132
libsignal.patch
132
libsignal.patch
|
@ -1,54 +1,76 @@
|
|||
From df2a3fc267457a6f17527ed49e149ccc89895b25 Mon Sep 17 00:00:00 2001
|
||||
From 907e83868ee82ff5b24ab1d68b8159a44a6908e7 Mon Sep 17 00:00:00 2001
|
||||
From: signald <nobody@signald.org>
|
||||
Date: Wed, 26 Oct 2022 20:02:19 -0700
|
||||
Date: Sat, 16 Dec 2023 11:24:01 -0800
|
||||
Subject: [PATCH] update build files
|
||||
|
||||
---
|
||||
java/build.gradle | 9 +--------
|
||||
java/client/build.gradle | 28 ++++++++--------------------
|
||||
java/settings.gradle | 11 +----------
|
||||
3 files changed, 10 insertions(+), 38 deletions(-)
|
||||
java/build.gradle | 19 +------------------
|
||||
java/client/build.gradle | 25 +++++++++++++------------
|
||||
java/settings.gradle | 13 +------------
|
||||
3 files changed, 15 insertions(+), 42 deletions(-)
|
||||
|
||||
diff --git a/java/build.gradle b/java/build.gradle
|
||||
index 0c8f9458..01d198e7 100644
|
||||
index ef4cbe6b..81c50aca 100644
|
||||
--- a/java/build.gradle
|
||||
+++ b/java/build.gradle
|
||||
@@ -6,7 +6,7 @@ def version_number = "0.20.0"
|
||||
|
||||
subprojects {
|
||||
ext.version_number = version_number
|
||||
- ext.group_info = "org.signal"
|
||||
+ ext.group_info = "org.signald"
|
||||
|
||||
if (JavaVersion.current().isJava8Compatible()) {
|
||||
allprojects {
|
||||
diff --git a/java/client/build.gradle b/java/client/build.gradle
|
||||
index 7ee6b154..8fa89874 100644
|
||||
--- a/java/client/build.gradle
|
||||
+++ b/java/client/build.gradle
|
||||
@@ -1,7 +1,6 @@
|
||||
@@ -1,13 +1,12 @@
|
||||
plugins {
|
||||
id 'java-library'
|
||||
id 'maven-publish'
|
||||
- id 'signing'
|
||||
id "base"
|
||||
- id "signing"
|
||||
id "com.diffplug.spotless" version "6.20.0"
|
||||
id "io.github.gradle-nexus.publish-plugin" version "1.3.0"
|
||||
}
|
||||
|
||||
sourceCompatibility = 1.8
|
||||
@@ -46,23 +45,13 @@ java {
|
||||
withJavadocJar()
|
||||
allprojects {
|
||||
version = "0.36.1"
|
||||
- group = "org.signal"
|
||||
+ group = "org.signald"
|
||||
}
|
||||
|
||||
subprojects {
|
||||
@@ -42,13 +41,6 @@ subprojects {
|
||||
}
|
||||
}
|
||||
|
||||
-task makeJniLibrariesDesktop(type:Exec) {
|
||||
- group 'Rust'
|
||||
- description 'Build the JNI libraries'
|
||||
-
|
||||
- // Explicitly specify 'bash' for Windows compatibility.
|
||||
- commandLine 'bash', './build_jni.sh', 'desktop'
|
||||
-}
|
||||
|
||||
task cargoClean(type:Exec) {
|
||||
group 'Rust'
|
||||
@@ -80,15 +72,6 @@ ext.setUpSigningKey = { signingExt ->
|
||||
}
|
||||
}
|
||||
|
||||
-nexusPublishing {
|
||||
- repositories {
|
||||
- sonatype {
|
||||
- username = project.findProperty('sonatypeUsername') ?: ""
|
||||
- password = project.findProperty('sonatypePassword') ?: ""
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
def isReleaseBuild() {
|
||||
return version.contains("SNAPSHOT") == false
|
||||
}
|
||||
diff --git a/java/client/build.gradle b/java/client/build.gradle
|
||||
index c5f61516..b88da2c4 100644
|
||||
--- a/java/client/build.gradle
|
||||
+++ b/java/client/build.gradle
|
||||
@@ -56,17 +56,12 @@ tasks.named('jar') {
|
||||
}
|
||||
}
|
||||
|
||||
-processResources {
|
||||
- // TODO: Build a different variant of the JNI library for server.
|
||||
- dependsOn ':makeJniLibrariesDesktop'
|
||||
- dependsOn ':downloadNonLinuxLibraries'
|
||||
- gradle.taskGraph.whenReady { graph ->
|
||||
- if (graph.hasTask(":client:publish")) {
|
||||
- tasks.getByPath(":downloadNonLinuxLibraries").enabled = true
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
|
||||
-
|
||||
// MARK: Publishing
|
||||
|
||||
publishing {
|
||||
|
@ -59,14 +81,18 @@ index 7ee6b154..8fa89874 100644
|
|||
from components.java
|
||||
|
||||
pom {
|
||||
@@ -93,16 +82,15 @@ publishing {
|
||||
@@ -95,10 +90,16 @@ publishing {
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
- url = getReleaseRepositoryUrl()
|
||||
- credentials {
|
||||
- username = getRepositoryUsername()
|
||||
- password = getRepositoryPassword()
|
||||
-}
|
||||
-
|
||||
-setUpSigningKey(signing)
|
||||
-signing {
|
||||
- required { isReleaseBuild() && gradle.taskGraph.hasTask(":client:publish") }
|
||||
- sign publishing.publications.mavenJava
|
||||
+ repositories {
|
||||
+ maven {
|
||||
+ url System.getenv("CI_API_V4_URL") + "/projects/" + System.getenv("CI_PROJECT_ID") + "/packages/maven"
|
||||
+ credentials(HttpHeaderCredentials) {
|
||||
+ name = 'Job-Token'
|
||||
|
@ -74,24 +100,19 @@ index 7ee6b154..8fa89874 100644
|
|||
+ }
|
||||
+ authentication {
|
||||
+ header(HttpHeaderAuthentication)
|
||||
}
|
||||
}
|
||||
}
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
-signing {
|
||||
- required { isReleaseBuild() && gradle.taskGraph.hasTask(":client:publish") }
|
||||
- sign publishing.publications.mavenJava
|
||||
-}
|
||||
diff --git a/java/settings.gradle b/java/settings.gradle
|
||||
index f6414646..13575990 100644
|
||||
index 6d717998..e58126f6 100644
|
||||
--- a/java/settings.gradle
|
||||
+++ b/java/settings.gradle
|
||||
@@ -6,15 +6,4 @@ pluginManagement {
|
||||
}
|
||||
}
|
||||
@@ -8,15 +8,4 @@ pluginManagement {
|
||||
|
||||
-include ':client', ':server'
|
||||
rootProject.name = 'libsignal'
|
||||
|
||||
-include ':client', ':server', ':shared'
|
||||
-
|
||||
-if (hasProperty('skipAndroid')) {
|
||||
- // Do nothing
|
||||
|
@ -104,7 +125,6 @@ index f6414646..13575990 100644
|
|||
- throw new GradleException("building for Android requires JDK 11 or newer; use 'client:' or 'server:' to only build certain products")
|
||||
-}
|
||||
+include ':client'
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.30.2
|
||||
2.39.2
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ set -exuo pipefail
|
|||
|
||||
apt-get update
|
||||
|
||||
PACKAGES=("git" "clang-13" "libclang-dev" "cmake" "make") # "gcc-multilib" "g++-multilib")
|
||||
PACKAGES=("git" "clang-13" "libclang-dev" "cmake" "make" "protobuf-compiler") # "gcc-multilib" "g++-multilib")
|
||||
case "${TARGET}" in
|
||||
aarch64-unknown-linux-gnu|aarch64-unknown-linux-musl)
|
||||
apt-get install -yqq "${PACKAGES[@]}" {binutils,g++,gcc}-aarch64-linux-gnu
|
||||
|
|
Loading…
Reference in a new issue