Release version 1.3.1
[platform/core/security/privilege-checker.git] / packaging / privilege-checker.spec
index a2c7f36..2da852e 100644 (file)
+%{!?build_type:%global build_type RELEASE}
+
 Name:    privilege-checker
 Summary: Privilege Management
-Version: 0.0.5
-Release: 3
+Version: 1.3.1
+Release: 0
 Group:   System/Libraries
 License: Apache-2.0
 Source0: %{name}-%{version}.tar.gz
-BuildRequires: cmake
-BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(sqlite3)
-BuildRequires:  pkgconfig(glib-2.0)
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
+Source1000: privilege-checker.ini
 
 %description
-Pakcage for Privilege Management
-
-%package -n privilege-checker-devel
-summary: privilege-checker-devel
-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)
+%if "%{build_type}" == "COVERAGE"
+BuildRequires: lcov
+%endif
+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}
 
 %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-devel
-Summary:  Privilege Manager API (Development)
-Requires: security-privilege-manager
+%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
+
+%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.
+
+%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
+
+%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.
+
+%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
+
+%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.
+
+%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
+
+%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.
+
+%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 security-privilege-manager-tests
+Summary:    Internal TC for privilege-checker
+
+%description -n security-privilege-manager-tests
+Internal TC for privilege-checker APIs
+
+%if "%{build_type}" == "COVERAGE"
+
+%package -n security-privilege-manager-coverage
+Summary: Privilege Checker code coverage data
+Requires: security-privilege-manager-tests = %{version}-%{release}
+Requires: privilege-checker-debugsource = %{version}-%{release}
+Requires: lcov
+Requires: gcc
+
+%description -n security-privilege-manager-coverage
+Privilege Checker code coverage data
+
+%endif
 
-%package  -n tc-privilege-checker
-Summary:  tc-privilege-checker
+%package -n privilege-verifier
+Summary:    Privilege Verification Utility
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(iniparser)
 
-%description -n tc-privilege-checker
-Testsuit for Privilege Manager APIs
+%description -n privilege-verifier
+The Privilege Verifier Utility provides functions to verify privilege information of packages to be installed.
 
 %prep
 %setup -q
+cp %{SOURCE1000} .
 
 %build
 
-%if "%{?profile}" == "tv"
-    __PROFILE_TYPE="TV"
-%else
-%if "%{?profile}" == "wearable"
-    __PROFILE_TYPE="WEARABLE"
-%else
-%if "%{?profile}" == "mobile"
-    __PROFILE_TYPE="MOBILE"
-%endif
-%endif
-%endif
+%global coverage_dir %{_datadir}/privilege-checker-coverage
 
-export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
-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} \
-        -DPROFILE_TYPE="${__PROFILE_TYPE}"
-
-cmake . -DPREFIX=%{_prefix} \
-        -DEXEC_PREFIX=%{_exec_prefix} \
-        -DLIBDIR=%{_libdir} \
-        -DINCLUDEDIR=%{_includedir} \
-        -DCMAKE_BUILD_TYPE=%{build_type} \
-        -DVERSION=%{version} \
-        -DDPL_LOG="ON" \
-        -DDATADIR=%{_datadir} \
-        -DPROFILE_TYPE="${__PROFILE_TYPE}"
+%cmake . -DCMAKE_BUILD_TYPE=%{build_type} \
+        -DTZ_SYS_DB=%TZ_SYS_DB \
+        -DTZ_SYS_SHARE=%TZ_SYS_SHARE \
+        -DCOVERAGE_DIR=%{coverage_dir}
 
 make %{?jobs:-j%jobs}
 
 %install
 rm -rf %{buildroot}
-mkdir -p %{buildroot}%{_datadir}/license
-cp LICENSE.APLv2 %{buildroot}%{_datadir}/license/privilege-checker
-mkdir -p %{buildroot}/opt/dbspace
 mkdir -p %{buildroot}%{_datadir}/privilege-manager
-#%if "%{?profile}" == "tv"
-#cp capi/res/dbspace/tv_wrt_privilege_info.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db "select * from privilege_info"
-#cp capi/res/dbspace/tv_core_privilege_info.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db "select * from privilege_info"
-#cp capi/res/dbspace/tv_wrt_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db "select * from privilege_mapping"
-#cp capi/res/dbspace/tv_core_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db "select * from privilege_mapping"
-#%else
-#cp capi/res/dbspace/core_privilege_info.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db "select * from privilege_info"
-#cp capi/res/dbspace/wrt_privilege_info.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db "select * from privilege_info"
-#cp capi/res/dbspace/core_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db "select * from privilege_mapping"
-#cp capi/res/dbspace/wrt_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db
-#sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db "select * from privilege_mapping"
-#%endif
+mkdir -p %{buildroot}/%{TZ_SYS_DB}
 %make_install
 
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+mkdir -p %{buildroot}%{_sysconfdir}
+sed "s|@PROFILE@|common|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini
+sed "s|@PROFILE@|tv|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.tv
+sed "s|@PROFILE@|wearable|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.wearable
+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
 
-%post -n security-privilege-manager -p /sbin/ldconfig
-%postun -n security-privilege-manager -p /sbin/ldconfig
+mv %{buildroot}%{_datadir}/privilege-manager/.privilege.mobile.db %{buildroot}%{_datadir}/privilege-manager/.privilege.db
 
-%files -n privilege-checker
-%{_datadir}/license/privilege-checker
-%manifest packaging/privilege-checker.manifest
+%clean
+rm -rf %{buildroot}
+
+%post -n security-privilege-manager
+/sbin/ldconfig
+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
+%{_datadir}/privilege-manager/policy_db_updater.sh
+
+%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 "%{?profile}" != "tv"
-%{_datadir}/privilege-manager/.core_privilege_info.db
-%{_datadir}/privilege-manager/.core_privilege_mapping.db
-#%endif
-%{_datadir}/privilege-manager/.wrt_privilege_info.db
-%{_datadir}/privilege-manager/.wrt_privilege_mapping.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
+%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
+%{_sysconfdir}/privilege-checker.ini
+
+%post -n security-privilege-manager-extension-mobile
+mv %{_sysconfdir}/privilege-checker.ini.mobile %{_sysconfdir}/privilege-checker.ini
+
+%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
+mv %{_datadir}/privilege-manager/.privilege.tv.db %{_datadir}/privilege-manager/.privilege.db
+mv %{_sysconfdir}/privilege-checker.ini.tv %{_sysconfdir}/privilege-checker.ini
+
+%files -n security-privilege-manager-extension-tv
+%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
+mv %{_datadir}/privilege-manager/.privilege.wearable.db %{_datadir}/privilege-manager/.privilege.db
+mv %{_sysconfdir}/privilege-checker.ini.wearable %{_sysconfdir}/privilege-checker.ini
+
+%files -n security-privilege-manager-extension-wearable
+%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
+mv %{_datadir}/privilege-manager/.privilege.iot.db %{_datadir}/privilege-manager/.privilege.db
+mv %{_sysconfdir}/privilege-checker.ini.iot %{_sysconfdir}/privilege-checker.ini
+
+%files -n security-privilege-manager-extension-iot
+%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-db-manager
-%{_bindir}/tc-privilege-manager
-%{_bindir}/tc-privilege-info
+%files -n security-privilege-manager-tests
+%{_bindir}/privilege-checker-tests
 
-%clean
-rm -rf %{buildroot}
+%if "%{build_type}" == "COVERAGE"
+
+%files -n security-privilege-manager-coverage
+%{_bindir}/privilege-checker-coverage.sh
+%coverage_dir
+
+%endif
+
+%files -n privilege-verifier
+%license LICENSE.APLv2
+%{_bindir}/privilege-verifier
 
+%files -n privilege-checker
+%license LICENSE.APLv2