proton-authenticator-omarchy-helper

LOW
maintainer Zeus-Deus 0 votes scanned 2026-09-23 19:40:47.268111
View on AUR
Why flagged

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

PKGBUILD

1# Maintainer: Zeus-Deus <github.commits at widow dot cc>
2#
3# Proton Authenticator built from Proton's official source for the release
4# (ProtonMail/WebClients, branch release/proton-authenticator@<version>) with
5# one reviewable patch, omarchy-helper.patch, that adds a private local socket
6# so the Omarchy panel plugin can show and copy codes. Login, keys, encryption
7# and sync are Proton's code, unchanged. See the patch header in the plugin repo
8# README ("How it works") for exactly what it changes.
9
10pkgname=proton-authenticator-omarchy-helper
11_protonver=1.1.6
12_patchrev=5
13pkgver=${_protonver}.omarchy${_patchrev}
14pkgrel=1
15pkgdesc='Proton Authenticator (official source + local socket) as a background helper for the Omarchy panel plugin'
16arch=(x86_64)
17url='https://github.com/Zeus-Deus/proton-authenticator-omarchy-plugin'
18license=(GPL-3.0-or-later)
19depends=(cairo
20 dbus
21 gdk-pixbuf2
22 glib2
23 glibc
24 gtk3
25 libgcc
26 libsoup3
27 webkit2gtk-4.1
28 wl-clipboard)
29makedepends=(cargo)
30install=$pkgname.install
31# Same app identifier, data directory, keyring entry and single-instance D-Bus
32# name as Proton's own Linux app: the two cannot run side by side.
33conflicts=(proton-authenticator proton-authenticator-bin proton-authenticator-git)
34options=(!lto !debug)
35
36# Proton's release-branch head for 1.1.6 ("Bump Authenticator to 1.1.6").
37_protoncommit=0deabe38e304f5d42d6a72783c64c1884c17fce3
38# Commit of the patched tree in the reviewable fork; embedded in the binary and
39# reported by the helper so anyone can check what is running.
40_patchcommit=5a417199bc791bfdad27db290153c763da5182ab
41# Proton's workspace requires Node ">= 22.14.0 <23.6.0". Arch's Node 22 package
42# (nodejs-lts-jod) conflicts with the system nodejs, which would make a one-press
43# install fail, so the build uses the official Node 22 release tarball instead.
44_nodever=22.23.2
45
46source=("WebClients-${_protoncommit}.tar.gz::https://github.com/ProtonMail/WebClients/archive/${_protoncommit}.tar.gz"
47 "https://nodejs.org/dist/v${_nodever}/node-v${_nodever}-linux-x64.tar.xz"
48 omarchy-helper.patch
49 proton-authenticator-omarchy-helper.service
50 proton-authenticator-omarchy-helper.lua)
51sha256sums=('80848edca68c31d97fde946748a0b6c21ed851de80b57f26d8534b4b493ac323'
52 'd60acfe00a2932254bb0ad20e01b0d74397a0875595de719654b214f4b03f307'
53 '65c73c916943d1c56d5254d8fdfae7c2e56b73c2e35b0fb5412950a3849673d0'
54 '99ab8010bd72b87dc3accda25b08ace2551578f6c16815f4ed61857fa5b07f41'
55 '53e424d7bf68cc102dd8595e3dea92a1dd51f5a9a46d499ac7cf1df14ba89e92')
56
57_srcroot() { printf '%s/WebClients-%s' "$srcdir" "$_protoncommit"; }
58
59prepare() {
60 cd "$(_srcroot)"
61 patch -Np1 -i "$srcdir/omarchy-helper.patch"
62
63 export PATH="$srcdir/node-v${_nodever}-linux-x64/bin:$PATH"
64 # Install only the authenticator workspace and what it depends on.
65 sed -i 's/"applications\/\*",/"applications\/authenticator",/' package.json
66 # sharp is a transitive dependency the authenticator build never uses.
67 sed -i '1a\ "dependenciesMeta": { "sharp": { "built": false } },' package.json
68
69 export YARN_CACHE_FOLDER="$srcdir/.yarn-cache"
70 export YARN_ENABLE_TELEMETRY=0
71 export SENTRYCLI_SKIP_DOWNLOAD=1
72 # Narrowing the workspace list prunes yarn.lock, so an --immutable install
73 # would refuse. Instead, prove afterwards that the pruned lock resolves only
74 # package versions and checksums already pinned in Proton's own yarn.lock.
75 cp yarn.lock "$srcdir/yarn.lock.proton"
76 node "$(sed -n 's/^yarnPath: *//p' .yarnrc.yml)" install
77 node - "$srcdir/yarn.lock.proton" yarn.lock <<'EOF'
78const fs = require('fs');
79const read = (p) => {
80 const out = new Map(); let cur = null;
81 for (const line of fs.readFileSync(p, 'utf8').split('\n')) {
82 let m = line.match(/^\s+resolution: "?(.*?)"?$/);
83 if (m) { cur = m[1]; out.set(cur, null); continue; }
84 m = line.match(/^\s+checksum: (.*)$/);
85 if (m && cur) out.set(cur, m[1].trim());
86 }
87 return out;
88};
89const pinned = read(process.argv[2]);
90const used = read(process.argv[3]);
91const bad = [...used].filter(([r, sum]) => !pinned.has(r) || pinned.get(r) !== sum);
92if (bad.length) {
93 console.error('yarn resolved packages not pinned by Proton:', bad.map(([r]) => r).join(', '));
94 process.exit(1);
95}
96console.log(`${used.size} yarn resolutions, all pinned by Proton's yarn.lock`);
97EOF
98
99 cd applications/authenticator/src-tauri
100 export RUSTUP_TOOLCHAIN=stable
101 cargo fetch --locked --target host-tuple
102}
103
104build() {
105 cd "$(_srcroot)/applications/authenticator"
106 export PATH="$srcdir/node-v${_nodever}-linux-x64/bin:$PATH"
107 export RUSTUP_TOOLCHAIN=stable
108 export CARGO_TARGET_DIR=target
109 # ring's C objects need fat LTO objects when makepkg's CFLAGS enable LTO.
110 export CFLAGS="${CFLAGS} -ffat-lto-objects"
111 export CXXFLAGS="${CXXFLAGS} -ffat-lto-objects"
112 export OMARCHY_HELPER_SOURCE_COMMIT="$_patchcommit"
113 # QA_BUILD=false, no devtools, no source maps; verifies the artifact.
114 CARGO_TARGET_DIR="$PWD/target" bash tools/build-omarchy-helper.sh
115}
116
117check() {
118 cd "$(_srcroot)/applications/authenticator"
119 export PATH="$srcdir/node-v${_nodever}-linux-x64/bin:$PATH"
120 node --test tools/verify-omarchy-helper-build.spec.mjs
121}
122
123package() {
124 cd "$(_srcroot)/applications/authenticator"
125 install -Dm755 target/release/proton-authenticator \
126 "$pkgdir/usr/bin/proton-authenticator-omarchy-helper"
127 install -Dm644 "$srcdir/proton-authenticator-omarchy-helper.service" \
128 -t "$pkgdir/usr/lib/systemd/user"
129 # Omarchy loads every file in this directory as a window rule (floating,
130 # centered, hidden from screen sharing), like its other password managers.
131 install -Dm644 "$srcdir/proton-authenticator-omarchy-helper.lua" \
132 -t "$pkgdir/usr/share/omarchy/default/hypr/apps"
133 install -Dm644 ../../LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
134 install -Dm644 "$srcdir/omarchy-helper.patch" -t "$pkgdir/usr/share/doc/$pkgname"
135}
136

Scan history

Scanned at (UTC)SeverityRules
2026-09-23 19:40:47 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion