diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 264f7a4..d6eaf3a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,11 +2,11 @@ stages: - build variables: - version: "v2.15.3_unofficial_50" + version: "v2.15.3_unofficial_45" GRADLE_OPTS: -Dorg.gradle.daemon=false build: - image: gradle:7.4 + image: gradle:7.2 stage: build script: - ./build.sh @@ -18,15 +18,11 @@ build: - arm-unknown-linux-gnueabihf - armv7-unknown-linux-gnueabihf - x86_64-unknown-linux-gnu - - x86_64-unknown-linux-musl -build darwin: +build x86_64-apple-darwin: stage: build tags: [darwin-builder] script: - ./build.sh - parallel: - matrix: - - TARGET: - - x86_64-apple-darwin - - aarch64-apple-darwin + variables: + TARGET: x86_64-apple-darwin \ No newline at end of file diff --git a/build.sh b/build.sh index 4f84fb2..0d46342 100755 --- a/build.sh +++ b/build.sh @@ -5,7 +5,6 @@ cd libsignal-service-java git config user.email nobody@signald.org git config user.name signald git am ../libsignal-service-java.patch -git am ../update-kbs-settings.patch python3 ../update-verification-metadata.py git diff --color=always gradle assemble publish || (gradle --write-verification-metadata sha256 && git diff --color=always && exit 1) diff --git a/hashes.json b/hashes.json index 11e4ed7..f4f3eac 100644 --- a/hashes.json +++ b/hashes.json @@ -1,34 +1,26 @@ { "aarch64-unknown-linux-gnu": { - "jar": "802529c1472f7e621cca496c918d7bfec08314572f10e168b0d20b15a5b8101a", - "module": "48e315037d2d9af6c7cf7b811d9a81d81b1eff13cbb1837b7638a3803b68f303" + "jar": "b0658de8e4b512fcae3962efeb1143ebab0f8e5fa1560f4f795443cbf73d8e0e", + "module": "d9e8813cc82bc846674cfcb5d71867c756d6d61688c7cbdb391bc62662beceee" }, "arm-unknown-linux-gnueabi": { - "jar": "8ef66fe1ae28fe7b2918292824ef33a41a3432c3a981cfa55665106c89348327", - "module": "7c988dfb2fca57ff0aabd7bd88ebfa5658be8722adb0831a5140aed3d1529097" + "jar": "3a76b4c2708aad46b4b1f179d3e586fee966251161afbd24004ee7f1eba95238", + "module": "8cfba809664dac88dc95abbb7debb42a3cd98765839fb7f2c2264108c2cc2fd8" }, "arm-unknown-linux-gnueabihf": { - "jar": "446a796b0a2a062c65d9d5cb75a3fd4aadc03ab321b52c39a5bfe1e6f9dc9891", - "module": "30e6a82cc6d2b01b57b758d8352c9d90926f31becfe6218c43d2614a309c9cbc" + "jar": "850834c2ec967d2026356361b3dbf0bdd30bd3bc683eb4b5547d7bd29d92a15c", + "module": "f2d9ce5cdcb975077f0753d2ff1ff7bb2132cbd908e2fc07f56f64733414ae69" }, "armv7-unknown-linux-gnueabihf": { - "jar": "3e896a52cf5816387094137403c112353de93f4b7591bcfc5965e89ef3777c5b", - "module": "39be083718c6b8afe94e2ccff63c918ea1255292881afbb60b12236cd4b70dc6" + "jar": "04e56a800ae0117e15f2363ec43650f2a1f1d44a98bf5f8fb90ead97aad139d8", + "module": "fb3e883221de56d39494694f368280a9cc5e828e95b9b9d19d70142ab405cfb0" }, "x86_64-unknown-linux-gnu": { - "jar": "b38295eb11df91939b872f49eb8b55b2faf7933da92202b95d82320f4cdcb644", - "module": "1b739335cde181864882481f5feca8fca3f7baa439f79c36ac596a781e6d4477" + "jar": "dc16547f2fb4303bb9f0771c3a7bc70cf59a472e899d206c348b631298e3baa4", + "module": "5b97d734a7248ebf493e2519867aeb3b0ec58b627c42798845bcf073cbe75305" }, "x86_64-apple-darwin": { - "jar": "949a72b14d81389a30e330db3162f822a475d0f19087590f334639acdb01b4eb", - "module": "7de5da969225585d36d68ba7a87c80d33886e36a04dea9d78ef8c2df9f6a3bf2" - }, - "aarch64-apple-darwin": { - "jar": "e7f405b1c521054bbea8ec0ff87c54527f17e8c914079d7805c4def3589e8af1", - "module": "3c153a7e01ae317280981e387d3fd002b7106ce65653be1b6e4216a4f4d9d314" - }, - "x86_64-unknown-linux-musl": { - "jar": "9a46edb376089b6284cbc76c4e6bc21fa91f8ee7e3daf221d704243cfe0c16cf", - "module": "a35abf78dc674557ddc7da348d5eb2d015b4e843d5402df95922ba2780b36169" + "jar": "0b5892636edf693695bb7f81bf739f5d50cb1830a6d5b93948bc402874bd6c87", + "module": "954fa3ffb650b5d90aa5710193d1c747224450a23ea72594c1be4aa0067693e2" } } \ No newline at end of file diff --git a/libsignal-service-java.patch b/libsignal-service-java.patch index cdf0862..8713b57 100644 --- a/libsignal-service-java.patch +++ b/libsignal-service-java.patch @@ -1,38 +1,41 @@ -From c51057ae26118490176af0b2421f8fa62d926c00 Mon Sep 17 00:00:00 2001 +From f43d826dc39e172db303aab5c0db73d11a43a6d2 Mon Sep 17 00:00:00 2001 From: signald -Date: Thu, 16 Jun 2022 13:04:00 -0700 -Subject: [PATCH] update build files and provide a way for the websocket - receive callback to indicate the message was not saved +Date: Mon, 21 Mar 2022 18:40:29 -0700 +Subject: [PATCH] update gradle files --- - build.gradle | 17 +++-------------- - dependencies.gradle | 3 +-- - gradle/verification-metadata.xml | 13 ++++++++----- - service/build.gradle | 19 +++++++++---------- - .../signalservice/api/NotSavedException.java | 4 ++++ - .../signalservice/api/SignalWebSocket.java | 13 ++++++++++--- - settings.gradle | 1 - - 7 files changed, 35 insertions(+), 35 deletions(-) - create mode 100644 service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java + build.gradle | 18 +++--------------- + dependencies.gradle | 3 +-- + gradle/verification-metadata.xml | 19 +++++++++++-------- + service/build.gradle | 21 ++++++++++----------- + settings.gradle | 1 - + 5 files changed, 25 insertions(+), 37 deletions(-) diff --git a/build.gradle b/build.gradle -index 2498bfcb..81f7038d 100644 +index 7b6a436..6641bb0 100644 --- a/build.gradle +++ b/build.gradle -@@ -9,11 +9,8 @@ buildscript { +@@ -1,5 +1,6 @@ + buildscript { + repositories { ++ maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages + google() + mavenCentral() + } +@@ -9,11 +10,7 @@ buildscript { } } -plugins { - id("io.github.gradle-nexus.publish-plugin") version "1.1.0" -} - +- -project.group = "com.github.turasa" +project.group = "org.signald" def getRepositoryUsername() { return hasProperty('whisperSonatypeUsername') ? whisperSonatypeUsername : "" -@@ -23,18 +20,10 @@ def getRepositoryPassword() { +@@ -23,18 +20,9 @@ def getRepositoryPassword() { return hasProperty('whisperSonatypePassword') ? whisperSonatypePassword : "" } @@ -44,31 +47,30 @@ index 2498bfcb..81f7038d 100644 - } - } -} - +- subprojects { -- ext.lib_signal_service_version_number = "2.15.3_unofficial_50" + ext.lib_signal_service_version_number = "2.15.3_unofficial_45" - ext.lib_signal_service_group_info = "com.github.turasa" -+ ext.lib_signal_service_version_number = "2.15.3_unofficial_50_signald_2" + ext.lib_signal_service_group_info = "org.signald" if (JavaVersion.current().isJava8Compatible()) { allprojects { diff --git a/dependencies.gradle b/dependencies.gradle -index e4b9f8a8..20e0d2f2 100644 +index d468f38..1f0ba1b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -8,8 +8,7 @@ dependencyResolutionManagement { - alias('google-libphonenumber').to('com.googlecode.libphonenumber:libphonenumber:8.12.48') + alias('google-libphonenumber').to('com.googlecode.libphonenumber:libphonenumber:8.12.33') // 1st Party -- alias('libsignal-client').to('org.signal', 'libsignal-client').versionRef('libsignal-client') -- alias('libsignal-android').to('org.signal', 'libsignal-android').versionRef('libsignal-client') -+ alias('libsignal-client').to('org.signald', 'libsignal-client-' + System.getenv("TARGET")).versionRef('libsignal-client') +- alias('signal-client-java').to('org.whispersystems', 'signal-client-java').versionRef('signal-client') +- alias('signal-client-android').to('org.whispersystems', 'signal-client-android').versionRef('signal-client') ++ alias('signal-client-java').to('org.signald', 'signal-client-java-' + System.getenv("TARGET")).versionRef('signal-client') // Third Party alias('jackson-core').to('com.fasterxml.jackson.core:jackson-databind:2.13.0') diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml -index fc39d024..59fde59c 100644 +index 261b8e2..fb92055 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -482,6 +482,9 @@ @@ -81,26 +83,38 @@ index fc39d024..59fde59c 100644 -@@ -1133,12 +1136,12 @@ - +@@ -1130,6 +1133,14 @@ + -- -- -- -+ -+ ++ ++ + - -- -- -+ ++ ++ + ++ ++ + + + +@@ -1148,14 +1159,6 @@ + - +- +- +- +- +- +- +- +- + + + diff --git a/service/build.gradle b/service/build.gradle -index ae4df43a..4b0240d8 100644 +index db7d2eb..8e6d0d1 100644 --- a/service/build.gradle +++ b/service/build.gradle @@ -21,6 +21,7 @@ compileJava { @@ -138,66 +152,16 @@ index ae4df43a..4b0240d8 100644 } } } - } +-} - -signing { - required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } - sign publishing.publications.mavenJava -} -diff --git a/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java b/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java -new file mode 100644 -index 00000000..05d77d1f ---- /dev/null -+++ b/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java -@@ -0,0 +1,4 @@ -+package org.whispersystems.signalservice.api; -+ -+public class NotSavedException extends Exception { +} -diff --git a/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java b/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java -index 5a98f3c4..dff24940 100644 ---- a/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java -+++ b/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java -@@ -243,6 +243,7 @@ public final class SignalWebSocket { - while (true) { - WebSocketRequestMessage request = getWebSocket().readRequest(timeout); - WebSocketResponseMessage response = createWebSocketResponse(request); -+ boolean sendResponse = true; // indicates the acknowledgement should be sent to the server - try { - if (isSignalServiceEnvelope(request)) { - Optional timestampHeader = findHeader(request); -@@ -258,13 +259,19 @@ public final class SignalWebSocket { - - SignalServiceEnvelope envelope = new SignalServiceEnvelope(request.getBody().toByteArray(), timestamp); - -- callback.onMessage(envelope); -+ try { -+ callback.onMessage(envelope); -+ } catch (NotSavedException e) { -+ sendResponse = false; -+ } - return Optional.of(envelope); - } else if (isSocketEmptyRequest(request)) { - return Optional.empty(); - } - } finally { -- getWebSocket().sendResponse(response); -+ if(sendResponse) { -+ getWebSocket().sendResponse(response); -+ } - } - } - } -@@ -315,6 +322,6 @@ public final class SignalWebSocket { - * received. - */ - public interface MessageReceivedCallback { -- void onMessage(SignalServiceEnvelope envelope); -+ void onMessage(SignalServiceEnvelope envelope) throws NotSavedException; - } - } +\ No newline at end of file diff --git a/settings.gradle b/settings.gradle -index 8861c008..8dd03423 100644 +index 8861c00..8dd0342 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,5 @@ diff --git a/update-hashes.py b/update-hashes.py index 6c808c9..eb0565a 100644 --- a/update-hashes.py +++ b/update-hashes.py @@ -3,19 +3,17 @@ import requests import hashlib import json -VERSION = "0.17.0" +VERSION = "0.14.0" TARGETS = [ "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "arm-unknown-linux-gnueabihf", "armv7-unknown-linux-gnueabihf", "x86_64-unknown-linux-gnu", - "x86_64-apple-darwin", - "x86_64-unknown-linux-musl", - "aarch64-apple-darwin" + "x86_64-apple-darwin" ] -urlFormat = "https://gitlab.com/api/v4/groups/6853927/-/packages/maven/org/signald/libsignal-client-{target}/{version}/libsignal-client-{target}-{version}.{ext}" +urlFormat = "https://gitlab.com/api/v4/groups/6853927/-/packages/maven/org/signald/signal-client-java-{target}/{version}/signal-client-java-{target}-{version}.{ext}" output = {} for target in TARGETS: diff --git a/update-kbs-settings.patch b/update-kbs-settings.patch deleted file mode 100644 index 7d65a5f..0000000 --- a/update-kbs-settings.patch +++ /dev/null @@ -1,38 +0,0 @@ -From d432b9234521947d7bb07434f69a30b407700f5c Mon Sep 17 00:00:00 2001 -From: Greyson Parrelli -Date: Thu, 20 Oct 2022 13:12:27 -0400 -Subject: [PATCH 2/2] [Signal-Android] Updated KBS settings. - 9941ffe79c2508eb9b1f1fa78b47b84c465d1199 - ---- - .../internal/contacts/crypto/RemoteAttestationCipher.java | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java b/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java -index 05073edf..32e86c70 100644 ---- a/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java -+++ b/service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationCipher.java -@@ -24,6 +24,11 @@ import java.util.Set; - - public final class RemoteAttestationCipher { - -+ private static final Set ALLOWED_ADVISORIES = new HashSet() {{ -+ add("INTEL-SA-00334"); -+ add("INTEL-SA-00615"); -+ }}; -+ - private RemoteAttestationCipher() { - } - -@@ -100,7 +105,7 @@ public final class RemoteAttestationCipher { - if ("OK".equals(entity.getIsvEnclaveQuoteStatus())) { - return true; - } else if ("SW_HARDENING_NEEDED".equals(entity.getIsvEnclaveQuoteStatus())) { -- return entity.getAdvisoryIds().length == 1 && "INTEL-SA-00334".equals(entity.getAdvisoryIds()[0]); -+ return Arrays.stream(entity.getAdvisoryIds()).allMatch(ALLOWED_ADVISORIES::contains); - } else { - return false; - } --- -2.30.2 -