Releases: TuxOfValhalla/debian-update
Release list
# 🚀 debian-update v1.0.0 LTS — Official Release
We are proud to announce the official v1.0.0 LTS release of debian-update! This milestone release marks the transition to full production stability, introducing a refined desktop integration, automated Secure Boot & DKMS module verification, and streamlined multi-package management tailored for Debian GNU/Linux (Testing, Sid, and Trixie / Debian 13).
🌟 Key Highlights & What's New
- 🖥️ High-Definition System Tray Applet & Wayland Integration:
- Native Freedesktop StatusNotifierItem applet with full KDE Plasma 6 & Wayland support.
- Multi-resolution rendering with subpixel antialiasing ensures crystal-clear icons across all panel sizes and HiDPI displays.
- Smooth 30 FPS pulse animation (0.6 Hz, 6 cycles) cleanly alerts you to pending updates and resets precisely to full scale.
- ⚙️ Seamless Full-Stack Autostart:
- Standards-compliant XDG autostart (
/etc/xdg/autostart/debian-update-tray.desktop) and user systemd service generator. - Systemd timer (
debian-update-check.timer) automatically enables and starts in background upon installation.
- Standards-compliant XDG autostart (
- 📦 Unified Multi-Ecosystem Package Management:
- APT Integration: Interactive simulation and safe execution conforming to Debian Policy.
- Flatpak Management: Background AppStream metadata refresh ensures all Flathub updates are captured.
- Snap Support: Automatically detects and includes Snap package refreshes when
snapdis present. - Service Health: Integrated
needrestartchecks to safely inspect and restart outdated running daemons.
- 🔐 100% Passive Secure Boot & NVIDIA Verification:
- Passive UEFI sysfs inspection (
/sys/firmware/efi/efivars/) with zero intrusive commands. - Automatically signs new kernels (
sbsign) and DKMS/NVIDIA modules (sign-file/kmodsign) with system MOK keys. - Intelligent signature caching for instantaneous background checks.
- Passive UEFI sysfs inspection (
- 🌐 20 Native Locales (i18n):
- English, Norwegian (Bokmål & Nynorsk), Northern Sami, Danish, Swedish, Finnish, Icelandic, German, French, Spanish, Portuguese, Italian, Dutch, Polish, Russian, Chinese, Japanese, Korean, and Hindi.
- Full alias resolution ensuring fallback to native system locale.
Refinements
debian-update v0.11.5 (RC3) - Refinements & Hardening
Release Candidate 3 (v0.11.5) brings major stability hardening, codebase cleanup, and strict Debian Policy compliance as the final candidate milestone towards the v1.0 LTS release.
🚀 What's New & Changed
1. Robust & Non-Intrusive Secure Boot Engine
- 100% Passive Status Detection: Reads UEFI state directly from Linux sysfs (
/sys/firmware/efi/efivars/), avoiding external binaries or intrusive privileged checks during background polling. - Intelligent Signature Verification: Checks existing module signatures (
modinfo -F signer) and kernel signatures (sbverify). If all modules and kernels are already signed (e.g. by DKMS during APT operations), the signing process completes silently in milliseconds without redundant re-signing. - Strict Standard Key Scoping: Key discovery is strictly restricted to official system paths (
/var/lib/dkms/,/var/lib/shim-signed/mok/), preventing accidental access to foreign disks or external keys. - Zero Overhead on Non-SB Systems: The signing subsystem remains completely silent and inactive on systems without Secure Boot enabled.
2. Predictable Debian APT Workflow
- Eliminated Experimental Held-Back Interventions: Removed custom package solver logic to prevent unintended package removals during Debian Sid/Testing library transitions.
- 1:1 Status Sync: Switched backend background checking from
dist-upgradetoupgradesimulation, ensuring the system tray applet accurately reflects only packages that standardapt upgradewill install without false positives. - Safe, Interactive Execution: Respects standard Debian package management prompts and policy safeguards.
3. Architecture & Codebase Cleanup
- Complete Removal of
deb-getandAppImages: Removed all legacy binaries, background subshells, dependencies, and menu entries to keep the application lean and native. - Debian Policy Compliance: Package metadata in
DEBIAN/controlhas been strictly restructured according to the Debian Policy Manual:Depends:python3:any,python3-pyqt5,python3-pyqt5.qtsvgRecommends:needrestart,flatpak,apt-listbugs,sbsigntoolSuggests:snapd
- Modern Terminal Support: Expanded terminal emulator auto-detection across desktop environments (
ptyxis,kgx,gnome-console,kitty,alacritty,foot,cosmic-term,konsole,xfce4-terminal, etc.).
4. UI & Localization
- Periodic Ko-fi Support Option: Added an optional Ko-fi menu action in the system tray applet that is visible for the first 24 hours after install, and then appears for 24 hours every 30 days.
- Full i18n Synchronization: All 20 supported languages (Nordic, European, Asian) are 100% synchronized with 65 identical translation keys.
- Documentation: Overhauled
README.mdwith sober, clear, and professional technical documentation.
V0.11.2 RC2 fixes to languages and timer
This is the second release candidate. It was originally planned to run to friday august 21, but I rushed it to today since I wanted the timer to not delay boot up and I noticed some languages were not properly synced with english.
Everything should be okay now, and if there are no issues with the app, it will be tagged release V1.0 next friday. If there is stil some bugs etc, there will be an RC3.
Hope you enjoy the app.
debian-update v0.11.1 RC1 - "Wax on, wax off" 🧹✨
This release focuses on source code cleanup, enhanced package manager isolation, and refined safety checks for Debian Testing and Sid environments.
🌟 Key Changes & Polish
-
Codebase Cleanup ("Wax on, wax off"):
- Stripped outdated developer notes and debug chatter across all binaries and scripts.
- Standardized source code section dividers (
# --- [ Section Name ] ---) for cleaner code audits. - Streamlined docstrings to focus purely on functional clarity.
-
Smarter Held-Back Package Management:
- Fixed an issue where standard APT upgrades were mistakenly categorized as held-back packages.
- Implemented an accurate
awk-based parser targeting explicitly kept-back packages andapt-mark holditems. - Pre-upgrade simulation filter automatically skips held packages if installing them would trigger removals or unmet dependencies.
- Prompts now default to
[Y/n]for verified safe packages.
-
Targeted
deb-getUpgrades:- Prevented
deb-getfrom triggering full system APT upgrades in the background. deb-getnow quietly checks its index and target-installs only third-party packages that have active updates.- Added full localization support (
PROMPT_UPGRADE_DEBGET) across all 15 supported languages.
- Prevented
-
System Safety:
- Preserved standard
apt upgraderoutines to protect core desktop environments (such as KDE Plasma on Debian Sid) from accidental removal. - Maintained seamless, automated NVIDIA Flatpak GL runtime background synchronization.
- Preserved standard
Full Changelog: v0.10.1...v0.11.1
v0.10.1 Shield Wall
debian-update v0.10.1 "Shield Wall" 🛡️
Major feature update introducing full 20-language internationalization, CPU-light NVIDIA GL runtime synchronization, passwordless Polkit integration, and Plasma 6/Wayland desktop tray stabilization.
🌐 1. Full Internationalization (i18n Engine)
*20 Languages Supported: Complete translation coverage across all 93 UI keys for English, Norwegian, Danish, Portuguese, Polish, Italian, German, French, Spanish, Dutch, Swedish, Finnish, Czech, Romanian, Hungarian, Turkish, Ukrainian, Russian, Japanese, and Simplified Chinese.
*Dynamic System & Manual Override: Auto-detects system locale or allows manual persistent language selection via the system tray menu.
🎮 2. CPU-Light NVIDIA Detection & Flatpak GL Sync
- 0 ms CPU Overhead: Hardware detection directly inspects
/sys/module/nvidia/versionwithout spawning heavy CLI commands. - Flatpak Verification: Verifies matching
GL.nvidiaruntimes against active kernel modules before triggering sync attempts, eliminating false positives. - State Persistence: Remembers synced versions in
/var/cache/debian-update/nvidia_state.json.
🔑 3. Polkit Integration & Desktop Safety
- Plasma 6 / Wayland Stability: Context menu lock prevents
plasmashellsegmentation faults caused by background menu redraws while browsing language submenus. - Animated Tray Overlay: Real-time pulse animation and warning badges for system action required.
💻 4. Held-Back Dry-Run Filter Engine (CLI)
- Safe Upgrade Inspection: Automatic simulation of held-back APT packages to prevent accidental removal of system dependencies.
v0.9.4 Tower of Babel
🌍 Release Highlights - v0.9.4 'Tower of Babel'
✨ Major Features
-
Full i18n Framework:** Built-in, lightweight JSON-based internationalization module shared between PyQt5 system tray and Bash CLI.
-
16 Supported Languages:**
- Nordic:** Norwegian Bokmål (`nb`), Norwegian Nynorsk (`nn`), North Sami (`se`), Swedish (`sv`), Danish (`da`), Finnish (`fi`), Icelandic (`is`).
- European:** German (`de`), French (`fr`), Spanish (`es`), Portuguese (`pt`), Dutch (`nl`).
- Global:** Russian (`ru`), Chinese (`zh`), Japanese (`ja`), Korean (`ko`), Hindi (`hi`).
-
Manual Language Switcher:** Right-click tray menu toggle to override system `$LANG`. Selection persists across sessions via `~/.config/debian-update/config.json`.
🛠️ Fixes & Stability
- Fixed Plasma Shell `SIGSEGV` crash by isolating menu re-construction from active mouse click events.
- Full Unicode / UTF-8 character support across all terminal layouts and tray tooltips."
v0.8.17 oh, snap!
debian-update v0.8.17 — "Oh Snap!" 🚀
Optional Snap Integration
- Parallel Background Checks: Integrated non-blocking
snap refresh --listchecks directly into the background systemd service. - Full Ecosystem Visibility: Live Snap update counts feed seamlessly into the JSON status cache, system tray applet, and CLI overview.
- Zero Forced Bloat:
snapdis defined as aSuggestsdependency to keep system installations completely optional and clean.
Unified Upgrade Pipeline
- Standardized Sequence: Synchronized execution across CLI, background worker, and system tray menu:
- APT Packages
- Flatpak Applications
- Snap Packages
- AppImages
- Third-Party .deb Packages (
deb-get)
Dynamic Display & UI Polish
- Conditional UI Execution: Uninstalled package managers are automatically detected and omitted from CLI steps and tray submenus.
Codebase Polish
- Standardized Source: Cleaned up code structure and commentary using standardized English block separators.
This patch release marks the status of the app as feature complete, and future patches will have performance, bug fixes and under the hood improvements in focus.
The path to version 1.0.0 has support for more languages in the works, and will probably be released within a couple of weeks. There will probably be a couple more patches before 1.0.0 but no major changes are planned from this point on.
V0.7.6 - More under the hood impovements and optimizations
🚀 What's Changed in v0.7.6
⚡ Performance & Parallelization
- Parallel Background Checks: APT, deb-get, Flatpak, and AppImage checks now execute concurrently in subshells. Total check runtime greatly reduced
- Disk I/O Optimization: Replaced nested directory loops with a depth-limited
findcommand (-maxdepth 3) for AppImage detection, significantly reducing disk read activity. - Non-blocking Execution:
build_deb.shand CLI trigger background checks asynchronously (--no-block), preventing terminal hangs during installation or upgrades.
🛠️ System Tray & Reliability
- Dynamic Menu Refresh: Connected Qt's
aboutToShowsignal directly to UI updates, ensuring "Time since last check" and update counts refresh instantly when clicking the tray icon. - Epoch-Based Time Tracking: Switched time calculations to raw Unix timestamps (
last_check_ts) instatus.json, eliminating timezone parsing edge cases and frozen "Just now" states.
🧹 Codebase Refactoring & Audit Readiness
- Purged Code Bloat: Removed redundant helper functions, simplified shell constructs, and consolidated build directory creation.
v0.6.7 - under the hood improvements
🚀 What's Changed in v0.6.7
⚡ CLI & User Flow
- Prompt-First Execution: Available updates are presented immediately. If cancelled (
N), the tool exits cleanly (exit 0) without prompting forsudocredentials. - UI cleanup
- Reboot Detection: Automatically detects
/run/reboot-requiredupon upgrade completion and warns the user if core libraries (e.g.,glibc) or kernel modules were updated.
🛡️ Backend & Reliability
- Atomic Cache Writing:
check_backend.shnow uses atomic file replacements (os.replace) to eliminate race conditions when reading status cache from the system tray applet. - Restored Timestamp: Re-added
last_checkUTC timestamps for precise "time since check" status reporting in the tray menu. - Input Validation: Improved menu handling in
debian-update-debgetto handle empty inputs gracefully.
📦 Packaging & Standards
- Debian Policy § 10.9 Compliance: Added
--root-owner-grouptodpkg-debinbuild_deb.shfor rootless, warning-free package creation.
debian-update v0.5.8 — Plasma Shell Crash Hotfix
🚨 debian-update v0.5.8 — Hotfix Release: Plasma Shell Crash Prevention
This urgent hotfix addresses a critical race condition that could cause KDE Plasma (plasmashell) to crash with a Segmentation Fault (SIGSEGV) when interacting with the system tray context menu.
🐛 The Issue & Root Cause
When the background update checker completed a scan and updated status.json, debian-update-tray immediately triggered self.menu.clear() to rebuild the QMenu actions.
If a user had the tray context menu or any of its submenus actively open on the desktop at that exact moment, clearing the active QAction objects destroyed the underlying DBus menu instances. When KDE Plasma's DBusMenuImporter and QtQml tried to handle mouse hover or timer events on those deleted objects, it referenced invalid memory addresses, resulting in an instant plasmashell crash.
🛠️ The Fix
- Visible Menu Protection: Added
if self.menu.isVisible(): returnprior to invokingself.menu.clear()inlib/debian-update-tray. - Deferred UI Refresh: If the context menu is currently open on screen, menu reconstruction is safely bypassed until the menu is closed, completely eliminating the asynchronous race condition and keeping Plasma rock solid.