secubox-deb/packages
CyberMind-FR 41ce31ff38 feat(toolbox): Phase 8 Quick Win — anti-Utiq R0 + R1 defense (ref #500)
Operator-grade tracking detection / blocking for the Utiq consortium
(Deutsche Telekom + Orange + Telefónica + Vodafone, launched 2023).
Utiq issues a 90-day-stable mtid identifier per publisher based on
SIM + IP carrier-level auth — cookies and standard anti-fingerprint
defenses don't help.

Quick Win ships R0 + R1 :

  R0 (log)    — every flow involving *.utiq.com or utiqLoader.js is
                stored in /var/lib/secubox/toolbox/toolbox.db so the
                operator can audit. No effect on the flow.
  R1 (block)  — same detection, but flow.response is short-circuited
                to 451 (Unavailable For Legal Reasons) before the
                upstream is contacted. No mtid is ever revealed to
                the publisher. Some pages may degrade — the worst
                case is no targeted ad. Toggle globally via env var
                UTIQ_DEFAULT_LEVEL=R1.

Per-client toggling and R2 (mask) / R3 (pseudo-avatar) ship in Phase 2.

Files :

  mitmproxy_addons/utiq_defense.py
    - hooks requestheaders (short-circuits before body fetched)
    - matches *.utiq.com (host) + utiqLoader.js (path, for 1st-party
      CNAME wrappers)
    - records via secubox_toolbox.utiq.record_event

  secubox_toolbox/utiq.py
    - utiq_events table : id, ts, client_ip, publisher (extracted
      from host), host, path, action, level, detected_mtid (future),
      injected_mtid (future)
    - indexes on ts, (client_ip, ts), (publisher, ts)
    - recent() / aggregates() / client_recent_count() helpers

  secubox_toolbox/api.py
    - GET /admin/utiq-events?hours=&limit= → events + aggregates

  mitmproxy_addons/inject_banner.py
    - new ctx['utiq_recent_count'] from utiq.client_recent_count
    - '📡 utiq:N' tile appears when count > 0

  sbin/secubox-toolbox-mitm-wg-launch
    - utiq_defense inserted between inject_xff and local_store

Live verified : addon loaded, /admin/utiq-events returns empty events
+ aggregates skeleton, no regressions on the existing addon chain.

Closes the Quick Win checkbox in #500.
2026-06-08 16:19:51 +02:00
..
secubox-ad-guard fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-admin fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-aggregator fix(crowdsec,aggregator): /health bouncers + nft checks under hardened aggregator (ref #498) 2026-06-07 09:57:50 +02:00
secubox-ai-gateway docs(ai,dpi,mesh,soc): naming-clarity sweep on 5 cluster-member placeholders (closes #386) 2026-05-27 08:55:41 +02:00
secubox-ai-insights fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-auth fix(auth): ntp_health falls back to timedatectl when chronyc absent (ref #498) 2026-06-08 09:49:51 +02:00
secubox-authelia feat(authelia): LAN whitelist on admin.gk2.secubox.in (bypass SSO from inside) 2026-05-24 14:58:43 +02:00
secubox-avatar feat(secubox-toolbox+core+5modules): Phase 2b wire mitm addons to receiving modules (ref #488) 2026-06-05 07:46:50 +02:00
secubox-backup docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387) 2026-05-27 09:13:36 +02:00
secubox-c3box fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-cdn fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-certs feat(secubox-certs): reconstruct source package from running deployment (closes #308) (#309) 2026-05-21 10:40:59 +02:00
secubox-cloner feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-config-advisor docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387) 2026-05-27 09:13:36 +02:00
secubox-console feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-cookies feat(secubox-toolbox+core+5modules): Phase 2b wire mitm addons to receiving modules (ref #488) 2026-06-05 07:46:50 +02:00
secubox-core fix(secubox-core): /etc/secubox parent dir 0750 → 0755 (ref #468) (#470) 2026-06-03 09:11:14 +02:00
secubox-crowdsec fix(crowdsec): sudoers covers /status + /console/status read-only cscli (ref #498) 2026-06-08 12:00:45 +02:00
secubox-cve-triage docs(dns,threats): naming-clarity sweep on 6 placeholder Descriptions (closes #383) 2026-05-27 08:25:54 +02:00
secubox-cyberfeed fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-daemon/debian fix(daemon): rename secubox-c3box → secubox-daemon-c3box (closes #378) 2026-05-27 07:23:57 +02:00
secubox-defaults ci+packaging: unblock v2.9.0 release — 4 package fixes + partial-release resilience 2026-05-17 10:14:50 +02:00
secubox-device-intel docs(identity,monitoring): naming-clarity sweep on 4 placeholder Descriptions (closes #385) 2026-05-27 08:50:05 +02:00
secubox-dns docs(dns,threats): naming-clarity sweep on 6 placeholder Descriptions (closes #383) 2026-05-27 08:25:54 +02:00
secubox-dns-guard docs(dns,threats): naming-clarity sweep on 6 placeholder Descriptions (closes #383) 2026-05-27 08:25:54 +02:00
secubox-dns-provider fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-domoticz feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-dpi feat(secubox-toolbox+core+5modules): Phase 2b wire mitm addons to receiving modules (ref #488) 2026-06-05 07:46:50 +02:00
secubox-droplet fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-egress docs(specs): integrate CM-WALL-EGRESS-2026-06 v0.1.0-draft + agent context 2026-06-02 11:13:44 +02:00
secubox-exposure feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-eye-remote fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-eye-square fix(eye-square): relocate firstboot.sh out of /usr/local/sbin/ (closes #207) (#208) 2026-05-19 06:53:31 +02:00
secubox-fmrelay fix(packaging): drop duplicate debian/compat files (unblocks v2.13.0 publish) 2026-05-30 05:56:40 +02:00
secubox-full/debian feat(secubox): complete meta-script generator Tasks 14-17 2026-05-11 05:32:29 +02:00
secubox-gitea docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387) 2026-05-27 09:13:36 +02:00
secubox-glances fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-gotosocial feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-grafana feat(yacy,grafana,rustdesk): apply dual-vhost MUST pattern (MODULE-GUIDELINES §4) 2026-05-24 10:24:35 +02:00
secubox-haproxy fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-hardening docs(navbar): resort hardening + repo into root category (closes #389) 2026-05-27 11:45:16 +02:00
secubox-health-doctor fix(secubox-health-doctor): drop redundant debian/compat (closes #220) (#221) 2026-05-19 11:44:35 +02:00
secubox-hexo fix(navbar): emoji icons via menu-data fallback + replace remaining FA names 2026-05-24 11:25:05 +02:00
secubox-homeassistant feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-hub fix(hub): merge VHost error→down in pre-computed summary path (closes #392) 2026-05-27 13:16:23 +02:00
secubox-identity docs(identity,monitoring): naming-clarity sweep on 4 placeholder Descriptions (closes #385) 2026-05-27 08:50:05 +02:00
secubox-interceptor fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-iot-guard docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387) 2026-05-27 09:13:36 +02:00
secubox-ipblock fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-jabber feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-jellyfin feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-jitsi fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-ksm fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-led-heartbeat fix(led-heartbeat): v2.1.2 — postinst disables legacy bumper, pulse swings full 0-1 2026-05-24 08:59:40 +02:00
secubox-lite/debian feat(secubox): complete meta-script generator Tasks 14-17 2026-05-11 05:32:29 +02:00
secubox-localai feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-localrecall docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387) 2026-05-27 09:13:36 +02:00
secubox-lyrion docs: codify dual-vhost MUST for modules with a real web UI 2026-05-24 10:06:56 +02:00
secubox-mac-guard fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-magicmirror chore: Phase 7.E reboot follow-up — version bumps + WIP + HISTORY (ref #498) 2026-06-07 09:47:01 +02:00
secubox-mail fix(mail): Roundcube SQLite by default (closes #152) 2026-05-29 09:34:32 +02:00
secubox-mail-lxc/debian cleanup(mail): prune dead source content from transitional packages (closes #380) 2026-05-27 07:34:54 +02:00
secubox-master-link/debian feat(p2p,master-link): fold master-link into secubox-p2p (closes #384) 2026-05-27 08:45:34 +02:00
secubox-matrix fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-mcp-server docs(ai,dpi,mesh,soc): naming-clarity sweep on 5 cluster-member placeholders (closes #386) 2026-05-27 08:55:41 +02:00
secubox-mediaflow fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-mesh fix(secubox-mesh): drop postinst /run/secubox parent overwrite (ref #471) (#473) 2026-06-04 05:29:23 +02:00
secubox-mesh-bt docs(specs): integrate CM-MESH-MPCIE-2026-06 v0.2.1-draft 2026-06-02 11:06:40 +02:00
secubox-meshname docs(ai,dpi,mesh,soc): naming-clarity sweep on 5 cluster-member placeholders (closes #386) 2026-05-27 08:55:41 +02:00
secubox-metablogizer fix(secubox-metablogizer): v1.2.1 — uvicorn --log-level info, surface webhook deploy success (#329) 2026-05-22 07:07:17 +02:00
secubox-metabolizer fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-metacatalog fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-metoblizer fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-metrics feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-mirror fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-mitmproxy feat: Phase 6.P memory optimization — P3+P4+P5+P6 backported to sources (ref #496) 2026-06-06 07:37:21 +02:00
secubox-mmpm/debian feat(magicmirror): fold secubox-mmpm into secubox-magicmirror (closes #381) 2026-05-27 07:54:45 +02:00
secubox-modem fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-mqtt fix(navbar): emoji icons + restore MQTT menu entry overwritten with Lyrion content 2026-05-23 18:42:51 +02:00
secubox-nac fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-ndpid docs(ai,dpi,mesh,soc): naming-clarity sweep on 5 cluster-member placeholders (closes #386) 2026-05-27 08:55:41 +02:00
secubox-netdata fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-netdiag fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-netifyd feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-netmodes feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-nettweak fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-network-anomaly docs(dns,threats): naming-clarity sweep on 6 placeholder Descriptions (closes #383) 2026-05-27 08:25:54 +02:00
secubox-newsbin feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-nextcloud Merge remote-tracking branch 'origin/master' into fix/394-nextcloud-remove-authelia-auth-request-f 2026-05-29 09:26:37 +02:00
secubox-ollama feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-openclaw chore: Phase 7.E reboot follow-up — version bumps + WIP + HISTORY (ref #498) 2026-06-07 09:47:01 +02:00
secubox-ossec feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-p2p feat(p2p,master-link): fold master-link into secubox-p2p (closes #384) 2026-05-27 08:45:34 +02:00
secubox-peertube feat(peertube,avatar): privilege-separated cookie install via root path-unit (closes #407) 2026-05-28 12:36:56 +02:00
secubox-photoprism fix(#410): user-provision verbs validated live on gk2 2026-05-29 08:28:22 +02:00
secubox-picobrew feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-portal feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-publish fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-qos feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-rbs-sensor feat(secubox-rbs-sensor): WALL/OPAD sensor scaffold for EP06-E (closes #236) (#256) 2026-05-20 16:04:01 +02:00
secubox-redroid feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-repo docs(navbar): resort hardening + repo into root category (closes #389) 2026-05-27 11:45:16 +02:00
secubox-reporter fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-rezapp feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-roadmap fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-routes fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-rtty fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-rustdesk feat(yacy,grafana,rustdesk): apply dual-vhost MUST pattern (MODULE-GUIDELINES §4) 2026-05-24 10:24:35 +02:00
secubox-saas-relay fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-sentinelle-gsm fix(sentinelle-gsm): skip dh_shlibdeps on prebuilt secubox-redsea (closes #425) 2026-05-30 11:50:13 +02:00
secubox-simplex fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-smart-strip feat(hardware): Add Smart-Strip HMI module (SBX-STR-01) + fix lite profile build 2026-04-27 19:03:08 +02:00
secubox-smtp-relay fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-soc feat(secubox-toolbox+core+5modules): Phase 2b wire mitm addons to receiving modules (ref #488) 2026-06-05 07:46:50 +02:00
secubox-soc-agent fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-soc-gateway fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-soc-web fix(secubox-soc-web): remove duplicate /soc/ location from nginx snippet (closes #163) (#166) 2026-05-17 07:53:00 +02:00
secubox-streamforge fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-streamlit fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-system fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-system-hub feat(secubox): complete meta-script generator Tasks 14-17 2026-05-11 05:32:29 +02:00
secubox-system-tuning feat(system-tuning): new package for swap + LXC cgroup memory caps (closes #391) 2026-05-27 13:10:20 +02:00
secubox-threat-analyst feat(secubox-toolbox+core+5modules): Phase 2b wire mitm addons to receiving modules (ref #488) 2026-06-05 07:46:50 +02:00
secubox-threats fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-toolbox feat(toolbox): Phase 8 Quick Win — anti-Utiq R0 + R1 defense (ref #500) 2026-06-08 16:19:51 +02:00
secubox-tor docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387) 2026-05-27 09:13:36 +02:00
secubox-torrent fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-traffic feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-turn fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-ui-manager feat(secubox): complete meta-script generator Tasks 14-17 2026-05-11 05:32:29 +02:00
secubox-users fix(users): postinst also chowns auth.toml (ref #498) 2026-06-08 10:09:50 +02:00
secubox-vault feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-vhost fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-vm feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-voip fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-vortex-dns docs(dns,threats): naming-clarity sweep on 6 placeholder Descriptions (closes #383) 2026-05-27 08:25:54 +02:00
secubox-vortex-firewall fix(vortex-firewall): unmask + enable nftables at install so LXC NAT survives reboot (closes #150) 2026-05-29 09:37:06 +02:00
secubox-waf feat: mitm hardening + onboard page + mitm-wg LXC scaffolding (ref #498) 2026-06-08 09:02:00 +02:00
secubox-watchdog docs(identity,monitoring): naming-clarity sweep on 4 placeholder Descriptions (closes #385) 2026-05-27 08:50:05 +02:00
secubox-wazuh fix(wazuh): postinst tolerates masked unit 2026-05-27 05:52:11 +02:00
secubox-webext feat(webext): avatar personas — selectable login bundles + one-click Become (ref #409) 2026-05-28 14:13:20 +02:00
secubox-webmail/debian cleanup(mail): prune dead source content from transitional packages (closes #380) 2026-05-27 07:34:54 +02:00
secubox-webmail-lxc/debian cleanup(mail): prune dead source content from transitional packages (closes #380) 2026-05-27 07:34:54 +02:00
secubox-webradio feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
secubox-wireguard fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
secubox-yacy feat(yacy,grafana,rustdesk): apply dual-vhost MUST pattern (MODULE-GUIDELINES §4) 2026-05-24 10:24:35 +02:00
secubox-yggdrasil refactor: move secubox-mesh (Yggdrasil VPN) → secubox-yggdrasil (closes #450) 2026-06-02 09:49:22 +02:00
secubox-zigbee docs: codify dual-vhost MUST for modules with a real web UI 2026-05-24 10:06:56 +02:00
secubox-zkp fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units 2026-05-26 09:50:22 +02:00
zkp-hamiltonian fix(zkp-hamiltonian): drop duplicate debian/compat (same bomb as fmrelay) 2026-05-30 05:56:55 +02:00