Re: revdep-rebuild

cjvt <[email protected]>
Newsgroups gmane.linux.gentoo.user.hungarian
Message-ID <[email protected]>
2008. október 6. dátummal George Hron ezt írta:
> Hat nem tudom, ez igy nem tunik a legjobb otletnek. Valoszinu, hogy
> kiolvassa a symlinket. Szerintem a /var/cache -t szedd le a /var/mnt alol.
> Masik lehetoseg a /var/mnt helyett a /var-ba mountolni, a szerverek cuccait
> meg szepen eltenni onnan, mondjuk a /srv konyvtarba (en ezt szoktam eleve
> csinalni).


Igen, ez eddig vilagos, csak ez esetben az erdekelne, hogy vajon miert is 
dontott igy barmely fejleszto (merthogy az elmult par ev gentoolkitjei 
bekeben megfertek ezzel a megoldassal).

Tovabba, ennyi erovel akar legkozelebb az lehet a problemaja, hogy teszem azt 
a /var vagy /var/cache nem a /-al azonos particion helyezkedik el, tagabb 
ertelemben pedig barmi mas is lehet kotozkodni valoja (mondjuk tul nagy a 
particio, vagy raid-ban van, vagy akarmi), hiszen miert is ne?

Olyba tunik nekem a debug kimenetbol, hogy

local uid=root
+ [[ root == \r\o\o\t ]]
+ local tmp_target=/var/cache/revdep-rebuild
+ verify_tmpdir /var/cache/revdep-rebuild root
+ umask 007

a tmp_target nevu, userhez kotott kornyezeti valtozot olvassa ki valahonnan 
(mar ti. feltetelezve, hogy igazam van). Ezt vajon felul tudnam biralni a 
bash env-ben, vagy barhol mashol?


vagy proba-cseresznye? :)

vt


>
> 2008/10/4 cjvt <[email protected]>
>
> > Üdv,
> >
> > elöljáróban:
> >
> > az érintett rendszeren a következő symlinkek léteznek (mármint adekvát) a
> > /var
> > könyvtár alatt:
> >
> > lrwxrwxrwx  1 amavis amavis   15 jún 11 14.26 amavis -> /var/mnt/amavis
> > lrwxrwxrwx  1 root   root     14 jún 11 14.26 cache -> /var/mnt/cache
> > lrwxrwxrwx  1 root   root     12 jún 11 14.26 tmp -> /var/mnt/tmp
> >
> > A /var/mnt tartalma
> >
> > # ls -la /var/mnt/
> > összesen 20
> > drwxr-xr-x  5 root   root   4096 jún 11 14.32 .
> > drwxr-xr-x 14 root   root   4096 jún 11 14.26 ..
> > drwxr-xr-x  8 amavis amavis 4096 szept 28 15.34 amavis
> > drwxr-xr-x  9 root   root   4096 okt  4 09.56 cache
> > drwxrwxrwt  8 root   root   4096 okt  4 10.27 tmp
> >
> > A /var könyvtár a /-el megegyező, a /var/mnt egy másik partíció.
> >
> > Ezzel eleddig semmiféle probléma nem akadt.
> >
> > A mai napom azonban frissítettem
> >
> > app-portage/gentoolkit-0.2.4.2 -re
> >
> > azota a revdep-rebuild a következő hibát dobja:
> >
> > # revdep-rebuild
> >  * Configuring search environment for revdep-rebuild
> >  * Working directory expected to be /var/cache/revdep-rebuild, but it
> > is /var/mnt/cache/revdep-rebuild
> >
> > Van vkinek ötlete, hogy miért, és hogyan is lehetne lebeszélni a
> > hibaüzenetről?
> >
> >
> > vt
> >
> >
> > a revdep-rebuild -d kimenete (a közvetlenül erintett rész a legvégén):
> >
> > + getopts :CdehikL:loPpqu:vX OPT
> > + unset args
> > + [[ -n '' ]]
> > + setup_color
> > portageq envvar NOCOLOR
> > ++ portageq envvar NOCOLOR
> > + export NOCOLOR=
> > + NOCOLOR=
> > + [[ '' = yes ]]
> > + [[ '' = true ]]
> > + . /etc/init.d/functions.sh
> > # Copyright 1999-2007 Gentoo Foundation
> > # Distributed under the terms of the GNU General Public License v2
> >
> > RC_GOT_FUNCTIONS="yes"
> > ++ RC_GOT_FUNCTIONS=yes
> >
> > # Override defaults with user settings ...
> > [[ -f /etc/conf.d/rc ]] && source /etc/conf.d/rc
> > ++ [[ -f /etc/conf.d/rc ]]
> > ++ source /etc/conf.d/rc
> > # /etc/conf.d/rc: Global config file for the Gentoo RC System
> >
> > # This is the number of tty's used in most of the rc-scripts (like
> > # consolefont, numlock, etc ...)
> >
> > RC_TTY_NUMBER=11
> > +++ RC_TTY_NUMBER=11
> >
> > # Set to "yes" if you want the rc system to try and start services
> > # in parallel for a slight speed improvement. NOTE: When
> > RC_PARALLEL_STARTUP
> > # is enabled, init script output is replaced with simple "service foo
> > # starting/stopping" messages so that output is not mixed up.
> > # You can stop this from happening on the command line by passing
> > --verbose # to the init script or by setting RC_VERBOSE="yes" below.
> >
> > RC_PARALLEL_STARTUP="no"
> > +++ RC_PARALLEL_STARTUP=no
> >
> > # Set RC_INTERACTIVE to "yes" and you'll be able to press the I key
> > during # boot so you can choose to start specific services. Set to "no"
> > to disable # this feature.
> >
> > RC_INTERACTIVE="yes"
> > +++ RC_INTERACTIVE=yes
> >
> > # Do we allow services to be hotplugged? If not, set to RC_HOTPLUG="no"
> > # NOTE: This does not affect anything hotplug/udev related, just the
> > # starting/stopping of the init.d service triggered by hotplug.
> >
> > RC_HOTPLUG="yes"
> > +++ RC_HOTPLUG=yes
> >
> > # Dynamic /dev managers can trigger coldplug events which cause services
> > to # start before we are ready for them. If this happens, we can defer
> > these # services to start in the boot runlevel. Set RC_COLDPLUG="no" if
> > you don't # want this.
> > # NOTE: This also affects module coldplugging in udev-096 and higher
> > # If you want module coldplugging but not coldplugging of services then
> > you # can set RC_COLDPLUG="yes" and RC_PLUG_SERVICES="!*"
> >
> > RC_COLDPLUG="yes"
> > +++ RC_COLDPLUG=yes
> >
> > # Some people want a finer grain over hotplug/coldplug. RC_PLUG_SERVICES
> > is a
> > # list of services that are matched in order, either allowing or not. By
> > # default we allow services through as RC_COLDPLUG/RC_HOTPLUG has to be
> > yes # anyway.
> > # Example - RC_PLUG_SERVICES="net.wlan !net.*"
> > # This allows net.wlan and any service not matching net.* to be plugged.
> >
> > RC_PLUG_SERVICES=""
> > +++ RC_PLUG_SERVICES=
> >
> > # RC_NET_STRICT_CHECKING allows some flexibility with the 'net' service.
> > # The following values are allowed:
> > #  none  - The 'net' service is always considered up.
> > #  no    - This basically means that at least one net.* service besides
> > net.lo
> > #          must be up.  This can be used by notebook users that have a
> > wifi and
> > #          a static nic, and only wants one up at any given time to have
> > the
> > #          'net' service seen as up.
> > #  lo    - This is the same as the 'no' option, but net.lo is also
> > counted. #          This should be useful to people that do not care
> > about any specific
> > #          interface being up at boot.
> > #  yes   - For this ALL network interfaces MUST be up for the 'net'
> > service to
> > #          be considered up.
> >
> > RC_NET_STRICT_CHECKING="no"
> > +++ RC_NET_STRICT_CHECKING=no
> >
> > # RC_DOWN_INTERFACE allows you to specify if RC will bring the interface
> > # completely down when it stops. The default is yes, but there are some
> > # instances where you may not want this to happen such as using Wake On
> > LAN.
> >
> > RC_DOWN_INTERFACE="yes"
> > +++ RC_DOWN_INTERFACE=yes
> >
> > # RC_VOLUME_ORDER allows you to specify, or even remove the volume setup
> > # for various volume managers (MD, EVMS2, LVM, DM, etc).  Note that they
> > are
> > # stopped in reverse order.
> >
> > RC_VOLUME_ORDER="raid evms lvm dm"
> > +++ RC_VOLUME_ORDER='raid evms lvm dm'
> >
> > # RC_VERBOSE will make init scripts more verbose. Only networking scripts
> > # really use this at this time, and this is useful for trouble shooting
> > # any issues you may have.
> > # This is also used to re-enable init script output for init scripts
> > # started or stopped from the command line.
> >
> > RC_VERBOSE="no"
> > +++ RC_VERBOSE=no
> >
> > # RC_BOOTLOG will generate a log of the boot messages shown on the
> > console. # Useful for headless machines or debugging.  You need to emerge
> > the # app-admin/showconsole package for this to work.  Note that this
> > probably # won't work correctly with boot splash.
> >
> > RC_BOOTLOG="no"
> > +++ RC_BOOTLOG=no
> >
> > # Set to "yes" if you want to benchmark system boot with bootchart.
> > # You'll need to emerge the app-benchmarks/bootchart package for this to
> > work.
> >
> > RC_BOOTCHART="no"
> > +++ RC_BOOTCHART=no
> >
> > # RC_USE_FSTAB allows you to override the default mount options for the
> > # standard /proc, /sys, /dev, and /dev/pts mount points.  Note that this
> > # is the new way for selecting ramfs/tmpfs/etc... for udev mounting.
> >
> > RC_USE_FSTAB="no"
> > +++ RC_USE_FSTAB=no
> >
> > # RC_USE_CONFIG_PROFILE allows you to have different /etc/conf.d files
> > # based on your runlevel - if a conf.d file for your profile does not
> > exist # then we try and use the default one.
> > # To enable runlevel selection at boot, append "softlevel=foobar" to your
> > # kernel line to change to the foobar runlevel.  Here we would search for
> > # /etc/conf.d/<service>.foobar config files before trying to use the
> > default
> > # /etc/conf.d/<service>.
> > # Note that it is only active if 'softlevel' was specified via the kernel
> > line,
> > # and it is intended to use for different grub/lilo entries to specify
> > config
> > # changes for say laptops between home and work, where you would have
> > setup # 'work' and 'home' runlevels, with /etc/conf.d/*.<runlevel> as
> > needed.
> >
> > RC_USE_CONFIG_PROFILE="yes"
> > +++ RC_USE_CONFIG_PROFILE=yes
> >
> > # RC_FORCE_AUTO tries its best to prevent user interaction during the
> > boot and
> > # shutdown process.  For example, fsck will automatically be run or
> > volumes # remounted to create proper directory trees.  This feature can
> > be dangerous
> > # and is meant ONLY for headless machines where getting a physical
> > console # hooked up is a huge pita.
> >
> > RC_FORCE_AUTO="no"
> > +++ RC_FORCE_AUTO=no
> >
> > # Use this variable to control the /dev management behavior.
> > #  auto   - let the scripts figure out what's best at boot
> > #  devfs  - use devfs (requires sys-fs/devfsd)
> > #  udev   - use udev (requires sys-fs/udev)
> > #  static - let the user manage /dev (YOU need to create ALL device
> > nodes)
> >
> > RC_DEVICES="auto"
> > +++ RC_DEVICES=auto
> >
> > # UDEV OPTION:
> > # Set to "yes" if you want to save /dev to a tarball on shutdown
> > # and restore it on startup.  This is useful if you have a lot of
> > # custom device nodes that udev does not handle/know about.
> >
> > RC_DEVICE_TARBALL="no"
> > +++ RC_DEVICE_TARBALL=no
> >
> > # RC_DMESG_LEVEL sets the level at which logging of messages is done to
> > the # console.  See dmesg(8) for more info.
> >
> > RC_DMESG_LEVEL="1"
> > +++ RC_DMESG_LEVEL=1
> >
> >
> >
> >
> >
> > #
> > # Controlling start-stop-daemon behavior
> >
> > # Set to "yes" if start-stop-daemon should always retry killing the
> > # service with sig KILL if it fails the first time.
> >
> > RC_RETRY_KILL="yes"
> > +++ RC_RETRY_KILL=yes
> >
> >
> > # Set the amount of seconds start-stop-daemon should wait between
> > # retries.
> >
> > RC_RETRY_TIMEOUT=1
> > +++ RC_RETRY_TIMEOUT=1
> >
> >
> > # Set the amount of times start-stop-daemon should try to kill
> > # a service before giving up.
> >
> > RC_RETRY_COUNT=5
> > +++ RC_RETRY_COUNT=5
> >
> >
> > # Set to "yes" if start-stop-daemon should fail if the service
> > # is marked as started, but not actually running on stop.
> >
> > RC_FAIL_ON_ZOMBIE="no"
> > +++ RC_FAIL_ON_ZOMBIE=no
> >
> >
> > # Set to "yes" if start-stop-daemon should attempt to kill
> > # any children left in the system.
> > # Be careful with this as it really does what it was on the tin.
> > # fex, if you're in an ssh process and you restart a service on which ssh
> > # depends then your terminal will be killed also.
> >
> > RC_KILL_CHILDREN="no"
> > +++ RC_KILL_CHILDREN=no
> >
> >
> > # Set the amount of seconds start-stop-daemon waits after starting
> > # the daemon to check it is still running. If it's not then we
> > # try and stop any children if possible.
> > RC_WAIT_ON_START="0.1"
> > +++ RC_WAIT_ON_START=0.1
> >
> >
> >
> > #########################################################################
> >##### # SERVICE CONFIGURATION VARIABLES
> > # These variables are documented here, but should be configured in
> > # /etc/conf.d/foo for service foo and NOT enabled here unless you
> > # really want them to work on a global basis.
> >
> > # Some daemons are started and stopped via start-stop-daemon.
> > # We can launch them through other daemons here, for example valgrind.
> > # This is only useful for serious debugging of the daemon
> > # WARNING: If the script's "stop" function does not supply a PID file
> > then # all processes using the same daemon will be killed.
> > #RC_DAEMON="/usr/bin/valgrind --tool=memcheck
> > --log-file=/tmp/valgrind.syslog-ng"
> >
> > # strace needs to be prefixed with --background as it does not detach
> > when # it's following
> > #RC_DAEMON="--background /usr/sbin/strace -f -o /tmp/strace.syslog-ng"
> >
> > # Pass ulimit parameters
> > #RC_ULIMIT="-u 30"
> >
> >
> > #########################################################################
> >#####
> >
> >
> > #
> > # Internal configuration variables
> > #
> > # NB:  These are for advanced users, and you should really
> > #      know what you are doing before changing them!
> > #
> >
> > # rc-scripts dep-cache directory
> > #
> > # NOTE:  Do not remove the next line, as its needed by the baselayout
> > ebuild!
> > #
> > #  svcdir="/var/lib/init.d"
> >
> > svcdir="/var/lib/init.d"
> > +++ svcdir=/var/lib/init.d
> >
> > # Should we mount $svcdir in a ram disk for some speed increase
> > # for slower machines, or for the more extreme setups ?
> >
> > svcmount="no"
> > +++ svcmount=no
> >
> > # FS type that should be used for $svcdir.  Note that you need
> > # $svcmount above set to "yes" for this to work ...  Currently
> > # tmpfs, ramfs, and ramdisk are supported (tmpfs is the default).
> >
> > svcfstype="tmpfs"
> > +++ svcfstype=tmpfs
> >
> > # Size of $svcdir in KB.  Note that ramfs doesn't support this
> > # due to kernel limitations.
> >
> > svcsize=2048
> > +++ svcsize=2048
> >
> > # Check /etc/conf.d/rc for a description of these ...
> > declare -r svclib="/lib/rcscripts"
> > ++ declare -r svclib=/lib/rcscripts
> > declare -r svcdir="${svcdir:-/var/lib/init.d}"
> > ++ declare -r svcdir=/var/lib/init.d
> > svcmount="${svcmount:-no}"
> > ++ svcmount=no
> > svcfstype="${svcfstype:-tmpfs}"
> > ++ svcfstype=tmpfs
> > svcsize="${svcsize:-1024}"
> > ++ svcsize=2048
> >
> > # Different types of dependencies
> > deptypes="need use"
> > ++ deptypes='need use'
> > # Different types of order deps
> > ordtypes="before after"
> > ++ ordtypes='before after'
> >
> > #
> > # Internal variables
> > #
> >
> > # Dont output to stdout?
> > RC_QUIET_STDOUT="${RC_QUIET_STDOUT:-no}"
> > ++ RC_QUIET_STDOUT=no
> > RC_VERBOSE="${RC_VERBOSE:-no}"
> > ++ RC_VERBOSE=no
> >
> > # Should we use color?
> > RC_NOCOLOR="${RC_NOCOLOR:-no}"
> > ++ RC_NOCOLOR=no
> > # Can the terminal handle endcols?
> > RC_ENDCOL="yes"
> > ++ RC_ENDCOL=yes
> >
> > #
> > # Default values for rc system
> > #
> > RC_TTY_NUMBER="${RC_TTY_NUMBER:-11}"
> > ++ RC_TTY_NUMBER=11
> > RC_PARALLEL_STARTUP="${RC_PARALLEL_STARTUP:-no}"
> > ++ RC_PARALLEL_STARTUP=no
> > RC_NET_STRICT_CHECKING="${RC_NET_STRICT_CHECKING:-no}"
> > ++ RC_NET_STRICT_CHECKING=no
> > RC_USE_FSTAB="${RC_USE_FSTAB:-no}"
> > ++ RC_USE_FSTAB=no
> > RC_USE_CONFIG_PROFILE="${RC_USE_CONFIG_PROFILE:-yes}"
> > ++ RC_USE_CONFIG_PROFILE=yes
> > RC_FORCE_AUTO="${RC_FORCE_AUTO:-no}"
> > ++ RC_FORCE_AUTO=no
> > RC_DEVICES="${RC_DEVICES:-auto}"
> > ++ RC_DEVICES=auto
> > RC_DOWN_INTERFACE="${RC_DOWN_INTERFACE:-yes}"
> > ++ RC_DOWN_INTERFACE=yes
> > RC_VOLUME_ORDER="${RC_VOLUME_ORDER:-raid evms lvm dm}"
> > ++ RC_VOLUME_ORDER='raid evms lvm dm'
> >
> > #
> > # Default values for e-message indentation and dots
> > #
> > RC_INDENTATION=''
> > ++ RC_INDENTATION=
> > RC_DEFAULT_INDENT=2
> > ++ RC_DEFAULT_INDENT=2
> > #RC_DOT_PATTERN=' .'
> > RC_DOT_PATTERN=''
> > ++ RC_DOT_PATTERN=
> >
> > # bool has_addon(addon)
> > #
> > #   See if addon exists.
> > #
> > has_addon() {
> >        [[ -e ${svclib}/addons/$1 ]]
> > }
> >
> > # void import_addon(char *addon)
> > #
> > #  Import code from the specified addon if it exists
> > #
> > import_addon() {
> >        local addon="${svclib}/addons/$1"
> >        if has_addon $1 ; then
> >                source "${addon}"
> >                return 0
> >        fi
> >        return 1
> > }
> >
> > # void splash(...)
> > #
> > #  Notify bootsplash/splashutils/gensplash/whatever about
> > #  important events.
> > #
> > splash() {
> >        return 0
> > }
> > # This will override the splash() function...
> > if ! import_addon splash-functions.sh ; then
> >        [[ -f /sbin/splash-functions.sh ]] && source
> > /sbin/splash-functions.sh
> > fi
> > ++ import_addon splash-functions.sh
> > ++ local addon=/lib/rcscripts/addons/splash-functions.sh
> > ++ has_addon splash-functions.sh
> > ++ [[ -e /lib/rcscripts/addons/splash-functions.sh ]]
> > ++ return 1
> > ++ [[ -f /sbin/splash-functions.sh ]]
> >
> > # void profiling(...)
> > #
> > #  Notify bootsplash/whatever about important events.
> > #
> > profiling() {
> >        return 0
> > }
> > import_addon profiling-functions.sh
> > ++ import_addon profiling-functions.sh
> > ++ local addon=/lib/rcscripts/addons/profiling-functions.sh
> > ++ has_addon profiling-functions.sh
> > ++ [[ -e /lib/rcscripts/addons/profiling-functions.sh ]]
> > ++ return 1
> >
> > # void bootlog(...)
> > #
> > #  Notify bootlogger about important events.
> > bootlog() {
> >        return 0
> > }
> > [[ ${RC_BOOTLOG} == "yes" ]] && import_addon bootlogger.sh
> > ++ [[ no == \y\e\s ]]
> >
> > # void get_bootconfig()
> > #
> > #    Get the BOOTLEVEL and SOFTLEVEL by setting
> > #    'bootlevel' and 'softlevel' via kernel
> > #    parameters.
> > #
> > get_bootconfig() {
> >        local copt=
> >        local newbootlevel=
> >        local newsoftlevel=
> >
> >        if [[ -r /proc/cmdline ]] ; then
> >                for copt in $(</proc/cmdline) ; do
> >                        case "${copt%=*}" in
> >                                bootlevel)
> >                                        newbootlevel="${copt##*=}"
> >                                        ;;
> >                                softlevel)
> >                                        newsoftlevel="${copt##*=}"
> >                                        ;;
> >                        esac
> >                done
> >        fi
> >
> >        if [[ -n ${newbootlevel} ]] ; then
> >                export BOOTLEVEL="${newbootlevel}"
> >        else
> >                export BOOTLEVEL="boot"
> >        fi
> >
> >        if [[ -n ${newsoftlevel} ]] ; then
> >                export DEFAULTLEVEL="${newsoftlevel}"
> >        else
> >                export DEFAULTLEVEL="default"
> >        fi
> >
> >        return 0
> > }
> >
> > setup_defaultlevels() {
> >        get_bootconfig
> >
> >        if get_bootparam "noconfigprofile" ; then
> >                export RC_USE_CONFIG_PROFILE="no"
> >
> >        elif get_bootparam "configprofile" ; then
> >                export RC_USE_CONFIG_PROFILE="yes"
> >        fi
> >
> >        if [[ ${RC_USE_CONFIG_PROFILE} == "yes" && -n ${DEFAULTLEVEL} ]]
> > && \
> >           [[ -d "/etc/runlevels/${BOOTLEVEL}.${DEFAULTLEVEL}" || \
> >              -L "/etc/runlevels/${BOOTLEVEL}.${DEFAULTLEVEL}" ]] ; then
> >                export BOOTLEVEL="${BOOTLEVEL}.${DEFAULTLEVEL}"
> >        fi
> >
> >        if [[ -z ${SOFTLEVEL} ]] ; then
> >                if [[ -f "${svcdir}/softlevel" ]] ; then
> >                        export SOFTLEVEL=$(< "${svcdir}/softlevel")
> >                else
> >                        export SOFTLEVEL="${BOOTLEVEL}"
> >                fi
> >        fi
> >
> >        return 0
> > }
> >
> > # void get_libdir(void)
> > #
> > #    prints the current libdir {lib,lib32,lib64}
> > #
> > get_libdir() {
> >        if [[ -n ${CONF_LIBDIR_OVERRIDE} ]] ; then
> >                CONF_LIBDIR="${CONF_LIBDIR_OVERRIDE}"
> >        elif [[ -x /usr/bin/portageq ]] ; then
> >                CONF_LIBDIR="$(/usr/bin/portageq envvar CONF_LIBDIR)"
> >        fi
> >        echo "${CONF_LIBDIR:=lib}"
> > }
> >
> > # void esyslog(char* priority, char* tag, char* message)
> > #
> > #    use the system logger to log a message
> > #
> > esyslog() {
> >        local pri=
> >        local tag=
> >
> >        if [[ -x /usr/bin/logger ]] ; then
> >                pri="$1"
> >                tag="$2"
> >
> >                shift 2
> >                [[ -z "$*" ]] && return 0
> >
> >                /usr/bin/logger -p "${pri}" -t "${tag}" -- "$*"
> >        fi
> >
> >        return 0
> > }
> >
> > # void eindent(int num)
> > #
> > #    increase the indent used for e-commands.
> > #
> > eindent() {
> >        local i="$1"
> >        (( i > 0 )) || (( i = RC_DEFAULT_INDENT ))
> >        esetdent $(( ${#RC_INDENTATION} + i ))
> > }
> >
> > # void eoutdent(int num)
> > #
> > #    decrease the indent used for e-commands.
> > #
> > eoutdent() {
> >        local i="$1"
> >        (( i > 0 )) || (( i = RC_DEFAULT_INDENT ))
> >        esetdent $(( ${#RC_INDENTATION} - i ))
> > }
> >
> > # void esetdent(int num)
> > #
> > #    hard set the indent used for e-commands.
> > #    num defaults to 0
> > #
> > esetdent() {
> >        local i="$1"
> >        (( i < 0 )) && (( i = 0 ))
> >        RC_INDENTATION=$(printf "%${i}s" '')
> > }
> >
> > # void einfo(char* message)
> > #
> > #    show an informative message (with a newline)
> > #
> > einfo() {
> >        einfon "$*\n"
> >        LAST_E_CMD="einfo"
> >        return 0
> > }
> >
> > # void einfon(char* message)
> > #
> > #    show an informative message (without a newline)
> > #
> > einfon() {
> >        [[ ${RC_QUIET_STDOUT} == "yes" ]] && return 0
> >        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
> >        echo -ne " ${GOOD}*${NORMAL} ${RC_INDENTATION}$*"
> >        LAST_E_CMD="einfon"
> >        return 0
> > }
> >
> > # void ewarn(char* message)
> > #
> > #    show a warning message + log it
> > #
> > ewarn() {
> >        if [[ ${RC_QUIET_STDOUT} == "yes" ]] ; then
> >                echo " $*"
> >        else
> >                [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]]
> > && echo
> >                echo -e " ${WARN}*${NORMAL} ${RC_INDENTATION}$*"
> >        fi
> >
> >        local name="rc-scripts"
> >        [[ $0 != "/sbin/runscript.sh" ]] && name="${0##*/}"
> >        # Log warnings to system log
> >        esyslog "daemon.warning" "${name}" "$*"
> >
> >        LAST_E_CMD="ewarn"
> >        return 0
> > }
> >
> > # void eerror(char* message)
> > #
> > #    show an error message + log it
> > #
> > eerror() {
> >        if [[ ${RC_QUIET_STDOUT} == "yes" ]] ; then
> >                echo " $*" >/dev/stderr
> >        else
> >                [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]]
> > && echo
> >                echo -e " ${BAD}*${NORMAL} ${RC_INDENTATION}$*"
> >        fi
> >
> >        local name="rc-scripts"
> >        [[ $0 != "/sbin/runscript.sh" ]] && name="${0##*/}"
> >        # Log errors to system log
> >        esyslog "daemon.err" "rc-scripts" "$*"
> >
> >        LAST_E_CMD="eerror"
> >        return 0
> > }
> >
> > # void ebegin(char* message)
> > #
> > #    show a message indicating the start of a process
> > #
> > ebegin() {
> >        local msg="$*" dots spaces="${RC_DOT_PATTERN//?/ }"
> >        [[ ${RC_QUIET_STDOUT} == "yes" ]] && return 0
> >
> >        if [[ -n ${RC_DOT_PATTERN} ]] ; then
> >                dots="$(printf "%$((COLS - 3 - ${#RC_INDENTATION} -
> > ${#msg} -
> > 7))s" '')"
> >                dots="${dots//${spaces}/${RC_DOT_PATTERN}}"
> >                msg="${msg}${dots}"
> >        else
> >                msg="${msg} ..."
> >        fi
> >        einfon "${msg}"
> >        [[ ${RC_ENDCOL} == "yes" ]] && echo
> >
> >        LAST_E_LEN="$(( 3 + ${#RC_INDENTATION} + ${#msg} ))"
> >        LAST_E_CMD="ebegin"
> >        return 0
> > }
> >
> > # void _eend(int error, char *efunc, char* errstr)
> > #
> > #    indicate the completion of process, called from eend/ewend
> > #    if error, show errstr via efunc
> > #
> > #    This function is private to functions.sh.  Do not call it from a
> > #    script.
> > #
> > _eend() {
> >        local retval="${1:-0}" efunc="${2:-eerror}" msg
> >        shift 2
> >
> >        if [[ ${retval} == "0" ]] ; then
> >                [[ ${RC_QUIET_STDOUT} == "yes" ]] && return 0
> >                msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"
> >        else
> >                if [[ -c /dev/null ]] ; then
> >                        rc_splash "stop" &>/dev/null &
> >                else
> >                        rc_splash "stop" &
> >                fi
> >                if [[ -n $* ]] ; then
> >                        ${efunc} "$*"
> >                fi
> >                msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"
> >        fi
> >
> >        if [[ ${RC_ENDCOL} == "yes" ]] ; then
> >                echo -e "${ENDCOL}  ${msg}"
> >        else
> >                [[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0
> >                printf "%$(( COLS - LAST_E_LEN - 6 ))s%b\n" '' "${msg}"
> >        fi
> >
> >        return ${retval}
> > }
> >
> > # void eend(int error, char* errstr)
> > #
> > #    indicate the completion of process
> > #    if error, show errstr via eerror
> > #
> > eend() {
> >        local retval="${1:-0}"
> >        shift
> >
> >        _eend "${retval}" eerror "$*"
> >
> >        LAST_E_CMD="eend"
> >        return ${retval}
> > }
> >
> > # void ewend(int error, char* errstr)
> > #
> > #    indicate the completion of process
> > #    if error, show errstr via ewarn
> > #
> > ewend() {
> >        local retval="${1:-0}"
> >        shift
> >
> >        _eend "${retval}" ewarn "$*"
> >
> >        LAST_E_CMD="ewend"
> >        return ${retval}
> > }
> >
> > # v-e-commands honor RC_VERBOSE which defaults to no.
> > # The condition is negated so the return value will be zero.
> > veinfo() { [[ ${RC_VERBOSE} != "yes" ]] || einfo "$@"; }
> > veinfon() { [[ ${RC_VERBOSE} != "yes" ]] || einfon "$@"; }
> > vewarn() { [[ ${RC_VERBOSE} != "yes" ]] || ewarn "$@"; }
> > veerror() { [[ ${RC_VERBOSE} != "yes" ]] || eerror "$@"; }
> > vebegin() { [[ ${RC_VERBOSE} != "yes" ]] || ebegin "$@"; }
> > veend() {
> >        [[ ${RC_VERBOSE} == "yes" ]] && { eend "$@"; return $?; }
> >        return ${1:-0}
> > }
> > vewend() {
> >        [[ ${RC_VERBOSE} == "yes" ]] && { ewend "$@"; return $?; }
> >        return ${1:-0}
> > }
> >
> > # char *KV_major(string)
> > #
> > #    Return the Major (X of X.Y.Z) kernel version
> > #
> > KV_major() {
> >        [[ -z $1 ]] && return 1
> >
> >        local KV="$@"
> >        echo "${KV%%.*}"
> > }
> >
> > # char *KV_minor(string)
> > #
> > #    Return the Minor (Y of X.Y.Z) kernel version
> > #
> > KV_minor() {
> >        [[ -z $1 ]] && return 1
> >
> >        local KV="$@"
> >        KV="${KV#*.}"
> >        echo "${KV%%.*}"
> > }
> >
> > # char *KV_micro(string)
> > #
> > #    Return the Micro (Z of X.Y.Z) kernel version.
> > #
> > KV_micro() {
> >        [[ -z $1 ]] && return 1
> >
> >        local KV="$@"
> >        KV="${KV#*.*.}"
> >        echo "${KV%%[^[:digit:]]*}"
> > }
> >
> > # int KV_to_int(string)
> > #
> > #    Convert a string type kernel version (2.4.0) to an int (132096)
> > #    for easy compairing or versions ...
> > #
> > KV_to_int() {
> >        [[ -z $1 ]] && return 1
> >
> >        local KV_MAJOR="$(KV_major "$1")"
> >        local KV_MINOR="$(KV_minor "$1")"
> >        local KV_MICRO="$(KV_micro "$1")"
> >        local KV_int="$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))"
> >
> >        # We make version 2.2.0 the minimum version we will handle as
> >        # a sanity check ... if its less, we fail ...
> >        if [[ ${KV_int} -ge 131584 ]] ; then
> >                echo "${KV_int}"
> >                return 0
> >        fi
> >
> >        return 1
> > }
> >
> > # int get_KV()
> > #
> > #    Return the kernel version (major, minor and micro concated) as an
> > integer.
> > #    Assumes X and Y of X.Y.Z are numbers.  Also assumes that some
> > leading #    portion of Z is a number.
> > #    e.g. 2.4.25, 2.6.10, 2.6.4-rc3, 2.2.40-poop, 2.0.15+foo
> > #
> > _RC_GET_KV_CACHE=""
> > ++ _RC_GET_KV_CACHE=
> > get_KV() {
> >        [[ -z ${_RC_GET_KV_CACHE} ]] \
> >                && _RC_GET_KV_CACHE="$(uname -r)"
> >
> >        echo "$(KV_to_int "${_RC_GET_KV_CACHE}")"
> >
> >        return $?
> > }
> >
> > # bool get_bootparam(param)
> > #
> > #   return 0 if gentoo=param was passed to the kernel
> > #
> > #   EXAMPLE:  if get_bootparam "nodevfs" ; then ....
> > #
> > get_bootparam() {
> >        local x copt params retval=1
> >
> >        [[ ! -r /proc/cmdline ]] && return 1
> >
> >        for copt in $(< /proc/cmdline) ; do
> >                if [[ ${copt%=*} == "gentoo" ]] ; then
> >                        params=$(gawk -v PARAMS="${copt##*=}" '
> >                                BEGIN {
> >                                        split(PARAMS, nodes, ",")
> >                                        for (x in nodes)
> >                                                print nodes[x]
> >                                }')
> >
> >                        # Parse gentoo option
> >                        for x in ${params} ; do
> >                                if [[ ${x} == "$1" ]] ; then
> > #                                       echo "YES"
> >                                        retval=0
> >                                fi
> >                        done
> >                fi
> >        done
> >
> >        return ${retval}
> > }
> >
> > # Safer way to list the contents of a directory,
> > # as it do not have the "empty dir bug".
> > #
> > # char *dolisting(param)
> > #
> > #    print a list of the directory contents
> > #
> > #    NOTE: quote the params if they contain globs.
> > #          also, error checking is not that extensive ...
> > #
> > dolisting() {
> >        local x=
> >        local y=
> >        local tmpstr=
> >        local mylist=
> >        local mypath="$*"
> >
> >        if [[ ${mypath%/\*} != "${mypath}" ]] ; then
> >                mypath=${mypath%/\*}
> >        fi
> >
> >        for x in ${mypath} ; do
> >                [[ ! -e ${x} ]] && continue
> >
> >                if [[ ! -d ${x} ]] && [[ -L ${x} || -f ${x} ]] ; then
> >                        mylist="${mylist} $(ls "${x}" 2> /dev/null)"
> >                else
> >                        [[ ${x%/} != "${x}" ]] && x=${x%/}
> >
> >                        cd "${x}"; tmpstr=$(ls)
> >
> >                        for y in ${tmpstr} ; do
> >                                mylist="${mylist} ${x}/${y}"
> >                        done
> >                fi
> >        done
> >
> >        echo "${mylist}"
> > }
> >
> >
> > # char *add_suffix(char * configfile)
> > #
> > #    Returns a config file name with the softlevel suffix
> > #    appended to it.  For use with multi-config services.
> > add_suffix() {
> >        if [[ ${RC_USE_CONFIG_PROFILE} != "yes" ]] ; then
> >                echo "$1"
> >                return 0
> >        fi
> >
> >        local suffix="${SOFTLEVEL}"
> >        [[ ${SOFTLEVEL} == "${BOOTLEVEL}" \
> >
> >        || ${SOFTLEVEL} == "reboot" \
> >        || ${SOFTLEVEL} == "shutdown" \
> >        || ${SOFTLEVEL} == "single" ]] \
> >
> >                && suffix="${DEFAULTLEVEL}"
> >        if [[ -e "$1.${suffix}" ]] ; then
> >                echo "$1.${suffix}"
> >        else
> >                echo "$1"
> >        fi
> >
> >        return 0
> > }
> >
> > # char *get_base_ver()
> > #
> > #    get the version of baselayout that this system is running
> > #
> > get_base_ver() {
> >        [[ ! -r /etc/gentoo-release ]] && return 0
> >        local ver="$(</etc/gentoo-release)"
> >        echo "${ver##* }"
> > }
> >
> > # Network filesystems list for common use in rc-scripts.
> > # This variable is used in is_net_fs and other places such as
> > # localmount.
> > NET_FS_LIST="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs
> > smbfs" ++ NET_FS_LIST='afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2
> > shfs smbfs'
> >
> > # bool is_net_fs(path)
> > #
> > #   return 0 if path is the mountpoint of a networked filesystem
> > #
> > #   EXAMPLE:  if is_net_fs / ; then ...
> > #
> > is_net_fs() {
> >        local fstype
> >        # /proc/mounts is always accurate but may not always be available
> >        if [[ -e /proc/mounts ]] ; then
> >                fstype="$( sed -n -e '/^rootfs/!s:.* '"$1"' \([^ ]*\).*:
> > \1:p' /proc/mounts )"
> >        else
> >                fstype="$( mount | sed -n -e 's:.* on '"$1"' type \([^
> > ]*\).*:
> > \1:p' )"
> >        fi
> >        [[ " ${NET_FS_LIST} " == *" ${fstype} "* ]]
> >        return $?
> > }
> >
> > # bool is_net_fs(path)
> > #
> > #   return 0 if path is under unionfs control
> > #
> > #   EXAMPLE:  if is_union_fs / ; then ...
> > #
> > is_union_fs() {
> >        [[ ! -x /sbin/unionctl ]] && return 1
> >        unionctl "$1" --list &>/dev/null
> > }
> >
> > # bool is_uml_sys()
> > #
> > #   return 0 if the currently running system is User Mode Linux
> > #
> > #   EXAMPLE:  if is_uml_sys ; then ...
> > #
> > is_uml_sys() {
> >        grep -qs 'UML' /proc/cpuinfo
> > }
> >
> > # bool is_vserver_sys()
> > #
> > #   return 0 if the currently running system is a Linux VServer
> > #
> > #   EXAMPLE:  if is_vserver_sys ; then ...
> > #
> > is_vserver_sys() {
> >        grep -qs '^s_context:[[:space:]]*[1-9]' /proc/self/status
> > }
> >
> > # bool is_vz_sys()
> > #
> > #   return 0 if the currently running system is OpenVZ container
> > #
> > #   EXAMPLE:  if is_vz_sys ; then ...
> > #
> > is_vz_sys() {
> >        grep -qs '^envID:[[:space:]]*[1-9]' /proc/self/status
> > }
> >
> > # bool is_xenU_sys()
> > #
> > #   return 0 if the currently running system is an unprivileged Xen
> > domain #
> > #   EXAMPLE:  if is_xenU_sys ; then ...
> > #
> > is_xenU_sys() {
> >        [[ ! -d /proc/xen ]] && return 1
> >        [[ ! -r /proc/xen/capabilities ]] && return 1
> >        grep -q "control_d" /proc/xen/capabilities && return 1
> >        return 0
> > }
> >
> > # bool get_mount_fstab(path)
> > #
> > #   return the parameters to pass to the mount command generated from
> > fstab #
> > #   EXAMPLE: cmd=$( get_mount_fstab /proc )
> > #            cmd=${cmd:--t proc none /proc}
> > #            mount -n ${cmd}
> > #
> > get_mount_fstab() {
> >        gawk '$1 ~ "^#" { next }
> >             $2 == "'$*'" { stab="-t "$3" -o "$4" "$1" "$2; }
> >             END { print stab; }
> >        ' /etc/fstab
> > }
> >
> > # char *reverse_list(list)
> > #
> > #   Returns the reversed order of list
> > #
> > reverse_list() {
> >        for (( i = $# ; i > 0 ; --i )) ; do
> >                echo -n "${!i} "
> >        done
> > }
> >
> > # void start_addon(addon)
> > #
> > #   Starts addon.
> > #
> > start_addon() {
> >        local addon="$1"
> >        (import_addon "${addon}-start.sh")
> >        return 0
> > }
> >
> > # void stop_addon(addon)
> > #
> > #   Stops addon.
> > #
> > stop_addon() {
> >        local addon=$1
> >        (import_addon "${addon}-stop.sh")
> >        return 0
> > }
> >
> > # bool is_older_than(reference, files/dirs to check)
> > #
> > #   return 0 if any of the files/dirs are newer than
> > #   the reference file
> > #
> > #   EXAMPLE: if is_older_than a.out *.o ; then ...
> > is_older_than() {
> >        local x=
> >        local ref="$1"
> >        shift
> >
> >        for x in "$@" ; do
> >                [[ ${x} -nt ${ref} ]] && return 0
> >                [[ -d ${x} ]] && is_older_than "${ref}" "${x}"/* && return
> > 0 done
> >
> >        return 1
> > }
> >
> > # char* bash_variable(char *variable)
> > #
> > #   Turns the given variable into something that bash can use
> > #   Basically replaces anything not a-z,A-Z into a _
> > #
> > bash_variable() {
> >        local args="$@"
> >        LC_ALL=C echo "${args//[![:word:]]/_}"
> > }
> >
> > # void requote()
> > #
> > #   Requotes params so they're suitable to be eval'd, just like this
> > would: #   set -- 1 2 "3 4"
> > #   /usr/bin/getopt -- '' "$@" | sed 's/^ -- //'
> > #
> > requote() {
> >        local q=\'
> >        set -- "${@//\'/$q\'$q}"        # quote inner instances of '
> >        set -- "${@/#/$q}"                      # add ' to start of each
> > param
> >        set -- "${@/%/$q}"                      # add ' to end of each
> > param echo "$*"
> > }
> >
> > # char* uniqify(char *arg, ...)
> > #
> > #   Ensure that params are unique
> > #
> > uniqify() {
> >    local result= x=
> >    while [[ -n "$1" ]] ; do
> >                [[ " ${result} " != *" $1 "* ]] && result="${result} $1"
> >                shift
> >        done
> >    echo "${result# *}"
> > }
> >
> >
> > #########################################################################
> >##### #
> >  #
> > # This should be the last code in here, please add all functions above!!
> >   #
> > #
> >  #
> > # *** START LAST CODE ***
> >  #
> > #
> >  #
> >
> > #########################################################################
> >#####
> >
> > if [[ -z ${EBUILD} ]] ; then
> >        # Setup a basic $PATH.  Just add system default to existing.
> >        # This should solve both /sbin and /usr/sbin not present when
> >        # doing 'su -c foo', or for something like:  PATH= rcscript start
> >        PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:${PATH}"
> >
> >        # Cache the CONSOLETYPE - this is important as backgrounded shells
> > don't
> >        # have a TTY. rc unsets it at the end of running so it shouldn't
> > hang
> >        # around
> >        if [[ -z ${CONSOLETYPE} ]] ; then
> >                export CONSOLETYPE="$( /sbin/consoletype 2>/dev/null )"
> >        fi
> >        if [[ ${CONSOLETYPE} == "serial" ]] ; then
> >                RC_NOCOLOR="yes"
> >                RC_ENDCOL="no"
> >        fi
> >
> >        for arg in "$@" ; do
> >                case "${arg}" in
> >                        # Lastly check if the user disabled it with
> > --nocolor
> > argument
> >                        --nocolor|-nc)
> >                                RC_NOCOLOR="yes"
> >                                ;;
> >                esac
> >        done
> >
> >        setup_defaultlevels
> >
> >        # If we are not /sbin/rc then ensure that we cannot change level
> > variables
> >        if [[ -n ${BASH_SOURCE} \
> >                && ${BASH_SOURCE[${#BASH_SOURCE[@]}-1]} != "/sbin/rc" ]] ;
> > then
> >                declare -r BOOTLEVEL DEFAULTLEVEL SOFTLEVEL
> >        fi
> > else
> >        # Should we use colors ?
> >        if [[ $* != *depend* ]] ; then
> >                # Check user pref in portage
> >                RC_NOCOLOR="$(portageq envvar NOCOLOR 2>/dev/null)"
> >                [[ ${RC_NOCOLOR} == "true" ]] && RC_NOCOLOR="yes"
> >        else
> >                # We do not want colors during emerge depend
> >                RC_NOCOLOR="yes"
> >                # No output is seen during emerge depend, so this is not
> > needed.
> >                RC_ENDCOL="no"
> >        fi
> > fi
> > ++ [[ -z '' ]]
> > ++
> >
> > PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/
> >usr/bin ++ [[ -z '' ]]
> >  /sbin/consoletype 2>/dev/null
> > +++ /sbin/consoletype
> > ++ export CONSOLETYPE=pty
> > ++ CONSOLETYPE=pty
> > ++ [[ pty == \s\e\r\i\a\l ]]
> > ++ setup_defaultlevels
> > ++ get_bootconfig
> > ++ local copt=
> > ++ local newbootlevel=
> > ++ local newsoftlevel=
> > ++ [[ -r /proc/cmdline ]]
> > </proc/cmdline
> > ++ for copt in '$(</proc/cmdline)'
> > ++ case "${copt%=*}" in
> > ++ for copt in '$(</proc/cmdline)'
> > ++ case "${copt%=*}" in
> > ++ for copt in '$(</proc/cmdline)'
> > ++ case "${copt%=*}" in
> > ++ for copt in '$(</proc/cmdline)'
> > ++ case "${copt%=*}" in
> > ++ for copt in '$(</proc/cmdline)'
> > ++ case "${copt%=*}" in
> > ++ [[ -n '' ]]
> > ++ export BOOTLEVEL=boot
> > ++ BOOTLEVEL=boot
> > ++ [[ -n '' ]]
> > ++ export DEFAULTLEVEL=default
> > ++ DEFAULTLEVEL=default
> > ++ return 0
> > ++ get_bootparam noconfigprofile
> > ++ local x copt params retval=1
> > ++ [[ ! -r /proc/cmdline ]]
> > < /proc/cmdline
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ root == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ init == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ ramdisk == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ real_root == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ udev == \g\e\n\t\o\o ]]
> > ++ return 1
> > ++ get_bootparam configprofile
> > ++ local x copt params retval=1
> > ++ [[ ! -r /proc/cmdline ]]
> > < /proc/cmdline
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ root == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ init == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ ramdisk == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ real_root == \g\e\n\t\o\o ]]
> > ++ for copt in '$(< /proc/cmdline)'
> > ++ [[ udev == \g\e\n\t\o\o ]]
> > ++ return 1
> > ++ [[ yes == \y\e\s ]]
> > ++ [[ -n default ]]
> > ++ [[ -d /etc/runlevels/boot.default ]]
> > ++ [[ -L /etc/runlevels/boot.default ]]
> > ++ [[ -z '' ]]
> > ++ [[ -f /var/lib/init.d/softlevel ]]
> > < "${svcdir}/softlevel"
> > ++ export SOFTLEVEL=default
> > ++ SOFTLEVEL=default
> > ++ return 0
> > ++ [[ -n /etc/init.d/functions.sh ]]
> > ++ [[ /usr/bin/revdep-rebuild != \/\s\b\i\n\/\r\c ]]
> > ++ declare -r BOOTLEVEL DEFAULTLEVEL SOFTLEVEL
> >
> > if [[ -n ${EBUILD} && $* == *depend* ]] ; then
> >        # We do not want stty to run during emerge depend
> >        COLS=80
> > else
> >        # Setup COLS and ENDCOL so eend can line up the [ ok ]
> >        COLS="${COLUMNS:-0}"            # bash's internal COLUMNS variable
> >        (( COLS == 0 )) && COLS="$(set -- `stty size 2>/dev/null` ;
> > echo "$2")"
> >        (( COLS > 0 )) || (( COLS = 80 ))       # width of [ ok ] == 7
> > fi
> > ++ [[ -n '' ]]
> > ++ COLS=0
> > ++ ((  COLS == 0  ))
> > set -- `stty size 2>/dev/null` ; echo "$2"
> > stty size 2>/dev/null
> > ++++ stty size
> > +++ set -- 56 172
> > +++ echo 172
> > ++ COLS=172
> > ++ ((  COLS > 0  ))
> >
> > if [[ ${RC_ENDCOL} == "yes" ]] ; then
> >        ENDCOL=$'\e[A\e['$(( COLS - 8 ))'C'
> > else
> >        ENDCOL=''
> > fi
> > ++ [[ yes ==
> > \y\e\s ]]
> >
> >       '
> > ++ ENDCOL='
> > # Setup the colors so our messages all look pretty
> > if [[ ${RC_NOCOLOR} == "yes" ]] ; then
> >        unset GOOD WARN BAD NORMAL HILITE BRACKET
> > else
> >        GOOD=$'\e[32;01m'
> >        WARN=$'\e[33;01m'
> >        BAD=$'\e[31;01m'
> >        HILITE=$'\e[36;01m'
> >        BRACKET=$'\e[34;01m'
> >        NORMAL=$'\e[0m'
> > fi
> > ++ [[ no == \y\e\s ]]
> > ++ GOOD=''
> > ++ WARN=''
> > ++ BAD=''
> > ++ HILITE=''
> > ++ BRACKET=''
> > ++ NORMAL=''
> >
> >
> > #########################################################################
> >##### #
> >  #
> > # *** END LAST CODE ***
> >  #
> > #
> >  #
> > # This should be the last code in here, please add all functions above!!
> >   #
> > #
> >  #
> >
> > #########################################################################
> >#####
> >
> >
> > # vim:ts=4
> > + normalize_emerge_opts
> > + EMERGE_OPTIONS=(${EMERGE_OPTIONS[@]/%-p/--pretend})
> > + EMERGE_OPTIONS=(${EMERGE_OPTIONS[@]/%-f/--fetchonly})
> > + EMERGE_OPTIONS=(${EMERGE_OPTIONS[@]/%-f/--verbose})
> > + [[ '' != *--pretend* ]]
> > + [[ 0 -ne 0 ]]
> > + setup_portage
> > portageq envvar PORTAGE_NICENESS
> > ++ portageq envvar PORTAGE_NICENESS
> > + local PORTAGE_NICENESS=
> > portageq envvar ROOT
> > ++ portageq envvar ROOT
> > + PORTAGE_ROOT=/
> > + [[ -n '' ]]
> > + PORTAGE_ROOT=/
> > + setup_search_paths_and_masks
> > + local configfile sdir mdir skip_me filter_SEARCH_DIRS
> > + einfo 'Configuring search environment for revdep-rebuild'
> > + einfon 'Configuring search environment for revdep-rebuild\n'
> > + [[ no == \y\e\s ]]
> > + [[ yes != \y\e\s ]]
> > + echo -ne ' * Configuring search environment for revdep-rebuild\n'
> > + LAST_E_CMD=einfon
> > + return 0
> > + LAST_E_CMD=einfo
> > + return 0
> > unset SEARCH_DIRS; portageq envvar SEARCH_DIRS
> > ++ unset SEARCH_DIRS
> > ++ portageq envvar SEARCH_DIRS
> > + SEARCH_DIRS+=' '
> > unset SEARCH_DIRS_MASK; portageq envvar SEARCH_DIRS_MASK
> > ++ unset SEARCH_DIRS_MASK
> > ++ portageq envvar SEARCH_DIRS_MASK
> > + SEARCH_DIRS_MASK+=' '
> > unset LD_LIBRARY_MASK; portageq envvar LD_LIBRARY_MASK
> > ++ unset LD_LIBRARY_MASK
> > ++ portageq envvar LD_LIBRARY_MASK
> > + LD_LIBRARY_MASK+=' '
> > + [[ -d /etc/revdep-rebuild ]]
> > + for configfile in '/etc/revdep-rebuild/*'
> > . $configfile; echo $SEARCH_DIRS
> > ++ . /etc/revdep-rebuild/60-java
> > # The VM dynamically loads these at runtime so they will end up as
> > missing # but actually work just fine. See for example
> > # https://bugs.gentoo.org/show_bug.cgi?id=152039
> > #
> > # This file should only have files the are used by things like swt. If
> > there
> > # are "broken" links inside the jre itself, the jre should install it's
> > own # control file.
> >
> > LD_LIBRARY_MASK="libjvm.so libjawt.so"
> > +++ LD_LIBRARY_MASK='libjvm.so libjawt.so'
> > ++ echo
> > + SEARCH_DIRS+=' '
> > . $configfile; echo $SEARCH_DIRS_MASK
> > ++ . /etc/revdep-rebuild/60-java
> > # The VM dynamically loads these at runtime so they will end up as
> > missing # but actually work just fine. See for example
> > # https://bugs.gentoo.org/show_bug.cgi?id=152039
> > #
> > # This file should only have files the are used by things like swt. If
> > there
> > # are "broken" links inside the jre itself, the jre should install it's
> > own # control file.
> >
> > LD_LIBRARY_MASK="libjvm.so libjawt.so"
> > +++ LD_LIBRARY_MASK='libjvm.so libjawt.so'
> > ++ echo
> > + SEARCH_DIRS_MASK+=' '
> > . $configfile; echo $LD_LIBRARY_MASK
> > ++ . /etc/revdep-rebuild/60-java
> > # The VM dynamically loads these at runtime so they will end up as
> > missing # but actually work just fine. See for example
> > # https://bugs.gentoo.org/show_bug.cgi?id=152039
> > #
> > # This file should only have files the are used by things like swt. If
> > there
> > # are "broken" links inside the jre itself, the jre should install it's
> > own # control file.
> >
> > LD_LIBRARY_MASK="libjvm.so libjawt.so"
> > +++ LD_LIBRARY_MASK='libjvm.so libjawt.so'
> > ++ echo libjvm.so libjawt.so
> > + LD_LIBRARY_MASK+=' libjvm.so libjawt.so'
> > + for configfile in '/etc/revdep-rebuild/*'
> > . $configfile; echo $SEARCH_DIRS
> > ++ . /etc/revdep-rebuild/61-sun-jdk-1.6
> > SEARCH_DIRS_MASK="/opt/sun-jdk-1.6.0.07"
> > +++ SEARCH_DIRS_MASK=/opt/sun-jdk-1.6.0.07
> > ++ echo
> > + SEARCH_DIRS+=' '
> > . $configfile; echo $SEARCH_DIRS_MASK
> > ++ . /etc/revdep-rebuild/61-sun-jdk-1.6
> > SEARCH_DIRS_MASK="/opt/sun-jdk-1.6.0.07"
> > +++ SEARCH_DIRS_MASK=/opt/sun-jdk-1.6.0.07
> > ++ echo /opt/sun-jdk-1.6.0.07
> > + SEARCH_DIRS_MASK+=' /opt/sun-jdk-1.6.0.07'
> > . $configfile; echo $LD_LIBRARY_MASK
> > ++ . /etc/revdep-rebuild/61-sun-jdk-1.6
> > SEARCH_DIRS_MASK="/opt/sun-jdk-1.6.0.07"
> > +++ SEARCH_DIRS_MASK=/opt/sun-jdk-1.6.0.07
> > ++ echo libjvm.so libjawt.so
> > + LD_LIBRARY_MASK+=' libjvm.so libjawt.so'
> > + for configfile in '/etc/revdep-rebuild/*'
> > . $configfile; echo $SEARCH_DIRS
> > ++ . /etc/revdep-rebuild/99revdep-rebuild
> > # Default revdep-rebuild configuration file
> > #
> > # revdep-rebuild no longer uses hardcoded paths. To change the default
> > # behavior the following variables can be changed:
> > #
> > # LD_LIBRARY_MASK - Mask of specially evaluated libraries
> > #
> > # SEARCH_DIRS - List of directories to search for executables and
> > libraries #       Use this for directories that are not included in PATH
> > or ld.so.conf.
> > #       An application should normally not have to set this variable
> > #
> > # SEARCH_DIRS_MASK - List of directories to not search
> > #       Use this for directories that should not be searched by
> > revdep-rebuild
> > #       This is normally used by binary packages such as openoffice-bin
> > #
> > # Note: This file is sourced using bash by the revdep-rebuild script
> >
> > LD_LIBRARY_MASK="libodbcinst.so libodbc.so libjava.so libjvm.so"
> > +++ LD_LIBRARY_MASK='libodbcinst.so libodbc.so libjava.so libjvm.so'
> > SEARCH_DIRS="/bin /sbin /usr/bin /usr/sbin /lib* /usr/lib*"
> > +++ SEARCH_DIRS='/bin /sbin /usr/bin /usr/sbin /lib* /usr/lib*'
> > SEARCH_DIRS_MASK="/lib*/modules"
> > +++ SEARCH_DIRS_MASK='/lib*/modules'
> >
> > ++
> > echo /bin /sbin /usr/bin /usr/sbin /lib /lib32 /lib64 /usr/lib /usr/lib32
> > /usr/lib64 /usr/libexec
> > +
> > SEARCH_DIRS+=' /bin /sbin /usr/bin /usr/sbin /lib /lib32 /lib64 /usr/lib
> > /usr/lib32 /usr/lib64 /usr/libexec'
> > . $configfile; echo $SEARCH_DIRS_MASK
> > ++ . /etc/revdep-rebuild/99revdep-rebuild
> > # Default revdep-rebuild configuration file
> > #
> > # revdep-rebuild no longer uses hardcoded paths. To change the default
> > # behavior the following variables can be changed:
> > #
> > # LD_LIBRARY_MASK - Mask of specially evaluated libraries
> > #
> > # SEARCH_DIRS - List of directories to search for executables and
> > libraries #       Use this for directories that are not included in PATH
> > or ld.so.conf.
> > #       An application should normally not have to set this variable
> > #
> > # SEARCH_DIRS_MASK - List of directories to not search
> > #       Use this for directories that should not be searched by
> > revdep-rebuild
> > #       This is normally used by binary packages such as openoffice-bin
> > #
> > # Note: This file is sourced using bash by the revdep-rebuild script
> >
> > LD_LIBRARY_MASK="libodbcinst.so libodbc.so libjava.so libjvm.so"
> > +++ LD_LIBRARY_MASK='libodbcinst.so libodbc.so libjava.so libjvm.so'
> > SEARCH_DIRS="/bin /sbin /usr/bin /usr/sbin /lib* /usr/lib*"
> > +++ SEARCH_DIRS='/bin /sbin /usr/bin /usr/sbin /lib* /usr/lib*'
> > SEARCH_DIRS_MASK="/lib*/modules"
> > +++ SEARCH_DIRS_MASK='/lib*/modules'
> >
> > ++ echo /lib64/modules /lib/modules
> > + SEARCH_DIRS_MASK+=' /lib64/modules /lib/modules'
> > . $configfile; echo $LD_LIBRARY_MASK
> > ++ . /etc/revdep-rebuild/99revdep-rebuild
> > # Default revdep-rebuild configuration file
> > #
> > # revdep-rebuild no longer uses hardcoded paths. To change the default
> > # behavior the following variables can be changed:
> > #
> > # LD_LIBRARY_MASK - Mask of specially evaluated libraries
> > #
> > # SEARCH_DIRS - List of directories to search for executables and
> > libraries #       Use this for directories that are not included in PATH
> > or ld.so.conf.
> > #       An application should normally not have to set this variable
> > #
> > # SEARCH_DIRS_MASK - List of directories to not search
> > #       Use this for directories that should not be searched by
> > revdep-rebuild
> > #       This is normally used by binary packages such as openoffice-bin
> > #
> > # Note: This file is sourced using bash by the revdep-rebuild script
> >
> > LD_LIBRARY_MASK="libodbcinst.so libodbc.so libjava.so libjvm.so"
> > +++ LD_LIBRARY_MASK='libodbcinst.so libodbc.so libjava.so libjvm.so'
> > SEARCH_DIRS="/bin /sbin /usr/bin /usr/sbin /lib* /usr/lib*"
> > +++ SEARCH_DIRS='/bin /sbin /usr/bin /usr/sbin /lib* /usr/lib*'
> > SEARCH_DIRS_MASK="/lib*/modules"
> > +++ SEARCH_DIRS_MASK='/lib*/modules'
> >
> > ++ echo libodbcinst.so libodbc.so libjava.so libjvm.so
> > + LD_LIBRARY_MASK+=' libodbcinst.so libodbc.so libjava.so libjvm.so'
> > + [[ -r /etc/profile.env ]]
> > + [[ -s /etc/profile.env ]]
> > . /etc/profile.env; /usr/bin/tr ':' ' ' <<< "$ROOTPATH $PATH"
> > ++ . /etc/profile.env
> > # THIS FILE IS AUTOMATICALLY GENERATED BY env-update.
> > # DO NOT EDIT THIS FILE. CHANGES TO STARTUP PROFILES
> > # GO INTO /etc/profile NOT /etc/profile.env
> >
> > export CLASSPATH='.'
> > +++ export CLASSPATH=.
> > +++ CLASSPATH=.
> > export CONFIG_PROTECT='/var/bind'
> > +++ export CONFIG_PROTECT=/var/bind
> > +++ CONFIG_PROTECT=/var/bind
> > export
> > CONFIG_PROTECT_MASK='/etc/env.d/java/ /etc/php/cli-php5/ext-active/
> > /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/
> > /etc/udev/rules.d /etc/terminfo /etc/ca-certificates.conf
> > /etc/revdep-rebuild'
> > +++
> > export 'CONFIG_PROTECT_MASK=/etc/env.d/java/
> > /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/
> > /etc/php/apache2-php5/ext-active/
> > /etc/udev/rules.d /etc/terminfo /etc/ca-certificates.conf
> > /etc/revdep-rebuild'
> > +++
> > CONFIG_PROTECT_MASK='/etc/env.d/java/ /etc/php/cli-php5/ext-active/
> > /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/
> > /etc/udev/rules.d /etc/terminfo /etc/ca-certificates.conf
> > /etc/revdep-rebuild'
> > export CVS_RSH='ssh'
> > +++ export CVS_RSH=ssh
> > +++ CVS_RSH=ssh
> > export GCC_SPECS=''
> > +++ export GCC_SPECS=
> > +++ GCC_SPECS=
> > export
> >
> > INFOPATH='/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.
> >18/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/info' +++ export
> >
> > INFOPATH=/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.1
> >8/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/info +++
> >
> > INFOPATH=/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.1
> >8/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/info export
> > LANG='hu_HU.UTF-8'
> > +++ export LANG=hu_HU.UTF-8
> > +++ LANG=hu_HU.UTF-8
> > export LANGUAGE='hu_HU.UTF-8:hu'
> > +++ export LANGUAGE=hu_HU.UTF-8:hu
> > +++ LANGUAGE=hu_HU.UTF-8:hu
> > export LC_ADDRESS='hu_HU.UTF-8'
> > +++ export LC_ADDRESS=hu_HU.UTF-8
> > +++ LC_ADDRESS=hu_HU.UTF-8
> > export LC_ALL='hu_HU.UTF-8'
> > +++ export LC_ALL=hu_HU.UTF-8
> > +++ LC_ALL=hu_HU.UTF-8
> > export LC_COLLATE='hu_HU.UTF-8'
> > +++ export LC_COLLATE=hu_HU.UTF-8
> > +++ LC_COLLATE=hu_HU.UTF-8
> > export LC_CTYPE='hu_HU.UTF-8'
> > +++ export LC_CTYPE=hu_HU.UTF-8
> > +++ LC_CTYPE=hu_HU.UTF-8
> > export LC_IDENTIFICATION='hu_HU.UTF-8'
> > +++ export LC_IDENTIFICATION=hu_HU.UTF-8
> > +++ LC_IDENTIFICATION=hu_HU.UTF-8
> > export LC_MEASUREMENT='hu_HU.UTF-8'
> > +++ export LC_MEASUREMENT=hu_HU.UTF-8
> > +++ LC_MEASUREMENT=hu_HU.UTF-8
> > export LC_MESSAGES='hu_HU.UTF-8'
> > +++ export LC_MESSAGES=hu_HU.UTF-8
> > +++ LC_MESSAGES=hu_HU.UTF-8
> > export LC_MONETARY='hu_HU.UTF-8'
> > +++ export LC_MONETARY=hu_HU.UTF-8
> > +++ LC_MONETARY=hu_HU.UTF-8
> > export LC_NAME='hu_HU.UTF-8'
> > +++ export LC_NAME=hu_HU.UTF-8
> > +++ LC_NAME=hu_HU.UTF-8
> > export LC_NUMERIC='hu_HU.UTF-8'
> > +++ export LC_NUMERIC=hu_HU.UTF-8
> > +++ LC_NUMERIC=hu_HU.UTF-8
> > export LC_PAPER='hu_HU.UTF-8'
> > +++ export LC_PAPER=hu_HU.UTF-8
> > +++ LC_PAPER=hu_HU.UTF-8
> > export LC_TELEPHONE='hu_HU.UTF-8'
> > +++ export LC_TELEPHONE=hu_HU.UTF-8
> > +++ LC_TELEPHONE=hu_HU.UTF-8
> > export LC_TIME='hu_HU.UTF-8'
> > +++ export LC_TIME=hu_HU.UTF-8
> > +++ LC_TIME=hu_HU.UTF-8
> > export LESS='-R -M --shift 5'
> > +++ export 'LESS=-R -M --shift 5'
> > +++ LESS='-R -M --shift 5'
> > export LESSOPEN='|lesspipe.sh %s'
> > +++ export 'LESSOPEN=|lesspipe.sh %s'
> > +++ LESSOPEN='|lesspipe.sh %s'
> > export
> >
> > MANPATH='/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86
> >_64-pc-linux-gnu/2.18/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/ma
> >n:/etc/java-config/system-vm/man/:/usr/lib64/php5/man/' +++ export
> >
> > MANPATH=/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_
> >64-pc-linux-gnu/2.18/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/man
> >:/etc/java-config/system-vm/man/:/usr/lib64/php5/man/ +++
> >
> > MANPATH=/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_
> >64-pc-linux-gnu/2.18/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/man
> >:/etc/java-config/system-vm/man/:/usr/lib64/php5/man/ export
> > PAGER='/usr/bin/less'
> > +++ export PAGER=/usr/bin/less
> > +++ PAGER=/usr/bin/less
> > export
> > PATH='/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2:/usr/games/bin'
> > +++ export
> > PATH=/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2:/usr/games/bin
> > +++ PATH=/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2:/usr/games/bin
> > export PYTHONPATH='/usr/lib64/portage/pym'
> > +++ export PYTHONPATH=/usr/lib64/portage/pym
> > +++ PYTHONPATH=/usr/lib64/portage/pym
> > export ROOTPATH='/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2'
> > +++ export ROOTPATH=/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
> > +++ ROOTPATH=/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
> > ++ /usr/bin/tr : ' '
> > +
> > SEARCH_DIRS+=' /opt/bin /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2 /opt/bin
> > /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2 /usr/games/bin'
> > + [[ -r /etc/ld.so.conf ]]
> > + [[ -s /etc/ld.so.conf ]]
> > sed '/^#/d;s/#.*$//' /etc/ld.so.conf
> > ++ sed '/^#/d;s/#.*$//' /etc/ld.so.conf
> > + SEARCH_DIRS+=' /usr/local/lib
> > /lib
> > /usr/lib
> > /lib64
> > /usr/lib64
> > /usr/local/lib64
> > /lib32
> > /usr/lib32
> > /usr/local/lib32
> > /usr/x86_64-pc-linux-gnu/lib
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32
> > /usr/games/lib
> > /usr/games/lib32
> > /usr/lib64/libstdc++-v3/'
> > clean_var <<< "$SEARCH_DIRS"
> > ++ clean_var
> > ++ awk 'BEGIN         {RS="[[:space:]]"}
> >             /-\*/         {exit}
> >             /[^[:space:]]/ {gsub(/\/\/+/, "/"); print}'
> > ++ sort -u
> > + SEARCH_DIRS='/bin
> > /lib
> > /lib32
> > /lib64
> > /opt/bin
> > /sbin
> > /usr/bin
> > /usr/games/bin
> > /usr/games/lib
> > /usr/games/lib32
> > /usr/lib
> > /usr/lib32
> > /usr/lib64
> > /usr/lib64/libstdc++-v3/
> > /usr/libexec
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32
> > /usr/local/lib
> > /usr/local/lib32
> > /usr/local/lib64
> > /usr/sbin
> > /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
> > /usr/x86_64-pc-linux-gnu/lib'
> > clean_var <<< "$SEARCH_DIRS_MASK"
> > ++ clean_var
> > ++ awk 'BEGIN         {RS="[[:space:]]"}
> >             /-\*/         {exit}
> >             /[^[:space:]]/ {gsub(/\/\/+/, "/"); print}'
> > ++ sort -u
> > + SEARCH_DIRS_MASK='/lib64/modules
> > /lib/modules
> > /opt/sun-jdk-1.6.0.07'
> > clean_var <<< "$LD_LIBRARY_MASK"
> > ++ clean_var
> > ++ awk 'BEGIN         {RS="[[:space:]]"}
> >             /-\*/         {exit}
> >             /[^[:space:]]/ {gsub(/\/\/+/, "/"); print}'
> > ++ sort -u
> > + LD_LIBRARY_MASK='libjava.so
> > libjawt.so
> > libjvm.so
> > libodbcinst.so
> > libodbc.so'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /bin == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /bin == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /bin == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /bin'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /lib'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib32 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib32 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib32 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /lib32'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib64 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib64 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /lib64 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /lib64'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /opt/bin == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /opt/bin == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /opt/bin == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /opt/bin'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /sbin == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /sbin == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /sbin == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /sbin'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/bin == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/bin == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/bin == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/bin'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/bin == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/bin == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/bin == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/games/bin'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/lib == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/lib == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/lib == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/games/lib'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/lib32 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/lib32 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/games/lib32 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/games/lib32'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/lib'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib32 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib32 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib32 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/lib32'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib64 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib64 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib64 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/lib64'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib64/libstdc++-v3/ == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib64/libstdc++-v3/ == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib64/libstdc++-v3/ == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/lib64/libstdc++-v3/'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/libexec == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/libexec == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/libexec == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/libexec'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32 == /opt/sun-jdk-1.6.0.07/*
> > ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/local/lib'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib32 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib32 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib32 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/local/lib32'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib64 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib64 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/local/lib64 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/local/lib64'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/sbin == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/sbin == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/sbin == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/sbin'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2 == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2 == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2 == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2'
> > + for sdir in '${SEARCH_DIRS}'
> > + skip_me=
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/x86_64-pc-linux-gnu/lib == /lib64/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/x86_64-pc-linux-gnu/lib == /lib/modules/* ]]
> > + for mdir in '${SEARCH_DIRS_MASK}'
> > + [[ /usr/x86_64-pc-linux-gnu/lib == /opt/sun-jdk-1.6.0.07/* ]]
> > + [[ -n '' ]]
> > + filter_SEARCH_DIRS+=' /usr/x86_64-pc-linux-gnu/lib'
> > clean_var <<< "${filter_SEARCH_DIRS}"
> > ++ clean_var
> > ++ awk 'BEGIN         {RS="[[:space:]]"}
> >             /-\*/         {exit}
> >             /[^[:space:]]/ {gsub(/\/\/+/, "/"); print}'
> > ++ sort -u
> > + SEARCH_DIRS='/bin
> > /lib
> > /lib32
> > /lib64
> > /opt/bin
> > /sbin
> > /usr/bin
> > /usr/games/bin
> > /usr/games/lib
> > /usr/games/lib32
> > /usr/lib
> > /usr/lib32
> > /usr/lib64
> > /usr/lib64/libstdc++-v3/
> > /usr/libexec
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32
> > /usr/local/lib
> > /usr/local/lib32
> > /usr/local/lib64
> > /usr/sbin
> > /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
> > /usr/x86_64-pc-linux-gnu/lib'
> > + [[ -n /bin
> > /lib
> > /lib32
> > /lib64
> > /opt/bin
> > /sbin
> > /usr/bin
> > /usr/games/bin
> > /usr/games/lib
> > /usr/games/lib32
> > /usr/lib
> > /usr/lib32
> > /usr/lib64
> > /usr/lib64/libstdc++-v3/
> > /usr/libexec
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32
> > /usr/local/lib
> > /usr/local/lib32
> > /usr/local/lib64
> > /usr/sbin
> > /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
> > /usr/x86_64-pc-linux-gnu/lib ]]
> > + get_search_env
> > + local new_env
> > + local old_env
> > python -c 'import os; import pwd; print pwd.getpwuid(os.getuid())[0]'
> > ++ python -c 'import os; import pwd; print pwd.getpwuid(os.getuid())[0]'
> > + local uid=root
> > + [[ root == \r\o\o\t ]]
> > + local tmp_target=/var/cache/revdep-rebuild
> > + verify_tmpdir /var/cache/revdep-rebuild root
> > + umask 007
> > + [[ ! -n /var/cache/revdep-rebuild ]]
> > + [[ -d /var/cache/revdep-rebuild ]]
> > find "$1" -type d ! \( -user $2 -perm -0700 \)
> > ++ find /var/cache/revdep-rebuild -type d '!' '(' -user root -perm -0700
> > ')'
> > ++ hash find
> > type -P find
> > +++ type -P find
> > ++ local testsubject=/usr/bin/find
> > command find "$testsubject" -executable 2> /dev/null
> > +++ command find /usr/bin/find -executable
> > ++ [[ -n /usr/bin/find ]]
> > ++ unset -f find
> > ++ find /var/cache/revdep-rebuild -type d '!' '(' -user root -perm -0700
> > ')'
> > + [[ -n '' ]]
> > + cd /var/cache/revdep-rebuild
> > + builtin cd -P /var/cache/revdep-rebuild
> > + [[ /var/cache/revdep-rebuild != /var/mnt/cache/revdep-rebuild ]]
> > + die 1 'Working directory expected to be /var/cache/revdep-rebuild, but
> > it is /var/mnt/cache/revdep-rebuild'
> > + local status=1
> > + shift
> > + eerror 'Working directory expected to be /var/cache/revdep-rebuild, but
> > it
> > is /var/mnt/cache/revdep-rebuild'
> > + [[ no == \y\e\s ]]
> > + [[ yes != \y\e\s ]]
> > + echo -e ' * Working directory expected to be /var/cache/revdep-rebuild,
> > but
> > it is /var/mnt/cache/revdep-rebuild'
> > + local name=rc-scripts
> > + [[ /usr/bin/revdep-rebuild != \/\s\b\i\n\/\r\u\n\s\c\r\i\p\t\.\s\h ]]
> > + name=revdep-rebuild
> > + esyslog daemon.err rc-scripts 'Working directory expected to
> > be /var/cache/revdep-rebuild, but it is /var/mnt/cache/revdep-rebuild'
> > + local pri=
> > + local tag=
> > + [[ -x /usr/bin/logger ]]
> > + pri=daemon.err
> > + tag=rc-scripts
> > + shift 2
> > + [[ -z Working directory expected to be /var/cache/revdep-rebuild, but
> > it is /var/mnt/cache/revdep-rebuild ]]
> > + /usr/bin/logger -p daemon.err -t rc-scripts -- 'Working directory
> > expected
> > to be /var/cache/revdep-rebuild, but it is /var/mnt/cache/revdep-rebuild'
> > + return 0
> > + LAST_E_CMD=eerror
> > + return 0
> > + exit 1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.