From d42d50c4d8c9fc048a03d6b603ffd469c6ce68e6 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 17 Aug 2020 18:47:51 +0200 Subject: [PATCH] mattermost-desktop: use system provided electron --- .../files/mattermost-desktop.sh | 2 + .../patches/20-create-desktop-file.patch | 4 +- srcpkgs/mattermost-desktop/template | 49 +++++++++++++++---- 3 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 srcpkgs/mattermost-desktop/files/mattermost-desktop.sh diff --git a/srcpkgs/mattermost-desktop/files/mattermost-desktop.sh b/srcpkgs/mattermost-desktop/files/mattermost-desktop.sh new file mode 100644 index 00000000000..a9e09a37a86 --- /dev/null +++ b/srcpkgs/mattermost-desktop/files/mattermost-desktop.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec electron7 /usr/libexec/mattermost-desktop/app.asar --disable-dev-mode "$@" diff --git a/srcpkgs/mattermost-desktop/patches/20-create-desktop-file.patch b/srcpkgs/mattermost-desktop/patches/20-create-desktop-file.patch index 8cb468d77b9..c83d76f5415 100644 --- a/srcpkgs/mattermost-desktop/patches/20-create-desktop-file.patch +++ b/srcpkgs/mattermost-desktop/patches/20-create-desktop-file.patch @@ -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; diff --git a/srcpkgs/mattermost-desktop/template b/srcpkgs/mattermost-desktop/template index 9bb3d8dc95f..050f0960d46 100644 --- a/srcpkgs/mattermost-desktop/template +++ b/srcpkgs/mattermost-desktop/template @@ -1,18 +1,49 @@ # Template file for 'mattermost-desktop' pkgname=mattermost-desktop version=4.5.2 -revision=1 -archs="x86_64 i686" +revision=2 wrksrc="desktop-${version}" +archs="x86_64* i686*" # electron-builder needs GNU tar -hostmakedepends="git nodejs-lts-10 python libicns GraphicsMagick xz tar" -makedepends="libnotify-devel" +hostmakedepends="git 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 " 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 just fetches a 7za binary that is lined against glibc + # refuses to use the system one +fi + +do_configure() { + if [ "${XBPS_TARGET_MACHINE#-musl}" = x86_64 ];then + sed -i 's/--ia32//g' package.json + elif [ "${XBPS_TARGET_MACHINE#-musl}" = i686 ];then + sed -i 's/--x64//g' package.json + fi + + # Do not build tar.gz, nor .deb or appimages. This reduces build time. + jq '.linux .target |= ["dir"]' \ + electron-builder.json > electron-builder-new.json + # jq cannot output to the same file it get input from. + mv electron-builder-new.json electron-builder.json + + # 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() { npm install @@ -25,12 +56,12 @@ do_build() { 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 }