SET(PKGMGR_SERVER "pkgmgr-server")
AUX_SOURCE_DIRECTORY(src SRCS)
-SET(SERVER_CHECK_MODULES gio-2.0 glib-2.0 dlog pkgmgr-parser pkgmgr-info libtzplatform-config drm-service-core-tizen libgum sqlite3 pkgmgr pkgmgr-installer libsystemd aul minizip)
-IF(TIZEN_FEATURE_CSR)
- SET(SERVER_CHECK_MODULES "${SERVER_CHECK_MODULES} csr")
-ENDIF(TIZEN_FEATURE_CSR)
+SET(SERVER_CHECK_MODULES gio-2.0 glib-2.0 dlog pkgmgr-parser pkgmgr-info libtzplatform-config drm-service-core-tizen libgum sqlite3 pkgmgr pkgmgr-installer libsystemd aul minizip csr capi-system-info)
pkg_check_modules(SERVER_DEPS REQUIRED ${SERVER_CHECK_MODULES})
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SERVER_FLAGS}")
ENDFOREACH(SERVER_FLAGS)
-IF(TIZEN_FEATURE_CSR)
- ADD_DEFINITIONS("-DTIZEN_FEATURE_CSR")
-ENDIF(TIZEN_FEATURE_CSR)
-
ADD_EXECUTABLE(${PKGMGR_SERVER} ${SRCS})
TARGET_LINK_LIBRARIES(${PKGMGR_SERVER} pkgmgr_installer)
TARGET_LINK_LIBRARIES(${PKGMGR_SERVER} ${SERVER_DEPS_LDFLAGS})
BuildRequires: pkgconfig(minizip)
BuildRequires: fdupes
-%if "%{?profile}" != "tv"
BuildRequires: pkgconfig(csr)
-%endif
+BuildRequires: pkgconfig(capi-system-info)
%description
Packager Manager server package for packaging
%build
sqlite3 restriction.db < ./restriction.sql
-%if "%{?profile}" != "tv"
-_TIZEN_FEATURE_CSR=ON
-%else
-_TIZEN_FEATURE_CSR=OFF
-%endif
-
%cmake . -DRUN_DIR=%{run_dir} \
-DDB_DIR=%{db_dir} \
-DBACKEND_DIR=%{backend_dir} \
- -DUNITDIR=%{_unitdir} \
- -DTIZEN_FEATURE_CSR:BOOL=${_TIZEN_FEATURE_CSR}
+ -DUNITDIR=%{_unitdir}
%__make %{?_smp_mflags}
#include <pkgmgr/pkgmgr_parser_db.h>
#include <tzplatform_config.h>
#include <drm-tizen-apps.h>
-#ifdef TIZEN_FEATURE_CSR
#include <csr-content-screening.h>
-#endif
#include "pkgmgr_installer.h"
#include "pkgmgr-server.h"
#include "queue.h"
#include "package-manager.h"
+#include <system_info.h>
+
#define OWNER_ROOT 0
#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
#define APPFW_UID 301
gboolean exit_server(void *data);
+typedef enum {
+ TIZEN_PROFILE_UNKNOWN = 0,
+ TIZEN_PROFILE_MOBILE = 0x1,
+ TIZEN_PROFILE_WEARABLE = 0x2,
+ TIZEN_PROFILE_TV = 0x4,
+ TIZEN_PROFILE_IVI = 0x8,
+ TIZEN_PROFILE_COMMON = 0x10,
+} tizen_profile_t;
+
+static tizen_profile_t _get_tizen_profile()
+{
+ static tizen_profile_t profile = TIZEN_PROFILE_UNKNOWN;
+ char *profileName;
+
+ if (__builtin_expect(profile != TIZEN_PROFILE_UNKNOWN, 1))
+ return profile;
+
+ system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
+ switch (*profileName) {
+ case 'm':
+ case 'M':
+ profile = TIZEN_PROFILE_MOBILE;
+ break;
+ case 'w':
+ case 'W':
+ profile = TIZEN_PROFILE_WEARABLE;
+ break;
+ case 't':
+ case 'T':
+ profile = TIZEN_PROFILE_TV;
+ break;
+ case 'i':
+ case 'I':
+ profile = TIZEN_PROFILE_IVI;
+ break;
+ default: // common or unknown ==> ALL ARE COMMON.
+ profile = TIZEN_PROFILE_COMMON;
+ }
+ free(profileName);
+
+ return profile;
+}
+#define TIZEN_FEATURE_CSR (_get_tizen_profile() != TIZEN_PROFILE_TV)
+
/* To check whether a particular backend is free/busy */
static int __is_backend_busy(int position)
{
return TRUE;
}
-#ifdef TIZEN_FEATURE_CSR
static int __check_csr(const char *path)
{
csr_cs_context_h context = NULL;
return 0;
}
-#endif
static int __kill_app(char *appid, uid_t uid)
{
/* set current backend job */
DBG("handle request type [%d]", job->req_type);
-#ifdef TIZEN_FEATURE_CSR
- if (job->req_type == REQUEST_TYPE_INSTALL ||
- job->req_type == REQUEST_TYPE_MOUNT_INSTALL ||
- job->req_type == REQUEST_TYPE_REINSTALL) {
- ret = __check_csr(job->pkgid);
- if (ret != 0) {
- ret = -1;
- _send_fail_signal(job);
- _free_backend_job(job);
- return TRUE;
+ if (TIZEN_FEATURE_CSR) {
+ if (job->req_type == REQUEST_TYPE_INSTALL ||
+ job->req_type == REQUEST_TYPE_MOUNT_INSTALL ||
+ job->req_type == REQUEST_TYPE_REINSTALL) {
+ ret = __check_csr(job->pkgid);
+ if (ret != 0) {
+ ret = -1;
+ _send_fail_signal(job);
+ _free_backend_job(job);
+ return TRUE;
+ }
}
}
-#endif
switch (job->req_type) {
case REQUEST_TYPE_INSTALL: