summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ff82921a1b29e4ecadc4ed0d5e29481f46507424 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Maintainer: Julian Raufelder <arch@raufelder.com>

pkgname=cryptomator-cli
pkgver=0.6.2
pkgrel=1
pkgdesc="CLI Multiplatform transparent client-side encryption of your files in the cloud."
arch=('any')
url="https://cryptomator.org/"
license=('GPL3')
depends=('fuse3')
makedepends=('maven' 'unzip')
_jdkver=24+36
source=("cryptomator-cli-${pkgver//_/-}.tar.gz::https://github.com/cryptomator/cli/archive/refs/tags/${pkgver//_/-}.tar.gz"
        "cryptomator-cli-${pkgver//_/-}.tar.gz.asc::https://github.com/cryptomator/cli/releases/download/${pkgver//_/-}/cryptomator-cli-${pkgver//_/-}.tar.gz.asc")
source_x86_64=("jdk-${_jdkver}.tar.gz::https://github.com/adoptium/temurin24-binaries/releases/download/jdk-${_jdkver//\+/%2B}/OpenJDK24U-jdk_x64_linux_hotspot_${_jdkver//\+/_}.tar.gz")
source_aarch64=("jdk-${_jdkver}.tar.gz::https://github.com/adoptium/temurin24-binaries/releases/download/jdk-${_jdkver//\+/%2B}/OpenJDK24U-jdk_aarch64_linux_hotspot_${_jdkver//\+/_}.tar.gz")
noextract=("jdk-${_jdkver}.tar.gz")
sha256sums=('d3402534ba460c09159e1fc0a9fc0ef7bc5a9f8c15452ff821757261bab4657a'
            'SKIP')
sha256sums_x86_64=('c340dee97b6aa215d248bc196dcac5b56e7be9b5c5d45e691344d40d5d0b171d')
sha256sums_aarch64=('18071047526ab4b53131f9bb323e8703485ae37fcb2f2c5ef0f1b7bab66d1b94')
options=('!strip')

validpgpkeys=('58117AFA1F85B3EEC154677D615D449FE6E6A235')

build() {
  export JAVA_HOME="${srcdir}/jdk-${_jdkver}"
  tar xfz "jdk-${_jdkver}.tar.gz"

  cd "${srcdir}/cli-${pkgver//_/-}"

  mvn -B clean package -Djavafx.platform=linux -DskipTests -Plinux

  cp LICENSE.txt target
  cp target/cryptomator-cli-*.jar target/mods

  cd target

  "$JAVA_HOME/bin/jlink" \
    --verbose \
    --output runtime \
    --module-path "${JAVA_HOME}" \
    --add-modules java.base,java.compiler,java.naming,java.xml \
    --strip-native-commands \
    --no-header-files \
    --no-man-pages \
    --strip-debug \
    --compress zip-0

  NATIVE_ACCESS_PACKAGE="no.native.access.available"
  _OS=$(uname -s)
  if (echo "$_OS" | grep -q "Linux.*") ; then
    _ARCH=$(uname -m)
    if [ "$_ARCH" = "x86_64" ]; then
      NATIVE_ACCESS_PACKAGE="org.cryptomator.jfuse.linux.amd64"
    elif [ "$_ARCH" = "aarch64"  ]; then
      NATIVE_ACCESS_PACKAGE="org.cryptomator.jfuse.linux.aarch64"
    fi
  fi

  echo "Creating app binary with jpackage..."
  "$JAVA_HOME/bin/jpackage" \
    --verbose \
    --type app-image \
    --runtime-image runtime \
    --input libs \
    --module-path mods \
    --module org.cryptomator.cli/org.cryptomator.cli.CryptomatorCli \
    --dest . \
    --name cryptomator-cli \
    --vendor "Skymatic GmbH" \
    --copyright "(C) 2016 - 2025 Skymatic GmbH" \
    --app-version "0.0.1.0" \
    --java-options "-Dorg.cryptomator.cli.version=${pkgver//_*/}-aur" \
    --java-options "--enable-preview" \
    --java-options "--enable-native-access=${NATIVE_ACCESS_PACKAGE},org.fusesource.jansi" \
    --java-options "-Xss5m" \
    --java-options "-Xmx256m" \
    --java-options "-Dfile.encoding=utf-8" \
    --app-version "${pkgver//_*/}"
}

package() {
  mkdir -p "${pkgdir}/opt/cryptomator-cli/"
  cp -R "${srcdir}/cli-${pkgver//_/-}/target/cryptomator-cli" "${pkgdir}/opt/"
  cp "${srcdir}/cli-${pkgver//_/-}/target/cryptomator-cli_completion.sh" "${pkgdir}/opt/cryptomator-cli/"
  install -Dm644 "${srcdir}/cli-${pkgver//_/-}/target/LICENSE.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}"

  mkdir -p "${pkgdir}/usr/bin"
  ln -s "/opt/cryptomator-cli/bin/cryptomator-cli" "${pkgdir}/usr/bin/cryptomator-cli"

  echo "If you want to have shell completion, source the /opt/cryptomator-cli/cryptomator-cli_completion.sh file."
}