From 7ccb203bb54b4c50023967819d332995226c3137 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 16:59:15 +0000 Subject: [PATCH 1/8] packaging: Rename jpackage output to GitHub binary names --- .../bisq/gradle/packaging/PackagingPlugin.kt | 2 ++ .../packaging/ReleaseBinariesTaskFactory.kt | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt index 97fea2f35b..597fadf62a 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt @@ -63,6 +63,8 @@ class PackagingPlugin @Inject constructor(private val javaToolchainService: Java outputDirectory.set(project.layout.buildDirectory.dir("packaging/jpackage/packages")) } + + ReleaseBinariesTaskFactory.registerCopyReleaseBinariesTask(project) } private fun getHashFileForOs(project: Project): Provider { diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt new file mode 100644 index 0000000000..0fe4cf220f --- /dev/null +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt @@ -0,0 +1,29 @@ +package bisq.gradle.packaging + +import org.gradle.api.Project +import org.gradle.api.file.Directory +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.Copy +import org.gradle.kotlin.dsl.register + +class ReleaseBinariesTaskFactory { + companion object { + fun registerCopyReleaseBinariesTask(project: Project) { + val inputBinariesProperty: Provider = project.providers + .gradleProperty("bisq.release.binaries_path") + val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") + + project.tasks.register("copyReleaseBinaries") { + from(inputBinariesProperty) + into(releaseDir) + rename { fileName: String -> + fileName.replace("Bisq 2", "Bisq") // "Bisq 2-2.0.4.exe", "Bisq 2-2.0.4.dmg" + .replace("bisq2_", "Bisq-") // "bisq2_2.0.4-1_amd64.deb" + .replace("bisq2-", "Bisq-") // "bisq2-2.0.4-1.x86_64.rpm" + .replace("-1_amd64", "") + .replace("-1.x86_64", "") + } + } + } + } +} \ No newline at end of file From 3967a54119e7b81d18de77797dfb63fdb8e4b821 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:00:34 +0000 Subject: [PATCH 2/8] packaging: Copy maintainer public keys to release directory --- .../maintainer_public_keys/387C8307.asc | 52 +++++++++++++++++++ .../maintainer_public_keys/E222AA02.asc | 52 +++++++++++++++++++ .../bisq/gradle/packaging/PackagingPlugin.kt | 4 +- .../packaging/ReleaseBinariesTaskFactory.kt | 44 ++++++++++------ 4 files changed, 135 insertions(+), 17 deletions(-) create mode 100644 apps/desktop/desktop-app-launcher/maintainer_public_keys/387C8307.asc create mode 100644 apps/desktop/desktop-app-launcher/maintainer_public_keys/E222AA02.asc diff --git a/apps/desktop/desktop-app-launcher/maintainer_public_keys/387C8307.asc b/apps/desktop/desktop-app-launcher/maintainer_public_keys/387C8307.asc new file mode 100644 index 0000000000..66894d0f74 --- /dev/null +++ b/apps/desktop/desktop-app-launcher/maintainer_public_keys/387C8307.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +6+/7BDGYEEs6aC8= +=Wo9e +-----END PGP PUBLIC KEY BLOCK----- diff --git a/apps/desktop/desktop-app-launcher/maintainer_public_keys/E222AA02.asc b/apps/desktop/desktop-app-launcher/maintainer_public_keys/E222AA02.asc new file mode 100644 index 0000000000..1a70fe9265 --- /dev/null +++ b/apps/desktop/desktop-app-launcher/maintainer_public_keys/E222AA02.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +E75tU69fX3jkrGUnqLQIJ/yI3fXUCXnd +=ektd +-----END PGP PUBLIC KEY BLOCK----- diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt index 597fadf62a..72720d0641 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt @@ -64,7 +64,9 @@ class PackagingPlugin @Inject constructor(private val javaToolchainService: Java outputDirectory.set(project.layout.buildDirectory.dir("packaging/jpackage/packages")) } - ReleaseBinariesTaskFactory.registerCopyReleaseBinariesTask(project) + val releaseBinariesTaskFactory = ReleaseBinariesTaskFactory(project) + releaseBinariesTaskFactory.registerCopyReleaseBinariesTask() + releaseBinariesTaskFactory.registerCopyMaintainerPublicKeysTask() } private fun getHashFileForOs(project: Project): Provider { diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt index 0fe4cf220f..c41694b1df 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt @@ -6,24 +6,36 @@ import org.gradle.api.provider.Provider import org.gradle.api.tasks.Copy import org.gradle.kotlin.dsl.register -class ReleaseBinariesTaskFactory { - companion object { - fun registerCopyReleaseBinariesTask(project: Project) { - val inputBinariesProperty: Provider = project.providers - .gradleProperty("bisq.release.binaries_path") - val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") +class ReleaseBinariesTaskFactory(private val project: Project) { + private val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") - project.tasks.register("copyReleaseBinaries") { - from(inputBinariesProperty) - into(releaseDir) - rename { fileName: String -> - fileName.replace("Bisq 2", "Bisq") // "Bisq 2-2.0.4.exe", "Bisq 2-2.0.4.dmg" - .replace("bisq2_", "Bisq-") // "bisq2_2.0.4-1_amd64.deb" - .replace("bisq2-", "Bisq-") // "bisq2-2.0.4-1.x86_64.rpm" - .replace("-1_amd64", "") - .replace("-1.x86_64", "") - } + fun registerCopyReleaseBinariesTask() { + val inputBinariesProperty: Provider = project.providers + .gradleProperty("bisq.release.binaries_path") + val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") + + project.tasks.register("copyReleaseBinaries") { + from(inputBinariesProperty) + into(releaseDir) + rename { fileName: String -> + fileName.replace("Bisq 2", "Bisq") // "Bisq 2-2.0.4.exe", "Bisq 2-2.0.4.dmg" + .replace("bisq2_", "Bisq-") // "bisq2_2.0.4-1_amd64.deb" + .replace("bisq2-", "Bisq-") // "bisq2-2.0.4-1.x86_64.rpm" + .replace("-1_amd64", "") + .replace("-1.x86_64", "") } } } + + fun registerCopyMaintainerPublicKeysTask() { + val publicKeyDirectory = "maintainer_public_keys" + val maintainerPublicKeys = project.layout.files( + "$publicKeyDirectory/387C8307.asc", + "$publicKeyDirectory/E222AA02.asc" + ) + project.tasks.register("copyMaintainerPublicKeys") { + from(maintainerPublicKeys) + into(releaseDir) + } + } } \ No newline at end of file From 27800c5f89e34766d3662b752c8dc26960dae005 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:01:19 +0000 Subject: [PATCH 3/8] packaging: Copy signing public key to release directory --- .../bisq/gradle/packaging/PackagingPlugin.kt | 1 + .../packaging/ReleaseBinariesTaskFactory.kt | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt index 72720d0641..b9d55bab56 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt @@ -67,6 +67,7 @@ class PackagingPlugin @Inject constructor(private val javaToolchainService: Java val releaseBinariesTaskFactory = ReleaseBinariesTaskFactory(project) releaseBinariesTaskFactory.registerCopyReleaseBinariesTask() releaseBinariesTaskFactory.registerCopyMaintainerPublicKeysTask() + releaseBinariesTaskFactory.registerCopySigningPublicKeyTask() } private fun getHashFileForOs(project: Project): Provider { diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt index c41694b1df..eb5693e33f 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt @@ -7,6 +7,9 @@ import org.gradle.api.tasks.Copy import org.gradle.kotlin.dsl.register class ReleaseBinariesTaskFactory(private val project: Project) { + companion object { + private const val MAINTAINER_PUBLIC_KEY_DIRECTORY: String = "maintainer_public_keys" + } private val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") fun registerCopyReleaseBinariesTask() { @@ -28,14 +31,23 @@ class ReleaseBinariesTaskFactory(private val project: Project) { } fun registerCopyMaintainerPublicKeysTask() { - val publicKeyDirectory = "maintainer_public_keys" val maintainerPublicKeys = project.layout.files( - "$publicKeyDirectory/387C8307.asc", - "$publicKeyDirectory/E222AA02.asc" + "$MAINTAINER_PUBLIC_KEY_DIRECTORY/387C8307.asc", + "$MAINTAINER_PUBLIC_KEY_DIRECTORY/E222AA02.asc" ) project.tasks.register("copyMaintainerPublicKeys") { from(maintainerPublicKeys) into(releaseDir) } } + + fun registerCopySigningPublicKeyTask() { + val signingPublicKey = project.layout.projectDirectory + .file("$MAINTAINER_PUBLIC_KEY_DIRECTORY/E222AA02.asc") + project.tasks.register("copySigningPublicKey") { + from(signingPublicKey) + into(releaseDir) + rename { "signingkey.asc" } + } + } } \ No newline at end of file From c44777fee530e24885373c18b548ecf93d98cd2f Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:03:15 +0000 Subject: [PATCH 4/8] packaging: Merge OS specific Jar hashes --- .../packaging/MergeOsSpecificJarHashesTask.kt | 41 +++++++++++++++++++ .../bisq/gradle/packaging/PackagingPlugin.kt | 1 + .../packaging/ReleaseBinariesTaskFactory.kt | 24 +++++++++-- 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/MergeOsSpecificJarHashesTask.kt diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/MergeOsSpecificJarHashesTask.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/MergeOsSpecificJarHashesTask.kt new file mode 100644 index 0000000000..b983650f62 --- /dev/null +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/MergeOsSpecificJarHashesTask.kt @@ -0,0 +1,41 @@ +package bisq.gradle.packaging + +import org.gradle.api.DefaultTask +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.OutputFile +import org.gradle.api.tasks.TaskAction +import java.io.File + +abstract class MergeOsSpecificJarHashesTask : DefaultTask() { + + @get:InputFiles + abstract val hashFiles: ConfigurableFileCollection + + @get:OutputFile + abstract val outputFile: RegularFileProperty + + @TaskAction + fun run() { + val outputFile: File = outputFile.get().asFile + val bufferedWriter = outputFile.bufferedWriter() + + for (file: File in hashFiles.files) { + val linePrefix = getLinePrefix(file.name) + for (line in file.readLines()) { + bufferedWriter.write("$linePrefix:$line\n") + } + } + + bufferedWriter.close() + } + + private fun getLinePrefix(fileName: String): String = + when { + fileName.contains("mac") -> "macOS" + fileName.contains("linux") -> "linux" + fileName.contains("windows") -> "windows" + else -> throw IllegalStateException("Unknown hash file: $fileName") + } +} \ No newline at end of file diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt index b9d55bab56..08f8688331 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt @@ -68,6 +68,7 @@ class PackagingPlugin @Inject constructor(private val javaToolchainService: Java releaseBinariesTaskFactory.registerCopyReleaseBinariesTask() releaseBinariesTaskFactory.registerCopyMaintainerPublicKeysTask() releaseBinariesTaskFactory.registerCopySigningPublicKeyTask() + releaseBinariesTaskFactory.registerMergeOsSpecificJarHashesTask() } private fun getHashFileForOs(project: Project): Provider { diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt index eb5693e33f..a82dee25fb 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt @@ -2,6 +2,7 @@ package bisq.gradle.packaging import org.gradle.api.Project import org.gradle.api.file.Directory +import org.gradle.api.file.RegularFile import org.gradle.api.provider.Provider import org.gradle.api.tasks.Copy import org.gradle.kotlin.dsl.register @@ -10,13 +11,13 @@ class ReleaseBinariesTaskFactory(private val project: Project) { companion object { private const val MAINTAINER_PUBLIC_KEY_DIRECTORY: String = "maintainer_public_keys" } + private val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") + private val inputBinariesProperty: Provider = project.providers + .gradleProperty("bisq.release.binaries_path") fun registerCopyReleaseBinariesTask() { - val inputBinariesProperty: Provider = project.providers - .gradleProperty("bisq.release.binaries_path") val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") - project.tasks.register("copyReleaseBinaries") { from(inputBinariesProperty) into(releaseDir) @@ -50,4 +51,21 @@ class ReleaseBinariesTaskFactory(private val project: Project) { rename { "signingkey.asc" } } } + + fun registerMergeOsSpecificJarHashesTask() { + val files = project.files( + inputBinariesProperty.map { inputDir -> + "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-mac.jar.SHA-256" }, + inputBinariesProperty.map { inputDir -> + "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-linux.jar.SHA-256" }, + inputBinariesProperty.map { inputDir -> + "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-windows.jar.SHA-256" } + ) + val mergedShaFile: Provider = project.layout.buildDirectory + .file("packaging/release/Bisq-${PackagingPlugin.APP_VERSION}.jar.txt") + project.tasks.register("mergeOsSpecificJarHashes") { + hashFiles.setFrom(files) + outputFile.set(mergedShaFile) + } + } } \ No newline at end of file From 93c9ed34ce3cd9c2962fe534ea4c3de889e95428 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:04:15 +0000 Subject: [PATCH 5/8] Add Bisq 1 support to copyReleaseBinaries task --- .../packaging/ReleaseBinariesTaskFactory.kt | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt index a82dee25fb..b7b09acdf9 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt @@ -21,12 +21,35 @@ class ReleaseBinariesTaskFactory(private val project: Project) { project.tasks.register("copyReleaseBinaries") { from(inputBinariesProperty) into(releaseDir) + /* Bisq 1: "Bisq-1.9.15.dmg" -> "Bisq-1.9.15.dmg" + "bisq_1.9.15-1_amd64.deb" -> "Bisq-64bit-1.9.15.deb" + "Bisq-1.9.15.exe" -> "Bisq-64bit-1.9.15.exe" + "bisq-1.9.15-1.x86_64.rpm" -> "Bisq-64bit-1.9.15.rpm" + + Bisq 2: "bisq2_2.0.4-1_amd64.deb" -> "Bisq-2.0.4.deb" + "Bisq 2-2.0.4.dmg" -> "Bisq-2.0.4.dmg" + "Bisq 2-2.0.4.exe" -> "Bisq-2.0.4.exe" + "bisq2-2.0.4-1.x86_64.rpm" -> "Bisq-2.0.4.rpm" */ rename { fileName: String -> - fileName.replace("Bisq 2", "Bisq") // "Bisq 2-2.0.4.exe", "Bisq 2-2.0.4.dmg" - .replace("bisq2_", "Bisq-") // "bisq2_2.0.4-1_amd64.deb" - .replace("bisq2-", "Bisq-") // "bisq2-2.0.4-1.x86_64.rpm" - .replace("-1_amd64", "") - .replace("-1.x86_64", "") + if (fileName.startsWith("Bisq 2") || fileName.contains("bisq2")) { + fileName.replace("Bisq 2", "Bisq") // "Bisq 2-2.0.4.exe", "Bisq 2-2.0.4.dmg" + .replace("bisq2_", "Bisq-") // "bisq2_2.0.4-1_amd64.deb" + .replace("bisq2-", "Bisq-") // "bisq2-2.0.4-1.x86_64.rpm" + .replace("-1_amd64", "") + .replace("-1.x86_64", "") + } else { + if (fileName.endsWith(".exe")) { // "Bisq-64bit-1.9.15.exe" + fileName.replace("Bisq-", "Bisq-64bit-") + } else if (fileName.endsWith(".rpm")) { // Bisq-64bit-1.9.15.rpm + fileName.replace("bisq-", "Bisq-64bit-") + .replace("-1.x86_64.rpm", ".rpm")// "bisq-1.9.15-1.x86_64.rpm" + } else if (fileName.endsWith(".deb")) { // "bisq_1.9.15-1_amd64.deb" + fileName.replace("bisq_", "Bisq-64bit-") + .replace("-1_amd64.deb", ".deb")// "Bisq-64bit-1.9.15.deb" + } else { + fileName + } + } } } } From 86871e9aa35e7c106b9de81d14431f1eb414eaab Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:05:14 +0000 Subject: [PATCH 6/8] packaging: Only include binaries in copyReleaseBinaries task --- .../gradle/packaging/ReleaseBinariesTaskFactory.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt index b7b09acdf9..ca24e2bb04 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/ReleaseBinariesTaskFactory.kt @@ -20,6 +20,7 @@ class ReleaseBinariesTaskFactory(private val project: Project) { val releaseDir: Provider = project.layout.buildDirectory.dir("packaging/release") project.tasks.register("copyReleaseBinaries") { from(inputBinariesProperty) + include("*.dmg", "*.deb", "*.exe", "*.rpm") into(releaseDir) /* Bisq 1: "Bisq-1.9.15.dmg" -> "Bisq-1.9.15.dmg" "bisq_1.9.15-1_amd64.deb" -> "Bisq-64bit-1.9.15.deb" @@ -78,11 +79,14 @@ class ReleaseBinariesTaskFactory(private val project: Project) { fun registerMergeOsSpecificJarHashesTask() { val files = project.files( inputBinariesProperty.map { inputDir -> - "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-mac.jar.SHA-256" }, + "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-mac.jar.SHA-256" + }, inputBinariesProperty.map { inputDir -> - "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-linux.jar.SHA-256" }, + "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-linux.jar.SHA-256" + }, inputBinariesProperty.map { inputDir -> - "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-windows.jar.SHA-256" } + "$inputDir/desktop-${PackagingPlugin.APP_VERSION}-all-windows.jar.SHA-256" + } ) val mergedShaFile: Provider = project.layout.buildDirectory .file("packaging/release/Bisq-${PackagingPlugin.APP_VERSION}.jar.txt") From a0564fc1ef456b6968dffd7e1bf1ed6820c86674 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:06:14 +0000 Subject: [PATCH 7/8] packaging: Dynamically set app name --- .../desktop-app-launcher/build.gradle.kts | 4 ++++ .../kotlin/bisq/gradle/packaging/JPackageTask.kt | 16 ++++++++++------ .../bisq/gradle/packaging/PackagingPlugin.kt | 4 ++++ .../gradle/packaging/PackagingPluginExtension.kt | 7 +++++++ .../packaging/jpackage/JPackageAppConfig.kt | 1 + .../gradle/packaging/jpackage/PackageFactory.kt | 2 +- .../jpackage/package_formats/MacPackage.kt | 4 ++-- 7 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPluginExtension.kt diff --git a/apps/desktop/desktop-app-launcher/build.gradle.kts b/apps/desktop/desktop-app-launcher/build.gradle.kts index b3d2f72436..78b93adc05 100644 --- a/apps/desktop/desktop-app-launcher/build.gradle.kts +++ b/apps/desktop/desktop-app-launcher/build.gradle.kts @@ -10,6 +10,10 @@ application { mainClass.set("bisq.desktop_app_launcher.DesktopAppLauncher") } +packaging { + name.set("Bisq 2") +} + javafx { version = "17.0.1" modules = listOf("javafx.controls", "javafx.media") diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt index e7fa8826d5..e8cea29ebe 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt @@ -35,6 +35,9 @@ abstract class JPackageTask : DefaultTask() { @get:InputFile abstract val licenseFile: RegularFileProperty + @get:Input + abstract val appName: Property + @get:Input abstract val appVersion: Property @@ -57,11 +60,12 @@ abstract class JPackageTask : DefaultTask() { runtimeImageDirPath = runtimeImageDirectory.asFile.get().toPath(), appConfig = JPackageAppConfig( - appVersion = appVersion.get(), - mainJarFileName = mainJarFile.asFile.get().name, - mainClassName = mainClassName.get(), - jvmArgs = jvmArgs.get(), - licenceFilePath = licenseFile.asFile.get().absolutePath + name = appName.get(), + appVersion = appVersion.get(), + mainJarFileName = mainJarFile.asFile.get().name, + mainClassName = mainClassName.get(), + jvmArgs = jvmArgs.get(), + licenceFilePath = licenseFile.asFile.get().absolutePath ), packageFormatConfigs = getPackageFormatConfigs() @@ -81,7 +85,7 @@ abstract class JPackageTask : DefaultTask() { OS.MAC_OS -> { val resourcesPath = packagePath.resolve("macosx") - MacPackage(resourcesPath) + MacPackage(resourcesPath, appName.get()) } OS.LINUX -> { diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt index 08f8688331..b560f7873c 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPlugin.kt @@ -14,6 +14,7 @@ import org.gradle.jvm.toolchain.JavaLanguageVersion import org.gradle.jvm.toolchain.JavaToolchainService import org.gradle.jvm.toolchain.JvmImplementation import org.gradle.jvm.toolchain.JvmVendorSpec +import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.findByType import org.gradle.kotlin.dsl.register import java.io.File @@ -27,6 +28,8 @@ class PackagingPlugin @Inject constructor(private val javaToolchainService: Java } override fun apply(project: Project) { + val extension = project.extensions.create("packaging") + val installDistTask: TaskProvider = project.tasks.named("installDist", Sync::class.java) val generateHashesTask = project.tasks.register("generateHashes") { @@ -51,6 +54,7 @@ class PackagingPlugin @Inject constructor(private val javaToolchainService: Java jvmArgs.set(javaApplicationExtension.applicationDefaultJvmArgs) licenseFile.set(File(project.projectDir.parentFile.parentFile.parentFile, "LICENSE")) + appName.set(extension.name) appVersion.set(APP_VERSION) val packageResourcesDirFile = File(project.projectDir, "package") diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPluginExtension.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPluginExtension.kt new file mode 100644 index 0000000000..a42b97be21 --- /dev/null +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/PackagingPluginExtension.kt @@ -0,0 +1,7 @@ +package bisq.gradle.packaging + +import org.gradle.api.provider.Property + +abstract class PackagingPluginExtension { + abstract val name: Property +} \ No newline at end of file diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/JPackageAppConfig.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/JPackageAppConfig.kt index 3764434606..9cadfd2bf9 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/JPackageAppConfig.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/JPackageAppConfig.kt @@ -1,6 +1,7 @@ package bisq.gradle.packaging.jpackage data class JPackageAppConfig( + val name: String, val appVersion: String, val mainJarFileName: String, val mainClassName: String, diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/PackageFactory.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/PackageFactory.kt index fb07f74e94..c9a2674431 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/PackageFactory.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/PackageFactory.kt @@ -40,7 +40,7 @@ class PackageFactory(private val jPackagePath: Path, private val jPackageConfig: mutableListOf( "--dest", jPackageConfig.outputDirPath.toAbsolutePath().toString(), - "--name", "Bisq 2", + "--name", appConfig.name, "--copyright", "Copyright © 2013-${Year.now()} - The Bisq developers", "--vendor", "Bisq", "--license-file", appConfig.licenceFilePath, diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/MacPackage.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/MacPackage.kt index 773a701cb9..4d92fcd4f3 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/MacPackage.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/MacPackage.kt @@ -2,13 +2,13 @@ package bisq.gradle.packaging.jpackage.package_formats import java.nio.file.Path -class MacPackage(private val resourcesPath: Path) : JPackagePackageFormatConfigs { +class MacPackage(private val resourcesPath: Path, private val appName: String) : JPackagePackageFormatConfigs { override val packageFormats = setOf(PackageFormat.DMG) override fun createArgumentsForJPackage(packageFormat: PackageFormat): List = mutableListOf( "--resource-dir", resourcesPath.toAbsolutePath().toString(), - "--mac-package-name", "Bisq 2", + "--mac-package-name", appName, "--icon", resourcesPath.resolve("Bisq2.icns").toAbsolutePath().toString(), "--description", "A decentralized bitcoin exchange network.", ) From 03f2a8a06f2af114a2cdf8b315bba9e15557ac09 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Mon, 24 Jun 2024 17:07:09 +0000 Subject: [PATCH 8/8] packaging: Dynamically set linux package name --- .../src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt | 2 +- .../packaging/jpackage/package_formats/LinuxPackages.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt index e8cea29ebe..e7b3989ca8 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/JPackageTask.kt @@ -90,7 +90,7 @@ abstract class JPackageTask : DefaultTask() { OS.LINUX -> { val resourcesPath = packagePath.resolve("linux") - LinuxPackages(resourcesPath) + LinuxPackages(resourcesPath, appName.get()) } } } diff --git a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/LinuxPackages.kt b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/LinuxPackages.kt index 74a866f2ab..7d09d18672 100644 --- a/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/LinuxPackages.kt +++ b/build-logic/packaging/src/main/kotlin/bisq/gradle/packaging/jpackage/package_formats/LinuxPackages.kt @@ -2,7 +2,7 @@ package bisq.gradle.packaging.jpackage.package_formats import java.nio.file.Path -class LinuxPackages(private val resourcesPath: Path) : JPackagePackageFormatConfigs { +class LinuxPackages(private val resourcesPath: Path, private val appName: String) : JPackagePackageFormatConfigs { override val packageFormats = setOf(PackageFormat.DEB, PackageFormat.RPM) override fun createArgumentsForJPackage(packageFormat: PackageFormat): List { @@ -13,7 +13,7 @@ class LinuxPackages(private val resourcesPath: Path) : JPackagePackageFormatConf "--description", "A decentralized bitcoin exchange network.", - "--linux-package-name", "bisq2", + "--linux-package-name", appName.toLowerCase().replace(" ", ""), "--linux-app-release", "1", "--linux-menu-group", "Network",