tizen: Add additional unit for "unified" user session
[platform/core/security/pubkey-pinning.git] / packaging / pubkey-pinning.spec
1 %define pubkey_pinning_test_build 0
2
3 Name:       pubkey-pinning
4 Summary:    Https Public Key Pinning for Tizen platform
5 Version:    0.0.9
6 Release:    0
7 Group:      Security/Libraries
8 License:    Apache-2.0 and BSD-3-Clause and MPL-1.1
9 Source0:    %name-%version.tar.gz
10 Source1:    %name.manifest
11 BuildRequires: cmake
12 BuildRequires: pkgconfig(dlog)
13 BuildRequires: pkgconfig(libcurl)
14 BuildRequires: pkgconfig(openssl)
15 Requires: /sbin/ldconfig
16
17 %description
18 Https Public Key Pinning for Tizen platform system framework.
19
20 %package deprecated
21 Summary:  Https Public Key Pinning for Tizen platform system framework with cxx03 abi
22 Provides:  %{name}-deprecated = %{version}-%{release}
23
24 %description deprecated
25 Https Public Key Pinning for Tizen platform system framework with cxx03 abi
26
27 %package devel-deprecated
28 Summary:  Tizen HPKP library development files with cxx03 abi
29 Group:    Development/Libraries
30 Requires: %{name}-deprecated = %version-%release
31
32 %description devel-deprecated
33 Tizen HPKP library development files with cxx03 abi including headers and
34 pkgconfig.
35
36 %package devel
37 Summary:  Tizen HPKP library development files
38 Group:    Development/Libraries
39 Requires: %name = %version-%release
40
41 %description devel
42 Tizen HPKP library development files including headers and
43 pkgconfig.
44
45 %package ui
46 Summary: Tizen HPKP ui daemon
47 Group:   Development/Libraries
48 BuildRequires: pkgconfig(elementary)
49 BuildRequires: pkgconfig(libsystemd-daemon)
50 BuildRequires: pkgconfig(vconf)
51 BuildRequires: pkgconfig(dlog)
52 BuildRequires: gettext-tools
53 Requires: /usr/bin/systemctl
54 Requires: %name = %version-%release
55 %{?systemd_requires}
56
57 %description ui
58 Tizen HPKP ui daemon package.
59
60 %if 0%{?pubkey_pinning_test_build}
61 %package test
62 Summary:  Tizen HPKP library internal test
63 Group:    Security/Testing
64 BuildRequires: boost-devel
65 Requires: %name = %version-%release
66
67 %description test
68 Tizen HPKP library internal test with boost test framework.
69 %endif
70
71 %prep
72 %setup -q
73 cp %SOURCE1 .
74
75 %build
76 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
77 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
78 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
79
80 export LDFLAGS+="-Wl,--rpath=%_prefix/lib"
81
82 %global sock_path /tmp/.pubkey-pinning-popup.sock
83
84 %{!?build_type:%define build_type "Release"}
85 %cmake . -DCMAKE_INSTALL_PREFIX=%_prefix \
86         -DVERSION=%version               \
87         -DINCLUDEDIR=%_includedir        \
88         -DSOCK_PATH=%sock_path           \
89         -DCMAKE_BUILD_TYPE=%build_type   \
90 %if 0%{?pubkey_pinning_test_build}
91         -DPUBKEY_PINNING_TEST_BUILD=1    \
92 %endif
93         -DCXXABI=cxx11 \
94         -DCMAKE_VERBOSE_MAKEFILE=ON \
95         -DSYSTEMD_UNIT_DIR=%_unitdir_user \
96         -DSYSTEMD_UNIT_SYSTEM_DIR=%_unitdir
97
98 make %{?_smp_mflags}
99
100 %make_install
101
102 #save all we have built for cxx11 abi
103 pushd %{buildroot}%{_libdir}
104 for FILE in libtpkp*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE"; done
105 mv pkgconfig/tpkp-*.pc %{_builddir}/%{name}-%{version}
106 popd
107
108 pushd %{buildroot}%{_bindir}
109 mv tpkp-popup %{_builddir}/%{name}-%{version}
110 %if 0%{?pubkey_pinning_test_build}
111 for FILE in tpkp-internal*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE"; done
112 %endif
113 popd
114
115 pushd %{buildroot}%_unitdir_user/
116 mv %name-popup.* %{_builddir}/%{name}-%{version}
117 popd
118
119 pushd %{buildroot}%_unitdir/
120 mv %name-popup@.* %{_builddir}/%{name}-%{version}
121 popd
122
123 make clean
124
125 %{!?build_type:%define build_type "Release"}
126 %cmake . -DCMAKE_INSTALL_PREFIX=%_prefix \
127         -DVERSION=%version               \
128         -DINCLUDEDIR=%_includedir        \
129         -DSOCK_PATH=%sock_path           \
130         -DCMAKE_BUILD_TYPE=%build_type   \
131 %if 0%{?pubkey_pinning_test_build}
132         -DPUBKEY_PINNING_TEST_BUILD=1    \
133 %endif
134         -DCXXABI=cxx03 \
135         -DCMAKE_VERBOSE_MAKEFILE=ON \
136         -DSYSTEMD_UNIT_DIR=%_unitdir_user \
137         -DSYSTEMD_UNIT_SYSTEM_DIR=%_unitdir
138
139 make %{?_smp_mflags}
140
141 %install
142 %make_install
143 mkdir -p %buildroot%_unitdir_user/sockets.target.wants
144 mkdir -p %buildroot%_unitdir/user-sockets@.target.wants
145 ln -sf ../%name-popup-deprecated.socket %buildroot%_unitdir_user/sockets.target.wants/%name-popup-deprecated.socket
146 ln -sf ../%name-popup-deprecated@.socket %buildroot%_unitdir/user-sockets@.target.wants/%name-popup-deprecated@.socket
147 %find_lang pubkey-pinning
148
149 #move all we have build for cxx11 abi
150 pushd %{_builddir}/%{name}-%{version}
151 for FILE in libtpkp*.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
152 %if 0%{?pubkey_pinning_test_build}
153 for FILE in tpkp-internal*; do mv "$FILE" "%{buildroot}%{_bindir}/$FILE"; done
154 %endif
155 mv tpkp-popup %{buildroot}%{_bindir}
156 mv %name-popup.socket  %{buildroot}%_unitdir_user
157 mv %name-popup.service  %{buildroot}%_unitdir_user
158 mv %name-popup@.socket  %{buildroot}%_unitdir
159 mv %name-popup@.service  %{buildroot}%_unitdir
160 mv tpkp*.pc %{buildroot}%{_libdir}/pkgconfig/
161 ln -sf %_unitdir_user/%name-popup.socket %buildroot%_unitdir_user/sockets.target.wants/%name-popup.socket
162 ln -sf %_unitdir/%name-popup@.socket %buildroot%_unitdir/user-sockets@.target.wants/%name-popup@.socket
163 popd
164
165 %post
166 /sbin/ldconfig
167
168 %post ui
169 /sbin/ldconfig
170 systemctl daemon-reload
171 if [ $1 == 1 ]; then
172     systemctl start %name-popup.socket
173 fi
174
175 if [ $1 == 2 ]; then
176     systemctl restart %name-popup.socket
177 fi
178
179 %preun ui
180 if [ $1 == 0 ]; then
181     systemctl stop %name-popup.service
182     systemctl stop %name-popup.socket
183     systemctl disable %name-popup
184 fi
185
186 %postun
187 /sbin/ldconfig
188
189 %postun ui
190 /sbin/ldconfig
191 systemctl daemon-reload
192
193 %post deprecated
194 /sbin/ldconfig
195 systemctl daemon-reload
196 if [ $1 == 1 ]; then
197     systemctl start %name-popup-deprecated.socket
198 fi
199
200 if [ $1 == 2 ]; then
201     systemctl restart %name-popup-deprecated.socket
202 fi
203
204 %preun deprecated
205 if [ $1 == 0 ]; then
206     systemctl stop %name-popup-deprecated.service
207     systemctl stop %name-popup-deprecated.socket
208     systemctl disable %name-popup-deprecated
209 fi
210
211 %postun deprecated
212 /sbin/ldconfig
213 systemctl daemon-reload
214
215 %files deprecated -f pubkey-pinning.lang
216 %manifest pubkey-pinning.manifest
217 %license LICENSE
218 %license LICENSE.BSD-3-Clause
219 %license LICENSE.MPL-1.1
220 %_libdir/libtpkp-common-deprecated.so.*
221 %_libdir/libtpkp-curl-deprecated.so.*
222 %_unitdir_user/%name-popup-deprecated.service
223 %_unitdir_user/%name-popup-deprecated.socket
224 %_unitdir_user/sockets.target.wants/%name-popup-deprecated.socket
225 %_unitdir/%name-popup-deprecated@.service
226 %_unitdir/%name-popup-deprecated@.socket
227 %_unitdir/user-sockets@.target.wants/%name-popup-deprecated@.socket
228 %_bindir/tpkp-popup-deprecated
229
230 %files -f pubkey-pinning.lang
231 %manifest pubkey-pinning.manifest
232 %license LICENSE
233 %license LICENSE.BSD-3-Clause
234 %license LICENSE.MPL-1.1
235 %_libdir/libtpkp-common.so.*
236 %_libdir/libtpkp-curl.so.*
237
238 %files ui -f %name.lang
239 %manifest %name.manifest
240 %license LICENSE
241 %_unitdir_user/%name-popup.service
242 %_unitdir_user/%name-popup.socket
243 %_unitdir_user/sockets.target.wants/%name-popup.socket
244 %_unitdir/%name-popup@.service
245 %_unitdir/%name-popup@.socket
246 %_unitdir/user-sockets@.target.wants/%name-popup@.socket
247 %_bindir/tpkp-popup
248
249 %files devel
250 %_includedir/tpkp/common/tpkp_error.h
251 %_includedir/tpkp/curl/tpkp_curl.h
252 %_libdir/pkgconfig/tpkp-curl.pc
253 %_libdir/libtpkp-common.so
254 %_libdir/libtpkp-curl.so
255
256 %files devel-deprecated
257 %_includedir/tpkp/common/tpkp_error.h
258 %_includedir/tpkp/curl/tpkp_curl.h
259 %_libdir/pkgconfig/tpkp-curl-deprecated.pc
260 %_libdir/libtpkp-common-deprecated.so
261 %_libdir/libtpkp-curl-deprecated.so
262
263 %if 0%{?pubkey_pinning_test_build}
264 %files test
265 %_bindir/tpkp-internal-test
266 %_bindir/tpkp-internal-test-popup
267 %endif