Add multi-user support 65/16465/1 accepted/tizen_ivi_panda tizen_ivi_panda accepted/tizen/common/20140506.112840 accepted/tizen/ivi/panda/20140403.015115 submit/tizen/20140430.020549 submit/tizen_ivi_panda/20140403.011839
authorKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Tue, 28 Jan 2014 15:52:34 +0000 (16:52 +0100)
committerKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Mon, 17 Feb 2014 15:05:25 +0000 (16:05 +0100)
Note that offending paths ("/opt/usr/apps") in the file sample.xml were
not removed since this file is neither used nor part of the
generated RPM. As the name of the file suggest it, it simply is a
sample.

Also correct some RPMLINT warnings/errors:
+ set a valid license tag in spec file
+ set a valid group tag in spec file
+ call ldconfig during post install (%post) and post uninstall (%postun)
  processes in spec file

Bug-Tizen: PTREL-345
Change-Id: I1b4b00ddcf8d51c98f67e5ae268e0ca0503de176
Signed-off-by: Kévin THIERRY <kevin.thierry@open.eurogiciel.org>
lib/CMakeLists.txt
lib/src/main.c
packaging/libshortcut.spec
pkgmgr_shortcut/CMakeLists.txt
pkgmgr_shortcut/src/service_register.c
test/application.c
test/icon.c
test_db_builder.sh

index 924ab26..6204865 100644 (file)
@@ -17,6 +17,7 @@ pkg_check_modules(svc_pkgs REQUIRED
        db-util
        com-core
        vconf
+       libtzplatform-config
 )
 
 FOREACH(flag ${svc_pkgs_CFLAGS})
index 253c6c3..ff41c28 100644 (file)
@@ -34,6 +34,9 @@
 #include <com-core.h>
 #include <com-core_packet.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "shortcut.h"
 #include "shortcut_internal.h"
 
@@ -56,7 +59,7 @@ static struct info {
        .server_fd = -1,
        .client_fd = -1,
        .socket_file = "/tmp/.shortcut.service",
-       .dbfile = "/opt/dbspace/.shortcut_service.db",
+       .dbfile = "",
        .handle = NULL,
        .initialized = 0,
        .db_opened = 0,
@@ -630,6 +633,7 @@ static inline int open_db(void)
 {
        int ret;
 
+       s_info.dbfile = tzplatform_mkpath(TZ_SYS_DB, ".shortcut_service.db");
        ret = db_util_open(s_info.dbfile, &s_info.handle, DB_UTIL_REGISTER_HOOK_METHOD);
        if (ret != SQLITE_OK) {
                DbgPrint("Failed to open a %s\n", s_info.dbfile);
index d31dd4d..fc107bb 100644 (file)
@@ -1,14 +1,15 @@
-Name: libshortcut
-Summary: Shortcut add feature supporting library
-Version: 0.6.11
-Release: 0
-Group: HomeTF/Framework
-License: Apache
-Source0: %{name}-%{version}.tar.gz
+Name:       libshortcut
+Summary:    Shortcut add feature supporting library
+Version:    0.6.11
+Release:    0
+Group:      Graphics & UI Framework/Libraries
+License:    Apache-2.0
+Source0:    %{name}-%{version}.tar.gz
 Source1001: %{name}.manifest
 
-Requires(post): /sbin/ldconfig
+Requires(post):   /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
+Requires:         tizen-platform-config-tools
 
 BuildRequires: cmake, gettext-tools, coreutils
 BuildRequires: pkgconfig(glib-2.0)
@@ -18,6 +19,7 @@ BuildRequires: pkgconfig(sqlite3)
 BuildRequires: pkgconfig(com-core)
 BuildRequires: pkgconfig(libxml-2.0)
 BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(libtzplatform-config)
 
 %description
 [Shortcut] AddToHome feature supporting library for menu/home screen developers.
@@ -52,13 +54,13 @@ make %{?jobs:-j%jobs}
 %install
 rm -rf %{buildroot}
 %make_install
-mkdir -p %{buildroot}/opt/dbspace
-touch %{buildroot}/opt/dbspace/.shortcut_service.db
-touch %{buildroot}/opt/dbspace/.shortcut_service.db-journal
+mkdir -p %{buildroot}%{TZ_SYS_DB}
+touch %{buildroot}%{TZ_SYS_DB}/.shortcut_service.db
+touch %{buildroot}%{TZ_SYS_DB}/.shortcut_service.db-journal
 
-%post
+%post -n libshortcut -p /sbin/ldconfig
 
-%postun
+%postun -n libshortcut -p /sbin/ldconfig
 
 %files -n libshortcut
 %manifest %{name}.manifest
@@ -66,8 +68,8 @@ touch %{buildroot}/opt/dbspace/.shortcut_service.db-journal
 %{_libdir}/*.so*
 %{_prefix}/etc/package-manager/parserlib/*
 %{_datarootdir}/license/*
-%attr(640,root,app) /opt/dbspace/.shortcut_service.db
-%attr(640,root,app) /opt/dbspace/.shortcut_service.db-journal
+%attr(640,root,%{TZ_SYS_USER_GROUP}) %{TZ_SYS_DB}/.shortcut_service.db
+%attr(640,root,%{TZ_SYS_USER_GROUP}) %{TZ_SYS_DB}/.shortcut_service.db-journal
 
 %files devel
 %manifest %{name}.manifest
index 0a4abc7..30b81ac 100644 (file)
@@ -8,6 +8,7 @@ pkg_check_modules(bin_pkgs REQUIRED
        sqlite3
        libxml-2.0
        db-util
+       libtzplatform-config
 )
 
 FOREACH(flag ${bin_pkgs_CFLAGS})
index 672e424..2e03c2c 100644 (file)
@@ -29,6 +29,9 @@
 #include <libxml/tree.h>
 #include <dlog.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "dlist.h"
 
 #if !defined(SECURE_LOGD)
@@ -81,7 +84,7 @@ static struct {
        const char *dbfile;
        sqlite3 *handle;
 } s_info = {
-       .dbfile = "/opt/dbspace/.shortcut_service.db",
+       .dbfile = "",
        .handle = NULL,
 };
 
@@ -759,6 +762,7 @@ static int db_init(void)
        int ret;
        struct stat stat;
 
+       s_info.dbfile = tzplatform_mkpath(TZ_SYS_DB, ".shortcut_service.db");
        ret = db_util_open(s_info.dbfile, &s_info.handle, DB_UTIL_REGISTER_HOOK_METHOD);
        if (ret != SQLITE_OK) {
                ErrPrint("Failed to open a DB\n");
index 6c1e5f3..886cff3 100644 (file)
 #include <Elementary.h>
 #include <shortcut.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
+#define FILE_PNG tzplatform_mkpath(TZ_SYS_SHARE, "image/what.png")
+
 static int result_cb(int ret, int pid, void *data)
 {
        printf("Client: Return %d (%d)\n", ret, pid);
@@ -29,10 +34,10 @@ static Eina_Bool shortcut_add_cb(void *data)
 {
        int ret;
 
-       ret = add_to_home_shortcut("pkgname", "MyName", 0, "/usr/bin/true", "/opt/share/image/what.png", result_cb, NULL);
+       ret = add_to_home_shortcut("pkgname", "MyName", 0, "/usr/bin/true", FILE_PNG, result_cb, NULL);
        printf("Client: shortcut_add_to_home returns: %d\n", ret);
 
-       ret = add_to_home_livebox("pkgname", "MyName", 0, "/usr/bin/true", "/opt/share/image/what.png", 1.0f, result_cb, NULL);
+       ret = add_to_home_livebox("pkgname", "MyName", 0, "/usr/bin/true", FILE_PNG, 1.0f, result_cb, NULL);
        printf("Client: shortcut_add_to_home_with_period returns: %d\n", ret);
 
        return ECORE_CALLBACK_RENEW;
index 9267bad..71547c5 100644 (file)
 #include <Elementary.h>
 #include <shortcut.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
+#define USR_SHARE tzplatform_getenv(TZ_USER_SHARE)
+
 static int result_cb(struct shortcut_icon *handle, int ret, void *data)
 {
        printf("Client: Return %d (%p)\n", ret, handle);
@@ -48,7 +53,7 @@ static Eina_Bool test_main(void *data)
        ret = shortcut_icon_request_set_info(handle, NULL, SHORTCUT_ICON_TYPE_TEXT, DEFAULT_NAME_PART, filename, NULL, NULL);
        printf("TEXT set_info: %d\n", ret);
 
-       snprintf(filename, sizeof(filename), "/opt/usr/share/live_magazine/always/out%d.png", idx);
+       snprintf(filename, sizeof(filename), "%s/live_magazine/always/out%d.png", USR_SHARE, idx);
 
        switch (idx % 7) {
        case 0: type = LIVEBOX_TYPE_1x1; break;
index 2221c7f..6e20008 100755 (executable)
@@ -16,7 +16,8 @@
 # *
 #*/
 
-DBFILE="/opt/dbspace/.shortcut_service.db"
+eval $(tzplatform-get TZ_SYS_DB)
+DBFILE=$TZ_SYS_DB"/.shortcut_service.db"
 
 APPID=(
 "org.tizen.facebook"