SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -I${SRC_INCLUDE_DIR}")
INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 capi-base-common vconf dlog db-util icu-i18n security-server)
+pkg_check_modules(pkgs REQUIRED glib-2.0 capi-base-common vconf dlog db-util icu-i18n security-server libtzplatform-config)
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
-# Install notification files
-FILE(GLOB NOTI_FILES ${CMAKE_SOURCE_DIR}/res/.CONTACTS_SVC_*)
-INSTALL(FILES ${NOTI_FILES} DESTINATION /opt/usr/data/contacts-svc
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_WRITE GROUP_READ)
-
-# Install directory for image
-INSTALL(DIRECTORY DESTINATION /opt/usr/data/contacts-svc/img/vcard)
-INSTALL(DIRECTORY DESTINATION /opt/usr/data/contacts-svc/img/my)
-INSTALL(DIRECTORY DESTINATION /opt/usr/data/contacts-svc/img/group)
-INSTALL(DIRECTORY DESTINATION /opt/usr/data/contacts-svc/img/logo)
-
# Install header file
FILE(GLOB HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h)
INSTALL(FILES ${HEADER_FILES} DESTINATION ${DEST_INCLUDE_DIR})
-# Install DB file
-FILE(GLOB DB_FILES ${CMAKE_CURRENT_SOURCE_DIR}/build-util/.contacts-svc.db*)
-INSTALL(FILES ${DB_FILES} DESTINATION /opt/usr/dbspace)
-
ADD_SUBDIRECTORY(client)
ADD_SUBDIRECTORY(server)
./DB-schema-gen ../schema.sql >> ../server/schema.h
echo \"\; >> ../server/schema.h
-# Make DB file at builing time
-echo "sqlite3 .contacts-svc.db \"" > DB-schema-create.sh
-./DB-schema-gen2 ../schema.sql >> DB-schema-create.sh
-echo \" >> DB-schema-create.sh
-chmod +x DB-schema-create.sh
-./DB-schema-create.sh
-rm DB-schema-create.sh
-
-
make clean
* limitations under the License.\r
*\r
*/\r
+#include <tzplatform_config.h>\r
\r
#ifndef __TIZEN_SOCIAL_CTSVC_NOTIFY_H__\r
#define __TIZEN_SOCIAL_CTSVC_NOTIFY_H__\r
\r
-#define CTSVC_NOTI_ADDRESSBOOK_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_AB_CHANGED"\r
-#define CTSVC_NOTI_GROUP_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_GROUP_CHANGED"\r
-#define CTSVC_NOTI_PERSON_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_PERSON_CHANGED"\r
-#define CTSVC_NOTI_CONTACT_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_DB_CHANGED"\r
-#define CTSVC_NOTI_MY_PROFILE_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_MY_PROFILE_CHANGED"\r
-#define CTSVC_NOTI_NAME_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_NAME_CHANGED"\r
-#define CTSVC_NOTI_NUMBER_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_NUMBER_CHANGED"\r
-#define CTSVC_NOTI_EMAIL_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_EMAIL_CHANGED"\r
-#define CTSVC_NOTI_EVENT_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_EVENT_CHANGED"\r
-#define CTSVC_NOTI_URL_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_URL_CHANGED"\r
-#define CTSVC_NOTI_GROUP_RELATION_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_GROUP_RELATION_CHANGED"\r
-#define CTSVC_NOTI_ADDRESS_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_ADDRESS_CHANGED"\r
-#define CTSVC_NOTI_NOTE_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_NOTE_CHANGED"\r
-#define CTSVC_NOTI_COMPANY_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_COMPANY_CHANGED"\r
-#define CTSVC_NOTI_RELATIONSHIP_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_RELATIONSHIP_CHANGED"\r
-#define CTSVC_NOTI_IMAGE_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_IMAGE_CHANGED"\r
-#define CTSVC_NOTI_NICKNAME_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_NICKNAME_CHANGED"\r
-#define CTSVC_NOTI_MESSENGER_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_MESSENGER_CHANGED"\r
-#define CTSVC_NOTI_DATA_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_DATA_CHANGED"\r
-#define CTSVC_NOTI_SDN_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_SDN_CHANGED"\r
-#define CTSVC_NOTI_PROFILE_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_PROFILE_CHANGED"\r
-#define CTSVC_NOTI_ACTIVITY_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_ACTIVITY_CHANGED"\r
-#define CTSVC_NOTI_PHONELOG_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_PLOG_CHANGED"\r
-#define CTSVC_NOTI_SPEEDDIAL_CHANGED "/opt/usr/data/contacts-svc/.CONTACTS_SVC_SPEED_CHANGED"\r
+#define DATA_REPERTORY tzplatform_getenv(TZ_USER_DATA)\r
+#define CTSVC_NOTI_REPERTORY tzplatform_mkpath(TZ_USER_DATA,"contacts-svc")\r
+#define CTSVC_NOTI_IMG_REPERTORY tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/")\r
+#define CTSVC_VCARD_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/vcard")\r
+#define CTS_MY_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/my")\r
+#define CTS_GROUP_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/group")\r
+#define CTS_LOGO_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/logo")\r
+#define CTSVC_NOTI_ADDRESSBOOK_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_AB_CHANGED")\r
+#define CTSVC_NOTI_GROUP_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_GROUP_CHANGED")\r
+#define CTSVC_NOTI_PERSON_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_PERSON_CHANGED")\r
+#define CTSVC_NOTI_CONTACT_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_DB_CHANGED")\r
+#define CTSVC_NOTI_MY_PROFILE_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_MY_PROFILE_CHANGED")\r
+#define CTSVC_NOTI_NAME_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_NAME_CHANGED")\r
+#define CTSVC_NOTI_NUMBER_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_NUMBER_CHANGED")\r
+#define CTSVC_NOTI_EMAIL_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_EMAIL_CHANGED")\r
+#define CTSVC_NOTI_EVENT_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_EVENT_CHANGED")\r
+#define CTSVC_NOTI_URL_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_URL_CHANGED")\r
+#define CTSVC_NOTI_GROUP_RELATION_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_GROUP_RELATION_CHANGED")\r
+#define CTSVC_NOTI_ADDRESS_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_ADDRESS_CHANGED")\r
+#define CTSVC_NOTI_NOTE_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_NOTE_CHANGED")\r
+#define CTSVC_NOTI_COMPANY_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_COMPANY_CHANGED")\r
+#define CTSVC_NOTI_RELATIONSHIP_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_RELATIONSHIP_CHANGED")\r
+#define CTSVC_NOTI_IMAGE_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_IMAGE_CHANGED")\r
+#define CTSVC_NOTI_NICKNAME_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_NICKNAME_CHANGED")\r
+#define CTSVC_NOTI_MESSENGER_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_MESSENGER_CHANGED")\r
+#define CTSVC_NOTI_DATA_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_DATA_CHANGED")\r
+#define CTSVC_NOTI_SDN_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_SDN_CHANGED")\r
+#define CTSVC_NOTI_PROFILE_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_PROFILE_CHANGED")\r
+#define CTSVC_NOTI_ACTIVITY_CHANGED tzplatform_mkpath(TZ_USER_DATA, "contacts-svc/.CONTACTS_SVC_ACTIVITY_CHANGED")\r
+#define CTSVC_NOTI_PHONELOG_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_PLOG_CHANGED")\r
+#define CTSVC_NOTI_SPEEDDIAL_CHANGED tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/.CONTACTS_SVC_SPEED_CHANGED")\r
\r
#define CTSVC_SETTING_DISPLAY_ORDER_CHANGED "contacts.setting.display_order"\r
#define CTSVC_SETTING_SORTING_ORDER_CHANGED "contacts.setting.sorting_order"\r
#include <stdlib.h>
#include <glib.h>
#include <string.h>
+#include <tzplatform_config.h>
#include "contacts_views.h"
#define CTSVC_IMG_FULL_PATH_SIZE_MAX 1024
#define CTSVC_NUMBER_MAX_LEN 512
-#define CTS_IMG_FULL_LOCATION "/opt/usr/data/contacts-svc/img"
+#define CTS_IMG_FULL_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img")
#define SAFE_STR(src) (src)?src:""
#define SAFE_STRDUP(src) (src)?strdup(src):NULL
#include <unistd.h>
#include <unicode/ucnv.h>
#include <unicode/ustring.h>
+#include <tzplatform_config.h>
#include "contacts.h"
#include "ctsvc_internal.h"
#define SMART_STRDUP(src) (src && *src)?strdup(src):NULL
#define CTSVC_VCARD_PHOTO_MAX_SIZE 1024*1024
-#define CTSVC_VCARD_IMAGE_LOCATION "/opt/usr/data/contacts-svc/img/vcard"
+#define CTSVC_VCARD_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/vcard")
#define CTSVC_VCARD_APPEND_STR(buf, buf_size, len, str) do { \
if ((len = __ctsvc_vcard_append_str(buf, buf_size, len, str, false)) < 0) { \
FILE(GLOB SRCS *.c ../common/*.c)
INCLUDE(FindPkgConfig)
-pkg_check_modules(service_pkgs REQUIRED sqlite3 db-util capi-media-image-util accounts-svc badge libexif libsmack)
+pkg_check_modules(service_pkgs REQUIRED sqlite3 db-util capi-media-image-util accounts-svc badge libexif libsmack libtzplatform-config)
FOREACH(flag ${service_pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
#ifndef __CTSVC_DB_PLUGIN_COMPANY_HELPER_H__
#define __CTSVC_DB_PLUGIN_COMPANY_HELPER_H__
+#include <tzplatform_config.h>
+
#include "contacts.h"
#include "ctsvc_sqlite.h"
-#define CTS_LOGO_IMAGE_LOCATION "/opt/usr/data/contacts-svc/img/logo"
+#define CTS_LOGO_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/logo")
int ctsvc_db_company_insert(contacts_record_h record, int contact_id, bool is_my_profile, int *id);
int ctsvc_db_company_update(contacts_record_h record, int contact_id, bool is_my_profile);
#ifndef __CTSVC_DB_PLUGIN_GROUP_HELPER_H__
#define __CTSVC_DB_PLUGIN_GROUP_HELPER_H__
+#include <tzplatform_config.h>
+
#include "contacts.h"
#include "ctsvc_sqlite.h"
-#define CTS_GROUP_IMAGE_LOCATION "/opt/usr/data/contacts-svc/img/group"
+#define CTS_GROUP_IMAGE_LOCATION tzplatform_mkpath(TZ_USER_DATA,"contacts-svc/img/group")
void ctsvc_db_group_delete_callback(sqlite3_context *context, int argc, sqlite3_value ** argv);
* limitations under the License.
*
*/
+#include <tzplatform_config.h>
#ifndef __TIZEN_SOCIAL_CTSVC_SCHEMA_H__
#define __TIZEN_SOCIAL_CTSVC_SCHEMA_H__
-#define CTSVC_DB_PATH "/opt/usr/dbspace/.contacts-svc.db"
-#define CTSVC_DB_JOURNAL_PATH "/opt/usr/dbspace/.contacts-svc.db-journal"
+#define CTSVC_DB_PATH tzplatform_mkpath(TZ_USER_DB,".contacts-svc.db")
+#define CTSVC_DB_JOURNAL_PATH tzplatform_mkpath(TZ_USER_DB,".contacts-svc.db-journal")
// For Security
#define CTS_SECURITY_FILE_GROUP 6005
BuildRequires: pkgconfig(libexif)
BuildRequires: pkgconfig(libsmack)
BuildRequires: pkgconfig(security-server)
+BuildRequires: pkgconfig(libtzplatform-config)
Requires(post): /usr/bin/sqlite3, /bin/chmod, /bin/chown
Requires(post): /usr/bin/vconftool
Requires(post): /sbin/ldconfig
%build
-%cmake .
+%cmake . -DTZ_SYS_ETC=%TZ_SYS_ETC
make %{?_smp_mflags}
%post -n contacts-service2
/sbin/ldconfig
-chown :6005 /opt/usr/data/contacts-svc
-chown :6005 /opt/usr/dbspace/.contacts-svc.db
-chown :6005 /opt/usr/dbspace/.contacts-svc.db-journal
-chown :6005 -R /opt/usr/data/contacts-svc/img
-chown :6005 /opt/usr/data/contacts-svc/.CONTACTS_SVC_*_CHANGED
-
-chmod 660 /opt/usr/dbspace/.contacts-svc.db
-chmod 660 /opt/usr/dbspace/.contacts-svc.db-journal
-chmod 775 /opt/usr/data/contacts-svc
-chmod 770 -R /opt/usr/data/contacts-svc/img/
-chmod 660 /opt/usr/data/contacts-svc/.CONTACTS_SVC_*
-
-chsmack -a 'User' /opt/usr/dbspace/.contacts-svc.db*
-
vconftool set -t int file/private/contacts-service/default_lang 0 -g 6005 -s contacts-service::vconf-private
vconftool set -t int db/contacts-svc/name_sorting_order 0 -g 6005 -s contacts-service::vconf
vconftool set -t int db/contacts-svc/name_display_order 0 -g 6005 -s contacts-service::vconf
%defattr(-,root,root,-)
%{_libdir}/libcontacts-service2.so.*
%{_bindir}/contacts-service-ipcd*
-/opt/usr/data/contacts-svc/.CONTACTS_SVC_*
-/opt/usr/data/contacts-svc/img/*
/usr/lib/systemd/user/contacts-service.service
/usr/lib/systemd/user/tizen-middleware.target.wants/contacts-service.service
/usr/lib/systemd/user/sockets.target.wants/contacts-service.socket
/usr/lib/systemd/user/contacts-service.socket
-%config(noreplace) /opt/usr/dbspace/.contacts-svc.db*
%files -n contacts-service2-devel
%defattr(-,root,root,-)
#define __CTSVC_SERVER_SCHEMA_RECOVERY_H__
int ctsvc_server_check_schema();
-
#endif // __CTSVC_SERVER_SCHEMA_RECOVERY_H__
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
#include <pims-ipc.h>
#include <pims-ipc-svc.h>
#include "ctsvc_ipc_server2.h"
#include "ctsvc_ipc_server_sim.h"
+#include "ctsvc_notify.h"
static int __server_main(void)
{
int ret;
return -1;
}
+#define CTSVC_SECURITY_FILE_GROUP 6005
+void ctsvc_create_file_set_permission(const char* file, mode_t mode)
+{
+ int fd, ret;
+ fd = creat(file, mode);
+ if (0 <= fd)
+ {
+ ret = fchown(fd, -1, CTSVC_SECURITY_FILE_GROUP);
+ if (-1 == ret)
+ {
+ printf("Failed to fchown\n");
+ return;
+ }
+ close(fd);
+ }
+
+}
+
+void ctsvc_create_rep_set_permission(const char* directory, mode_t mode)
+{
+ if (-1 == access (directory, F_OK))
+ {
+ mkdir(directory, mode);
+ }
+}
+
int main(int argc, char *argv[])
{
CTS_FN_CALL;
if (2 <= argc && !strcmp(argv[1], "schema"))
return CONTACTS_ERROR_NONE;
+ ctsvc_create_rep_set_permission(DATA_REPERTORY, 0755);
+ ctsvc_create_rep_set_permission(CTSVC_NOTI_REPERTORY, 0775);
+ ctsvc_create_rep_set_permission(CTSVC_NOTI_IMG_REPERTORY, 0770);
+ ctsvc_create_rep_set_permission(CTSVC_VCARD_IMAGE_LOCATION, 0770);
+ ctsvc_create_rep_set_permission(CTS_MY_IMAGE_LOCATION, 0770);
+ ctsvc_create_rep_set_permission(CTS_GROUP_IMAGE_LOCATION, 0770);
+ ctsvc_create_rep_set_permission(CTS_LOGO_IMAGE_LOCATION, 0770);
+
+ ctsvc_create_file_set_permission(CTSVC_NOTI_ADDRESSBOOK_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_GROUP_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_PERSON_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_CONTACT_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_MY_PROFILE_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_NAME_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_NUMBER_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_EMAIL_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_EVENT_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_URL_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_GROUP_RELATION_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_ADDRESS_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_NOTE_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_COMPANY_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_RELATIONSHIP_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_IMAGE_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_NICKNAME_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_MESSENGER_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_DATA_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_SDN_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_PROFILE_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_ACTIVITY_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_PHONELOG_CHANGED, 0660);
+ ctsvc_create_file_set_permission(CTSVC_NOTI_SPEEDDIAL_CHANGED, 0660);
+
ret = ctsvc_server_socket_init();
CTS_DBG("%d", ret);
return 0;
}
-