Summary: | dns/bind911, security/trousers: rcorder: Circular dependency | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Tatsuki Makino <tatsuki_makino> | ||||||
Component: | Individual Port(s) | Assignee: | Hiroki Sato <hrs> | ||||||
Status: | Open --- | ||||||||
Severity: | Affects Only Me | CC: | alfred, hrs, jcfyecrayz, mat, rene, w.schwarzenfeld, woodsb02, yasu | ||||||
Priority: | --- | Keywords: | patch | ||||||
Version: | Latest | ||||||||
Hardware: | Any | ||||||||
OS: | Any | ||||||||
Attachments: |
|
Description
Tatsuki Makino
2017-04-18 03:03:22 UTC
tcsd.in shows # PROVIDE: tcsd # REQUIRE: SERVERS tpmd # BEFORE: named hastd kerberos # KEYWORD: shutdown this seems solved. I think we could close. (In reply to w.schwarzenfeld from comment #1) dns/bind911 has START_LATE option. I installed the option off. When executing rcorder /etc/rc.d/* /usr/local/etc/rc.d/* under that condition, I get a message "rcorder: Circular dependency on provision `SERVERS' in file `/usr/local/etc/rc.d/tcsd'.". There are more "rcorder: Circular dependency ..." messages now, so I don't know anymore :) You are right: usr/local/etc/rc.d/915resolution rcorder: Circular dependency on provision `SERVERS' in file `/usr/local/etc/rc.d/tpmd'. /usr/local/etc/rc.d/tpmd rcorder: Circular dependency on provision `SERVERS' in file `/usr/local/etc/rc.d/tcsd'. Created attachment 189778 [details]
[patch] fix rc ordering for tpmd & tcsd
Here's a patch to fix ordering problems in the rc.d scripts for security/trousers (tcsd) and emulators/tpm-emulator (tpmd). It also replaces the rc.d dependency on kerberos to be kdc instead (rc.d/kerberos was renamed to rc.d/kdc in FreeBSD 10.1).
Created attachment 189780 [details]
[patch] fix rc ordering for tpmd & tcsd [v2]
v2: Remove accidental cruft from patch. No substantial change vs. v1.
(In reply to John Hein from comment #5) Before this fix (attachment 189780 [details]), rcorder shows: % rcorder /usr/local/etc/rc.d/tcsd /usr/local/etc/rc.d/tpmd /usr/local/etc/rc.d/named /etc/rc.d/* | & grep rcorder rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown provision `kerberos' rcorder: Circular dependency on provision `SERVERS' in file `/usr/local/etc/rc.d/tpmd'. rcorder: Circular dependency on provision `SERVERS' in file `/usr/local/etc/rc.d/tcsd'. Should there be a post-install or some other step during portlint or such to detect this? They are two different ports, that have absolutely no relation, there cannot be any automatic way to detect this. The trousers probably need to loose the SERVERS requirement. Awaiting Hiroki's approval of patch as maintainer. hrs (Hiroki) seems inactive, should move it back to the pool? (I see same PR belonging to him are long time open, some since 2014). similar problem here bug #216673 . (In reply to Alfred Perlstein from comment #7) Re: detecting this at port install time. I think you could do something like: rcorder /etc/rc.d/* /usr/local/etc/rc.d/* > rcorder-before-install install rc.d script rcorder /etc/rc.d/* /usr/local/etc/rc.d/* > rcorder-after-install Compare before & after, and warn about any new rcorder errors. I don't have a patch, but it doesn't seem too hard to be able to add something to QA to help with this. Would you mind my asking current status of this bug report? While investigating other issue (https://lists.freebsd.org/pipermail/freebsd-ports/2021-April/120993.html), I noticed the solution of my issue doesn't work as is expected because of this circular dependency. I tried patch of attachment 189780 [details] with 13.0-RELEASE. While it fixes circular dependency in question and stop blocking my issue, it causes another one as following.
----------------------------------------------------------------------
root@maybe[2052]# rcorder /etc/rc.d/* /usr/local/etc/rc.d/* > /dev/null
rcorder: Circular dependency on file `/usr/local/etc/rc.d/tcsd'.
rcorder: Circular dependency on provision `SERVERS': /etc/rc.d/SERVERS -> /etc/rc.d/kdc -> /usr/local/etc/rc.d/tcsd -> /etc/rc.d/SERVERS.
rcorder: `/usr/local/etc/rc.d/tcsd' was seen in circular dependencies for 1 times.
rcorder: `/etc/rc.d/kdc' was seen in circular dependencies for 1 times.
rcorder: `/etc/rc.d/SERVERS' was seen in circular dependencies for 1 times.
rcorder: `/usr/local/etc/rc.d/tcsd' was seen in circular dependencies for 1 times.
rcorder: requirement `dovecot' in file `/usr/local/etc/rc.d/postfix' has no providers.
root@maybe[2052]#
----------------------------------------------------------------------
Note that dns/bind911 expired today and is being removed. (In reply to Rene Ladan from comment #15) IIRC EoL of BIND 9.11 is extended to March 2022. (In reply to Rene Ladan from comment #15) This has nothing to do with ISC BIND, but is a problem with the script that is installed in etc/rc.d. I'm still having this problem with dns/bind916. > rcorder /etc/rc.d/* /usr/local/etc/rc.d/* ︙ rcorder: Circular dependency on provision `SERVERS': /etc/rc.d/SERVERS -> /usr/local/etc/rc.d/named -> /usr/local/etc/rc.d/tcsd -> /usr/local/etc/rc.d/tpmd -> /etc/rc.d/SERVERS. ︙ Leaving this open even though dns/bind911 expired today, as it also happens with dns/bind916. I even reported bug 268216 without fully understanding how rcorder was used, but if I fully understood it, this may not have been a problem. In /etc/rc, it is run through twice with ${early_late_divider} as the boundary. It seems that even if rcscript does not take into account early_late_divider="FILESYSTEMS", it is implicitly supposed to run later than the divider when installed on ${LOCALBASE}/etc/rc.d. (In reply to Yasuhiro Kimura from comment #14) The output from comment 14 indicates that rc.d/tcsd still contains the SERVERS in the REQUIRE line. And the circular dependency still exists. =========== . . rcorder: Circular dependency on provision `SERVERS': /etc/rc.d/SERVERS -> /etc/rc.d/kdc -> /usr/local/etc/rc.d/tcsd -> /etc/rc.d/SERVERS. . . =========== The proposed patch removes that, so I don't understand why you would still see that if the patch was applied and trousers was re-installed based on the patch. If your installed rc.d/tcsd still has "SERVERS", then maybe the patch was not applied correctly? It seems to me the patch is still needed and still valid, both for the circular fixes and for the kerberos->kdc rename that happened in 10.x long ago. The name on this bug could be changes to remove 'bind911' since that port (or any later incarnation like bind916) is unrelated to the circular problem. But this has been around a long while now with what seems to be a valid patch. Maintainer timeout is long past - the assignee should be reset at the very least, but a commit would be even better. maintainer-feedback request removed due to unresponsive maintainer. |