local package=$1
cp -af $OPT_USR_APPS/$package $DEFAULT_PKG_APP_LOCATION/
chown -R $DEFAULT_RO_OWNER_GROUP $DEFAULT_PKG_APP_LOCATION/$package
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_PKG_APP_LOCATION/$package
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::RO $DEFAULT_PKG_APP_LOCATION/$package/bin
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::RO $DEFAULT_PKG_APP_LOCATION/$package/lib
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::RO $DEFAULT_PKG_APP_LOCATION/$package/res
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_PKG_APP_LOCATION/$package/shared
}
function move_user_tpk_rw_files(){
local package=$1
- mkdir -m 751 $DEFAULT_USER_APPS_RW/$package
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_USER_APPS_RW/$package
- mkdir $DEFAULT_USER_APPS_RW/$package/shared
- chown -R $DEFAULT_RW_OWNER_GROUP $DEFAULT_USER_APPS_RW/$package
-
- mv $DEFAULT_PKG_APP_LOCATION/$package/cache $DEFAULT_USER_APPS_RW/$package/
- mv $DEFAULT_PKG_APP_LOCATION/$package/data $DEFAULT_USER_APPS_RW/$package/
- chmod g+s $DEFAULT_USER_APPS_RW/$package/data
- chmod 771 $DEFAULT_USER_APPS_RW/$package/data
- mv $DEFAULT_PKG_APP_LOCATION/$package/shared/data $DEFAULT_USER_APPS_RW/$package/shared/
- mv $DEFAULT_PKG_APP_LOCATION/$package/shared/trusted $DEFAULT_USER_APPS_RW/$package/shared/
-
- chown -R $DEFAULT_RW_OWNER_GROUP $DEFAULT_USER_APPS_RW/$package/cache
- chown -R $OWNER_SYSTEM_SHARE $DEFAULT_USER_APPS_RW/$package/data
- chown -R $DEFAULT_RW_OWNER_GROUP $DEFAULT_USER_APPS_RW/$package/shared
- chown -R $OWNER_SYSTEM_SHARE $DEFAULT_USER_APPS_RW/$package/shared/data
-
- chsmack -r -t -a $TRUSTED_LABEL $DEFAULT_USER_APPS_RW/$package/shared/trusted
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::SharedRO $DEFAULT_USER_APPS_RW/$package/shared/data
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_USER_APPS_RW/$package/cache
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_USER_APPS_RW/$package/data
+
+ local target="$DEFAULT_USER_APPS_RW/$package"
+ local source="$OPT_USR_APPS/$package"
+
+ rm -rf $source/shared/cache
+ cp -Rf $source/cache/* $target/cache/
+ cp -Rf $source/data/* $target/data/
+ cp -Rf $source/shared/* $target/shared/
+ rm -rf $source
}
function copy_user_tpk_manifest(){
function move_user_tpk_files(){
echo "#move user TPK's files"
- echo "SELECT package FROM package_info WHERE package_readonly='false' COLLATE NOCASE AND package_type='tpk' COLLATE NOCASE;" |
+ echo "SELECT package FROM package_info WHERE package_readonly='false' COLLATE NOCASE AND package_type COLLATE NOCASE IN ('tpk', 'rpm');" |
sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE
while read package
do
echo "processing user tpk $package..."
move_user_tpk_ro_files $package
- move_user_tpk_rw_files $package
copy_user_tpk_manifest $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
local package=$1
cp -af --no-preserve=ownership $OPT_USR_APPS/$package $DEFAULT_PKG_APP_LOCATION/
chown -R $DEFAULT_RO_OWNER_GROUP $DEFAULT_PKG_APP_LOCATION/$package
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_PKG_APP_LOCATION/$package
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::RO $DEFAULT_PKG_APP_LOCATION/$package/bin
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::RO $DEFAULT_PKG_APP_LOCATION/$package/res
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_PKG_APP_LOCATION/$package/shared
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_PKG_APP_LOCATION/$package/tmp
}
function move_user_wgt_rw_files(){
local package=$1
- mkdir -m 751 $DEFAULT_USER_APPS_RW/$package
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_USER_APPS_RW/$package
-
- mkdir -m 751 $DEFAULT_USER_APPS_RW/$package/shared
- mkdir -m 751 $DEFAULT_USER_APPS_RW/$package/cache
-
- chown -R $DEFAULT_RW_OWNER_GROUP $DEFAULT_USER_APPS_RW/$package
-
- mv $DEFAULT_PKG_APP_LOCATION/$package/data $DEFAULT_USER_APPS_RW/$package/
- mv $DEFAULT_PKG_APP_LOCATION/$package/shared/data $DEFAULT_USER_APPS_RW/$package/shared/
- mv $DEFAULT_PKG_APP_LOCATION/$package/shared/trusted $DEFAULT_USER_APPS_RW/$package/shared/
- chmod 751 $DEFAULT_USER_APPS_RW/$package/shared/trusted
- chmod g+s $DEFAULT_USER_APPS_RW/$package/data
- chmod 771 $DEFAULT_USER_APPS_RW/$package/data
- chown -R $OWNER_SYSTEM_SHARE $DEFAULT_USER_APPS_RW/$package/data
- chown -R $DEFAULT_RW_OWNER_GROUP $DEFAULT_USER_APPS_RW/$package/shared
- chown -R $OWNER_SYSTEM_SHARE $DEFAULT_USER_APPS_RW/$package/shared/data
+ local target="$DEFAULT_USER_APPS_RW/$package"
+ local source="$OPT_USR_APPS/$package"
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_USER_APPS_RW/$package/cache
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_USER_APPS_RW/$package/data
- chsmack -r -t -a $TRUSTED_LABEL $DEFAULT_USER_APPS_RW/$package/shared/trusted
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package::SharedRO $DEFAULT_USER_APPS_RW/$package/shared/data
+ rm -rf $source/shared/cache
+ cp -Rf $source/cache/* $target/cache/
+ cp -Rf $source/data/* $target/data/
+ cp -Rf $source/shared/* $target/shared/
+ rm -r $source
}
do
echo "processing user wgt $package..."
move_user_wgt_ro_files $package
- move_user_wgt_rw_files $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
-function remove_previous_files(){
- echo "#remove files from previous location"
- echo "SELECT package FROM package_info WHERE package_readonly='false' COLLATE NOCASE;" |
- sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE
-
- while read package
- do
- rm -rf $OPT_USR_APPS/$package
- done < $DB_RESULT_FILE
- rm -f $DB_RESULT_FILE
-}
-
function initdb(){
echo "#pkg_initdb"
pkg_initdb --ro --partial-rw
while read package
do
echo "processing preload pkg $package..."
- cp -af $OPT_USR_APPS/$package $DEFAULT_USER_APPS_RW/
- chown -R $DEFAULT_RW_OWNER_GROUP $DEFAULT_USER_APPS_RW/$package
- chown -R $OWNER_SYSTEM_SHARE $DEFAULT_USER_APPS_RW/$package/data
- chmod g+s $DEFAULT_USER_APPS_RW/$package/data
- chmod 771 $DEFAULT_USER_APPS_RW/$package/data
- rm -rf $OPT_USR_APPS/$package
-
- chsmack -r -t -a $DEFAULT_RO_SMACK_LABEL $DEFAULT_USER_APPS_RW/$package
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_USER_APPS_RW/$package/cache
- chsmack -r -t -a $DEFAULT_RW_SMACK_LABEL$package $DEFAULT_USER_APPS_RW/$package/data
- if [ -d $DEFAULT_USER_APPS_RW/$package/shared/trusted ];
- then
- chsmack -r -t -a $TRUSTED_LABEL $DEFAULT_USER_APPS_RW/$package/shared/trusted
- fi
-
+ local source="$OPT_USR_APPS/$package"
+ local target="$DEFAULT_USER_APPS_RW/$package"
+ rm -rf $source/shared/cache
+ cp -Rf $source/cache/* $target/cache/
+ cp -Rf $source/data/* $target/data/
+ cp -Rf $source/shared $target/shared/
+
+ rm -rf $source
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
function remove_backup_db(){
rm $PARSER_BACKUP_DB_PATH
- # TODO(jungh.yeon temp block)rm $CERT_BACKUP_DB_PATH
+ rm $CERT_BACKUP_DB_PATH
}
function init_user_tpk_preload_rw_packages() {
echo "#init tpk preload rw packages"
echo ".separator \" \"
- SELECT package FROM package_info WHERE package_readonly='false' COLLATE NOCASE AND package_preload='true' COLLATE NOCASE AND package_type='tpk';" |
+ SELECT package FROM package_info WHERE package_readonly='false' COLLATE NOCASE AND package_preload='true' COLLATE NOCASE AND package_type COLLATE NOCASE IN ('tpk', 'rpm');" |
sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE
while read package
tpk-backend -y $package --preload-rw
rm -f $CERT_TEMP_FILEPATH/$package.txt
migrate_cert_info $package
+ move_user_tpk_rw_files $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
do
echo "init wgt preload rw package $package..."
wgt-backend -y $package --preload-rw
+ move_user_wgt_rw_files $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
fi
query=$query" WHERE package='$package'"
- echo "debugging query is [$query]"
sqlite3 $CERT_DB_PATH "$query"
}
rm -f $CERT_TEMP_FILEPATH/$package.txt
migrate_cert_info $package
+ move_user_tpk_rw_files $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
do
echo "init user wgt package $package..."
wgt-backend -y $package
+ move_user_wgt_rw_files $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
move_user_tpk_files
move_user_wgt_files
-remove_previous_files
initdb
init_user_tpk_packages