ports/90070: [MAINTAINER] mail/rabl_server: per sougb request, use "new style" RC script
Ion-Mihai Tetcu
itetcu at people.tecnik93.com
Sat Dec 10 01:11:35 UTC 2005
On Fri, 09 Dec 2005 14:44:06 -0800
Doug Barton <dougb at FreeBSD.org> wrote:
> Thanks for including me on this thread, I'm really glad to see some
> interest/progress here.
>
> Ion-Mihai Tetcu wrote:
> > On Fri, 09 Dec 2005 14:38:43 +0100
> > Pav Lucistnik <pav at FreeBSD.org> wrote:
> >
> > [ .. dougb's change is not transparent for ports that
> > USE_RC_SUBR .. ]
> >
> >>>>>> This is absolutely something that must be fixed in the
> >>>>>> infrastructure, not in every port over and over again.
>
> Agreed, and I also agree with Pav's perspective that our interests
> are best served by doing this right the first time.
That's why I posted on ports a few days ago, before sending this PR.
But I got no reply then.
> >>>>> My point exactly. And, as I've said, I'm willing to work on
> >>>>> this; I could (manually) check the USE_RC_SUBR ports over the
> >>>>> weekend to see what kind of rc script they're using. But I need
> >>>>> to know which way to go: renaming non-RCng scripts to *.sh,
> >>>>> etc., or I could try to convert them to RCmng (but this should
> >>>>> be done but maintainers, as they know better what to REQUIRE,
> >>>>> etc.)
>
> To give you an idea of what we're facing; roughly 650 ports install
> startup scripts, roughly 350 of them have been converted to use the
> new rc.d style (we don't refer to it as rcng anymore), roughly 322 of
> those have USE_RC_SUBR in the Makefile, and roughly 151 of those have
> the name of the script as the value of the variable (the rest have
> some variant of yes/YES/true, etc.).
Yes, I saw the numbers.
> In an ideal world, it would be great if all of the ports could be
> converted to the new style, but I've been very careful not to ask for
> that, as I realize it's a big chunk of work, and I'm not in a
Given what happen last time this kind of change was tried it's a very
wise position :)
> position at the moment to help with it. I would be glad to provide
> what assistance I can however. One useful idea that I'd like to pass
> on that Brooks suggested is that rather than try to convert very
> complex boot scripts, it would be easier to install that boot script
> in PREFIX/libexec, and have the rc.d-style script call that.
>
> In terms of the actual conversion, if you wanted to ensure that the
> scripts run as close as possible to their current place in the order,
> you could use # REQUIRE: localpkg
> # BEFORE: securelevel
> Otherwise, most scripts just require LOGIN, which should work fine in
> most cases. The rcorder(8) page contains all the information you need
Actually I find rcorder(8) but esp. rc(8) to be a little disappointing.
> to create simple rc.d scripts, feel free to ask on freebsd-rc@ if you
> need more help than that. FYI, the current rcorder is up at
> http://people.freebsd.org/~dougb/rcorder.all, although it's easy
> enough to reproduce if you follow what's in rc. I've attached a
Thanks you. Please include this in the rc(8); "basic services",
"general purpose daemons", etc. don't tell much, at leas to me.
> simple example of a startup script. You can actually make this even
> simpler in certain circumstances. See rcorder(8) and /etc/rc.d/usbd
> for an example.
>
> Oh, one more thing, it is no longer necessary to include
> KEYWORD: FreeBSD. It would be good however if scripts that start
> services include the KEYWORD: shutdown, and a stop_cmd that kills the
> service.
Besides shutdown and nojail are there any other keywords ?
> >>>> Is it a good thing to modify USE_RC_SUBR inside bsd.port.mk to
> >>>> install without .sh suffix if ${OSVERSION} > 7000xx and be done
> >>>> with it?
>
> Agree. Also, this will make it a LOT easier when we MFC this change,
> which I'll be ready for very soon.
We've discussed various ways and the result is the above idea with patch in:
ports/90150: update USE_RC_SUBR for >= 700007
> >>> I think so, but we must check that (1) at least all ports that
> >>> USE_RC_SUBR have RCng scripts and (2) no port relies on .sh
> >>> adding; 1 and 2 are somehow the same thing, as 2 hurts only if 1
> >>> is false.
> >>>
> >>> In the end we should have only new-style RCng scripts
> >>> (files/rc_script.in) whit ports setting USE_RC_SUBR= rc_script.in,
> >>> installed as such on HEAD (and sometime on 6-STABLE) and .sh added
> >>> for older OSVERSIONs.
>
> Agreed in principle ... in the long term we'd like to have all boot
> scripts installed as just foo, instead of foo.sh. That way we could
> return to sourcing scripts that end in .sh into the shell, in case
> someone is depending on that behavior.
>
> >> Other way around, leave USE_RC_SUBR=skript.sh and
> >> files/skript.sh.in, to avoid repo churn, and strip .sh when
> >> installing on newer OSVERSIONs.
>
> I'll leave that implementation detail up to y'all.
For now this is the way we go. When it's finished moving .sh.in ->.in
is easy.
[ ... ]
> > Hmm, since we have to check the scripts anyway, what if I convert
> > any non-RCng for ports that USE_RC_SUBR ? This is on the todo list
> > anyway. If something gets broken (== not really broken, but started
> > to late or something like that) in the process at least the
> > maintainers will have to fix them (as apposed to the current
> > situation when we still have non-RCng scripts).
>
> Given that prior to the change going into HEAD, _all_ of those
> scripts were run from /etc/rc.d/localpkg, it should be trivial (as
> above) to at least make things no worse than they were, and
> correspondingly put a tool in the hands of port authors who need
> better control over ordering.
Ideally each maintainer should convert his script; but since doesn't
happen and with the details you gave us in this email, thanks again,
we'll convert the scripts and leave fine-tuning to the maintainers.
> There is already one person who has
> sent a very well thought out message to freebsd-rc@ asking about
> this, and is excited about how he's going to be able to move forward.
>
> I also read Pav's message, and the proposed patch looks good, modulo
> the issue I mentioned above that about 170 of the ports that have
> USE_RC_SUBR do not have the name of the port as the value of the
> variable.
Old style USE_RC_SUBR; I'll go over them next week (but they shouldn't
break anything, the scripts are installed by hand with .sh).
--
IOnut - Unregistered ;) FreeBSD "user"
"Intellectual Property" is nowhere near as valuable as "Intellect"
BOFH excuse #53:
Little hamster in running wheel had coronary; waiting for replacement
to be Fedexed from Wyoming
More information about the freebsd-ports-bugs
mailing list