jonathanio / update-systemd-resolved

Helper script for OpenVPN to directly update the DNS settings of a link through systemd-resolved via DBus.
Other
761 stars 94 forks source link

Store the executable in /usr/local/bin #106

Closed bowlofeggs closed 1 year ago

bowlofeggs commented 2 years ago

/usr/bin is not intended to be used for locally installed software. /usr/local/bin is a more appropriate place to default to storing locally installed scripts, as per FHS[0].

[0] https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s09.html

bowlofeggs commented 2 years ago

FTR, the old location in /etc/openvpn/scripts was also suitable as per FHS. What was the reason it was moved out of there?

bowlofeggs commented 2 years ago

Note that the .conf file installed by the Makefile is still installed to a strange place, even with this patch. /usr/bin and /usr/local/bin are intended for executables. This was less strange in the former location at /etc/openvpn/scripts.

srisch commented 2 years ago

@bowlofeggs looks like it was moved in this PR https://github.com/jonathanio/update-systemd-resolved/pull/95 - with reference to #94 which doesn't seem to be an actual issue with the paths. So it also doesn't make sense why it was moved.

tomeon commented 1 year ago

[L]ooks like it was moved in this PR #95 - with reference to #94 which doesn't seem to be an actual issue with the paths. So it also doesn't make sense why it was moved.

I suspect the script path change mentioned in #94 was a downstream change, possibly having to do with the AUR package. This AUR package commit introduced the switch to /usr/bin and is dated 2021-04-27; #94 was opened 2022-02-03.


[T]he old location in /etc/openvpn/scripts was also suitable as per FHS. What was the reason it was moved out of there?

Suspect it's a secondary(/tertiary/quaternary/...) effect of Arch Linux packaging policy, but (though it's not the actual reason the script was moved) there's also this comment from #96:

That's right, because the script is stored in /etc it's considered a settings file and changes/fixes won't get applied. :-(


Note that the .conf file installed by the Makefile is still installed to a strange place, even with this patch. /usr/bin and /usr/local/bin are intended for executables. This was less strange in the former location at /etc/openvpn/scripts.

Good point. Perhaps somewhere under /usr/share would be a good choice?

bowlofeggs commented 1 year ago

There could be an /etc/update-systemd-resolved/ folder, which could be a suitable place for it since you probably don't want to claim paths in the /etc/openvpn namespace. System-wide configuration should generally be in /etc.