proton-authenticator-omarchy-helper
LOW
maintainer Zeus-Deus
0 votes
scanned 2026-09-23 19:40:47.268111
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
10
pkgname=proton-authenticator-omarchy-helper
11
_protonver=1.1.6
12
_patchrev=5
13
pkgver=${_protonver}.omarchy${_patchrev}
14
pkgrel=1
15
pkgdesc='Proton Authenticator (official source + local socket) as a background helper for the Omarchy panel plugin'
16
arch=(x86_64)
17
url='https://github.com/Zeus-Deus/proton-authenticator-omarchy-plugin'
18
license=(GPL-3.0-or-later)
19
depends=(cairo
20
dbus
21
gdk-pixbuf2
22
glib2
23
glibc
24
gtk3
25
libgcc
26
libsoup3
27
webkit2gtk-4.1
28
wl-clipboard)
29
makedepends=(cargo)
30
install=$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.
33
conflicts=(proton-authenticator proton-authenticator-bin proton-authenticator-git)
34
options=(!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
46
source=("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)
51
sha256sums=('80848edca68c31d97fde946748a0b6c21ed851de80b57f26d8534b4b493ac323'
52
'd60acfe00a2932254bb0ad20e01b0d74397a0875595de719654b214f4b03f307'
53
'65c73c916943d1c56d5254d8fdfae7c2e56b73c2e35b0fb5412950a3849673d0'
54
'99ab8010bd72b87dc3accda25b08ace2551578f6c16815f4ed61857fa5b07f41'
55
'53e424d7bf68cc102dd8595e3dea92a1dd51f5a9a46d499ac7cf1df14ba89e92')
56
57
_srcroot() { printf '%s/WebClients-%s' "$srcdir" "$_protoncommit"; }
58
59
prepare() {
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'
78
const fs = require('fs');
79
const 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
};
89
const pinned = read(process.argv[2]);
90
const used = read(process.argv[3]);
91
const bad = [...used].filter(([r, sum]) => !pinned.has(r) || pinned.get(r) !== sum);
92
if (bad.length) {
93
console.error('yarn resolved packages not pinned by Proton:', bad.map(([r]) => r).join(', '));
94
process.exit(1);
95
}
96
console.log(`${used.size} yarn resolutions, all pinned by Proton's yarn.lock`);
97
EOF
98
99
cd applications/authenticator/src-tauri
100
export RUSTUP_TOOLCHAIN=stable
101
cargo fetch --locked --target host-tuple
102
}
103
104
build() {
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
117
check() {
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
123
package() {
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) | Severity | Rules |
|---|---|---|
| 2026-09-23 19:40:47 | Low | 1 |