diff --git a/discord-electron/.SRCINFO b/discord-electron/.SRCINFO index 734d978..6e84783 100644 --- a/discord-electron/.SRCINFO +++ b/discord-electron/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = discord-electron pkgdesc = Discord using system provided electron (v22) for increased security and performance pkgver = 0.0.27 - pkgrel = 4 + pkgrel = 5 url = https://discord.com install = discord-electron.install arch = x86_64 @@ -13,12 +13,13 @@ pkgbase = discord-electron depends = libxss optdepends = libpulse: Pulseaudio support optdepends = xdg-utils: Open files + optdepends = rizin: Allow patching Krisp support provides = discord conflicts = discord options = !strip source = https://dl.discordapp.net/apps/linux/0.0.27/discord-0.0.27.tar.gz source = discord-launcher.sh sha512sums = 285a0119b4740402a3fa94d3679a52bc8d883413ee32187e90087960a4d34aaf316788d2708bbccafe3f995c2b99767b45bc4b7c731704ef887a8de1b3d3926f - sha512sums = 6337d1f40c9ac97f180862ed0bcf1ec6fb6d4ecf3cb215369550768a4a3600a9546c43f467855a77e95b0f314348a833de40f4284b5b8924d101b4a456b073f5 + sha512sums = 1da218eb240901ed48c392c154d061b02024daeb02ee7d991cdbc97ecba30a6f06af25abb602880872d89dcc63a8cd4d149c12414086b081035938deff8fe26d pkgname = discord-electron diff --git a/discord-electron/PKGBUILD b/discord-electron/PKGBUILD index 7cbd556..ac3a63d 100644 --- a/discord-electron/PKGBUILD +++ b/discord-electron/PKGBUILD @@ -15,7 +15,7 @@ pkgname=discord-electron _pkgname=discord _electron=22 pkgver=0.0.27 -pkgrel=4 +pkgrel=5 pkgdesc="Discord using system provided electron (v${_electron}) for increased security and performance" arch=('x86_64') provides=("${_pkgname}") @@ -29,15 +29,18 @@ makedepends=('asar' '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') sha512sums=('285a0119b4740402a3fa94d3679a52bc8d883413ee32187e90087960a4d34aaf316788d2708bbccafe3f995c2b99767b45bc4b7c731704ef887a8de1b3d3926f' - '6337d1f40c9ac97f180862ed0bcf1ec6fb6d4ecf3cb215369550768a4a3600a9546c43f467855a77e95b0f314348a833de40f4284b5b8924d101b4a456b073f5') + '1da218eb240901ed48c392c154d061b02024daeb02ee7d991cdbc97ecba30a6f06af25abb602880872d89dcc63a8cd4d149c12414086b081035938deff8fe26d') + +_krisp_b2sum='592f55259500afc0d7fd334a10d3c1991fae05db870bf12437edc43cf693988195341f2cb827aba333c0e65fb4cb40dccfcc5d6a84dea4a1645f9563505b6496' 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/discord-electron.install b/discord-electron/discord-electron.install index 797b262..5516bf2 100644 --- a/discord-electron/discord-electron.install +++ b/discord-electron/discord-electron.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-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-2... (( $(vercmp $2 '0.0.27-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-electron/discord-launcher.sh b/discord-electron/discord-launcher.sh index 42e6f82..7e50f72 100644 --- a/discord-electron/discord-launcher.sh +++ b/discord-electron/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}" <