upgpkg: wordpress 6.2.1-1
[ArchLinux/community.git] / bitwarden / repos / community-x86_64 / PKGBUILD
blob18946e83385e44e4682601f303322cf9e243d8fb
1 # Maintainer: Alexander Epaneshnikov <alex19ep@archlinux.org>
2 # Contributor: libertylocked <libertylocked@disroot.org>
4 pkgname=bitwarden
5 pkgver=2023.4.0
6 pkgrel=1
7 _electronversion=21
8 pkgdesc='A secure and free password manager for all of your devices'
9 arch=('x86_64')
10 url='https://github.com/bitwarden/clients/tree/master/apps/desktop'
11 license=('GPL3')
12 depends=("electron$_electronversion" 'libnotify' 'libsecret' 'libxtst' 'libxss' 'libnss_nis')
13 makedepends=('git' 'npm' 'python' 'node-gyp' 'nodejs-lts-gallium' 'jq' 'rust')
14 source=(bitwarden::git+https://github.com/bitwarden/clients.git#tag=desktop-v$pkgver
15         messaging.main.ts.patch
16         nativelib.patch
17         ${pkgname}.sh
18         ${pkgname}.desktop)
19 sha512sums=('SKIP'
20             'babcae0dba4d036e5d2cd04d8932b63253bc7b27b14d090932066e9d39383f7565c06d72dae9f96e741b494ef7e50a1fe7ec33905aa3124b427a8bf404df5762'
21             '88610cba9dea99aefdfea51139f5770f04f1e877d75e86f2eea3470c99880282c5ff91060cb08d92cdf00d0a1b3bd40c5f3ee887cee11946dd31ca06da978272'
22             '98d2860bef2283fd09710fbbc5362d7ef2cd8eca26f35805ea258f2dacba78bd6aab14c834388a5089a8150eb0f32a82577aab10f8ad68e1a6371959b2802ad4'
23             '05b771e72f1925f61b710fb67e5709dbfd63855425d2ef146ca3770b050e78cb3933cffc7afb1ad43a1d87867b2c2486660c79fdfc95b3891befdff26c8520fd')
25 prepare() {
26         cd bitwarden/apps/desktop
28         export npm_config_build_from_source=true
29         export npm_config_cache="$srcdir/npm_cache"
30         export ELECTRON_SKIP_BINARY_DOWNLOAD=1
32         # This patch is required to make "Start automatically on login" work
33         patch --strip=1 src/main/messaging.main.ts "$srcdir/messaging.main.ts.patch"
35         # Patch build to make it work with system electron
36         export SYSTEM_ELECTRON_VERSION=$(electron$_electronversion -v | sed 's/v//g')
37         export ELECTRONVERSION=$_electronversion
38         sed -i "s|@electronversion@|${ELECTRONVERSION}|" "$srcdir/bitwarden.sh"
39         # jq < package.json \
40         #    '.build["electronVersion"]=$ENV.SYSTEM_ELECTRON_VERSION | .build["electronDist"]="/usr/lib/electron\(env.ELECTRONVERSION)"' \
41         #    > package.json.patched
42         # mv package.json.patched package.json
43         cd ../../
44         patch --strip=1 apps/desktop/desktop_native/index.js "$srcdir/nativelib.patch"
45         npm ci
48 build() {
49         cd bitwarden/apps/desktop
50         electronDist=/usr/lib/electron$_electronversion
51         electronVer=$(electron$_electronversion --version | tail -c +2)
52         export npm_config_build_from_source=true
53         export npm_config_cache="$srcdir/npm_cache"
54         export ELECTRON_SKIP_BINARY_DOWNLOAD=1
55         pushd desktop_native/
56         npm run build
57         popd
58         npm run build
59         npm run clean:dist 
60         npm exec -c "electron-builder --linux --x64 --dir -c.electronDist=$electronDist \
61                      -c.electronVersion=$electronVer"
64 package(){
65         cd bitwarden/apps/desktop
66         install -vDm644 dist/linux-unpacked/resources/app.asar -t "${pkgdir}/usr/lib/${pkgname}"
67         install -vDm644 build/package.json -t "${pkgdir}/usr/lib/${pkgname}"
68         cp -vr dist/linux-unpacked/resources/app.asar.unpacked -t "${pkgdir}/usr/lib/${pkgname}"
70         for i in 16 32 64 128 256 512 1024; do
71                 install -vDm644 resources/icons/${i}x${i}.png "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${pkgname}.png"
72         done
73         install -vDm644 resources/icon.png "${pkgdir}/usr/share/icons/hicolor/1024x1024/apps/${pkgname}.png"
75         install -vDm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/bitwarden-desktop"
76         install -vDm644 "${srcdir}"/${pkgname}.desktop -t "${pkgdir}"/usr/share/applications