Btrfs Assistant 1.0 is nearly here

The changes for Btrfs Assistant 1.5 are now available for testing with btrfs-assistant-git.

In addition to a host of backend source-code improvements some of the notable visible features are the ability to open multiple snapshot browse windows, a new filter box to filter subvolumes and support for systemd-free distros.

Here is the full changelog:

  • Use libbtrfsutil instead of calling the btrfs command wherever possible
  • Allow opening multiple snapshot browse dialogs at the same time(Contributed by Adam Sowa)
  • Add the ability to filter subvolumes by name(Contributed by Adam Sowa)
  • Ensure the application works with or without systemd present
  • Numerous code quality improvements(Contributed by Adam Sowa)
  • Improve layout of the BtrfsMaintencance tab when resized
  • Move temporary mountpoint for filesystems to /run
  • Unmount filesystems mounted by the application on exit
  • Change the naming of subvolume backups to support nested subvolumes
  • Ensured combo boxes retain their selections when refreshed
  • Excluded snapshot 0 from Snapper tab since it isn't a snapshot
  • Use an xml parser to parse Snapper xml files
  • Added a warning when restoring if you are mounting by subvolid in /etc/fstab
  • Fixed the handling of paths with whitespace in the Btrfs Maintenance tab
  • Reorganized the source code to make it more manageable(Contributed by Austin Horstman)
  • Lowered required C++ standard to C++ 17
11 Likes

╰─λ pacman -Q btrfs-assistant-git
btrfs-assistant-git 1.4.r59.g11a78f7-1

╰─λ btrfs-assistant --version
Btrfs Assistant 1.5


Thank You @dalto

EDIT: Tested on MX-Linux systemd-free complete. :100:

7 Likes

Loving the voluntary QA work, man. Thanks. :slight_smile:

3 Likes

This is so weird, I was on the Endeavour forum and was asking about the versions and such, but you just showed without me asking on this one how to see if I was on the right version. To make things even more confusing is if you try to install btrfs-assistant-git via the aur it shows up as 1.1.r21 until after it is installed then pacman shows it as 1.4.r59.

1 Like

It doesn’t retain the selected snapshot. It maintains the selections in the combo boxes which are also called dropdown boxes. i.e. The boxes that let you select the config/target for snapper/snapper config.

It is really incredible that you are going this far to test. Thanks again for the help!

4 Likes

Got it! Thanks. :100: Tested Selection maintained.

No problem!

5 Likes

I have btrfs-assistant installed and running on MX-Linux.
Done: I will test now and report back.
:100: Verified: Works on systemd-free debian-based MX-Linux

I did want to pass along the fact that I had to install the packages libbtrfs-dev & libbtrfs0 & libbtrfsutil-dev to succesfully compile. Of course since you are now using libbtrfsutil. Took me a minute to deal with what packages I needed. :wink:

FYI: Installing libbtrfs-dev pulls in libbtrfs0 as a dep.

Done: I will triple check to see what deps those packages pull in as well. I will let you know.

The 3 additional packages needed to compile btrfs-assistant on debian based distros are exactly these:

  1. libbtrfs-dev

  2. libbtrfs0 (a dep that gets installed with libbtrfs-dev)

  3. libbtrfsutil-dev

So the Installation instructions on the gitlab page would need updating to reflect this.

Gitlab install section for Debian/Ubuntu should look like so:


Debian/Ubuntu

  1. Install the prerequisites: sudo apt install git cmake qtbase5-dev qttools5-dev fonts-noto libqt5svg5 libqt5core5a g++ libbtrfs-dev libbtrfsutil-dev

This should do the trick.

Thanks!

EDIT: Added a third package → “libbtrfsutil-dev” for prerequisites.
EDIT: Reported back here testing complete on systemd-free system. :100:

6 Likes

Compiled and tested on MX-Linux (systemd-free) complete.

:100: Verified:: @ / root restored several snapshots complete

:100: Verified:: @home restored several snapshots complete

Everything looks A-OK. :ok_hand:

Have a good one!

4 Likes

3 posts were merged into an existing topic: Off Topic Chit Chat - (Silliness factor 5)

This is very helpful, thanks! I will update the readme as part of the release process.

7 Likes

Looks like we should add libbtrfsutil and btrfs-progs-devel for fedora.

2 Likes

The version 1.6 changes were just merged to main so anyone using btrfs-assistant-git should be getting them shortly.

Here is the full changelog:

  • Add a context menu to the subvolume page that sets read-only status, deletes subvolumes and creates new snapshots(Contributed by Adam Sowa)
  • Add the ability to delete multiple subvolumes
  • The subvolume backups made by Btrfs Assistant can now be restored
  • Add an option to add a name to the subvolume backups(Contributed by Zesko)
  • Add more detail to the subvolume tab table(Contributed by Adam Sowa)
  • The file browser is now sortable and the columns can be manually resized(Contributed by Adam Sowa)
  • Add support for deleting Snapper snapshots from the subvolume tab
  • Fix an issue where deleted Snapper configs were not being removed from UI(Contributed by Austin Horstman)
  • Fix an issue where the snapshot grid was not being refreshed properly
  • Fix issue where Snapper file reading was stopping on unprocessed elements
  • Remove some of the nested frames/boxes from the UI
13 Likes

Right now :wink: looks like another bunch of great features. Btrfs-assistant is really going places :penguin:

9 Likes

Just curious, but in regards to the file browser, why not open using the installed file browser like dolphin which already has these features like organisation etc?

  • The snapshots are often only accessible by root and there is no easy way to know which file managers are safe to run as root and which not.
  • A file manager wouldn’t have the ability to diff and restore files across snapshots.
8 Likes

Reasonable, I like that tool.

Great work, really! :+1:t2:

3 Likes

OMG wow nice

1 Like

On Sway, I am still unable to launch BTRFS Assistant from wofi. I need to use sudo -E btrfs-assistant-bin. @dalto is there any environment variable I need to set?

It was working on sway but no longer is.

The problem is that none of the people who contribute to btrfs assistant use sway or any wlroots-based environment.

I am glad to change btrfs assistant to better support sway but a sway user will need to determine what specific environment variables need to be set. I am not comfortable copying the entire user environment to the root user.

4 Likes

This came up earlier in the thread (back in March: Btrfs Assistant 1.0 is nearly here - #28 by BluishHumility). I realize the application has gone through a number of significant changes since then so I am not sure if this discovery is still relevant or not, but if it is valuable I did just set it up again and it is still working the same.

With btrfs-assistant-git installed, sudo btrfs-assistant fails like so:

[⚡] × sudo btrfs-assistant
Authorization required, but no authorization protocol specified

qt.qpa.xcb: could not connect to display :0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.

/usr/bin/btrfs-assistant: line 47:  7534 Aborted                 (core dumped) btrfs-assistant-bin ${params}

If I add these four environment variables before the call to btrfs-assistant-bin in /usr/bin/btrfs-assistant, sudo btrfs-assistant launches normally:

export XDG_RUNTIME_DIR=/run/user/1000
export QT_QPA_PLATFORMTHEME=qt5ct
export QT_QPA_PLATFORM=wayland
export WAYLAND_DISPLAY=wayland-1

If I remove or comment out any one of the lines, it goes back to failing except for export QT_QPA_PLATFORMTHEME=qt5ct--it still works fine without the line, just without taking the theme:

2 Likes