summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD79
1 files changed, 53 insertions, 26 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 0ada867a333c..794100a662b5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,14 +1,15 @@
# Maintainer: surefire@cryptomile.net
pkgname=keeweb
-pkgver=1.15.7
-pkgrel=2
+pkgver=1.16.0
+_electron=electron
+pkgrel=1
pkgdesc="Desktop password manager compatible with KeePass databases"
arch=('any')
url="https://keeweb.info"
license=('MIT')
depends=(
- 'electron9'
+ $_electron
'org.freedesktop.secrets'
)
makedepends=(
@@ -23,29 +24,29 @@ optdepends=('xdotool: for auto-type')
conflicts=('keeweb-desktop')
source=(
"${pkgname}::git+https://github.com/keeweb/keeweb.git#tag=v${pkgver}"
- 'keeweb.sh'
+ "git+https://github.com/keeweb/keeweb-native-modules.git#tag=0.4.1"
'package.json.patch.js'
)
sha1sums=('SKIP'
- '7793e6391d2160458ca54648daa63bb2f1717e4c'
- 'd64a29202b71f30b1c4eaef5c01cee574b55894a')
+ 'SKIP'
+ '5e2a12694cf56ec9ed558554819dba0187e7fbdc')
case "$CARCH" in
- i686) _keeweb_arch=ia32;;
- x86_64) _keeweb_arch=x64;;
- aarch64) _keeweb_arch=arm64;;
- *) _keeweb_arch=DUMMY;;
+ i686) _arch=ia32;;
+ x86_64) _arch=x64;;
+ aarch64) _arch=arm64;;
+ *) _arch=DUMMY;;
esac
prepare() {
- cd "${pkgname}"
+ cd "${srcdir}/${pkgname}"
# remove extra dependencies
node ../package.json.patch.js
sed -i \
- -e "/const electronVersion/ s/pkg.dependencies.electron/'$(</usr/lib/electron/version)'/" \
+ -e "/const electronVersion/ s/pkg.dependencies.electron/'$(</usr/lib/${_electron}/version)'/" \
Gruntfile.js
sed -i \
@@ -59,36 +60,62 @@ prepare() {
}
build() {
- cd "${pkgname}"
+ export npm_config_build_from_source=true
+ export npm_config_optional=false
+
+ cd "${srcdir}/${pkgname}"
export SKIP_SASS_BINARY_DOWNLOAD_FOR_CI=1
export SASS_FORCE_BUILD=1
export LIBSASS_EXT=auto
- export npm_config_nodedir=/usr
- export npm_config_optional=false
- export npm_config_build_from_source=true
- npm install
+ npm install --nodedir=/usr
npm install css-loader
npx grunt build-web-app build-desktop-app-content
- asar p tmp/desktop/app tmp/app.asar
-}
+ asar p tmp/desktop/app tmp/desktop/app.asar
-package() {
- cd "${pkgname}"
+ cat <<-EOF > tmp/desktop/keeweb
+ #!/usr/bin/sh
+ exec ${_electron} /usr/lib/keeweb/app.asar --disable-updater "\$@"
+ EOF
- install -Dm0755 ../keeweb.sh "${pkgdir}/usr/bin/keeweb"
- install -Dm0644 -t "${pkgdir}/usr/lib/keeweb" tmp/app.asar
+ cd "${srcdir}/keeweb-native-modules"
- #TODO: requires a rebuild from source code
- install -Dm0644 -t "${pkgdir}/usr/lib/keeweb/node_modules/@keeweb/keeweb-native-modules" node_modules/@keeweb/keeweb-native-modules/*-linux-${_keeweb_arch}.node
+ local electron_build_opts=(
+ production
+ arch=$_arch
+ runtime=electron
+ disturl=https://electronjs.org/headers
+ target=$(</usr/lib/${_electron}/version)
+ target_arch=$_arch
+ use_system_libusb=true
+ )
- install -Dm0644 -t "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE DEPS-LICENSE
+ HOME="${srcdir}/.electron-gyp" npm install "${electron_build_opts[@]/#/--}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ install -Dm0755 -t "${pkgdir}/usr/bin" tmp/desktop/keeweb
+ install -Dm0644 -t "${pkgdir}/usr/lib/keeweb" tmp/desktop/app.asar
+ install -Dm0644 -t "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE DEPS-LICENSE
install -Dm0644 -t "${pkgdir}/usr/share/mime/packages" package/deb/usr/share/mime/packages/keeweb.xml
install -Dm0644 -t "${pkgdir}/usr/share/applications" package/deb/usr/share/applications/keeweb.desktop
install -Dm0644 graphics/128x128.png "${pkgdir}/usr/share/pixmaps/keeweb.png"
+
+ local _src_mdir="${srcdir}/keeweb-native-modules/node_modules"
+ local _pkg_mdir="${pkgdir}/usr/lib/keeweb/node_modules/@keeweb/keeweb-native-modules"
+
+ install -Dm0644 "${_src_mdir}/argon2/build-tmp-napi-v3/Release/argon2.node" \
+ "${_pkg_mdir}/argon2-linux-${_arch}.node"
+ install -Dm0644 "${_src_mdir}/keytar/build/Release/keytar.node" \
+ "${_pkg_mdir}/keytar-linux-${_arch}.node"
+ install -Dm0644 "${_src_mdir}/usb/build/Release/usb_bindings.node" \
+ "${_pkg_mdir}/usb-linux-${_arch}.node"
+ install -Dm0644 "${_src_mdir}/yubikey-chalresp/build/Release/yubikey-chalresp.node" \
+ "${_pkg_mdir}/yubikey-chalresp-linux-${_arch}.node"
}