summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD101
1 files changed, 69 insertions, 32 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d489432a20bb..d61aa2ba5072 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,34 +2,44 @@
# Contributor wenLiangcan <boxeed at gmail dot com>
pkgname=keeweb-git
-pkgver=1.7.7+0+g4ca2eb4c
+pkgver=1.15.7+53+gd0fdada9
+_electron=electron
pkgrel=1
-pkgdesc="Desktop password manager compatible with KeePass databases. (master branch)"
+pkgdesc="Desktop password manager compatible with KeePass databases. (develop branch)"
arch=('any')
-url="https://github.com/keeweb/keeweb"
+url="https://keeweb.info"
license=('MIT')
-depends=('electron')
+depends=(
+ $_electron
+ 'org.freedesktop.secrets'
+)
makedepends=(
'asar'
'git'
'libsass>=3.5.5'
'nodejs>=8.15.0'
'npm'
+ 'python2'
)
optdepends=('xdotool: for auto-type')
conflicts=('keeweb' 'keeweb-desktop')
provides=('keeweb' 'keeweb-desktop')
source=(
- "${pkgname}::git+https://github.com/keeweb/keeweb.git#branch=master"
- 'hide-menubar.patch'
- 'keeweb.sh'
+ "${pkgname}::git+https://github.com/keeweb/keeweb.git#branch=develop"
+ "git+https://github.com/keeweb/keeweb-native-modules.git"
'package.json.patch.js'
)
sha1sums=('SKIP'
- 'a55c2ed276c6073b7954452cdc88209633d51ace'
- 'c925527f25e732d58438ee16b1c93b33be7bf9c4'
- '914afdd9651e71091d4b927cabd25d75786ec7d4')
+ 'SKIP'
+ '5e2a12694cf56ec9ed558554819dba0187e7fbdc')
+
+case "$CARCH" in
+ i686) _arch=ia32;;
+ x86_64) _arch=x64;;
+ aarch64) _arch=arm64;;
+ *) _arch=DUMMY;;
+esac
pkgver() {
cd "${pkgname}"
@@ -37,56 +47,83 @@ pkgver() {
}
prepare() {
- cd "${pkgname}"
-
- patch -Np1 -i ../hide-menubar.patch
+ 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 \
- -e "/'eslint',/ d" \
- -e "/'uglify',/ d" \
+ -e "/'eslint',/ d" \
grunt.tasks.js
sed -i \
- -e '/Exec=/ c \Exec=keeweb %u' \
- package/deb/usr/share/applications/keeweb.desktop
-
- sed -i \
- -e 's/: "[^@]*@github:/: "github:/' \
- package-lock.json
+ -e "/const BundleAnalyzerPlugin/ d" \
+ -e "/new BundleAnalyzerPlugin({$/, /^\s*})$/ d" \
+ build/webpack.config.js
}
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
- 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
+
+ cat <<-EOF > tmp/desktop/keeweb
+ #!/usr/bin/sh
+ exec ${_electron} /usr/lib/keeweb/app.asar --disable-updater "\$@"
+ EOF
+
+ cd "${srcdir}/keeweb-native-modules"
+
+ 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
+ )
+
+ HOME="${srcdir}/.electron-gyp" npm install "${electron_build_opts[@]/#/--}"
+
}
package() {
- cd "${pkgname}"
-
- install -Dm0755 ../keeweb.sh "${pkgdir}/usr/bin/keeweb"
- install -Dm0644 -t "${pkgdir}/usr/lib/keeweb" tmp/app.asar
+ 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"
}