Add a script to upgrade badge db 39/86339/4
authorMyungki Lee <mk5004.lee@samsung.com>
Mon, 5 Sep 2016 13:35:16 +0000 (22:35 +0900)
committerMyungki Lee <mk5004.lee@samsung.com>
Mon, 5 Sep 2016 13:35:16 +0000 (22:35 +0900)
Change-Id: I19efa41af7e386e7bc353042374b007bb61e0550
Signed-off-by: Myungki Lee <mk5004.lee@samsung.com>
packaging/badge.spec
scripts/106.badge_upgrade.sh [new file with mode: 0644]

index e64fbdd..1807b18 100755 (executable)
@@ -16,6 +16,9 @@ BuildRequires: pkgconfig(libtzplatform-config)
 BuildRequires: cmake
 Requires(post): /sbin/ldconfig
 requires(postun): /sbin/ldconfig
+
+%define upgrade_script_path /usr/share/upgrade/scripts
+
 %description
 Client/Server library for updating badge information
 
@@ -49,6 +52,8 @@ make %{?jobs:-j%jobs}
 mkdir -p %{buildroot}/usr/share/license
 cp -f LICENSE %{buildroot}/usr/share/license/%{name}
 
+mkdir -p %{buildroot}%{upgrade_script_path}
+cp -f scripts/106.badge_upgrade.sh %{buildroot}%{upgrade_script_path}
 
 %post
 /sbin/ldconfig
@@ -68,6 +73,7 @@ fi
 %{_includedir}/badge/badge.h
 %{_includedir}/badge/badge_error.h
 %{_includedir}/badge/badge_internal.h
+%{upgrade_script_path}/106.badge_upgrade.sh
 
 %files devel
 %defattr(-,root,root,-)
diff --git a/scripts/106.badge_upgrade.sh b/scripts/106.badge_upgrade.sh
new file mode 100644 (file)
index 0000000..5690c85
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#------------------------------------------#
+# badge patch for upgrade (2.4 -> 3.0) #
+#------------------------------------------#
+
+# Macro
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+DB_DIR=/opt/dbspace
+DB_BADGE=$DB_DIR/.badge.db
+
+sqlite3 $DB_BADGE << EOF
+
+DROP TABLE IF EXISTS badge_data_temp;
+
+CREATE TABLE badge_data_temp (
+    uid INTEGER,
+    pkgname TEXT NOT NULL,
+    writable_pkgs TEXT,
+    badge INTEGER default 0,
+    rowid INTEGER PRIMARY KEY AUTOINCREMENT,
+    UNIQUE (uid, pkgname)
+);
+
+INSERT INTO badge_data_temp (pkgname, writable_pkgs, badge, rowid) SELECT pkgname, writable_pkgs, badge, rowid FROM badge_data;
+UPDATE badge_data_temp SET uid=5001;
+DROP TABLE badge_data;
+ALTER TABLE badge_data_temp RENAME TO badge_data;
+
+DROP TABLE IF EXISTS badge_option_temp;
+
+CREATE TABLE badge_option_temp (
+    uid INTEGER,
+    pkgname TEXT NOT NULL,
+    display INTEGER default 1,
+    UNIQUE (uid, pkgname)
+);
+
+INSERT INTO badge_option_temp (pkgname, display) SELECT pkgname, display FROM badge_option;
+UPDATE badge_option_temp SET uid=5001;
+DROP TABLE badge_option;
+ALTER TABLE badge_option_temp RENAME TO badge_option;
+
+EOF
+
+chown owner:users $DB_BADGE
+chown owner:users $DB_BADGE-journal
+
+chsmack -a User::Home $DB_BADGE
+chsmack -a User::Home $DB_BADGE-journal