Add trusted cert storage when search certificate
[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(db-util)
20 BuildRequires: pkgconfig(libsystemd-daemon)
21 BuildRequires: pkgconfig(key-manager)
22 BuildRequires: pkgconfig(libtzplatform-config)
23 BuildRequires: pkgconfig(libsystemd-journal)
24 Requires: pkgconfig(libtzplatform-config)
25 Requires: ca-certificates-tizen
26 Requires: ca-certificates-mozilla
27 Requires: ca-certificates
28 Requires: openssl
29
30 %description
31 Certification service
32
33 %package devel
34 Summary:    Certification service (development files)
35 Group:      Development/Libraries
36 Requires:   %{name} = %{version}-%{release}
37
38 %description devel
39 Certification service (development files)
40
41 %if 0%{?certsvc_test_build}
42 %package test
43 Summary:  Certification service (tests)
44 Group:    Security/Testing
45 Requires: ca-certificates-tizen
46 Requires: %{name} = %{version}-%{release}
47
48 %description test
49 Certification service (tests)
50 %endif
51
52 %prep
53 %setup -q
54 cp -a %{SOURCE1001} .
55
56 %build
57 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
58 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
59 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
60
61 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
62 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
63 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
64
65 %ifarch %{ix86}
66 export CFLAGS="$CFLAGS -DTIZEN_EMULATOR_MODE"
67 export CXXFLAGS="$CXXFLAGS -DTIZEN_EMULATOR_MODE"
68 export FFLAGS="$FFLAGS -DTIZEN_EMULATOR_MODE"
69 %endif
70
71 %{!?build_type:%define build_type "Release"}
72 cmake . -DPREFIX=%{_prefix} \
73         -DEXEC_PREFIX=%{_exec_prefix} \
74         -DLIBDIR=%{_libdir} \
75         -DINCLUDEDIR=%{_includedir} \
76         -DTZ_SYS_SHARE=%TZ_SYS_SHARE \
77         -DTZ_SYS_BIN=%TZ_SYS_BIN \
78         -DTZ_SYS_ETC=%TZ_SYS_ETC \
79         -DTZ_SYS_RO_WRT_ENGINE=%TZ_SYS_RO_WRT_ENGINE \
80 %if 0%{?certsvc_test_build}
81         -DCERTSVC_TEST_BUILD=1 \
82         -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
83 %endif
84         -DCMAKE_BUILD_TYPE=%{build_type} \
85         -DSYSTEMD_UNIT_DIR=%{_unitdir}
86
87 make %{?jobs:-j%jobs}
88
89 %install
90 rm -rf %{buildroot}
91 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/license
92 cp LICENSE %{buildroot}%{TZ_SYS_SHARE}/license/%{name}
93
94 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/certs/user
95 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/certs/trusteduser
96 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/pkcs12
97 mkdir -p %{buildroot}%{TZ_SYS_SHARE}/cert-svc/dbspace
98
99 %make_install
100 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
101 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
102 ln -s ../cert-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/
103 ln -s ../cert-server.socket %{buildroot}%{_unitdir}/sockets.target.wants/
104
105 %clean
106 rm -rf %{buildroot}
107
108 %preun
109 if [ $1 == 0 ]; then
110     systemctl stop cert-server.service
111 fi
112
113 %post
114 /sbin/ldconfig
115 systemctl daemon-reload
116 if [ $1 == 1 ]; then
117     systemctl restart cert-server.service
118 fi
119
120 echo "make ca-certificate.crt"
121 %{TZ_SYS_BIN}/make-ca-certificate.sh
122 rm %{TZ_SYS_BIN}/make-ca-certificate.sh
123
124 echo "create certs-meta.db"
125 rm -rf %{TZ_SYS_SHARE}/cert-svc/dbspace/certs-meta.db
126 %{TZ_SYS_BIN}/cert_svc_create_clean_store_db.sh %{TZ_SYS_SHARE}/cert-svc/cert_svc_store_db.sql
127 %{TZ_SYS_BIN}/initialize_store_db.sh
128 if [[ -e %{TZ_SYS_SHARE}/cert-svc/dbspace/certs-meta.db ]]; then
129     cat %{TZ_SYS_SHARE}/cert-svc/root-cert.sql | sqlite3 %{TZ_SYS_SHARE}/cert-svc/dbspace/certs-meta.db
130 fi
131 rm %{TZ_SYS_SHARE}/cert-svc/cert_svc_store_db.sql
132 rm %{TZ_SYS_SHARE}/cert-svc/root-cert.sql
133 rm %{TZ_SYS_BIN}/cert_svc_create_clean_store_db.sh
134 rm %{TZ_SYS_BIN}/initialize_store_db.sh
135
136 %postun
137 /sbin/ldconfig
138
139 %files
140 %defattr(644,system,system,755)
141 %manifest %{name}.manifest
142 # Read only files install as root
143 %attr(755,root,root) %{TZ_SYS_BIN}/cert-server
144 %attr(644,root,root) %{_unitdir}/cert-server.service
145 %attr(644,root,root) %{_unitdir}/cert-server.socket
146 %attr(777,root,root) %{_unitdir}/multi-user.target.wants/cert-server.service
147 %attr(777,root,root) %{_unitdir}/sockets.target.wants/cert-server.socket
148 %attr(755,root,root) %{_libdir}/libcert-svc.so.*
149 %attr(755,root,root) %{_libdir}/libcert-svc-vcore.so.*
150 %attr(644,root,root) %{TZ_SYS_SHARE}/license/%{name}
151 %attr(644,root,root) %{TZ_SYS_RO_WRT_ENGINE}/schema.xsd
152 %attr(644,root,root) %{TZ_SYS_SHARE}/cert-svc/cert_svc_store_db.sql
153 %attr(755,root,root) %{TZ_SYS_BIN}/cert_svc_create_clean_store_db.sh
154 %attr(755,root,root) %{TZ_SYS_BIN}/make-ca-certificate.sh
155 %attr(755,root,root) %{TZ_SYS_BIN}/initialize_store_db.sh
156
157 # Resource files install as system
158 %{TZ_SYS_SHARE}/cert-svc/certs/user
159 %{TZ_SYS_SHARE}/cert-svc/certs/trusteduser
160 %{TZ_SYS_SHARE}/cert-svc/pkcs12
161 %{TZ_SYS_SHARE}/cert-svc/dbspace
162
163
164 %files devel
165 %defattr(-,root,root,-)
166 %{_includedir}/*
167 %{_libdir}/pkgconfig/*
168 %{_libdir}/libcert-svc.so
169 %{_libdir}/libcert-svc-vcore.so
170
171 %if 0%{?certsvc_test_build}
172 %files test
173 %defattr(644,system,system,755)
174 %attr(755,root,root) %{TZ_SYS_BIN}/cert-svc-test*
175 %{TZ_SYS_RO_APP}/widget/tests/*
176 %{TZ_SYS_ETC}/ssl/certs/8956b9bc.0
177 %{TZ_SYS_SHARE}/ca-certificates/tizen/*
178 %{TZ_SYS_SHARE}/cert-svc/cert-type/*
179 %{TZ_SYS_SHARE}/cert-svc/certs/root_ca*.der
180 %{TZ_SYS_SHARE}/cert-svc/tests/*
181 %endif