Description of problem: Services that have /etc/xinetd.d/* scripts don't list xinetd as a dependency in their rpm configuration. Example: # rpm -ql cvs | grep -i inetd /etc/xinetd.d/cvs # rpm -q cvs --requires | grep -i inetd # Without xinetd installed, services will not be launched at boot time. Version-Release number of selected component (if applicable): xinetd-2.3.14-10.el5 OpenIPMI-2.0.16-7.el5 cvs-1.11.22-7.el5 krb5-workstation-1.6.1-36.el5_5.5 rsync-2.6.8-3.1 and possibly others (telnet-server? authd? tftp-server? others?) How reproducible: Steps to Reproduce: 1. Install one of the above packages without installing xinetd (which may require unchecking the "Legacy Network Services" group during install). 2. Enable the service by changing "disable = yes" to "disable = no" and reboot. 3. Service is unavailable. Actual results: Port is closed, service is down. Expected results: Port is open, service is up. Additional info: Appears to be an issue in Fedora as well. It's not enough to put in a dependency on the /etc/xinetd.d/ directory as this is provided by "filesystem", not xinetd. "cvs" may be a bad example, as a user might choose to install cvs to only have the client, but for others such as "telnet-server" the only reason to install the package is to run a server out of xinetd.
This would be an issue of dependent components, not xinetd, if valid. Moving bz from xinetd to cvs component (the first example).
cvs does not require inetd in all use cases, you can use cvs without inet daemon successfully. Thus (x)inetd is optional dependency. Correct solution for strict dependency graph is to separate cvs inetd configuration file into sub-package and add Requires: xinetd to the sub-package only. BTW, what's correct dependency name for (x)inetd? inetd or xinetd? Does RHEL support both of them, or xinetd only?
(In reply to comment #2) > BTW, what's correct dependency name for (x)inetd? inetd or xinetd? Does RHEL > support both of them, or xinetd only? The correct dependency name is "xinetd", even though the package itself provides "inetd" as well. Xinetd is a secure replacement for inetd, by the way. We don't ship the obsolete inetd in any supported RHEL.
Proposed solution: To add cvs-inetd subpackage that will deliver /etc/xinetd.d/cvs and that will Require: cvs, xinetd. Notice regarding name: cvs-server is not proper name because server and client is implemented in one binary and the server can be run by local user (multi-user server with shell access) or through SSH/rsh.
Created attachment 491517 [details] Spec file changes from Fedora
Created attachment 491518 [details] Spec file changes from Fedora A typo fixed.
RHEL-5 rpmbuild does not support mixing architecture depended and independent sub-packages. Thus the cvs-inetd sub-package will be built as architecture specific.
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause Having installed `cvs' package configured for inet daemon and missing `xinetd' package. There is no dependency between cvs and xinetd. Consequence cvs server is not accessible through network. Fix Sub-package `cvs-inetd' has been created that pulls xinetd package into system and that delivers cvs inetd configuration file instead of the `cvs' sub-package. Thus to configure cvs server as inetd service, one needs too install cvs-inted that ensures xinet daemon is available. Result xinet daemon is available once cvs inetd configuration file presents on system. Thus after enabling CVS as inet service (disable=no in /etc/xinetd.d/cvs) and rebooting or reloading xinet daemon, CVS server becomes accessible through network.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -9,7 +9,7 @@ package into system and that delivers cvs inetd configuration file instead of the `cvs' sub-package. Thus to configure cvs server as inetd service, one needs too - install cvs-inted that ensures xinet daemon is available. + install cvs-inetd that ensures xinet daemon is available. Result xinet daemon is available once cvs inetd configuration file presents on system. Thus after enabling CVS as inet
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1383.html