From: Junghyun Yeon Date: Tue, 13 Jun 2017 10:47:19 +0000 (+0900) Subject: Fix upgrade script X-Git-Tag: submit/tizen/20170630.024412~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=73a504010bbf88b42072c715cd9bed434e63e74f;p=platform%2Fcore%2Fappfw%2Fpkgmgr-tool.git Fix upgrade script - copy manifest of user tpk file to manifest location to be initialized by pkg_initdb - get user wgt packages and invoke backend to be initialized - Add initialization of restriction db Change-Id: If92bfdd7346f5ce2e30e00c1d920b23a285ed993 Signed-off-by: Junghyun Yeon --- diff --git a/data/700.pkgmgr.patch.sh.in b/data/700.pkgmgr.patch.sh.in index cb154b9..e845d9c 100644 --- a/data/700.pkgmgr.patch.sh.in +++ b/data/700.pkgmgr.patch.sh.in @@ -39,6 +39,8 @@ TIZEN_MANIFEST=tizen-manifest.xml OWNER_SYSTEM_SHARE=owner:system_share TRUSTED_LABEL=User::Author::1 +RESTRICTION_DBPATH=/var/lib/package-manager +RESTRICTION_DBNAME=restriction.db #---------------------------------- # upgrade script for pkgmgr #---------------------------------- @@ -48,6 +50,15 @@ function backup_db(){ mv $PARSER_DB_PATH $PARSER_BACKUP_DB_PATH } +function create_restriction_db(){ + echo "#create restriction db" + local restriction_db=$RESTRICTION_DBPATH/$RESTRICTION_DBNAME + mkdir -p $RESTRICTION_DBPATH + echo "PRAGMA journal_mode=WAL; + CREATE TABLE restriction (uid INTEGER NOT NULL, pkgid TEXT NOT NULL, mode INTEGER NOT NULL, UNIQUE(uid, pkgid));" | + sqlite3 $restriction_db +} + function remove_modified_manifest(){ echo "#remove modified manifest" rm -rf $DEFAULT_PKG_MANIFEST_LOCATION/* @@ -55,10 +66,15 @@ function remove_modified_manifest(){ function remove_unregistered_pkg(){ #remove pkg folder which is not registered at pkg db - rm -rf $OPT_USR_APPS/media-server - rm -rf $OPT_USR_APPS/org.tizen.indicator_Shm - rm -rf $OPT_USR_APPS/org.tizen.sound-player - rm -rf $OPT_USR_APPS/tmp + ls $OPT_USR_APPS/ | while read FOLDER + do + result=$(sqlite3 $PARSER_BACKUP_DB_PATH "SELECT COUNT(*) FROM package_info WHERE package='$FOLDER';") + if [ $result != "1" ] + then + echo "delete unregistered package directory $OPT_USR_APPS/$FOLDER" + rm -r $OPT_USR_APPS/$FOLDER + fi + done } function move_user_tpk_ro_files(){ @@ -103,6 +119,11 @@ function move_user_tpk_rw_files(){ rm -rf $DEFAULT_PKG_APP_LOCATION/$package/shared/cache } +function copy_user_tpk_manifest(){ + local package=$1 + cp $DEFAULT_PKG_APP_LOCATION/$1/$TIZEN_MANIFEST $DEFAULT_PKG_MANIFEST_LOCATION/$package.xml +} + function move_user_tpk_files(){ echo "#move user TPK's files" echo "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='tpk' COLLATE NOCASE;" | @@ -113,6 +134,7 @@ function move_user_tpk_files(){ 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 } @@ -254,7 +276,7 @@ function disable_preload_pkg(){ while read package do - echo "disable preload tpk, rpm $package..." + echo "disable preload pkg $package..." tpk-backend -D $package --preload done < $DB_RESULT_FILE rm -f $DB_RESULT_FILE @@ -283,8 +305,10 @@ function disable_user_pkg(){ while read package type do + echo "disable user pkg $package..." + echo "$type-backend -D $package" $type-backend -D $package - done < $DB_RESULT_FILE + done < $DB_RESULT_FILE rm -f $DB_RESULT_FILE } @@ -292,8 +316,31 @@ function remove_backup_db(){ rm $PARSER_BACKUP_DB_PATH } +function init_user_wgt_packages(){ + echo "#init user wgt packages" + echo ".separator \" \" + SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt';" | + sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE + + while read package + do + echo "init user wgt package $package..." + wgt-backend -y $package + done < $DB_RESULT_FILE + rm -f $DB_RESULT_FILE +} + +function migrate_external_info(){ + echo "#migrate external storage info" + echo "ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup; + UPDATE package_info set installed_storage='installed_external' WHERE package IN (SELECT package FROM backup.package_info WHERE installed_storage='installed_external' COLLATE NOCASE);" | + sqlite3 $PARSER_DB_PATH +} + backup_db +create_restriction_db + remove_modified_manifest remove_unregistered_pkg @@ -301,11 +348,13 @@ move_user_tpk_files move_user_wgt_files initdb +init_user_wgt_packages remove_files_for_deleted_packages move_preload_pkg_userdata disable_preload_pkg disable_user_pkg +migrate_external_info remove_backup_db