HEADS UP: change in ports rc.d script behaviour
mtm at identd.net
Sat Jul 24 08:08:07 PDT 2004
The rc.d/loclpkg script now "does the right thing" with respect
to ports rc.d scripts. The most disruptive change is that scripts
ending in *.sh are sourced in the same shell as rc.d/localpkg (as
opposed to a subshell) and may cause the script to end prematurely
if a script calls exit. Some broken scripts may not recognize the
'fast' prefix to a command. The first problem can be fixed by simply
renaming the script so that it doesn't have a '.sh' ending. Another
temporary work-arround is to completely remove the 'PROVIDE' line
from the script. If you notice a broken ports rc.d script please
notify the maintainer. Legacy scripts should not be affected.
__FreeBSD_version bumped to 502124.
This update to the rc.d/localpkg attempts to normalize the behaviour
or ports rc.d scripts with that of the base system scripts. This may
break your ports scripts. Please report any breakage to the port's
maintainer so the script can be fixed.
Some tips on fixing scripts:
1. Use a return statement instead of exit in a '*.sh' script
2. Put the entire current contents of the script in a function and
then execute that function in a subshell. For example:
( foo_script $*)
3. Install the script without a '.sh' ending
I know this commit breaks the print/cups port and eik@ has said that the
following ports are also broken:
Mike Makonnen | GPG-KEY: http://www.identd.net/~mtm/mtm.asc
mtm at identd.net | Fingerprint: AC7B 5672 2D11 F4D0 EBF8 5279 5359 2B82 7CD4 1F55
mtm at FreeBSD.Org| FreeBSD - Unleash the Daemon !
More information about the freebsd-ports