Working Proton Pass Desktop builds for Arch Linux ARM (aarch64) — upstream ships no arm64 Linux binaries, and the stock AUR recipe fails sign-in with "Your session could not be resumed." here.
Includes electron39-bin (the pinned Electron 39.8.10 from upstream's official
linux-arm64 artifacts), since Arch ARM's extra repo has no electron package.
git clone https://github.com/circumspace/pkgbuilds.git
cd pkgbuilds
# 1) Electron runtime (dependency of the pass package)
cd electron39-bin && makepkg -si && cd ..
# 2) Proton Pass (source build, ~3-5 min; needs nodejs-lts-jod, rustup, yarn from
# extra/ and network for the Rust toolchain fetch)
cd proton-pass && makepkg -siPrebuilt proton-pass-1.41.1-2-aarch64.pkg.tar.xz / electron39-bin-39.8.10-1-aarch64.pkg.tar.xz
may be attached to GitHub Releases — then: sudo pacman -U <file>.pkg.tar.xz.
- Sign-in fix (the big one). The desktop app authenticates via cookies and rewrites
them
SameSite=Noneonly whenapp.isPackagedis true — which a system-Electron launch (electron39 /usr/share/proton-pass/app.asar) never is. Without the rewrite Chromium drops every auth cookie (renderer isfile://), login dies at the first API call:lock/check→ 401, cookie-modeauth/refresh→ 422, session torn down. Patched:isProdEnv()also honorsPROTON_PASS_SYSTEM_PACKAGE=1, exported by the wrapper. Cookie-mode sign-in validation in progress on aarch64 (token-mode path confirmed working with the same build); updated to "verified" after final test. (Upstream report: linked issue/PR placeholder.) electron39-bininstead ofelectron: exact upstream pin (39.8.10), official linux-arm64 zip; Arch ARM has no systemelectron.rustup+ build-local toolchain (RUSTUP_HOME="$srcdir/.rustup") instead ofrust: norustpackage on archlinuxarm.org; builder's home untouched.SHARP_IGNORE_GLOBAL_LIBVIPS=1: otherwise sharp's postinstall enters a node-gyp build yarn 4 refuses; prebuilt arm64 binaries are used.npmMinimalAgeGate: 0(build-local): age gate breaks reproducible installs.- Berry env-var form
NODE_ENV=production yarn exec electron-forge package:yarn exec 'NODE_ENV=… pkg'silently drops the env var under yarn 4 and packages a dev build. - Versioned source + pinned sha256: codeload re-serializes tag tarballs, breaking checksums over time (this is what broke the current AUR recipe at 1.38.2).
- Upstream
proton-pass-desktopdoes not build or test linux-aarch64; this recipe fills that gap for the napi native module (compiled via build-local rustup). If a future release hardcodes targets again,native/build.jsis where to look. - Tray icon under system Electron needs the
resourcesPathsed already in the PKGBUILD. - Legacy-auth workaround (not recommended, kept for reference):
localStorage.setItem('ps_legacy','1')→ token mode; bypasses the cookie path entirely.
cd proton-pass
# bump pkgver/pkgrel (and source url) in PKGBUILD
updpkgsums # regenerate checksums from the pinned archive URL
makepkg -siLicense of packaging: GPL-3.0-or-later (matches upstream PKGBUILD header).