Check if DCM feature is supported on the device
[platform/core/security/device-certificate-manager.git] / packaging / device-certificate-manager.spec
1 %{!?build_type:%global build_type RELEASE}
2
3 Name: device-certificate-manager
4 Summary: Device Certificate Manager daemon and libraries
5 Version: 2.1.0
6 Release: 0
7 Group: Security/Secure Storage
8 License: Apache-2.0
9 Source0: %{name}-%{version}.tar.gz
10 Source1001: device-certificate-manager.manifest
11 BuildRequires: cmake
12 BuildRequires: pkgconfig(dlog)
13 BuildRequires: pkgconfig(libsmack)
14 BuildRequires: pkgconfig(libsystemd)
15 BuildRequires: pkgconfig(protobuf-lite)
16 BuildRequires: pkgconfig(cynara-client)
17 BuildRequires: pkgconfig(cynara-creds-socket)
18 BuildRequires: pkgconfig(cynara-session)
19 BuildRequires: pkgconfig(openssl1.1)
20 BuildRequires: pkgconfig(capi-system-info)
21 BuildRequires: boost-devel
22 %if "%{build_type}" == "COVERAGE"
23 BuildRequires: lcov
24 %endif
25 Requires(post): /sbin/ldconfig
26 Requires(postun): /sbin/ldconfig
27 Requires: boost-system
28 %{?systemd_requires}
29
30 %global user_name               security_fw
31 %global group_name              security_fw
32 %global smack_domain_name       System
33 %global coverage_dir            %{_datadir}/device-certificate-manager-coverage
34
35 %description
36 Device Certificate Manager provides cryptography services for the Iotivity framework.
37
38 %package -n device-certificate-manager-devel
39 Summary:        Device Certificate Manager (development)
40 Group:          Security/Development
41 Requires:       device-certificate-manager = %{version}-%{release}
42
43 %description -n device-certificate-manager-devel
44 Device Certificate Manager development headers and libraries
45
46 %package -n device-certificate-manager-ext-devel
47 Summary:        Device Certificate Manager (development/extension API)
48 Group:          Security/Development
49 Requires:       device-certificate-manager = %{version}-%{release}
50
51 %description -n device-certificate-manager-ext-devel
52 Device Certificate Manager development headers and libraries only for extension of the API
53
54 %package -n device-certificate-manager-backend-devel
55 Summary:        Device Certificate Manager backend (development)
56 Group:          Security/Development
57
58 %description -n device-certificate-manager-backend-devel
59 Device Certificate Manager backend development header
60
61 %package -n device-certificate-manager-tests
62 Summary:        Internal tests for Device Certificate Manager
63 Group:          Security/Testing
64 Requires:       device-certificate-manager = %{version}-%{release}
65 Requires:       boost-test
66
67 %description -n device-certificate-manager-tests
68 Internal tests for Device Certificate Manager
69
70 %if "%{build_type}" == "COVERAGE"
71
72 %package -n device-certificate-manager-coverage
73 Summary:        Device Certificate Manager code coverage data
74 Group:          Security/Testing
75 Requires:       device-certificate-manager-tests = %{version}-%{release}
76 Requires:       device-certificate-manager-debugsource = %{version}-%{release}
77 Requires:       lcov
78 Requires:       gcc
79
80 %description -n device-certificate-manager-coverage
81 Device Certificate Manager code coverage data
82
83 %endif
84
85 %prep
86 %setup -q
87 cp -a %{SOURCE1001} .
88
89 %build
90 %cmake . -DCMAKE_BUILD_TYPE=%{build_type} \
91         -DSYSTEMD_UNIT_DIR=%{_unitdir} \
92         -DUSER_NAME=%{user_name} \
93         -DGROUP_NAME=%{group_name} \
94         -DSMACK_DOMAIN_NAME=%{smack_domain_name} \
95         -DRPM_DIR=%{_sysconfdir}/rpm \
96         -DCOVERAGE_DIR=%{coverage_dir}
97
98 make %{?jobs:-j%jobs}
99
100 %install
101 %make_install
102 %install_service sockets.target.wants device-certificate-manager.socket
103 ln -s lib%{name}.so.%{version} %{buildroot}%{_libdir}/lib%{name}.so.2.0
104
105 %post
106 /sbin/ldconfig
107 systemctl daemon-reload
108 if [ $1 = 1 ]; then
109         # installation
110         systemctl start device-certificate-manager.socket device-certificate-manager.service
111 fi
112
113 if [ $1 = 2 ]; then
114         # update
115         systemctl stop device-certificate-manager.service device-certificate-manager.socket
116         systemctl start device-certificate-manager.socket device-certificate-manager.service
117 fi
118
119 %preun
120 if [ $1 = 0 ]; then
121         # unistall
122         systemctl stop device-certificate-manager.service device-certificate-manager.socket
123 fi
124
125 %postun
126 /sbin/ldconfig
127 if [ $1 = 0 ]; then
128         # unistall
129         systemctl daemon-reload
130 fi
131
132 %files
133 %manifest %{name}.manifest
134 %license LICENSE
135 %{_bindir}/device-certificate-managerd
136 %{_libdir}/libdevice-certificate-manager.so.*
137 %{_libdir}/libdevice-certificate-manager-ext.so.*
138 %{_unitdir}/device-certificate-manager.service
139 %{_unitdir}/sockets.target.wants/device-certificate-manager.socket
140 %{_unitdir}/device-certificate-manager.socket
141
142 %files devel
143 %manifest %{name}.manifest
144 %license LICENSE
145 %{_libdir}/libdevice-certificate-manager.so
146 %{_includedir}/device-certificate-manager/device_certificate_manager.h
147 %{_libdir}/pkgconfig/device-certificate-manager.pc
148
149 %files ext-devel
150 %manifest %{name}.manifest
151 %license LICENSE
152 %{_libdir}/libdevice-certificate-manager-ext.so
153 %{_includedir}/device-certificate-manager/device_certificate_manager_ext.h
154 %{_includedir}/device-certificate-manager/device_certificate_manager_ext_types.h
155 %{_libdir}/pkgconfig/device-certificate-manager-ext.pc
156
157 %files backend-devel
158 %manifest %{name}.manifest
159 %license LICENSE
160 %{_includedir}/device-certificate-manager-backend/dcm-backend-api.h
161 %{_includedir}/device-certificate-manager-backend/dcm-ext-backend-api.h
162 %{_includedir}/device-certificate-manager-backend/dcm_support.pb.h
163 %{_libdir}/pkgconfig/device-certificate-manager-backend.pc
164 %{_sysconfdir}/rpm/macros.dcm-backend-api
165
166 %files tests
167 %manifest %{name}.manifest
168 %license LICENSE
169 %{_bindir}/device-certificate-manager-tests
170
171 %if "%{build_type}" == "COVERAGE"
172
173 %files coverage
174 %manifest %{name}.manifest
175 %license LICENSE
176 %{_bindir}/device-certificate-manager-coverage.sh
177 %coverage_dir
178
179 %endif