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