blob: 25caa54ad41b4f2cb50b0332d6d70003e5fa2739 (
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
|
# Maintainer: Echo J. <aidas957 at gmail dot com>
# Contributor: Paragoumba <aur at paragoumba dot fr>
# Contributor: Renaud Littolff <rlittolff@gmail.com>
# shellcheck shell=bash disable=SC2034,SC2164
pkgname=proton-pass
pkgver=1.35.0
pkgrel=1
pkgdesc="Open-source and secure identity manager"
arch=('aarch64' 'x86_64')
url="https://proton.me/pass"
license=('GPL-3.0-or-later')
depends=('bash' 'gcc-libs' 'glibc' 'electron')
makedepends=('rust' 'yarn')
conflicts=('proton-pass-bin')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/ProtonMail/WebClients/archive/refs/tags/${pkgname}@${pkgver}.tar.gz"
"proton-pass.desktop")
sha256sums=('55e5ae461ec5a8902a8b0397b70a57f47890a0393b0b7c8c178f0f81b0049b26'
'501210c67fc921a2fb4ba591980192ad1da60e26fb6b2fd7d68aad4075eafac7')
prepare() {
cd WebClients-${pkgname}-${pkgver}
# Limit workspace applications to avoid mysterious dependency issues
sed -i 's@"applications/\*",@"applications/pass*",@' package.json
# Upgrade out-of-date netlify-cli dependency (fixes build issues down the chain)
sed -i 's@17\.38\.1@23.15.1@' packages/atoms/package.json
# Bypass pass-desktop-native build script
sed -i 's@build:multi@build@' applications/pass-desktop/package.json
# Skip electron-forge in build step
sed -i 's@ && electron-forge package@@' applications/pass-desktop/package.json
# HACK: Make the tray icon work under system Electron
sed -i 's@process.resourcesPath@"/usr/share/proton-pass"@' applications/pass-desktop/src/main.ts
}
build() {
cd WebClients-${pkgname}-${pkgver}/applications/pass-desktop
# HACK: Update to a non-broken nan version (implicitly runs yarn install)
yarn up -R nan
yarn run build:desktop
# HACK: Move Rust target directory to avoid asset-relocator including it (reduces size of .asar file)
{
mv native/target ../rust-target
yarn exec 'NODE_ENV=production electron-forge package'
mv ../rust-target native/target
}
}
package() {
cd WebClients-${pkgname}-${pkgver}/applications/pass-desktop
# Copy the main application archive/assets
install -d "${pkgdir}"/usr/share/${pkgname}
cp -ar "out/Proton Pass-linux-"*/resources/* -t "${pkgdir}"/usr/share/${pkgname}
# Set up the wrapper script
install -d "${pkgdir}"/usr/bin
echo -e '#!/bin/bash\n\nexec /usr/bin/electron /usr/share/proton-pass/app.asar "$@"' \
| tee "${pkgdir}"/usr/bin/${pkgname} > /dev/null
chmod +x "${pkgdir}"/usr/bin/${pkgname}
# Copy the desktop file (and associated icon)
install -Dm644 assets/logo.svg "${pkgdir}"/usr/share/pixmaps/${pkgname}.svg
install -Dm644 "${srcdir}"/${pkgname}.desktop -t "${pkgdir}"/usr/share/applications
}
|