From 8d9b083114ea59d3260ba239f7a8629e5e87aaaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20H=C3=BCsers?= Date: Fri, 2 Jun 2023 21:52:38 +0200 Subject: [PATCH] upgpkg: discord-electron-openasar 0.0.27+809-5 Include rudimentary patch to allow Krisp noise suppression support --- .SRCINFO | 5 +++-- PKGBUILD | 11 +++++++---- discord-electron-openasar.install | 13 +++++++++++-- discord-launcher.sh | 12 +++++++++++- 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 86ad9eb..bf89454 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = discord-electron-openasar pkgdesc = Discord packaged with OpenAsar using system provided electron (v22) for increased security and performance pkgver = 0.0.27+809 - pkgrel = 4 + pkgrel = 5 url = https://discord.com install = discord-electron-openasar.install arch = x86_64 @@ -15,6 +15,7 @@ pkgbase = discord-electron-openasar depends = libxss optdepends = libpulse: Pulseaudio support optdepends = xdg-utils: Open files + optdepends = rizin: Allow patching Krisp support provides = discord conflicts = discord options = !strip @@ -22,7 +23,7 @@ pkgbase = discord-electron-openasar source = discord-launcher.sh source = git+https://github.com/goosemod/openasar.git#commit=a8b07392808032f95ac3a7c5856e76d2619c91ae sha512sums = 285a0119b4740402a3fa94d3679a52bc8d883413ee32187e90087960a4d34aaf316788d2708bbccafe3f995c2b99767b45bc4b7c731704ef887a8de1b3d3926f - sha512sums = 6337d1f40c9ac97f180862ed0bcf1ec6fb6d4ecf3cb215369550768a4a3600a9546c43f467855a77e95b0f314348a833de40f4284b5b8924d101b4a456b073f5 + sha512sums = 1da218eb240901ed48c392c154d061b02024daeb02ee7d991cdbc97ecba30a6f06af25abb602880872d89dcc63a8cd4d149c12414086b081035938deff8fe26d sha512sums = SKIP pkgname = discord-electron-openasar diff --git a/PKGBUILD b/PKGBUILD index fc13373..d910cf1 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -9,7 +9,7 @@ _pkgname=discord _electron=22 pkgver=0.0.27+809 _pkgver=${pkgver%%+*} -pkgrel=4 +pkgrel=5 pkgdesc="Discord packaged with OpenAsar using system provided electron (v${_electron}) for increased security and performance" arch=('x86_64') provides=("${_pkgname}") @@ -23,14 +23,17 @@ makedepends=('git' 'asar' 'nodejs' 'curl' 'python-html2text') optdepends=( 'libpulse: Pulseaudio support' 'xdg-utils: Open files' + 'rizin: Allow patching Krisp support' ) source=("https://dl.discordapp.net/apps/linux/${_pkgver}/discord-${_pkgver}.tar.gz" 'discord-launcher.sh' "git+https://github.com/goosemod/openasar.git#commit=a8b07392808032f95ac3a7c5856e76d2619c91ae") sha512sums=('285a0119b4740402a3fa94d3679a52bc8d883413ee32187e90087960a4d34aaf316788d2708bbccafe3f995c2b99767b45bc4b7c731704ef887a8de1b3d3926f' - '6337d1f40c9ac97f180862ed0bcf1ec6fb6d4ecf3cb215369550768a4a3600a9546c43f467855a77e95b0f314348a833de40f4284b5b8924d101b4a456b073f5' + '1da218eb240901ed48c392c154d061b02024daeb02ee7d991cdbc97ecba30a6f06af25abb602880872d89dcc63a8cd4d149c12414086b081035938deff8fe26d' 'SKIP') +_krisp_b2sum='592f55259500afc0d7fd334a10d3c1991fae05db870bf12437edc43cf693988195341f2cb827aba333c0e65fb4cb40dccfcc5d6a84dea4a1645f9563505b6496' + # just in case I get the version wrong pkgver() { cd "${srcdir}/openasar" @@ -38,8 +41,8 @@ pkgver() { } prepare() { - # prepare launcher and install script - sed -i "s|@PKGNAME@|${_pkgname}|;s|@ELECTRON@|${_electron}|" discord-launcher.sh + # prepare launcher script + sed -i "s|@PKGNAME@|${_pkgname}|g;s|@PKGVER@|${_pkgver}|g;s|@ELECTRON@|${_electron}|g;s|@KRISPB2@|${_krisp_b2sum}|g" discord-launcher.sh # fix the .desktop file sed -i "s|Exec=.*|Exec=/usr/bin/${_pkgname}|" Discord/$_pkgname.desktop diff --git a/discord-electron-openasar.install b/discord-electron-openasar.install index 75e9ce8..76da407 100644 --- a/discord-electron-openasar.install +++ b/discord-electron-openasar.install @@ -1,18 +1,27 @@ post_upgrade() { + # return if old package version is greater than or equal to 0.0.27-5... + (( $(vercmp $2 '0.0.27+809-5') >= 0 )) && return + + cat < The launch script will now patch Krisp noise suppression support + if 'rizin' is installed. Restart your Discord client after update + to apply the patch +EOF + # return if old package version is greater than or equal to 0.0.27+809-2... (( $(vercmp $2 '0.0.27+809-2') >= 0 )) && return cat < You can now add or uncomment additional Electron flags in '~/.config/discord-flags.conf' (if XDG_CONFIG_HOME is not set) - EOF } post_install() { cat < For Krisp noise suppression support consider installing 'rizin'. Restart + your Discord client after installation or update to apply the patch ==> In case of performance problems consider adding or uncommenting Electron flags in '~/.config/discord-flags.conf' (if XDG_CONFIG_HOME is not set) - EOF } diff --git a/discord-launcher.sh b/discord-launcher.sh index 42e6f82..7e50f72 100644 --- a/discord-launcher.sh +++ b/discord-launcher.sh @@ -3,12 +3,22 @@ set -euo pipefail flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@-flags.conf" +krisp_bin="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node" declare -a flags +if hash rizin &> /dev/null; then + # Patch Krisp binary to ignore signature check + if [[ -f "${krisp_bin}" && $(b2sum "${krisp_bin}" | head -c 128) == @KRISPB2@ ]]; then + addr=$(rz-find -x '4889dfe8........4889dfe8' "${krisp_bin}" | head -n1) + rizin -q -w -c "s $addr + 0x12 ; wao nop" "${krisp_bin}" &> /dev/null + fi +fi + if [[ -f "${flags_file}" ]]; then - grep -q '\--ignore-gpu-blacklist' "${flags_file}" && \ + if grep -q '\--ignore-gpu-blacklist' "${flags_file}"; then sed -i "s|--ignore-gpu-blacklist|--ignore-gpu-blocklist|" "${flags_file}" + fi mapfile -t < "${flags_file}" else cat > "${flags_file}" <