Releases: linx-systems/clamui
Release list
ClamUI v0.4.0
Safer configuration writes, scan-result reliability, GTK baseline compatibility, and host-integration hardening.
Highlights
Configuration, Compatibility & Installation
- Safer preferences β preference saves now enforce ClamAV recursion limits, report configuration-load failures clearly, and retain standalone scanner settings when a Flatpak host helper is unavailable.
- GTK 4.6 / libadwaita 1.1 support restored β ClamUI no longer relies on newer GTK APIs, preserving compatibility with the supported baseline.
- Flatpak and Python compatibility β the release includes a version-matched
clamui-privileged-helper_0.4.0_all.debhost companion for applying system ClamAV preferences from Flatpak; helper builds support Python 3.10 and glob conversion supports Python 3.14. (#170) - Distro-aware install advice β security-audit install commands now use
/etc/os-releaseto select Debian-, Fedora-, or Arch-family commands, and safely omit a command for unknown distributions.
Scan, Update & Quarantine Reliability
- More trustworthy scan results β multi-target scans are safe under concurrent invocation, accumulated output no longer duplicates trailing partial lines, all-failed scans report errors, and recognized nonfatal ClamAV warnings are presented consistently.
- Safer database updates β forced database updates are staged before they replace the active database.
- Safer quarantine actions β restore and permanent-delete actions require confirmation; dialogs close with Escape; and quarantine copies reject short writes to protect file integrity.
Security & Host Integration
- Canonical privileged writes β elevated configuration writes fail closed unless the trusted helper and destination resolve to canonical paths.
- Token-safe scheduled commands β scheduled scan commands are built from tokens rather than re-splitting shell strings.
- Sanitized AppImage host helpers β all host helpers launched by AppImage builds run with a cleaned environment.
Translations & Dependencies
- Refreshed French and Simplified Chinese translations, added translatable UI strings, and updated Python, Flatpak, CI, and runtime dependencies including cryptography 50.0.0.
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUIAppImage: Download ClamUI-0.4.0-x86_64.AppImage from the Releases page.
GitHub Release: Download clamui_0.4.0_all.deb or the clamui-x86_64.flatpak / clamui-aarch64.flatpak bundle from the Releases page. Flatpak users who need to apply system-wide ClamAV preferences can install the matching clamui-privileged-helper_0.4.0_all.deb host companion.
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiContributors
Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.
ClamUI v0.3.0
Privileged ClamAV configuration improvements, Flatpak host-config fixes, CLI scan reliability, and security hardening.
Highlights
Configuration & Flatpak
- Privileged helper installer β
clamui install-privileged-helperinstalls theclamui-apply-preferenceswrapper and polkit policy needed for elevated ClamAV configuration writes. (#143) - Flatpak host configuration persistence β Flatpak preferences now persist host ClamAV configuration through the privileged helper instead of assuming sandbox-local ClamAV paths. (#136)
- Less unnecessary elevation β ClamUI skips elevation prompts when it is already running as root and fixes elevation decision/reporting edge cases.
Scan & CLI Reliability
- CLI path handling fixed β one-shot CLI scans now scan every path provided on the command line instead of only the first path.
- Saved scan settings honored β scheduled and one-shot CLI scans now apply saved exclusions and backend settings consistently.
- Benign ClamAV warnings tolerated β scans no longer fail solely because ClamAV reports expected size-limit warnings.
- Database age parsing fixed β ClamUI now parses CVD/CLD database headers robustly even when compressed database payload bytes immediately follow the header.
Security Hardening
- Sanitized untrusted profile, scan, quarantine, audit, and terminal output paths to reduce log/terminal injection risk.
- Hardened profile import/name normalization, scheduler quoting, Unicode sanitizer coverage, ClamAV config parsing, quarantine cleanup, and audit verdict handling.
- Improved exclusion matching bounds in scanner and daemon scanner paths and preserved detections on ClamAV error exits.
VirusTotal, UI & Packaging
- VirusTotal retries now resend the full request body, large uploads are supported, and all engine-result buckets are counted.
- VirusTotal result flow, stuck spinners, tray resynchronization, and deliberate tray shutdown behavior were repaired.
- AppImage execution now strips bundled Python/GI environment variables before launching host tools. (#155)
- Debian packaging accepts
pkexec | policykit-1for Debian 13 compatibility. - Python, Flatpak, website, and translation assets were refreshed, and a real-GTK construction smoke test now covers all views, preference pages, and dialogs.
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUIAppImage: Download ClamUI-0.3.0-x86_64.AppImage from the Releases page.
GitHub Release: Download packages from the Releases page.
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiContributors
Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.
ClamUI v0.2.0
ClamUI v0.2.0
Portmaster privacy-filter audit integration, quarantine restore hardening, and scanner reliability fixes.
Highlights
Security Audit
- Portmaster privacy-filter check β a new optional section in the system security audit probes the local Portmaster API (
127.0.0.1:817) to report whether Portmaster is running, installed-but-stopped, or not installed, and shows per-module health when an API token is available. It uses Portmaster's own in-app authorization flow (no manual token paste), stores tokens in the system keyring, and only ever producesSKIPPEDβ neverFAIL/WARNINGβ so it never pollutes the audit summary on systems without Portmaster.
Security Hardening
- Quarantine restore hardening (GHSA-xhhj-qvvr-vhwq) β reworked quarantine file handling to close path- and metadata-handling vulnerabilities in the restore flow.
Reliability & UX
- Scanner hang fixed β full scans could freeze mid-run (reported around ~72%) when ClamAV filled its stderr pipe buffer with permission warnings and LibClamAV notices, blocking the child process. The scanner now drains stderr concurrently with stdout, with regression tests covering the deadlock. (Fixes #146)
- Tray reliability under Flatpak β StatusNotifierItem registration reworked for stricter tray hosts (Plasma 6, Ayatana indicator, xapp-sn-watcher) and Flatpak's D-Bus proxy: registers the SNI object path instead of owning a well-known bus name, exposes ARGB32 icon-pixmap fallbacks, and mirrors the attention-icon so the correct icon renders.
Documentation
- INSTALL.md now documents installation via AppMan / AM.
Maintenance
- Website migrated to Astro 6 + Tailwind 4 (Node β₯22.12), with the toolchain switched to a bun lockfile.
- Refreshed Python and Flatpak runtime dependencies β cryptography 48, urllib3 2.7.0, certifi, packaging 26.2, idna 3.15, numpy, fonttools, PyGObject 3.56.3, and more (pins + wheel hashes regenerated).
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUIAppImage: Download ClamUI-0.2.0-x86_64.AppImage from the Releases page. Existing AppImages can delta-update via zsync.
GitHub Release: Download from the Releases page
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiContributors
Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.
ClamUI v0.1.8
ClamUI v0.1.8
Security hardening, Flatpak host-ClamAV fixes, tray reliability, and Spanish translation support.
Highlights
Security Hardening
- Closed two privileged config-save escalation bugs by routing native and Flatpak config writes through one validated helper path
- Added UID-checked staging directories,
O_NOFOLLOWsource validation, destination allowlisting, and atomic config installs forclamui-apply-preferences - Prevented ClamAV scan path arguments from being interpreted as command-line flags by inserting
--before user-selected paths - Masked stored quarantine permissions to regular mode bits so restore cannot reapply setuid, setgid, or sticky bits
- Refused symlink restore destinations and added no-follow restore fallback handling for cross-filesystem quarantine restores
- Hardened scheduled-scan crontab updates so unrelated user crontab entries are not removed by marker-like text
Flatpak & Packaging
- Flatpak now requires host ClamAV tools instead of bundling ClamAV, keeping virus database ownership on the host system
- Fixed Flatpak daemon file-list scans so
clamdscanreceives host-visible paths correctly - Improved host ClamAV detection, config access, updater behavior, and audit checks from inside the Flatpak sandbox
- Refreshed Python dependency locks and Flatpak runtime pins, including
cryptography 48.0.0,packaging 26.2, andmore-itertools 11.0.2 - Added a draft GitHub release workflow for tag-triggered release artifacts
Reliability & UX
- Fixed an updater gettext regression that could break force-update error handling
- Stopped live scanner output parsing from spinning at 100% CPU after stdout EOF
- Restored tray profile menu updates and added crash detection with bounded tray subprocess respawns
- Tracked delayed removable-device scan requeues so shutdown and removal can cancel pending scan starts
- Cleaned up temporary EICAR self-test files on normal completion, errors, and process exit
- Parsed timezone-aware scan timestamps consistently for statistics timeframes
- Stored VirusTotal scan timestamps in UTC instead of local-naive time
- Added visible ClamUI website links to the README and refreshed release workflow dependencies
Internationalization
- Added Spanish translation support, including
po/es.poandpo/LINGUASregistration
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUIAppImage: Download the ClamUI-0.1.8-x86_64.AppImage from the Releases page. Existing AppImages can delta-update via zsync.
GitHub Release: Download from the Releases page
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiContributors
Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.
ClamUI v0.1.7
ClamUI v0.1.7
System security audit dashboard, Flatpak hardening, AppImage delta updates, and tray reliability.
Highlights
System Security Audit
A new dashboard that reviews the overall security posture of the host, not just ClamAV:
- Firewall presence and rule health (with distro-specific launch buttons for GUI firewall tools)
- SSH daemon configuration and exposure
- Open-port review (any open ports flagged as warning, risky ports as fail)
- MAC framework status (AppArmor / SELinux)
- Rootkit scanner availability
- ClamAV health (database freshness, daemon status)
- In-app notifications when issues are found, with info links to each check
Packaging & Distribution
- AppImage delta updates via zsync β future updates pull only changed bytes instead of re-downloading ~96 MB
- Flatpak-aware folder/dialog/launch paths β "Open folder" and file-manager handoffs now work correctly from inside
the Flatpak sandbox - Restart ClamAV services after config changes so the daemon picks up new settings automatically
- Fedora clamd detection fixes for hosts where clamd and freshclam are packaged separately
Internationalization
- French and Italian translations added (community contributions β
thanks @robinguy44 and @albanobattistella) - Chinese (zh_CN) fuzzy strings refreshed (thanks @Marksonthegamer)
- German strings re-synced against the latest POT template
- Language override preference β pick the interface language regardless of the system
LANGsetting
Security Hardening
- Addressed OWASP audit findings across scanner, updater, and logging paths
- Path-validation hardening (
ValueErroron resolve is now caught instead of propagating) - Pango markup escaped in widget titles and subtitles to prevent markup injection from filenames
- Bumped pytest >=9.0.3 (CVE-2025-71176), refreshed cryptography and certifi pins
Reliability & UX
- Scan detail view UX improvements and cleaner GUI shutdown sequence
- Non-UTF-8 filenames no longer crash scans on Linux
- Non-fatal LibClamAV errors no longer cause hard scan failures
- Progress bar clamped to 100% with an overflow indicator on underestimated scans
- Plasma tray watcher registration timing fix β tray icon now appears reliably on KDE
StartupWMClassadded to desktop files so window managers match windows to the right application- Deferred panel data loading and shared
LogManageracross views for faster startup - Config-save path repairs and Flatpak write support
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUIAppImage: Download the ClamUI-0.1.7-x86_64.AppImage from
the Releases page. Existing AppImages can delta-update via
zsync.
GitHub Release: Download from the Releases page
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiContributors
Thanks to everyone who contributed code, translations, and bug reports for this release. See
the full commit log for details.
ClamUI v0.1.6
ClamUI v0.1.6
Security hardening, daemon-scanner fixes, and release pipeline updates.
Highlights
Scanner Reliability
- Fixed daemon scanning behavior that could miss EICAR detections when
--fdpasswas used - Corrected clamd streaming and size-limit unit handling
- Restored
clamdscandetection for live-progress scans - Improved handling for non-UTF-8 scanner output
Security Hardening
- Validated destination paths in the privileged config helper
- Eliminated shell injection risk in updater force-update flows
- Addressed additional static-analysis and CodeQL findings
Dependencies and CI
- Refreshed dependency pins including
cryptography,requests,numpy,Pillow,charset-normalizer, andmore-itertools - Added a dedicated dependency-audit GitHub Actions workflow
- Updated GPG import action usage for Node 24 compatibility
User-Facing Fixes
- Fixed tray profile selection navigation
- Clarified follow-up quality fixes across scanner and release paths
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUIGitHub Release: Download from the Releases page
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiClamUI v0.1.5b
ClamUI v0.1.5b
Bug fixes, Flatpak hardening, and test coverage improvements.
Changes
- Security: Update bundled ClamAV to 1.5.2
- Flatpak: Read system config files across sandbox boundary
- Flatpak: Remove unnecessary
org.a11y.Buspermission - Fix: Forward CLI args through
local-run.sh - Fix: Add
compat.pyto i18n POTFILES.in - CI: Upgrade GitHub Actions to Node.js 24 runtime
- Tests: Add 236 tests for previously uncovered modules, resolve 8 e2e failures
v0.1.5 - CLI, some dependency bumps, Privacy respecting logs
ClamUI v0.1.5
CLI pipeline, security hardening, and broad compatibility improvements.
Highlights
Full CLI Subcommand Pipeline
ClamUI can now be driven entirely from the terminal. New subcommands: scan, status, history, quarantine, profile, and apply-preferences.
Security Fixes
- CVE-2026-31899 (cairosvg decompression-bomb bypass on redirects) β bumped to cairosvg >= 2.9.0
- Bumped urllib3, numpy, and other dependencies to patched versions
- Added CodeQL static analysis and Dependabot to CI
Privacy-Safe Logs
Scan logs no longer persist file-identifying data. Existing logs are migrated on startup.
What's New
- Full CLI subcommand pipeline for headless ClamAV management (
scan,status,history,quarantine,profile,apply-preferences) - Dolphin (KDE Plasma 6) file manager integration
- Force Adwaita icon theme for cross-runtime icon consistency
- EICAR self-test now uses clamscan for reliable detection
- Improved update rate-limit reporting with refreshed translations
Compatibility
- Dropped Python 3.10 β minimum is now Python 3.11
- Ubuntu 22.04 / Pop!_OS 22.04 compatibility for PyGObject < 3.50 and GLib 2.72
- Ensured broad libadwaita 1.1+ compatibility
Bug Fixes
- Fixed tray updates and window toggle behavior
- Fixed duplicate/un-clearable
DatabaseCustomURLlines in freshclam.conf - Hardened preferences save flow against missing widgets
- Improved preferences save authentication UX
- Fixed host-aware config check for clamd availability in Flatpak
- Handle ClamAV runtime warnings and daemon exclusion patterns
- Fixed thread safety, resource cleanup, and integration bugs
CI & Infrastructure
- Switched CI to
uvfor faster builds - Added CVE dependency scanning and Dependabot
- Added CodeQL and dependency review workflows
- Coverage is now opt-in for local
pytestruns (faster default)
Install
Flathub (recommended):
flatpak install flathub io.github.linx_systems.ClamUI
AppImage: Download from the Releases page
From source:
git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamuiv0.1.4 - Internationalization Support
Highlights
This release adds internationalization support, automatic device scanning, and multi-distribution ClamAV detection β making ClamUI usable in more languages, on more distros, and with less manual setup.
A Big Thanks to Marksonthegamer for adding Chinese (simplified) translation and of course anyone who reported issues ( i know, a perfect software should have 0 issues :) but this is a hobby project )
New Features
- Internationalization (i18n) β Full gettext infrastructure with 941 translatable strings across 44 source files. German translation included. Translation validation CI workflow and contributing guide added.
(docs/TRANSLATING.md) - Automatic device scanning β New DeviceMonitor watches for USB drives, external disks, and network mounts, triggering background ClamAV scans automatically. Configurable device type filters, max size limits, scan
delay, battery-skip mode, and auto-quarantine. New "Device Scan" preferences page. - Multi-distro ClamAV config detection β Auto-detects ClamAV configuration paths for Debian/Ubuntu, Fedora/RHEL, and generic installations. Manual override via Detect/Browse buttons in Preferences. Detected paths
persist to settings. - Clean subprocess environment β
get_clean_env()isolates ClamAV subprocess calls from the Python virtual environment, preventing path pollution. - GPG signing β Optional GPG signing for CI build workflows.
Performance
- Non-blocking startup β Moved
clamscan --version, clamd socket checks, freshclam status, and matplotlib imports off the main thread. UI no longer freezes during initialization. - Quarantine pre-initialization β Pre-initializes quarantine database and resources at startup, eliminating the lag when first switching to the quarantine view.
Bug Fixes
- Fixed file manager integration: added missing scan scripts, tri-state detection (installed/partial/none), and proper removal support.
- Fixed packaging: added missing filesystem integrations to Debian and install.sh packages.
- Fixed German translations for database_page and updater modules.
- Fixed test locale handling: force C locale to prevent translated strings from breaking assertions.
Architecture & Refactoring
- App decomposition β Extracted
ClamUIApp's 1400+ line monolith into focused collaborator modules:AppLifecycleManager,NotificationDispatcher,TrayIntegration, andViewCoordinator. - Modular scan view β Decomposed monolithic
scan_view.pyintosrc/ui/scan/package with dedicated coordinator, controller, progress widget, results widget, profile selector, and target selector. - Dependency injection β QuarantineManager now passed via DI rather than created inline, improving testability.
- AppContext β New shared application state container for cross-module coordination.
Testing
- Test coverage improved from 69% to 77%
- Added comprehensive tests for: components view, scan results dialog, statistics view, tray service, window, virustotal results dialog, notification manager, device monitor, ClamAV detection, preferences pages
CI/CD
- Added POTFILES.in consistency check to lint workflow
- Added translation validation CI workflow
- Replaced dpkg-sig verification with ar-based method in Debian build
- Updated dependencies: packaging 26.0, pathspec 1.0.4, numpy 2.4.2, coverage 7.13.4
Full Changelog: v0.1.3...v0.1.4
v0.1.3
Features
- Live scan progress view with real-time file display
- GNOME-style navigation sidebar
- AppImage packaging support
- GPG signing for AppImage and Debian packages
- freshclam SIGUSR1 service integration for database updates
- URLhaus suggested signatures in database settings
- Restore default profiles option
- Debug logging system with preferences page
- Daemon logs export and close behavior improvements
Fixes
- Scan cancel now preserves partial results; fixed stream I/O
- libadwaita 1.0 compatibility for Ubuntu 22.04
- Flatpak daemon scanning and icon cache fixes
- Immutable distro support (/var/home symlinks)
- Debian packaging dependency fixes
- Module import paths in AppImage
Security
- Hardened file permissions (settings, logs, quarantine)
- urllib3 CVE fix (decompression-bomb bypass on redirects)
Documentation
- Comprehensive documentation overhaul
- On-access scanning, preferences, troubleshooting guides
- Getting started guide and scan backends reference
Now the releases are signed with the signing-key.key