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