Add DataMigration Script for OSU 25/308625/5
authordyamy-lee <dyamy.lee@samsung.com>
Thu, 28 Mar 2024 07:41:34 +0000 (16:41 +0900)
committerdyamy-lee <dyamy.lee@samsung.com>
Tue, 2 Apr 2024 05:13:05 +0000 (14:13 +0900)
When it does OS Upgrade, previous RW data will be initialized.
So, this patch provide keeping the previous configuration with migration script.

Change-Id: Id484c0537ed406fed37ff7e6f5a6db202b9bedae

packaging/tts.spec
script/migration/tts.sh [new file with mode: 0644]

index 309d7b3..43607d0 100644 (file)
@@ -121,6 +121,9 @@ make %{?jobs:-j%jobs}
 %install
 rm -rf %{buildroot}
 
+mkdir -p %{buildroot}%{_datadir}/upgrade/vd_scripts/additional_scripts
+install -p -m 500 script/migration/tts.sh %{buildroot}%{_datadir}/upgrade/vd_scripts/additional_scripts/tts.sh
+
 %if "%{tizen_profile_name}" == "tv"
 mv -f org.tizen.voice.ttsserver.tv.service org.tizen.voice.ttsserver.service
 mv -f org.tizen.voice.ttsnotiserver.tv.service org.tizen.voice.ttsnotiserver.service
@@ -218,6 +221,7 @@ chown -R ui_fw:users %{TZ_SYS_GLOBALUSER_DATA}/.voice
 %{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libtts-engine-parser.so*
 #%{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libtts-engine-language-pack-parser.so*
 /etc/dbus-1/system.d/tts-server.conf
+%{_datadir}/upgrade/vd_scripts/additional_scripts/tts.sh
 
 %files devel
 %manifest %{name}-devel.manifest
diff --git a/script/migration/tts.sh b/script/migration/tts.sh
new file mode 100644 (file)
index 0000000..8b5230e
--- /dev/null
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+###BackupVconfKey: db/voice/tts/engine/default
+###BackupVconfKey: db/voice/tts/instant-reprepare-client
+
+source "$UPDATE_EXEC_PATH/common/util.inc"
+source "$UPDATE_EXEC_PATH/common/debug.inc"
+source "$UPDATE_EXEC_PATH/common/mig_ctl.inc"
+source "$UPDATE_EXEC_PATH/common/path_ctl.inc"
+source "$UPDATE_EXEC_PATH/common/error_handle.inc"
+
+function tts_migration() {
+    log I "TTS Migration config files"
+
+    local SRC_PATH=$(get_old_rw_path)/usr/data/.voice/
+    local DST_PATH=$(get_rw_path)/usr/data/.voice/
+    local SRC_CONF_PATH=$(get_old_rw_path)/usr/home/owner/share/.voice/tts-config.xml
+
+    if [ ! -e $DST_PATH ]; then
+        log I "TTS Migration set destination path"
+        mkdir -p -m 0775 $(get_rw_path)/usr/data/.voice
+        chsmack -t $(get_rw_path)/usr/data/.voice
+        chsmack -a "User::App::Shared" $(get_rw_path)/usr/data/.voice
+        mkdir -p $(get_rw_path)usr/data/.voice/tts/engine-info
+        chsmack -a "User::App::Shared" $(get_rw_path)/usr/data/.voice/tts
+        chsmack -t $(get_rw_path)/usr/data/.voice/tts/engine-info
+        chsmack -a "User::App::Shared" $(get_rw_path)/usr/data/.voice/tts/engine-info
+        chown -R ui_fw:users $(get_rw_path)/usr/data/.voice
+    fi
+
+    if [ -e $SRC_CONF_PATH ]; then
+        log I "TTS Migration 7.0 only START"
+        SRC_PREV_PATH=$(get_old_rw_path)/usr/home/owner/share/.voice/tts/1.0/engine-info
+        DST_ENGINE_PATH=$(get_rw_path)/usr/data/.voice/tts/engine-info
+
+        if [ ! -e $SRC_PREV_PATH ]; then
+            log E "TTS Migration ERROR : No orignal Data"
+            return
+        fi
+
+        mig_copy $SRC_PREV_PATH $DST_ENGINE_PATH || error_handle "default_data" $LINENO
+        mig_copy $SRC_CONF_PATH $DST_PATH || error_handle "default_data" $LINENO
+
+        chown -R ui_fw:users $(get_rw_path)/usr/data/.voice
+
+        log I "TTS Migration 7.0 only END"
+    else
+        log I "TTS Migration after 8.0 START"
+
+        if [ ! -e $SRC_PATH ]; then
+            log E "TTS Migration ERROR : No orignal Data"
+            return
+        fi
+
+        mig_copy $SRC_PATH $DST_PATH || error_handle "default_data" $LINENO
+        log I "TTS Migration after 8.0 END"
+    fi
+
+    log I "TTS Migration VconfKey"
+
+    VALUE_DEFAULT=$(vconftool get db/voice/tts/engine/default)
+    vconftool set -t string -f db/voice/tts/engine/default "$VALUE_DEFAULT"
+    log I "db/voice/tts/engine/default = $VALUE_DEFAULT"
+
+    VALUE_CLIENT=$(vconftool get db/voice/tts/instant-reprepare-client)
+    vconftool set -t int -f db/voice/tts/instant-reprepare-client "$VALUE_CLIENT"
+    log I "db/voice/tts/instant-reprepare-client = $VALUE_CLIENT"
+}
+
+# Trace flag check & enable
+if is_trace_enable; then
+    trace_enable
+fi
+
+mig_init
+tts_migration
+mig_finish
+
+exit 0