Change pkg upgrade script 65/101265/10 accepted/tizen/3.0/common/20161207.194227 accepted/tizen/3.0/common/20161207.194738 accepted/tizen/3.0/ivi/20161207.010653 accepted/tizen/3.0/ivi/20161207.012952 accepted/tizen/3.0/mobile/20161207.010609 accepted/tizen/3.0/mobile/20161207.012900 accepted/tizen/3.0/tv/20161207.010622 accepted/tizen/3.0/tv/20161207.012916 accepted/tizen/3.0/wearable/20161207.010630 accepted/tizen/3.0/wearable/20161207.012933 submit/tizen_3.0/20161206.012225 submit/tizen_3.0/20161206.101358
authorJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 30 Nov 2016 13:01:08 +0000 (22:01 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Mon, 5 Dec 2016 11:41:47 +0000 (20:41 +0900)
Change-Id: Ie2b4ad7f5a50924d51a9d4622c0240657c44dfef
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
CMakeLists.txt
data/300.pkgmgr.patch.sh.in [deleted file]
data/700.pkgmgr.patch.sh.in [new file with mode: 0644]
packaging/pkgmgr-tool.spec

index 09ace33f823377f55327b54dcf3afac3ee3deb92..055b22260d2fb43ee75fa8f296c81d75e81445b9 100644 (file)
@@ -75,7 +75,7 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/pkgmgr-unzip-pkg.sh.in pkgmgr-un
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-unzip-pkg.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/data/pkgmgr-create-delta.sh.in pkgmgr-create-delta.sh @ONLY)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-create-delta.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/300.pkgmgr.patch.sh.in 300.pkgmgr.patch.sh @ONLY)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/300.pkgmgr.patch.sh DESTINATION /usr/share/upgrade/scripts/)
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/pkgmgr-clear-skel.sh.in pkgmgr-clear-skel.sh @ONLY)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-clear-skel.sh DESTINATION /usr/share/fixed_multiuser/scripts/)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/700.pkgmgr.patch.sh.in 700.pkgmgr.patch.sh @ONLY)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/700.pkgmgr.patch.sh DESTINATION /usr/share/upgrade/scripts/)
diff --git a/data/300.pkgmgr.patch.sh.in b/data/300.pkgmgr.patch.sh.in
deleted file mode 100644 (file)
index 3643eff..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/sh
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-#----------------------------------
-# upgrade script for pkgmgr
-#----------------------------------
-
-#backup previous db
-mv /opt/dbspace/.pkgmgr_parser.db /opt/dbspace/.pkgmgr_parser_backup.db
-
-#copy user app's manifest file and change owner, smack label
-sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='tpk'" |
-awk '{
-system("cp --no-preserve=ownership /opt/usr/apps/" $1 "/tizen-manifest.xml /opt/usr/home/owner/.applications/manifest/" $1 ".xml")
-system("chown owner:users /opt/usr/home/owner/.applications/manifest/" $1 ".xml")
-system("chsmack -a User::Home /opt/usr/home/owner/.applications/manifest/" $1 ".xml")
-system("rm /opt/share/packages/" $1 ".xml")
-}'
-
-#remove pkg folder which is not registered at pkg db
-rm -r /opt/usr/apps/media-server
-rm -r /opt/usr/apps/org.tizen.indicator_shm
-rm -r /opt/usr/apps/org.tizen.sound-player
-rm -r /opt/usr/apps/tmp
-
-#remove wgt app's xml at /opt/share/packages before pkg_initdb
-sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt'" |
-awk '{system("rm /opt/share/packages/" $1 ".xml")}'
-
-pkg_initdb
-
-#delete userdata of packages which are removed from 3.0
-sqlite3 /opt/dbspace/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
-SELECT package from backup.package_info WHERE package_preload='true' COLLATE NOCASE AND
-package NOT IN (SELECT package FROM package_info)" |
-awk '{ system("rm -r " "/opt/usr/apps/" $1)}'
-
-#move preload package's userdata
-sqlite3 /opt/dbspace/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
-SELECT package from backup.package_info WHERE package IN (SELECT package FROM package_info)" |
-awk '{
-system("cp -r -f --no-preserve=ownership /opt/usr/apps/" $1 "/cache/ /opt/usr/home/owner/apps_rw/" $1)
-system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1 "/cache")
-system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/cache")
-system("cp -r -f --no-preserve=ownership /opt/usr/apps/" $1 "/data/ /opt/usr/home/owner/apps_rw/" $1)
-system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1 "/data")
-system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/data")
-system("cp -r -f --no-preserve=ownership /opt/usr/apps/" $1 "/shared/ /opt/usr/home/owner/apps_rw/" $1)
-system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1 "/shared")
-system("chsmack -r -a User::Home /opt/usr/home/owner/apps_rw/" $1 "/shared")
-system("chsmack -r -a User::Pkg::" $1 "::SharedRO /opt/usr/home/owner/apps_rw/" $1 "/shared/data")
-system("rm -r /opt/usr/apps/" $1)
-}'
-
-#check preload package which is disabled and enable it
-sqlite3 /opt/dbspace/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
-SELECT package from backup.package_info WHERE package_preload='true' COLLATE NOCASE AND
-package_disable='true' COLLATE NOCASE AND
-package IN (SELECT package from package_info)" |
-awk '{ system("tpk-backend -D " $1 " --preload")}'
-
-#copy userdata for userapp
-sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE" |
-awk '{
-system("mv /opt/usr/apps/" $1 "/ /opt/usr/home/owner/apps_rw/")
-system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1)
-system("chsmack -r -a User::Home /opt/usr/home/owner/apps_rw/" $1)
-system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/cache")
-system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/data")
-system("chsmack -r -a User::Pkg::" $1 "::RO /opt/usr/home/owner/apps_rw/" $1 "/bin")
-system("chsmack -r -a User::Pkg::" $1 "::RO /opt/usr/home/owner/apps_rw/" $1 "/lib")
-system("chsmack -r -a User::Pkg::" $1 "::RO /opt/usr/home/owner/apps_rw/" $1 "/res")
-system("chsmack -r -a User::Pkg::" $1 "::SharedRO /opt/usr/home/owner/apps_rw/" $1 "/shared/data")
-system("chsmack -r -a User::Author::1 /opt/usr/home/owner/apps_rw/" $1 "/shared/trusted")
-}'
-
-#create db path
-mkdir -p /opt/dbspace/user/5001
-chsmack -a User::Home /opt/dbspace/user
-chsmack -a User::Home /opt/dbspace/user/5001
-chmod -R 770 /opt/dbspace/user/5001
-chown owner:system_share /opt/dbspace/user/5001
-
-#userdb init
-pkg_initdb --uid 5001
-
-#manifest direct install for user wgt apps
-sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt'" |
-awk '{
-system("wgt-backend -y " $1 " -u 5001")
-system("mkdir /opt/usr/home/owner/apps_rw/" $1 "/cache")
-system("chown owner:users /opt/usr/home/owner/apps_rw/" $1 "/cache")
-system("chsmack -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/cache")
-}'
-
-#disable user package
-sqlite3 /opt/dbspace/user/5001/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
-SELECT package FROM backup.package_info WHERE package_preload='false' COLLATE NOCASE AND
-package_disable='true' COLLATE NOCASE AND package_type='tpk' AND
-package IN (select package from package_info)" |
-awk '{ system("tpk-backend -D " $1 " -u 5001")}'
-
-sqlite3 /opt/dbspace/user/5001/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
-SELECT package FROM backup.package_info WHERE package_preload='false' COLLATE NOCASE AND
-package_disable='true' COLLATE NOCASE AND package_type='wgt' AND
-package IN (select package from package_info)" |
-awk '{ system("wgt-backend -D " $1 " -u 5001")}'
-
-#remove backups
-rm -r /opt/dbspace/.pkgmgr_parser_backup.db
diff --git a/data/700.pkgmgr.patch.sh.in b/data/700.pkgmgr.patch.sh.in
new file mode 100644 (file)
index 0000000..d9b149c
--- /dev/null
@@ -0,0 +1,312 @@
+#!/bin/sh
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+source /etc/tizen-platform.conf
+
+PARSER_DB_NAME=.pkgmgr_parser.db
+PARSER_BACKUP_DB_NAME=.pkgmgr_parser_backup.db
+PARSER_DB_PATH=$TZ_SYS_DB/$PARSER_DB_NAME
+PARSER_BACKUP_DB_PATH=$TZ_SYS_DB/$PARSER_BACKUP_DB_NAME
+DB_RESULT_FILE=/tmp/result.log
+
+OPT_USR_APPS=/opt/usr/apps
+
+#define owner user
+DEFAULT_USER=$TZ_SYS_DEFAULT_USER
+
+#define /opt/usr/home/owner
+DEFAULT_USER_HOME=$TZ_SYS_HOME/$DEFAULT_USER
+
+#define /opt/usr/home/owner/apps_rw
+DEFAULT_USER_APPS_RW=$DEFAULT_USER_HOME/apps_rw
+
+#define /opt/share/packages
+DEFAULT_PKG_MANIFEST_LOCATION=$TZ_SYS_RW_PACKAGES
+
+#define /opt/usr/globalapps
+DEFAULT_PKG_APP_LOCATION=$TZ_SYS_RW_APP
+
+
+DEFAULT_RO_OWNER_GROUP=tizenglobalapp:root
+DEFAULT_MANIFEST_SMACK_LABEL=System
+
+DEFAULT_RW_OWNER_GROUP=owner:users
+DEFAULT_RW_SMACK_LABEL=User::Pkg::
+DEFAULT_RO_SMACK_LABEL=User::Home
+
+TIZEN_MANIFEST=tizen-manifest.xml
+
+OWNER_SYSTEM_SHARE=owner:system_share
+TRUSTED_LABEL=User::Author::1
+
+#----------------------------------
+# upgrade script for pkgmgr
+#----------------------------------
+
+function backup_db(){
+       echo "#backup previous DB"
+       mv $PARSER_DB_PATH $PARSER_BACKUP_DB_PATH
+}
+
+function remove_modified_manifest(){
+       echo "#remove modified manifest"
+       rm -rf $DEFAULT_PKG_MANIFEST_LOCATION/*
+}
+
+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
+}
+
+function move_user_tpk_ro_files(){
+       #this copy will copy whole things include userdata
+       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
+
+       #remove shared/cache
+       echo "deleting $DEFAULT_PKG_APP_LOCATION/$package/shared/cache"
+       rm -rf $DEFAULT_PKG_APP_LOCATION/$package/shared/cache
+}
+
+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;" |
+       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
+       done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+}
+
+function move_user_wgt_ro_files(){
+       #this copy will copy whole things include userdata
+       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
+
+       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
+}
+
+
+function move_user_wgt_files(){
+       echo "#move user WGT's files"
+       echo "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt' COLLATE NOCASE;" |
+       sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE
+
+       while read package
+       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 initdb(){
+       #pkg_initdb --partial-rw
+       echo "#pkg_initdb"
+       pkg_initdb
+
+       mkdir -m 770 -p /opt/dbspace/user/5001
+       chmod 755 /opt/dbspace/user
+       chsmack -r -a User::Home /opt/dbspace/user
+       chown $OWNER_SYSTEM_SHARE /opt/dbspace/user/5001
+
+       pkg_initdb --uid 5001
+}
+
+function migrate_user_tpk(){
+       #run manifest direct install of user tpk pkgs
+       echo ".separator \" \"
+           SELECT package, LOWER(package_type) FROM package_info WHERE package_preload='false' COLLATE NOCASE AND (package_type='tpk' COLLATE NOCASE OR package_type='wgt' COLLATE NOCASE);" |
+       sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE
+
+       while read package type
+       do
+               echo "processing $package..."
+               $type-backend -y $package
+       done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+}
+
+function remove_files_for_deleted_packages(){
+       #delete userdata of packages which are removed in 3.0
+       echo "#delete userdata of removed packages"
+       echo "ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup;
+           SELECT package FROM backup.package_info WHERE package_preload='true' COLLATE NOCASE AND
+           package NOT IN (SELECT package FROM package_info);" |
+       sqlite3 $PARSER_DB_PATH > $DB_RESULT_FILE
+
+       while read package
+       do
+               echo "rm -r $OPT_USR_APPS/$package"
+               rm -r $OPT_USR_APPS/$package
+               done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+}
+
+function move_preload_pkg_userdata(){
+       echo "#move preload pkg's userdata"
+       echo "ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup;
+           SELECT package FROM backup.package_info WHERE package_preload='true' COLLATE NOCASE AND
+           package IN (SELECT package FROM package_info);" |
+       sqlite3 $PARSER_DB_PATH > $DB_RESULT_FILE
+       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
+
+               rm -rf $DEFAULT_USER_APPS_RW/$package/shared/cache
+               rm -rf $DEFAULT_USER_APPS_RW/$package/shared/data
+
+               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
+
+       done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+}
+
+function disable_preload_pkg(){
+       echo "#disable preload rpm, tpk pkg"
+       echo "ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup;
+           SELECT package FROM backup.package_info WHERE package_preload='true' COLLATE NOCASE AND package_type!='wgt' COLLATE NOCASE AND package_disable='true' COLLATE NOCASE AND
+           package IN (SELECT package FROM package_info);" |
+       sqlite3 $PARSER_DB_PATH > $DB_RESULT_FILE
+
+       while read package
+       do
+               echo "disable preload tpk, rpm $package..."
+               tpk-backend -D $package --preload
+       done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+
+       echo "#disable preload wgt pkg"
+       echo "ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup;
+           SELECT package FROM backup.package_info WHERE package_preload='true' COLLATE NOCASE AND package_type='wgt' COLLATE NOCASE AND package_disable='true' COLLATE NOCASE AND
+           package IN (SELECT package FROM package_info);" |
+       sqlite3 $PARSER_DB_PATH > $DB_RESULT_FILE
+
+       while read package
+       do
+               echo "disable preload wgt $package..."
+               wgt-backend -D $package --preload
+       done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+}
+
+function disable_user_pkg(){
+       echo "#disable user pkg"
+       echo ".separator \" \"
+           ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup;
+           SELECT package, package_type FROM backup.package_info WHERE package_preload='false' COLLATE NOCASE AND package_type !='rpm' COLLATE NOCASE AND package_disable='true' COLLATE NOCASE AND
+           package IN (SELECT package FROM package_info);" |
+       sqlite3 $PARSER_DB_PATH > $DB_RESULT_FILE
+
+       while read package type
+       do
+               $type-backend -D $package
+               done < $DB_RESULT_FILE
+       rm -f $DB_RESULT_FILE
+}
+
+function remove_backup_db(){
+       rm $PARSER_BACKUP_DB_PATH
+}
+
+backup_db
+
+remove_modified_manifest
+remove_unregistered_pkg
+
+move_user_tpk_files
+move_user_wgt_files
+
+initdb
+
+remove_files_for_deleted_packages
+move_preload_pkg_userdata
+
+disable_preload_pkg
+disable_user_pkg
+
+remove_backup_db
\ No newline at end of file
index 68fef22997257041b8b32e9129187deb5ccd874c..842b8fff472774a380ec6114eb31d343af1cce5e 100644 (file)
@@ -87,7 +87,7 @@ fi
 %{_datadir}/mime/packages/mime.tpk.xml
 %attr(0700,root,root) /etc/package-manager/pkgmgr-unzip-pkg.sh
 %attr(0700,root,root) /etc/package-manager/pkgmgr-create-delta.sh
-%attr(0700,root,root) /usr/share/upgrade/scripts/300.pkgmgr.patch.sh
+%attr(0700,root,root) /usr/share/upgrade/scripts/700.pkgmgr.patch.sh
 %attr(0700,root,root) %{_sysconfdir}/opt/upgrade/pkgmgr.patch.sh
 %attr(0700,root,root) /usr/share/fixed_multiuser/scripts/pkgmgr-clear-skel.sh
 /usr/share/license/%{name}