New commits:
commit 055cf3717759575a490a0f255f007fd59e3577cb
Author: David Brown <dmlb2000@kajit-master.(none)>
Commit: David Brown <dmlb2000@kajit-master.(none)>
initial commit to make stage root work with castfs
# this is passed directly to installwatch so it can't contain
# shell expansions or regex's
-INSTALLWATCH_UNSTAGED_PATHS=""
-for dir in /dev \
- /proc \
- /tmp \
- /var/tmp \
- /sys \
- ${BUILD_DIRECTORY} \
- ${SGL_LIBRARY} \
- ${INSTALL_ROOT}/${SGL_LIBRARY} \
- ${SOURCE_CACHE} \
- ${CONFIG_CACHE} \
- ${STATE_DIRECTORY} \
- ${LOG_DIRECTORY} ; do
- INSTALLWATCH_UNSTAGED_PATHS="${INSTALLWATCH_UNSTAGED_PATHS}${dir},"
-done
-INSTALLWATCH_UNSTAGED_PATHS=${INSTALLWATCH_UNSTAGED_PATHS%,}
-# this value can be between 0-4, 0 is nothing and 4 is everything
-INSTALLWATCH_DEBUG_LEVEL=1
+CASTFS_UNSTAGED_PATHS="/dev /proc /tmp /var/tmp /sys ${BUILD_DIRECTORY}
${SGL_LIBRARY} ${INSTALL_ROOT}/${SGL_LIBRARY} ${SOURCE_CACHE} ${CONFIG_CACHE}
${STATE_DIRECTORY} ${LOG_DIRECTORY}"
+# this value is a mask bits set mean output is done for that particular
+# component of castfs
+CASTFS_DEBUG_LEVEL=255
# this makes appending the sorcery path idempotent
[ -z ${PATH##*$SORCERY_PATH*} ] || export PATH="$PATH:$SORCERY_PATH"
diff --git a/usr/sbin/delve b/usr/sbin/delve
index 4fc5c94..69794ae 100755
--- a/usr/sbin/delve
+++ b/usr/sbin/delve
@@ -87,7 +87,7 @@ function delve_log_helper() {
# these have to go somewhere where future delves can find them
C_LOG=${C_LOG:="/tmp/sorcery/delve/$SPELL.compile.log"}
- IW_DBGLOG=${IW_DBGLOG:="/tmp/sorcery/delve/$SPELL.iwdbglog"}
+ CASTFS_DBGLOG=${CASTFS_DBGLOG:="/tmp/sorcery/delve/$SPELL.iwdbglog"}
C_FIFO=${C_FIFO:="/dev/stdout"}
IW_LOG=${IW_LOG:="/tmp/sorcery/delve/$SPELL.iw"}
VOYEUR_STDOUT=${VOYEUR_STDOUT:="/dev/stdout"}
@@ -160,12 +160,10 @@ function delve_install() {
delve_is_valid_step BUILD 2 || return 1
delve_log_helper
- invoke_installwatch &&
- if [[ "$STAGED_INSTALL" != "off" ]]
+ if ! [[ "$__DELVE_IN_CAST" ]]
then
- prepare_stage_root
- invoke_stage_root
- fi &&
+ invoke_installwatch
+ fi
(
run_install || return 2
) 2> >(tee -a $C_LOG 1>&2 > $VOYEUR_STDERR) \
@@ -339,10 +337,7 @@ function main() {
echo "DEBUG: $STATES"
- if ! installwatch_is_stageable
- then
- STAGED_INSTALL=off
- fi
+ STAGED_INSTALL=off
local last_rc=0
for STATE in $STATES; do
diff --git a/var/lib/sorcery/modules/build_api/api2
b/var/lib/sorcery/modules/build_api/api2
index a9a92ee..c418170 100755
--- a/var/lib/sorcery/modules/build_api/api2
+++ b/var/lib/sorcery/modules/build_api/api2
@@ -26,15 +26,17 @@ #---------------------------------------
function run_build_spell() {
debug "build_api/api2" "run_build_spell"
+ local CHROOT_CHECK=""
+
export C_LOG=$TMP_DIR/$SPELL.compile.log
- export IW_DBGLOG=$C_LOG.iwdbglog
+ export CASTFS_DBGLOG=$C_LOG.castfs.dbglog
export C_FIFO=/dev/stdout # not needed for api2 anymore, but just in case
export S_PWD=$TMP_DIR/build.saved.pwd
export VOYEUR_STDOUT VOYEUR_STDERR
export __DELVE_IN_CAST=on
@@ -53,7 +55,7 @@ function run_build_spell() {
VOYEUR_STDERR=/dev/null
fi
- if ! installwatch_is_stageable
+ if ! is_castfs_installed
then
STAGED_INSTALL=off
fi
@@ -66,14 +68,16 @@ function run_build_spell() {
(
run_build &&
run_pre_install &&
- invoke_installwatch &&
if [[ "$STAGED_INSTALL" != "off" ]]
then
prepare_stage_root &&
- invoke_stage_root
+ invoke_stage_root &&
+ CHROOT_CHECK="chroot ${STAGE_DIRECTORY}/MOUNT"
+ else
+ invoke_installwatch
fi &&
- set_stage_root_paths &&
- delve $SPELL INSTALL &&
+ message "${MESSAGE_COLOR}iwlog $IW_LOG${DEFAULT_COLOR}" &&
+ $CHROOT_CHECK delve $SPELL INSTALL &&
delve $SPELL POST_INSTALL || return 2
run_stage_install &&
devoke_installwatch &&
@@ -189,7 +193,6 @@ ## stage root properly
#---------------------------------------------------------------------
function run_install() {
debug "build_api/api2" "Starting run_install()"
- set_stage_root_paths
if [ -f $S_PWD ] ; then
cd "`cat $S_PWD`"
elif [ -d $SOURCE_DIRECTORY ] ; then
@@ -219,7 +222,6 @@ ## stage root properly
#---------------------------------------------------------------------
function run_post_install() {
debug "build_api/api2" "Starting run_post_install()"
- set_stage_root_paths
persistent_load &&
if [[ $STAGED_INSTALL != off ]]
then
@@ -237,7 +239,6 @@ ##--------------------------------------
function run_stage_install() {
if [[ "$STAGED_INSTALL" != "off" ]]
then
- set_stage_root_paths
devoke_stage_root &&
install_staged_spell
fi
diff --git a/var/lib/sorcery/modules/libcast b/var/lib/sorcery/modules/libcast
index 8a6c00f..67caf74 100755
--- a/var/lib/sorcery/modules/libcast
+++ b/var/lib/sorcery/modules/libcast
@@ -637,14 +637,16 @@ function create_compile_log() {
else
$COMPRESSBIN -f < $C_LOG > $COMPILE_LOGS/$SPELL-$VERSION$EXTENSION
fi
- message "${MESSAGE_COLOR}Creating installwatch debug log" \
- "${FILE_COLOR}$COMPILE_LOGS/$SPELL-$VERSION.iwdbglog$EXTENSION" \
- "${DEFAULT_COLOR}"
- if [ -z "$EXTENSION" ]
- then
- cp $IW_DBGLOG $COMPILE_LOGS/$SPELL-$VERSION.iwdbglog
- else
- $COMPRESSBIN -f < $IW_DBGLOG >
$COMPILE_LOGS/$SPELL-$VERSION.iwdbglog$EXTENSION
+ if [ -f $CASTFS_DBGLOG ] ; then
+ message "${MESSAGE_COLOR}Creating castfs debug log" \
+
"${FILE_COLOR}$COMPILE_LOGS/$SPELL-$VERSION.castfs.dbglog$EXTENSION" \
+ "${DEFAULT_COLOR}"
+ if [ -z "$EXTENSION" ]
+ then
+ cp $CASTFS_DBGLOG $COMPILE_LOGS/$SPELL-$VERSION.castfs.dbglog
+ else
+ $COMPRESSBIN -f < $CASTFS_DBGLOG >
$COMPILE_LOGS/$SPELL-$VERSION.castfs.dbglog$EXTENSION
+ fi
fi
}
diff --git a/var/lib/sorcery/modules/libstage
b/var/lib/sorcery/modules/libstage
index 40b2a31..14e5707 100755
--- a/var/lib/sorcery/modules/libstage
+++ b/var/lib/sorcery/modules/libstage
@@ -199,19 +199,6 @@ function stage_install_char_block()
esac
}
-function set_stage_root_paths()
-{
- local bindir libdir
- for bindir in /bin /sbin /usr/bin /usr/sbin
- do
- export PATH=$( envar_prepend_path "$STAGE_DIRECTORY/TRANSL/$bindir"
"$PATH" )
- done
- for libdir in /lib /usr/lib
- do
- export LD_LIBRARY_PATH=$( envar_prepend_path
$STAGE_DIRECTORY/TRANSL/$libdir $LD_LIBRARY_PATH )
- done
-}
-
#---------------------------------------------------------------------
## @param file
## install the file from the stage root to the system does check for
diff --git a/var/lib/sorcery/modules/libtrack
b/var/lib/sorcery/modules/libtrack
index 8cb33d0..05a5dd9 100755
--- a/var/lib/sorcery/modules/libtrack
+++ b/var/lib/sorcery/modules/libtrack
@@ -44,10 +44,19 @@ ##
#---------------------------------------------------------------------
function real_invoke_stage_root()
{
- export INSTW_TRANSL=1
- export INSTW_LOGFILE=/dev/null
- export DOCUMENT_DIRECTORY=${DOCUMENT_DIRECTORY#$INSTALL_ROOT}
- unset INSTALL_ROOT
+ export CASTFS_LOGFILE=${CASTFS_DBGLOG}
+ export CASTFS_DBGLVL=${CASTFS_DEBUG_LEVEL}
+ local CASTFS_IGNORE_LIST=""
+ # this forks and daemonizes so it will exit you simply unmount the dir to
stop the process
+ for dir in ${CASTFS_UNSTAGED_PATHS}
+ do
+ CASTFS_IGNORE_LIST="${CASTFS_IGNORE_LIST} -o ignore=$dir"
+ done &&
+ castfs "${STAGE_DIRECTORY}/MOUNT" -o "stage=${STAGE_DIRECTORY}/TRANSL"
$CASTFS_IGNORE_LIST &&
+ for dir in /dev /dev/pts /proc /sys
+ do
+ mount -o bind "$dir" "${STAGE_DIRECTORY}/MOUNT$dir"
+ done
}