Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Feb 2004 13:14:52 +0100
From:      Oliver Eikemeier <eikemeier@fillmore-labs.com>
To:        Mike Makonnen <mtm@identd.net>
Cc:        freebsd-arch@FreeBSD.org
Subject:   Re: rc.d and ports
Message-ID:  <403B403C.7040701@fillmore-labs.com>
In-Reply-To: <20040224103932.GA20467@mobile.acs-et.com>
References:  <20040223084146.GA4202@mobile.acs-et.com> <4039D9FF.40208@fillmore-labs.com> <20040224072401.GB1125@mobile.acs-et.com> <403B206B.7000101@fillmore-labs.com> <20040224103932.GA20467@mobile.acs-et.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mike Makonnen wrote:

> On Tue, Feb 24, 2004 at 10:59:07AM +0100, Oliver Eikemeier wrote:
> 
>>I guess I don't fully understand what modifications you suggest for the
>>ports. What is needed to fit into rc.d?
> 
> The modification I ask for in my initial email :-)
> If ports want to be a part of rc.d then they must use appropriate rc.d
> mechanisms. My rc.d modification to support
> /usr/local/etc/{rc.conf,defaults/rc.conf,rc.conf.d} are necessary
> so that ports configuration knobs don't pollute the enviroment for
> base system scripts.  But other than that, it should be up to the
> ports to fit into the rc.d scheme.

I guess we agree here. I'll post a follow-up with uses
${PREFIX}/etc/{rc.conf,defaults/rc.conf,rc.conf.d} too. The problem here
is that you'll have to support different prefixes, like /usr/X11R6.
 
> The problem with your patch is that it is a bunch of hacks to
> rc.d to semi-incorporate ports into the rc.d mechanism. My point
> is: don't hack rc.d to semi-incorporate ports. Instead, we should
> fully incorporate ports into rc.d.

... which this patch tries do.

>>>>I guess we don't need this (and shouldn't do it, since 
>>>>${PREFIX}/etc/defaults/rc.conf
>>>>might be read-only). Defaulting xxx_enable to "NO" seems to be 
>>>>sufficient, with
>>>>
>>>>[ -z "$xxx_enable" ] && xxx_enable="NO"
>>>>or
>>>>xxx_enable=${xxx_enable:-"NO"}
>>>>before calling load_rc_config $name
>>>
>>>Again, why special-case ports scripts ?
>>
>>Because the defaults belong to the port, not to the base system. I want them
>>to go away with the port. Nobody (and especially not ports) should edit
>>whatever/defaults/rc.conf, and how would I otherwise cope with the situation
>>that default flags may change?
> 
> Then the ports can use /usr/local/etc/rc.conf.d. When the port is deleted
> it can just delete the appropriate conf file in that directory without the
> need to edit any files.

${PREFIX}/etc/rc.conf.d files may be edited by the user, so you can't simply
delete them.

>>I guess I incorporate ${PREFIX}/etc/defaults/rc.conf and another change in
>>PR 56736, the main point there was that I wanted them to participate in 
>>rcorder,
>>which I believe is a good thing, especially when you consider the 
>>possibility
>>to move sendmail or other parts of the base system to ports.
>>
>>So I understand that sourcing ${PREFIX}/etc/defaults/rc.conf is the main
>>reservation that you have against this patch?
> 
> No. As I have tried to state already I don't like it because it is an
> unnecesary hack. As for participating in rcorder(8), first the ports
> have to support all the rc.d mechanisms. Your patch simply hacks rc.d
> to allow those ports that choose to use some of the rc.subr functionality
> to participate in rcorder(8)ing. What should happen is that our ports
> infrastructure should fully support rc.d and all ports scripts should
> be modified to work with rc.d. Otherwise, we will have lots of confused
> users wondering why some ports are ordered with the base system scripts and
> others are not.

I get your point, but currently there is no way to convert *all* ports, we
don't have the manpower to convert and test them all. So we need a transition
path, where we may deprecate older scripts at some point. I guess we agree
that ${PREFIX}/etc/rc.conf should be sourced by ports rc.d scripts, but this
is not enough to integrate ports in rc.d without breaking the existing ports
base. The patch, supplemented by ${PREFIX}/etc/{rc.conf,defaults/rc.conf,rc.conf.d}
*is* a step forward in that direction.

-Oliver



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?403B403C.7040701>