By default files "/etc/init.d/rdnssd" and "/etc/rdnssd/resolvconf" are configured assuming that rdnssd files are located in "/var/run/". But the real path is "/var/lib/run/" (see man rdnssd). This cause two bugs : - rdnssd daemon doesn't stop - resolvconf hook doesn't work Reproducible: Always Steps to Reproduce: Bug 1 1. sudo /etc/init.d/rdnssd start 2. sudo /etc/init.d/rdnssd stop 3. pgrep -l rdnssd Bug 2 1. sudo emerge openresolv 2. sudo /etc/init.d/rdnssd start 3. rdisc6 -1 eth0 3. more /etc/resolv.conf Actual Results: Bug 1 process are still running. Bug 2 resolv.conf has not been updated Expected Results: Bug 1 No remaining process Bug 2 resolv.conf updated to solve this bug just change : "/var/run/rdnssd/resolv.conf" by "/var/lib/run/rdnssd/resolv.conf" in "/etc/rdnssd/resolvconf" "/var/run/rdnssd.pid" by "/var/lib/run/rdnssd.pid" in "/etc/init.d/rdnssd"
Created attachment 252623 [details] output of emerge --info
+*ndisc6-0.9.9-r1 (01 Nov 2010) + + 01 Nov 2010; Michael Weber <xmw@gentoo.org> -ndisc6-0.9.9.ebuild, + +ndisc6-0.9.9-r1.ebuild, files/rdnssd.rc, files/resolvconf: + Revbump to fix wrong file contents. Thanks to Maxime de Roucy + <maxime.deroucy@gmail.com> on bug #343431 for the report. +
woops, the old version was stable. Just adding a new one to be stabled in 30days. +*ndisc6-0.9.9-r1 (01 Nov 2010) + + 01 Nov 2010; Michael Weber <xmw@gentoo.org> +ndisc6-0.9.9-r1.ebuild, + +files/rdnssd.rc-1, +files/resolvconf-1: + Revbump to fix wrong file contents. Thanks to Maxime de Roucy + <maxime.deroucy@gmail.com> on bug #343431 for the report. +
Actually this isn't the correct solution since the real cause to this bug is a bug in the package sources (which misuse the LOCALSTATEDIR variable). The path should be /var/run/rdnssd and not /var/lib/run/rdnssd. This issue was addressed in the ebuild I submitted in the original bug report (bug #232249). The solution is to add a src_compile() function to the ebuild that is able to tell the configure script the path as expected by the package sources: src_compile() { econf --localstatedir="${EPREFIX}"/var || die "econf failed" emake || die "emake failed" } So please revert back your changes and just add this code to the ebuild. Thanks!
further action required ...
Ok, looking at the FHS (1) /var/lib/... the reboot preserved location (http://www.pathname.com/fhs/pub/fhs-2.3.html#PURPOSE38) (2) /var/run/ the "state since bootup" location (http://www.pathname.com/fhs/pub/fhs-2.3.html#PURPOSE46) hm, flipping a coin and taking (2). explanatory statement: You probably don't wanna end up with an outdated DNS resolver information.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abd116166f962eca74b9c40579f809ac69ddf420 commit abd116166f962eca74b9c40579f809ac69ddf420 Author: Mike Gilbert <floppym@gentoo.org> AuthorDate: 2023-06-10 23:29:05 +0000 Commit: Mike Gilbert <floppym@gentoo.org> CommitDate: 2023-06-10 23:31:35 +0000 net-misc/ndisc6: add 1.0.7 Use "/var" for localstatedir to correct the path to "/var/run". Clean up the init script. Closes: https://bugs.gentoo.org/343431 Signed-off-by: Mike Gilbert <floppym@gentoo.org> net-misc/ndisc6/Manifest | 1 + net-misc/ndisc6/files/rdnssd.rc-2 | 24 ++++++++++++++++++++++++ net-misc/ndisc6/files/resolvconf-2 | 7 +++++++ net-misc/ndisc6/ndisc6-1.0.7.ebuild | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+)