Remove dependecy on libslp-db-util
[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: 2.2.1
6 Release: 0
7 Group:   Security/Certificate Management
8 License: Apache-2.0
9 Source0: %{name}-%{version}.tar.gz
10 BuildRequires: cmake
11 BuildRequires: coreutils
12 BuildRequires: findutils
13 BuildRequires: openssl
14 BuildRequires: pkgconfig(dlog)
15 BuildRequires: pkgconfig(klay)
16 BuildRequires: pkgconfig(openssl)
17 BuildRequires: pkgconfig(libpcrecpp)
18 BuildRequires: pkgconfig(xmlsec1)
19 BuildRequires: pkgconfig(libxml-2.0)
20 BuildRequires: pkgconfig(libxslt)
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
27 BuildRequires: ca-certificates-devel
28 BuildRequires: ca-certificates-tizen-devel
29 Requires: ca-certificates
30 Requires: ca-certificates-tizen
31 Requires: security-config
32 Requires: openssl
33
34 %global user_name security_fw
35 %global group_name security_fw
36 %global server_stream /tmp/.cert-server.socket
37 %global smack_domain_name System
38
39 %global bin_dir                 %{?TZ_SYS_BIN:%TZ_SYS_BIN}%{!?TZ_SYS_BIN:%_bindir}
40 %global etc_dir                 %{?TZ_SYS_ETC:%TZ_SYS_ETC}%{!?TZ_SYS_ETC:/opt/etc}
41 %global rw_data_dir             %{?TZ_SYS_SHARE:%TZ_SYS_SHARE}%{!?TZ_SYS_SHARE:/opt/share}
42 %global ro_data_dir             %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:%_datadir}
43 %global rw_app_dir              %{?TZ_SYS_RW_APP:%TZ_SYS_RW_APP}%{!?TZ_SYS_RW_APP:/opt/usr/apps}
44
45 %global cert_svc_path           %rw_data_dir/cert-svc
46 %global cert_svc_ro_path        %ro_data_dir/cert-svc
47 %global cert_svc_db_path        %cert_svc_path/dbspace
48 %global cert_svc_pkcs12         %cert_svc_path/pkcs12
49 %global cert_svc_ca_bundle      %cert_svc_path/ca-certificate.crt
50 %global cert_svc_examples       %cert_svc_ro_path/examples
51 %global cert_svc_tests          %rw_app_dir/cert-svc-tests
52
53 %description
54 Certification service
55
56 %package devel
57 Summary:    Certification service (development files)
58 Group:      Development/Libraries
59 Requires:   %{name} = %{version}-%{release}
60
61 %description devel
62 Certification service (development files)
63
64 %if 0%{?certsvc_test_build}
65 %package test
66 Summary:  Certification service (tests)
67 Group:    Security/Testing
68 Requires: ca-certificates-tizen
69 Requires: %{name} = %{version}-%{release}
70
71 %description test
72 Certification service (tests)
73 %endif
74
75 %prep
76 %setup -q
77
78 %build
79 %if 0%{?sec_build_binary_debug_enable}
80 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
81 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
82 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
83 %endif
84
85 %if 0%{?tizen_build_devel_mode}
86 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
87 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
88 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
89 %endif
90
91 %ifarch %{ix86}
92 export CFLAGS="$CFLAGS -DTIZEN_EMULATOR_MODE"
93 export CXXFLAGS="$CXXFLAGS -DTIZEN_EMULATOR_MODE"
94 export FFLAGS="$FFLAGS -DTIZEN_EMULATOR_MODE"
95 %endif
96
97 %{!?build_type:%define build_type "Release"}
98 %cmake . -DVERSION=%version \
99          -DINCLUDEDIR=%_includedir \
100          -DUSER_NAME=%user_name \
101          -DGROUP_NAME=%group_name \
102          -DSERVER_STREAM=%server_stream \
103          -DSMACK_DOMAIN_NAME=%smack_domain_name \
104          -DRO_DATA_DIR=%ro_data_dir \
105          -DBIN_DIR=%bin_dir \
106          -DTZ_SYS_CA_CERTS=%TZ_SYS_CA_CERTS \
107          -DTZ_SYS_CA_CERTS_ORIG=%TZ_SYS_CA_CERTS_ORIG \
108          -DTZ_SYS_CA_BUNDLE=%TZ_SYS_CA_BUNDLE \
109          -DTZ_SYS_RO_CA_CERTS=%TZ_SYS_RO_CA_CERTS \
110          -DTZ_SYS_RO_CA_BUNDLE=%TZ_SYS_RO_CA_BUNDLE \
111          -DCERT_SVC_CA_BUNDLE=%cert_svc_ca_bundle \
112          -DFINGERPRINT_LIST_RW_PATH=%TZ_SYS_REVOKED_CERTS_FINGERPRINTS_RUNTIME \
113          -DCERT_SVC_PATH=%cert_svc_path \
114          -DCERT_SVC_RO_PATH=%cert_svc_ro_path \
115          -DCERT_SVC_PKCS12=%cert_svc_pkcs12 \
116          -DCERT_SVC_DB_PATH=%cert_svc_db_path \
117 %if 0%{?certsvc_test_build}
118          -DCERTSVC_TEST_BUILD=1 \
119          -DCERT_SVC_TESTS=%cert_svc_tests \
120          -DCERT_SVC_EXAMPLES=%cert_svc_examples \
121 %endif
122          -DCMAKE_BUILD_TYPE=%build_type \
123          -DSYSTEMD_UNIT_DIR=%_unitdir
124
125 make %{?_smp_mflags}
126
127 %install
128 %make_install
129 %install_service sockets.target.wants cert-server.socket
130
131 mkdir -p %buildroot%cert_svc_pkcs12
132
133 touch %buildroot%cert_svc_db_path/certs-meta.db-journal
134
135 ln -sf %TZ_SYS_CA_BUNDLE %buildroot%cert_svc_ca_bundle
136
137 %preun
138 # erase
139 if [ $1 = 0 ]; then
140     systemctl stop cert-server.service
141 fi
142
143 %post
144 /sbin/ldconfig
145 systemctl daemon-reload
146 # install
147 if [ $1 = 1 ]; then
148     systemctl start cert-server.socket
149 fi
150 # reinstall
151 if [ $1 = 2 ]; then
152     systemctl restart cert-server.socket
153 fi
154
155 %postun -p /sbin/ldconfig
156
157 %files
158 %manifest %name.manifest
159 %license LICENSE
160 %_unitdir/cert-server.service
161 %_unitdir/cert-server.socket
162 %_unitdir/sockets.target.wants/cert-server.socket
163 %_libdir/libcert-svc-vcore.so.*
164 %bin_dir/cert-server
165 %dir %attr(-, %{user_name}, %{group_name}) %cert_svc_path
166 %dir %attr(-, %{user_name}, %{group_name}) %cert_svc_pkcs12
167 %dir %attr(-, %{user_name}, %{group_name}) %cert_svc_db_path
168 %attr(-, %{user_name}, %{group_name}) %cert_svc_ca_bundle
169 %attr(-, %{user_name}, %{group_name}) %cert_svc_db_path/certs-meta.db
170 %attr(-, %{user_name}, %{group_name}) %cert_svc_db_path/certs-meta.db-journal
171 %attr(-, %{user_name}, %{group_name}) %cert_svc_ro_path
172
173 %files devel
174 %_includedir/*
175 %_libdir/pkgconfig/*
176 %_libdir/libcert-svc-vcore.so
177
178 %if 0%{?certsvc_test_build}
179 %files test
180 %bin_dir/cert-svc-test*
181 %cert_svc_tests
182 %_libdir/libcert-svc-validator-plugin.so
183
184 %bin_dir/cert-svc-example*
185 %cert_svc_examples
186
187 %endif