diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index ae28f7f4e7..8c01bfb4fa 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -19,11 +19,11 @@ jobs: steps: - uses: actions/checkout@v3 - - name: set up JDK 11 + - name: set up JDK 17 uses: actions/setup-java@v3 with: distribution: temurin - java-version: 11 + java-version: 17 cache: gradle - name: Validate Gradle Wrapper diff --git a/.github/workflows/diffuse.yml b/.github/workflows/diffuse.yml index 9a4b3e65de..c1f99dcef1 100644 --- a/.github/workflows/diffuse.yml +++ b/.github/workflows/diffuse.yml @@ -10,18 +10,18 @@ permissions: jobs: assemble-base: if: ${{ github.repository != 'signalapp/Signal-Android' }} - runs-on: ubuntu-latest-4-cores + runs-on: ubuntu-latest-8-cores steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.base.sha }} - - name: set up JDK 11 + - name: set up JDK 17 uses: actions/setup-java@v3 with: distribution: temurin - java-version: 11 + java-version: 17 cache: gradle - name: Validate Gradle Wrapper diff --git a/app/build.gradle b/app/build.gradle index cb31014966..6e528994a0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -159,7 +159,7 @@ android { } composeOptions { - kotlinCompilerExtensionVersion = '1.3.2' + kotlinCompilerExtensionVersion = '1.4.4' } defaultConfig { @@ -579,9 +579,8 @@ dependencies { exclude group: 'com.google.protobuf', module: 'protobuf-java' } testImplementation testLibs.robolectric.shadows.multidex - testImplementation (testLibs.bouncycastle.bcprov.jdk15on) { - force = true - } + testImplementation (testLibs.bouncycastle.bcprov.jdk15on) { version { strictly "1.70" } } // Used by roboelectric + testImplementation (testLibs.bouncycastle.bcpkix.jdk15on) { version { strictly "1.70" } } // Used by roboelectric testImplementation testLibs.hamcrest.hamcrest testImplementation testLibs.mockk diff --git a/app/proguard/proguard.cfg b/app/proguard/proguard.cfg index 4bfb92c495..98cae676c8 100644 --- a/app/proguard/proguard.cfg +++ b/app/proguard/proguard.cfg @@ -11,4 +11,11 @@ # Protobuf lite -keep class * extends com.google.protobuf.GeneratedMessageLite { *; } --keep class androidx.window.** { *; } \ No newline at end of file +-keep class androidx.window.** { *; } + +# AGP generated dont warns +-dontwarn com.android.org.conscrypt.SSLParametersImpl +-dontwarn org.apache.harmony.xnet.provider.jsse.SSLParametersImpl +-dontwarn org.slf4j.impl.StaticLoggerBinder +-dontwarn sun.net.spi.nameservice.NameService +-dontwarn sun.net.spi.nameservice.NameServiceDescriptor \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 133539c493..f895a0a5b8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ + diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt index 33f21e7fc1..0be11cfcb5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt @@ -5,17 +5,15 @@ package org.thoughtcrime.securesms.calls.links.details -import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.disposables.Disposable import io.reactivex.rxjava3.kotlin.subscribeBy import io.reactivex.rxjava3.schedulers.Schedulers +import org.signal.core.util.concurrent.MaybeCompat import org.signal.core.util.orNull -import org.thoughtcrime.securesms.database.CallLinkTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.recipients.Recipient -import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.service.webrtc.links.CallLinkRoomId import org.thoughtcrime.securesms.service.webrtc.links.ReadCallLinkResult import org.thoughtcrime.securesms.service.webrtc.links.SignalCallLinkManager @@ -24,7 +22,7 @@ class CallLinkDetailsRepository( private val callLinkManager: SignalCallLinkManager = ApplicationDependencies.getSignalCallManager().callLinkManager ) { fun refreshCallLinkState(callLinkRoomId: CallLinkRoomId): Disposable { - return Maybe.fromCallable { SignalDatabase.callLinks.getCallLinkByRoomId(callLinkRoomId) } + return MaybeCompat.fromCallable { SignalDatabase.callLinks.getCallLinkByRoomId(callLinkRoomId) } .flatMapSingle { callLinkManager.readCallLink(it.credentials!!) } .subscribeOn(Schedulers.io()) .subscribeBy { result -> @@ -36,7 +34,7 @@ class CallLinkDetailsRepository( } fun watchCallLinkRecipient(callLinkRoomId: CallLinkRoomId): Observable { - return Maybe.fromCallable { SignalDatabase.recipients.getByCallLinkRoomId(callLinkRoomId).orNull() } + return MaybeCompat.fromCallable { SignalDatabase.recipients.getByCallLinkRoomId(callLinkRoomId).orNull() } .flatMapObservable { Recipient.observable(it) } .distinctUntilChanged { a, b -> a.hasSameContent(b) } .subscribeOn(Schedulers.io()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt index a211fd5252..a4401317e5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt @@ -24,7 +24,7 @@ class DonationReceiptDetailRepository { fun getDonationReceiptRecord(id: Long): Single { return Single.fromCallable { - SignalDatabase.donationReceipts.getReceipt(id) + SignalDatabase.donationReceipts.getReceipt(id)!! }.subscribeOn(Schedulers.io()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/NameColors.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/NameColors.kt index 3df05e9268..dfd693307c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/NameColors.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/NameColors.kt @@ -45,11 +45,13 @@ object NameColors { } private fun getSessionGroupRecipients(groupId: GroupId, sessionMemberCache: MutableMap>): LiveData> { - val fullMembers = LiveGroup(groupId).fullMembers.map { members: List? -> - Stream.of(members) - .map { it.member } - .toList() - } + val fullMembers = LiveGroup(groupId) + .fullMembers + .map { members: List? -> + Stream.of(members) + .map { it.member } + .toList() + } return fullMembers.map { currentMembership: List? -> val cachedMembers: MutableSet = MapUtil.getOrDefault(sessionMemberCache, groupId, HashSet()).toMutableSet() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt index 1283dd6116..d99f345a13 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt @@ -12,6 +12,7 @@ import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.StreamUtil +import org.signal.core.util.concurrent.MaybeCompat import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.components.location.SignalPlace @@ -70,7 +71,7 @@ class DraftRepository( } fun getShareOrDraftData(): Maybe> { - return Maybe.fromCallable> { getShareOrDraftDataInternal() } + return MaybeCompat.fromCallable { getShareOrDraftDataInternal() } .observeOn(Schedulers.io()) } @@ -214,7 +215,7 @@ class DraftRepository( @Deprecated("Not needed for CFv2") fun loadDraftQuote(serialized: String): Maybe { - return Maybe.fromCallable { loadDraftQuoteInternal(serialized) } + return MaybeCompat.fromCallable { loadDraftQuoteInternal(serialized) } } private fun loadDraftQuoteInternal(serialized: String): ConversationMessage? { @@ -233,7 +234,7 @@ class DraftRepository( @Deprecated("Not needed for CFv2") fun loadDraftMessageEdit(serialized: String): Maybe { - return Maybe.fromCallable { loadDraftMessageEditInternal(serialized) } + return MaybeCompat.fromCallable { loadDraftMessageEditInternal(serialized) } } private fun loadDraftMessageEditInternal(serialized: String): ConversationMessage? { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt index 9b8304f408..e2f63a6ee2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt @@ -23,6 +23,7 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.core.SingleEmitter import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.StreamUtil +import org.signal.core.util.concurrent.MaybeCompat import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.dp import org.signal.core.util.logging.Log @@ -376,7 +377,7 @@ class ConversationRepository( } fun getTemporaryViewOnceUri(mmsMessageRecord: MmsMessageRecord): Maybe { - return Maybe.fromCallable { + return MaybeCompat.fromCallable { Log.i(TAG, "Copying the view-once photo to temp storage and deleting underlying media.") try { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/privacy/ChooseInitialMyStoryMembershipViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/privacy/ChooseInitialMyStoryMembershipViewModel.kt index aa5921f3f2..a7b2271dec 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/privacy/ChooseInitialMyStoryMembershipViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/privacy/ChooseInitialMyStoryMembershipViewModel.kt @@ -50,7 +50,7 @@ class ChooseInitialMyStoryMembershipViewModel @JvmOverloads constructor( return Single.fromCallable { SignalStore.storyValues().userHasBeenNotifiedAboutStories = true Stories.onStorySettingsChanged(Recipient.self().id) - store.state.recipientId + store.state.recipientId!! }.observeOn(AndroidSchedulers.mainThread()) } } diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 744f29a774..e41190b2a6 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -1,5 +1,5 @@ buildscript { - val kotlinVersion by extra("1.7.20") + val kotlinVersion by extra("1.8.10") repositories { google() @@ -10,3 +10,12 @@ buildscript { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } + +allprojects { + // Needed because otherwise the kapt task defaults to jvmTarget 17, which "poisons the well" and requires us to bump up too + tasks.withType().configureEach { + kotlinOptions { + jvmTarget = "11" + } + } +} diff --git a/build-logic/plugins/build.gradle.kts b/build-logic/plugins/build.gradle.kts index 55387e70ed..90aa21d041 100644 --- a/build-logic/plugins/build.gradle.kts +++ b/build-logic/plugins/build.gradle.kts @@ -1,5 +1,3 @@ - - plugins { `kotlin-dsl` id("groovy-gradle-plugin") diff --git a/build.gradle b/build.gradle index a825500cdb..0c1d676309 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,7 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + buildscript { - ext.kotlin_version = '1.7.20' + ext.kotlin_version = '1.8.10' repositories { google() mavenCentral() @@ -17,10 +19,9 @@ buildscript { } } dependencies { - classpath 'com.android.tools:r8:3.3.75' - classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.android.tools.build:gradle:8.0.0' classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3' - classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17' + classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath libs.ktlint classpath 'app.cash.exhaustive:exhaustive-gradle:0.1.1' @@ -39,6 +40,15 @@ wrapper { distributionType = Wrapper.DistributionType.ALL } +allprojects { + // Needed because otherwise the kapt task defaults to jvmTarget 17, which "poisons the well" and requires us to bump up too + tasks.withType(KotlinCompile).configureEach { + kotlinOptions { + jvmTarget = "11" + } + } +} + subprojects { ext.lib_signal_service_version_number = "2.15.3" ext.lib_signal_service_group_info = "org.whispersystems" diff --git a/core-ui/build.gradle b/core-ui/build.gradle index 427f8f473f..fa1334cf12 100644 --- a/core-ui/build.gradle +++ b/core-ui/build.gradle @@ -10,7 +10,7 @@ android { } composeOptions { - kotlinCompilerExtensionVersion = '1.3.2' + kotlinCompilerExtensionVersion = '1.4.4' } } diff --git a/core-util/src/main/java/org/signal/core/util/concurrent/MaybeCompat.kt b/core-util/src/main/java/org/signal/core/util/concurrent/MaybeCompat.kt new file mode 100644 index 0000000000..3237072314 --- /dev/null +++ b/core-util/src/main/java/org/signal/core/util/concurrent/MaybeCompat.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2023 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.signal.core.util.concurrent + +import io.reactivex.rxjava3.core.Maybe +import io.reactivex.rxjava3.exceptions.Exceptions +import io.reactivex.rxjava3.plugins.RxJavaPlugins + +/** + * Kotlin 1.8 started respecting RxJava nullability annotations but RxJava has some oddities where it breaks those rules. + * This essentially re-implements [Maybe.fromCallable] with an emitter so we don't have to do it everywhere ourselves. + */ +object MaybeCompat { + fun fromCallable(callable: () -> T?): Maybe { + return Maybe.create { emitter -> + val result = try { + callable() + } catch (e: Throwable) { + Exceptions.throwIfFatal(e) + if (!emitter.isDisposed) { + emitter.onError(e) + } else { + RxJavaPlugins.onError(e) + } + return@create + } + + if (!emitter.isDisposed) { + if (result == null) { + emitter.onComplete() + } else { + emitter.onSuccess(result) + } + } + } + } +} diff --git a/dependencies.gradle b/dependencies.gradle index 68781799d8..2a338a9981 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -20,139 +20,139 @@ dependencyResolutionManagement { version('accompanist', '0.28.0') // Android Plugins - alias('android-library').to('com.android.library', 'com.android.library.gradle.plugin').versionRef('android-gradle-plugin') - alias('android-application').to('com.android.application', 'com.android.application.gradle.plugin').versionRef('android-gradle-plugin') + library('android-library', 'com.android.library', 'com.android.library.gradle.plugin').versionRef('android-gradle-plugin') + library('android-application', 'com.android.application', 'com.android.application.gradle.plugin').versionRef('android-gradle-plugin') // Compose - alias('androidx-compose-bom').to('androidx.compose:compose-bom:2023.05.01') - alias('androidx-compose-material3').to('androidx.compose.material3', 'material3').withoutVersion() - alias('androidx-compose-ui-tooling-preview').to('androidx.compose.ui', 'ui-tooling-preview').withoutVersion() - alias('androidx-compose-ui-tooling-core').to('androidx.compose.ui', 'ui-tooling').withoutVersion() - alias('androidx-compose-runtime-livedata').to('androidx.compose.runtime', 'runtime-livedata').withoutVersion() - alias('androidx-compose-rxjava3').to('androidx.compose.runtime:runtime-rxjava3:1.4.2') - alias('ktlint-twitter-compose').to('com.twitter.compose.rules:ktlint:0.0.26') + library('androidx-compose-bom', 'androidx.compose:compose-bom:2023.05.01') + library('androidx-compose-material3', 'androidx.compose.material3', 'material3').withoutVersion() + library('androidx-compose-ui-tooling-preview', 'androidx.compose.ui', 'ui-tooling-preview').withoutVersion() + library('androidx-compose-ui-tooling-core', 'androidx.compose.ui', 'ui-tooling').withoutVersion() + library('androidx-compose-runtime-livedata', 'androidx.compose.runtime', 'runtime-livedata').withoutVersion() + library('androidx-compose-rxjava3', 'androidx.compose.runtime:runtime-rxjava3:1.4.2') + library('ktlint-twitter-compose', 'com.twitter.compose.rules:ktlint:0.0.26') // Accompanist - alias('accompanist-permissions').to('com.google.accompanist', 'accompanist-permissions').versionRef('accompanist') + library('accompanist-permissions', 'com.google.accompanist', 'accompanist-permissions').versionRef('accompanist') // Desugaring - alias('android-tools-desugar').to('com.android.tools:desugar_jdk_libs:1.1.5') + library('android-tools-desugar', 'com.android.tools:desugar_jdk_libs:1.1.5') // Kotlin - alias('kotlin-stdlib-jdk8').to('org.jetbrains.kotlin', 'kotlin-stdlib-jdk8').versionRef('kotlin') - alias('kotlin-reflect').to('org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin') - alias('kotlin-gradle-plugin').to('org.jetbrains.kotlin', 'kotlin-gradle-plugin').versionRef('kotlin') - alias('ktlint').to('org.jlleitschuh.gradle:ktlint-gradle:11.1.0') + library('kotlin-stdlib-jdk8', 'org.jetbrains.kotlin', 'kotlin-stdlib-jdk8').versionRef('kotlin') + library('kotlin-reflect', 'org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin') + library('kotlin-gradle-plugin', 'org.jetbrains.kotlin', 'kotlin-gradle-plugin').versionRef('kotlin') + library('ktlint', 'org.jlleitschuh.gradle:ktlint-gradle:11.1.0') // Android X - alias('androidx-activity-ktx').to('androidx.activity', 'activity-ktx').versionRef('androidx-activity') - alias('androidx-appcompat').to('androidx.appcompat', 'appcompat').versionRef('androidx-appcompat') - alias('androidx-core-ktx').to('androidx.core:core-ktx:1.10.0') - alias('androidx-fragment-ktx').to('androidx.fragment', 'fragment-ktx').versionRef('androidx-fragment') - alias('androidx-fragment-testing').to('androidx.fragment', 'fragment-testing').versionRef('androidx-fragment') - alias('androidx-annotation').to('androidx.annotation:annotation:1.4.0') - alias('androidx-constraintlayout').to('androidx.constraintlayout:constraintlayout:2.1.4') - alias('androidx-window-window').to('androidx.window', 'window').versionRef('androidx-window') - alias('androidx-window-java').to('androidx.window', 'window-java').versionRef('androidx-window') - alias('androidx-recyclerview').to('androidx.recyclerview:recyclerview:1.2.1') - alias('androidx-legacy-support').to('androidx.legacy:legacy-support-v13:1.0.0') - alias('androidx-legacy-preference').to('androidx.legacy:legacy-preference-v14:1.0.0') - alias('androidx-preference').to('androidx.preference:preference:1.0.0') - alias('androidx-gridlayout').to('androidx.gridlayout:gridlayout:1.0.0') - alias('androidx-exifinterface').to('androidx.exifinterface:exifinterface:1.3.3') - alias('androidx-multidex').to('androidx.multidex:multidex:2.0.1') - alias('androidx-navigation-fragment-ktx').to('androidx.navigation', 'navigation-fragment-ktx').versionRef('androidx-navigation') - alias('androidx-navigation-ui-ktx').to('androidx.navigation', 'navigation-ui-ktx').versionRef('androidx-navigation') - alias('androidx-lifecycle-viewmodel-ktx').to('androidx.lifecycle', 'lifecycle-viewmodel-ktx').versionRef('androidx-lifecycle') - alias('androidx-lifecycle-livedata-core').to('androidx.lifecycle', 'lifecycle-livedata').versionRef('androidx-lifecycle') - alias('androidx-lifecycle-livedata-ktx').to('androidx.lifecycle', 'lifecycle-livedata-ktx').versionRef('androidx-lifecycle') - alias('androidx-lifecycle-process').to('androidx.lifecycle', 'lifecycle-process').versionRef('androidx-lifecycle') - alias('androidx-lifecycle-viewmodel-savedstate').to('androidx.lifecycle', 'lifecycle-viewmodel-savedstate').versionRef('androidx-lifecycle') - alias('androidx-lifecycle-common-java8').to('androidx.lifecycle', 'lifecycle-common-java8').versionRef('androidx-lifecycle') - alias('androidx-lifecycle-reactivestreams-ktx').to('androidx.lifecycle', 'lifecycle-reactivestreams-ktx').versionRef('androidx-lifecycle') - alias('androidx-camera-core').to('androidx.camera', 'camera-core').versionRef('androidx-camera') - alias('androidx-camera-camera2').to('androidx.camera', 'camera-camera2').versionRef('androidx-camera') - alias('androidx-camera-lifecycle').to('androidx.camera', 'camera-lifecycle').versionRef('androidx-camera') - alias('androidx-camera-view').to('androidx.camera', 'camera-view').versionRef('androidx-camera') - alias('androidx-concurrent-futures').to('androidx.concurrent:concurrent-futures:1.0.0') - alias('androidx-autofill').to('androidx.autofill:autofill:1.0.0') - alias('androidx-biometric').to('androidx.biometric:biometric:1.1.0') - alias('androidx-sharetarget').to('androidx.sharetarget:sharetarget:1.2.0-rc02') - alias('androidx-sqlite').to('androidx.sqlite:sqlite:2.1.0') - alias('androidx-core-role').to('androidx.core:core-role:1.0.0') - alias('androidx-profileinstaller').to('androidx.profileinstaller:profileinstaller:1.2.2') - alias('androidx-asynclayoutinflater').to('androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01') - alias('androidx-asynclayoutinflater-appcompat').to('androidx.asynclayoutinflater:asynclayoutinflater-appcompat:1.1.0-alpha01') + library('androidx-activity-ktx', 'androidx.activity', 'activity-ktx').versionRef('androidx-activity') + library('androidx-appcompat', 'androidx.appcompat', 'appcompat').versionRef('androidx-appcompat') + library('androidx-core-ktx', 'androidx.core:core-ktx:1.10.0') + library('androidx-fragment-ktx', 'androidx.fragment', 'fragment-ktx').versionRef('androidx-fragment') + library('androidx-fragment-testing', 'androidx.fragment', 'fragment-testing').versionRef('androidx-fragment') + library('androidx-annotation', 'androidx.annotation:annotation:1.4.0') + library('androidx-constraintlayout', 'androidx.constraintlayout:constraintlayout:2.1.4') + library('androidx-window-window', 'androidx.window', 'window').versionRef('androidx-window') + library('androidx-window-java', 'androidx.window', 'window-java').versionRef('androidx-window') + library('androidx-recyclerview', 'androidx.recyclerview:recyclerview:1.2.1') + library('androidx-legacy-support', 'androidx.legacy:legacy-support-v13:1.0.0') + library('androidx-legacy-preference', 'androidx.legacy:legacy-preference-v14:1.0.0') + library('androidx-preference', 'androidx.preference:preference:1.0.0') + library('androidx-gridlayout', 'androidx.gridlayout:gridlayout:1.0.0') + library('androidx-exifinterface', 'androidx.exifinterface:exifinterface:1.3.3') + library('androidx-multidex', 'androidx.multidex:multidex:2.0.1') + library('androidx-navigation-fragment-ktx', 'androidx.navigation', 'navigation-fragment-ktx').versionRef('androidx-navigation') + library('androidx-navigation-ui-ktx', 'androidx.navigation', 'navigation-ui-ktx').versionRef('androidx-navigation') + library('androidx-lifecycle-viewmodel-ktx', 'androidx.lifecycle', 'lifecycle-viewmodel-ktx').versionRef('androidx-lifecycle') + library('androidx-lifecycle-livedata-core', 'androidx.lifecycle', 'lifecycle-livedata').versionRef('androidx-lifecycle') + library('androidx-lifecycle-livedata-ktx', 'androidx.lifecycle', 'lifecycle-livedata-ktx').versionRef('androidx-lifecycle') + library('androidx-lifecycle-process', 'androidx.lifecycle', 'lifecycle-process').versionRef('androidx-lifecycle') + library('androidx-lifecycle-viewmodel-savedstate', 'androidx.lifecycle', 'lifecycle-viewmodel-savedstate').versionRef('androidx-lifecycle') + library('androidx-lifecycle-common-java8', 'androidx.lifecycle', 'lifecycle-common-java8').versionRef('androidx-lifecycle') + library('androidx-lifecycle-reactivestreams-ktx', 'androidx.lifecycle', 'lifecycle-reactivestreams-ktx').versionRef('androidx-lifecycle') + library('androidx-camera-core', 'androidx.camera', 'camera-core').versionRef('androidx-camera') + library('androidx-camera-camera2', 'androidx.camera', 'camera-camera2').versionRef('androidx-camera') + library('androidx-camera-lifecycle', 'androidx.camera', 'camera-lifecycle').versionRef('androidx-camera') + library('androidx-camera-view', 'androidx.camera', 'camera-view').versionRef('androidx-camera') + library('androidx-concurrent-futures', 'androidx.concurrent:concurrent-futures:1.0.0') + library('androidx-autofill', 'androidx.autofill:autofill:1.0.0') + library('androidx-biometric', 'androidx.biometric:biometric:1.1.0') + library('androidx-sharetarget', 'androidx.sharetarget:sharetarget:1.2.0-rc02') + library('androidx-sqlite', 'androidx.sqlite:sqlite:2.1.0') + library('androidx-core-role', 'androidx.core:core-role:1.0.0') + library('androidx-profileinstaller', 'androidx.profileinstaller:profileinstaller:1.2.2') + library('androidx-asynclayoutinflater', 'androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01') + library('androidx-asynclayoutinflater-appcompat', 'androidx.asynclayoutinflater:asynclayoutinflater-appcompat:1.1.0-alpha01') // Material - alias('material-material').to('com.google.android.material:material:1.8.0') + library('material-material', 'com.google.android.material:material:1.8.0') // Google - alias('google-protobuf-javalite').to('com.google.protobuf:protobuf-javalite:3.11.4') - alias('google-libphonenumber').to('com.googlecode.libphonenumber:libphonenumber:8.12.54') - alias('google-play-services-maps').to('com.google.android.gms:play-services-maps:18.1.0') - alias('google-play-services-auth').to('com.google.android.gms:play-services-auth:20.3.0') - alias('google-play-services-wallet').to('com.google.android.gms:play-services-wallet:19.1.0') - alias('google-zxing-android-integration').to('com.google.zxing:android-integration:3.3.0') - alias('google-zxing-core').to('com.google.zxing:core:3.4.1') - alias('google-ez-vcard').to('com.googlecode.ez-vcard:ez-vcard:0.9.11') - alias('google-jsr305').to('com.google.code.findbugs:jsr305:3.0.2') - alias('google-guava-android').to('com.google.guava:guava:30.0-android') - alias('google-flexbox').to('com.google.android.flexbox:flexbox:3.0.0') + library('google-protobuf-javalite', 'com.google.protobuf:protobuf-javalite:3.11.4') + library('google-libphonenumber', 'com.googlecode.libphonenumber:libphonenumber:8.12.54') + library('google-play-services-maps', 'com.google.android.gms:play-services-maps:18.1.0') + library('google-play-services-auth', 'com.google.android.gms:play-services-auth:20.3.0') + library('google-play-services-wallet', 'com.google.android.gms:play-services-wallet:19.1.0') + library('google-zxing-android-integration', 'com.google.zxing:android-integration:3.3.0') + library('google-zxing-core', 'com.google.zxing:core:3.4.1') + library('google-ez-vcard', 'com.googlecode.ez-vcard:ez-vcard:0.9.11') + library('google-jsr305', 'com.google.code.findbugs:jsr305:3.0.2') + library('google-guava-android', 'com.google.guava:guava:30.0-android') + library('google-flexbox', 'com.google.android.flexbox:flexbox:3.0.0') // Exoplayer - alias('exoplayer-core').to('com.google.android.exoplayer', 'exoplayer-core').versionRef('exoplayer') - alias('exoplayer-ui').to('com.google.android.exoplayer', 'exoplayer-ui').versionRef('exoplayer') - alias('exoplayer-extension-mediasession').to('com.google.android.exoplayer', 'extension-mediasession').versionRef('exoplayer') + library('exoplayer-core', 'com.google.android.exoplayer', 'exoplayer-core').versionRef('exoplayer') + library('exoplayer-ui', 'com.google.android.exoplayer', 'exoplayer-ui').versionRef('exoplayer') + library('exoplayer-extension-mediasession', 'com.google.android.exoplayer', 'extension-mediasession').versionRef('exoplayer') bundle('exoplayer', ['exoplayer-core', 'exoplayer-ui', 'exoplayer-extension-mediasession']) // Firebase - alias('firebase-messaging').to('com.google.firebase:firebase-messaging:23.1.0') + library('firebase-messaging', 'com.google.firebase:firebase-messaging:23.1.0') // 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('signal-aesgcmprovider').to('org.signal:aesgcmprovider:0.0.3') - alias('signal-ringrtc').to('org.signal:ringrtc-android:2.28.1') - alias('signal-android-database-sqlcipher').to('org.signal:sqlcipher-android:4.5.4-S2') + library('libsignal-client', 'org.signal', 'libsignal-client').versionRef('libsignal-client') + library('libsignal-android', 'org.signal', 'libsignal-android').versionRef('libsignal-client') + library('signal-aesgcmprovider', 'org.signal:aesgcmprovider:0.0.3') + library('signal-ringrtc', 'org.signal:ringrtc-android:2.28.1') + library('signal-android-database-sqlcipher', 'org.signal:sqlcipher-android:4.5.4-S2') // Third Party - alias('greenrobot-eventbus').to('org.greenrobot:eventbus:3.0.0') - alias('jackson-core').to('com.fasterxml.jackson.core:jackson-databind:2.9.9.2') - alias('jackson-module-kotlin').to('com.fasterxml.jackson.module:jackson-module-kotlin:2.12.0') - alias('square-okhttp3').to('com.squareup.okhttp3:okhttp:3.12.13') - alias('square-okio').to('com.squareup.okio:okio:3.0.0') - alias('square-leakcanary').to('com.squareup.leakcanary:leakcanary-android:2.7') - alias('rxjava3-rxjava').to('io.reactivex.rxjava3:rxjava:3.0.13') - alias('rxjava3-rxandroid').to('io.reactivex.rxjava3:rxandroid:3.0.0') - alias('rxjava3-rxkotlin').to('io.reactivex.rxjava3:rxkotlin:3.0.1') - alias('rxdogtag').to('com.uber.rxdogtag2:rxdogtag:2.0.1') - alias('conscrypt-android').to('org.conscrypt:conscrypt-android:2.0.0') - alias('mobilecoin').to('com.mobilecoin:android-sdk:5.0.0') - alias('leolin-shortcutbadger').to('me.leolin:ShortcutBadger:1.1.22') - alias('emilsjolander-stickylistheaders').to('se.emilsjolander:stickylistheaders:2.7.0') - alias('apache-httpclient-android').to('org.apache.httpcomponents:httpclient-android:4.3.5') - alias('glide-glide').to('com.github.bumptech.glide', 'glide').versionRef('glide') - alias('glide-compiler').to('com.github.bumptech.glide', 'compiler').versionRef('glide') - alias('roundedimageview').to('com.makeramen:roundedimageview:2.1.0') - alias('materialish-progress').to('com.pnikosis:materialish-progress:1.5') - alias('subsampling-scale-image-view').to('com.davemorrissey.labs:subsampling-scale-image-view:3.10.0') - alias('android-tooltips').to('com.tomergoldst.android:tooltips:1.0.6') - alias('android-smsmms').to('com.klinkerapps:android-smsmms:4.0.1') - alias('stream').to('com.annimon:stream:1.1.8') - alias('lottie').to('com.airbnb.android:lottie:5.2.0') - alias('dnsjava').to('dnsjava:dnsjava:2.1.9') - alias('nanohttpd-webserver').to('org.nanohttpd:nanohttpd-webserver:2.3.1') - alias('kotlinx-collections-immutable').to('org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5') + library('greenrobot-eventbus', 'org.greenrobot:eventbus:3.0.0') + library('jackson-core', 'com.fasterxml.jackson.core:jackson-databind:2.9.9.2') + library('jackson-module-kotlin', 'com.fasterxml.jackson.module:jackson-module-kotlin:2.12.0') + library('square-okhttp3', 'com.squareup.okhttp3:okhttp:3.12.13') + library('square-okio', 'com.squareup.okio:okio:3.0.0') + library('square-leakcanary', 'com.squareup.leakcanary:leakcanary-android:2.7') + library('rxjava3-rxjava', 'io.reactivex.rxjava3:rxjava:3.0.13') + library('rxjava3-rxandroid', 'io.reactivex.rxjava3:rxandroid:3.0.0') + library('rxjava3-rxkotlin', 'io.reactivex.rxjava3:rxkotlin:3.0.1') + library('rxdogtag', 'com.uber.rxdogtag2:rxdogtag:2.0.1') + library('conscrypt-android', 'org.conscrypt:conscrypt-android:2.0.0') + library('mobilecoin', 'com.mobilecoin:android-sdk:5.0.0') + library('leolin-shortcutbadger', 'me.leolin:ShortcutBadger:1.1.22') + library('emilsjolander-stickylistheaders', 'se.emilsjolander:stickylistheaders:2.7.0') + library('apache-httpclient-android', 'org.apache.httpcomponents:httpclient-android:4.3.5') + library('glide-glide', 'com.github.bumptech.glide', 'glide').versionRef('glide') + library('glide-compiler', 'com.github.bumptech.glide', 'compiler').versionRef('glide') + library('roundedimageview', 'com.makeramen:roundedimageview:2.1.0') + library('materialish-progress', 'com.pnikosis:materialish-progress:1.5') + library('subsampling-scale-image-view', 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0') + library('android-tooltips', 'com.tomergoldst.android:tooltips:1.0.6') + library('android-smsmms', 'com.klinkerapps:android-smsmms:4.0.1') + library('stream', 'com.annimon:stream:1.1.8') + library('lottie', 'com.airbnb.android:lottie:5.2.0') + library('dnsjava', 'dnsjava:dnsjava:2.1.9') + library('nanohttpd-webserver', 'org.nanohttpd:nanohttpd-webserver:2.3.1') + library('kotlinx-collections-immutable', 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5') // Can't use the newest version because it hits some weird NoClassDefFoundException - alias('jknack-handlebars').to('com.github.jknack:handlebars:4.0.7') - alias('kotlinx-collections-immutable').to('org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5') + library('jknack-handlebars', 'com.github.jknack:handlebars:4.0.7') + library('kotlinx-collections-immutable', 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5') // Mp4Parser - alias('mp4parser-isoparser').to('org.mp4parser', 'isoparser').versionRef('mp4parser') - alias('mp4parser-streaming').to('org.mp4parser', 'streaming').versionRef('mp4parser') - alias('mp4parser-muxer').to('org.mp4parser', 'muxer').versionRef('mp4parser') + library('mp4parser-isoparser', 'org.mp4parser', 'isoparser').versionRef('mp4parser') + library('mp4parser-streaming', 'org.mp4parser', 'streaming').versionRef('mp4parser') + library('mp4parser-muxer', 'org.mp4parser', 'muxer').versionRef('mp4parser') bundle('mp4parser', ['mp4parser-isoparser', 'mp4parser-streaming', 'mp4parser-muxer']) } @@ -160,11 +160,11 @@ dependencyResolutionManagement { version('androidx-test-ext-junit', '1.1.3') // Macrobench/Baseline profiles - alias ('androidx-test-ext-junit').to('androidx.test.ext', 'junit').versionRef('androidx-test-ext-junit') - alias('espresso-core').to('androidx.test.espresso:espresso-core:3.4.0') - alias('uiautomator').to('androidx.test.uiautomator:uiautomator:2.2.0') - alias('androidx-benchmark-macro').to('androidx.benchmark:benchmark-macro-junit4:1.1.1') - alias('androidx-benchmark-micro').to('androidx.benchmark:benchmark-junit4:1.1.0-beta04') + library('androidx-test-ext-junit', 'androidx.test.ext', 'junit').versionRef('androidx-test-ext-junit') + library('espresso-core', 'androidx.test.espresso:espresso-core:3.4.0') + library('uiautomator', 'androidx.test.uiautomator:uiautomator:2.2.0') + library('androidx-benchmark-macro', 'androidx.benchmark:benchmark-macro-junit4:1.1.1') + library('androidx-benchmark-micro', 'androidx.benchmark:benchmark-junit4:1.1.0-beta04') } testLibs { @@ -172,34 +172,35 @@ dependencyResolutionManagement { version('androidx-test-ext-junit', '1.1.1') version('robolectric', '4.8.1') - alias('junit-junit').to('junit:junit:4.13.2') - alias('androidx-test-core').to('androidx.test', 'core').versionRef('androidx-test') - alias('androidx-test-core-ktx').to('androidx.test', 'core-ktx').versionRef('androidx-test') - alias('androidx-test-ext-junit').to('androidx.test.ext', 'junit').versionRef('androidx-test-ext-junit') - alias('androidx-test-ext-junit-ktx').to('androidx.test.ext', 'junit-ktx').versionRef('androidx-test-ext-junit') - alias('androidx-test-orchestrator').to('androidx.test:orchestrator:1.4.1') - alias('espresso-core').to('androidx.test.espresso:espresso-core:3.4.0') - alias('mockito-core').to('org.mockito:mockito-inline:4.6.1') - alias('mockito-kotlin').to('org.mockito.kotlin:mockito-kotlin:4.0.0') - alias('mockito-android').to('org.mockito:mockito-android:4.6.1') - alias('robolectric-robolectric').to('org.robolectric', 'robolectric').versionRef('robolectric') - alias('robolectric-shadows-multidex').to('org.robolectric', 'shadows-multidex').versionRef('robolectric') - alias('bouncycastle-bcprov-jdk15on').to('org.bouncycastle:bcprov-jdk15on:1.70') - alias('hamcrest-hamcrest').to('org.hamcrest:hamcrest:2.2') - alias('assertj-core').to('org.assertj:assertj-core:3.11.1') - alias('square-okhttp-mockserver').to('com.squareup.okhttp3:mockwebserver:3.12.13') - alias('mockk').to('io.mockk:mockk:1.13.2') - alias('mockk-android').to('io.mockk:mockk-android:1.13.2') + library('junit-junit', 'junit:junit:4.13.2') + library('androidx-test-core', 'androidx.test', 'core').versionRef('androidx-test') + library('androidx-test-core-ktx', 'androidx.test', 'core-ktx').versionRef('androidx-test') + library('androidx-test-ext-junit', 'androidx.test.ext', 'junit').versionRef('androidx-test-ext-junit') + library('androidx-test-ext-junit-ktx', 'androidx.test.ext', 'junit-ktx').versionRef('androidx-test-ext-junit') + library('androidx-test-orchestrator', 'androidx.test:orchestrator:1.4.1') + library('espresso-core', 'androidx.test.espresso:espresso-core:3.4.0') + library('mockito-core', 'org.mockito:mockito-inline:4.6.1') + library('mockito-kotlin', 'org.mockito.kotlin:mockito-kotlin:4.0.0') + library('mockito-android', 'org.mockito:mockito-android:4.6.1') + library('robolectric-robolectric', 'org.robolectric', 'robolectric').versionRef('robolectric') + library('robolectric-shadows-multidex', 'org.robolectric', 'shadows-multidex').versionRef('robolectric') + library('bouncycastle-bcprov-jdk15on', 'org.bouncycastle:bcprov-jdk15on:1.70') + library('bouncycastle-bcpkix-jdk15on', 'org.bouncycastle:bcpkix-jdk15on:1.70') + library('hamcrest-hamcrest', 'org.hamcrest:hamcrest:2.2') + library('assertj-core', 'org.assertj:assertj-core:3.11.1') + library('square-okhttp-mockserver', 'com.squareup.okhttp3:mockwebserver:3.12.13') + library('mockk', 'io.mockk:mockk:1.13.2') + library('mockk-android', 'io.mockk:mockk-android:1.13.2') - alias('conscrypt-openjdk-uber').to('org.conscrypt:conscrypt-openjdk-uber:2.0.0') + library('conscrypt-openjdk-uber', 'org.conscrypt:conscrypt-openjdk-uber:2.0.0') } lintLibs { version('lint', '30.2.2') - alias('lint-api').to('com.android.tools.lint', 'lint-api').versionRef('lint') - alias('lint-checks').to('com.android.tools.lint', 'lint-checks').versionRef('lint') - alias('lint-tests').to('com.android.tools.lint', 'lint-tests').versionRef('lint') + library('lint-api', 'com.android.tools.lint', 'lint-api').versionRef('lint') + library('lint-checks', 'com.android.tools.lint', 'lint-checks').versionRef('lint') + library('lint-tests', 'com.android.tools.lint', 'lint-tests').versionRef('lint') } } } diff --git a/gradle.properties b/gradle.properties index 5a60ad10dd..dfee94a2f4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,3 +3,6 @@ android.useAndroidX=true android.enableJetifier=true kapt.incremental.apt=false android.experimental.androidTest.numManagedDeviceShards=4 +android.defaults.buildfeatures.buildconfig=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index d1e82ad419..e729dc929e 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -9,7 +9,7 @@ Run the following command to update this file after adding or updating a depende For more information, see: https://docs.gradle.org/current/userguide/dependency_verification.html --> - + true false @@ -52,23 +52,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -132,17 +121,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -213,11 +196,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -278,14 +256,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -294,14 +264,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -318,14 +280,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -334,22 +288,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - @@ -358,14 +296,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -374,14 +304,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -390,14 +312,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -406,14 +320,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -422,14 +328,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -479,12 +377,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + @@ -817,50 +715,32 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - + + - - - - - - - - + + + - - - + + + - - - - - - - - - - + + @@ -1013,27 +893,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - @@ -1042,19 +901,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - @@ -1081,14 +927,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1097,14 +935,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1121,14 +951,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1159,17 +981,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -1183,9 +999,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1204,9 +1017,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1219,14 +1029,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1235,14 +1037,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1274,14 +1068,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1380,14 +1166,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1426,9 +1204,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1441,14 +1216,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1509,21 +1276,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - @@ -1539,11 +1296,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -1594,11 +1346,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -1625,22 +1372,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - @@ -1657,35 +1388,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1758,14 +1460,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -1805,48 +1499,33 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - + + - - - - - - - + + - - - - - - - + + @@ -1855,18 +1534,13 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - + + @@ -1875,19 +1549,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -1905,34 +1574,19 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - + + - - - - - - - - - - - - - + + + @@ -1940,19 +1594,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -1960,19 +1609,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -1980,24 +1624,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - + + + @@ -2005,9 +1639,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + @@ -2015,19 +1649,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2035,19 +1664,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2055,41 +1679,25 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - + + - - - + + + - - + + - - - - - - - - - - - - - + + @@ -2100,14 +1708,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2116,20 +1716,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - - - - + + @@ -2140,17 +1732,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - + + @@ -2158,14 +1745,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2173,19 +1755,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - + + - - - - - - - - @@ -2194,12 +1768,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + @@ -2210,14 +1784,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2226,20 +1792,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - - - - + + @@ -2250,12 +1808,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + @@ -2263,12 +1821,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - + + + @@ -2279,20 +1834,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - - - - + + @@ -2303,20 +1850,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - - - - + + @@ -2327,12 +1866,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + @@ -2343,14 +1882,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2359,12 +1890,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + @@ -2393,29 +1924,19 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + - - - - - - - - + + + @@ -2423,14 +1944,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2438,14 +1954,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2453,14 +1964,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2468,19 +1974,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2488,14 +1989,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2503,14 +1999,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2518,23 +2009,13 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - - - - - - + + @@ -2543,19 +2024,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + @@ -2563,40 +2039,22 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - + + - - - + + + - - - - - - - - - - - - - - - + + @@ -2604,30 +2062,17 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - + + - - - + + + - - - - - - - - - - - - - - - + + @@ -2635,30 +2080,17 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - + + + - - - - - - - - - - - - - - - + + @@ -2666,30 +2098,17 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - + + + - - - - - - - - - - - - - - - + + @@ -2697,72 +2116,43 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - + + + - - + + - - - - - - + + + - - - + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -2770,30 +2160,17 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - + + + - - - - - - - - - - - - - - - + + @@ -2801,9 +2178,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + @@ -2881,11 +2258,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -2996,11 +2368,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -3099,11 +2466,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -3129,21 +2491,26 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + - - - - - @@ -3169,6 +2536,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3234,9 +2606,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + @@ -3249,11 +2621,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -3264,6 +2631,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3299,9 +2671,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + @@ -3314,9 +2686,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + @@ -3324,6 +2696,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3398,11 +2775,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -3771,11 +3143,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -3805,14 +3172,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3858,14 +3217,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3874,14 +3225,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3890,14 +3233,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3983,21 +3318,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - @@ -4055,6 +3380,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4065,6 +3395,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4075,6 +3410,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4085,6 +3425,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4095,11 +3440,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + @@ -4110,6 +3465,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4216,51 +3576,106 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4345,11 +3760,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -4360,11 +3770,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -4430,6 +3835,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4455,6 +3865,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4475,16 +3890,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + - - - - - @@ -4553,12 +3968,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + @@ -4586,26 +4001,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - @@ -4626,34 +4021,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -4661,16 +4036,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - @@ -4681,51 +4046,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4736,65 +4071,26 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - + @@ -4804,14 +4100,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -4820,29 +4108,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - @@ -4851,39 +4121,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -4891,24 +4136,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - - - - - - - - - - - - + + + @@ -4926,9 +4161,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + @@ -4936,27 +4171,17 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + - - - - - - - + + @@ -4964,29 +4189,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - + + + @@ -4994,46 +4204,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5059,26 +4239,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - @@ -5089,11 +4254,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -5109,26 +4269,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - @@ -5149,11 +4294,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -5164,11 +4304,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -5184,11 +4319,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -5199,69 +4329,26 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5291,14 +4378,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -5312,14 +4391,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -5341,14 +4412,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -5550,11 +4613,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -5714,11 +4772,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - @@ -5773,11 +4826,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f7189a776c..b22661d9bf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=db9c8211ed63f61f60292c69e80d89196f9eb36665e369e7f00ac4cc841c2219 -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip +distributionSha256Sum=f30b29580fe11719087d698da23f3b0f0d04031d8995f7dd8275a31f7674dc01 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/libsignal/service/build.gradle b/libsignal/service/build.gradle index e5407d72ea..39bd9c5b05 100644 --- a/libsignal/service/build.gradle +++ b/libsignal/service/build.gradle @@ -31,6 +31,17 @@ configurations { ideaTestFixturesImplementation { extendsFrom testFixturesImplementation; canBeConsumed false; canBeResolved true } } +afterEvaluate { + [ + 'runKtlintCheckOverMainSourceSet', + 'runKtlintFormatOverMainSourceSet' + ].forEach { taskName -> + tasks.named(taskName) { + mustRunAfter tasks.named('generateMainProtos') + } + } +} + ktlint { // Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507 version.set("0.47.1") diff --git a/reproducible-builds/Dockerfile b/reproducible-builds/Dockerfile index be84de6233..fb729127ce 100644 --- a/reproducible-builds/Dockerfile +++ b/reproducible-builds/Dockerfile @@ -1,11 +1,9 @@ -FROM debian:stretch +FROM debian:bullseye COPY docker/ docker/ COPY docker/apt.conf docker/sources.list /etc/apt/ -RUN dpkg --add-architecture i386 - -RUN apt-get update -y && apt-get install -y apt-utils +RUN apt-get update -y RUN apt-get update -y && apt-get install -y $(cat docker/dependencies.txt) RUN docker/print-versions.sh docker/dependencies.txt @@ -25,10 +23,6 @@ RUN rm ${ANDROID_COMMAND_LINE_TOOLS_FILENAME} RUN yes | sdkmanager --update --sdk_root="${ANDROID_HOME}" RUN yes | sdkmanager --sdk_root="${ANDROID_HOME}" "platforms;${ANDROID_API_LEVELS}" "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" "extras;google;m2repository" "extras;android;m2repository" "extras;google;google_play_services" -RUN update-java-alternatives -s java-1.8.0-openjdk-amd64 RUN yes | sdkmanager --licenses --sdk_root="${ANDROID_HOME}" -RUN update-java-alternatives -s java-1.11.0-openjdk-amd64 RUN rm -rf ${ANDROID_HOME}/tools - -RUN docker/gradlewarmer/gradlew --version diff --git a/reproducible-builds/docker/dependencies.txt b/reproducible-builds/docker/dependencies.txt index af178e362f..7db13ac186 100644 --- a/reproducible-builds/docker/dependencies.txt +++ b/reproducible-builds/docker/dependencies.txt @@ -1,9 +1,9 @@ -libc6:i386=2.31-2 -libncurses5:i386=6.2-1 -libstdc++6:i386=10.2.0-3 -lib32z1=1:1.2.11.dfsg-2 -wget=1.20.3-1+b3 -openjdk-8-jdk=8u252-b09-1 -openjdk-11-jdk=11.0.8+10-1 -git=1:2.28.0-1 -unzip=6.0-25 +libc6=2.31-13+deb11u5 +libncurses5=6.2+20201114-2 +libstdc++6=10.2.1-6 +lib32z1=1:1.2.11.dfsg-2+deb11u2 +wget=1.21-1+deb11u1 +openjdk-11-jdk=11.0.18+10-1~deb11u1 +openjdk-17-jdk=17.0.6+10-1~deb11u1 +git=1:2.30.2-1+deb11u2 +unzip=6.0-26+deb11u1 diff --git a/reproducible-builds/docker/gradlewarmer/build.gradle b/reproducible-builds/docker/gradlewarmer/build.gradle deleted file mode 100644 index f14ae75f9a..0000000000 --- a/reproducible-builds/docker/gradlewarmer/build.gradle +++ /dev/null @@ -1,6 +0,0 @@ -apply plugin: 'java' -sourceCompatibility = 11 -version = '0.1.0' - -dependencies { -} diff --git a/reproducible-builds/docker/gradlewarmer/gradle/wrapper/gradle-wrapper.jar b/reproducible-builds/docker/gradlewarmer/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7454180f2a..0000000000 Binary files a/reproducible-builds/docker/gradlewarmer/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/reproducible-builds/docker/gradlewarmer/gradle/wrapper/gradle-wrapper.properties b/reproducible-builds/docker/gradlewarmer/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index db3bccc1f9..0000000000 --- a/reproducible-builds/docker/gradlewarmer/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionSha256Sum=a9a7b7baba105f6557c9dcf9c3c6e8f7e57e6b49889c5f1d133f015d0727e4be -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/reproducible-builds/docker/gradlewarmer/gradlew b/reproducible-builds/docker/gradlewarmer/gradlew deleted file mode 100755 index 1b6c787337..0000000000 --- a/reproducible-builds/docker/gradlewarmer/gradlew +++ /dev/null @@ -1,234 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/reproducible-builds/docker/sources.list b/reproducible-builds/docker/sources.list index 620a680e85..c94491f8e1 100644 --- a/reproducible-builds/docker/sources.list +++ b/reproducible-builds/docker/sources.list @@ -1,2 +1,2 @@ -deb http://snapshot.debian.org/archive/debian-security/20200731T201723Z stretch/updates main -deb http://snapshot.debian.org/archive/debian/20200731T211026Z/ unstable main +deb http://snapshot.debian.org/archive/debian-security/20230414T163652Z/ bullseye-security/updates main +deb http://snapshot.debian.org/archive/debian/20230415T205358Z/ bullseye main diff --git a/settings.gradle b/settings.gradle index feb7a38ab9..9ce38b14af 100644 --- a/settings.gradle +++ b/settings.gradle @@ -29,8 +29,6 @@ dependencyResolutionManagement { } } -enableFeaturePreview('VERSION_CATALOGS') - include ':app' include ':libsignal-service' include ':lintchecks'