Add DB upgrade script 76/227076/5
authorSukHyung, Kang <shine.kang@samsung.com>
Mon, 9 Mar 2020 10:39:27 +0000 (19:39 +0900)
committerJunghoon Park <jh9216.park@samsung.com>
Mon, 16 Mar 2020 23:54:48 +0000 (23:54 +0000)
Change-Id: Ifd771f165f5f38dc4645dae849086e14985972ac
Signed-off-by: SukHyung, Kang <shine.kang@samsung.com>
packaging/libwidget_service.spec
scripts/505.widget_service_upgrade.sh [new file with mode: 0644]
src/widget_service.c

index 8e80bc1..c64178a 100644 (file)
@@ -33,6 +33,8 @@ BuildRequires: pkgconfig(libsmack)
 ExclusiveArch:
 %endif
 
+%define upgrade_script_path /usr/share/upgrade/scripts
+
 %description
 Service API for gathering information of installed widgetes
 
@@ -93,6 +95,9 @@ 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/505.widget_service_upgrade.sh %{buildroot}%{upgrade_script_path}
+
 %post -n %{name}
 /sbin/ldconfig
 %{_bindir}/widget_recovery init
@@ -132,6 +137,7 @@ fi
 %{_bindir}/widget_recovery
 %{_datarootdir}/widget_service/*
 %{_datarootdir}/parser-plugins/widget.info
+%attr(0755,root,root) %{upgrade_script_path}/505.widget_service_upgrade.sh
 
 %files devel
 %manifest %{name}.manifest
diff --git a/scripts/505.widget_service_upgrade.sh b/scripts/505.widget_service_upgrade.sh
new file mode 100644 (file)
index 0000000..1cec3f2
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+#------------------------------------------#
+# widget service patch for upgrade (4.0 -> 5.x) #
+#------------------------------------------#
+
+# Macro
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+DB_WIDGET_SERVICE=/opt/dbspace/.widget.db
+DB_ETC_WIDGET_SERVICE=/opt/etc/skel/.applications/dbspace/.widget.db
+DB_USER_WIDGET_SERVICE=/opt/usr/home/owner/.applications/dbspace/.widget.db
+
+sqlite3 $DB_WIDGET_SERVICE << EOF
+
+PRAGMA user_version = 50;
+PRAGMA journal_mode = PERSIST;
+PRAGMA foreign_keys = ON;
+BEGIN EXCLUSIVE TRANSACTION;
+
+ALTER TABLE widget_class ADD COLUMN is_disable INTEGER DEFAULT 0;
+COMMIT TRANSACTION;
+
+EOF
+
+sqlite3 $DB_USER_WIDGET_SERVICE << EOF
+
+PRAGMA user_version = 50;
+PRAGMA journal_mode = PERSIST;
+PRAGMA foreign_keys = ON;
+BEGIN EXCLUSIVE TRANSACTION;
+
+ALTER TABLE widget_class ADD COLUMN is_disable INTEGER DEFAULT 0;
+COMMIT TRANSACTION;
+
+EOF
+
+sqlite3 $DB_ETC_WIDGET_SERVICE << EOF
+
+PRAGMA user_version = 50;
+PRAGMA journal_mode = PERSIST;
+PRAGMA foreign_keys = ON;
+BEGIN EXCLUSIVE TRANSACTION;
+
+ALTER TABLE widget_class ADD COLUMN is_disable INTEGER DEFAULT 0;
+COMMIT TRANSACTION;
+
+EOF
+
+# Adjust Permission
+chsmack -a User::Home $DB_WIDGET_SERVICE
+chsmack -a User::Home $DB_WIDGET_SERVICE-journal
+
+chsmack -a User::Home $DB_ETC_WIDGET_SERVICE
+chsmack -a User::Home $DB_ETC_WIDGET_SERVICE-journal
+
+chsmack -a User::Home $DB_USER_WIDGET_SERVICE
+chsmack -a User::Home $DB_USER_WIDGET_SERVICE-journal
+
+chmod 666 $DB_WIDGET_SERVICE
+chmod 666 $DB_WIDGET_SERVICE-journal
+
+chmod 666 $DB_USER_WIDGET_SERVICE
+chmod 666 $DB_USER_WIDGET_SERVICE-journal
+
+chmod 666 $DB_ETC_WIDGET_SERVICE
+chmod 666 $DB_ETC_WIDGET_SERVICE-journal
index 813d9e0..d8d3d87 100644 (file)
@@ -60,7 +60,7 @@
 #define RESOLUTION_FORMAT "%dx%d"
 
 #define CREATE_WIDGET_TABLE " \
-PRAGMA user_version = 40; \
+PRAGMA user_version = 50; \
 PRAGMA journal_mode = PERSIST; \
 PRAGMA foreign_keys = ON; \
 BEGIN EXCLUSIVE TRANSACTION; \