Skip to content

Releases: linx-systems/clamui

ClamUI v0.4.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 21:49

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.deb host 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-release to 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.ClamUI

AppImage: 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 clamui

Contributors

Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.

ClamUI v0.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 14:50

Privileged ClamAV configuration improvements, Flatpak host-config fixes, CLI scan reliability, and security hardening.

Highlights

Configuration & Flatpak

  • Privileged helper installer β€” clamui install-privileged-helper installs the clamui-apply-preferences wrapper 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-1 for 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.ClamUI

AppImage: 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 clamui

Contributors

Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.

ClamUI v0.2.0

Choose a tag to compare

@Pdzly Pdzly released this 28 May 19:31

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 produces SKIPPED β€” never FAIL/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.ClamUI

AppImage: 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 clamui

Contributors

Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.

ClamUI v0.1.8

Choose a tag to compare

@Pdzly Pdzly released this 07 May 19:03

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_NOFOLLOW source validation, destination allowlisting, and atomic config installs for clamui-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 clamdscan receives 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, and more-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.po and po/LINGUAS registration

Install

Flathub (recommended):

flatpak install flathub io.github.linx_systems.ClamUI

AppImage: 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 clamui

Contributors

Thanks to everyone who contributed code, translations, and bug reports for this release. See the full commit log for details.

ClamUI v0.1.7

Choose a tag to compare

@Pdzly Pdzly released this 22 Apr 11:51

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 LANG setting

Security Hardening

  • Addressed OWASP audit findings across scanner, updater, and logging paths
  • Path-validation hardening (ValueError on 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
  • StartupWMClass added to desktop files so window managers match windows to the right application
  • Deferred panel data loading and shared LogManager across views for faster startup
  • Config-save path repairs and Flatpak write support

Install

Flathub (recommended):

flatpak install flathub io.github.linx_systems.ClamUI

AppImage: 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 clamui

Contributors

Thanks to everyone who contributed code, translations, and bug reports for this release. See
the full commit log for details.

ClamUI v0.1.6

Choose a tag to compare

@Pdzly Pdzly released this 03 Apr 10:46

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 --fdpass was used
  • Corrected clamd streaming and size-limit unit handling
  • Restored clamdscan detection 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, and more-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.ClamUI

GitHub Release: Download from the Releases page

From source:

git clone https://github.com/linx-systems/clamui.git
cd clamui && uv sync && uv run clamui

ClamUI v0.1.5b

Choose a tag to compare

@Pdzly Pdzly released this 23 Mar 07:53

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.Bus permission
  • Fix: Forward CLI args through local-run.sh
  • Fix: Add compat.py to 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

Choose a tag to compare

@Pdzly Pdzly released this 16 Mar 21:22

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 DatabaseCustomURL lines 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 uv for faster builds
  • Added CVE dependency scanning and Dependabot
  • Added CodeQL and dependency review workflows
  • Coverage is now opt-in for local pytest runs (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 clamui

v0.1.4 - Internationalization Support

Choose a tag to compare

@Pdzly Pdzly released this 26 Feb 16:19

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, and ViewCoordinator.
  • Modular scan view β€” Decomposed monolithic scan_view.py into src/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

Choose a tag to compare

@Pdzly Pdzly released this 07 Feb 17:08

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