Cleanup cmake/spec infrastructure 31/251531/5
authorDariusz Michaluk <d.michaluk@samsung.com>
Thu, 14 Jan 2021 10:01:22 +0000 (11:01 +0100)
committerDariusz Michaluk <d.michaluk@samsung.com>
Fri, 22 Jan 2021 16:11:26 +0000 (17:11 +0100)
Change-Id: I5be717880e1d100b63a0214a87a54fb4c1744d0c

CMakeLists.txt
capi/CMakeLists.txt
capi/res/dbspace/CMakeLists.txt
capi/res/string/CMakeLists.txt [new file with mode: 0644]
capi/security-privilege-manager.pc.in
packaging/privilege-checker.manifest [deleted file]
packaging/privilege-checker.spec
test/CMakeLists.txt
tool/CMakeLists.txt

index 85f79fb..e1943e3 100644 (file)
@@ -1,21 +1,40 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
+PROJECT(privilege-checker VERSION 1.2.9 LANGUAGES C)
 
-MESSAGE("build privilege-checker")
+INCLUDE(GNUInstallDirs)
+INCLUDE(FindPkgConfig)
 
-SET(CMAKE_VERBOSE_MAKEFILE OFF)
+IF(NOT CMAKE_BUILD_TYPE)
+       SET(CMAKE_BUILD_TYPE "RELEASE")
+ENDIF(NOT CMAKE_BUILD_TYPE)
 
-SET(BINDIR "${PREFIX}/bin")
+SET(CMAKE_C_FLAGS_DEBUG        "-O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
+SET(CMAKE_C_FLAGS_RELEASE      "-O2 -DNDEBUG")
 
-IF("${USE_AUTOSTART}" STREQUAL "1")
-       ADD_DEFINITIONS("-DUSE_AUTOSTART")
-ENDIF()
+ADD_DEFINITIONS("-Werror")
+ADD_DEFINITIONS("-Wall")
+ADD_DEFINITIONS("-Wextra")
 
-ADD_DEFINITIONS("-Werror -Wall -Wextra")
-ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
-ADD_DEFINITIONS("-DUSE_IPC_EPOLL")
+SET(CMAKE_POSITION_INDEPENDENT_CODE "True")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
 
-STRING(REGEX MATCH "([^.]*)" API_VERSION "${VERSION}")
-ADD_DEFINITIONS("-DAPI_VERSION=\"$(API_VERSION)\"")
+SET(PRIVILEGE_DB_DIR "${CMAKE_INSTALL_FULL_DATADIR}/privilege-manager")
+ADD_DEFINITIONS(-DPRIVILEGE_DB_PATH="${PRIVILEGE_DB_DIR}/.privilege.db")
+ADD_DEFINITIONS(-DPRIVILEGE_POLICY_DB_PATH="${TZ_SYS_DB}/.policy.db")
+ADD_DEFINITIONS(-DPRIVILEGE_PRIVACY_DB_PATH="${TZ_SYS_DB}/.privacy.db")
+ADD_DEFINITIONS(-DASKUSER_RUNTIME_DISABLE_PATH="${TZ_SYS_SHARE}/askuser_disable")
+
+PKG_CHECK_MODULES(PRIVILEGE_CHECKER_DEPS REQUIRED
+       dlog
+       pkgmgr-info
+       glib-2.0
+       sqlite3
+       libtzplatform-config
+       iniparser)
+
+INCLUDE_DIRECTORIES(SYSTEM ${PRIVILEGE_CHECKER_DEPS_INCLUDE_DIRS})
+LINK_DIRECTORIES(${PRIVILEGE_CHECKER_DEPS_LIBRARY_DIRS})
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/capi/include)
 
 ADD_SUBDIRECTORY(capi)
 ADD_SUBDIRECTORY(tool)
index bf16a6c..f51bfe2 100644 (file)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(fw_name "security-privilege-manager")
+SET(TARGET_LIB "security-privilege-manager")
 
-PROJECT(${fw_name})
+ADD_DEFINITIONS(-D__TIZEN__)
 
-SET(CMAKE_INSTALL_PREFIX /usr)
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+ADD_LIBRARY(${TARGET_LIB} SHARED
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_info.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_package_info.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_manager.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_db_manager.c)
 
-SET(INC_DIR include)
+TARGET_LINK_LIBRARIES(${TARGET_LIB} ${PRIVILEGE_CHECKER_DEPS_LIBRARIES})
 
-INCLUDE_DIRECTORIES(${INC_DIR})
-
-SET(pc_requires "glib-2.0")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(${fw_name} REQUIRED dlog pkgmgr-info glib-2.0 sqlite3 libtzplatform-config iniparser)
-FOREACH(flag ${${fw_name}_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -D__TIZEN__ -Wl,--no-undefined")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-
-IF("${ARCH}" STREQUAL "arm")
-       ADD_DEFINITIONS("-DTARGET")
-ENDIF("${ARCH}" STREQUAL "arm")
-
-MESSAGE("TZ_SYS_DB= ${TZ_SYS_DB}")
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
-ADD_DEFINITIONS("-DSLP_DEBUG")
-
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIBDIR}")
-
-aux_source_directory(src SOURCES)
-ADD_LIBRARY(${fw_name} SHARED ${SOURCES})
-
-TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
-
-SET_TARGET_PROPERTIES(${fw_name}
+SET_TARGET_PROPERTIES(${TARGET_LIB}
        PROPERTIES
-       SOVERSION ${API_VERSION}
-       VERSION ${VERSION}
-       CLEAN_DIRECT_OUTPUT 1
-)
+       VERSION ${PROJECT_VERSION}
+       SOVERSION 1)
 
-INSTALL(TARGETS ${fw_name} DESTINATION ${LIBDIR})
-INSTALL(
-       DIRECTORY ${INC_DIR}/ DESTINATION ${INCLUDEDIR}/privilegemgr
+INSTALL(TARGETS ${TARGET_LIB} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/capi/include/
+       DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/privilegemgr
        FILES_MATCHING
        PATTERN "*_private.h" EXCLUDE
-       PATTERN "${INC_DIR}/*.h"
-)
-
-SET(PC_NAME ${fw_name})
-SET(PC_REQUIRED ${pc_requires})
-SET(PC_LDFLAGS -l${fw_name})
-SET(PC_CFLAGS -I\${includedir}/privilegemgr)
-
-CONFIGURE_FILE(${fw_name}.pc.in ${fw_name}.pc @ONLY)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
-
-
-IF(UNIX)
-
-ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
-ADD_CUSTOM_COMMAND(
-       DEPENDS clean
-       COMMENT "distribution clean"
-       COMMAND find
-       ARGS    .
-       -not -name config.cmake -and \(
-       -name tester.c -or
-       -name Testing -or
-       -name CMakeFiles -or
-       -name cmake.depends -or
-       -name cmake.check_depends -or
-       -name CMakeCache.txt -or
-       -name cmake.check_cache -or
-       -name *.cmake -or
-       -name Makefile -or
-       -name core -or
-       -name core.* -or
-       -name gmon.out -or
-       -name install_manifest.txt -or
-       -name *.pc -or
-       -name *~ \)
-       | grep -v TC | xargs rm -rf
-       TARGET  distclean
-       VERBATIM
-)
-
-ENDIF(UNIX)
-
-SET(PRIVILEGE_DB_DIR "${DATADIR}/privilege-manager")
-ADD_DEFINITIONS(-DPRIVILEGE_DB_PATH="${PRIVILEGE_DB_DIR}/.privilege.db")
-ADD_DEFINITIONS(-DPRIVILEGE_POLICY_DB_PATH="${TZ_SYS_DB}/.policy.db")
-ADD_DEFINITIONS(-DPRIVILEGE_PRIVACY_DB_PATH="${TZ_SYS_DB}/.privacy.db")
-ADD_DEFINITIONS(-DASKUSER_RUNTIME_DISABLE_PATH="${TZ_SYS_SHARE}/askuser_disable")
-SET(ROOT_DIR ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
-SET(LOCALE_ROOT_PATH "${ROOT_DIR}/target/generic/root/usr/share/locale")
-
-FILE(GLOB _pofiles res/string/*.po)
-
-FOREACH(_file ${_pofiles})
-       GET_FILENAME_COMPONENT(_in ${_file} ABSOLUTE)
-       GET_FILENAME_COMPONENT(_basename ${_file} NAME_WE)
-
-       SET(_out "${LOCALE_ROOT_PATH}/${_basename}/LC_MESSAGES/privilege.mo")
-
-       ADD_CUSTOM_COMMAND(
-               OUTPUT ${_out}
-               COMMENT "Generating ${_out}"
-               COMMAND mkdir -p ${LOCALE_ROOT_PATH}/${_basename}/LC_MESSAGES
-               COMMAND msgfmt -o ${_out} ${_in}
-               DEPENDS ${_in}
-       )
-
-       SET(mo_files ${mo_files} ${_out})
-
-ENDFOREACH(_file ${_pofiles})
-
-ADD_CUSTOM_TARGET(privilege-string ALL DEPENDS ${mo_files})
+       PATTERN "*.h")
 
-INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output/target/generic/root/usr/share/locale DESTINATION ${DATADIR})
+CONFIGURE_FILE(security-privilege-manager.pc.in security-privilege-manager.pc @ONLY)
+INSTALL(FILES
+       ${CMAKE_CURRENT_BINARY_DIR}/security-privilege-manager.pc
+       DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
-IF (NOT("${CMAKE_BUILD_TYPE}" STREQUAL "NO_DB"))
-    ADD_SUBDIRECTORY(res/dbspace)
-ENDIF()
+ADD_SUBDIRECTORY(res/dbspace)
+ADD_SUBDIRECTORY(res/string)
index 6e3982d..81e09a8 100644 (file)
@@ -8,24 +8,25 @@ SET(PRIVILEGE_DB_WEARABLE ".privilege.wearable.db")
 SET(PRIVILEGE_DB_IOT ".privilege.iot.db")
 
 ADD_CUSTOM_COMMAND(
-    OUTPUT ${POLICY_DB} ${PRIVACY_DB}
-        ${PRIVILEGE_DB_TV} ${PRIVILEGE_DB_MOBILE} ${PRIVILEGE_DB_WEARABLE} ${PRIVILEGE_DB_IOT}
-        COMMAND ./policy_db_generator.sh && ./privacy_db_generator.sh &&
-                ./privilege_db_generator.sh tv && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_TV} &&
-                ./privilege_db_generator.sh mobile && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_MOBILE} &&
-                ./privilege_db_generator.sh wearable && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_WEARABLE} &&
-                ./privilege_db_generator.sh iot && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_IOT}
-)
+       OUTPUT ${POLICY_DB} ${PRIVACY_DB}
+               ${PRIVILEGE_DB_TV} ${PRIVILEGE_DB_MOBILE} ${PRIVILEGE_DB_WEARABLE} ${PRIVILEGE_DB_IOT}
+       COMMAND ./policy_db_generator.sh && ./privacy_db_generator.sh &&
+               ./privilege_db_generator.sh tv && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_TV} &&
+               ./privilege_db_generator.sh mobile && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_MOBILE} &&
+               ./privilege_db_generator.sh wearable && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_WEARABLE} &&
+               ./privilege_db_generator.sh iot && mv ${PRIVILEGE_DB} ${PRIVILEGE_DB_IOT})
 
 ADD_CUSTOM_TARGET(privilege-db ALL DEPENDS ${POLICY_DB} ${PRIVACY_DB}
-                                            ${PRIVILEGE_DB_TV} ${PRIVILEGE_DB_MOBILE}
-                                            ${PRIVILEGE_DB_WEARABLE} ${PRIVILEGE_DB_IOT}
-)
+       ${PRIVILEGE_DB_TV} ${PRIVILEGE_DB_MOBILE} ${PRIVILEGE_DB_WEARABLE} ${PRIVILEGE_DB_IOT})
 
-INSTALL(FILES ${PRIVILEGE_DB_TV} ${PRIVILEGE_DB_WEARABLE} ${PRIVILEGE_DB_MOBILE} ${PRIVILEGE_DB_IOT}
-            DESTINATION ${DATADIR}/privilege-manager/
-)
+INSTALL(FILES
+       ${PRIVILEGE_DB_TV} ${PRIVILEGE_DB_WEARABLE} ${PRIVILEGE_DB_MOBILE} ${PRIVILEGE_DB_IOT}
+       DESTINATION ${PRIVILEGE_DB_DIR})
 
-INSTALL(FILES ${POLICY_DB} ${POLICY_DB}-journal ${PRIVACY_DB} ${PRIVACY_DB}-journal DESTINATION ${TZ_SYS_DB}/)
-INSTALL(PROGRAMS policy_db_updater.sh DESTINATION ${DATADIR}/privilege-manager/)
-INSTALL(PROGRAMS privilege-db-update DESTINATION /usr/bin/)
+INSTALL(FILES
+       ${POLICY_DB} ${POLICY_DB}-journal
+       ${PRIVACY_DB} ${PRIVACY_DB}-journal
+       DESTINATION ${TZ_SYS_DB}/)
+
+INSTALL(PROGRAMS policy_db_updater.sh DESTINATION ${PRIVILEGE_DB_DIR})
+INSTALL(PROGRAMS privilege-db-update DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/capi/res/string/CMakeLists.txt b/capi/res/string/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a64db5c
--- /dev/null
@@ -0,0 +1,20 @@
+FILE(GLOB POFILES *.po)
+
+SET(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale")
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+               OUTPUT ${moFile}
+               COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+               DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME privilege.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
index fedb6bc..0772eb1 100644 (file)
@@ -1,14 +1,11 @@
-
-# Package Information for pkg-config
-
-prefix=@PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@/privilegemgr
-
-Name: @PC_NAME@
-Description: @PACKAGE_DESCRIPTION@
-Version: @VERSION@
-Requires: @PC_REQUIRED@ 
-Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir} @PC_CFLAGS@
-
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
+includedir=@INCLUDE_INSTALL_DIR@
+
+Name: security-privilege-manager
+Description: Provides Privilege Manager API
+Version: @PROJECT_VERSION@
+Requires: glib-2.0
+Libs: -L${libdir} -lsecurity-privilege-manager
+Cflags: -I${includedir} -I\${includedir}/privilegemgr
diff --git a/packaging/privilege-checker.manifest b/packaging/privilege-checker.manifest
deleted file mode 100644 (file)
index c00c25b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<manifest>
-        <request>
-                <domain name="_" />
-        </request>
-</manifest>
index fa18e2b..fb5253b 100644 (file)
@@ -1,3 +1,5 @@
+%{!?build_type:%global build_type RELEASE}
+
 Name:    privilege-checker
 Summary: Privilege Management
 Version: 1.2.9
@@ -6,104 +8,102 @@ Group:   System/Libraries
 License: Apache-2.0
 Source0: %{name}-%{version}.tar.gz
 Source1000: privilege-checker.ini
-BuildRequires: cmake
-BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(iniparser)
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-
-%if !%{defined build_type}
-%define build_type RELEASE
-%endif
 
 %description
-Pakcage for Privilege Management
-
-%package -n privilege-checker-devel
-summary: Package for Privilege Management (DEV)
-Group: Development/Libraries
-Requires: privilege-checker = %{version}-%{release}
-
-%description -n privilege-checker-devel
-Package for Privilege Management (DEV)
+Package for Privilege Management
 
 %package -n security-privilege-manager
 Summary:    Privilege Manager API
-BuildRequires:  cmake
-BuildRequires:  pkgconfig(dlog)
-BuildRequires:  gettext-tools
-BuildRequires:  pkgconfig(pkgmgr-info)
-BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires: cmake
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(iniparser)
+BuildRequires: gettext-tools
+BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(sqlite3)
 BuildRequires: pkgconfig(libtzplatform-config)
 Requires: security-config
 Requires: tizen-platform-config
 Requires: pkgmgr
+Requires: tizen-locale
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
-Provides:       security-privilege-manager-profile_common = %{version}-%{release}
-Provides:       security-privilege-manager-profile_ivi = %{version}-%{release}
+Provides: security-privilege-manager-profile_common = %{version}-%{release}
+Provides: security-privilege-manager-profile_ivi = %{version}-%{release}
 
 %description -n security-privilege-manager
 The Privilege Manager API provides functions to verify privilege information of packages to be installed.
 
 %package -n security-privilege-manager-extension-mobile
-Summary:        Privilege Manager API extension for Tizen Mobile profile
-Provides:       security-privilege-manager-profile_mobile = %{version}-%{release}
-Requires:       security-privilege-manager = %{version}-%{release}
-Conflicts:      security-privliege-manager-extension-wearable
-Conflicts:      security-privliege-manager-extension-tv
-Conflicts:      security-privilege-manager-extension-iot
+Summary:    Privilege Manager API extension for Tizen Mobile profile
+Provides:   security-privilege-manager-profile_mobile = %{version}-%{release}
+Requires:   security-privilege-manager = %{version}-%{release}
+Conflicts:  security-privliege-manager-extension-wearable
+Conflicts:  security-privliege-manager-extension-tv
+Conflicts:  security-privilege-manager-extension-iot
+
 %description -n security-privilege-manager-extension-mobile
-The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen Mobile profile, which requires security-profile-manger to be installed before this.
+The Privilege Manager API provides functions to verify privilege information of packages to be installed.
+This is an extension for privilege manager for Tizen Mobile profile,
+which requires security-profile-manger to be installed before this.
 
 %package -n security-privilege-manager-extension-tv
-Summary:        Privilege Manager API extension for Tizen TV profile
-Provides:       security-privilege-manager-profile_tv = %{version}-%{release}
-Requires:       security-privilege-manager = %{version}-%{release}
-Conflicts:      security-privliege-manager-extension-wearable
-Conflicts:      security-privliege-manager-extension-mobile
-Conflicts:      security-privilege-manager-extension-iot
+Summary:    Privilege Manager API extension for Tizen TV profile
+Provides:   security-privilege-manager-profile_tv = %{version}-%{release}
+Requires:   security-privilege-manager = %{version}-%{release}
+Conflicts:  security-privliege-manager-extension-wearable
+Conflicts:  security-privliege-manager-extension-mobile
+Conflicts:  security-privilege-manager-extension-iot
+
 %description -n security-privilege-manager-extension-tv
-The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen TV profile, which requires security-profile-manger to be installed before this.
+The Privilege Manager API provides functions to verify privilege information of packages to be installed.
+This is an extension for privilege manager for Tizen TV profile,
+which requires security-profile-manger to be installed before this.
 
 %package -n security-privilege-manager-extension-wearable
-Summary:        Privilege Manager API extension for Tizen Wearable profile
-Provides:       security-privilege-manager-profile_wearable = %{version}-%{release}
-Requires:       security-privilege-manager = %{version}-%{release}
-Conflicts:      security-privliege-manager-extension-tv
-Conflicts:      security-privliege-manager-extension-mobile
-Conflicts:      security-privilege-manager-extension-iot
+Summary:    Privilege Manager API extension for Tizen Wearable profile
+Provides:   security-privilege-manager-profile_wearable = %{version}-%{release}
+Requires:   security-privilege-manager = %{version}-%{release}
+Conflicts:  security-privliege-manager-extension-tv
+Conflicts:  security-privliege-manager-extension-mobile
+Conflicts:  security-privilege-manager-extension-iot
+
 %description -n security-privilege-manager-extension-wearable
-The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen Wearable profile, which requires security-profile-manger to be installed before this.
+The Privilege Manager API provides functions to verify privilege information of packages to be installed.
+This is an extension for privilege manager for Tizen Wearable profile,
+which requires security-profile-manger to be installed before this.
 
 %package -n security-privilege-manager-extension-iot
-Summary:        Privilege Manager API extension for Tizen IoT profile
-Provides:       security-privilege-manager-profile_iot = %{version}-%{release}
-Requires:       security-privilege-manager = %{version}-%{release}
-Conflicts:      security-privilege-manager-extension-tv
-Conflicts:      security-privilege-manager-extension-mobile
-Conflicts:      security-privilege-manager-extension-wearable
+Summary:    Privilege Manager API extension for Tizen IoT profile
+Provides:   security-privilege-manager-profile_iot = %{version}-%{release}
+Requires:   security-privilege-manager = %{version}-%{release}
+Conflicts:  security-privilege-manager-extension-tv
+Conflicts:  security-privilege-manager-extension-mobile
+Conflicts:  security-privilege-manager-extension-wearable
+
 %description -n security-privilege-manager-extension-iot
-The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen IoT profile, which requires security-profile-manger to be installed before this.
+The Privilege Manager API provides functions to verify privilege information of packages to be installed.
+This is an extension for privilege manager for Tizen IoT profile,
+which requires security-profile-manger to be installed before this.
 
-%package  -n security-privilege-manager-devel
-Summary:  Privilege Manager API (Development)
-Requires: security-privilege-manager
+%package -n security-privilege-manager-devel
+Summary:    Privilege Manager API (Development)
+Requires:   security-privilege-manager = %{version}-%{release}
 
 %description -n security-privilege-manager-devel
-The Privilege Manager API provides functions to verify privilege information of packages to be installed.(DEV)
+The Privilege Manager API provides functions to verify privilege information of packages to be installed.
 
-%package  -n tc-privilege-checker
-Summary:  Internal TC for privilege-checker
+%package -n security-privilege-manager-tests
+Summary:    Internal TC for privilege-checker
 
-%description -n tc-privilege-checker
+%description -n security-privilege-manager-tests
 Internal TC for privilege-checker APIs
 
 %package -n privilege-verifier
 Summary:    Privilege Verification Utility
 BuildRequires: pkgconfig(sqlite3)
-BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(iniparser)
 
 %description -n privilege-verifier
 The Privilege Verifier Utility provides functions to verify privilege information of packages to be installed.
@@ -113,36 +113,7 @@ The Privilege Verifier Utility provides functions to verify privilege informatio
 cp %{SOURCE1000} .
 
 %build
-%if "%{asan}" == "1"
-%restore_fcommon
-%endif
-
-export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE "
-export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE "
-%if %{?build_type} == "DEBUG"
-export CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
-%endif
-export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
-
-echo cmake . -DPREFIX=%{_prefix} \
-        -DEXEC_PREFIX=%{_exec_prefix} \
-        -DLIBDIR=%{_libdir} \
-        -DINCLUDEDIR=%{_includedir} \
-        -DCMAKE_BUILD_TYPE=%{build_type} \
-        -DVERSION=%{version} \
-        -DDPL_LOG="ON" \
-        -DDATADIR=%{_datadir} \
-        -DTZ_SYS_DB=%TZ_SYS_DB \
-        -DTZ_SYS_SHARE=%TZ_SYS_SHARE
-
-cmake . -DPREFIX=%{_prefix} \
-        -DEXEC_PREFIX=%{_exec_prefix} \
-        -DLIBDIR=%{_libdir} \
-        -DINCLUDEDIR=%{_includedir} \
-        -DCMAKE_BUILD_TYPE=%{build_type} \
-        -DVERSION=%{version} \
-        -DDPL_LOG="ON" \
-        -DDATADIR=%{_datadir} \
+%cmake . -DCMAKE_BUILD_TYPE=%{build_type} \
         -DTZ_SYS_DB=%TZ_SYS_DB \
         -DTZ_SYS_SHARE=%TZ_SYS_SHARE
 
@@ -150,10 +121,8 @@ make %{?jobs:-j%jobs}
 
 %install
 rm -rf %{buildroot}
-%if "%{?build_type}" != "NO_DB"
 mkdir -p %{buildroot}%{_datadir}/privilege-manager
 mkdir -p %{buildroot}/%{TZ_SYS_DB}
-%endif
 %make_install
 
 mkdir -p %{buildroot}%{_sysconfdir}
@@ -163,30 +132,27 @@ sed "s|@PROFILE@|wearable|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/p
 sed "s|@PROFILE@|mobile|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.mobile
 sed "s|@PROFILE@|iot|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.iot
 
-%if "%{?build_type}" != "NO_DB"
 mv %{buildroot}%{_datadir}/privilege-manager/.privilege.mobile.db %{buildroot}%{_datadir}/privilege-manager/.privilege.db
-%endif
+
+%clean
+rm -rf %{buildroot}
 
 %post -n security-privilege-manager
 /sbin/ldconfig
-%if "%{?build_type}" != "NO_DB"
 chsmack -a System %{TZ_SYS_DB}/.policy.db
 chsmack -a System %{TZ_SYS_DB}/.policy.db-journal
 chsmack -a System::Shared %{TZ_SYS_DB}/.privacy.db
 chsmack -a System::Shared %{TZ_SYS_DB}/.privacy.db-journal
-%endif
 %{_datadir}/privilege-manager/policy_db_updater.sh
 
-%postun -n security-privilege-manager -p /sbin/ldconfig
-
-%files -n privilege-checker
-%manifest packaging/privilege-checker.manifest
-%license LICENSE.APLv2
+%postun -n security-privilege-manager
+/sbin/ldconfig
 
 %files -n security-privilege-manager
+%license LICENSE.APLv2
+%manifest packaging/security-privilege-manager.manifest
 %{_libdir}/libsecurity-privilege-manager.so*
 %{_datadir}/locale/*
-%if "%{?build_type}" != "NO_DB"
 %{_datadir}/privilege-manager/.privilege.db
 %attr(700,root,root) %{_datadir}/privilege-manager/policy_db_updater.sh
 %attr(700,root,root) %{_bindir}/privilege-db-update
@@ -194,9 +160,6 @@ chsmack -a System::Shared %{TZ_SYS_DB}/.privacy.db-journal
 %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db-journal
 %config(noreplace) %attr(0664, root, app_fw) /%{TZ_SYS_DB}/.privacy.db
 %config(noreplace) %attr(0664, root, app_fw) /%{TZ_SYS_DB}/.privacy.db-journal
-%endif
-%manifest packaging/security-privilege-manager.manifest
-%license LICENSE.APLv2
 %{_sysconfdir}/privilege-checker.ini
 
 %post -n security-privilege-manager-extension-mobile
@@ -204,60 +167,46 @@ mv %{_sysconfdir}/privilege-checker.ini.mobile %{_sysconfdir}/privilege-checker.
 
 %files -n security-privilege-manager-extension-mobile
 %license LICENSE.APLv2
+%manifest packaging/security-privilege-manager.manifest
 %{_sysconfdir}/privilege-checker.ini.mobile
 
 %post -n security-privilege-manager-extension-tv
-%if "%{?build_type}" != "NO_DB"
 mv %{_datadir}/privilege-manager/.privilege.tv.db %{_datadir}/privilege-manager/.privilege.db
-%endif
 mv %{_sysconfdir}/privilege-checker.ini.tv %{_sysconfdir}/privilege-checker.ini
 
 %files -n security-privilege-manager-extension-tv
-%if "%{?build_type}" != "NO_DB"
-%{_datadir}/privilege-manager/.privilege.tv.db
-%endif
-%manifest packaging/security-privilege-manager.manifest
 %license LICENSE.APLv2
+%manifest packaging/security-privilege-manager.manifest
+%{_datadir}/privilege-manager/.privilege.tv.db
 %{_sysconfdir}/privilege-checker.ini.tv
 
 %post -n security-privilege-manager-extension-wearable
-%if "%{?build_type}" != "NO_DB"
 mv %{_datadir}/privilege-manager/.privilege.wearable.db %{_datadir}/privilege-manager/.privilege.db
-%endif
 mv %{_sysconfdir}/privilege-checker.ini.wearable %{_sysconfdir}/privilege-checker.ini
 
 %files -n security-privilege-manager-extension-wearable
-%if "%{?build_type}" != "NO_DB"
-%{_datadir}/privilege-manager/.privilege.wearable.db
-%endif
-%manifest packaging/security-privilege-manager.manifest
 %license LICENSE.APLv2
+%manifest packaging/security-privilege-manager.manifest
+%{_datadir}/privilege-manager/.privilege.wearable.db
 %{_sysconfdir}/privilege-checker.ini.wearable
 
 %post -n security-privilege-manager-extension-iot
-%if "%{?build_type}" != "NO_DB"
 mv %{_datadir}/privilege-manager/.privilege.iot.db %{_datadir}/privilege-manager/.privilege.db
-%endif
 mv %{_sysconfdir}/privilege-checker.ini.iot %{_sysconfdir}/privilege-checker.ini
 
 %files -n security-privilege-manager-extension-iot
-%if "%{?build_type}" != "NO_DB"
-%{_datadir}/privilege-manager/.privilege.iot.db
-%endif
-%manifest packaging/security-privilege-manager.manifest
 %license LICENSE.APLv2
+%manifest packaging/security-privilege-manager.manifest
+%{_datadir}/privilege-manager/.privilege.iot.db
 %{_sysconfdir}/privilege-checker.ini.iot
 
 %files -n security-privilege-manager-devel
 %{_includedir}/privilegemgr/*.h
 %{_libdir}/pkgconfig/security-privilege-manager.pc
 
-%files -n tc-privilege-checker
-%{_bindir}/tc-privilege-checker
+%files -n security-privilege-manager-tests
+%{_bindir}/privilege-checker-tests
 
 %files -n privilege-verifier
 %license LICENSE.APLv2
 %{_bindir}/privilege-verifier
-
-%clean
-rm -rf %{buildroot}
index 23d6d93..8b1d903 100644 (file)
@@ -1,37 +1,23 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(PACKAGE_NAME tc-privilege-checker)
-PROJECT(${PACKAGE_NAME})
+SET(TARGET_TESTS "privilege-checker-tests")
 
-SET(TC_SRCS
-    privilege-checker.c
-    tc-common.c
-    tc-privilege-package-info.c
-    tc-privilege-manager.c
-    tc-privilege-black-list.c
-    tc-privilege-db-manager.c
-    tc-privilege-info.c)
+ADD_DEFINITIONS(-D__TIZEN__)
 
-ADD_DEFINITIONS(-DASKUSER_RUNTIME_DISABLE_PATH="${TZ_SYS_SHARE}/askuser_disable")
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/capi/include)
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/test)
 
-SET(requires glib-2.0 dlog iniparser)
-INCLUDE(FindPkgConfig)
-pkg_check_modules(${PACKAGE_NAME} REQUIRED ${requires})
-FOREACH(flag ${${PACKAGE_NAME}_CFLAGS})
-    SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-# Compiler flags
-SET(EXTRA_CXXFLAGS "${EXTRA_CFLAGS} -fPIC")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIC -fvisibility=hidden -D_WITH_SYSTEMD_")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${PACKAGE_NAME_CFLAGS}")
-
-ADD_EXECUTABLE(${PACKAGE_NAME} ${TC_SRCS})
-
-TARGET_LINK_LIBRARIES(${PACKAGE_NAME} "security-privilege-manager")
-
-INSTALL(TARGETS ${PACKAGE_NAME} DESTINATION /usr/bin)
+SET(TEST_SRCS
+       privilege-checker.c
+       tc-common.c
+       tc-privilege-package-info.c
+       tc-privilege-manager.c
+       tc-privilege-black-list.c
+       tc-privilege-db-manager.c
+       tc-privilege-info.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_info.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_package_info.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_manager.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_db_manager.c)
+
+ADD_EXECUTABLE(${TARGET_TESTS} ${TEST_SRCS})
+TARGET_LINK_LIBRARIES(${TARGET_TESTS} ${PRIVILEGE_CHECKER_DEPS_LIBRARIES})
+
+INSTALL(TARGETS ${TARGET_TESTS} RUNTIME)
index 8cae7a3..07ca347 100644 (file)
@@ -1,31 +1,17 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(PACKAGE_NAME privilege-verifier)
-PROJECT(${PACKAGE_NAME})
+SET(TARGET_TOOL "privilege-verifier")
 
-SET(PRIVILEGE_VERIFIER_SRCS
-       ${PACKAGE_NAME}.c
-       ${CMAKE_SOURCE_DIR}/capi/src/privilege_manager.c
-       ${CMAKE_SOURCE_DIR}/capi/src/privilege_db_manager.c
-)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/capi/include)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(${PACKAGE_NAME} REQUIRED glib-2.0 sqlite3 iniparser)
-FOREACH(flag ${${PACKAGE_NAME}_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
+PKG_CHECK_MODULES(TOOL_DEPS REQUIRED glib-2.0 sqlite3 iniparser)
 
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIE -fvisibility=hidden -static-libgcc -static-libstdc++")
+INCLUDE_DIRECTORIES(SYSTEM ${TOOL_DEPS_INCLUDE_DIRS})
+LINK_DIRECTORIES(${TOOL_DEPS_LIBRARY_DIRS})
 
-ADD_DEFINITIONS(-DPRIVILEGE_DB_PATH="privilege.db")
-ADD_DEFINITIONS(-DPRIVILEGE_POLICY_DB_PATH="policy.db")
-ADD_DEFINITIONS(-DPRIVILEGE_PRIVACY_DB_PATH="${TZ_SYS_DB}/.privacy.db")
-ADD_DEFINITIONS(-DASKUSER_RUNTIME_DISABLE_PATH="${TZ_SYS_SHARE}/askuser_disable")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc")
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-
-ADD_EXECUTABLE(${PACKAGE_NAME} ${PRIVILEGE_VERIFIER_SRCS})
-TARGET_LINK_LIBRARIES(${PACKAGE_NAME} ${${PACKAGE_NAME}_LDFLAGS})
+ADD_EXECUTABLE(${TARGET_TOOL}
+       privilege-verifier.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_manager.c
+       ${CMAKE_SOURCE_DIR}/capi/src/privilege_db_manager.c)
 
-INSTALL(TARGETS ${PACKAGE_NAME} DESTINATION /usr/bin)
+TARGET_LINK_LIBRARIES(${TARGET_TOOL} ${TOOL_DEPS_LIBRARIES})
 
+INSTALL(TARGETS ${TARGET_TOOL} RUNTIME)