4dbd9ae9d2262b1469cb9ed770e69522c778653b
[platform/core/security/cert-svc.git] / packaging / cert-svc.spec
1 %define certsvc_test_build 0
2
3 Name:    cert-svc
4 Summary: Certification service
5 Version: 1.0.1
6 Release: 45
7 Group:   Security/Libraries
8 License: Apache-2.0
9 Source0: %{name}-%{version}.tar.gz
10 Source1001: %{name}.manifest
11 Requires(post): findutils
12 BuildRequires: cmake
13 BuildRequires: pkgconfig(dlog)
14 BuildRequires: pkgconfig(openssl)
15 BuildRequires: pkgconfig(libpcrecpp)
16 BuildRequires: pkgconfig(xmlsec1)
17 BuildRequires: pkgconfig(libxml-2.0)
18 BuildRequires: pkgconfig(libxslt)
19 BuildRequires: pkgconfig(icu-i18n)
20 BuildRequires: pkgconfig(libsoup-2.4)
21 BuildRequires: pkgconfig(db-util)
22 BuildRequires: pkgconfig(libsystemd-daemon)
23 BuildRequires: pkgconfig(key-manager)
24 BuildRequires: pkgconfig(libtzplatform-config)
25 BuildRequires: pkgconfig(libsystemd-journal)
26 BuildRequires: boost-devel
27 Requires: pkgconfig(libtzplatform-config)
28 Requires: ca-certificates-tizen
29 Requires: ca-certificates-mozilla
30 Requires: ca-certificates
31 Requires: openssl
32
33 %description
34 Certification service
35
36 %package devel
37 Summary:    Certification service (development files)
38 Group:      Development/Libraries
39 Requires:   %{name} = %{version}-%{release}
40
41 %description devel
42 Certification service (development files)
43
44 %if 0%{?certsvc_test_build}
45 %package test
46 Summary:  Certification service (tests)
47 Group:    Security/Testing
48 BuildRequires: pkgconfig(dpl-test-efl)
49 Requires: boost-devel
50 Requires: ca-certificates-tizen
51 Requires: %{name} = %{version}-%{release}
52
53 %description test
54 Certification service (tests)
55 %endif
56
57 %prep
58 %setup -q
59 cp -a %{SOURCE1001} .
60
61 %build
62 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
63 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
64 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
65
66 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
67 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
68 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
69
70 %ifarch %{ix86}
71 export CFLAGS="$CFLAGS -DTIZEN_EMULATOR_MODE"
72 export CXXFLAGS="$CXXFLAGS -DTIZEN_EMULATOR_MODE"
73 export FFLAGS="$FFLAGS -DTIZEN_EMULATOR_MODE"
74 %endif
75
76 %{!?build_type:%define build_type "Release"}
77 cmake . -DPREFIX=%{_prefix} \
78         -DEXEC_PREFIX=%{_exec_prefix} \
79         -DLIBDIR=%{_libdir} \
80         -DBINDIR=%{_bindir} \
81         -DINCLUDEDIR=%{_includedir} \
82         -DTZ_SYS_SHARE=%TZ_SYS_SHARE \
83         -DTZ_SYS_BIN=%TZ_SYS_BIN \
84         -DTZ_SYS_ETC=%TZ_SYS_ETC \
85         -DTZ_SYS_RO_WRT_ENGINE=%TZ_SYS_RO_WRT_ENGINE \
86         -DTZ_SYS_DB=%TZ_SYS_DB \
87 %if 0%{?certsvc_test_build}
88         -DCERTSVC_TEST_BUILD=1 \
89         -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
90 %endif
91         -DCMAKE_BUILD_TYPE=%{build_type} \
92         -DSYSTEMD_UNIT_DIR=%{_unitdir}
93
94 make %{?jobs:-j%jobs}
95
96 %install
97 rm -rf %{buildroot}
98 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/license
99 cp LICENSE %{buildroot}%{TZ_SYS_SHARE}/license/%{name}
100
101 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/certs/user
102 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/certs/trusteduser
103 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/pkcs12
104 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/dbspace
105
106 %make_install
107 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
108 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
109 ln -s ../cert-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/
110 ln -s ../cert-server.socket %{buildroot}%{_unitdir}/sockets.target.wants/
111
112 ln -sf %{TZ_SYS_ETC}/ssl/certs %{buildroot}%{TZ_SYS_SHARE}/cert-svc/certs/ssl
113
114 %clean
115 rm -rf %{buildroot}
116
117 %preun
118 if [ $1 == 0 ]; then
119     systemctl stop cert-server.service
120 fi
121
122 %post
123 /sbin/ldconfig
124 systemctl daemon-reload
125 if [ $1 == 1 ]; then
126     systemctl restart cert-server.service
127 fi
128
129 echo "make ca-certificate.crt"
130 %{TZ_SYS_BIN}/make-ca-certificate.sh
131 rm %{TZ_SYS_BIN}/make-ca-certificate.sh
132
133 echo "create certs-meta.db"
134 rm -rf %{TZ_SYS_SHARE}/cert-svc/dbspace/certs-meta.db
135 %{TZ_SYS_BIN}/cert_svc_create_clean_store_db.sh %{TZ_SYS_SHARE}/cert-svc/cert_svc_store_db.sql
136 %{TZ_SYS_BIN}/initialize_store_db.sh
137 if [[ -e %{TZ_SYS_SHARE}/cert-svc/dbspace/certs-meta.db ]]; then
138     cat %{TZ_SYS_SHARE}/cert-svc/root-cert.sql | sqlite3 %{TZ_SYS_SHARE}/cert-svc/dbspace/certs-meta.db
139 fi
140 rm %{TZ_SYS_SHARE}/cert-svc/cert_svc_store_db.sql
141 rm %{TZ_SYS_SHARE}/cert-svc/root-cert.sql
142 rm %{TZ_SYS_BIN}/cert_svc_create_clean_store_db.sh
143 rm %{TZ_SYS_BIN}/initialize_store_db.sh
144
145 %postun
146 /sbin/ldconfig
147
148 %files
149 %defattr(644,system,system,755)
150 %manifest %{name}.manifest
151 # Read only files install as root
152 %attr(755,root,root) %{TZ_SYS_BIN}/cert-server
153 %attr(644,root,root) %{_unitdir}/cert-server.service
154 %attr(644,root,root) %{_unitdir}/cert-server.socket
155 %attr(777,root,root) %{_unitdir}/multi-user.target.wants/cert-server.service
156 %attr(777,root,root) %{_unitdir}/sockets.target.wants/cert-server.socket
157 %attr(755,root,root) %{_libdir}/libcert-svc.so.*
158 %attr(755,root,root) %{_libdir}/libcert-svc-vcore.so.*
159 %attr(644,root,root) %{TZ_SYS_SHARE}/license/%{name}
160 %attr(644,root,root) %{TZ_SYS_RO_WRT_ENGINE}/schema.xsd
161 %attr(644,root,root) %{TZ_SYS_SHARE}/cert-svc/cert_svc_store_db.sql
162 %attr(755,root,root) %{TZ_SYS_BIN}/cert_svc_create_clean_store_db.sh
163 %attr(755,root,root) %{TZ_SYS_BIN}/make-ca-certificate.sh
164 %attr(755,root,root) %{TZ_SYS_BIN}/initialize_store_db.sh
165
166 # Resource files install as system
167 %{TZ_SYS_SHARE}/cert-svc/certs/user
168 %{TZ_SYS_SHARE}/cert-svc/certs/trusteduser
169 %{TZ_SYS_SHARE}/cert-svc/pkcs12
170 %{TZ_SYS_SHARE}/cert-svc/dbspace
171 %{TZ_SYS_SHARE}/cert-svc/certs/ssl
172
173
174 %files devel
175 %defattr(-,root,root,-)
176 %{_includedir}/*
177 %{_libdir}/pkgconfig/*
178 %{_libdir}/libcert-svc.so
179 %{_libdir}/libcert-svc-vcore.so
180
181 %if 0%{?certsvc_test_build}
182 %files test
183 %defattr(644,system,system,755)
184 %attr(755,root,root) %{TZ_SYS_BIN}/cert-svc-test*
185 %{TZ_SYS_RO_APP}/widget/tests/vcore_widget_uncompressed/*
186 %{TZ_SYS_RO_APP}/widget/tests/vcore_widget_uncompressed_negative_hash/*
187 %{TZ_SYS_RO_APP}/widget/tests/vcore_widget_uncompressed_negative_signature/*
188 %{TZ_SYS_RO_APP}/widget/tests/vcore_widget_uncompressed_negative_certificate/*
189 %{TZ_SYS_RO_APP}/widget/tests/vcore_widget_uncompressed_partner/*
190 %{TZ_SYS_RO_APP}/widget/tests/vcore_widget_uncompressed_partner_operator/*
191 %{TZ_SYS_RO_APP}/widget/tests/vcore_keys/*
192 %{TZ_SYS_RO_APP}/widget/tests/vcore_certs/*
193 %{TZ_SYS_RO_APP}/widget/tests/vcore_config/*
194 %{TZ_SYS_RO_APP}/widget/tests/pkcs12/*
195 %{TZ_SYS_RO_APP}/widget/tests/reference/*
196 %{TZ_SYS_ETC}/ssl/certs/8956b9bc.0
197 %{TZ_SYS_SHARE}/ca-certificates/wac/root_cacert0.pem
198 %{TZ_SYS_SHARE}/cert-svc/pkcs12/*
199 %{TZ_SYS_SHARE}/cert-svc/cert-type/*
200 %{TZ_SYS_SHARE}/cert-svc/tests/orig_c/data/caflag/*
201 %{TZ_SYS_SHARE}/cert-svc/certs/root_ca*.der
202 %{TZ_SYS_SHARE}/cert-svc/tests/*
203 %endif