-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)
+%{!?build_type:%global build_type RELEASE}
+
Name: privilege-checker
Summary: Privilege Management
Version: 1.2.9
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.
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
%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}
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
%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
%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}