Skip to content

Instantly share code, notes, and snippets.

@dualfade
Last active September 16, 2026 00:10
Show Gist options
  • Select an option

  • Save dualfade/3bba7a5c97c66e25eaf4a25df2a8c3aa to your computer and use it in GitHub Desktop.

Select an option

Save dualfade/3bba7a5c97c66e25eaf4a25df2a8c3aa to your computer and use it in GitHub Desktop.
# Maintainer: Danilo <aur ät dbrgn döt ch>
# Version: Dualfade <dualfade at vadersecurity dot com>
pkgname=threema-desktop-beta
pkgdesc="Threema Desktop 2.0 Beta."
pkgver=2.0_beta66
_pkgver=${pkgver//_/-}
pkgrel=1
arch=('x86_64')
url="https://github.com/threema-ch/threema-desktop"
license=('AGPL-3.0-only')
depends=(
alsa-lib
at-spi2-core
cairo
dbus
expat
gcc-libs
glib2
glibc
gtk3
hicolor-icon-theme
libcups
libx11
libxcb
libxcomposite
libxdamage
libxext
libxfixes
libxkbcommon
libxrandr
mesa
nspr
nss
pango
pnpm
systemd-libs
)
makedepends=(
npm nvm
python python-setuptools
rustup
wasm-bindgen binaryen protobuf
)
source=("https://github.com/threema-ch/threema-desktop/archive/refs/tags/v${_pkgver}.zip")
b2sums=('3e79fb26fe5db1f8a4ac8485a53f13bdf08d243d15011d58334c3613921f5a85eea51d552ed19bfafb2b26cdeb3048281d82e410278c384a6320ceafa210bacd')
_ensure_local_nvm() {
which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
export NVM_DIR="${srcdir}/.nvm"
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
}
prepare() {
cd "${srcdir}/threema-desktop-${_pkgver}"
sed -i -s 's/"version": "'${_pkgver}'"/"version": "'${_pkgver}-aur'"/' package.json
BINDGEN_VERSION=$(wasm-bindgen --version | awk '{ print $NF }')
cd packages/libthreema-wasm/libs/libthreema/lib/
sed -i '/^wasm-bindgen[ =]/s/version = "=.*"/version = "='$BINDGEN_VERSION'"/' Cargo.toml
cargo fetch
}
build() {
cd "${srcdir}/threema-desktop-${_pkgver}"
_ensure_local_nvm
nvm install
export CFLAGS=${CFLAGS//-Wp,-D_FORTIFY_SOURCE=3/}
export CPPFLAGS=${CPPFLAGS//-Wp,-D_FORTIFY_SOURCE=3/}
export CXXFLAGS=${CXXFLAGS//-Wp,-D_FORTIFY_SOURCE=3/}
corepack enable
corepack prepare pnpm@10.23.0 --activate
pnpm install --frozen-lockfile
cd packages/libthreema-wasm/libs/libthreema
rustup target add wasm32-unknown-unknown
export CARGO_TARGET_DIR=target
pnpm --filter libthreema-wasm run build
export TURBO_PACKAGE_SIGNATURE=false
export CSC_IDENTITY_AUTO_DISCOVERY=false
pnpm -w run dist:desktop:consumer-live
}
package() {
cd "${srcdir}/threema-desktop-${_pkgver}"
export rdn=ch.threema.threema-desktop
mkdir -p "${pkgdir}/opt/"
cp -r "build/apps/desktop/packaged/Threema Beta-linux-x64/" "${pkgdir}/opt/${pkgname}/"
chmod 755 "${pkgdir}/opt/${pkgname}/"
for i in 512; do
install -Dm 644 "build/apps/desktop/packaged/Threema Beta-linux-x64/resources/icon-${i}.png" \
"${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${rdn}.png"
done
mkdir -p "${pkgdir}/usr/bin/"
{
echo "#!/usr/bin/env bash"
echo "set -euo pipefail"
echo ""
echo "export ELECTRON_OZONE_PLATFORM_HINT=auto"
echo ""
echo "exec /opt/${pkgname}/ThreemaDesktopLauncher"
} >>"${pkgdir}/usr/bin/threema-beta"
chmod +x "${pkgdir}/usr/bin/threema-beta"
install -D "apps/desktop/packaging/metadata/${rdn}.desktop" "${pkgdir}/usr/share/applications/${rdn}.desktop"
sed -i -s "s/=Threema/=Threema Beta/" "${pkgdir}/usr/share/applications/${rdn}.desktop"
sed -i -s "s/Exec=/Exec=\/usr\/bin\/threema-beta/" "${pkgdir}/usr/share/applications/${rdn}.desktop"
}
# vim:set ts=2 sw=2 et:
@dualfade

dualfade commented Jun 17, 2026

Copy link
Copy Markdown
Author
makepkg -C -fs .
yay -U threema-desktop-beta-2.0_beta6*
_ updatedb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment