# Maintained by Kodehawa # Contributor: FivePB # Contributor: Auxim # Original discord_arch_electron PKGBUILD: # Maintained by johnnyapol (arch@johnnyapol.me) # Original mantainers below: # Based off the discord community repo PKGBUILD by Filipe LaĆ­ns (FFY00) # Maintainer: Anna # Maintainer: E5ten # Maintainer: Parker Reed # Maintainer: Stephanie Wilde-Hobbs # Contributor: Cayde Dixon # Contributor: Anthony Anderson pkgname=discord-canary-electron-bin _pkgname=discord-canary pkgver=0.0.381 pkgrel=2 pkgdesc="Discord Canary (popular voice + video app) using the system provided electron for increased security and performance" arch=('x86_64') provides=('discord-canary') conflicts=('discord-canary') url='https://canary.discordapp.com' license=('custom') options=(!strip) depends=('electron29' 'gtk3' 'libnotify' 'libxss' 'glibc' 'alsa-lib' 'nspr' 'nss' 'xdg-utils' 'libcups' 'unzip') makedepends=('asar') optdepends=('libpulse: Pulseaudio support' 'xdg-utils: Open files' 'noto-fonts-emoji: Google font for emoji support.' 'ttf-symbola: Font for emoji support.' 'noto-fonts-cjk: Font for special characters such as /shrug face.') source=("https://dl-canary.discordapp.net/apps/linux/${pkgver}/${_pkgname}-${pkgver}.tar.gz" 'LICENSE.html::https://discordapp.com/terms' 'OSS-LICENSES.html::https://discordapp.com/licenses' 'installed.json' ) # Skip SHA256 of licenses, it fails always for some reason. sha256sums=('ea22f34891706e8364bdde5d508b52f4d543710fd2fe22cc5876a3d3871832f8' 'SKIP' 'SKIP' '5afdfdcb67493946553cad1255e1084add21392171d8ffb79c0ce76865e71f0a' ) # The tar extracts to a folder called DiscordCanary. _tarname=DiscordCanary #installed.json needs to be copied to this folder or the updater breaks _discordmodules='$HOME'/.config/discordcanary/$pkgver/modules/ prepare() { # Extract the downloaded tar. tar xf ${_pkgname}-${pkgver}.tar.gz cd $_tarname sed -i "s|Exec=.*|Exec=/usr/bin/$_pkgname|" $_pkgname.desktop echo 'Path=/usr/bin' >> $_pkgname.desktop } package() { # Install the app install -d "$pkgdir"/usr/lib/$_pkgname # HACKS FOR SYSTEM ELECTRON # Thanks to the discord_arch_electron guy for this ;) # Thanks to https://aur.archlinux.org/packages/discord_arch_electron/#comment-776307 for the less-hacky fix. asar e $_tarname/resources/app.asar $_tarname/resources/app sed -i "s|process.resourcesPath|'/usr/lib/$_pkgname'|" $_tarname/resources/app/app_bootstrap/buildInfo.js sed -i "s|exeDir,|'/usr/share/pixmaps',|" $_tarname/resources/app/app_bootstrap/autoStart/linux.js # Hack for Electron 29+ sed -i -E "s|resourcesPath = _path.+;|resourcesPath = '/usr/share/${_pkgname}/resources';|" $_tarname/resources/app/common/paths.js sed -i "s|module.paths = \[\]|module.paths = \[process.env.HOME + '/.config/discordcanary/$pkgver/modules'\]|" $_tarname/resources/app/app_bootstrap/requireNative.js asar p $_tarname/resources/app $_tarname/resources/app.asar --unpack-dir '**' rm -rf $_tarname/resources/app # Copy relevant data cp -r "$_tarname"/resources/* "$pkgdir"/usr/lib/$_pkgname/ #Install the file needed to bootstrap the updater install -Dm 644 installed.json "$pkgdir"/usr/lib/$_pkgname/ # Create starter script for discord echo "#!/bin/sh" > "$srcdir"/$_pkgname echo "if ! [ -f $_discordmodules/installed.json ]; then mkdir -p $_discordmodules && cp /usr/lib/$_pkgname/installed.json $_discordmodules; fi" >> "$srcdir/$_pkgname" echo "exec electron29 /usr/lib/$_pkgname/app.asar \$@" >> "$srcdir"/$_pkgname install -d "$pkgdir"/usr/{bin,share/{pixmaps,applications}} install -Dm 755 $_pkgname "$pkgdir"/usr/bin/$_pkgname cp $_tarname/discord.png "$pkgdir"/usr/share/pixmaps/$_pkgname.png cp $_tarname/$_pkgname.desktop "$pkgdir"/usr/share/applications/$_pkgname.desktop # Licenses install -Dm 644 LICENSE.html "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.html install -Dm 644 OSS-LICENSES.html "$pkgdir"/usr/share/licenses/$pkgname/OSS-LICENSES.html }