SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -I${CMAKE_SOURCE_DIR}/include")
INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 sqlite3 vconf dlog db-util alarm-service icu-i18n appsvc bundle)
+pkg_check_modules(pkgs REQUIRED glib-2.0 sqlite3 vconf dlog db-util alarm-service icu-i18n appsvc bundle libtzplatform-config)
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
CONFIGURE_FILE(calendar.pc.in calendar.pc @ONLY)
INSTALL(FILES calendar.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-FILE(GLOB NOTI_FILES ${CMAKE_SOURCE_DIR}/.CALENDAR_SVC_*_CHANGED)
-INSTALL(FILES ${NOTI_FILES} DESTINATION /opt/usr/data/calendar-svc)
-
ADD_SUBDIRECTORY(schema)
ADD_SUBDIRECTORY(client)
ADD_SUBDIRECTORY(server)
#include <stdbool.h>
#include <stdint.h>
#include "cal_record.h"
+#include <tzplatform_config.h>
#define CAL_TZID_GMT "Etc/GMT"
-#define CAL_NOTI_EVENT_CHANGED "/opt/usr/data/calendar-svc/.CALENDAR_SVC_EVENT_CHANGED"
-#define CAL_NOTI_TODO_CHANGED "/opt/usr/data/calendar-svc/.CALENDAR_SVC_TODO_CHANGED"
-#define CAL_NOTI_CALENDAR_CHANGED "/opt/usr/data/calendar-svc/.CALENDAR_SVC_CALENDAR_CHANGED"
+#define CAL_NOTI_EVENT_CHANGED tzplatform_mkpath(TZ_USER_DATA,"calendar-svc/.CALENDAR_SVC_EVENT_CHANGED")
+#define CAL_NOTI_TODO_CHANGED tzplatform_mkpath(TZ_USER_DATA,"calendar-svc/.CALENDAR_SVC_TODO_CHANGED")
+#define CAL_NOTI_CALENDAR_CHANGED tzplatform_mkpath(TZ_USER_DATA,"calendar-svc/.CALENDAR_SVC_CALENDAR_CHANGED")
#define CAL_NOTI_REMINDER_CAHNGED "reminder"
/**
*
*/
+#include <tzplatform_config.h>
+
#ifndef __CAL_IPC_H__
#define __CAL_IPC_H__
#define CAL_IPC_SERVICE "cal_svc_ipc"
-#define CAL_IPC_SOCKET_PATH "/opt/usr/data/calendar-svc/."CAL_IPC_SERVICE
-#define CAL_IPC_SOCKET_PATH_FOR_SUBSCRIPTION "/opt/usr/data/calendar-svc/."CAL_IPC_SERVICE"_for_subscription"
+#define CAL_IPC_SOCKET_PATH tzplatform_mkpath(TZ_USER_DATA, "calendar-svc/."CAL_IPC_SERVICE)
+#define CAL_IPC_SOCKET_PATH_FOR_SUBSCRIPTION tzplatform_mkpath(TZ_USER_DATA, "calendar-svc/."CAL_IPC_SERVICE"_for_subscription")
#define CAL_IPC_MODULE "cal_ipc_module"
#define CAL_IPC_MODULE_FOR_SUBSCRIPTION CAL_IPC_MODULE"_for_subscription"
* limitations under the License.
*
*/
+#include <tzplatform_config.h>
+
#ifndef __CALENDAR_SVC_DB_H__
#define __CALENDAR_SVC_DB_H__
#include "calendar_view.h"
#include "calendar_list.h"
-#define CAL_DB_PATH "/opt/usr/dbspace/.calendar-svc.db"
-#define CAL_DB_JOURNAL_PATH "/opt/usr/dbspace/.calendar-svc.db-journal"
+#define CAL_DB_PATH tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db")
+#define CAL_DB_JOURNAL_PATH tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db-journal")
// For Security
#define CAL_SECURITY_FILE_GROUP 6003
#include "cal_db_util.h"
+#define DB_PATH tzplatform_getenv(TZ_USER_DB)
+#define DATA_PATH tzplatform_getenv(TZ_USER_DATA)
+#define CAL_DATA_PATH tzplatform_mkpath(TZ_USER_DATA,"calendar-svc")
+// For Security
+#define CALS_SECURITY_FILE_GROUP 6003
+#define CALS_SECURITY_DEFAULT_PERMISSION 0660
+
static TLS sqlite3 *calendar_db_handle;
static TLS int transaction_cnt = 0;
static TLS int transaction_ver = 0;
static TLS bool todo_change=false;
static TLS bool calendar_change=false;
+static inline int create_noti_file(const char* noti_file)
+{
+ int fd, ret;
+ fd = creat(noti_file, CALS_SECURITY_DEFAULT_PERMISSION);
+ if (-1 == fd)
+ {
+ printf("open Failed\n");
+ return -1;
+ }
+
+ ret = fchown(fd, -1, CALS_SECURITY_FILE_GROUP);
+ if (-1 == ret)
+ {
+ printf("Failed to fchown\n");
+ close(fd);
+ return -1;
+ }
+}
+
static inline void __cal_db_util_notify_event_change(void)
{
+ if (-1 == access (DATA_PATH, F_OK))
+ {
+ mkdir(DATA_PATH, 755);
+ }
+ if (-1 == access (CAL_DATA_PATH, F_OK))
+ {
+ mkdir(CAL_DATA_PATH, 755);
+ }
+ create_noti_file(CAL_NOTI_EVENT_CHANGED);
int fd = open(CAL_NOTI_EVENT_CHANGED, O_TRUNC | O_RDWR);
if (0 <= fd) {
close(fd);
static inline void __cal_db_util_notify_todo_change(void)
{
+ if (-1 == access (DATA_PATH, F_OK))
+ {
+ mkdir(DATA_PATH, 755);
+ }
+ if (-1 == access (CAL_DATA_PATH, F_OK))
+ {
+ mkdir(CAL_DATA_PATH, 755);
+ }
+ create_noti_file(CAL_NOTI_TODO_CHANGED);
int fd = open(CAL_NOTI_TODO_CHANGED, O_TRUNC | O_RDWR);
if (0 <= fd) {
close(fd);
static inline void __cal_db_util_notify_calendar_change(void)
{
+ if (-1 == access (DATA_PATH, F_OK))
+ {
+ mkdir(DATA_PATH, 755);
+ }
+ if (-1 == access (CAL_DATA_PATH, F_OK))
+ {
+ mkdir(CAL_DATA_PATH, 755);
+ }
+ create_noti_file(CAL_NOTI_CALENDAR_CHANGED);
int fd = open(CAL_NOTI_CALENDAR_CHANGED, O_TRUNC | O_RDWR);
if (0 <= fd) {
close(fd);
int ret = 0;
if (!calendar_db_handle) {
+ if (-1 == access (DB_PATH, F_OK))
+ {
+ mkdir(DB_PATH, 755);
+ }
+ if (-1 == access (CAL_DB_PATH, F_OK))
+ {
+ mkdir(DB_PATH, 755);
+ }
ret = db_util_open(CAL_DB_PATH, &calendar_db_handle, 0);
retvm_if(SQLITE_OK != ret, CALENDAR_ERROR_DB_FAILED,
"db_util_open() Failed(%d).", ret);
int _cal_db_util_get_transaction_ver(void);
+void cal_db_util_set_permission(int fd);
+
#endif //__CALENDAR_SVC_DB_UTIL_H__
<request>
<domain name="_"/>
</request>
- <assign>
- <filesystem path="/opt/usr/dbspace/.calendar-svc.db*" label="User" />
- </assign>
</manifest>
BuildRequires: pkgconfig(contacts-service2)
BuildRequires: pkgconfig(pims-ipc)
BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(libtzplatform-config)
%description
DB library for calendar
%post
/sbin/ldconfig
-chown :6003 /opt/usr/data/calendar-svc
-
-mkdir -p /opt/usr/dbspace
-
-chown :6003 /opt/usr/dbspace/.calendar-svc.db
-chown :6003 /opt/usr/dbspace/.calendar-svc.db-journal
-chown :6003 /opt/usr/data/calendar-svc/.CALENDAR_SVC_*
-
-chmod 660 /opt/usr/dbspace/.calendar-svc.db
-chmod 660 /opt/usr/dbspace/.calendar-svc.db-journal
-chmod 660 /opt/usr/data/calendar-svc/.CALENDAR_SVC_*
-
%postun -p /sbin/ldconfig
%files
%attr(0755,root,root) /etc/rc.d/init.d/calendar-serviced.sh
/etc/rc.d/rc3.d/S85calendar-serviced
/etc/rc.d/rc5.d/S85calendar-serviced
-%dir %attr(0775,root,root) /opt/usr/data/calendar-svc/
-/opt/usr/data/calendar-svc/.CALENDAR_SVC_CALENDAR_CHANGED
-/opt/usr/data/calendar-svc/.CALENDAR_SVC_EVENT_CHANGED
-/opt/usr/data/calendar-svc/.CALENDAR_SVC_TODO_CHANGED
/usr/share/calendar-svc/dft-calendar
-%config(noreplace) /opt/usr/dbspace/.calendar-svc.db*
%{_unitdir_user}/calendar.service
%{_unitdir_user}/tizen-middleware.target.wants/calendar.service
%{_libdir}/pkgconfig/calendar.pc
#%{_libdir}/pkgconfig/calendar-service-native.pc
%{_libdir}/pkgconfig/calendar-service2.pc
-/opt/usr/data/calendar-svc/calendar-svc-initdb
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
SET(TARGET calendar-svc-initdb)
SET(INITDBFILE initdb.c)
SET(TOOLLIB calendar-service2)
-pkg_check_modules(initdb_pkgs REQUIRED db-util dlog)
+pkg_check_modules(initdb_pkgs REQUIRED db-util dlog libtzplatform-config)
UNSET(EXTRA_CFLAGS)
FOREACH(flag ${initdb_pkgs_CFLAGS})
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS})
TARGET_LINK_LIBRARIES(${TARGET} ${initdb_pkgs_LDFLAGS})
-#INSTALL(TARGETS ${TARGET} DESTINATION bin)
-INSTALL(TARGETS ${TARGET} DESTINATION /opt/usr/data/calendar-svc)
-
-FILE(GLOB DB_FILES ${CMAKE_SOURCE_DIR}/schema/.calendar-svc.db*)
-INSTALL(FILES ${DB_FILES} DESTINATION /opt/usr/dbspace)
* limitations under the License.
*
*/
+
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string.h>
#include <sqlite3.h>
#include <db-util.h>
-
+#include "cal_typedef.h"
#include "schema.h"
+#include <tzplatform_config.h>
+
#define CALS_DB_NAME ".calendar-svc.db"
#define CALS_DB_JOURNAL_NAME ".calendar-svc.db-journal"
-#define CALS_DB_PATH "/opt/usr/dbspace/"CALS_DB_NAME
-#define CALS_DB_JOURNAL_PATH "/opt/usr/dbspace/"CALS_DB_JOURNAL_NAME
+#define CALS_DB_PATH tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db")
+#define CALS_DB_JOURNAL_PATH tzplatform_mkpath(TZ_USER_DB, ".calendar-svc.db-journal")
// For Security
#define CALS_SECURITY_FILE_GROUP 6003
snprintf(db_file,sizeof(db_file),"%s%s",db_path, CALS_DB_NAME);
}
- fd = open(db_file, O_RDONLY);
+ fd = open(db_file, O_RDONLY);
- if (-1 == fd)
- {
- printf("DB file(%s) is not exist\n", db_file);
- return -1;
- }
- printf("DB file(%s) \n", db_file);
- close(fd);
- return 0;
+ if (-1 == fd)
+ {
+ printf("DB file(%s) is not exist\n", db_file);
+ return -1;
+ }
+ printf("DB file(%s) \n", db_file);
+ close(fd);
+ return 0;
}
+
static inline int check_schema(char* db_path)
{
if (check_db_file(db_path))
remake_db_file(db_path);
+
return 0;
}
)
INCLUDE(FindPkgConfig)
-pkg_check_modules(calserver_pkgs REQUIRED pims-ipc db-util appsvc alarm-service capi-base-common icu-i18n alarm-service)
+pkg_check_modules(calserver_pkgs REQUIRED pims-ipc db-util appsvc alarm-service capi-base-common icu-i18n alarm-service libtzplatform-config)
FOREACH(flag ${calserver_pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")