From 7e41cf43d18a48054041facf944c4792cb4ddc74 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 | 46 +++++++++++++++---- 3 files changed, 42 insertions(+), 10 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..a5d1f213d57 100644 --- a/srcpkgs/mattermost-desktop/template +++ b/srcpkgs/mattermost-desktop/template @@ -2,11 +2,12 @@ pkgname=mattermost-desktop version=4.5.2 revision=1 -archs="x86_64 i686" 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" @@ -14,6 +15,35 @@ homepage="https://mattermost.com/" distfiles="https://github.com/mattermost/desktop/archive/v${version}.tar.gz" checksum=17e32346592d175f091a4f12068e0cfc5cfd20ed7894f88bb5b54b2eb6eac74a +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 +55,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 }