Add a script to set labels some installed files 50/123950/1
authorjongmyeongko <jongmyeong.ko@samsung.com>
Mon, 3 Apr 2017 09:11:18 +0000 (18:11 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Sat, 8 Apr 2017 07:20:39 +0000 (16:20 +0900)
At the stage of image creation, the transmute funtion doesn't work.
So, we need the behavior to directly set label to some installed files
which label was covered by transmute funtion.

Change-Id: Ib0cab957d5abba159e8674ed40ac6223be328169
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
CMakeLists.txt
data/pkgmgr-label-initial-image.sh.in [new file with mode: 0644]
packaging/pkgmgr-tool.spec

index 2916d319cc88325c1629bae5070b11a848046971..10253ad044bf8af5271bf6a993db5511e5489f2c 100644 (file)
@@ -77,6 +77,8 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/data/pkgmgr-create-delta.sh.in pkgmgr-create-
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-create-delta.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
 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/pkgmgr-label-initial-image.sh.in pkgmgr-label-initial-image.sh @ONLY)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-label-initial-image.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
 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/)
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/701.app2sd.patch.sh.in 701.app2sd.patch.sh @ONLY)
diff --git a/data/pkgmgr-label-initial-image.sh.in b/data/pkgmgr-label-initial-image.sh.in
new file mode 100644 (file)
index 0000000..610c88f
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+echo "----------------------------------"
+echo " Labeling for some installed files"
+echo "----------------------------------"
+
+_ro_packages_dir="/usr/share/packages"
+_rw_packages_dir="/opt/share/packages"
+_skel_dir="/etc/skel/apps_rw"
+_subdir_list="$(dir $_skel_dir)"
+
+for entry in "$_ro_packages_dir"/*.xml; do
+       if [ -f "$entry" ]; then
+               chsmack -a "System" $entry
+       fi
+done
+
+for entry in "$_rw_packages_dir"/*.xml; do
+       if [ -f "$entry" ]; then
+               chsmack -a "System" $entry
+       fi
+done
+
+for entry in $_subdir_list; do
+       _bin_symlink="$_skel_dir/$entry/bin"
+       _lib_symlink="$_skel_dir/$entry/lib"
+       _res_symlink="$_skel_dir/$entry/res"
+       _shared_res_symlink="$_skel_dir/$entry/shared/res"
+
+       _target_list=" \
+               $_bin_symlink \
+               $_lib_symlink \
+               $_res_symlink \
+               $_shared_res_symlink"
+
+       for sub_entry in $_target_list; do
+               if [ -h "$sub_entry" ]; then
+                       chsmack -a "User::Home" $sub_entry
+               fi
+       done
+
+       for sub_entry in "$_skel_dir/$entry"/*.xml; do
+               if [ -h "$sub_entry" ]; then
+                       chsmack -a "User::Home" $sub_entry
+               fi
+       done
+done
+
index e31a2764e7fdf85a9700363fd422ce17b2a5dd0e..98220da7ac224dde2fd5bb0efbd292f897017b4e 100644 (file)
@@ -70,7 +70,9 @@ if [ ! -f %{TZ_SYS_DB}/.pkgmgr_parser.db ]; then
   else
     pkgcmd -l
   fi
+  %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
 fi
+rm -rf %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
 
 %files
 %manifest %{name}.manifest
@@ -91,4 +93,5 @@ fi
 %attr(0700,root,root) /usr/share/upgrade/scripts/701.app2sd.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
+%attr(0700,root,root) %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
 /usr/share/license/%{name}