export       DIALOGRC=/etc/sorcery/dialogrc
shopt -u expand_aliases

          LOCAL_CONFIG=/etc/sorcery/local/config
          LOCAL_ROOTS_CONFIG=/etc/sorcery/local/roots
          LOCAL_MEDIA_CONFIG=/etc/sorcery/local/media
          LOCAL_URL_CONFIG=/etc/sorcery/local/url

# numb color, so it doesn't fail for users who have it in LOCAL_CONFIG
# its use was moved to LOCAL_MEDIA_CONFIG; remove this in 1.16
color() {
  [[ -e $LOCAL_CONFIG ]] || return 0
  if grep -q '^ *color "*off' $LOCAL_CONFIG; then
    echo 'color "off"' >> $LOCAL_MEDIA_CONFIG
  fi
  sed -i '/^\s*color "*o[nf]f*"*/d' $LOCAL_CONFIG
}
. $LOCAL_CONFIG

                  CAST=${CAST:-cast}
        SORCERY_BRANCH=${SORCERY_BRANCH:-"stable"}
              ARCHIVE=${ARCHIVE:=on}
              AUTOFIX=${AUTOFIX:=on}
            UPDATEFIX=${UPDATEFIX:=off}
            AUTOPRUNE=${AUTOPRUNE:=off}
         MAIL_REPORTS=${MAIL_REPORTS:=off}
                PATCH=${PATCH:=off}
             PRESERVE=${PRESERVE:=on}
                 REAP=${REAP:=on}
       STORE_CONF_LOG=${STORE_CONF_LOG:-off}
             SORCERER=${SORCERER:=root}
                SOUND=${SOUND:=off}
              SUSTAIN=${SUSTAIN:=on}
                TMPFS=${TMPFS:=off}
         VIEW_REPORTS=${VIEW_REPORTS:=off}
               VOYEUR=${VOYEUR:=on}
         PROMPT_DELAY=${PROMPT_DELAY:=150}
        PAGER_TIMEOUT=${PAGER_TIMEOUT:=150}
           MAX_CABALS=${MAX_CABALS:=16}
           NET_SELECT=${NET_SELECT:=off}
            MD5SUM_DL=${MD5SUM_DL:=ask_risky}
         CLEAN_SOURCE=${CLEAN_SOURCE:=off}
           ARCHIVEBIN=${ARCHIVEBIN:=tar}
          COMPRESSBIN=${COMPRESSBIN-bzip2}
            EXTENSION=${EXTENSION-.bz2}
       SET_TERM_TITLE=${SET_TERM_TITLE:=off}
     PER_SPELL_CFLAGS=${PER_SPELL_CFLAGS:=off}
SHOW_GAZE_SHORT_QUERY=${SHOW_GAZE_SHORT_QUERY:=on}
                COLOR=${COLOR:=on}
           CONFIG_LOC=${CONFIG_LOC:=on}
          GATHER_DOCS=${GATHER_DOCS:=on}
    STRICT_SCM_UPDATE=${STRICT_SCM_UPDATE:=off}
                 NICE=${NICE:=+10}
                UMASK=${UMASK:=0022}
         SORCERY_PATH=${SORCERY_PATH:-"/usr/sbin"}
FORCE_BASESYSTEM_DEPENDS=${FORCE_BASESYSTEM_DEPENDS:-off}

            LDD_CHECK=${LDD_CHECK:=on}
           FIND_CHECK=${FIND_CHECK:=on}
         MD5SUM_CHECK=${MD5SUM_CHECK:=on}
            SYM_CHECK=${SYM_CHECK:=off}

        # menu defined defaults for dependency following
        ORPHAN_MENU_DEFAULT=${ORPHAN_MENU_DEFAULT:-ignore}
     NONORPHAN_MENU_DEFAULT=${NONORPHAN_MENU_DEFAULT:-ignore}
 RECAST_PARENT_MENU_DEFAULT=${RECAST_PARENT_MENU_DEFAULT:-ignore}
 DISPEL_PARENT_MENU_DEFAULT=${DISPEL_PARENT_MENU_DEFAULT:-ignore}

 URL_HTTP_FTP_TIMEOUT=${URL_HTTP_FTP_TIMEOUT:=90}

             FILEPROG=${FILEPROG:=file}
           DIALOGPROG=${DIALOGPROG:=dialog}

                DEBUG=${DEBUG:=/dev/null}

          CROSS_INSTALL=${CROSS_INSTALL:=off}

         ARCHITECTURE=${ARCHITECTURE:=i386}
        OPTIMIZATIONS=${OPTIMIZATIONS:=strip}

        COMPILE_CONFIG=${COMPILE_CONFIG:-/etc/sorcery/compile_config}
          ROOTS_CONFIG=${ROOTS_CONFIG:-/etc/sorcery/roots}
          MEDIA_CONFIG=${MEDIA_CONFIG:-/etc/sorcery/media}
            URL_CONFIG=${URL_CONFIG:-/etc/sorcery/url}
          STATE_CONFIG=${STATE_CONFIG:-/etc/sorcery/state}
         SCREEN_CONFIG=${SCREEN_CONFIG:-/etc/sorcery/screen}

          CONFIG_CACHE=${CONFIG_CACHE:-/etc/sorcery/local}

   SORCERY_INSTALL_LOG=${SORCERY_INSTALL_LOG:-/etc/sorcery/install.log}
       INSTALLWATCH_SO=${INSTALLWATCH_SO:-/usr/lib/installwatch.so}

  SM_LICENSE_DIRECTORY=${SM_LICENSE_DIRECTORY:-/etc/sorcery/licenses}
SM_CONFIG_OPTION_CACHE=${SM_CONFIG_OPTION_CACHE:-/etc/sorcery/local/config_option_cache}
          ACCOUNT_LIST=${ACCOUNT_LIST:-/etc/sorcery/accounts}
            GROUP_LIST=${GROUP_LIST:-/etc/sorcery/groups}
         GRIMOIRE_LIST=${GRIMOIRE_LIST:-/etc/sorcery/local/grimoire}
  GRIMOIRE_LIST_BACKUP=${GRIMOIRE_LIST_BACKUP:-/etc/sorcery/local/grimoire.backup}
        RESTORE_SCRIPT=${RESTORE_SCRIPT:-$HOME/sorcery.restore}
       CABAL_DIRECTORY=${CABAL_DIRECTORY:-/etc/sorcery/cabal}
           CABAL_NAMES=${CABAL_NAMES:-$CABAL_DIRECTORY/names}
            CABAL_KEYS=${CABAL_KEYS:-$CABAL_DIRECTORY/keys}
          CABAL_OUTPUT=${CABAL_OUTPUT:-/tmp/cabal.output}

           GPG_KEY_DIR=${GPG_KEY_DIR:-/usr/share/smgl-pubkeys}
           GPG_SIG_EXT=${GPG_SIG_EXT:-asc}
    GPG_VERIFY_SORCERY=${GPG_VERIFY_SORCERY:-no}
   GPG_VERIFY_GRIMOIRE=${GPG_VERIFY_GRIMOIRE:-no}
   
VERIFY_SPELL_LEVELS=${VERIFY_SPELL_LEVELS:-"WORKS_FOR_ME UPSTREAM_HASH UPSTREAM_KEY ESTABLISHED_UPSTREAM_KEY VERIFIED_UPSTREAM_HASH VERIFIED_UPSTREAM_KEY ID_CHECK_UPSTREAM_KEY"}
DEFAULT_SPELL_VRF_LEVEL=${DEFAULT_SPELL_VRF_LEVEL:-"WORKS_FOR_ME"}
    VRF_ALLOWED_LEVELS=${VRF_ALLOWED_LEVELS:-""}
  VRF_ALLOW_NEW_LEVELS=${VRF_ALLOW_NEW_LEVELS:-"on"}
    VRF_ALLOWED_HASHES=${VRF_ALLOWED_HASHES:-""}
  VRF_ALLOW_NEW_HASHES=${VRF_ALLOW_NEW_HASHES:-"on"}
     GPG_GRIMOIRE_LIST=${GPG_GRIMOIRE_LIST:-"test stable-rc stable games z-rejected hardened"}
GRIMOIRE_MANIFEST_ALGORITHM=${GRIMOIRE_MANIFEST_ALGORITHM:-sha1}

      DEF_INSTALL_INIT=${DEF_INSTALL_INIT:-off}
       DEF_ENABLE_INIT=${DEF_ENABLE_INIT:-off}
    DEF_INSTALL_XINETD=${DEF_INSTALL_XINETD:-off}
     DEF_ENABLE_XINETD=${DEF_ENABLE_XINETD:-off}
    DEF_INIT_VS_XINETD=${DEF_INIT_VS_XINETD:-off}

          SGL_LIBRARY=${SGL_LIBRARY:-/var/lib/sorcery}
  SGL_LIBRARY_MODULES=${SGL_LIBRARY}/modules
           # system archspecs are still considered part of sorcery
           # and are deliberatly not in INSTALL_ROOT
           ARCH_SPECS=${ARCH_SPECS:-"/usr/share/archspecs"}
             EXCLUDED=${SGL_LIBRARY}/excluded
                CODEX=${SGL_LIBRARY}/codex
            PROTECTED=${SGL_LIBRARY}/protected
            VOLATILES=${SGL_LIBRARY}/volatiles
              CONFIGS=${SGL_LIBRARY}/configs
                 SOLO=${SGL_LIBRARY}/solo
          SUBROUTINES=${SGL_LIBRARY}/subroutines
            SUSTAINED=${SGL_LIBRARY}/sustained
      SM_LICENSE_LIST=${SM_LICENSE_DIRECTORY}/license_list

         SPELL_INDEX_FILE=${SPELL_INDEX_FILE:-codex.index}
       PROVIDE_INDEX_FILE=${PROVIDE_INDEX_FILE:-provides.index}
       KEYWORD_INDEX_FILE=${KEYWORD_INDEX_FILE:-keyword.index}
       VERSION_INDEX_FILE=${VERSION_INDEX_FILE:-version.index}

             LOCK_DIR=${LOCK_DIR:-/tmp/liblock-$UID}
     LOCK_TRANSACTIONS=${LOCK_TRANSACTIONS:-"$LOCK_DIR/liblock.locklist"}
            MAX_SLEEP=${MAX_SLEEP:-3}

   TABLET_MAX_VERSION=${TABLET_MAX_VERSION:-1}

         SOURCE_CACHE=${SOURCE_CACHE:=/var/spool/sorcery}

DEFAULT_CHANGED_CONFIG_ACTION=${DEFAULT_CHANGED_CONFIG_ACTION:-2}

              # SECURITY NOTE: any script running as root must pick a
              # more secure location for temp files that is not accessable
              # by other users and override this variable.
              # mk_tmp_dirs accomplishes this. Scripts run as
              # unpriviledged users are also advised to override this,
              # it is here merely to ensure it is always defined.
              TMP_DIR=${TMP_DIR:-/tmp}

               SCREEN=${SCREEN:-off}

              GAZE_ALIEN_PATHS=${GAZE_ALIEN_PATHS:-"/bin /boot /etc /lib /sbin /usr /var"}
                 DOCS=${DOCS:-'README* FAQ* CHAN* DOC* SETUP LICENSE COPYING NEWS *rc'}
                 DOC_DIRS=${DOC_DIRS:-'doc* conf'}
PROGRESS_SPINNER_CHARS=${PROGRESS_SPINNER_CHARS:-'-\|/'}
       VERBOSE_QUEUING=${VERBOSE_QUEUING:-on}
       HTTP_DL_HANDLER=${HTTP_DL_HANDLER:-wget}

        WHITESPACE_IFS=$' \t\n'
         TAB_ENTER_IFS=$'\t\n'
             ENTER_IFS=$'\n'
          STANDARD_IFS=$WHITESPACE_IFS

. $SUBROUTINES
set_pager

. $MEDIA_CONFIG
. $ROOTS_CONFIG
. $URL_CONFIG
. $STATE_CONFIG
. $COMPILE_CONFIG
. $SCREEN_CONFIG

[  -r  $GRIMOIRE_LIST  ]  &&  .  $GRIMOIRE_LIST

      # no $INSTALL_ROOT, so it stays consistent through INSTALL #15234
      BUILD_DIRECTORY=${BUILD_DIRECTORY:-/usr/src}
   DOCUMENT_DIRECTORY=${INSTALL_ROOT}/usr/share/doc
CONFIG_STAGE_DIRECTORY=${STATE_ROOT}/var/state/sorcery/staged_configs

      # this is passed directly to installwatch so it can't contain
      # shell expansions or regex's
CASTFS_UNSTAGED_PATHS="/dev /proc /tmp /var/tmp /sys ${BUILD_DIRECTORY} ${SGL_LIBRARY} ${INSTALL_ROOT}/${SGL_LIBRARY} ${SOURCE_CACHE} ${CONFIG_CACHE} ${INSTALL_ROOT}/${CONFIG_CACHE} ${STATE_DIRECTORY} ${LOG_DIRECTORY} $DEBUG"
# this value is a mask bits set mean output is done for that particular 
# component of castfs
CASTFS_DEBUG_LEVEL=${CASTFS_DEBUG_LEVEL:=255}

# this makes appending the sorcery path idempotent
[ -z ${PATH##*$SORCERY_PATH*} ] || export PATH="$PATH:$SORCERY_PATH"

optimize
umask $UMASK >/dev/null
# this fixes breakage with multiply nested triggers, if/when we dont use
# make anymore this can be removed
unset MAKELEVEL
unset MAKEFLAGS

# protection against users that don't distinguish (non)interactive shells
unset GREP_OPTIONS
