KDE-Linux: .erofs image comparison script

Arguably a normal user of the new KDE Linux distro shouldn’t care about the changes that occur behind the scenes when they update to a new image. But for those that are interested, as far as I know there is no equivalent to “rpm-ostree db diff” for the .erofs image files that KDE Linux uses.

I created a script (Google Drive Link: https://drive.google.com/file/d/1oiIFAQZRF7YxrMIY_phgb-vUvHaHNVaV/view?usp=sharing) that outputs a (very verbose!) report on the differences of your current image and the last image. Report output example can be seen here: https://drive.google.com/file/d/1E7SrltGqece-y8zCh3MyrJfXMtDt9Kqj/view?usp=sharing This is just a proof of concept. I’m sure it could be improved and simplified.

For a more concise summary, you can paste the erofs-comparison-report-20250903-055939.txt output directly into Anthropic Claude and get a summary like:

This is an EROFS image comparison report showing changes between two KDE Linux system images from September 2nd and 3rd, 2025. Here’s a summary of the key differences:

Major Changes

System Updates: This appears to be a routine system update with extensive modifications to core system components, particularly systemd and KDE Plasma desktop environment files.

Package Changes: No packages were added or removed, but there were significant updates to existing software:

  • HarfBuzz text shaping library updated from version 0.61144.0 to 0.61145.0

  • SVT-AV1 encoder updated from 3.1.0 to 3.1.2

  • SystemD core libraries updated (new build versions)

File System Impact

Total Changes: 483 differences detected across the filesystem

  • Binaries: 100 system binaries modified (no additions/removals)

  • Libraries: 567 library files modified, with 12 additions and 8 removals

  • Configuration: 7 config files modified

  • Variable data: 9 files modified (mostly font caches)

Key Areas Updated

  1. SystemD Infrastructure: Extensive updates to systemd binaries, generators, and services

  2. KDE Plasma Desktop: All major KDE components updated (Dolphin, Plasma Shell, KWin, etc.)

  3. Graphics Support: Updates to switcheroo-control for GPU switching and new discrete GPU detection rules

  4. Certificate Updates: SSL/TLS certificate stores refreshed

System Stability

The changes appear to be routine maintenance updates rather than major architectural changes. The image size decreased slightly by 88KB, suggesting optimization or cleanup. No critical system packages were removed, indicating this should be a stable update.

This represents a typical incremental system update for an immutable Linux distribution, focusing on security patches, bug fixes, and minor feature enhancements.

1 Like

This will be my last entry on this topic, but I’ve modified the script to directly feed it to Gemini API (provide your own key): https://drive.google.com/file/d/1aNoOaoCZIPrj66MFDNvywvHuLeS6EpHX/view?usp=sharing

I’m sure my prompt and surveilled directories could be improved, but current (very positive :slight_smile: ) produced AI summary .md file:

EROFS System Changes - Enhanced AI Analysis Summary

Generated: Thu Sep 4 07:54:05 AM EDT 2025
AI Backend: gemini
Analysis Context: Up to 300 files per category


This report provides a detailed snapshot of a significant daily update on an immutable Arch Linux system utilizing the KDE Plasma desktop environment. The comparison between kde-linux_202509031309.erofs and kde-linux_202509040613.erofs reveals a comprehensive set of changes, characteristic of a rolling release distribution.

1. System Updates Overview

The analysis indicates a comprehensive system update that spans multiple critical components, rather than a single type of update. This is typical for a daily snapshot of an Arch Linux rolling release.

The update encompasses:

  • Core System Components: Significant updates to systemd (binaries and libraries) and QEMU (virtualization binaries).
  • KDE Plasma Desktop Environment: Extensive updates to KDE Frameworks (KF6) and various KDE applications (e.g., Ark, Dolphin, Elisa, KWin, Plasma Shell, Spectacle, KDE Connect).
  • Bootloader/Kernel: A new UEFI boot entry, indicating a kernel or bootloader update.
  • System Libraries: Version bumps for critical libraries such as FreeRDP, WinPR, TCMalloc, and Profiler.
  • Flatpak Applications: Substantial updates to specific Flatpak applications (org.kde.ark, org.kde.elisa), including their dependencies and integration with the desktop environment.
  • System Configuration & Caches: Routine updates to system configuration files and regeneration of various caches (font, library, software catalog).

The short timeframe between images (approximately 17 hours) strongly suggests that this is a regular daily system refresh for an Arch Linux installation, ensuring users are always on the latest stable software.

2. Package Changes Analysis

While the “Arch Packages (License Method)” section reports no explicit package additions or removals, the file-level changes clearly demonstrate numerous version updates and rebuilds of existing packages, which is the standard behavior for a rolling release distribution like Arch Linux.

Specific Version Bumps and Refactorings:

  • Systemd:

    • Version Change: Libraries like libsystemd-core and libsystemd-shared show a change from r83435 to r83442 within the 258.rc3 series. This indicates a patch or minor update to systemd, likely incorporating recent bug fixes or small feature enhancements.
    • Impact: Ensures the core system management, boot process, and service control are up-to-date.
  • FreeRDP & WinPR:

    • Version Change: Libraries such as libfreerdp3.so.3.17.0 are replaced by libfreerdp3.so.3.17.1, and similarly for WinPR libraries. This is a clear patch release update (3.17.0 to 3.17.1).
    • Impact: Improves remote desktop protocol client/server functionality, potentially addressing security vulnerabilities or enhancing performance.
  • TCMalloc & Profiler:

    • Version Change: libprofiler.so.0.5.15 is updated to libprofiler.so.0.5.17, and libtcmalloc_and_profiler.so.4.7.1 to libtcmalloc_and_profiler.so.4.7.3. These are minor version or patch updates.
    • Impact: Provides updated memory allocation and profiling capabilities, which can lead to performance improvements or bug fixes in applications that utilize these libraries.
  • KDE Frameworks 6 (KF6):

    • Version Change: Numerous libKF6...so.6.18.0 files are modified. While the major.minor.patch version 6.18.0 remains consistent, the file modifications (and changes in cmake configuration files) indicate a rebuild or a very minor internal update within the 6.18.0 release. This is common in rolling releases where components are frequently recompiled against updated dependencies.
    • Impact: Affects the stability, performance, and feature set of the entire KDE Plasma desktop and its native applications.
  • QEMU:

    • Version Change: qemu-system-i386 and qemu-system-x86_64 binaries show significant size increases (+1.5M, +1.6M). This strongly suggests a major or minor version update to QEMU, bringing new features, bug fixes, or performance enhancements to virtualization capabilities.
  • Flatpak Application Updates:

    • org.kde.ark: The Flatpak version of Ark received an update, indicated by modified binaries and metadata.
    • org.kde.elisa: The Flatpak version of Elisa received a substantial update, including its core binary, mdb_* tools, and numerous Kirigami Addons QML files and plugins. The removal of many VLC plugin .la files suggests a refactoring of how VLC components are packaged within the Elisa Flatpak, possibly a cleanup or a change in the build system.
    • Flatpak KCM Refactoring: The removal of kcm_flatpak.so and kcm_flatpak.desktop and their replacement with kcm_app-permissions.so and kcm_app-permissions.desktop indicates a renaming and potential refactoring of the Flatpak integration module within KDE’s System Settings. This suggests an effort to generalize or improve application permission management.

3. File System Structure Changes

The immutable nature of the Arch Linux system, likely leveraging technologies like OSTree or similar content-addressable storage, means that updates involve replacing entire filesystem images rather than modifying files in place. The report highlights this through the ADDED and REMOVED entries for content-hashed files (e.g., 660ef69068209c6d0c0cca35d27e7f3d6d48d494a8f5ea121f71f9cc8959063a).

Key Changes and Impact:

  • /var (Variable Data):

    • Changes: Modifications to /var/cache/fontconfig, /var/cache/ldconfig, and /var/cache/swcatalog.
    • Impact: These are routine cache regenerations triggered by system library, font, or package metadata updates. They are expected and do not represent structural issues.
  • /etc/ (Configuration Files):

    • Changes: Modifications to os-release, brlapi.key, ca-certificates/extracted/java-cacerts.jks, nvme/hostid, nvme/hostnqn, shadow, shadow-, and ssl/certs/java/cacerts.
    • Impact: Most are minor updates to system-level configurations or certificate stores. The shadow and shadow- files showing a +1 byte change is unusual for an immutable system but could be a very minor template update or a subtle change in the shadow utilities themselves. It’s unlikely to be a user-initiated change given the immutable context.
  • /usr (User Binaries and Libraries):

    • Changes: Extensive modifications in /usr/bin (113 files) and /usr/lib//usr/lib64 (624 modified, 28 added, 21 removed in each). This includes the library version bumps and the Flatpak KCM refactoring discussed above.
    • Impact: This is the core of the system update, reflecting new versions of binaries and libraries for systemd, KDE, QEMU, FreeRDP, and other components. The replacement of old library versions with new ones is a standard and healthy update pattern.
  • /run: Not explicitly detailed in the report, as /run is a volatile filesystem typically not part of the immutable EROFS image. Any changes here would be runtime-specific.

  • /factory (Factory Data):

    • Changes: This directory shows changes that largely mirror the /boot, /etc, and /var/lib/flatpak directories. It includes new .efi boot entries, mirrored /etc changes, and extensive additions/removals of content-hashed files within /factory/var/lib/flatpak.
    • Impact: In an immutable system, /factory often represents the base or “factory reset” state, or a staging area for the next atomic update. The mirroring of changes here confirms that the entire base image is being updated, including boot components and Flatpak application layers. The hexadecimal-named files are content objects managed by the underlying immutable system (e.g., OSTree), indicating efficient storage and deployment of changes.

4. Key Areas Updated and Their Implications

  1. KDE Plasma Desktop & Applications:

    • Significance: Highest impact on user experience. Updates to KDE Frameworks (KF6), KWin, Plasma Shell, Dolphin, Spectacle, and KDE Connect mean users will experience the latest desktop features, performance optimizations, bug fixes, and potentially new visual elements or improved stability.
    • Implications: A smoother, more feature-rich, and potentially more secure desktop environment.
  2. Core System Utilities (systemd, QEMU):

    • Significance: Critical for system stability, security, and functionality.
    • Implications: Updated systemd ensures robust system initialization, service management, and logging. The significant QEMU update provides better virtualization capabilities, potentially supporting newer hardware or offering performance gains for virtual machines.
  3. Bootloader/Kernel:

    • Significance: Fundamental for system operation.
    • Implications: A new kernel or bootloader version can bring improved hardware support, critical security patches, and performance enhancements at the lowest level of the system.
  4. Flatpak Ecosystem Integration and Applications:

    • Significance: Enhances application availability and management.
    • Implications: The refactoring of kcm_flatpak to kcm_app-permissions suggests a more unified and potentially more powerful way to manage application permissions within KDE, regardless of the packaging format. Updates to Flatpak applications like Ark and Elisa ensure users have the latest versions with bug fixes and new features, leveraging the sandboxing benefits of Flatpak.

5. Overall System Assessment

This EROFS comparison report paints a clear picture of a robust and actively maintained immutable Arch Linux system. The daily update cycle, coupled with the breadth and depth of changes, demonstrates a commitment to providing users with the absolute latest software.

The update is significant due to its system-wide nature, touching core components, the entire desktop environment, and key applications. It’s not just a minor patch but a comprehensive refresh. The immutable architecture, indicated by the EROFS filesystem and the pattern of content-hashed file changes (especially in /factory), ensures that these frequent and extensive updates are applied atomically and reliably, minimizing the risk of system breakage.

The net decrease in image size (-1.9M) despite numerous updates suggests efficient package management, possibly through optimized builds, removal of deprecated components, or effective use of content-addressable storage to deduplicate data.

In conclusion, this report reflects a healthy, cutting-edge, and stable system for users who desire the latest software and benefit from the reliability and consistency offered by an immutable operating system design.

This looks like a really useful piece of technology. Minus the AI summary (“just the facts, m’aam”), I think it could be used as the basis for a robust solution for Update details in Discover are just a generic description of the distro (#164) · Issues · KDE Linux / KDE Linux · GitLab.

1 Like