mattermost-desktop: use system provided electron

This commit is contained in:
John 2020-08-17 18:47:51 +02:00 committed by John Zimmermann
parent 04b6a2e2cc
commit 929c5211f3
3 changed files with 43 additions and 11 deletions

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec electron7 /usr/libexec/mattermost-desktop/app.asar --disable-dev-mode "$@"

View File

@ -10,8 +10,8 @@
+[Desktop Entry]
+Name=Mattermost
+Comment=Mattermost Desktop application for Linux
+Exec=/usr/bin/mattermost-desktop/mattermost-desktop
+Exec=/usr/bin/mattermost-desktop
+Terminal=false
+Type=Application
+Icon=/usr/libexec/mattermost-desktop/icon.svg
+Icon=mattermost-desktop
+Categories=Network;InstantMessaging;

View File

@ -1,36 +1,66 @@
# Template file for 'mattermost-desktop'
pkgname=mattermost-desktop
version=4.5.2
revision=1
archs="x86_64 i686"
revision=2
archs="x86_64* i686*"
wrksrc="desktop-${version}"
# electron-builder needs GNU tar
hostmakedepends="git nodejs-lts-10 python libicns GraphicsMagick xz tar"
makedepends="libnotify-devel"
hostmakedepends="git p7zip jq nodejs-lts-10 python libicns GraphicsMagick xz tar"
makedepends="libnotify-devel electron7"
depends="electron7"
short_desc="Team messaging app, an open source Slack alternative"
maintainer="Artem Zhurikhin <ashpool@xecut.net>"
license="Apache-2.0"
homepage="https://mattermost.com/"
distfiles="https://github.com/mattermost/desktop/archive/v${version}.tar.gz"
checksum=17e32346592d175f091a4f12068e0cfc5cfd20ed7894f88bb5b54b2eb6eac74a
nocross=yes
if [ "$XBPS_LIBC" = "musl" ]; then
hostmakedepends+=" gcompat" #XXX: ugly af
# Npm fetches a bunch of binaries that are lined against glibc
# refuses to use the system one
# this also kinda limits the amount of support host archs for the build
# can partly fixed by adding some host deps so these tools can be built
# from source. In short npm packages are a busted mess that shouldn't exist
fi
do_configure() {
case "${XBPS_TARGET_MACHINE#-musl}" in
x86_64*) sed -i 's/--ia32//g' package.json ;;
i686*) sed -i 's/--x64//g' package.json ;;
esac
# Prepend to system electron in order to avoid an unneeded download.
local electronDist="/usr/lib/electron7"
local electronVersion="$(<"$electronDist"/version)"
jq '{"electronDist": $electronDist, "electronVersion": $electronVersion} + .' \
--arg electronDist "$electronDist" \
--arg electronVersion "$electronVersion" \
electron-builder.json > electron-builder-new.json
mv electron-builder-new.json electron-builder.json
}
pre_build() {
# XXX: Should probably be done in some kind of npm helper
export USE_SYSTEM_7ZA="true"
npm install
}
do_build() {
export USE_SYSTEM_7ZA="true"
npm run build
npm run package:linux
}
do_install() {
case $XBPS_TARGET_MACHINE in
x86_64) cd release/linux-unpacked ;;
i686) cd release/linux-ia32-unpacked ;;
x86_64*) cd release/linux-unpacked ;;
i686*) cd release/linux-ia32-unpacked ;;
esac
vmkdir usr/libexec/${pkgname}
vcopy . usr/libexec/${pkgname}
vinstall resources/app.asar 644 usr/libexec/${pkgname}
vinstall Mattermost.desktop 644 usr/share/applications
vmkdir usr/bin
ln -s ../libexec/mattermost-desktop ${DESTDIR}/usr/bin/mattermost-desktop
vinstall icon.svg 644 usr/share/icons/hicolor/scalable/apps mattermost-desktop.svg
vbin ${FILESDIR}/mattermost-desktop.sh mattermost-desktop
}