1 # Do not create provides from emulator .so files because the main package
2 # should anchor any reverse-dependencies
3 %global __provides_exclude_from ^(.*\\.emulator)$
6 %define _dumpdir /opt/etc/dump.d/module.d
7 %define _varlibdir /opt/var/lib
10 Summary: Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
13 Group: Network & Connectivity/Bluetooth
15 Source0: %{name}-%{version}.tar.gz
16 Source1001: bluetooth-frwk.manifest
18 %if "%{?profile}" != "mobile"
19 Requires: bluetooth-tools
21 BuildRequires: pkgconfig(aul)
22 BuildRequires: pkgconfig(dlog)
23 BuildRequires: pkgconfig(glib-2.0)
24 BuildRequires: pkgconfig(gio-2.0)
25 BuildRequires: pkgconfig(gio-unix-2.0)
26 BuildRequires: pkgconfig(syspopup-caller)
27 BuildRequires: pkgconfig(vconf)
28 BuildRequires: pkgconfig(libxml-2.0)
29 BuildRequires: pkgconfig(capi-network-connection)
30 BuildRequires: pkgconfig(alarm-service)
31 BuildRequires: pkgconfig(capi-content-mime-type)
32 BuildRequires: pkgconfig(pkgmgr)
33 #BuildRequires: pkgconfig(journal)
34 BuildRequires: pkgconfig(eventsystem)
35 BuildRequires: pkgconfig(libsoup-2.4)
36 BuildRequires: pkgconfig(capi-network-tethering)
38 BuildRequires: pkgconfig(cynara-client)
39 BuildRequires: pkgconfig(cynara-creds-gdbus)
40 BuildRequires: pkgconfig(libtzplatform-config)
41 BuildRequires: pkgconfig(storage)
42 BuildRequires: pkgconfig(capi-system-info)
44 Requires(post): /usr/bin/vconftool
45 Requires(post): /sbin/ldconfig
46 Requires(postun): /sbin/ldconfig
50 Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
51 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
53 %package profile_common
54 Summary: bluetooth-frwk service and conf files for common profile
55 Requires: %{name} = %{version}-%{release}
56 Conflicts: %{name}-profile_mobile
57 Conflicts: %{name}-profile_wearable
58 Conflicts: %{name}-profile_tv
59 Conflicts: %{name}-profile_ivi
60 %description profile_common
61 Bluetooth framework configuration and service files for Tizen common profile
63 %package profile_mobile
64 Summary: bluetooth-frwk service and conf files for mobile profile
65 Requires: %{name} = %{version}-%{release}
66 Conflicts: %{name}-profile_common
67 Conflicts: %{name}-profile_wearable
68 Conflicts: %{name}-profile_tv
69 Conflicts: %{name}-profile_ivi
70 %description profile_mobile
71 Bluetooth framework configuration and service files for Tizen mobile profile
74 %ifarch %{ix86} || %{arm}
75 %package extension-TM1
76 Summary: bluetooth-frwk service and conf files for mobile TM1
77 Requires: %{name}-profile_mobile = %{version}-%{release}
78 %description extension-TM1
79 Bluetooth framework configuration and service files for Tizen mobile TM1
82 %package profile_wearable
83 Summary: bluetooth-frwk service and conf files for wearable profile
84 Requires: %{name} = %{version}-%{release}
85 Conflicts: %{name}-profile_mobile
86 Conflicts: %{name}-profile_common
87 Conflicts: %{name}-profile_tv
88 Conflicts: %{name}-profile_ivi
89 %description profile_wearable
90 Bluetooth framework configuration and service files for Tizen wearable profile
93 Summary: bluetooth-frwk service and conf files for tv profile
94 Requires: %{name} = %{version}-%{release}
95 Conflicts: %{name}-profile_mobile
96 Conflicts: %{name}-profile_wearable
97 Conflicts: %{name}-profile_common
98 Conflicts: %{name}-profile_ivi
99 %description profile_tv
100 Bluetooth framework configuration and service files for Tizen tv profile
103 Summary: bluetooth-frwk service and conf files for ivi profile
104 Requires: %{name} = %{version}-%{release}
105 Conflicts: %{name}-profile_mobile
106 Conflicts: %{name}-profile_wearable
107 Conflicts: %{name}-profile_tv
108 Conflicts: %{name}-profile_common
109 %description profile_ivi
110 Bluetooth framework configuration and service files for Tizen ivi profile
112 %ifarch %{ix86} x86_64
113 %package extension-emulator
114 Summary: bluetooth-frwk service and conf files for emulator
115 Requires: %{name} = %{version}-%{release}
116 %description extension-emulator
117 bluetooth-frwk service and conf files for emulator
118 %endif // ifarch %{ix86} x86_64
121 Summary: Bluetooth framework for BlueZ and Obexd
122 Group: Development/Libraries
123 Requires: %{name} = %{version}-%{release}
126 This package is development files for Bluetooth framework based on BlueZ and Obexd stack.
127 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
130 Summary: Bluetooth Service daemon
131 Group: Network & Connectivity/Bluetooth
132 Requires: %{name} = %{version}-%{release}
135 This package is Bluetooth Service daemon to manage BT services.
138 Summary: Bluetooth HTTP Proxy Service daemon
140 Requires: %{name} = %{version}-%{release}
142 %description httpproxy
143 This package is Bluetooth HTTP Proxy Service daemon
146 Summary: Bluetooth OTP Service daemon
147 Group: Network & Connectivity/Bluetooth
148 Requires: %{name} = %{version}-%{release}
151 This package is Bluetooth OTP Service daemon
154 Summary: Bluetooth Core daemon
155 Group: Network & Connectivity/Bluetooth
156 Requires: %{name} = %{version}-%{release}
159 This package is Bluetooth core daemon to manage activation / deactivation.
162 Summary: Bluetooth test application
163 Group: Network & Connectivity/Bluetooth
164 Requires: %{name} = %{version}-%{release}
167 This package is Bluetooth test application.
169 %package plugin-headed
170 Summary: Bluetooth plugin Headed
171 Group: Network & Connectivity/Bluetooth
172 Requires: %{name} = %{version}-%{release}
174 %description plugin-headed
175 This package is Bluetooth plugin to manage UI and syspopup
183 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
184 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
185 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
188 export CFLAGS="$CFLAGS -Wall -g -fvisibility=hidden -fPIC"
189 export CFLAGS+=" -DARCH64"
190 export CXXFLAGS+=" -DARCH64"
191 export FFLAGS+=" -DARCH64"
193 export CFLAGS="$CFLAGS -fpie"
194 export LDFLAGS="$CFLAGS -pie"
197 %ifarch %{ix86} x86_64
198 export CFLAGS+=" -DTIZEN_TEST_EMUL"
199 export CXXFLAGS+=" -DTIZEN_TEST_EMUL"
200 export FFLAGS+=" -DTIZEN_TEST_EMUL"
203 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
204 export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
208 export CFLAGS+=" -DARCH64"
209 export CXXFLAGS+=" -DARCH64"
210 export FFLAGS+=" -DARCH64"
213 export CFLAGS_DEFAULT="$CFLAGS"
214 export CXXFLAGS_DEFAULT="$CXXFLAGS"
215 export FFLAGS_DEFAULT="$FFLAGS"
218 %ifarch %{ix86} || %{arm}
220 export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
221 export CXXFLAGS="$CXXFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
222 export FFLAGS="$FFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
224 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
225 -DCMAKE_LIB_DIR=%{_libdir} \
226 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
227 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
228 -DLIBNOTIFY_SUPPORT=Off \
229 -DLIBNOTIFICATION_SUPPORT=Off
235 cp %{buildroot}%{_bindir}/bt-core tm1/bt-core.tm1
239 %ifarch %{ix86} x86_64
240 export CFLAGS="${CFLAGS_BASE} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
241 export CXXFLAGS="${CXXFLAGS_BASE} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
242 export FFLAGS="${FFLAGS_BASE} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
244 mkdir -p build_emulator
246 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
247 -DCMAKE_LIB_DIR=%{_libdir} \
248 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
249 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
250 -DLIBNOTIFY_SUPPORT=Off \
251 -DLIBNOTIFICATION_SUPPORT=Off
257 cp %{buildroot}%{_libdir}/libbluetooth-api.so* build_emulator/
258 pushd build_emulator/
259 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
263 # non-extension-TM1 / non-extension-emulator
265 export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
266 export CXXFLAGS="$CXXFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
267 export FFLAGS="$FFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
269 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
270 -DCMAKE_LIB_DIR=%{_libdir} \
271 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
272 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
273 -DLIBNOTIFY_SUPPORT=Off \
274 -DLIBNOTIFICATION_SUPPORT=Off
283 mkdir -p %{buildroot}%{_unitdir}/starter.target.wants
284 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
287 %ifarch %{ix86} x86_64
288 cp build_emulator/libbluetooth-api.so*.emulator %{buildroot}%{_libdir}/
289 mv %{buildroot}/%{_bindir}/bt-service-emul %{buildroot}/%{_bindir}/bt-service
292 # Rename the postfix (.mobile, .tv, ..) at post script
294 install -m 0644 packaging/bluetooth-frwk-mobile.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.mobile
297 %ifarch %{ix86} || %{arm}
298 cp tm1/bt-core.tm1 %{buildroot}%{_bindir}/
299 install -m 0644 packaging/bluetooth-frwk-mobile-sprd.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.tm1
303 install -m 0644 packaging/bluetooth-frwk-wearable.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.wearable
304 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
305 cp %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
306 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
309 install -m 0644 packaging/bluetooth-frwk-tv.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.tv
312 install -m 0644 packaging/bluetooth-frwk-common.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.common
314 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
315 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/starter.target.wants/bluetooth-frwk.service
317 %postun -p /sbin/ldconfig
320 %manifest %{name}.manifest
322 %defattr(-, root, root)
323 %{_libdir}/libbluetooth-api.so.*
324 %exclude %{_libdir}/libbluetooth-api.so*.emulator
327 %defattr(-, root, root)
328 %{_includedir}/bt-service/bluetooth-api.h
329 %{_includedir}/bt-service/bluetooth-hid-api.h
330 %{_includedir}/bt-service/bluetooth-audio-api.h
331 %{_includedir}/bt-service/bluetooth-telephony-api.h
332 %{_includedir}/bt-service/bluetooth-media-control.h
333 %{_includedir}/bt-service/bluetooth-scmst-api.h
334 %{_includedir}/bt-service/bluetooth-ipsp-api.h
335 %{_libdir}/pkgconfig/bluetooth-api.pc
336 %{_libdir}/libbluetooth-api.so
339 %ifarch %{ix86} x86_64
340 %post extension-emulator
342 for FILE in libbluetooth-api.so*.emulator; do mv "${FILE}" "${FILE%.emulator}"; done
344 %preun extension-emulator
346 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
348 %files extension-emulator
349 %manifest %{name}.manifest
350 %defattr(-, root, root)
351 %{_libdir}/libbluetooth-api.so.*.emulator
352 %{_libdir}/libbluetooth-api.so.emulator
356 %manifest %{name}.manifest
358 %defattr(-, root, root)
359 %{_bindir}/bt-service
360 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
361 %{_bindir}/bluetooth-frwk-test
362 %{_varlibdir}/bluetooth
363 %{_prefix}/etc/bluetooth
366 %manifest %{name}.manifest
368 %defattr(-, root, root)
369 %{_bindir}/bt-httpproxy
370 %{_datadir}/dbus-1/system-services/org.projectx.httpproxy.service
371 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-httpproxy.conf
375 %manifest %{name}.manifest
377 %defattr(-, root, root)
379 %{_datadir}/dbus-1/system-services/org.projectx.otp.service
380 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-otp.conf
383 %manifest %{name}.manifest
385 %defattr(-, root, root)
386 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
388 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
391 %manifest %{name}.manifest
393 %defattr(-, root, root)
394 %{_bindir}/bluetooth-frwk-test
395 #{_bindir}/bluetooth-gatt-test
396 #{_bindir}/bluetooth-advertising-test
399 %manifest %{name}.manifest
401 %defattr(-, root, root)
402 %{_libdir}/bt-plugin-headed.so
406 mv bluetooth-frwk.service.common bluetooth-frwk.service
408 %preun profile_common
410 mv bluetooth-frwk.service bluetooth-frwk.service.common
412 %files profile_common
414 %{_unitdir}/starter.target.wants/bluetooth-frwk.service
415 %{_unitdir}/bluetooth-frwk.service.common
416 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
420 mv bluetooth-frwk.service.mobile bluetooth-frwk.service
422 %preun profile_mobile
424 mv bluetooth-frwk.service bluetooth-frwk.service.mobile
426 %files profile_mobile
428 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
429 %{_unitdir}/bluetooth-frwk.service.mobile
430 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
433 %ifarch %{ix86} || %{arm}
436 mv bluetooth-frwk.service.tm1 bluetooth-frwk.service
439 mv bt-core.tm1 bt-core
443 mv bluetooth-frwk.service bluetooth-frwk.service.tm1
446 mv bt-core bt-core.tm1
449 %{_unitdir}/bluetooth-frwk.service.tm1
451 %defattr(-, root, root)
452 %{_bindir}/bt-core.tm1
455 %post profile_wearable
457 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
459 %preun profile_wearable
461 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
463 %files profile_wearable
465 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
466 %{_unitdir}/bluetooth-frwk.service.wearable
467 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
471 mv bluetooth-frwk.service.tv bluetooth-frwk.service
475 mv bluetooth-frwk.service bluetooth-frwk.service.tv
479 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
480 %{_unitdir}/bluetooth-frwk.service.tv
481 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
483 # Note: ivi reuses bluetooth-frwk.service.wearable
486 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
488 pushd %{_datadir}/dbus-1/system-services
489 mv org.projectx.bt.service.ivi org.projectx.bt.service
493 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
495 pushd %{_datadir}/dbus-1/system-services
496 mv org.projectx.bt.service org.projectx.bt.service.ivi
500 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
501 %{_unitdir}/bluetooth-frwk.service.wearable
502 %{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
504 ### added /usr/etc/bluetooth/wearable/stack_info (others: /usr/etc/bluetooth/stack_info))
505 # (for PROFILE WEARABLE)