summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ebf3fe5bd9d909efb4b2d182009761df589b91e0 (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
_pkgname=joplin
pkgname=$_pkgname-electron
pkgver=2.10.17
pkgrel=1
_electronversion=22
pkgdesc="Joplin Desktop (Beta) for Linux, using the system Electron package"
arch=('any')
url="https://github.com/laurent22/joplin"
license=('AGPL-3.0')
depends=("electron$_electronversion" 'gtk3' 'libexif' 'libgsf' 'libjpeg-turbo' 'libwebp' 'libxss' 'nodejs>=17.3'
    'nss' 'orc' 'rsync' 'libvips')
optdepends=('libappindicator-gtk3: for tray icon')
makedepends=('git' 'npm' 'yarn' 'python' 'rsync' 'jq' 'yq' 'electron' 'libgsf' 'node-gyp>=8.4.1' 'libvips')
conflicts=("joplin-desktop")
source=(
    "joplin-${pkgver}.tar.gz::https://github.com/laurent22/joplin/archive/v${pkgver}.tar.gz"
    "joplin.desktop"
    "joplin.sh"
    "0001-support-enable-wayland-ime.patch"
)
sha256sums=(
    '6d3d89510967ef4e822482541e9438f32b5c375162db64a337b4c7e49dc0087c'
    '9e26cd5f41d08c3c2804cf4f34cb867090371423ccbe250a890fac006d405deb'
    'bd8324d35faaf6815217d1cf31a0b5e4df80692b0312ad17aea20d51f95efd56'
    '88aebf8692468e8b2757bd32b888f620ef5de9f907bbe93a4851530faeb45c1e'
)

prepare() {
    export ELECTRON_SKIP_BINARY_DOWNLOAD=1

    patch -Np1 -i "${srcdir}"/0001-support-enable-wayland-ime.patch -d "${srcdir}/joplin-${pkgver}"

    msg2 "Disabling husky (git hooks)"
    sed -i '/"husky": ".*"/d' "$srcdir/joplin-${pkgver}/package.json"

    msg2 "Deleting app-mobile and app-cli"
    rm -r "$srcdir/joplin-$pkgver/packages/app-mobile"
    rm -r "$srcdir/joplin-$pkgver/packages/app-clipper"
    rm -r "$srcdir/joplin-$pkgver/packages/app-cli"

	# Patch build to make it work with system electron
	export SYSTEM_ELECTRON_VERSION=$(electron$_electronversion -v | sed 's/v//g')
	export ELECTRONVERSION=$_electronversion
	sed -i "s|@electronversion@|${ELECTRONVERSION}|" "$srcdir/joplin.sh"

    msg2 "Installing dependencies through Yarn 3..."

    cd "$srcdir/joplin-$pkgver"
    yarn install
}

build() {
	electronDist=/usr/lib/electron$_electronversion
	electronVer=$(electron$_electronversion --version | tail -c +2)
    
	export ELECTRON_SKIP_BINARY_DOWNLOAD=1
    export LANG=en_US.utf8

    msg2 "Building the workspace"
    cd "$srcdir/joplin-$pkgver"

    yarn workspace @joplin/app-desktop build
	yarn workspace @joplin/app-desktop electron-builder --linux -c.electronDist=$electronDist -c.electronVersion=$electronVer
}

package() {
    cd "${srcdir}/joplin-${pkgver}"
    cd packages/app-desktop

    install -vDm644 dist/linux-unpacked/resources/app.asar -t "${pkgdir}/usr/lib/${_pkgname}"
    cp -vr dist/linux-unpacked/resources/app.asar.unpacked -t "${pkgdir}/usr/lib/${_pkgname}"
    cp -vr dist/linux-unpacked/resources/build -t "${pkgdir}/usr/lib/${_pkgname}"

	for i in 16 32 64 128 256 512 1024; do
		[[ -f "build/icons/${i}x${i}.png" ]] && install -vDm644 build/icons/${i}x${i}.png "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${_pkgname}.png"
	done

	install -vDm755 "${srcdir}/${_pkgname}.sh" "${pkgdir}/usr/bin/joplin-desktop"
	install -vDm644 "${srcdir}"/${_pkgname}.desktop -t "${pkgdir}"/usr/share/applications
}