zhangyuannie / butter

Btrfs snapshot management GUI frontend
GNU General Public License v3.0
131 stars 5 forks source link

flatpak support #8

Open allaeddineomc opened 2 years ago

allaeddineomc commented 2 years ago

Describe the problem your feature would solve

this app is great but its not available on all distros (including the one i use , fedora silverblue) and flatpak will be the quickest way to get it to the hands of users

Describe the solution you'd like

package the app as a flatpak and distrobute on flathub , as far as i know system apps like this can be packaged as flatpaks but might have to not use a sandbox

Describe alternatives you've considered

maybe an appimage is a good alternative but keeping an appimage updated will require a built in update mechanism which might be harder to implement than supporting flatpak

zhangyuannie commented 2 years ago

I am not against it. However, I'm not sure how many hacks are needed to make it work given that it needs to interact with the kernel, the filesystem and systemd-timer. None of them can be done in a sandbox currently.

I took a quick glance and apps like Gnome Disks and GParted are not packaged as flatpak either.

For Silverblue, you can either layer it or compile it yourself with DESTDIR=/opt for now.

allaeddineomc commented 2 years ago

i don't know much about how to skip the sandbox but there is a terminal app called blackbox that is publushed as a flatpak and runs without a sandbox and have no problem accessing sudo and systemctl commands so i think checking how they do it will be very helpful

https://gitlab.gnome.org/raggesilver/blackbox

zhangyuannie commented 2 years ago

They use flatpak-spawn which let them run arbitrary command on the host. However, Butter mostly uses syscalls (via libraries) directly instead of executing shell commands. So if we want to go this way, we would need to put Butter or at the very least some part of Butter on the host directly.

allaeddineomc commented 2 years ago

this is very possible , you can use $HOME/.var/app/zhangyuannie/butter/ directory to keep copies of the files and this won't require additional permissions , otherwise you can keep all the program files inside the flatpak and instead of accessing them normally access them from /var/lib/flatpak/app/zhangyuannie/butter/.... on the host , in thiis case you will need the system files access permission

deusnovus commented 1 year ago

Maybe a popup screen on initial startup letting you know how to set filesystem access via Flatseal before proceeding to the app? I obviously much prefer using flatpaks nowadays, but I'd honestly be perfectly fine with an RPM package on GNOME Software, like btrfs-assistant.

Batwam commented 4 weeks ago

deb file for Debian bases distros would be very nice too, or even a snap...