Change the spec file, add mouse_event attribute.
authorSung-jae Park <nicesj.park@samsung.com>
Wed, 23 Jan 2013 03:05:56 +0000 (03:05 +0000)
committerSung-jae Park <nicesj.park@samsung.com>
Wed, 23 Jan 2013 03:05:56 +0000 (03:05 +0000)
For the smack, post script is moved to install section.
mouse_event attribute is added.

Change-Id: I0261816db2ac2516f4dd5e7fee524542ef5806c7

org.tizen.data-provider-master.manifest
packaging/org.tizen.data-provider-master.spec
pkgmgr_livebox/livebox.xml
pkgmgr_livebox/src/service_register.c

index 9e1c2e6..56bbd6c 100644 (file)
                <!-- livebox-service is able to access the resolution.ini file -->
                <filesystem path="/usr/share/data-provider-master/resolution.ini" label="_" />
 
-               <!-- slave provider and the master provider are able to access the conf.ini file -->
+               <!-- Slave provider and the master provider are able to access the conf.ini file -->
                <filesystem path="/usr/share/data-provider-master/conf.ini" label="_" />
 
-               <!-- Package manager & Init script -->
+               <!-- Shared data folder -->
+               <filesystem path="/opt/usr/share/live_magazine" label="org.tizen.data-provider-master::share" />
+               <filesystem path="/opt/usr/share/live_magazine/log" label="org.tizen.data-provider-master::share" />
+               <filesystem path="/opt/usr/share/live_magazine/reader" label="org.tizen.data-provider-master::share" />
+               <filesystem path="/opt/usr/share/live_magazine/always" label="org.tizen.data-provider-master::share" />
+
+               <!-- Database -->
+               <filesystem path="/opt/dbspace/.livebox.db" label="data-provider-master::db" />
+               <filesystem path="/opt/dbspace/.livebox.db-journal" label="data-provider-master::db" />
+
+               <!-- Init script -->
                <filesystem path="/etc/rc.d/init.d/data-provider-master" label="_" />
-               <filesystem path="/usr/lib/systemd/user/data-provider.service" label="_" />
+               <filesystem path="/etc/rc.d/rc3.d/S99data-provider-master" label="_" />
+               <filesystem path="/usr/lib/systemd/user/data-provider-master.service" label="_" />
+               <filesystem path="/usr/lib/systemd/user/tizen-middleware.target.wants/data-provider-master.service" label="_" />
 
                <!-- Package manager plugin -->
                <filesystem path="/usr/etc/package-manager/parserlib/liblivebox.so" label="_" />
index 6f7d988..38bb770 100644 (file)
@@ -1,6 +1,6 @@
 Name: org.tizen.data-provider-master
 Summary: Master data provider
-Version: 0.14.2
+Version: 0.14.3
 Release: 1
 Group: main/app
 License: Flora License
@@ -47,74 +47,25 @@ CFLAGS="${CFLAGS} -Wall -Winline -Werror" LDFLAGS="${LDFLAGS}" make %{?jobs:-j%j
 rm -rf %{buildroot}
 %make_install
 mkdir -p %{buildroot}/%{_datarootdir}/license
+mkdir -p %{buildroot}/opt/usr/share/live_magazine
+mkdir -p %{buildroot}/opt/usr/share/live_magazine/log
+mkdir -p %{buildroot}/opt/usr/share/live_magazine/reader
+mkdir -p %{buildroot}/opt/usr/share/live_magazine/always
+mkdir -p %{buildroot}/opt/dbspace
+mkdir -p %{buildroot}/%{_sysconfdir}/rc.d/rc3.d
+mkdir -p %{buildroot}/%{_libdir}/systemd/user/tizen-middleware.target.wants
+touch %{buildroot}/opt/dbspace/.livebox.db
+touch %{buildroot}/opt/dbspace/.livebox.db-journal
+ln -sf %{_sysconfdir}/rc.d/init.d/data-provider-master %{buildroot}/%{_sysconfdir}/rc.d/rc3.d/S99data-provider-master
+ln -sf %{_libdir}/systemd/user/data-provider-master.service %{buildroot}/%{_libdir}/systemd/user/tizen-middleware.target.wants/data-provider-master.service
 
 %pre
-
 # Executing the stop script for stopping the service of installed provider (old version)
 if [ -x %{_sysconfdir}/rc.d/init.d/data-provider-master ]; then
        %{_sysconfdir}/rc.d/init.d/data-provider-master stop
 fi
 
 %post
-
-mkdir -p /opt/usr/share/live_magazine
-chown 5000:5000 /opt/usr/share/live_magazine
-if [ -f %{_libdir}/rpm-plugins/msm.so ]; then
-       echo "Update smack for CONTENT SHARING FOLDER"
-       chsmack -a "org.tizen.data-provider-master::share" /opt/usr/share/live_magazine
-       chsmack -t /opt/usr/share/live_magazine
-fi
-
-# According to this transmute attribute, below log, reader folder will be set as same label
-
-mkdir -p /opt/usr/share/live_magazine/log
-chown 5000:5000 /opt/usr/share/live_magazine/log
-
-mkdir -p /opt/usr/share/live_magazine/reader
-chown 5000:5000 /opt/usr/share/live_magazine/reader
-
-mkdir -p /opt/usr/share/live_magazine/always
-chown 5000:5000 /opt/usr/share/live_magazine/always
-
-# End of a list of affected folder by the transmute attribute
-
-if [ ! -f "/opt/dbspace/.livebox.db" ]; then
-       echo "Create a new livebox DB"
-       touch /opt/dbspace/.livebox.db
-       chown 0:5000 /opt/dbspace/.livebox.db
-       chmod 640 /opt/dbspace/.livebox.db
-       if [ -f %{_libdir}/rpm-plugins/msm.so ]; then
-               echo "Update smack for DB"
-               chsmack -a "data-provider-master::db" /opt/dbspace/.livebox.db
-       fi
-fi
-
-if [ ! -f "/opt/dbspace/.livebox.db-journal" ]; then
-       echo "Create a new livebox DB - journal file"
-       touch /opt/dbspace/.livebox.db-journal
-       chown 0:5000 /opt/dbspace/.livebox.db-journal
-       chmod 640 /opt/dbspace/.livebox.db-journal
-       if [ -f %{_libdir}/rpm-plugins/msm.so ]; then
-               echo "Update smack for DB(journal)"
-               chsmack -a "data-provider-master::db" /opt/dbspace/.livebox.db-journal
-       fi
-fi
-
-mkdir -p %{_sysconfdir}/rc.d/rc3.d
-ln -sf %{_sysconfdir}/rc.d/init.d/data-provider-master %{_sysconfdir}/rc.d/rc3.d/S99data-provider-master
-if [ -f %{_libdir}/rpm-plugins/msm.so ]; then
-       echo "Update smack for INITD - booting script"
-       chsmack -a "_" %{_sysconfdir}/rc.d/rc3.d/S99data-provider-master
-       chsmack -e "_" %{_sysconfdir}/rc.d/rc3.d/S99data-provider-master
-fi
-
-mkdir -p %{_libdir}/systemd/user/tizen-middleware.target.wants
-ln -sf %{_libdir}/systemd/user/data-provider-master.service %{_libdir}/systemd/user/tizen-middleware.target.wants/data-provider-master.service
-if [ -f %{_libdir}/rpm-plugins/msm.so ]; then
-       echo "Update smack for SYSTEMD - service file"
-       chsmack -a "_" %{_libdir}/systemd/user/tizen-middleware.target.wants/data-provider-master.service
-fi
-
 echo "Successfully installed. Please start a daemon again manually"
 echo "%{_sysconfdir}/init.d/data-provider-master start"
 
@@ -122,11 +73,19 @@ echo "%{_sysconfdir}/init.d/data-provider-master start"
 %manifest org.tizen.data-provider-master.manifest
 %defattr(-,root,root,-)
 %{_sysconfdir}/rc.d/init.d/data-provider-master
+%{_sysconfdir}/rc.d/rc3.d/S99data-provider-master
 %{_bindir}/data-provider-master
 %{_bindir}/liveinfo
 %{_prefix}/etc/package-manager/parserlib/*
 %{_datarootdir}/data-provider-master/*
 %{_libdir}/systemd/user/data-provider-master.service
+%{_libdir}/systemd/user/tizen-middleware.target.wants/data-provider-master.service
 %{_datarootdir}/license/*
+%attr(750,app,app) /opt/usr/share/live_magazine
+%attr(750,app,app) /opt/usr/share/live_magazine/log
+%attr(750,app,app) /opt/usr/share/live_magazine/reader
+%attr(750,app,app) /opt/usr/share/live_magazine/always
+%attr(640,root,app) /opt/dbspace/.livebox.db
+%attr(640,root,app) /opt/dbspace/.livebox.db-journal
 
 # End of a file
index 5df73df..8bbcffe 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.nicesj" version="1.0" install-location="auto">
 
-<livebox appid="org.tizen.nicesj.livebox" primary="true" secured="false" network="false" abi="c" timeout="20" period="10.0" libexec="/usr/apps/org.tizen.myapp/libexec/liblive-org.tizen.nicesj.so" pinup="false" script="edje">
+<livebox appid="org.tizen.nicesj.livebox" primary="true" secured="false" network="false" abi="c" timeout="20" period="10.0" libexec="/usr/apps/org.tizen.myapp/libexec/liblive-org.tizen.nicesj.so" pinup="false" script="edje" nodisplay="false">
        <label>My livebox</label>
        <icon>/usr/share/icons/small/org.tizen.live-nicesj.png</icon>
        <label xml:lang="en_US">Sample</label>
@@ -12,7 +12,7 @@
 
        <setup>org.tizen.nicesj</setup>
 
-       <box type="image">
+       <box type="image" mouse_event="false">
                <size>1x1</size>
                <size>2x1</size>
                <size>2x2</size>
index 73d9e41..0a6db79 100644 (file)
  *
  *
  * client
- * +-------+------+---------+-------------+---------+---------+-----------+-------+
- * | pkgid | Icon |  Name   | auto_launch | pd_size | content | nodisplay | setup |
- * +-------+------+---------+-------------+---------+---------+-----------+-------+
- * |   -   |   -  |    -    |      -      |    -    |    -    |     -     |   -   |
- * +-------+------+---------+-------------+---------+---------+-----------+-------+
- * CREATE TABLE client ( pkgid TEXT PRIMARY KEY NOT NULL, icon TEXT, name TEXT, auto_launch TEXT, pd_size TEXT, content TEXT DEFAULT "default", nodisplay INTEGER, setup TEXT, FOREIGN KEY(pkgid) REFERENCES pkgmap(pkgid) )
+ * +-------+------+---------+-------------+---------+---------+-----------+-------+-------------+
+ * | pkgid | Icon |  Name   | auto_launch | pd_size | content | nodisplay | setup | mouse_event |
+ * +-------+------+---------+-------------+---------+---------+-----------+-------+-------------+
+ * |   -   |   -  |    -    |      -      |    -    |    -    |     -     |   -   |      -      }
+ * +-------+------+---------+-------------+---------+---------+-----------+-------+-------------+
+ * CREATE TABLE client ( pkgid TEXT PRIMARY KEY NOT NULL, icon TEXT, name TEXT, auto_launch TEXT, pd_size TEXT, content TEXT DEFAULT "default", nodisplay INTEGER, setup TEXT, mouse_event INTEGER, FOREIGN KEY(pkgid) REFERENCES pkgmap(pkgid) )
  *
  * = auto_launch = UI-APPID
  * = pd_size = WIDTHxHEIGHT
@@ -177,6 +177,7 @@ struct livebox {
        int pinup; /* Is this support the pinup feature? */
        int primary; /* Is this primary livebox? */
        int nodisplay;
+       int mouse_event; /* Mouse event processing option for livebox */
 
        enum lb_type lb_type;
        xmlChar *lb_src;
@@ -607,7 +608,7 @@ static inline int db_create_client(void)
 
        ddl = "CREATE TABLE client (" \
                "pkgid TEXT PRIMARY KEY NOT NULL, icon TEXT, name TEXT, " \
-               "auto_launch TEXT, pd_size TEXT, content TEXT DEFAULT 'default', nodisplay INTEGER, setup TEXT, FOREIGN KEY(pkgid) REFERENCES pkgmap(pkgid) ON DELETE CASCADE)";
+               "auto_launch TEXT, pd_size TEXT, content TEXT DEFAULT 'default', nodisplay INTEGER, setup TEXT, mouse_event INTEGER, FOREIGN KEY(pkgid) REFERENCES pkgmap(pkgid) ON DELETE CASCADE)";
        if (sqlite3_exec(s_info.handle, ddl, NULL, NULL, &err) != SQLITE_OK) {
                ErrPrint("Failed to execute the DDL (%s)\n", err);
                return -EIO;
@@ -625,7 +626,7 @@ static inline int db_insert_client(struct livebox *livebox)
        int ret;
        sqlite3_stmt *stmt;
 
-       dml = "INSERT INTO client ( pkgid, icon, name, auto_launch, pd_size, content, nodisplay, setup ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
+       dml = "INSERT INTO client ( pkgid, icon, name, auto_launch, pd_size, content, nodisplay, setup, mouse_event ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
        ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
        if (ret != SQLITE_OK) {
                DbgPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
@@ -688,6 +689,13 @@ static inline int db_insert_client(struct livebox *livebox)
                goto out;
        }
 
+       ret = sqlite3_bind_int(stmt, 9, livebox->mouse_event);
+       if (ret != SQLITE_OK) {
+               DbgPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
+               ret = -EIO;
+               goto out;
+       }
+
        ret = 0;
        if (sqlite3_step(stmt) != SQLITE_DONE) {
                DbgPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
@@ -1689,6 +1697,21 @@ static inline void update_box(struct livebox *livebox, xmlNodePtr node)
                }
        }
 
+       if (!xmlHasProp(node, (const xmlChar *)"mouse_event")) {
+               livebox->mouse_event = 0;
+       } else {
+               xmlChar *mouse_event;
+
+               mouse_event = xmlGetProp(node, (const xmlChar *)"mouse_event");
+               if (!mouse_event) {
+                       ErrPrint("mouse_event is NIL\n");
+                       livebox->mouse_event = 0;
+               } else {
+                       livebox->mouse_event = !xmlStrcasecmp(mouse_event, (const xmlChar *)"true");
+                       xmlFree(mouse_event);
+               }
+       }
+
        for (node = node->children; node; node = node->next) {
                if (!xmlStrcasecmp(node->name, (const xmlChar *)"size")) {
                        xmlChar *size;