Release version 1.0.8
[platform/core/security/privilege-checker.git] / packaging / privilege-checker.spec
1 Name:    privilege-checker
2 Summary: Privilege Management
3 Version: 1.0.8
4 Release: 0
5 Group:   System/Libraries
6 License: Apache-2.0
7 Source0: %{name}-%{version}.tar.gz
8 Source1000: privilege-checker.ini
9 BuildRequires: cmake
10 BuildRequires: pkgconfig(dlog)
11 BuildRequires: pkgconfig(iniparser)
12 Requires(post): /sbin/ldconfig
13 Requires(postun): /sbin/ldconfig
14
15 %if !%{defined build_type}
16 %define build_type RELEASE
17 %endif
18
19 %description
20 Pakcage for Privilege Management
21
22 %package -n privilege-checker-devel
23 summary: Package for Privilege Management (DEV)
24 Group: Development/Libraries
25 Requires: privilege-checker = %{version}-%{release}
26
27 %description -n privilege-checker-devel
28 Package for Privilege Management (DEV)
29
30 %package -n security-privilege-manager
31 Summary:    Privilege Manager API
32 BuildRequires:  cmake
33 BuildRequires:  pkgconfig(dlog)
34 BuildRequires:  gettext-tools
35 BuildRequires:  pkgconfig(pkgmgr-info)
36 BuildRequires:  pkgconfig(glib-2.0)
37 BuildRequires: pkgconfig(sqlite3)
38 BuildRequires: pkgconfig(libtzplatform-config)
39 Requires(post): /sbin/ldconfig
40 Requires(postun): /sbin/ldconfig
41 Provides:       security-privilege-manager-profile_common = %{version}-%{release}
42 Provides:       security-privilege-manager-profile_ivi = %{version}-%{release}
43
44 %description -n security-privilege-manager
45 The Privilege Manager API provides functions to verify privilege information of packages to be installed.
46
47 %package -n security-privilege-manager-extension-mobile
48 Summary:        Privilege Manager API extension for Tizen Mobile profile
49 Provides:       security-privilege-manager-profile_mobile = %{version}-%{release}
50 Requires:       security-privilege-manager = %{version}-%{release}
51 Conflicts:      security-privliege-manager-extension-wearable
52 Conflicts:      security-privliege-manager-extension-tv
53 %description -n security-privilege-manager-extension-mobile
54 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.
55
56 %package -n security-privilege-manager-extension-tv
57 Summary:        Privilege Manager API extension for Tizen TV profile
58 Provides:       security-privilege-manager-profile_tv = %{version}-%{release}
59 Requires:       security-privilege-manager = %{version}-%{release}
60 Conflicts:      security-privliege-manager-extension-wearable
61 Conflicts:      security-privliege-manager-extension-mobile
62 %description -n security-privilege-manager-extension-tv
63 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.
64
65 %package -n security-privilege-manager-extension-wearable
66 Summary:        Privilege Manager API extension for Tizen Wearable profile
67 Provides:       security-privilege-manager-profile_wearable = %{version}-%{release}
68 Requires:       security-privilege-manager = %{version}-%{release}
69 Conflicts:      security-privliege-manager-extension-tv
70 Conflicts:      security-privliege-manager-extension-mobile
71 %description -n security-privilege-manager-extension-wearable
72 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.
73
74 %package  -n security-privilege-manager-devel
75 Summary:  Privilege Manager API (Development)
76 Requires: security-privilege-manager
77
78 %description -n security-privilege-manager-devel
79 The Privilege Manager API provides functions to verify privilege information of packages to be installed.(DEV)
80
81 %package  -n tc-privilege-checker
82 Summary:  Internal TC for privilege-checker
83
84 %description -n tc-privilege-checker
85 Internal TC for privilege-checker APIs
86
87 %package -n privilege-verifier
88 Summary:    Privilege Verification Utility
89 BuildRequires: pkgconfig(sqlite3)
90 BuildRequires:  pkgconfig(glib-2.0)
91
92 %description -n privilege-verifier
93 The Privilege Verifier Utility provides functions to verify privilege information of packages to be installed.
94
95 %prep
96 %setup -q
97 cp %{SOURCE1000} .
98
99 %build
100 %if "%{asan}" == "1"
101 %restore_fcommon
102 %endif
103
104 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE "
105 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE "
106 %if %{?build_type} == "DEBUG"
107 export CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
108 %endif
109 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
110
111 echo cmake . -DPREFIX=%{_prefix} \
112         -DEXEC_PREFIX=%{_exec_prefix} \
113         -DLIBDIR=%{_libdir} \
114         -DINCLUDEDIR=%{_includedir} \
115         -DCMAKE_BUILD_TYPE=%{build_type} \
116         -DVERSION=%{version} \
117         -DDPL_LOG="ON" \
118         -DDATADIR=%{_datadir} \
119         -DTZ_SYS_DB=%TZ_SYS_DB \
120         -DTZ_SYS_SHARE=%TZ_SYS_SHARE
121
122 cmake . -DPREFIX=%{_prefix} \
123         -DEXEC_PREFIX=%{_exec_prefix} \
124         -DLIBDIR=%{_libdir} \
125         -DINCLUDEDIR=%{_includedir} \
126         -DCMAKE_BUILD_TYPE=%{build_type} \
127         -DVERSION=%{version} \
128         -DDPL_LOG="ON" \
129         -DDATADIR=%{_datadir} \
130         -DTZ_SYS_DB=%TZ_SYS_DB \
131         -DTZ_SYS_SHARE=%TZ_SYS_SHARE
132
133 make %{?jobs:-j%jobs}
134
135 %install
136 rm -rf %{buildroot}
137 %if "%{?build_type}" != "NO_DB"
138 mkdir -p %{buildroot}%{_datadir}/privilege-manager
139 mkdir -p %{buildroot}/%{TZ_SYS_DB}
140 %endif
141 %make_install
142
143 mkdir -p %{buildroot}%{_sysconfdir}
144 sed "s|@PROFILE@|common|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini
145 sed "s|@PROFILE@|tv|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.tv
146 sed "s|@PROFILE@|wearable|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.wearable
147 sed "s|@PROFILE@|mobile|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.mobile
148
149 %if "%{?build_type}" != "NO_DB"
150 mv %{buildroot}%{_datadir}/privilege-manager/.privilege.mobile.db %{buildroot}%{_datadir}/privilege-manager/.privilege.db
151 %endif
152
153 %post -n security-privilege-manager
154 /sbin/ldconfig
155 %if "%{?build_type}" != "NO_DB"
156 chsmack -a System %{TZ_SYS_DB}/.policy.db
157 chsmack -a System %{TZ_SYS_DB}/.policy.db-journal
158 chsmack -a System::Shared %{TZ_SYS_DB}/.privacy.db
159 chsmack -a System::Shared %{TZ_SYS_DB}/.privacy.db-journal
160 %endif
161 %{_datadir}/privilege-manager/policy_db_updater.sh
162
163 %postun -n security-privilege-manager -p /sbin/ldconfig
164
165 %files -n privilege-checker
166 %manifest packaging/privilege-checker.manifest
167 %license LICENSE.APLv2
168
169 %files -n security-privilege-manager
170 %{_libdir}/libsecurity-privilege-manager.so*
171 %{_datadir}/locale/*
172 %if "%{?build_type}" != "NO_DB"
173 %{_datadir}/privilege-manager/.privilege.db
174 %attr(700,root,root) %{_datadir}/privilege-manager/policy_db_updater.sh
175 %attr(700,root,root) %{_bindir}/privilege-db-update
176 %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db
177 %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db-journal
178 %config(noreplace) %attr(0664, root, app_fw) /%{TZ_SYS_DB}/.privacy.db
179 %config(noreplace) %attr(0664, root, app_fw) /%{TZ_SYS_DB}/.privacy.db-journal
180 %endif
181 %manifest packaging/security-privilege-manager.manifest
182 %license LICENSE.APLv2
183 %{_sysconfdir}/privilege-checker.ini
184
185 %post -n security-privilege-manager-extension-mobile
186 mv %{_sysconfdir}/privilege-checker.ini.mobile %{_sysconfdir}/privilege-checker.ini
187
188 %files -n security-privilege-manager-extension-mobile
189 %license LICENSE.APLv2
190 %{_sysconfdir}/privilege-checker.ini.mobile
191
192 %post -n security-privilege-manager-extension-tv
193 %if "%{?build_type}" != "NO_DB"
194 mv %{_datadir}/privilege-manager/.privilege.tv.db %{_datadir}/privilege-manager/.privilege.db
195 %endif
196 mv %{_sysconfdir}/privilege-checker.ini.tv %{_sysconfdir}/privilege-checker.ini
197
198 %files -n security-privilege-manager-extension-tv
199 %if "%{?build_type}" != "NO_DB"
200 %{_datadir}/privilege-manager/.privilege.tv.db
201 %endif
202 %manifest packaging/security-privilege-manager.manifest
203 %license LICENSE.APLv2
204 %{_sysconfdir}/privilege-checker.ini.tv
205
206 %post -n security-privilege-manager-extension-wearable
207 %if "%{?build_type}" != "NO_DB"
208 mv %{_datadir}/privilege-manager/.privilege.wearable.db %{_datadir}/privilege-manager/.privilege.db
209 %endif
210 mv %{_sysconfdir}/privilege-checker.ini.wearable %{_sysconfdir}/privilege-checker.ini
211
212 %files -n security-privilege-manager-extension-wearable
213 %if "%{?build_type}" != "NO_DB"
214 %{_datadir}/privilege-manager/.privilege.wearable.db
215 %endif
216 %manifest packaging/security-privilege-manager.manifest
217 %license LICENSE.APLv2
218 %{_sysconfdir}/privilege-checker.ini.wearable
219
220 %files -n security-privilege-manager-devel
221 %{_includedir}/privilegemgr/*.h
222 %{_libdir}/pkgconfig/security-privilege-manager.pc
223
224 %files -n tc-privilege-checker
225 %{_bindir}/tc-privilege-db-manager
226 %{_bindir}/tc-privilege-manager
227 %{_bindir}/tc-privilege-info
228 %{_bindir}/tc-privilege-black-list
229 %{_bindir}/tc-privilege-package-info
230
231 %files -n privilege-verifier
232 %license LICENSE.APLv2
233 %{_bindir}/privilege-verifier
234
235 %clean
236 rm -rf %{buildroot}
237