revise the spec file for ES
[platform/upstream/iotivity.git] / packaging / iotivity.spec
1 Name: iotivity
2 Version: 1.2.1
3 Release: 0
4 Summary: IoT Connectivity sponsored by the OCF
5 Group: Network & Connectivity / IoT Connectivity
6 License: Apache-2.0 and BSD-2-Clause and (MIT or BSL-1.0) and MIT
7 URL: https://www.iotivity.org/
8 Source0: http://mirrors.kernel.org/%{name}/%{version}/%{name}-%{version}.tar.gz
9 Source1001: %{name}.manifest
10 Source1002: %{name}-test.manifest
11
12 %if 0%{?tizen:1}
13 %define TARGET_OS tizen
14 %else
15 %define TARGET_OS linux
16 %endif
17
18 %if "%{tizen}" == "2.3"
19 %define TARGET_TRANSPORT IP
20 %endif
21
22 %if "%{profile}" == "ivi"
23 %define TARGET_TRANSPORT IP
24 %endif
25
26 %if "%{TARGET_OS}" == "linux"
27 %define TARGET_TRANSPORT IP
28 %endif
29
30 %if "%{TARGET_OS}" == "tizen"
31 %define TARGET_TRANSPORT IP
32 %endif
33
34 # default is RELEASE mode.
35 # If DEBUG mode is needed, please use tizen_build_devel_mode
36 %define RELEASE True
37 # For Example
38 %if %{RELEASE} == "True"
39 %define build_mode release
40 %else
41 %define build_mode debug
42 %endif
43
44 %ifarch armv7l armv7hl armv7nhl armv7tnhl armv7thl
45 BuildRequires: python-accel-armv7l-cross-arm
46 %define TARGET_ARCH "armeabi-v7a"
47 %endif
48 %ifarch aarch64
49 BuildRequires: python-accel-aarch64-cross-aarch64
50 %define TARGET_ARCH "arm64"
51 %endif
52 %ifarch x86_64
53 %define TARGET_ARCH "x86_64"
54 %endif
55 %ifarch %{ix86}
56 %define TARGET_ARCH "x86"
57 %endif
58
59 %define ex_install_dir %{buildroot}%{_bindir}
60
61 # Default values to be eventually overiden BEFORE or as gbs params:
62 %{!?ES_TARGET_ENROLLEE: %define ES_TARGET_ENROLLEE tizen}
63 %{!?LOGGING: %define LOGGING 1}
64 %{!?RD_MODE: %define RD_MODE CLIENT}
65 %{!?RELEASE: %define RELEASE 1}
66 %{!?ROUTING: %define ROUTING EP}
67 %{!?SECURED: %define SECURED 1}
68 %{!?TARGET_ARCH: %define TARGET_ARCH %{_arch}}
69 %{!?TARGET_OS: %define TARGET_OS tizen}
70 %{!?TARGET_TRANSPORT: %define TARGET_TRANSPORT IP,BT}
71 %{!?VERBOSE: %define VERBOSE 1}
72 %{!?WITH_CLOUD: %define WITH_CLOUD 0}
73 %{!?WITH_MQ: %define WITH_MQ OFF}
74 %{!?WITH_PROXY: %define WITH_PROXY 0}
75 %{!?WITH_TCP: %define WITH_TCP 1}
76
77 BuildRequires:  expat-devel
78 BuildRequires:  python, libcurl-devel
79 BuildRequires:  scons
80 BuildRequires:  openssl-devel
81 BuildRequires:  boost-devel
82 BuildRequires:  boost-thread
83 BuildRequires:  boost-system
84 BuildRequires:  boost-filesystem
85 BuildRequires:  pkgconfig(uuid)
86 BuildRequires:  pkgconfig(glib-2.0)
87 BuildRequires:  pkgconfig(sqlite3)
88 %if "%{TARGET_OS}" == "tizen"
89 BuildRequires:  gettext-tools
90 BuildRequires:  pkgconfig(dlog)
91 BuildRequires:  pkgconfig(capi-network-connection)
92 BuildRequires:  pkgconfig(capi-network-wifi)
93 BuildRequires:  pkgconfig(capi-network-bluetooth) >= 0.1.52
94 %else
95 %if 0%{?fedora:1}
96 BuildRequires:  sqlite-devel
97 BuildRequires:  gettext-devel
98 %endif
99 %endif
100 Requires(postun): /sbin/ldconfig
101 Requires(post): /sbin/ldconfig
102
103 %description
104 An open source reference implementation of the OIC standard specifications
105 IoTivity Base Libraries are included.
106
107
108 %package service
109 Summary: Development files for %{name}
110 Group: Network & Connectivity/Service
111 Requires: %{name} = %{version}-%{release}
112
113 %description service
114 The %{name}-service package contains service libraries files for
115 developing applications that use %{name}-service.
116
117 %package test
118 Summary: Development files for %{name}
119 Group: Network & Connectivity/Testing
120 Requires: %{name} = %{version}-%{release}
121
122 %description test
123 The %{name}-test package contains example files to show
124 how the iotivity works using %{name}-test
125
126 %package devel
127 Summary: Development files for %{name}
128 Group: Network & Connectivity/Development
129 Requires: %{name} = %{version}-%{release}
130 Requires: pkgconfig
131
132 %description devel
133 The %{name}-devel package contains libraries and header files for
134 developing applications that use %{name}.
135
136 %prep
137 %setup -q
138 chmod g-w %_sourcedir/*
139
140 find . \
141      -iname "LICEN*E*"  \
142      -o -name "*BSD*" \
143      -o -name "*COPYING*" \
144      -o -name "*GPL*" \
145      -o -name "*MIT*" \
146      | sort | uniq \
147      | grep -v 'libcoap-4.1.1/LICENSE.GPL'  \
148      | while read file ; do \
149           dir=$(dirname -- "$file")
150           echo "Files: ${dir}/*"
151           echo "License: ${file}"
152           sed 's/^/ /' "${file}"
153           echo ""
154           echo ""
155      done > tmp.tmp && mv tmp.tmp LICENSE
156
157 cat LICENSE
158
159 cp %{SOURCE1001} .
160 %if 0%{?tizen_version_major} < 3
161 cp %{SOURCE1002} .
162 %else
163 cp %{SOURCE1001} ./%{name}-test.manifest
164 %endif
165
166
167 %build
168 scons %{?_smp_mflags} --prefix=%{_prefix} \
169     ES_TARGET_ENROLLEE=%{ES_TARGET_ENROLLEE} \
170     LIB_INSTALL_DIR=%{_libdir} \
171     LOGGING=%{LOGGING} \
172     RD_MODE=%{RD_MODE} \
173     RELEASE=%{RELEASE} \
174     ROUTING=%{ROUTING} \
175     SECURED=%{SECURED} \
176     TARGET_ARCH=%{TARGET_ARCH} \
177     TARGET_OS=%{TARGET_OS} \
178     TARGET_TRANSPORT=%{TARGET_TRANSPORT} \
179     VERBOSE=%{VERBOSE} \
180     WITH_CLOUD=%{WITH_CLOUD} \
181     WITH_MQ=%{WITH_MQ} \
182     WITH_PROXY=%{WITH_PROXY} \
183     WITH_TCP=%{WITH_TCP} \
184     #eol
185
186
187
188 %install
189 rm -rf %{buildroot}
190 CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
191 scons install --install-sandbox=%{buildroot} --prefix=%{_prefix} \
192     ES_TARGET_ENROLLEE=%{ES_TARGET_ENROLLEE} \
193     LIB_INSTALL_DIR=%{_libdir} \
194     LOGGING=%{LOGGING} \
195     RD_MODE=%{RD_MODE} \
196     RELEASE=%{RELEASE} \
197     ROUTING=%{ROUTING} \
198     SECURED=%{SECURED} \
199     TARGET_ARCH=%{TARGET_ARCH} \
200     TARGET_OS=%{TARGET_OS} \
201     TARGET_TRANSPORT=%{TARGET_TRANSPORT} \
202     VERBOSE=%{VERBOSE} \
203     WITH_CLOUD=%{WITH_CLOUD} \
204     WITH_MQ=%{WITH_MQ} \
205     WITH_PROXY=%{WITH_PROXY} \
206     WITH_TCP=%{WITH_TCP} \
207     #eol
208
209 mkdir -p %{ex_install_dir}
210 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/examples/OICMiddle/OICMiddle %{ex_install_dir}
211 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/devicediscoveryclient %{ex_install_dir}
212 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/devicediscoveryserver %{ex_install_dir}
213 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/fridgeclient %{ex_install_dir}
214 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/fridgeserver %{ex_install_dir}
215 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/garageclient %{ex_install_dir}
216 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/garageserver %{ex_install_dir}
217 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/groupclient %{ex_install_dir}
218 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/groupserver %{ex_install_dir}
219 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/lightserver %{ex_install_dir}
220 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/presenceclient %{ex_install_dir}
221 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/presenceserver %{ex_install_dir}
222 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/roomclient %{ex_install_dir}
223 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/roomserver %{ex_install_dir}
224 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/simpleclient %{ex_install_dir}
225 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/simpleclientHQ %{ex_install_dir}
226 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/simpleclientserver %{ex_install_dir}
227 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/simpleserver %{ex_install_dir}
228 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/simpleserverHQ %{ex_install_dir}
229 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/threadingsample %{ex_install_dir}
230 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/oic_svr_db_server.dat %{ex_install_dir}
231 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/examples/oic_svr_db_client.dat %{ex_install_dir}
232 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/libcoap.a %{buildroot}%{_libdir}
233
234 %if 0%{?WITH_PROXY} == 1
235 mkdir -p %{ex_install_dir}/proxy-sample
236 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/service/coap-http-proxy/samples/proxy_main %{ex_install_dir}/proxy-sample/
237 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/service/coap-http-proxy/samples/proxy_client %{ex_install_dir}/proxy-sample/
238 %endif
239 %if 0%{?SECURED} == 1
240 mkdir -p %{ex_install_dir}/provisioning
241 mkdir -p %{ex_install_dir}/provision-sample
242
243
244 cp ./resource/csdk/security/include/*.h %{buildroot}%{_includedir}
245 cp ./resource/csdk/connectivity/api/*.h %{buildroot}%{_includedir}/
246 cp ./resource/csdk/security/include/internal/*.h %{buildroot}%{_includedir}/
247 cp ./resource/csdk/security/provisioning/include/oxm/*.h %{buildroot}%{_includedir}
248 cp ./resource/csdk/security/provisioning/include/internal/*.h %{buildroot}%{_includedir}
249 cp ./resource/csdk/security/provisioning/include/*.h %{buildroot}%{_includedir}
250 cp ./resource/csdk/security/provisioning/sample/oic_svr_db_server_justworks.dat %{buildroot}%{_libdir}/oic_svr_db_server.dat
251 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/csdk/security/provisioning/sample/sampleserver_justworks %{ex_install_dir}/provision-sample/
252 cp ./resource/csdk/security/provisioning/sample/oic_svr_db_server_justworks.dat %{ex_install_dir}/provision-sample/
253 cp out/%{TARGET_OS}/%{TARGET_ARCH}/%{build_mode}/resource/csdk/security/provisioning/sample/sampleserver_randompin %{ex_install_dir}/provision-sample/
254 cp ./resource/csdk/security/provisioning/sample/oic_svr_db_server_randompin.dat %{ex_install_dir}/provision-sample/
255 %endif
256
257 cp resource/c_common/*.h %{buildroot}%{_includedir}
258 cp resource/csdk/stack/include/*.h %{buildroot}%{_includedir}
259 cp resource/csdk/logger/include/*.h %{buildroot}%{_includedir}
260
261 install -d %{buildroot}%{_includedir}/iotivity
262 ln -fs ../resource %{buildroot}%{_includedir}/iotivity/
263 ln -fs ../service %{buildroot}%{_includedir}/iotivity/
264 ln -fs ../c_common %{buildroot}%{_includedir}/iotivity/
265
266 rm -rfv out %{buildroot}/out %{buildroot}/${HOME} ||:
267
268
269 %post -p /sbin/ldconfig
270
271 %postun -p /sbin/ldconfig
272
273 %files
274 %manifest %{name}.manifest
275 %defattr(-,root,root,-)
276 %license LICENSE
277 %{_libdir}/liboc.so
278 %{_libdir}/liboc_logger.so
279 %{_libdir}/liboc_logger_core.so
280 %{_libdir}/liboctbstack.so
281 %{_libdir}/libconnectivity_abstraction.so
282 %if 0%{?SECURED} == 1
283 %{_libdir}/libocpmapi.so
284 %{_libdir}/libocprovision.so
285 %{_libdir}/oic_svr_db_server.dat
286 %endif
287
288 %files service
289 %manifest %{name}.manifest
290 %defattr(-,root,root,-)
291 %license LICENSE
292 %{_libdir}/libBMISensorBundle.so
293 %{_libdir}/libDISensorBundle.so
294 %{_libdir}/libHueBundle.so
295 %{_libdir}/librcs_client.so
296 %{_libdir}/librcs_common.so
297 %{_libdir}/librcs_container.so
298 %{_libdir}/librcs_server.so
299 %{_libdir}/libresource_directory.so
300 %{_libdir}/libESEnrolleeSDK.so
301 %{_libdir}/libnotification*.so
302 %if 0%{?WITH_PROXY} == 1
303 %{_libdir}/libcoap_http_proxy.so
304 %endif
305 %if "%{TARGET_OS}" == "linux"
306 %{_libdir}/libnotification*.so
307 %endif
308
309 %files test
310 %manifest %{name}-test.manifest
311 %defattr(-,root,root,-)
312 %license LICENSE
313 %{_bindir}/*
314
315 %files devel
316 %defattr(-,root,root,-)
317 %license LICENSE
318 %{_libdir}/lib*.a
319 %{_libdir}/pkgconfig/%{name}.pc
320 %{_includedir}/*