Could you use tar.gz instead of tar.zst? Most packages use it, this is a minor thing to change.
Since you fetch from GitHub, I believe that the proper project URL is https://nebula.defined.net/.
This URL points to the Open Source project docs, not the paid service. Also minor change.
I don't see a /etc/nebula/config.yml in the installed files, thus, the service would fail to start.
I believe that we can't provide a basic config that would work for all users, right?
If a generic configuration file is impossible, the service should fail to start with something meaningful for the user.
Consider adding AssertPathExists in the Unit.
Consider moving examples/config.yml to /etc/nebula/config.yml.template.
It makes more sense, it is not documentation, but a template example.
As tailscale package, can you add the system hardening bits to Service?
I am quite happy with most changes you propose (still debating if using the source URL (github) is the best compromise).
On the config proposal. I have seen quite a lot of packages which also can't offer a generic config file to put it into docs, as it's basically documentation what a config file should look like. But going down the Path of AssertPathExists I stumbled upon AssertDirectoryNotEmpty which imo could even be better as systemd.unit addition in comparison to AssertPathExists (as obviously the path actually exists). but that would mean we wouldn't ship a template in the config directory. What is your take on that?
I just see on my own system, that there are example files in /usr/share/doc/%{name}/ in comparison to my /usr/share/doc/package/%{name}. imo using %doc is still the best option imo. on other distros I actually found /usr/share/examples/ but that is not a case for openSUSE.
I'm also not sure where is the best place for the template, choose one option and send it to Factory, if they reject we can fix it. For the unit, I'm not sure which is better, either should work.
About the URL, the GitHub one might be the best choice indeed.
Hi,
Could you use tar.gz instead of tar.zst? Most packages use it, this is a minor thing to change.
Since you fetch from GitHub, I believe that the proper project URL is https://nebula.defined.net/. This URL points to the Open Source project docs, not the paid service. Also minor change.
I don't see a /etc/nebula/config.yml in the installed files, thus, the service would fail to start. I believe that we can't provide a basic config that would work for all users, right?
If a generic configuration file is impossible, the service should fail to start with something meaningful for the user. Consider adding AssertPathExists in the Unit.
Consider moving examples/config.yml to /etc/nebula/config.yml.template. It makes more sense, it is not documentation, but a template example.
As tailscale package, can you add the system hardening bits to Service?
I am quite happy with most changes you propose (still debating if using the source URL (github) is the best compromise).
On the config proposal. I have seen quite a lot of packages which also can't offer a generic config file to put it into docs, as it's basically documentation what a config file should look like. But going down the Path of AssertPathExists I stumbled upon AssertDirectoryNotEmpty which imo could even be better as systemd.unit addition in comparison to AssertPathExists (as obviously the path actually exists). but that would mean we wouldn't ship a template in the config directory. What is your take on that?
I just see on my own system, that there are example files in /usr/share/doc/%{name}/ in comparison to my /usr/share/doc/package/%{name}. imo using %doc is still the best option imo. on other distros I actually found /usr/share/examples/ but that is not a case for openSUSE.
I'm also not sure where is the best place for the template, choose one option and send it to Factory, if they reject we can fix it. For the unit, I'm not sure which is better, either should work.
About the URL, the GitHub one might be the best choice indeed.