Add upgrade script 40/213140/2
authorhyunho <hhstark.kang@samsung.com>
Mon, 2 Sep 2019 01:22:40 +0000 (10:22 +0900)
committerhyunho <hhstark.kang@samsung.com>
Mon, 2 Sep 2019 03:49:41 +0000 (12:49 +0900)
Change-Id: Ic2852c8c44823577c51d5681ccc40215f6ca7b14
Signed-off-by: hyunho <hhstark.kang@samsung.com>
packaging/libwatchface-complication.spec
scripts/504.watchface_complication_upgrade.sh [new file with mode: 0644]

index b851927..4f8dd43 100644 (file)
@@ -37,6 +37,8 @@ Requires: %{name}-provider
 Requires: libwatchface-common
 Recommends: amd-mod-complication
 
+%define upgrade_script_path /usr/share/upgrade/scripts
+
 %description
 API for creating a new watchface complication and managing it.
 
@@ -95,6 +97,8 @@ mkdir -p %{buildroot}%{_datadir}/gcov/obj
 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
 %endif
 
+mkdir -p %{buildroot}%{upgrade_script_path}
+cp -f scripts/504.watchface_complication_upgrade.sh %{buildroot}%{upgrade_script_path}
 
 %check
 ctest -V
@@ -116,6 +120,7 @@ install -m 0644 watchface-complication.zip %{buildroot}%{_datadir}/gcov/
 %manifest %{name}.manifest
 %attr(0644,root,root) %{_libdir}/%{name}.so.*
 %license LICENSE
+%attr(0755,root,root) %{_datadir}/upgrade/scripts/504.watchface_complication_upgrade.sh
 
 %files -n %{name}-devel
 %{_includedir}/watchface-complication/*.h
diff --git a/scripts/504.watchface_complication_upgrade.sh b/scripts/504.watchface_complication_upgrade.sh
new file mode 100644 (file)
index 0000000..652ae8e
--- /dev/null
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+#-------------------------------------------------------#
+# watchface-complication patch for upgrade (4.0 -> 5.x) #
+#-------------------------------------------------------#
+
+# Macro
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+DB_DIR=/opt/dbspace
+DB_WATCHFACE_COMPLICATION=$DB_DIR/.complication_provider.db
+DB_USER_WATCHFACE_COMPLICATION=/opt/dbspace/user/5001/.complication_provider.db
+
+sqlite3 $DB_WATCHFACE_COMPLICATION << EOF
+
+PRAGMA user_version = 50;
+PRAGMA journal_mode = PERSIST;
+PRAGMA foreign_keys = ON;
+BEGIN EXCLUSIVE TRANSACTION;
+DROP TABLE IF EXISTS complication_provider;
+CREATE TABLE IF NOT EXISTS complication_provider (
+  pkgid        TEXT NOT NULL,
+  appid        TEXT NOT NULL,
+  provider_id  TEXT NOT NULL,
+  trusted      INTEGER DEFAULT 0,
+  period       INTEGER DEFAULT -1,
+  support_type INTEGER DEFAULT 0,
+  default_data TEXT NOT NULL,
+  PRIMARY KEY (provider_id, support_type)
+);
+
+DROP TABLE IF EXISTS provider_localized_info;
+CREATE TABLE IF NOT EXISTS provider_localized_info (
+  provider_id    TEXT NOT NULL,
+  locale         TEXT NOT NULL DEFAULT 'No Locale',
+  provider_label TEXT,
+  PRIMARY KEY (provider_id, locale)
+);
+
+DROP TABLE IF EXISTS provider_privilege;
+CREATE TABLE IF NOT EXISTS provider_privilege (
+  provider_id  TEXT NOT NULL,
+  privilege    TEXT NOT NULL,
+  PRIMARY KEY (provider_id, privilege)
+);
+
+DROP TABLE IF EXISTS provider_setup_appid;
+CREATE TABLE IF NOT EXISTS provider_setup_appid (
+  provider_id  TEXT NOT NULL,
+  setup_appid  TEXT,
+  PRIMARY KEY (provider_id)
+);
+
+DROP TABLE IF EXISTS provider_support_events;
+CREATE TABLE IF NOT EXISTS provider_support_events (
+  provider_id  TEXT NOT NULL,
+  support_events  INTEGER DEFAULT 1,
+  PRIMARY KEY (provider_id)
+);
+COMMIT TRANSACTION;
+
+EOF
+
+# Create DB Path for default user
+mkdir -p /opt/dbspace/user/5001
+chmod 770 /opt/dbspace/user/5001
+chown owner:system_share /opt/dbspace/user/5001
+chsmack -a User::Home /opt/dbspace/user
+chsmack -a User::Home /opt/dbspace/user/5001
+
+# Copy DB
+cp $DB_WATCHFACE_COMPLICATION $DB_USER_WATCHFACE_COMPLICATION
+
+# Adjust Permission
+chmod 664 $DB_WATCHFACE_COMPLICATION
+chmod 664 $DB_WATCHFACE_COMPLICATION-journal
+
+chown owner:users $DB_WATCHFACE_COMPLICATION
+chown owner:users $DB_WATCHFACE_COMPLICATION-journal
+
+chsmack -a User::Home $DB_WATCHFACE_COMPLICATION
+chsmack -a User::Home $DB_WATCHFACE_COMPLICATION-journal
+
+chmod 666 $DB_USER_WATCHFACE_COMPLICATION
+chmod 666 $DB_USER_WATCHFACE_COMPLICATION-journal
+
+chsmack -a User::Home $DB_USER_WATCHFACE_COMPLICATION
+chsmack -a User::Home $DB_USER_WATCHFACE_COMPLICATION-journal
\ No newline at end of file