Packaging for more distros / inits? #140

Open
opened 2025-11-20 05:06:52 -05:00 by saavagebueno · 23 comments
Owner

Originally created by @endigma on GitHub (Jun 16, 2022).

Originally assigned to: @mlsmaycon on GitHub.

Starting to build automated packages for more of the distros in the world would be great, perhaps starting with some of the popular non-debian ones?

Alpine Linux
Artix/Arch
Void Linux
NixOS
Solus

I'm sure given its Go there's a template pkgfile for each of these available if someone were to attempt automating it.

Originally created by @endigma on GitHub (Jun 16, 2022). Originally assigned to: @mlsmaycon on GitHub. Starting to build automated packages for more of the distros in the world would be great, perhaps starting with some of the popular non-debian ones? Alpine Linux Artix/Arch Void Linux NixOS Solus I'm sure given its Go there's a template pkgfile for each of these available if someone were to attempt automating it.
saavagebueno added the enhancementfeature-requestwaiting-feedbackgood first issue labels 2025-11-20 05:06:52 -05:00
Author
Owner

@endigma commented on GitHub (Jun 16, 2022):

This could also involve writing rudimentary service files for openrc/runit/s6/etc

@endigma commented on GitHub (Jun 16, 2022): This could also involve writing rudimentary service files for openrc/runit/s6/etc
Author
Owner

@mlsmaycon commented on GitHub (Jun 17, 2022):

Hello @endigma, thanks for your suggestion. We will have a look at it, we consider building the package for Alpine and Arch already, we will need a repository to host them, this might be the only blocker.

If you already have any documentation or guides of the package managers of the distros you've proposed will be highly appreciated.

@mlsmaycon commented on GitHub (Jun 17, 2022): Hello @endigma, thanks for your suggestion. We will have a look at it, we consider building the package for Alpine and Arch already, we will need a repository to host them, this might be the only blocker. If you already have any documentation or guides of the package managers of the distros you've proposed will be highly appreciated.
Author
Owner

@endigma commented on GitHub (Jun 17, 2022):

Official repositories should do for most distros. If you the first party are committed to maintaining the package and it doesn't have any dependencies I don't foresee you having much of a problem getting updates merged.

As an alternative with less upfront effort you could look into providing consistent versioned artifacts which would make 3rd party packages very simple. Scripts for other inits would also be fairly trivial to include in a doc/ folder or etc.

@endigma commented on GitHub (Jun 17, 2022): Official repositories should do for most distros. If you the first party are committed to maintaining the package and it doesn't have any dependencies I don't foresee you having much of a problem getting updates merged. As an alternative with less upfront effort you could look into providing consistent versioned artifacts which would make 3rd party packages very simple. Scripts for other inits would also be fairly trivial to include in a doc/ folder or etc.
Author
Owner
@endigma commented on GitHub (Jun 17, 2022): Void Linux https://github.com/void-linux/void-packages/blob/master/Manual.md Alpine Linux https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package Arch Linux https://wiki.archlinux.org/title/creating_packages NixOS https://nixos.wiki/wiki/Go Solus https://getsol.us/articles/packaging/
Author
Owner

@endigma commented on GitHub (Jun 17, 2022):

If you're intent on hosting the repos yourself, I know for a fact void repos at least are trivial to self-host, but not really integrated into the package manager. Alpine should be similar. Not sure about Arch or Solus, NixOS shouldn't even require a repo.

@endigma commented on GitHub (Jun 17, 2022): If you're intent on hosting the repos yourself, I know for a fact void repos at least are trivial to self-host, but not really integrated into the package manager. Alpine should be similar. Not sure about Arch or Solus, NixOS shouldn't even require a repo.
Author
Owner

@mlsmaycon commented on GitHub (Jun 17, 2022):

Thank you @endigma we will have a look and get back to you soon.

@mlsmaycon commented on GitHub (Jun 17, 2022): Thank you @endigma we will have a look and get back to you soon.
Author
Owner

@hg commented on GitHub (Jul 5, 2022):

Consider using Open Build Service instead of reimplementing the wheel. (the code block is to avoid unnecessary linking)

https://github.com/tonarino/innernet/issues/203#issuecomment-1172847002
@hg commented on GitHub (Jul 5, 2022): Consider using Open Build Service instead of reimplementing the wheel. (the code block is to avoid unnecessary linking) https://github.com/tonarino/innernet/issues/203#issuecomment-1172847002
Author
Owner

@endigma commented on GitHub (Jul 5, 2022):

OBS is great until you realize in reality it only supports:

  • openEuler
  • openSUSE
  • SUSE SLE
  • Arch
  • Raspbian
  • Debian
  • Fedora
  • ScientificLinux
  • RHEL
  • CentOS
  • Ubuntu
  • Univention
  • Mageia
  • IBM PowerKVM
  • AppImage

Which although technically covered by AppImage leaves off:

  • Solus
  • Void
  • Alpine
  • NixOS
  • Gentoo
  • Clear Linux

and a lot more, also any BSD

If you don't have the manpower to handle this, non-lock-in solutions like jordansissel/fpm exist, which is somewhat extensible to produce packages for "unsupported" distros.

@endigma commented on GitHub (Jul 5, 2022): OBS is great until you realize in reality it only supports: - openEuler - openSUSE - SUSE SLE - Arch - Raspbian - Debian - Fedora - ScientificLinux - RHEL - CentOS - Ubuntu - Univention - Mageia - IBM PowerKVM - AppImage Which although *technically* covered by AppImage leaves off: - Solus - Void - Alpine - NixOS - Gentoo - Clear Linux and a lot more, also any BSD If you don't have the manpower to handle this, non-lock-in solutions like [jordansissel/fpm](https://github.com/jordansissel/fpm) exist, which is somewhat extensible to produce packages for "unsupported" distros.
Author
Owner

@mlsmaycon commented on GitHub (Jul 11, 2022):

hello @endigma and @hg, thanks for your suggestions.

I've checked all the guides and descriptions on how to create the packages. Unfortunately, the project only has 2 maintainers with an extensive roadmap, and we can't move this forward request without community help.

I've tested the binary installation and it worked well with 3/5 of the distros above:

  • Alpine
  • Artix
  • Solus

For Void and NixOS, we had a few issues:

  • Void: default init system doesn't have support by our service/init lib https://github.com/kardianos/service, once I am done testing, I will add an example of manual init configuration for it.
  • NixOS: the main problem with the binary installation path is that the /etc is read-only, same as for Void, I will add a configuration.nix example. This will help teams to get started.

With that being said, as we progress with the project and onboard more people we will review this request again in the following quarters.

@mlsmaycon commented on GitHub (Jul 11, 2022): hello @endigma and @hg, thanks for your suggestions. I've checked all the guides and descriptions on how to create the packages. Unfortunately, the project only has 2 maintainers with an extensive roadmap, and we can't move this forward request without community help. I've tested the [binary installation](https://netbird.io/docs/getting-started/installation#binary-install) and it worked well with 3/5 of the distros above: - Alpine - Artix - Solus For Void and NixOS, we had a few issues: - Void: default init system doesn't have support by our service/init lib https://github.com/kardianos/service, once I am done testing, I will add an example of manual init configuration for it. - NixOS: the main problem with the binary installation path is that the /etc is read-only, same as for Void, I will add a configuration.nix example. This will help teams to get started. With that being said, as we progress with the project and onboard more people we will review this request again in the following quarters.
Author
Owner

@mlsmaycon commented on GitHub (Jul 11, 2022):

This is an example of init file for Void:
Create a sv directory:

mkdir /etc/sv/netbird

Add a run file:

vi /etc/sv/netbird/run
# contents
#!/bin/sh
[ -r conf ] && . ./conf
exec netbird service run --log-level info 1>&2

link the file to /var/services

ln -s /etc/sv/netbird /var/service/
@mlsmaycon commented on GitHub (Jul 11, 2022): This is an example of init file for Void: Create a sv directory: ```shell mkdir /etc/sv/netbird ``` Add a run file: ```shell vi /etc/sv/netbird/run # contents #!/bin/sh [ -r conf ] && . ./conf exec netbird service run --log-level info 1>&2 ``` link the file to /var/services ```shell ln -s /etc/sv/netbird /var/service/ ```
Author
Owner

@hg commented on GitHub (Jul 11, 2022):

@mlsmaycon personally I wouldn't expect you to support anything but a couple of the most popular distributions. Even major corporations rarely care about anything besides Ubuntu and RHEL.

OBS is great until you realize in reality it only supports …

… probably 99% of Linux installations out there. The remaining ones mostly cater to enthusiasts who can write their own packages. I really don't think it's reasonable to expect support for Void, Solus, and Clear Linux from a small startup. I don't believe I've ever seen anyone shipping packages for them now that I think of it (or binary packages for any of the BSDs for that matter — you're typically expected to use ports).

Alpine is pretty popular, but it's also frequently updated (and you can easily install 'backports' from the Edge repo, which is perfectly safe for statically linked binaries in my experience).

Note that OBS supports more than they officially claim, although quality may vary (it may not work on less popular architectures). For example, here are projects for cross-compilation onto Windows:

I'll throw together an OBS repo in the next few days, and we'll see how well it performs. If it works out badly, at least that's one dead end crossed out.

@hg commented on GitHub (Jul 11, 2022): @mlsmaycon personally I wouldn't expect you to support anything but a couple of the most popular distributions. Even major corporations rarely care about anything besides Ubuntu and RHEL. > OBS is great until you realize in reality it only supports … … probably 99% of Linux installations out there. The remaining ones mostly cater to enthusiasts who can write their own packages. I really don't think it's reasonable to expect support for Void, Solus, and Clear Linux from a small startup. I don't believe I've ever seen anyone shipping packages for them now that I think of it (or binary packages for any of the BSDs for that matter — you're typically expected to use ports). Alpine is pretty popular, but it's also frequently updated (and you can easily install 'backports' from the Edge repo, which is perfectly safe for statically linked binaries in my experience). Note that OBS supports more than they officially claim, although quality may vary (it may not work on less popular architectures). For example, here are projects for cross-compilation onto Windows: - https://build.opensuse.org/project/show/windows:mingw:win64 - https://build.opensuse.org/project/show/windows:mingw:win32 I'll throw together an OBS repo in the next few days, and we'll see how well it performs. If it works out badly, at least that's one dead end crossed out.
Author
Owner

@misuzu commented on GitHub (Aug 14, 2022):

I can help getting netbird to NixOS repository.

EDIT: see https://github.com/NixOS/nixpkgs/pull/186669

@misuzu commented on GitHub (Aug 14, 2022): I can help getting netbird to NixOS repository. EDIT: see https://github.com/NixOS/nixpkgs/pull/186669
Author
Owner

@mlsmaycon commented on GitHub (Aug 14, 2022):

awesome, thanks @misuzu for your contribution.

@mlsmaycon commented on GitHub (Aug 14, 2022): awesome, thanks @misuzu for your contribution.
Author
Owner

@Tennyleaz commented on GitHub (Oct 6, 2022):

Great if it also support BSD based firewall OS, like OPNSense?
I would love to use it at an gateway.

@Tennyleaz commented on GitHub (Oct 6, 2022): Great if it also support BSD based firewall OS, like OPNSense? I would love to use it at an gateway.
Author
Owner

@FireMasterK commented on GitHub (Nov 11, 2022):

Created an issue in Alpine Linux's aports at https://gitlab.alpinelinux.org/alpine/aports/-/issues/14248

@FireMasterK commented on GitHub (Nov 11, 2022): Created an issue in Alpine Linux's aports at https://gitlab.alpinelinux.org/alpine/aports/-/issues/14248
Author
Owner

@FReichelt commented on GitHub (Mar 14, 2024):

Is there any update on the BSD support?

@FReichelt commented on GitHub (Mar 14, 2024): Is there any update on the BSD support?
Author
Owner

@xromansx commented on GitHub (Apr 11, 2024):

I agree BSD wuld be nice to have Opnsense, Pfsense would be perfect for this especially they all support wireguard now.

@xromansx commented on GitHub (Apr 11, 2024): I agree BSD wuld be nice to have Opnsense, Pfsense would be perfect for this especially they all support wireguard now.
Author
Owner

@mimi0000oo commented on GitHub (Jul 26, 2024):

OPNSense support would be great!

@mimi0000oo commented on GitHub (Jul 26, 2024): OPNSense support would be great!
Author
Owner

@nttranbao commented on GitHub (Aug 14, 2024):

Please support OpenSense/BSD. Thanks

@nttranbao commented on GitHub (Aug 14, 2024): Please support OpenSense/BSD. Thanks
Author
Owner

@yakaviuk commented on GitHub (Sep 19, 2024):

Hi, As for now it is any recommended solution how to install netbird client (not server) on ArchLinux (only CLI, without GUI; Linux archlinux 6.10.10-arch1-1 )?
I tried yay and building using makepkg -si but got a lot of errors.

Thanks in advance

@yakaviuk commented on GitHub (Sep 19, 2024): Hi, As for now it is any recommended solution how to install netbird client (not server) on ArchLinux (only CLI, without GUI; `Linux archlinux 6.10.10-arch1-1` )? I tried `yay` and building using `makepkg -si` but got a lot of errors. Thanks in advance
Author
Owner

@mimi0000oo commented on GitHub (Sep 21, 2024):

Hi, As for now it is any recommended solution how to install netbird client (not server) on ArchLinux (only CLI, without GUI; Linux archlinux 6.10.10-arch1-1 )?
I tried yay and building using makepkg -si but got a lot of errors.

Thanks in advance

I have netbird installed on arch linux for some time now (cli and gui). I know pacman had an update a few days ago that broke yay stable, but i managed to install yay-git and the problem was fixed. Maybe that or some other pacman problem

@mimi0000oo commented on GitHub (Sep 21, 2024): > Hi, As for now it is any recommended solution how to install netbird client (not server) on ArchLinux (only CLI, without GUI; `Linux archlinux 6.10.10-arch1-1` )? > I tried `yay` and building using `makepkg -si` but got a lot of errors. > > Thanks in advance I have netbird installed on arch linux for some time now (cli and gui). I know pacman had an update a few days ago that broke yay stable, but i managed to install `yay-git` and the problem was fixed. Maybe that or some other pacman problem
Author
Owner

@nazarewk commented on GitHub (Apr 28, 2025):

Hello @endigma,

We're currently reviewing our open issues and would like to verify if this problem still exists in the latest NetBird version.

Could you please confirm if the issue is still there?

We may close this issue temporarily if we don't hear back from you within 2 weeks, but feel free to reopen it with updated information.

Thanks for your contribution to improving the project!

@nazarewk commented on GitHub (Apr 28, 2025): Hello @endigma, We're currently reviewing our open issues and would like to verify if this problem still exists in the [latest NetBird version](https://github.com/netbirdio/netbird/releases). Could you please confirm if the issue is still there? We may close this issue temporarily if we don't hear back from you within **2 weeks**, but feel free to reopen it with updated information. Thanks for your contribution to improving the project!
Author
Owner

@endigma commented on GitHub (Apr 28, 2025):

I think this has kinda become a tracking issue for packaging requests? Close it if you like but I bet you'll just get a new one eventually, or make your own tracking issue/discussion

@endigma commented on GitHub (Apr 28, 2025): I think this has kinda become a tracking issue for packaging requests? Close it if you like but I bet you'll just get a new one eventually, or make your own tracking issue/discussion
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#140