* Anders Darander <[email protected]> [160420 10:24]: > * Joe MacDonald <[email protected]> [160419 17:36]:
> > From: Mark Asselstine <[email protected]> > > The changes made in commit 2497cf2960537152427c99629b2af412787eb6c2 > > [dnsmasq: steal resolvconf support from Ubuntu] broke systemd only > > dnsmasq runtime. No sysvinit scripts are included in systemd only > > builds (and should not be) and the dnsmasq executable has not moved to > > /usr/sbin. > > Reverting to the previous version of the systemd service file. If > > folks want the local dnsmasq instance to be queried before going to > > an external DNS they should add 'nameserver 127.0.0.1' to > > /etc/resolv.conf. Or submit a change which will work with systemd. > > Signed-off-by: Mark Asselstine <[email protected]> > > Signed-off-by: Joe MacDonald <[email protected]> > > --- > > The previous one should've been v2, so I've named this one v3 explicitly. > > After reading more of the systemd documentation I think this approach in > > the service file is the current best option available. It would certainly > > be cleaner to store the pidfile name in an environment variable but it > > turns out on further inspection that if you pass a varaible to PIDFile, > > you get errors (that you only see when the service is stopped, not while > > it is running) indicating essentially that it is falling back to the > > "guess the MAINPID value" behaviour. So this seems to be the way we're > > supposed to do this type of thing now. > > -J. > > .../recipes-support/dnsmasq/dnsmasq.inc | 9 ++-- > > .../dnsmasq/files/dnsmasq-resolvconf-helper | 62 > > ++++++++++++++++++++++ > This file, dnsmasq-resolvconf-helper, isn't include in SRC_URI, neither > in do_install(). However it is referenced in the dnsmasq.service, which > leads to: > Apr 08 11:07:27 ccu dnsmasq[384]: started, version 2.75 cachesize 150 > Apr 08 11:07:27 ccu dnsmasq[384]: compile time options: IPv6 GNU-getopt > no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth > no-DNSSEC loop- detect inotify > Apr 08 11:07:27 ccu dnsmasq-dhcp[384]: DHCP, IP range 192.168.7.1 -- > 192.168.7.1, lease time 2m > Apr 08 11:07:27 ccu dnsmasq[384]: [[0;1;39mno servers found in > /etc/resolv.conf, will retry[[0m > Apr 08 11:07:27 ccu dnsmasq[384]: read /etc/hosts - 2 addresses Apr 08 > 11:07:27 ccu systemd[386]: [[0;1;31mdnsmasq.service: Failed at > step EXEC spawning /usr/bin/dnsmasq-resolvconf-helper: No such file or > directory[[0m This is the actual issue, the dnsmasq.service file will unconditionally execute dnsmasq-resolvconf-helper, while it's only installed if the PACKAGECONFIG resolved is set. Could you add the line ExecStartPost=/usr/bin/dnsmasq-resolvconf-helper start to dnsmasq.service conditionally on the PACKAGECONFIG resolved? (Using sed is an option). > Apr 08 11:07:27 ccu systemd[1]: [[0;1;39mdnsmasq.service: Control process > exited, code=exited status=203[[0m > Apr 08 11:07:27 ccu systemd[1]: [[0;1;31mFailed to start DNS forwarder and > DHCP server.[[0m > Apr 08 11:07:27 ccu systemd[1]: [[0;1;39mdnsmasq.service: Unit entered failed > state.[[0m > Apr 08 11:07:27 ccu systemd[1]: [[0;1;39mdnsmasq.service: Failed with result > 'exit-code'.[[0m > Thus, with the following patch amended, I'm happy with this patch! No, I was slightly wrong... > Cheers, > Anders > diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc > b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc > index df58e5c..db54658 100644 > --- a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc > +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc > @@ -11,6 +11,7 @@ SRC_URI = > "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getV > file://init \ > file://dnsmasq.conf \ > file://dnsmasq.service \ > + file://dnsmasq-resolvconf-helper \ > " > inherit pkgconfig update-rc.d systemd > @@ -54,7 +55,7 @@ do_install () { > install -m 0644 ${WORKDIR}/dnsmasq.service ${D}${systemd_unitdir}/system > install -m 0755 ${S}/contrib/wrt/dhcp_release ${D}${bindir} > - > + install -m 0755 ${WORKDIR}/dnsmasq-resolvconf-helper > ${D}${bindir}/dnsmasq-resolvconf-helper This line should obviously not be here, as you're actually installing dnsmasq-resolvconf-helper, if the PACKAGECONFIG resolved is set. > if [ "${@base_contains('PACKAGECONFIG', 'dbus', 'dbus', '', d)}" != "" > ]; then > install -d ${D}${sysconfdir}/dbus-1/system.d > install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/ -- Anders Darander, Senior System Architect ChargeStorm AB / eStorm AB -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
