From 929c5211f347256e217b57bee50fd8cdba0fa0aa 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 | 48 +++++++++++++++---- 3 files changed, 43 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..3fd21ea9e31 100644 --- a/srcpkgs/mattermost-desktop/template +++ b/srcpkgs/mattermost-desktop/template @@ -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 " 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 }