The radvd daemon does not start because the specified pidfile under /var/run/radvd cannot be created. The directory is there but has root ownership/group and is the only user that can write to it. radvd is run as the radvd user and thus cannot write to a pidfile there. The fix is to chown radvd /var/run/radvd Reproducible: Didn't try Steps to Reproduce: 1. 2. 3.
I've found two solutions to correct this bug. First using chmod 75.75 instead of fperms (didn't try fperms 75.75) Second putting pid file in /var/run. Btw, the first one need to unmerge radvd because portage don't overwrite directory and then does not change permission of it. Hannes, why did you forced pid file to be in /var/run/radvd ? Is it for fhs compilance ?
Guy: /var/run/radvd is because the pid file is created by the radvd user, he can't write to /var/run (or where is your suggested destination?) feel free to change fperms to chmod.
Ok, I've resolved the problem. I force /var/run/radvd to be owned by radvd.radvd in pkg_preinst() I've also added a .keep file in /var/run/radvd coz portage seems to remove this directory when reemering. I'll add enabling ipv6 routing in radvd init.d file and then remove the pkg_postinst function. This will be radvd-0.7.2-r1 which will be unmasked. Hannes so you agree with this ? (corrected ebuild will follow)
Created attachment 10944 [details] Corrected ebuild
Guy: looks fine, feel free to commit.
Fixed in version 0.7.2-r1
Created attachment 62171 [details, diff] radvd-0.7.2-r1-r2.patch just tryed a fresh install and it die in "pkg_preinst" (does not create user:group radvd). The patch attached switch to the use of "enewuser", "enewgroup" from "eutils.eclass" chown of "/var/run/radvd" is postponed to make use of newly created user:group then "keepdir" is used to keep /var/run/radvd comment #3