Skip to content

qSnapper 1.3.1

Choose a tag to compare

@github-actions github-actions released this 13 Apr 05:37
· 11 commits to master since this release

Updated to version 1.3.1

Replace external command invocations with library/API calls

Replace all QProcess-based external command calls (except installation-helper) with direct library, POSIX,
and D-Bus calls, eliminating runtime dependencies on system utilities.

Simple replacements:

  • /usr/bin/snapper (list-configs): Snapper::getConfigs("/")
  • /usr/sbin/btrfs: libbtrfsutil
  • /bin/mkdir: std::filesystem::create_directories()
  • /bin/stat + /bin/chmod: POSIX lstat() + chmod()
  • /bin/chown: POSIX chown()

File copy/remove:

  • /bin/rm -rf: std::filesystem::remove_all()
  • /bin/cp: custom copyRegularFile() (FICLONE + sendfile fallback) and copySymlink(),
    preserving ownership and timestamps

D-Bus method migration:

  • Add IsConfigured(), WriteSnapperConfig(), SetupQuota() on service side
  • Migrate client-side snapper commands to D-Bus calls
  • Add D-Bus XML interface and Polkit policy for configure action

In-process diff:

  • /usr/bin/diff -u: Myers diff algorithm with unified output format
  • Replace #include with and

Full Changelog: v1.3.0...v1.3.1