diff --git a/.github/workflows/flathub.yml b/.github/workflows/flathub.yml deleted file mode 100644 index bf22cec30..000000000 --- a/.github/workflows/flathub.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Create PR for flathub - -on: - release: - types: [published] - workflow_dispatch: - inputs: - tag: - description: 'Release tag' - required: true - -jobs: - get-version: - uses: ./.github/workflows/get-version.yml - with: - version: ${{ inputs.tag }} - tarball: - name: Determines tarball url and compute checksum - runs-on: ubuntu-latest - needs: [get-version] - if: github.event_name == 'workflow_dispatch' || needs.get-version.outputs.versionType == 'stable' - outputs: - url: ${{ steps.url.outputs.url}} - sha512: ${{ steps.sha512.outputs.sha512}} - steps: - - name: Determine tarball url - id: url - run: | - URL="https://github.com/cryptomator/cryptomator/archive/refs/tags/${TAG}.tar.gz" - echo "url=${URL}" >> "$GITHUB_OUTPUT" - env: - TAG: ${{ inputs.tag || github.event.release.tag_name}} - - name: Download source tarball and compute checksum - id: sha512 - run: | - curl --silent --fail-with-body --proto "=https" -L -H "Accept: application/vnd.github+json" ${{ steps.url.outputs.url }} --output cryptomator.tar.gz - TARBALL_SHA512=$(sha512sum cryptomator.tar.gz | cut -d ' ' -f1) - echo "sha512=${TARBALL_SHA512}" >> "$GITHUB_OUTPUT" - flathub: - name: Create PR for flathub - runs-on: ubuntu-latest - needs: [tarball, get-version] - env: - FLATHUB_PR_URL: tbd - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - repository: 'flathub/org.cryptomator.Cryptomator' - token: ${{ secrets.CRYPTOBOT_PR_TOKEN }} - - name: Checkout release branch - run: | - git checkout -b release/${{ needs.get-version.outputs.semVerStr }} - - name: Update build file - run: | - sed -i -e 's/VERSION: [0-9]\+\.[0-9]\+\.[0-9]\+.*/VERSION: ${{ needs.get-version.outputs.semVerStr }}/g' org.cryptomator.Cryptomator.yaml - sed -i -e 's/sha512: [0-9A-Za-z_\+-]\{128\} #CRYPTOMATOR/sha512: ${{ needs.tarball.outputs.sha512 }} #CRYPTOMATOR/g' org.cryptomator.Cryptomator.yaml - sed -i -e 's;url: https://github.com/cryptomator/cryptomator/archive/refs/tags/[^[:blank:]]\+;url: ${{ needs.tarball.outputs.url }};g' org.cryptomator.Cryptomator.yaml - - name: Commit and push - run: | - git config user.name "${{ github.actor }}" - git config user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" - git config push.autoSetupRemote true - git stage . - git commit -m "Prepare release ${{needs.get-version.outputs.semVerStr}}" - git push - - name: Create pull request - run: | - printf "> [!IMPORTANT]\n> Todos:\n> - [ ] Update maven dependencies\n> - [ ] Check for JDK update\n> - [ ] Check for JFX update" > pr_body.md - PR_URL=$(gh pr create --title "Release ${{ needs.get-version.outputs.semVerStr }}" --body-file pr_body.md) - echo "FLATHUB_PR_URL=$PR_URL" >> "$GITHUB_ENV" - env: - GH_TOKEN: ${{ secrets.CRYPTOBOT_PR_TOKEN }} - - name: Slack Notification - uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3 - if: github.event_name == 'release' - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - SLACK_USERNAME: 'Cryptobot' - SLACK_ICON: false - SLACK_ICON_EMOJI: ':bot:' - SLACK_CHANNEL: 'cryptomator-desktop' - SLACK_TITLE: "Flathub release PR created for ${{ github.event.repository.name }} ${{ github.event.release.tag_name }} created." - SLACK_MESSAGE: "See <${{ env.FLATHUB_PR_URL }}|PR> on how to proceed.>." - SLACK_FOOTER: false - MSG_MINIMAL: true \ No newline at end of file diff --git a/.github/workflows/linux-flatpak.yml b/.github/workflows/linux-flatpak.yml new file mode 100644 index 000000000..bd671e6d1 --- /dev/null +++ b/.github/workflows/linux-flatpak.yml @@ -0,0 +1,264 @@ +name: Build flatpak + +on: + release: + types: [published] + workflow_dispatch: + inputs: + src-tag: + description: 'Source or Release tag' + required: false + create-pr: + description: 'Create Flathub PR' + required: false + type: boolean + default: false + push: + branches-ignore: + - 'dependabot/**' + paths: + - '.github/workflows/get-version.yml' + - '.github/workflows/linux-flatpak.yml' + - 'dist/linux/flatpak/**' + - 'dist/linux/common/**' + - 'dist/linux/resources/**' + +jobs: + get-version: + uses: ./.github/workflows/get-version.yml + with: + version: ${{ inputs.src-tag }} + + build-flatpak: + name: "Build flatpak" + needs: [get-version] + container: + image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-25.08 + options: --privileged + strategy: + fail-fast: false + matrix: + variant: + - arch: x86_64 + runner: ubuntu-24.04 + - arch: aarch64 + runner: ubuntu-24.04-arm + runs-on: ${{ matrix.variant.runner }} + permissions: + contents: read + env: + SRC_GIT_SHA: ${{ inputs.src-tag || github.sha}} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: flathub/org.cryptomator.Cryptomator + submodules: true + - name: Checkout build script + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + path: build-scripts + - name: Checkout app source + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + path: cryptomator + ref: ${{ env.SRC_GIT_SHA }} + fetch-depth: 0 + - name: Prepare build files + # using envsubst instead of yq to keep linebreaks + run: | + cp -r -f build-scripts/dist/linux/flatpak/* . + envsubst '$FLATPAK_VERSION $FLATPAK_REVISION $CRYPTOMATOR_SOURCE' < org.cryptomator.Cryptomator.TEMPLATE.yaml > org.cryptomator.Cryptomator.yaml + env: + FLATPAK_VERSION: ${{ needs.get-version.outputs.semVerNum }} + FLATPAK_REVISION: 1 + CRYPTOMATOR_SOURCE: |- + type: git + path: cryptomator + commit: ${{ env.SRC_GIT_SHA }} + - name: Copy build script for upload + run: cp org.cryptomator.Cryptomator.yaml org.cryptomator.Cryptomator.${{matrix.variant.arch}}.yaml + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + with: + archive: false + if-no-files-found: error + path: | + org.cryptomator.Cryptomator.${{matrix.variant.arch}}.yaml + - uses: flatpak/flatpak-github-actions/flatpak-builder@401fe28a8384095fc1531b9d320b292f0ee45adb # SNAPSHOT due to using keep-build-dirs + with: + bundle: cryptomator.flatpak + manifest-path: org.cryptomator.Cryptomator.yaml + cache-key: flatpak-builder-${{ env.SRC_GIT_SHA }} + arch: ${{ matrix.variant.arch }} + keep-build-dirs: true + - name: Collect maven dependencies + working-directory: .flatpak-builder/build/cryptomator-1/.m2/repository/ + run: | + find * -type f \( -iname '*.jar' -o -iname '*.pom' \) | sort -V > /tmp/maven-dependency-files.txt + grep -v '^org/openjfx/javafx-' /tmp/maven-dependency-files.txt > maven-dependency-files-common.txt + grep '^org/openjfx/javafx-' /tmp/maven-dependency-files.txt > maven-dependency-files-javafx.txt + - name: Update arch independent maven dependencies + run: | + ( + cd .flatpak-builder/build/cryptomator-1/.m2/repository/ + + while IFS= read -r dependencyPath; do + dependencyName=$(dirname "$dependencyPath") + dependencySha=$(sha256sum "$dependencyPath" | cut -c 1-64) + cat < maven-dependencies.yaml + - name: Update arch specific maven dependencies + run: | + ( + cd .flatpak-builder/build/cryptomator-1/.m2/repository/ + + while IFS= read -r dependencyPath; do + dependencyName=$(dirname "$dependencyPath") + dependencySha=$(sha256sum "$dependencyPath" | cut -c 1-64) + cat < javafx-maven-dependencies-${{ matrix.variant.arch }}.yaml + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + with: + name: maven-sources-${{ matrix.variant.arch }} + if-no-files-found: error + path: | + maven-dependencies.yaml + javafx-maven-dependencies-${{ matrix.variant.arch }}.yaml + + verify-maven-sources: + name: Verify maven sources + runs-on: ubuntu-latest + needs: [build-flatpak] + permissions: + contents: none + steps: + - name: Download updated maven aarch64 dependencies + uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0 + with: + name: maven-sources-aarch64 + path: mvn-src-aarch64 + - name: Download updated maven x86_64 dependencies + uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0 + with: + name: maven-sources-x86_64 + path: mvn-src-x64 + - name: Verify arch independent maven dependencies + run: cmp --silent mvn-src-aarch64/maven-dependencies.yaml mvn-src-x64/maven-dependencies.yaml + + create-pr: + name: Create PR for flathub + runs-on: ubuntu-latest + needs: [get-version, verify-maven-sources] + if: (github.event_name == 'workflow_dispatch' && inputs.create-pr ) || (github.event_name == 'release' && needs.get-version.outputs.versionType == 'stable') + permissions: + contents: write + env: + TARBALL_URL: 'https://github.com/cryptomator/cryptomator/archive/refs/tags/${{ github.event.release.tag_name || inputs.src-tag }}.tar.gz' + steps: + - name: Check that input "src-tag" is actually a tag + if: github.event_name == 'workflow_dispatch' + run: | + if [ -z "$SRC_TAG" ]; then + echo '::error::Input "src-tag" must be set to create a Flathub PR' + exit 1 + fi + env: + SRC_TAG: ${{ inputs.src-tag }} + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: flathub/org.cryptomator.Cryptomator + submodules: true #TODO: Update submodule! + token: ${{ secrets.CRYPTOBOT_PR_TOKEN }} + - name: Checkout release branch + run: | + git checkout -b release/${{ needs.get-version.outputs.semVerStr }} + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + path: cryptomator + - name: Download source tarball and compute checksum + id: sha512 + run: | + curl --silent --fail-with-body --proto "=https" -L -H "Accept: application/vnd.github+json" ${TARBALL_URL} --output cryptomator.tar.gz + TARBALL_SHA512=$(sha512sum cryptomator.tar.gz | cut -d ' ' -f1) + echo "value=${TARBALL_SHA512}" >> "$GITHUB_OUTPUT" + - name: Download updated maven aarch64 dependencies + uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0 + with: + name: maven-sources-aarch64 + path: mvn-src-aarch64 + - name: Download updated maven x86_64 dependencies + uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0 + with: + name: maven-sources-x86_64 + path: mvn-src-x64 + - name: Determine revision + id: revision + run: | + CURRENT_VERSION="$(yq '(.modules[] | select(.name == "cryptomator") | .build-options.env.VERSION)' org.cryptomator.Cryptomator.yaml)" + CURRENT_REVISION="$(yq '(.modules[] | select(.name == "cryptomator") | .build-options.env.REVISION_NO)' org.cryptomator.Cryptomator.yaml)" + + if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" && "$CURRENT_REVISION" =~ ^[0-9]+$ ]]; then + NEXT_REVISION=$((CURRENT_REVISION + 1)) + else + NEXT_REVISION=1 + fi + + echo "value=${NEXT_REVISION}" >> "$GITHUB_OUTPUT" + env: + TARGET_VERSION: ${{ needs.get-version.outputs.semVerStr }} + - name: Update build files + run: | + cp -r -f cryptomator/dist/linux/flatpak/* . + cp -r -f mvn-src-x64/* . + cp -r -f mvn-src-aarch64/* . + envsubst '$FLATPAK_VERSION $FLATPAK_REVISION $CRYPTOMATOR_SOURCE' < org.cryptomator.Cryptomator.TEMPLATE.yaml > org.cryptomator.Cryptomator.yaml + yq -i 'del(.modules[] | select(.name == "cryptomator") | .build-options.build-args)' org.cryptomator.Cryptomator.yaml + yq -i '(.modules[] | select(.name == "cryptomator") | .sources) += ["maven-dependencies.yaml", "javafx-maven-dependencies-x86_64.yaml", "javafx-maven-dependencies-aarch64.yaml"]' org.cryptomator.Cryptomator.yaml + env: + FLATPAK_VERSION: ${{ needs.get-version.outputs.semVerNum }} + FLATPAK_REVISION: ${{ steps.revision.outputs.value}} + CRYPTOMATOR_SOURCE: |- + type: archive + sha512: ${{steps.sha512.outputs.value}} + url: ${{ env.TARBALL_URL }} + - name: Commit and push + run: | + git config user.name "cryptobot" + git config user.email "cryptobot@users.noreply.github.com" + git config push.autoSetupRemote true + git stage org.cryptomator.Cryptomator.yaml maven-dependencies.yaml javafx-maven-dependencies-aarch64.yaml javafx-maven-dependencies-x86_64.yaml + git commit -m "Prepare release ${{needs.get-version.outputs.semVerStr}}" + git push + - name: Create pull request + id: create-pr + run: | + printf "Created by $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" > pr_body.md + PR_URL=$(gh pr create --title "Release ${{ needs.get-version.outputs.semVerStr }}" --body-file pr_body.md) + echo "FLATHUB_PR_URL=$PR_URL" >> "$GITHUB_OUTPUT" + env: + GH_TOKEN: ${{ secrets.CRYPTOBOT_PR_TOKEN }} + - name: Slack Notification + uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3 + if: github.event_name == 'release' + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_CRYPTOMATOR_DESKTOP }} + SLACK_USERNAME: 'Cryptobot' + SLACK_ICON: false + SLACK_ICON_EMOJI: ':bot:' + SLACK_CHANNEL: 'cryptomator-desktop' + SLACK_TITLE: "Flathub release PR created for ${{ github.event.repository.name }} ${{ github.event.release.tag_name }} created." + SLACK_MESSAGE: "See <${{ steps.create-pr.outputs.FLATHUB_PR_URL }}|PR> on how to proceed." + SLACK_FOOTER: false + MSG_MINIMAL: true diff --git a/dist/linux/flatpak/build-aux/fusermount-wrapper.sh b/dist/linux/flatpak/build-aux/fusermount-wrapper.sh new file mode 100644 index 000000000..8df901d35 --- /dev/null +++ b/dist/linux/flatpak/build-aux/fusermount-wrapper.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# From: https://gitlab.gnome.org/GNOME/gnome-builder/-/blob/main/build-aux/flatpak/fusermount-wrapper.sh + +if [ -z "$_FUSE_COMMFD" ]; then + FD_ARGS= +else + FD_ARGS="--env=_FUSE_COMMFD=${_FUSE_COMMFD} --forward-fd=${_FUSE_COMMFD}" +fi + +if [ -e /proc/self/fd/3 ] && [ 3 != "$_FUSE_COMMFD" ]; then + FD_ARGS="$FD_ARGS --forward-fd=3" +fi + +exec flatpak-spawn --host --forward-fd=1 --forward-fd=2 $FD_ARGS fusermount3 "$@" diff --git a/dist/linux/flatpak/org.cryptomator.Cryptomator.TEMPLATE.yaml b/dist/linux/flatpak/org.cryptomator.Cryptomator.TEMPLATE.yaml new file mode 100644 index 000000000..0adc4e8ea --- /dev/null +++ b/dist/linux/flatpak/org.cryptomator.Cryptomator.TEMPLATE.yaml @@ -0,0 +1,182 @@ +app-id: org.cryptomator.Cryptomator +command: cryptomator +runtime: org.freedesktop.Platform +runtime-version: '25.08' +sdk: org.freedesktop.Sdk +separate-locales: false +finish-args: + # Required for FUSE, see https://github.com/flathub/org.cryptomator.Cryptomator/pull/68#issuecomment-1935136502 + - --device=all + # Set the PATH environment variable in the application, as flatpak is resetting the shell's PATH + - --env=PATH=/app/bin/:/usr/bin/ + # Allow filesystem access to the user's home dir + # Needed to manage vaults there + - --filesystem=home + # Reading system certificates + - --filesystem=host-etc:ro + # Allow access to the XDG data directory + # Needed to connect to KeePassXC's UNIX domain socket + - --filesystem=xdg-run/org.keepassxc.KeePassXC.BrowserServer + - --filesystem=xdg-run/app/org.keepassxc.KeePassXC/ + # Share IPC namespace with the host, without it the X11 shared memory extension will not work + - --share=ipc + # Allow access to the network + - --share=network + # Show windows using X11 + - --socket=x11 + # Needed to reveal encrypted files + - --talk-name=org.freedesktop.FileManager1 + # Run any command on the host + # Needed to spawn fusermount on the host + - --talk-name=org.freedesktop.Flatpak + # Allow desktop notifications + - --talk-name=org.freedesktop.Notifications + # Allow access to the GNOME secret service API and to talk to the GNOME keyring daemon + - --talk-name=org.freedesktop.secrets + - --talk-name=org.gnome.keyring + # Allow to talk to the KDE kwallet daemon + - --talk-name=org.kde.kwalletd5 + - --talk-name=org.kde.kwalletd6 + # Needed to talk to the gvfs daemons over D-Bus and list mounts using the GIO APIs + - --talk-name=org.gtk.vfs.* + # Allow access to appindicator icons + - --talk-name=org.ayatana + # Allow access to appindicator icons on KDE + - --talk-name=org.kde.StatusNotifierWatcher +cleanup: + - /include + - /lib/pkgconfig +modules: + - shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json + - name: libfuse + buildsystem: meson + config-opts: + - -Dexamples=false + - -Dinitscriptdir= + - -Duseroot=false + - -Dtests=false + # don't install rules on the host + - -Dudevrulesdir=/tmp/ + sources: + - type: archive + url: https://github.com/libfuse/libfuse/releases/download/fuse-3.16.2/fuse-3.16.2.tar.gz + sha256: f797055d9296b275e981f5f62d4e32e089614fc253d1ef2985851025b8a0ce87 + x-checker-data: + type: anitya + project-id: 861 + url-template: https://github.com/libfuse/libfuse/releases/download/fuse-$version/fuse-$version.tar.gz + versions: {<: '3.17.0'} + - name: host-command-wrapper + buildsystem: simple + build-commands: + - install fusermount-wrapper.sh /app/bin/fusermount3 + sources: + - type: file + path: build-aux/fusermount-wrapper.sh + - name: cryptomator + buildsystem: simple + build-options: + build-args: + - --share=network + env: + PATH: /app/bin:/usr/bin + MAVEN_OPTS: -Dmaven.repo.local=.m2/repository + JAVA_HOME: jdk + JMODS_PATH: jmods + VERSION: $FLATPAK_VERSION + REVISION_NO: '$FLATPAK_REVISION' + build-commands: + # Setup Java + - tar xvfz jdk.tar.gz --transform 's!^[^/]*!jdk!' + - mkdir jmods + - unzip -j openjfx.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods + # Setup Maven + - mkdir maven + - tar xf maven.tar.gz --strip-components=1 --exclude=jansi-native --directory=maven + # Build project + - maven/bin/mvn clean package -DskipTests -P"linux-$(uname -m)" + - cp target/cryptomator-*.jar target/mods + - cd target + - $JAVA_HOME/bin/jlink + --output runtime + --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.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net,java.compiler + --no-header-files + --no-man-pages + --strip-debug + --compress=zip-0 + - $JAVA_HOME/bin/jpackage + --type app-image + --runtime-image runtime + --input target/libs + --module-path target/mods + --module org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator + --dest . + --name Cryptomator + --vendor 'Skymatic GmbH' + --copyright '(C) 2016 - 2025 Skymatic GmbH' + --java-options '--enable-native-access=javafx.graphics,org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64,org.purejava.appindicator' + --java-options "--sun-misc-unsafe-memory-access=allow" + --java-options '-Xss5m' + --java-options '-Xmx256m' + --java-options '-Dfile.encoding='utf-8'' + --java-options '-Djava.net.useSystemProxies=true' + --java-options "-Dcryptomator.appVersion='${VERSION}'" + --java-options "-Dcryptomator.buildNumber='flatpak-${REVISION_NO}'" + --java-options '-Dcryptomator.ipcSocketPath='@{userhome}/.config/Cryptomator/ipc.socket'' + --java-options '-Dcryptomator.adminConfigPath='/run/host/etc/cryptomator/config.properties'' + --java-options '-Dcryptomator.logDir='@{userhome}/.local/share/Cryptomator/logs'' + --java-options '-Dcryptomator.mountPointsDir='@{userhome}/.local/share/Cryptomator/mnt'' + --java-options '-Dcryptomator.pluginDir='@{userhome}/.local/share/Cryptomator/plugins'' + --java-options '-Dcryptomator.p12Path='@{userhome}/.config/Cryptomator/key.p12'' + --java-options '-Dcryptomator.settingsPath='@{userhome}/.config/Cryptomator/settings.json:~/.Cryptomator/settings.json'' + --java-options '-Dcryptomator.showTrayIcon=true' + --java-options '-Dcryptomator.updateMechanism=org.cryptomator.linux.update.FlatpakUpdater' + --java-options '-Dcryptomator.networking.truststore.p12Path='/run/host/etc/cryptomator/certs.p12'' + --java-options '-Dcryptomator.hub.enableTrustOnFirstUse=true' + --app-version "${VERSION}.${REVISION_NO}" + --verbose + - cp -R Cryptomator /app/ + - ln -s /app/Cryptomator/bin/Cryptomator /app/bin/cryptomator + - cp -R /app/lib/* /app/Cryptomator/lib/app/ + - install -D -m0644 -t /app/share/applications/ dist/linux/common/org.cryptomator.Cryptomator.desktop + - install -D -m0644 -t /app/share/icons/hicolor/scalable/apps/ dist/linux/common/org.cryptomator.Cryptomator.svg + - install -D -m0644 -T dist/linux/common/org.cryptomator.Cryptomator.tray.svg /app/share/icons/hicolor/symbolic/apps/org.cryptomator.Cryptomator.tray-symbolic.svg + - install -D -m0644 -T dist/linux/common/org.cryptomator.Cryptomator.tray-unlocked.svg /app/share/icons/hicolor/symbolic/apps/org.cryptomator.Cryptomator.tray-unlocked-symbolic.svg + - install -D -m0644 -t /app/share/metainfo/ dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml + sources: + - $CRYPTOMATOR_SOURCE + - type: file + dest-filename: jdk.tar.gz + only-arches: + - x86_64 + url: https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz + sha512: 29043fde119a031c2ca8d57aed445fedd9e7f74608fcdc7a809076ba84cfd1c31f08de2ecccf352e159fdcd1cae172395ed46363007552ff242057826c81ab3a + - type: file + dest-filename: jdk.tar.gz + only-arches: + - aarch64 + url: https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.2_10.tar.gz + sha512: f1d3ccec3e1f1bed9d632f14b9223709d6e5c2e0d922125d068870dd3016492a2ca8f08924d4a9d0dc5eb2159fa09efee366a748fd0093475baf29e5c70c781a + - type: file + dest-filename: openjfx.zip + only-arches: + - x86_64 + url: https://download2.gluonhq.com/openjfx/25.0.2/openjfx-25.0.2_linux-x64_bin-jmods.zip + sha512: 21f550217101c513f9eb1d7947eba30cb79618238e6539ce770e54e84b01574cdaeba40af602391145f163dd8e43e3794395467413152f13ffffeff948b0ca1b + - type: file + dest-filename: openjfx.zip + only-arches: + - aarch64 + url: https://download2.gluonhq.com/openjfx/25.0.2/openjfx-25.0.2_linux-aarch64_bin-jmods.zip + sha512: a9268409b3803e386490bf1319d0f0a14173cebe862c12254cd51b430ee0a297437d9e38d5ebeae0da8899be898b312b103330d09dcfd3e63c1e7d15f2f14311 + - type: file + dest-filename: maven.tar.gz + url: https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.9.13/apache-maven-3.9.13-bin.tar.gz + sha512: d9ccd44ba2991586e359c29eb86780ae8ff4ec1b88b0b8af3af074803472690cf2017782a9c4401343c62cbcd056231db9612e1e551cbd9747c21746d732c015 + x-checker-data: + type: anitya + project-id: 1894 + stable-only: true + url-template: https://repo1.maven.org/maven2/org/apache/maven/apache-maven/$version/apache-maven-$version-bin.tar.gz + versions: {<: '4.0'} diff --git a/pom.xml b/pom.xml index f080f7190..93123869e 100644 --- a/pom.xml +++ b/pom.xml @@ -527,11 +527,57 @@ - linux + linux-aarch64 unix Linux + aarch64 + + + idea.version + + + + + org.cryptomator + integrations-linux + ${cryptomator.integrations.linux.version} + + + org.openjfx + javafx-base + ${javafx.version} + linux-aarch64 + + + org.openjfx + javafx-graphics + ${javafx.version} + linux-aarch64 + + + org.openjfx + javafx-controls + ${javafx.version} + linux-aarch64 + + + org.openjfx + javafx-fxml + ${javafx.version} + linux-aarch64 + + + + + + linux-x86_64 + + + unix + Linux + amd64 idea.version