[Dnsmasq-discuss] systemd service improvements

Craig Andrews candrews at integralblue.com
Thu Jun 30 22:19:54 BST 2016


Greetings and salutations,

On 30.06.2016 16:18, Albert ARIBAUD wrote:
> Bonjour,
> 
> Le Thu, 30 Jun 2016 21:18:02 +0200
> Pali Rohár <pali.rohar at gmail.com> a écrit:
> 
>> On Thursday 30 June 2016 16:58:56 Craig Andrews wrote:
>> > I'd like to propose a couple changes in terms of systemd in dnsmaq.
>> > First, dnsmasq should always install a systemd unit so all
>> > distributions/users can use it
>> 
>> I'm against such change. Why on the Earth install useless files into
>> system which do nothing? I really do not want to see that programs
>> starts installing systemd files just because it is "no harm".
>> 
>> If such thing happen, dnsmasq then should install also config file
>> for upstart, also for openrc, and also install shortcut for Windows
>> start menu for *all* systems as that is too by that definition "no
>> harm".
> 
> I tend to agree with the principle that a systemd unit file should
> only be installed on systems which use systemd. I was surprised indeed
> to see that the dnsmasq git repo contains such a file.
> 
> Furthermore, the OP itself indicates that different systemd-based
> distributions will require different systemd units for dnsmasq, which
> shows that systemd (or upstart, or sysvinit...) files should be managed
> at the distribution, not upstream application, level.
> 
> Amicalement,

I have no argument against only installing the systemd unit if a 
configure flag is specified. Many pieces of software do it that way - I 
think the important thing is that it's available from dnsmasq. So I 
rescind my thought to install it unconditionally.

Regarding distributing config files for upstart, openrc, and everything 
else - I think there are 2 ways to look at that:
1) systemd is used by many Linux distributions, and that number is 
increasing. So by distributing it, the most users benefit, as compared 
to the low, and decreasing, number of users of openrc and upstart.
2) If dnsmasq wants to distribute init configs for other init systems, 
that seems fine. That would just mean that if, for example, dnsmasq 
distributes an upstart configuration file, then all distributions/users 
of upstart can collaborate in one place instead of all being siloed.

The goal of including the systemd unit is for there to be one place 
(dnsmasq aka upstream) for fixes, improvements, and development to take 
place. For example, if someone notices that dnsmasq can be hardened, 
that change currently has to be made in every distribution separately. 
That lack of collaboration is really inefficient - tons of effort is 
being wasted. It also introduces confusion and maintainability problems; 
with every distribution being inconsistent, that's just one more 
variable dnsmasq has to deal with when a bug report or feature request 
is made.

I'm not currently using Debian, so I can't comment too much on its 
systemd unit. Ideally, I'd love to see the same unit used for all 
distributions. But if that's not possible, just like how distributions 
can patch source code if they have to, distributions can patch 
upstream's systemd units. Such patching is not a reason to stop 
distribution of something (be it source code, configuration, or anything 
else).

Thanks,
~Craig



More information about the Dnsmasq-discuss mailing list