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