diff --git a/.github/stale.yml b/.github/stale.yml index 61494684a..e32981b00 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,11 +1,13 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 180 +daysUntilStale: 365 # Number of days of inactivity before a stale issue is closed -daysUntilClose: 30 +daysUntilClose: 90 # Issues with these labels will never be considered stale exemptLabels: - type:security-issue # never close automatically - type:feature-request # never close automatically + - type:enhancement # never close automatically + - type:upstream-bug # never close automatically - state:awaiting-response # handled by different bot - state:blocked - state:confirmed diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index ce23bac60..cdbfc23cd 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -61,10 +61,16 @@ jobs: --output runtime --module-path "${JAVA_HOME}/jmods" --add-modules java.base,java.desktop,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 --no-man-pages --strip-debug --compress=1 + - name: Prepare additional launcher + run: envsubst '${SEMVER_STR} ${REVISION_NUM}' < dist/linux/launcher-gtk2.properties > launcher-gtk2.properties + env: + SEMVER_STR: ${{ steps.versions.outputs.semVerStr }} + REVISION_NUM: ${{ steps.versions.outputs.revNum }} - name: Run jpackage run: > ${JAVA_HOME}/bin/jpackage @@ -90,12 +96,12 @@ jobs: --java-options "-Dcryptomator.mountPointsDir=\"~/.local/share/Cryptomator/mnt\"" --java-options "-Dcryptomator.showTrayIcon=false" --java-options "-Dcryptomator.buildNumber=\"appimage-${{ steps.versions.outputs.revNum }}\"" + --add-launcher Cryptomator-gtk2=launcher-gtk2.properties --resource-dir dist/linux/resources - name: Patch Cryptomator.AppDir run: | mv appdir/Cryptomator Cryptomator.AppDir cp -r dist/linux/appimage/resources/AppDir/* Cryptomator.AppDir/ - envsubst '${REVISION_NO} ${SEMVER_STR}' < dist/linux/appimage/resources/AppDir/bin/cryptomator.sh > Cryptomator.AppDir/bin/cryptomator.sh cp dist/linux/common/org.cryptomator.Cryptomator256.png Cryptomator.AppDir/usr/share/icons/hicolor/256x256/apps/org.cryptomator.Cryptomator.png cp dist/linux/common/org.cryptomator.Cryptomator512.png Cryptomator.AppDir/usr/share/icons/hicolor/512x512/apps/org.cryptomator.Cryptomator.png cp dist/linux/common/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg @@ -107,9 +113,6 @@ jobs: ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/.DirIcon ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/Cryptomator.desktop ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun - env: - REVISION_NO: ${{ steps.versions.outputs.revNum }} - SEMVER_STR: ${{ steps.versions.outputs.semVerStr }} - name: Extract libjffi.so # workaround for https://github.com/cryptomator/cryptomator-linux/issues/27 run: | JFFI_NATIVE_JAR=`ls lib/app/ | grep -e 'jffi-[1-9]\.[0-9]\{1,2\}.[0-9]\{1,2\}-native.jar'` diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 3e1e6ceac..833acac61 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -82,9 +82,10 @@ jobs: --app-version "${{ steps.versions.outputs.semVerNum }}" --java-options "-Xss5m" --java-options "-Xmx256m" - --java-options "-Dcryptomator.appVersion=\"${{ steps.versions.outputs.semVerStr }}\"" --java-options "-Dfile.encoding=\"utf-8\"" --java-options "-Dapple.awt.enableTemplateImages=true" + --java-options "-Dsun.java2d.metal=true" + --java-options "-Dcryptomator.appVersion=\"${{ steps.versions.outputs.semVerStr }}\"" --java-options "-Dcryptomator.logDir=\"~/Library/Logs/Cryptomator\"" --java-options "-Dcryptomator.pluginDir=\"~/Library/Application Support/Cryptomator/Plugins\"" --java-options "-Dcryptomator.settingsPath=\"~/Library/Application Support/Cryptomator/settings.json\"" @@ -102,6 +103,16 @@ jobs: env: VERSION_NO: ${{ steps.versions.outputs.semVerNum }} REVISION_NO: ${{ steps.versions.outputs.revNum }} + - name: Generate license for dmg + run: > + mvn -B license:add-third-party + -Dlicense.thirdPartyFilename=license.rtf + -Dlicense.outputDirectory=dist/mac/dmg/resources + -Dlicense.fileTemplate=dist/mac/dmg/resources/licenseTemplate.ftl + -Dlicense.includedScopes=compile + -Dlicense.excludedGroups=^org\.cryptomator + -Dlicense.failOnMissing=true + -Dlicense.licenseMergesUrl=file://${{ github.workspace }}/license/merges - name: Install codesign certificate run: | # create variables diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index ec5b60ed4..3a9ed8ab0 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -115,12 +115,17 @@ jobs: timestampUrl: 'http://timestamp.digicert.com' folder: appdir/Cryptomator recursive: true - - name: Generate license + - name: Generate license for MSI run: > mvn -B license:add-third-party "-Dlicense.thirdPartyFilename=license.rtf" - "-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl" "-Dlicense.outputDirectory=dist/win/resources" + "-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl" + "-Dlicense.includedScopes=compile" + "-Dlicense.excludedGroups=^org\.cryptomator" + "-Dlicense.failOnMissing=true" + "-Dlicense.licenseMergesUrl=file:///${{ github.workspace }}/license/merges" + shell: pwsh - name: Create MSI run: > ${JAVA_HOME}/bin/jpackage @@ -201,12 +206,17 @@ jobs: distribution: 'temurin' java-version: ${{ env.JAVA_VERSION }} cache: 'maven' - - name: Generate license + - name: Generate license for exe run: > mvn -B license:add-third-party "-Dlicense.thirdPartyFilename=license.rtf" "-Dlicense.fileTemplate=dist/win/bundle/resources/licenseTemplate.ftl" "-Dlicense.outputDirectory=dist/win/bundle/resources" + "-Dlicense.includedScopes=compile" + "-Dlicense.excludedGroups=^org\.cryptomator" + "-Dlicense.failOnMissing=true" + "-Dlicense.licenseMergesUrl=file:///${{ github.workspace }}/license/merges" + shell: pwsh - name: Download WinFsp run: curl --output dist/win/bundle/resources/winfsp.msi -L ${{ env.WINFSP_MSI }} @@ -225,11 +235,11 @@ jobs: run: > "${WIX}/bin/light.exe" -b dist/win/ dist/win/bundle/bundleWithWinfsp.wixobj -ext WixBalExtension - -out installer/unsigned/Cryptomator.exe + -out installer/unsigned/Cryptomator-Installer.exe - name: Detach burn engine in preparation to sign run: > "${WIX}/bin/insignia.exe" - -ib installer/unsigned/Cryptomator.exe + -ib installer/unsigned/Cryptomator-Installer.exe -o tmp/engine.exe - name: Codesign burn engine uses: skymatic/code-sign-action@v1 @@ -243,8 +253,8 @@ jobs: - name: Reattach signed burn engine to installer run : > "${WIX}/bin/insignia.exe" - -ab tmp/engine.exe installer/unsigned/Cryptomator.exe - -o installer/Cryptomator.exe + -ab tmp/engine.exe installer/unsigned/Cryptomator-Installer.exe + -o installer/Cryptomator-Installer.exe - name: Codesign EXE uses: skymatic/code-sign-action@v1 with: @@ -255,7 +265,7 @@ jobs: timestampUrl: 'http://timestamp.digicert.com' folder: installer - name: Add possible alpha/beta tags to installer name - run: mv installer/Cryptomator.exe Cryptomator-${{ needs.build-msi.outputs.semVerStr }}-x64.exe + run: mv installer/Cryptomator-Installer.exe Cryptomator-${{ needs.build-msi.outputs.semVerStr }}-x64.exe - name: Create detached GPG signature with key 615D449FE6E6A235 run: | echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import @@ -279,4 +289,44 @@ jobs: token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }} files: | Cryptomator-*.exe - Cryptomator-*.asc \ No newline at end of file + Cryptomator-*.asc + + allowlist: + name: Anti Virus Allowlisting + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + needs: [build-msi, build-exe] + steps: + - name: Download .msi + uses: actions/download-artifact@v2 + with: + name: msi + path: msi + - name: Download .exe + uses: actions/download-artifact@v2 + with: + name: exe + path: exe + - name: Collect files + run: | + mkdir files + cp msi/*.msi files + cp exe/*.exe files + - name: Upload to Kaspersky + uses: SamKirkland/FTP-Deploy-Action@4.3.0 + with: + protocol: ftps + server: allowlist.kaspersky-labs.com + port: 990 + username: ${{ secrets.ALLOWLIST_KASPERSKY_USERNAME }} + password: ${{ secrets.ALLOWLIST_KASPERSKY_PASSWORD }} + local-dir: files/ + - name: Upload to Avast + uses: SamKirkland/FTP-Deploy-Action@4.3.0 + with: + protocol: ftp + server: whitelisting.avast.com + port: 21 + username: ${{ secrets.ALLOWLIST_AVAST_USERNAME }} + password: ${{ secrets.ALLOWLIST_AVAST_PASSWORD }} + local-dir: files/ diff --git a/.idea/runConfigurations/Cryptomator_Linux.xml b/.idea/runConfigurations/Cryptomator_Linux.xml index 97bcd58df..81c2da004 100644 --- a/.idea/runConfigurations/Cryptomator_Linux.xml +++ b/.idea/runConfigurations/Cryptomator_Linux.xml @@ -2,7 +2,7 @@