RFC: Alternate patch to have true new-style rc.d scripts in
ports (without touching localpkg)
Oliver Eikemeier
eikemeier at fillmore-labs.com
Sat Jul 31 10:20:59 PDT 2004
Mike Makonnen wrote:
> [...]
> Ok, can you do the following then:
>>>
>>> 1. When you (portmgr) are ready put back the rc.d/localpkg changes
>>> 2. Put the ordering of ports scripts with base system
>>> scripts behind an rc.conf(5) knob, and modify your patch so both
>>> /etc/rc and /etc/rc.d/localpkg do the right thing depending on
>>> whether
>>> it's on or off.
>>
>> I suggest changing the extension for sourcing scripts to `.rc' and
>> ignore `.sh' scripts in rc/rc.shutdown. The unmodified localpkg
>> should handle these.
>
> As I have already said, this is a gratuitous digression to support
> buggy rc.d ports script who's bugginess has only existed on
> 5-CURRENT up to now.
New features might break existing stuff, which doesn't imply that have
been buggy. Usually you do an estimation of effort versus gain (at least
that is what I usually do), and decide what is more promising to bring
you forward.
I made two proposals:
Either
- allow new ports scripts to participate in rcorder(8), but disallow
sourcing of scripts in /usr/local/etc/rc.d. Keep the historical
difference that `.sh' scripts in /etc/rc.d are sourced, while `.sh'
scripts in /usr/local/etc/rc.d are treated as old-style. No fixing will
be necessary, but ports have to be changed to use the new functionality,
supported by code in bsd.port.mk. Old or installed packages continue to
work as usual.
or
- allow new ports scripts to participate in rcorder(8), and change the
extension for sourcing of scripts to `.rc'. All `.sh' scripts will be
treated as old-style, no matter whether they are in /etc/rc.d or
/usr/local/etc/rc.d. Two scripts in /etc/rc.d (early.sh and rcconf.sh)
have to be renamed, but no further fixing is necessary. Ports have to be
changed to use the new functionality, supported by code in bsd.port.mk.
Old or installed packages continue to work as usual.
As far as I understand your proposals are:
- put the localpkg commit back (which does rcorder(8) in ports, but not
system-wide, so starting ports services early is still not possible) and
let portmgr deal with the breakage
- source rc.d `.sh' conditionally on a configuration parameter in either
/etc/rc or localpkg, and do rcorder(8) depending on that parameter. ~
100 ports have to be fixed and tested so that they will work correctly
with the new semantics, and 5.0, 5.1, 5.2 and 5.2.1 are required to
upgrade. New systems can not use old packages and have to upgrade
installed ones.
> Since, you and I don't seem to agree on this issue and since we both
> don't seem to be restating the same things over and over againg.
> why don't we refrain for replying to this thread unless we have
> something
> new to add?
Perhaps it would be beneficial if we summarize our proposals, so that we
can have something like a ballot or ask re@ for their opinion. You might
want to correct my summary of your proposals, since I'm sure I
misunderstood some of your arguments.
-Oliver
More information about the freebsd-rc
mailing list