From: Kévin THIERRY Date: Wed, 19 Mar 2014 10:59:50 +0000 (+0100) Subject: Add multi-user support X-Git-Tag: accepted/tizen/common/20140519.230349~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=251762e1a1b582b8efbd5241da53463a74f43b0c;p=platform%2Fcore%2Fappfw%2Fslp-pkgmgr.git Add multi-user support Bug-Tizen: PTREL-348 Change-Id: Ic40cc5217f0b69949f95fc78d5a469e524c269c8 Signed-off-by: Kévin THIERRY --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 89bc993..e0a9211 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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}") diff --git a/client/src/pkgmgr.c b/client/src/pkgmgr.c index 5f2f8e7..a79cccd 100755 --- a/client/src/pkgmgr.c +++ b/client/src/pkgmgr.c @@ -39,6 +39,9 @@ #include #include +/* For multi-user support */ +#include + #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 diff --git a/include/SLP_package_manager_PG.h b/include/SLP_package_manager_PG.h index 9f476a5..3e38659 100755 --- a/include/SLP_package_manager_PG.h +++ b/include/SLP_package_manager_PG.h @@ -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 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; diff --git a/packaging/pkgmgr.spec b/packaging/pkgmgr.spec index a4c64a0..ea8bbb7 100644 --- a/packaging/pkgmgr.spec +++ b/packaging/pkgmgr.spec @@ -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 diff --git a/pkgmgr.patch.sh.in b/pkgmgr.patch.sh.in index af5a970..d0c2da0 100644 --- a/pkgmgr.patch.sh.in +++ b/pkgmgr.patch.sh.in @@ -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 diff --git a/server/src/pkgmgr-server.c b/server/src/pkgmgr-server.c index ba448b2..eca012b 100755 --- a/server/src/pkgmgr-server.c +++ b/server/src/pkgmgr-server.c @@ -48,6 +48,9 @@ #include +/* For multi-user support */ +#include + #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 diff --git a/tool/CMakeLists.txt b/tool/CMakeLists.txt index 5ac74a8..724b72d 100755 --- a/tool/CMakeLists.txt +++ b/tool/CMakeLists.txt @@ -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) diff --git a/tool/pkg_cmd.c b/tool/pkg_cmd.c index ce5461a..3a10052 100755 --- a/tool/pkg_cmd.c +++ b/tool/pkg_cmd.c @@ -37,11 +37,15 @@ #include #include #include + +/* For multi-user support */ +#include + #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(); diff --git a/tool/pkg_fota.c b/tool/pkg_fota.c index 8c274a2..86c270b 100644 --- a/tool/pkg_fota.c +++ b/tool/pkg_fota.c @@ -30,19 +30,22 @@ #include #include +/* For multi-user support */ +#include + #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 diff --git a/tool/pkg_getsize.c b/tool/pkg_getsize.c index 3b4aeba..75c31f4 100644 --- a/tool/pkg_getsize.c +++ b/tool/pkg_getsize.c @@ -35,6 +35,9 @@ #include #include +/* For multi-user support */ +#include + #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) { diff --git a/tool/pkg_initdb.c b/tool/pkg_initdb.c index f54d09e..9da565e 100755 --- a/tool/pkg_initdb.c +++ b/tool/pkg_initdb.c @@ -33,17 +33,20 @@ #include #include +/* For multi-user support */ +#include + #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