Installing Snapd on Void Linux?

Hello!

I made an account here to ask about the title. For a few years now I’ve been looking for the most trimmed down and streamlined OS to use on a daily basis. I’ve come down to Pop_OS and Void Linux. Where pop is just Ubuntu, Void is the most BSD linux I have ever seen wuth a package manager that imitates PKG, many design narratives from OpenBSD, and the devs being from OpenBSD and NetBSD respectively.

But when I went to go see about Flatpak I realized that theres less apps on flatpak than on snap. Looking into it a little more, the management system musl (theres arother one but I forget the name of it) that runs in the system doesn’t appear to play nice with snapd. Someone at Void is playing with it off and on, but I was wondering if anyone here was playing with the idea as well.

Its a niche OS I know, but might as well ask what the process would be at the source rather than at other forums.

Thanks!

-Dom

1 Like

Thanks for enquiring about snapd on Void. It would certainly be awesome for someone to pick that up. It would probably need someone from the Void Linux community, or a core developer who could help get this moving forward. If you can find someone over there who is willing to spend a bit of time to bring snaps to Void, we can certainly try to help.

2 Likes

Void Linux doesn’t use systemd (they use runit as init). And because it uses Musl instead of the GNU C Library, there’s a bunch of weird ABI issues.

At this time, systemd does not build on musl because the coverage of the Linux standard C APIs is incomplete w.r.t. the standard environment. There are some patches to work around this for systemd, and similarly musl’s API coverage is slowly growing.

snapd leverages a lot of systemd functionality to make the experience smooth and sane. Without it, a lot of things get a lot harder. Perhaps at some point, systemd will be available in Void in a “deputy init” style like on Ubuntu 14.04, which would allow it to work.

I have been using Void Linux since 2014, it’s a fantastic system that I contributed packages to myself (although rather simple packages). The Void community is generally keen on keeping things minimal when it comes to packaging and try not to package things that are either written poorly if we can help it or something that is going to be a nightmare to maintain. I should disclaim that I am by no means a spokesman for the distro but I have seen some conversations in the community over the years.

One of the packages Void used to support long ago was SystemD. You used to be able to switch out the init systems simply by installing a package and editing a few files if I remember correctly. That has since been unsupported due to the growing pain that it was to maintain thus Runit is the only init system Void ships with and officially maintains. From what I can tell at this point, AppArmor is not packaged and would require packaging before Snapd could see the light of day on Void. Currently AppArmor has issues with Musl and the Void Linux community tries to have all packages cross-compile and work across the board.

Workarounds could be done possibly to wrap systemctl commands up and make things work provided we get to a point where AppArmor can work on the various system builds like musl. With that in mind, it will be a long time (if ever) that Snapd makes it into Void (or any other systems what don’t use Systemd or have access to AppArmor).

Personally I think it would be ldeal for Canonical to find a way to make Snapd more system agnostic in order to provide the best chance for those seeking packages to get what they need. In the end, it comes down to the end user and in my opinion it’s important to reach as many users as possible using all reasonable means necessary.

If anyone on the snapcraft team would like to keep track of the discussion and contribute any helpful knowledge you can find the issue related to snapd on the void-packages github page.

@popey I listen to almost every episode of Ubuntu podcast as well as Linux Unplugged. Thank you for listening to community and participating in these types of dicussions. I don’t know how you can help in this case but I thank you for making the attempt.

1 Like

Just for the record, it would not be a huge amount of work to add another backend besides systemd for the things we do with systemd; things are mostly split out into its own package. There are probably assumptions we’ve overlooked, as always when doing a generic-but-only-one-backend thing, so it’s probably not going to merely a matter of writing that backend, but still, not a huge amount of work. So if you’re fluent in Go, don’t mind our fastidious review process, and know about both systemd and runit, you can probably do it in about a month or so (or a week, if it’s your day job :slight_smile: ).

3 Likes

it would not be a huge amount of work to add another backend besides systemd

Well that is very promising!

So if you’re fluent in Go, don’t mind our fastidious review process, and know about both systemd and runit, you can probably do it in about a month or so

I’ll see if I can get someone who has more experience with this in the Void community to take a look. I believe the Void engineers just recently remade parts (or whole?) of their build system setup using a lot of Go and from what i can tell they are huge fans of Go so that’s also a plus.

I hope the two projects (Void Linux and Ubuntu) will work together and go forward with getting snapd ported over. As I implied in my post here, the more package options for end users - the better - these are two projects with a very talented core team and community that strive to make great distributions of Linux for people to use.

I will add any news of progress to this thread and point some Void devs here in the case they want to join the discussion. Thanks for the reply and the insight!

2 Likes

So, Void has Apparmor now…I wonder what’s going to happen.

3 Likes

So no changes regarding Snapd in Void? I just installed Void on my laptop.