Add multi-user support 56/18256/1
authorKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Wed, 19 Mar 2014 10:59:50 +0000 (11:59 +0100)
committerKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Wed, 19 Mar 2014 11:00:43 +0000 (12:00 +0100)
Bug-Tizen: PTREL-348
Change-Id: Ic40cc5217f0b69949f95fc78d5a469e524c269c8
Signed-off-by: Kévin THIERRY <kevin.thierry@open.eurogiciel.org>
CMakeLists.txt
client/src/pkgmgr.c
include/SLP_package_manager_PG.h
packaging/pkgmgr.spec
pkgmgr.patch.sh.in
server/src/pkgmgr-server.c
tool/CMakeLists.txt
tool/pkg_cmd.c
tool/pkg_fota.c
tool/pkg_getsize.c
tool/pkg_initdb.c

index 89bc993..e0a9211 100644 (file)
@@ -28,16 +28,16 @@ INCLUDE(FindPkgConfig)
 OPTION(X11_SUPPORT "Enable X support" ON)
 IF(X11_SUPPORT)
     ADD_DEFINITIONS("-DHAVE_X11")
-    pkg_check_modules(pkgs REQUIRED security-server dlog elementary evas ecore appcore-efl ecore-x ail ecore-file pkgmgr-parser pkgmgr-info iniparser)
+    pkg_check_modules(pkgs REQUIRED security-server dlog elementary evas ecore appcore-efl ecore-x ail ecore-file pkgmgr-parser pkgmgr-info iniparser libtzplatform-config)
 ELSE()
-    pkg_check_modules(pkgs REQUIRED security-server dlog elementary evas ecore appcore-efl ecore-wayland ail ecore-file pkgmgr-parser pkgmgr-info iniparser)
+    pkg_check_modules(pkgs REQUIRED security-server dlog elementary evas ecore appcore-efl ecore-wayland ail ecore-file pkgmgr-parser pkgmgr-info iniparser libtzplatform-config)
 ENDIF(X11_SUPPORT)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-pkg_check_modules(libpkgs REQUIRED dbus-glib-1 dlog ail pkgmgr-parser pkgmgr-info iniparser)
+pkg_check_modules(libpkgs REQUIRED dbus-glib-1 dlog ail pkgmgr-parser pkgmgr-info iniparser libtzplatform-config)
 
 FOREACH(flag ${libpkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index 5f2f8e7..a79cccd 100755 (executable)
@@ -39,6 +39,9 @@
 #include <iniparser.h>
 #include <security-server.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "package-manager.h"
 #include "pkgmgr-internal.h"
 #include "pkgmgr-debug.h"
@@ -51,7 +54,7 @@
 #define LOG_TAG "PKGMGR"
 #endif                         /* LOG_TAG */
 
-#define PKG_TMP_PATH "/opt/usr/apps/tmp"
+#define PKG_TMP_PATH tzplatform_mkpath(TZ_USER_APP, "tmp")
 
 #define BINSH_NAME     "/bin/sh"
 #define BINSH_SIZE     7
index 9f476a5..3e38659 100755 (executable)
@@ -75,7 +75,7 @@ Client application
 - Install request with return callback function
 
 @code
-// the package path is "/opt/usr/apps/org.tizen.hello.deb"
+// the package path is "TZ_USER_APP/org.tizen.hello.deb"
 #include <package-manager.h>
 
 int static return_cb(pkg_request_id req_id, const char *pkg_type, const char *pkg_name, const char *key, const char *val, const void *pmsg, void *data)
@@ -99,7 +99,7 @@ void install_func()
                return -1;
        }
        
-       result = pkgmgr_client_install(pc, NULL, des, "/opt/usr/apps/org.tizen.hello.deb", NULL, PM_DEFAULT, return_cb, pc);
+       result = pkgmgr_client_install(pc, NULL, des, "TZ_USER_APP/org.tizen.hello.deb", NULL, PM_DEFAULT, return_cb, pc);
        if(result < 0) {
                fprintf(stderr, "Install failed! %d\n", result);
                return -1;
index a4c64a0..ea8bbb7 100644 (file)
@@ -3,17 +3,17 @@
 Name:       pkgmgr
 Summary:    Packager Manager client library package
 Version:    0.2.89
-Release:    1
+Release:    0
 Group:      Application Framework/Package Management
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
-Source1001:    %{name}.manifest
-Source1002:    %{name}-client.manifest
-Source1003:    %{name}-client-devel.manifest
-Source1004:    %{name}-server.manifest
-Source1005:    %{name}-installer.manifest
-Source1006:    %{name}-installer-devel.manifest
-Source1007:    %{name}-types-devel.manifest
+Source1001: %{name}.manifest
+Source1002: %{name}-client.manifest
+Source1003: %{name}-client-devel.manifest
+Source1004: %{name}-server.manifest
+Source1005: %{name}-installer.manifest
+Source1006: %{name}-installer-devel.manifest
+Source1007: %{name}-types-devel.manifest
 BuildRequires:  cmake
 BuildRequires:  unzip
 BuildRequires:  gettext-tools
@@ -27,6 +27,7 @@ BuildRequires:  pkgconfig(bundle)
 BuildRequires:  pkgconfig(appcore-efl)
 BuildRequires:  pkgconfig(pkgmgr-info)
 BuildRequires:  pkgconfig(iniparser)
+BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgmgr-info-parser-devel
 BuildRequires:  pkgmgr-info-parser
 
@@ -130,8 +131,8 @@ update-mime-database /usr/share/mime
 %defattr(-,root,root,-)
 %dir %{_sysconfdir}/package-manager/backend
 %dir %{_sysconfdir}/package-manager/backendlib
-%dir /etc/opt/upgrade
-/etc/opt/upgrade/pkgmgr.patch.sh
+%dir %{_sysconfdir}/opt/upgrade
+%{_sysconfdir}/opt/upgrade/pkgmgr.patch.sh
 %{_bindir}/pkgcmd
 %{_bindir}/pkg_initdb
 %{_bindir}/pkg_getsize
@@ -149,8 +150,8 @@ update-mime-database /usr/share/mime
 %files client
 %manifest %{name}-client.manifest
 %defattr(-,root,root,-)
-%dir /etc/package-manager
-/etc/package-manager/pkg_path.conf
+%dir %{_sysconfdir}/package-manager
+%config %{_sysconfdir}/package-manager/pkg_path.conf
 %{_libdir}/libpkgmgr-client.so.*
 
 %files client-devel
@@ -165,7 +166,7 @@ update-mime-database /usr/share/mime
 %manifest %{name}-server.manifest
 %defattr(-,root,root,-)
 %{_datadir}/dbus-1/system-services/org.tizen.slp.pkgmgr.service
-%{_sysconfdir}/dbus-1/system.d/org.tizen.slp.pkgmgr.conf
+%config %{_sysconfdir}/dbus-1/system.d/org.tizen.slp.pkgmgr.conf
 %{_bindir}/pkgmgr-server
 %{_sysconfdir}/package-manager/server
 
index af5a970..d0c2da0 100644 (file)
@@ -1,5 +1,8 @@
 echo "--------------------------------------"
 echo "Update package database..............."
 echo "--------------------------------------"
-/bin/rm /opt/dbspace/.pkgmgr_parser.db
-/usr/bin/pkg_initdb
+
+source /etc/tizen-platform.conf
+
+/bin/rm $TZ_SYS_DB/.pkgmgr_parser.db
+$TZ_SYS_BIN/pkg_initdb
index ba448b2..eca012b 100755 (executable)
@@ -48,6 +48,9 @@
 
 #include <vconf.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "pkgmgr_installer.h"
 #include "comm_pkg_mgr_server.h"
 #include "pkgmgr-server.h"
@@ -84,7 +87,7 @@ FILE *___log = NULL;
 #define LOCALEDIR "/usr/share/locale"
 #endif
 
-#define PACKAGE_RECOVERY_DIR "/opt/share/packages/.recovery/pkgmgr"
+#define PACKAGE_RECOVERY_DIR tzplatform_mkpath(TZ_SYS_RW_PACKAGES, ".recovery/pkgmgr")
 
 #define DESKTOP_W   720.0
 
index 5ac74a8..724b72d 100755 (executable)
@@ -5,12 +5,12 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TEST_CFLAGS}")
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/client/include)
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_test REQUIRED ecore dbus-1 ail libxml-2.0 bundle pkgmgr-parser vconf security-server pkgmgr-info)
+pkg_check_modules(pkgs_test REQUIRED ecore dbus-1 ail libxml-2.0 bundle pkgmgr-parser vconf security-server pkgmgr-info libtzplatform-config)
 FOREACH(flag ${pkgs_test_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-pkg_check_modules(toolpkgs REQUIRED appcore-efl dlog bundle glib-2.0 pkgmgr-parser vconf security-server pkgmgr-info)
+pkg_check_modules(toolpkgs REQUIRED appcore-efl dlog bundle glib-2.0 pkgmgr-parser vconf security-server pkgmgr-info libtzplatform-config)
 FOREACH(flag ${libpkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
index ce5461a..3a10052 100755 (executable)
 #include <ail.h>
 #include <glib-object.h>
 #include <pkgmgr-info.h>
+
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "package-manager.h"
 #include "package-manager-types.h"
 
 #define PKG_TOOL_VERSION       "0.1"
-#define APP_INSTALLATION_PATH_RW       "/opt/usr/apps"
+#define APP_INSTALLATION_PATH_RW       tzplatform_getenv(TZ_USER_APP)
 
 static int __process_request();
 static void __print_usage();
index 8c274a2..86c270b 100644 (file)
 #include <sys/stat.h>
 #include <errno.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "pkgmgr_parser.h"
 
 #define OWNER_ROOT 0
 #define GROUP_MENU 6010
 #define BUFSZE 1024
-#define OPT_MANIFEST_DIRECTORY "/opt/share/packages"
-#define USR_MANIFEST_DIRECTORY "/usr/share/packages"
-#define PACKAGE_INFO_DB_FILE "/opt/dbspace/.pkgmgr_parser.db"
-
-#define PKG_PARSER_DB_FILE "/opt/dbspace/.pkgmgr_parser.db"
-#define PKG_PARSER_DB_FILE_JOURNAL "/opt/dbspace/.pkgmgr_parser.db-journal"
-#define PKG_CERT_DB_FILE "/opt/dbspace/.pkgmgr_cert.db"
-#define PKG_CERT_DB_FILE_JOURNAL "/opt/dbspace/.pkgmgr_cert.db-journal"
+#define OPT_MANIFEST_DIRECTORY tzplatform_getenv(TZ_SYS_RW_PACKAGES)
+#define USR_MANIFEST_DIRECTORY tzplatform_getenv(TZ_SYS_RO_PACKAGES)
+#define PACKAGE_INFO_DB_FILE tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_parser.db")
+
+#define PKG_PARSER_DB_FILE tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_parser.db")
+#define PKG_PARSER_DB_FILE_JOURNAL tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_parser.db-journal")
+#define PKG_CERT_DB_FILE tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_cert.db")
+#define PKG_CERT_DB_FILE_JOURNAL tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_cert.db-journal")
 #define PKG_INFO_DB_LABEL "pkgmgr::db"
 
 #ifdef _E
index 3b4aeba..75c31f4 100644 (file)
@@ -35,6 +35,9 @@
 #include <sys/types.h>
 #include <fcntl.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #include "pkgmgr-debug.h"
 #include "package-manager.h"
 #include "pkgmgr_installer.h"
@@ -47,9 +50,9 @@
 #define MAX_PKG_BUF_LEN        1024
 #define BLOCK_SIZE      4096 /*in bytes*/
 
-#define PKG_TMP_PATH "/opt/usr/apps/tmp"
-#define PKG_RW_PATH "/opt/usr/apps/"
-#define PKG_RO_PATH "/usr/apps/"
+#define PKG_TMP_PATH tzplatform_mkpath(TZ_USER_APP, "tmp")
+#define PKG_RW_PATH tzplatform_getenv(TZ_USER_APP)
+#define PKG_RO_PATH tzplaform_getenv(TZ_SYS_RO_APP)
 
 long long __get_dir_size(int dfd)
 {
index f54d09e..9da565e 100755 (executable)
 #include <pkgmgr_parser.h>
 #include <pkgmgr-info.h>
 
+/* For multi-user support */
+#include <tzplatform_config.h>
+
 #define OWNER_ROOT 0
 #define GROUP_MENU 6010
 #define BUFSZE 1024
-#define OPT_MANIFEST_DIRECTORY "/opt/share/packages"
-#define USR_MANIFEST_DIRECTORY "/usr/share/packages"
-#define PACKAGE_INFO_DB_FILE "/opt/dbspace/.pkgmgr_parser.db"
-
-#define PKG_PARSER_DB_FILE "/opt/dbspace/.pkgmgr_parser.db"
-#define PKG_PARSER_DB_FILE_JOURNAL "/opt/dbspace/.pkgmgr_parser.db-journal"
-#define PKG_CERT_DB_FILE "/opt/dbspace/.pkgmgr_cert.db"
-#define PKG_CERT_DB_FILE_JOURNAL "/opt/dbspace/.pkgmgr_cert.db-journal"
+#define OPT_MANIFEST_DIRECTORY tzplatform_getenv(TZ_SYS_RW_PACKAGES)
+#define USR_MANIFEST_DIRECTORY tzplatform_getenv(TZ_SYS_RO_PACKAGES)
+#define PACKAGE_INFO_DB_FILE tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_parser.db")
+
+#define PKG_PARSER_DB_FILE tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_parser.db")
+#define PKG_PARSER_DB_FILE_JOURNAL tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_parser.db-journal")
+#define PKG_CERT_DB_FILE tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_cert.db")
+#define PKG_CERT_DB_FILE_JOURNAL tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_cert.db-journal")
 #define PKG_INFO_DB_LABEL "pkgmgr::db"
 
 #ifdef _E