@@ -, +, @@ --- init.d/Makefile | 2 +- init.d/functions.sh.in | 6 ++ man/Makefile | 2 + man/einfo.3 | 205 ------------------------------------------------ man/einfo.3.in | 205 ++++++++++++++++++++++++++++++++++++++++++++++++ man/rc_runlevel.3 | 66 --------------- man/rc_runlevel.3.in | 66 +++++++++++++++ sh/Makefile | 3 - sh/gendepends.sh.in | 2 +- sh/runscript.sh.in | 2 +- 10 files changed, 282 insertions(+), 277 deletions(-) create mode 100644 init.d/functions.sh.in delete mode 100644 man/einfo.3 create mode 100644 man/einfo.3.in delete mode 100644 man/rc_runlevel.3 create mode 100644 man/rc_runlevel.3.in --- a/init.d/Makefile +++ a/init.d/Makefile @@ -1,7 +1,7 @@ DIR= ${INITDIR} SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ network.in root.in savecache.in staticroute.in swap.in swclock.in \ - sysctl.in urandom.in + sysctl.in urandom.in functions.sh.in BIN= ${OBJS} # Build our old net foo or not --- a/init.d/functions.sh.in +++ a/init.d/functions.sh.in @@ -0,0 +1,6 @@ +#!/bin/sh + +. "@LIBEXECDIR@/sh/functions.sh" + +ewarn "Warning: using @SYSCONFDIR@/init.d/functions.sh has been deprecated and" +ewarn "will be removed in the future. Please use @LIBEXECDIR@/sh/functions.sh instead!" --- a/man/Makefile +++ a/man/Makefile @@ -1,3 +1,4 @@ +SRCS=einfo.3.in rc_runlevel.3.in MAN3= einfo.3 \ rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \ rc_runlevel.3 rc_service.3 rc_stringlist.3 @@ -18,6 +19,7 @@ MAKE_LINKS= suffix=$${man\#*.}; \ MK= ../mk include ${MK}/sys.mk +include ${MK}/scripts.mk include ${MK}/gitignore.mk all: --- a/man/einfo.3 +++ a/man/einfo.3 @@ -1,205 +0,0 @@ -.\" Copyright (c) 2007-2008 Roy Marples -.\" All rights reserved -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd Mar 16, 2008 -.Dt EINFO 3 SMM -.Os OpenRC -.Sh NAME -.Nm einfo , ewarn , eerror , ebegin , -.Nm einfon , ewarnn , eerrorn , ebeginn , -.Nm einfov , ewarnv , ebeginv , -.Nm einfovn , ewarnvn , ebeginvn , -.Nm ewarnx , eerrorx , -.Nm eend , ewend , -.Nm eendv , ewendv , -.Nm ebracket , -.Nm eindent , eoutdent , -.Nm eindentv , eoutdentv , -.Nm eprefix -.Nd colorful informational output -.Sh LIBRARY -Enhanced Information output library (libeinfo, -leinfo) -.Sh SYNOPSIS -.In einfo.h -.Ft int Fn einfo "const char * restrict format" ... -.Ft int Fn ewarn "const char * restrict format" ... -.Ft int Fn eerror "const char * restrict format" ... -.Ft int Fn ebegin "const char * restrict format" ... -.Ft int Fn einfon "const char * restrict format" ... -.Ft int Fn ewarnn "const char * restrict format" ... -.Ft int Fn eerrorn "const char * restrict format" ... -.Ft int Fn ebeginn "const char * restrict format" ... -.Ft int Fn einfov "const char * restrict format" ... -.Ft int Fn ewarnv "const char * restrict format" ... -.Ft int Fn ebeginv "const char * restrict format" ... -.Ft int Fn einfovn "const char * restrict format" ... -.Ft int Fn ewarnvn "const char * restrict format" ... -.Ft int Fn ebeginvn "const char * restrict format" ... -.Ft int Fn ewarnx "const char * restrict format" ... -.Ft int Fn eerrorx "const char * restrict format" ... -.Ft int Fn eend "int retval" "const char * restrict format" ... -.Ft int Fn ewend "int retval" "const char * restrict format" ... -.Ft int Fn eendv "int retval" "const char * restrict format" ... -.Ft int Fn ewendv "int retval" "const char * restrict format" ... -.Ft void Fn ebracket "int col" "ECOLOR color" "const char * restrict msg" -.Ft void Fn eindent void -.Ft void Fn eoutdent void -.Ft void Fn eindentv void -.Ft void Fn eoutdentv void -.Ft void Fn eprefix "const char * prefix" -.Sh DESCRIPTION -The -.Fn einfo -family of functions provide a simple informational output that is colorised. -Basically -.Fn einfo , -.Fn ewarn -and -.Fn eerror -behave exactly like -.Fn printf -but prefix the output with a colored *. The function called denotes the color -used with -.Fn einfo -being green, -.Fn ewarn -being yellow and -.Fn eerror -being red. -einfo goes to stdout and the others go to stderr. -The number of real characters printed is returned. -.Fn ebegin -is identical to -.Fn einfo -except that 3 dots are appended to the output. -.Pp -.Fn einfov , -.Fn ewarnv -and -.Fn ebeginv -work the same way to -.Fn einfo , -.Fn ewarn , -and -.Fn ebegin -respectively, but only work when -.Va EINFO_VERBOSE -is true. You can also make the -.Fn einfo , -.Fn ewarn , -and -.Fn ebegin -functions silent by setting -.Va EINFO_QUIET -to true. -.Pp -These functions are designed to output a whole line, so they also -append a newline to the string. To stop this behaviour, you can use the -functions -.Fn einfon , -.Fn ewarnn , -.Fn eerrorn , -.Fn einfovn , -.Fn ewarnvn , -and -.Fn ebeginvn . -.Pp -.Fn eend , -.Fn ewend , -.Fn eendv -and -.Fn ewendv -are the counterparts to the above functions. If -.Fa retval -is zero then ok in green is printed in a bracket at the end of the prior -line. Otherwise we print the formatted string using -.Fn error -(or -.Fn ewarn -if -.Fn ewend -is called) !! in red (or yellow if -.Fn ewend -is called) is printed in a bracket at the end of the line. -The value of -.Fa retval -is returned. -.Pp -.Fn ebracket -does the same as -.Fn eend -but prints -.Fa msg -instead of ok or !! in the color -.Fa color -at the column -.Fa col . -.Pp -.Fn eindent -indents subsequent calls to the above functions by 3 characters. -.Fn eoutdent -removes an -.Fn eindent . -.Fn eindentv -and -.Fn eoutdentv -only work when -.Va EINFO_VERBOSE -is true. -.Pp -.Fn eprefix -prefixes the string -.Fa prefix -to the above functions. -.Sh IMPLEMENTATION NOTES -einfo can optionally be linked against the -.Lb libtermcap -so that we can correctly query the connected console for our color and -cursor escape codes. -If not, then we have a hard coded list of terminals we know about that support -the commonly used codes for color and cursor position. -.Sh ENVIRONMENT -.Va EINFO_QUIET -when set to true makes the -.Fn einfo -and -.Fn einfon -family of functions quiet, so nothing is printed. -.Pp -.Va EINFO_VERBOSE -when set to true makes the -.Fn einfov -and -.Fn einfovn -family of functions work, so they do print. -.Sh FILES -.Pa /etc/init.d/functions.sh -is provided by OpenRC, which allows shell scripts to use the above functions. -For historical reasons our verbose functions are prefixed with v instead of -suffixed. So einfov becomes veinfo, einfovn becomes veinfon. -Rinse and repeat for the other verbose functions. -.Sh SEE ALSO -.Xr printf 3 , -.Sh AUTHORS -.An Roy Marples --- a/man/einfo.3.in +++ a/man/einfo.3.in @@ -0,0 +1,205 @@ +.\" Copyright (c) 2007-2008 Roy Marples +.\" All rights reserved +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd Mar 16, 2008 +.Dt EINFO 3 SMM +.Os OpenRC +.Sh NAME +.Nm einfo , ewarn , eerror , ebegin , +.Nm einfon , ewarnn , eerrorn , ebeginn , +.Nm einfov , ewarnv , ebeginv , +.Nm einfovn , ewarnvn , ebeginvn , +.Nm ewarnx , eerrorx , +.Nm eend , ewend , +.Nm eendv , ewendv , +.Nm ebracket , +.Nm eindent , eoutdent , +.Nm eindentv , eoutdentv , +.Nm eprefix +.Nd colorful informational output +.Sh LIBRARY +Enhanced Information output library (libeinfo, -leinfo) +.Sh SYNOPSIS +.In einfo.h +.Ft int Fn einfo "const char * restrict format" ... +.Ft int Fn ewarn "const char * restrict format" ... +.Ft int Fn eerror "const char * restrict format" ... +.Ft int Fn ebegin "const char * restrict format" ... +.Ft int Fn einfon "const char * restrict format" ... +.Ft int Fn ewarnn "const char * restrict format" ... +.Ft int Fn eerrorn "const char * restrict format" ... +.Ft int Fn ebeginn "const char * restrict format" ... +.Ft int Fn einfov "const char * restrict format" ... +.Ft int Fn ewarnv "const char * restrict format" ... +.Ft int Fn ebeginv "const char * restrict format" ... +.Ft int Fn einfovn "const char * restrict format" ... +.Ft int Fn ewarnvn "const char * restrict format" ... +.Ft int Fn ebeginvn "const char * restrict format" ... +.Ft int Fn ewarnx "const char * restrict format" ... +.Ft int Fn eerrorx "const char * restrict format" ... +.Ft int Fn eend "int retval" "const char * restrict format" ... +.Ft int Fn ewend "int retval" "const char * restrict format" ... +.Ft int Fn eendv "int retval" "const char * restrict format" ... +.Ft int Fn ewendv "int retval" "const char * restrict format" ... +.Ft void Fn ebracket "int col" "ECOLOR color" "const char * restrict msg" +.Ft void Fn eindent void +.Ft void Fn eoutdent void +.Ft void Fn eindentv void +.Ft void Fn eoutdentv void +.Ft void Fn eprefix "const char * prefix" +.Sh DESCRIPTION +The +.Fn einfo +family of functions provide a simple informational output that is colorised. +Basically +.Fn einfo , +.Fn ewarn +and +.Fn eerror +behave exactly like +.Fn printf +but prefix the output with a colored *. The function called denotes the color +used with +.Fn einfo +being green, +.Fn ewarn +being yellow and +.Fn eerror +being red. +einfo goes to stdout and the others go to stderr. +The number of real characters printed is returned. +.Fn ebegin +is identical to +.Fn einfo +except that 3 dots are appended to the output. +.Pp +.Fn einfov , +.Fn ewarnv +and +.Fn ebeginv +work the same way to +.Fn einfo , +.Fn ewarn , +and +.Fn ebegin +respectively, but only work when +.Va EINFO_VERBOSE +is true. You can also make the +.Fn einfo , +.Fn ewarn , +and +.Fn ebegin +functions silent by setting +.Va EINFO_QUIET +to true. +.Pp +These functions are designed to output a whole line, so they also +append a newline to the string. To stop this behaviour, you can use the +functions +.Fn einfon , +.Fn ewarnn , +.Fn eerrorn , +.Fn einfovn , +.Fn ewarnvn , +and +.Fn ebeginvn . +.Pp +.Fn eend , +.Fn ewend , +.Fn eendv +and +.Fn ewendv +are the counterparts to the above functions. If +.Fa retval +is zero then ok in green is printed in a bracket at the end of the prior +line. Otherwise we print the formatted string using +.Fn error +(or +.Fn ewarn +if +.Fn ewend +is called) !! in red (or yellow if +.Fn ewend +is called) is printed in a bracket at the end of the line. +The value of +.Fa retval +is returned. +.Pp +.Fn ebracket +does the same as +.Fn eend +but prints +.Fa msg +instead of ok or !! in the color +.Fa color +at the column +.Fa col . +.Pp +.Fn eindent +indents subsequent calls to the above functions by 3 characters. +.Fn eoutdent +removes an +.Fn eindent . +.Fn eindentv +and +.Fn eoutdentv +only work when +.Va EINFO_VERBOSE +is true. +.Pp +.Fn eprefix +prefixes the string +.Fa prefix +to the above functions. +.Sh IMPLEMENTATION NOTES +einfo can optionally be linked against the +.Lb libtermcap +so that we can correctly query the connected console for our color and +cursor escape codes. +If not, then we have a hard coded list of terminals we know about that support +the commonly used codes for color and cursor position. +.Sh ENVIRONMENT +.Va EINFO_QUIET +when set to true makes the +.Fn einfo +and +.Fn einfon +family of functions quiet, so nothing is printed. +.Pp +.Va EINFO_VERBOSE +when set to true makes the +.Fn einfov +and +.Fn einfovn +family of functions work, so they do print. +.Sh FILES +.Pa @LIBEXECDIR@/sh/functions.sh +is provided by OpenRC, which allows shell scripts to use the above functions. +For historical reasons our verbose functions are prefixed with v instead of +suffixed. So einfov becomes veinfo, einfovn becomes veinfon. +Rinse and repeat for the other verbose functions. +.Sh SEE ALSO +.Xr printf 3 , +.Sh AUTHORS +.An Roy Marples --- a/man/rc_runlevel.3 +++ a/man/rc_runlevel.3 @@ -1,66 +0,0 @@ -.\" Copyright (c) 2007-2008 Roy Marples -.\" All rights reserved -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd Mar 16, 2008 -.Dt RC_RUNLEVEL 3 SMM -.Os OpenRC -.Sh NAME -.Nm rc_runlevel_get , rc_runlevel_exists , rc_runlevel_list , rc_runlevel_set , -.Nm rc_runlevel_starting , rc_runlevel_stopping -.Nd RC runlevel functions -.Sh LIBRARY -Run Command library (librc, -lrc) -.Sh SYNOPSIS -.In rc.h -.Ft "char *" Fn rc_runlevel_get void -.Ft bool Fn rc_runlevel_exists -.Ft "RC_STRINGLIST *" Fn rc_runlevel_list void -.Ft bool Fn rc_runlevel_set "const char *runlevel" -.Ft bool Fn rc_runlevel_starting void -.Ft bool Fn rc_runlevel_stopping void -.Sh DESCRIPTION -These functions provide a means of querying OpenRC to find out which runlevel -we are in and what services are in which runlevel. -.Sh IMPLEMENTATION NOTES -Each function that returns -.Fr "char *" -returns a malloced NULL terminated string that should be freed when done. -.Pp -Each function that returns -.Fr "RC_STRINGLIST *" -should by freed by calling -.Fn rc_stringlist_free -when done. -.Sh FILES -.Pa /etc/init.d/functions.sh -is provided by OpenRC, which allows shell scripts to use the above functions. -For historical reasons our verbose functions are prefixed with v instead of -suffixed. So einfov becomes veinfo, einfovn becomes veinfon. -Rinse and repeat for the other verbose functions. -.Sh SEE ALSO -.Xr malloc 3 , -.Xr free 3 -.Xr rc_stringlist_free 3 -.Sh AUTHORS -.An Roy Marples --- a/man/rc_runlevel.3.in +++ a/man/rc_runlevel.3.in @@ -0,0 +1,66 @@ +.\" Copyright (c) 2007-2008 Roy Marples +.\" All rights reserved +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd Mar 16, 2008 +.Dt RC_RUNLEVEL 3 SMM +.Os OpenRC +.Sh NAME +.Nm rc_runlevel_get , rc_runlevel_exists , rc_runlevel_list , rc_runlevel_set , +.Nm rc_runlevel_starting , rc_runlevel_stopping +.Nd RC runlevel functions +.Sh LIBRARY +Run Command library (librc, -lrc) +.Sh SYNOPSIS +.In rc.h +.Ft "char *" Fn rc_runlevel_get void +.Ft bool Fn rc_runlevel_exists +.Ft "RC_STRINGLIST *" Fn rc_runlevel_list void +.Ft bool Fn rc_runlevel_set "const char *runlevel" +.Ft bool Fn rc_runlevel_starting void +.Ft bool Fn rc_runlevel_stopping void +.Sh DESCRIPTION +These functions provide a means of querying OpenRC to find out which runlevel +we are in and what services are in which runlevel. +.Sh IMPLEMENTATION NOTES +Each function that returns +.Fr "char *" +returns a malloced NULL terminated string that should be freed when done. +.Pp +Each function that returns +.Fr "RC_STRINGLIST *" +should by freed by calling +.Fn rc_stringlist_free +when done. +.Sh FILES +.Pa @LIBEXECDIR@/sh/functions.sh +is provided by OpenRC, which allows shell scripts to use the above functions. +For historical reasons our verbose functions are prefixed with v instead of +suffixed. So einfov becomes veinfo, einfovn becomes veinfon. +Rinse and repeat for the other verbose functions. +.Sh SEE ALSO +.Xr malloc 3 , +.Xr free 3 +.Xr rc_stringlist_free 3 +.Sh AUTHORS +.An Roy Marples --- a/sh/Makefile +++ a/sh/Makefile @@ -12,9 +12,6 @@ include Makefile.${OS} include ${MK}/scripts.mk _installafter: - ${INSTALL} -d ${DESTDIR}/${INITDIR} - @# Put functions.sh into init for backwards compat - ln -snf ${LIBEXECDIR}/sh/functions.sh ${DESTDIR}/${INITDIR} || exit $$? check test:: ./runtests.sh --- a/sh/gendepends.sh.in +++ a/sh/gendepends.sh.in @@ -4,7 +4,7 @@ # Copyright (c) 2007-2009 Roy Marples # All rights reserved. Released under the 2-clause BSD license. -. @SYSCONFDIR@/init.d/functions.sh +. @LIBEXECDIR@/sh/functions.sh . @LIBEXECDIR@/sh/rc-functions.sh config() { --- a/sh/runscript.sh.in +++ a/sh/runscript.sh.in @@ -28,7 +28,7 @@ if [ ! -e ${RC_SVCDIR}/softlevel ]; then exit 1 fi -sourcex "@SYSCONFDIR@/init.d/functions.sh" +sourcex "@LIBEXECDIR@/sh/functions.sh" sourcex "@LIBEXECDIR@/sh/rc-functions.sh" # Support LiveCD foo --