1 %define certsvc_test_build 0
4 Summary: Certification service
7 Group: Security/Certificate Management
8 License: Apache-2.0 and OpenSSL
9 Source0: %{name}-%{version}.tar.gz
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(db-util)
22 BuildRequires: pkgconfig(libsystemd-daemon)
23 BuildRequires: pkgconfig(key-manager)
24 BuildRequires: pkgconfig(libtzplatform-config)
25 BuildRequires: pkgconfig(libsystemd-journal)
26 BuildRequires: pkgconfig(sqlite3)
27 BuildRequires: ca-certificates
28 BuildRequires: ca-certificates-devel
29 BuildRequires: ca-certificates-tizen-devel
30 Requires: ca-certificates
31 Requires: ca-certificates-tizen
32 Requires: security-config
35 %global user_name security_fw
36 %global group_name security_fw
37 %global server_stream /tmp/.cert-server.socket
38 %global smack_domain_name System
40 %global bin_dir %{?TZ_SYS_BIN:%TZ_SYS_BIN}%{!?TZ_SYS_BIN:%_bindir}
41 %global etc_dir %{?TZ_SYS_ETC:%TZ_SYS_ETC}%{!?TZ_SYS_ETC:/opt/etc}
42 %global rw_data_dir %{?TZ_SYS_SHARE:%TZ_SYS_SHARE}%{!?TZ_SYS_SHARE:/opt/share}
43 %global ro_data_dir %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:%_datadir}
44 %global rw_app_dir %{?TZ_SYS_RW_APP:%TZ_SYS_RW_APP}%{!?TZ_SYS_RW_APP:/opt/usr/apps}
46 %global cert_svc_path %rw_data_dir/cert-svc
47 %global cert_svc_ro_path %ro_data_dir/cert-svc
48 %global cert_svc_db_path %cert_svc_path/dbspace
49 %global cert_svc_pkcs12 %cert_svc_path/pkcs12
50 %global cert_svc_ca_bundle %cert_svc_path/ca-certificate.crt
51 %global cert_svc_tests %rw_app_dir/cert-svc-tests
53 %global cert_svc_old_db_path /opt/share/cert-svc/dbspace
54 %global upgrade_script_path %ro_data_dir/upgrade/scripts
55 %global upgrade_data_path %ro_data_dir/upgrade/data
61 Summary: Certification service (development files)
62 Group: Development/Libraries
63 Requires: %{name} = %{version}-%{release}
66 Certification service (development files)
68 %if 0%{?certsvc_test_build}
70 Summary: Certification service (tests)
71 Group: Security/Testing
72 Requires: ca-certificates-tizen
73 Requires: %{name} = %{version}-%{release}
76 Certification service (tests)
83 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
84 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
85 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
87 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
88 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
89 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
92 export CFLAGS="$CFLAGS -DTIZEN_EMULATOR_MODE"
93 export CXXFLAGS="$CXXFLAGS -DTIZEN_EMULATOR_MODE"
94 export FFLAGS="$FFLAGS -DTIZEN_EMULATOR_MODE"
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 \
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 -DCERT_SVC_CA_BUNDLE=%cert_svc_ca_bundle \
110 -DFINGERPRINT_LIST_RW_PATH=%TZ_SYS_REVOKED_CERTS_FINGERPRINTS_RUNTIME \
111 -DCERT_SVC_PATH=%cert_svc_path \
112 -DCERT_SVC_RO_PATH=%cert_svc_ro_path \
113 -DCERT_SVC_PKCS12=%cert_svc_pkcs12 \
114 -DCERT_SVC_DB_PATH=%cert_svc_db_path \
115 -DCERT_SVC_OLD_DB_PATH=%cert_svc_old_db_path \
116 -DUPGRADE_SCRIPT_PATH=%upgrade_script_path \
117 -DUPGRADE_DATA_PATH=%upgrade_data_path \
118 %if 0%{?certsvc_test_build}
119 -DCERTSVC_TEST_BUILD=1 \
120 -DCERT_SVC_TESTS=%cert_svc_tests \
122 -DCMAKE_BUILD_TYPE=%build_type \
123 -DSYSTEMD_UNIT_DIR=%_unitdir
129 %install_service sockets.target.wants cert-server.socket
131 mkdir -p %buildroot%cert_svc_pkcs12
133 touch %buildroot%cert_svc_db_path/certs-meta.db-journal
135 ln -sf %TZ_SYS_CA_BUNDLE %buildroot%cert_svc_ca_bundle
140 systemctl stop cert-server.service
145 systemctl daemon-reload
148 systemctl start cert-server.socket
150 # upgrade / reinstall
152 systemctl restart cert-server.socket
155 %postun -p /sbin/ldconfig
158 %manifest %name.manifest
160 %license LICENSE.OpenSSL
161 %_unitdir/cert-server.service
162 %_unitdir/cert-server.socket
163 %_unitdir/sockets.target.wants/cert-server.socket
164 %_libdir/libcert-svc-vcore.so.*
165 %_libdir/libcert-svc-transec.so.*
167 %dir %attr(-, %{user_name}, %{group_name}) %cert_svc_path
168 %dir %attr(-, %{user_name}, %{group_name}) %cert_svc_pkcs12
169 %dir %attr(-, %{user_name}, %{group_name}) %cert_svc_db_path
170 %attr(-, %{user_name}, %{group_name}) %cert_svc_ca_bundle
171 %attr(-, %{user_name}, %{group_name}) %cert_svc_db_path/certs-meta.db
172 %attr(-, %{user_name}, %{group_name}) %cert_svc_db_path/certs-meta.db-journal
173 %attr(-, %{user_name}, %{group_name}) %cert_svc_ro_path
175 %attr(755, root, root) %upgrade_script_path/202.cert-svc-db-upgrade.sh
176 %attr(755, root, root) %upgrade_script_path/203.cert-svc-disabled-certs-upgrade.sh
177 %upgrade_data_path/certs-meta.db
182 %_libdir/libcert-svc-vcore.so
183 %_libdir/libcert-svc-transec.so
185 %if 0%{?certsvc_test_build}
187 %bin_dir/cert-svc-test*
189 %_libdir/libcert-svc-validator-plugin.so
190 %attr(755, root, root) %upgrade_script_path/cert-svc-test-upgrade.sh
191 %upgrade_data_path/certs-meta-old.db