On Wed, Mar 20, 2019 at 10:44:53AM +0100, Michal Ruprich wrote:
Hi,
I am preparing FRR so that it could be added to Fedora and since there
are a lot of experienced packagers here, I would like to ask for an
advice. FRR is a fork of quagga and it provides a couple of routing
daemons(bgp, isis, odpf, rip, eigrp etc.). Originally in quagga, each
daemon had its own binary in /usr/sbin and each daemon could be started
via systemctl(including the zebra daemon which is needed to run other
routing daemons). In FRR the developers have chosen a different
approach. They provide a script that takes care of the start-up of all
requested daemons - that means that all daemons are started via a single
systemctl command.
That doesn't sound like a good idea. It seems that they
reimplement
daemon management internally, which usually doesn't go well.
There are a couple of other scripts that are used for
reloading the daemons etc. I am now wondering about where to place all
relevant binary files and all the scripts.
Do the daemons have names that are
unique enough to not cause conflicts
with other packages? If yes, then it should be OK to put them all in
/usr/bin/. (There's no reason to care about "sbin" vs "bin", since
nowadays
both are included in $PATH.)
The upstream idea about the location is to put all binary files and
all
the scripts to /usr/lib/frr/ which does not make much sense to me.
It is actually a
pretty good choice, except that you say that those
executables are supposed to be called by the users directly. If they
weren't, or if were only rarely, this upstream decision would be
appropriate. In particular, there's no effective difference between
/usr/libexec and /usr/lib/ffr, so using /usr/lib/ffr would be correct.
My
first idea was to keep the main script in /usr/sbin and put the rest to
/usr/libexec, but that would only make sense if the binaries and scripts
were not meant to be run by the user, which is not the case. It is very
well possible to start each daemon directly without interfering with
systemd or any of the scripts. Same applies for each of the script.
So the question is whether it is acceptable to keep the scripts in the
/usr/sbin directory together with the binaries or whether I should put
them somewhere else?
I would be grateful for any ideas about this. Thanks.
Zbyszek