From 26ec200f50059d6208e1e4a39ff6ada61268fba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Tue, 21 Feb 2023 09:12:37 +0100 Subject: [PATCH] Convert tor to regular dependencies --- bramble-java/build.gradle | 38 ++----------- .../bramble/test/TestResources.java | 40 ++++++++++++++ bramble-java/witness.gradle | 3 -- briar-headless/build.gradle | 53 +++++++++++++------ briar-headless/witness.gradle | 6 +++ 5 files changed, 85 insertions(+), 55 deletions(-) create mode 100644 bramble-java/src/test/java/org/briarproject/bramble/test/TestResources.java diff --git a/bramble-java/build.gradle b/bramble-java/build.gradle index 93f30b36c..29586169a 100644 --- a/bramble-java/build.gradle +++ b/bramble-java/build.gradle @@ -7,10 +7,6 @@ apply plugin: 'witness' apply from: 'witness.gradle' apply from: '../dagger.gradle' -configurations { - tor -} - dependencies { implementation project(':bramble-core') @@ -19,12 +15,9 @@ dependencies { implementation "net.java.dev.jna:jna:$jna_version" implementation "net.java.dev.jna:jna-platform:$jna_version" - tor "org.briarproject:tor-linux:$tor_version" - tor "org.briarproject:tor-windows:$tor_version" - tor "org.briarproject:obfs4proxy-linux:$obfs4proxy_version" - tor "org.briarproject:obfs4proxy-windows:$obfs4proxy_version" - tor "org.briarproject:snowflake-linux:$snowflake_version" - tor "org.briarproject:snowflake-windows:$snowflake_version" + testImplementation "org.briarproject:tor-linux:$tor_version" + testImplementation "org.briarproject:obfs4proxy-linux:$obfs4proxy_version" + testImplementation "org.briarproject:snowflake-linux:$snowflake_version" annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version" @@ -39,31 +32,6 @@ dependencies { testAnnotationProcessor "com.google.dagger:dagger-compiler:$dagger_version" } -def torBinariesDir = 'src/main/resources' - -task cleanTorBinaries { - doLast { - delete fileTree(torBinariesDir) - } -} - -clean.dependsOn cleanTorBinaries - -task unpackTorBinaries { - doLast { - copy { - from configurations.tor.collect { zipTree(it) } - into torBinariesDir - } - } - dependsOn cleanTorBinaries -} - -processResources { - inputs.dir torBinariesDir - dependsOn unpackTorBinaries -} - tasks.withType(Test) { systemProperty 'java.library.path', 'libs' } diff --git a/bramble-java/src/test/java/org/briarproject/bramble/test/TestResources.java b/bramble-java/src/test/java/org/briarproject/bramble/test/TestResources.java new file mode 100644 index 000000000..10b52a475 --- /dev/null +++ b/bramble-java/src/test/java/org/briarproject/bramble/test/TestResources.java @@ -0,0 +1,40 @@ +package org.briarproject.bramble.test; + +import org.briarproject.bramble.util.OsUtils; +import org.junit.Before; +import org.junit.Test; + +import java.io.InputStream; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assume.assumeTrue; + +public class TestResources { + + @Before + public void isRunningOnLinux() { + assumeTrue(OsUtils.isLinux()); + } + + @Test + public void canReadTorLinux() { + InputStream input = Thread.currentThread().getContextClassLoader() + .getResourceAsStream("x86_64/tor"); + assertNotNull(input); + } + + @Test + public void canReadObfs4ProxyLinux() { + InputStream input = Thread.currentThread().getContextClassLoader() + .getResourceAsStream("x86_64/obfs4proxy"); + assertNotNull(input); + } + + @Test + public void canReadSnowflakeLinux() { + InputStream input = Thread.currentThread().getContextClassLoader() + .getResourceAsStream("x86_64/snowflake"); + assertNotNull(input); + } + +} diff --git a/bramble-java/witness.gradle b/bramble-java/witness.gradle index 1db784667..272385bd9 100644 --- a/bramble-java/witness.gradle +++ b/bramble-java/witness.gradle @@ -27,11 +27,8 @@ dependencyVerification { 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.briarproject:obfs4proxy-linux:0.0.14-tor2:obfs4proxy-linux-0.0.14-tor2.jar:bb2431092b5ad998ad620b0223e725c0f7e43f1b02af2f097a2544edc1fd9738', - 'org.briarproject:obfs4proxy-windows:0.0.14-tor2:obfs4proxy-windows-0.0.14-tor2.jar:b5fbd00a8c35ccf095b265370752390e4cd46055331049c4dfcc236dc9c650ac', 'org.briarproject:snowflake-linux:2.5.1:snowflake-linux-2.5.1.jar:edc807dcb7758365970d95525e4749349a27f462d0e2df6505ad1ca65fb296d2', - 'org.briarproject:snowflake-windows:2.5.1:snowflake-windows-2.5.1.jar:700ec9c68dc033f544daa4ca3547c89e523aed66500cf4b3ac51fe017c51e7be', 'org.briarproject:tor-linux:0.4.7.13-1:tor-linux-0.4.7.13-1.jar:652f3d8eaa6ff2258e991a2b8238f48fff86323877527e7c8bb125e015af0f18', - 'org.briarproject:tor-windows:0.4.7.13-1:tor-windows-0.4.7.13-1.jar:ad88b9ab77c3ab14109ee75094b085e61a6da3a6530fd1906d663e560af6b2e7', 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', diff --git a/briar-headless/build.gradle b/briar-headless/build.gradle index ef7481424..5545d832c 100644 --- a/briar-headless/build.gradle +++ b/briar-headless/build.gradle @@ -13,6 +13,15 @@ plugins { } apply from: 'witness.gradle' +configurations { + windows { + extendsFrom runtimeClasspath + } + linux { + extendsFrom runtimeClasspath + } +} + sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -21,6 +30,14 @@ dependencies { implementation project(':bramble-java') implementation project(':briar-core') + linux "org.briarproject:tor-linux:$tor_version" + linux "org.briarproject:obfs4proxy-linux:$obfs4proxy_version" + linux "org.briarproject:snowflake-linux:$snowflake_version" + + windows "org.briarproject:tor-windows:$tor_version" + windows "org.briarproject:obfs4proxy-windows:$obfs4proxy_version" + windows "org.briarproject:snowflake-windows:$snowflake_version" + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10' implementation 'io.javalin:javalin:3.5.0' implementation 'org.slf4j:slf4j-simple:1.7.30' @@ -47,7 +64,8 @@ dependencies { kaptTest "com.google.dagger:dagger-compiler:$dagger_version" } -void jarFactory(Jar jarTask, jarArchitecture) { +void jarFactory(Jar jarTask, os, architecture, configuration) { + def jarArchitecture = os + "-" + architecture jarTask.dependsOn( ':bramble-api:jar', ':bramble-core:jar', @@ -66,21 +84,22 @@ void jarFactory(Jar jarTask, jarArchitecture) { } jarTask.setArchiveClassifier(jarArchitecture) jarTask.from { - configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + configuration.collect { it.isDirectory() ? it : zipTree(it) } } { it.duplicatesStrategy(DuplicatesStrategy.EXCLUDE) - String[] architectures = [ - "linux-aarch64", - "linux-armhf", - "linux-x86_64", - "windows-x86_64" - ] - for (String arch : architectures) { - if (arch != jarArchitecture) { - exclude "obfs4proxy_" + arch + ".zip" - exclude "tor_" + arch + ".zip" - exclude "snowflake_" + arch + ".zip" + if (os == "linux") { + String[] architectures = [ + "aarch64", + "armhf", + "x86_64", + ] + for (String arch : architectures) { + if (arch != architecture) { + exclude arch + "/obfs4proxy" + exclude arch + "/tor" + exclude arch + "/snowflake" + } } } exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA' @@ -118,19 +137,19 @@ void jarFactory(Jar jarTask, jarArchitecture) { } task aarch64LinuxJar(type: Jar) { - jarFactory(it, 'linux-aarch64') + jarFactory(it, 'linux', 'aarch64', configurations.linux) } task armhfLinuxJar(type: Jar) { - jarFactory(it, 'linux-armhf') + jarFactory(it, 'linux', 'armhf', configurations.linux) } task x86LinuxJar(type: Jar) { - jarFactory(it, 'linux-x86_64') + jarFactory(it, 'linux', 'x86_64', configurations.linux) } task windowsJar(type: Jar) { - jarFactory(it, 'windows-x86_64') + jarFactory(it, 'windows', 'x86_64', configurations.windows) } task linuxJars { diff --git a/briar-headless/witness.gradle b/briar-headless/witness.gradle index b01d7bafa..93e5c5867 100644 --- a/briar-headless/witness.gradle +++ b/briar-headless/witness.gradle @@ -40,6 +40,12 @@ dependencyVerification { 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4', 'org.bouncycastle:bcprov-jdk15to18:1.71:bcprov-jdk15to18-1.71.jar:143aaa4a40edd5fc2a18db7900059f6c16f4d931b94b94b20f7e2238e6662886', + 'org.briarproject:obfs4proxy-linux:0.0.14-tor2:obfs4proxy-linux-0.0.14-tor2.jar:bb2431092b5ad998ad620b0223e725c0f7e43f1b02af2f097a2544edc1fd9738', + 'org.briarproject:obfs4proxy-windows:0.0.14-tor2:obfs4proxy-windows-0.0.14-tor2.jar:b5fbd00a8c35ccf095b265370752390e4cd46055331049c4dfcc236dc9c650ac', + 'org.briarproject:snowflake-linux:2.5.1:snowflake-linux-2.5.1.jar:edc807dcb7758365970d95525e4749349a27f462d0e2df6505ad1ca65fb296d2', + 'org.briarproject:snowflake-windows:2.5.1:snowflake-windows-2.5.1.jar:700ec9c68dc033f544daa4ca3547c89e523aed66500cf4b3ac51fe017c51e7be', + 'org.briarproject:tor-linux:0.4.7.13-1:tor-linux-0.4.7.13-1.jar:652f3d8eaa6ff2258e991a2b8238f48fff86323877527e7c8bb125e015af0f18', + 'org.briarproject:tor-windows:0.4.7.13-1:tor-windows-0.4.7.13-1.jar:ad88b9ab77c3ab14109ee75094b085e61a6da3a6530fd1906d663e560af6b2e7', 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', 'org.eclipse.jetty.websocket:websocket-api:9.4.20.v20190813:websocket-api-9.4.20.v20190813.jar:779a29060cc17bdeeeba147efc884ebff972cfff93dad2d37b11c93f95d4f67b',