From 99bc4dbdc5629afd2684cd7fe51c1364522815cb Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 25 Nov 2022 15:27:46 +0100 Subject: [PATCH 01/12] use openjfx jmods instead of jars --- .github/workflows/appimage.yml | 3 ++- .github/workflows/mac-dmg.yml | 3 ++- .github/workflows/win-exe.yml | 3 ++- pom.xml | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 26d455b8f..45ec85ef2 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -29,6 +29,7 @@ jobs: with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} + java-package: 'jdk+fx' cache: 'maven' - name: Set version run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }} @@ -45,7 +46,7 @@ jobs: --verbose --output runtime --module-path "${JAVA_HOME}/jmods" - --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr + --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr --strip-native-commands --no-header-files --no-man-pages diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index d52441a0e..94b38da96 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -41,6 +41,7 @@ jobs: with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} + java-package: 'jdk+fx' architecture: ${{ matrix.architecture }} cache: 'maven' - name: Set version @@ -58,7 +59,7 @@ jobs: --verbose --output runtime --module-path "${JAVA_HOME}/jmods" - --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr + --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr --strip-native-commands --no-header-files --no-man-pages diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 0725c0329..dc5fc335f 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -37,6 +37,7 @@ jobs: with: distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} + java-package: 'jdk+fx' cache: ${{ env.JAVA_CACHE }} - name: Set version run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }} @@ -53,7 +54,7 @@ jobs: --verbose --output runtime --module-path "${JAVA_HOME}/jmods" - --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr + --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr --strip-native-commands --no-header-files --no-man-pages diff --git a/pom.xml b/pom.xml index 725e3d7c2..a8f620a32 100644 --- a/pom.xml +++ b/pom.xml @@ -371,6 +371,7 @@ org.apache.maven.plugins maven-dependency-plugin + copy-mods prepare-package @@ -380,7 +381,7 @@ runtime ${project.build.directory}/mods - ${nonModularGroupIds} + org.openjfx,${nonModularGroupIds} From abf944a1304d052eb5bfb25725f3f521b7916ee5 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 25 Nov 2022 15:57:04 +0100 Subject: [PATCH 02/12] add required openjfx jmods to debian source package --- .github/workflows/debian.yml | 13 ++++++++++++- dist/linux/debian/rules | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index a194d4ad1..e3f1c052d 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -16,6 +16,8 @@ on: env: JAVA_VERSION: 19 + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-x64_bin-jmods.zip' + OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-aarch64_bin-jmods.zip' jobs: get-version: @@ -48,11 +50,20 @@ jobs: REVCOUNT: ${{ needs.get-version.outputs.revNum }} - name: Run maven run: mvn -B clean package -Pdependency-check,linux -DskipTests - - name: Create orig.tar.gz with common/ libs/ mods/ + - name: Download OpenJFX jmods + run: | + curl -L ${{ env.OPENJFX_JMODS_AMD64 }} -o openjfx-amd64.zip + mkdir -p jmods/amd64 + unzip -j openjfx-amd64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/amd64 + curl -L ${{ env.OPENJFX_JMODS_AARCH64 }} -o openjfx-aarch64.zip + mkdir -p jmods/aarch64 + unzip -j openjfx-aarch64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/aarch64 + - name: Create orig.tar.gz with common/ libs/ mods/ jmods/ run: | mkdir pkgdir cp -r target/libs pkgdir cp -r target/mods pkgdir + cp -r jmods pkgdir cp -r dist/linux/common/ pkgdir cp target/cryptomator-*.jar pkgdir/mods tar -cJf cryptomator_${{ steps.versions.outputs.ppaVerStr }}.orig.tar.xz -C pkgdir . diff --git a/dist/linux/debian/rules b/dist/linux/debian/rules index 04c256f60..37243040a 100755 --- a/dist/linux/debian/rules +++ b/dist/linux/debian/rules @@ -20,6 +20,7 @@ override_dh_auto_build: ln -s ../common/org.cryptomator.Cryptomator512.png resources/cryptomator.png $(JAVA_HOME)/bin/jlink \ --output runtime \ + --module-path "jmods:${JAVA_HOME}/jmods" \ --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr \ --strip-native-commands \ --no-header-files \ From a3fc68ab6fdb84f27d004be5d736d0a77b3a5c1d Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 25 Nov 2022 16:05:53 +0100 Subject: [PATCH 03/12] jlink javafx.* modules from arch-dependent jmod path --- dist/linux/debian/rules | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dist/linux/debian/rules b/dist/linux/debian/rules index 37243040a..08bac5f56 100755 --- a/dist/linux/debian/rules +++ b/dist/linux/debian/rules @@ -5,6 +5,12 @@ #export DH_VERBOSE=1 JAVA_HOME = /usr/lib/jvm/java-19-coffeelibs +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) +ifeq ($(DEB_BUILD_ARCH),amd64) +JMODS_PATH = jmods/amd64:${JAVA_HOME}/jmods +else ifeq ($(DEB_BUILD_ARCH),arm64) +JMODS_PATH = jmods/aarch64:${JAVA_HOME}/jmods +endif %: dh $@ @@ -20,8 +26,8 @@ override_dh_auto_build: ln -s ../common/org.cryptomator.Cryptomator512.png resources/cryptomator.png $(JAVA_HOME)/bin/jlink \ --output runtime \ - --module-path "jmods:${JAVA_HOME}/jmods" \ - --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr \ + --module-path "${JMODS_PATH}" \ + --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr \ --strip-native-commands \ --no-header-files \ --no-man-pages \ From ba7029968d32ece37d6dc9ad55eeb632707eb105 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 25 Nov 2022 16:20:40 +0100 Subject: [PATCH 04/12] try fixing `dpkg-shlibdeps: error: cannot find library libgtk-x11-2.0.so.0 ...` --- .github/workflows/debian.yml | 2 +- dist/linux/debian/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index e3f1c052d..e1c3ad2cc 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -35,7 +35,7 @@ jobs: run: | sudo add-apt-repository ppa:coffeelibs/openjdk sudo apt-get update - sudo apt-get install debhelper devscripts dput coffeelibs-jdk-19 + sudo apt-get install debhelper devscripts dput coffeelibs-jdk-19 libgtk2.0-0 - name: Setup Java uses: actions/setup-java@v3 with: diff --git a/dist/linux/debian/control b/dist/linux/debian/control index 77aba901c..0f0757321 100644 --- a/dist/linux/debian/control +++ b/dist/linux/debian/control @@ -2,7 +2,7 @@ Source: cryptomator Maintainer: Cryptobot Section: utils Priority: optional -Build-Depends: debhelper (>=10), coffeelibs-jdk-19 +Build-Depends: debhelper (>=10), coffeelibs-jdk-19, libgtk2.0-0 Standards-Version: 4.5.0 Homepage: https://cryptomator.org Vcs-Git: https://github.com/cryptomator/cryptomator.git From 3641b34c2df2aea9f944e99a1978b5d98bd1450a Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 16:10:39 +0100 Subject: [PATCH 05/12] add guard to ensure pom defined jfx version matches the jdk bundled/jmod one --- .github/workflows/appimage.yml | 9 +++++++++ .github/workflows/debian.yml | 17 +++++++++++++++++ .github/workflows/mac-dmg.yml | 9 +++++++++ .github/workflows/win-exe.yml | 9 +++++++++ 4 files changed, 44 insertions(+) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 45ec85ef2..e0fc088bc 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -31,6 +31,15 @@ jobs: java-version: ${{ env.JAVA_VERSION }} java-package: 'jdk+fx' cache: 'maven' + - name: Ensure major jfx version in pom equals in jdk + shell: pwsh + run: | + $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." + $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' + if ($jfxPomVersion[0] -ne $jfxJdkVersion) { + Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + exit 1 + } - name: Set version run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }} - name: Run maven diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index e1c3ad2cc..3d56822d4 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -51,13 +51,30 @@ jobs: - name: Run maven run: mvn -B clean package -Pdependency-check,linux -DskipTests - name: Download OpenJFX jmods + id: download-jmods run: | curl -L ${{ env.OPENJFX_JMODS_AMD64 }} -o openjfx-amd64.zip mkdir -p jmods/amd64 unzip -j openjfx-amd64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/amd64 + unzip -j jmods/amd64/javafx.base.jmod lib/javafx.properties -d jmods/amd64 curl -L ${{ env.OPENJFX_JMODS_AARCH64 }} -o openjfx-aarch64.zip mkdir -p jmods/aarch64 unzip -j openjfx-aarch64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/aarch64 + unzip -j jmods/aarch64/javafx.base.jmod lib/javafx.properties -d jmods/aarch64 + - name: Ensure major jfx version in pom and in jmods is the same + shell: pwsh + run: | + $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." + $jfxJmodVersionAmd64 = (Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' + $jfxJmodVersionAarch64 = (Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' + if ($jfxJmodVersionAmd64 -ne $jfxJmodVersionAarch64 ) { + Out-Error "JavaFX Jmods for aarch64 and amd64 are different major versions" + exit 1 + } + if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64) { + Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods(${jfxJmodVersion}) " + exit 1 + } - name: Create orig.tar.gz with common/ libs/ mods/ jmods/ run: | mkdir pkgdir diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 94b38da96..e71f64084 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -44,6 +44,15 @@ jobs: java-package: 'jdk+fx' architecture: ${{ matrix.architecture }} cache: 'maven' + - name: Ensure major jfx version in pom equals in jdk + shell: pwsh + run: | + $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." + $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' + if ($jfxPomVersion[0] -ne $jfxJdkVersion) { + Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + exit 1 + } - name: Set version run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }} - name: Run maven diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index dc5fc335f..3646b3e91 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -39,6 +39,15 @@ jobs: java-version: ${{ env.JAVA_VERSION }} java-package: 'jdk+fx' cache: ${{ env.JAVA_CACHE }} + - name: Ensure major jfx version in pom equals in jdk + shell: pwsh + run: | + $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." + $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' + if ($jfxPomVersion[0] -ne $jfxJdkVersion) { + Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + exit 1 + } - name: Set version run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }} - name: Run maven From 169039903d0d5698e0699b432fe2ac8b19392d85 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 16:31:09 +0100 Subject: [PATCH 06/12] Use correct cmdlet --- .github/workflows/appimage.yml | 2 +- .github/workflows/debian.yml | 2 +- .github/workflows/mac-dmg.yml | 2 +- .github/workflows/win-exe.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index e0fc088bc..55f1f765e 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -37,7 +37,7 @@ jobs: $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' if ($jfxPomVersion[0] -ne $jfxJdkVersion) { - Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " exit 1 } - name: Set version diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 3d56822d4..fc066c9af 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -68,7 +68,7 @@ jobs: $jfxJmodVersionAmd64 = (Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' $jfxJmodVersionAarch64 = (Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' if ($jfxJmodVersionAmd64 -ne $jfxJmodVersionAarch64 ) { - Out-Error "JavaFX Jmods for aarch64 and amd64 are different major versions" + Write-Error "JavaFX Jmods for aarch64 and amd64 are different major versions" exit 1 } if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64) { diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index e71f64084..03083bb7c 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -50,7 +50,7 @@ jobs: $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' if ($jfxPomVersion[0] -ne $jfxJdkVersion) { - Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " exit 1 } - name: Set version diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 3646b3e91..978818136 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -45,7 +45,7 @@ jobs: $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' if ($jfxPomVersion[0] -ne $jfxJdkVersion) { - Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " exit 1 } - name: Set version From 497ddcfc9c07033e630e28c9e90060127020709f Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 16:37:48 +0100 Subject: [PATCH 07/12] shoulda used quotes --- .github/workflows/appimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 55f1f765e..957accb0d 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -34,7 +34,7 @@ jobs: - name: Ensure major jfx version in pom equals in jdk shell: pwsh run: | - $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." + $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' if ($jfxPomVersion[0] -ne $jfxJdkVersion) { Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " From d6e14dab9a8be32353d43e49f801b1ddd162bb95 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 16:43:45 +0100 Subject: [PATCH 08/12] version defined in javafx.properties is also the complete version --- .github/workflows/appimage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 957accb0d..6bba24bbe 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -35,9 +35,9 @@ jobs: shell: pwsh run: | $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." - $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' + $jfxJdkVersion = ((Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." if ($jfxPomVersion[0] -ne $jfxJdkVersion) { - Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK($($jfxJdkVersion[0])) " exit 1 } - name: Set version From b2b49f4d2f3fe8d519c687d3c424fd40e38c59ed Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 16:49:19 +0100 Subject: [PATCH 09/12] use correct pwsh syntax on all publish workflows --- .github/workflows/appimage.yml | 2 +- .github/workflows/debian.yml | 12 ++++++------ .github/workflows/mac-dmg.yml | 8 ++++---- .github/workflows/win-exe.yml | 8 ++++---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 6bba24bbe..a3502145a 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -36,7 +36,7 @@ jobs: run: | $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." $jfxJdkVersion = ((Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." - if ($jfxPomVersion[0] -ne $jfxJdkVersion) { + if ($jfxPomVersion[0] -ne $jfxJdkVersion[0]) { Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK($($jfxJdkVersion[0])) " exit 1 } diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index fc066c9af..8eb75908b 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -64,15 +64,15 @@ jobs: - name: Ensure major jfx version in pom and in jmods is the same shell: pwsh run: | - $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." - $jfxJmodVersionAmd64 = (Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' - $jfxJmodVersionAarch64 = (Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' - if ($jfxJmodVersionAmd64 -ne $jfxJmodVersionAarch64 ) { + $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." + $jfxJmodVersionAmd64 = ((Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." + $jfxJmodVersionAarch64 = ((Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." + if ($jfxJmodVersionAmd64[0] -ne $jfxJmodVersionAarch64[0] ) { Write-Error "JavaFX Jmods for aarch64 and amd64 are different major versions" exit 1 } - if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64) { - Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods(${jfxJmodVersion}) " + if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64[0]) { + Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods($($jfxJmodVersionAmd64[0])) " exit 1 } - name: Create orig.tar.gz with common/ libs/ mods/ jmods/ diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 03083bb7c..ee27624c9 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -47,10 +47,10 @@ jobs: - name: Ensure major jfx version in pom equals in jdk shell: pwsh run: | - $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." - $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' - if ($jfxPomVersion[0] -ne $jfxJdkVersion) { - Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." + $jfxJdkVersion = ((Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." + if ($jfxPomVersion[0] -ne $jfxJdkVersion[0]) { + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK($($jfxJdkVersion[0])) " exit 1 } - name: Set version diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 978818136..1ccf7a560 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -42,10 +42,10 @@ jobs: - name: Ensure major jfx version in pom equals in jdk shell: pwsh run: | - $jfxPomVersion = (&mvn help:evaluate -Dexpression=javafx.version -q -DforceStdout) -split "\." - $jfxJdkVersion = (Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','' - if ($jfxPomVersion[0] -ne $jfxJdkVersion) { - Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK(${jfxJdkVersion}) " + $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." + $jfxJdkVersion = ((Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." + if ($jfxPomVersion[0] -ne $jfxJdkVersion[0]) { + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK($($jfxJdkVersion[0])) " exit 1 } - name: Set version From 8086ec1c1045e7a800504a8b6f88558391e141a1 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 22:37:21 +0100 Subject: [PATCH 10/12] improve check on debian to not return non-zero code --- .github/workflows/debian.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 8eb75908b..a39fd346b 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -56,21 +56,23 @@ jobs: curl -L ${{ env.OPENJFX_JMODS_AMD64 }} -o openjfx-amd64.zip mkdir -p jmods/amd64 unzip -j openjfx-amd64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/amd64 - unzip -j jmods/amd64/javafx.base.jmod lib/javafx.properties -d jmods/amd64 curl -L ${{ env.OPENJFX_JMODS_AARCH64 }} -o openjfx-aarch64.zip mkdir -p jmods/aarch64 unzip -j openjfx-aarch64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/aarch64 - unzip -j jmods/aarch64/javafx.base.jmod lib/javafx.properties -d jmods/aarch64 - name: Ensure major jfx version in pom and in jmods is the same shell: pwsh run: | - $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." - $jfxJmodVersionAmd64 = ((Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." - $jfxJmodVersionAarch64 = ((Get-Content -Path "jmods/aarch64/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." + mkdir jfxBaseJmodAmd64 + jmod extract --dir jfxBaseJmodAmd64 jmods/amd64/javafx.base.jmod + $jfxJmodVersionAmd64 = ((Get-Content -Path "jfxBaseJmodAmd64/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." + mkdir jfxBaseJmodAarch64 + jmod extract --dir jfxBaseJmodAarch64 jmods/aarch64/javafx.base.jmod + $jfxJmodVersionAarch64 = ((Get-Content -Path "jfxBaseJmodAarch64/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." if ($jfxJmodVersionAmd64[0] -ne $jfxJmodVersionAarch64[0] ) { Write-Error "JavaFX Jmods for aarch64 and amd64 are different major versions" exit 1 } + $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64[0]) { Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods($($jfxJmodVersionAmd64[0])) " exit 1 From 83b198d49139baa390a69d72cfcac17d33a2ed50 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 22:38:37 +0100 Subject: [PATCH 11/12] only run jfx guard on one mac system --- .github/workflows/mac-dmg.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index ee27624c9..7ce67c772 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -45,6 +45,7 @@ jobs: architecture: ${{ matrix.architecture }} cache: 'maven' - name: Ensure major jfx version in pom equals in jdk + if: ${{ matrix.architecture}} == 'x64' shell: pwsh run: | $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." From 00a3692dcf0410a1c8e61e3523d57874eb876863 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 5 Dec 2022 22:59:42 +0100 Subject: [PATCH 12/12] final adjustments --- .github/workflows/debian.yml | 2 +- .github/workflows/mac-dmg.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index a39fd346b..8b6a3c956 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -74,7 +74,7 @@ jobs: } $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64[0]) { - Out-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods($($jfxJmodVersionAmd64[0])) " + Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods($($jfxJmodVersionAmd64[0])) " exit 1 } - name: Create orig.tar.gz with common/ libs/ mods/ jmods/ diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 7ce67c772..f2d128566 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -45,7 +45,7 @@ jobs: architecture: ${{ matrix.architecture }} cache: 'maven' - name: Ensure major jfx version in pom equals in jdk - if: ${{ matrix.architecture}} == 'x64' + if: ${{ !contains(matrix.os, 'self-hosted') }} shell: pwsh run: | $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\."