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 Requires: bluetooth-tools
20 %define bt_bluez_hal ENABLED
21 %define bt_gatt_client_fd ENABLED
22 %define bt_permanent_log DISABLED
23 %define bt_http_proxy DISABLED
24 %define bt_factory_mode DISABLED
26 BuildRequires: pkgconfig(aul)
27 %if %{bt_factory_mode} == ENABLED
28 BuildRequires: pkgconfig(bincfg)
30 BuildRequires: pkgconfig(dlog)
31 BuildRequires: pkgconfig(glib-2.0)
32 BuildRequires: pkgconfig(gio-2.0)
33 BuildRequires: pkgconfig(gio-unix-2.0)
34 BuildRequires: pkgconfig(syspopup-caller)
35 BuildRequires: pkgconfig(vconf)
36 BuildRequires: pkgconfig(libxml-2.0)
37 BuildRequires: pkgconfig(capi-network-connection)
38 BuildRequires: pkgconfig(alarm-service)
39 BuildRequires: pkgconfig(capi-content-mime-type)
40 BuildRequires: pkgconfig(eventsystem)
41 %if %{bt_http_proxy} == ENABLED
42 BuildRequires: pkgconfig(libsoup-2.4)
44 BuildRequires: pkgconfig(capi-network-tethering)
46 BuildRequires: pkgconfig(cynara-client)
47 BuildRequires: pkgconfig(cynara-creds-gdbus)
48 BuildRequires: pkgconfig(libtzplatform-config)
49 BuildRequires: pkgconfig(storage)
50 BuildRequires: pkgconfig(capi-system-info)
51 BuildRequires: pkgconfig(capi-appfw-app-control)
52 BuildRequires: pkgconfig(gmock)
53 BuildRequires: pkgconfig(libactd)
54 BuildRequires: pkgconfig(libsystemd-daemon)
56 Requires(post): /usr/bin/vconftool
57 Requires(post): /sbin/ldconfig
58 Requires(postun): /sbin/ldconfig
61 Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
62 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
64 %package profile_common
65 Summary: bluetooth-frwk service and conf files for common profile
66 Requires: %{name} = %{version}-%{release}
67 Conflicts: %{name}-profile_mobile
68 Conflicts: %{name}-profile_wearable
69 Conflicts: %{name}-profile_tv
70 Conflicts: %{name}-profile_ivi
71 %description profile_common
72 Bluetooth framework configuration and service files for Tizen common profile
74 %package profile_mobile
75 Summary: bluetooth-frwk service and conf files for mobile profile
76 Requires: %{name} = %{version}-%{release}
77 Conflicts: %{name}-profile_common
78 Conflicts: %{name}-profile_wearable
79 Conflicts: %{name}-profile_tv
80 Conflicts: %{name}-profile_ivi
81 %description profile_mobile
82 Bluetooth framework configuration and service files for Tizen mobile profile
85 %ifarch %{ix86} || %{arm}
86 %package extension-TM1
87 Summary: bluetooth-frwk service and conf files for mobile TM1
88 Requires: %{name}-profile_mobile = %{version}-%{release}
89 %description extension-TM1
90 Bluetooth framework configuration and service files for Tizen mobile TM1
93 %package profile_wearable
94 Summary: bluetooth-frwk service and conf files for wearable profile
95 Requires: %{name} = %{version}-%{release}
96 Conflicts: %{name}-profile_mobile
97 Conflicts: %{name}-profile_common
98 Conflicts: %{name}-profile_tv
99 Conflicts: %{name}-profile_ivi
100 %description profile_wearable
101 Bluetooth framework configuration and service files for Tizen wearable profile
104 Summary: bluetooth-frwk service and conf files for tv profile
105 Requires: %{name} = %{version}-%{release}
106 Conflicts: %{name}-profile_mobile
107 Conflicts: %{name}-profile_wearable
108 Conflicts: %{name}-profile_common
109 Conflicts: %{name}-profile_ivi
110 %description profile_tv
111 Bluetooth framework configuration and service files for Tizen tv profile
114 Summary: bluetooth-frwk service and conf files for ivi profile
115 Requires: %{name} = %{version}-%{release}
116 Conflicts: %{name}-profile_mobile
117 Conflicts: %{name}-profile_wearable
118 Conflicts: %{name}-profile_tv
119 Conflicts: %{name}-profile_common
120 %description profile_ivi
121 Bluetooth framework configuration and service files for Tizen ivi profile
123 %ifarch %{ix86} x86_64
124 %package extension-emulator
125 Summary: bluetooth-frwk service and conf files for emulator
126 Requires: %{name} = %{version}-%{release}
127 %description extension-emulator
128 bluetooth-frwk service and conf files for emulator
129 %endif // ifarch %{ix86} x86_64
132 Summary: Bluetooth framework for BlueZ and Obexd
133 Group: Development/Libraries
134 Requires: %{name} = %{version}-%{release}
137 This package is development files for Bluetooth framework based on BlueZ and Obexd stack.
138 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
141 Summary: Bluetooth Service daemon
142 Group: Network & Connectivity/Bluetooth
143 Requires: %{name} = %{version}-%{release}
146 This package is Bluetooth Service daemon to manage BT services.
148 %if %{bt_http_proxy} == ENABLED
150 Summary: Bluetooth HTTP Proxy Service daemon
151 Group: Network & Connectivity/Bluetooth
152 Requires: %{name} = %{version}-%{release}
154 %description httpproxy
155 This package is Bluetooth HTTP Proxy Service daemon
159 Summary: Bluetooth OTP Service daemon
160 Group: Network & Connectivity/Bluetooth
161 Requires: %{name} = %{version}-%{release}
164 This package is Bluetooth OTP Service daemon
167 Summary: Bluetooth Core daemon
168 Group: Network & Connectivity/Bluetooth
169 Requires: %{name} = %{version}-%{release}
172 This package is Bluetooth core daemon to manage activation / deactivation.
175 Summary: Bluetooth test application
176 Group: Network & Connectivity/Bluetooth
177 Requires: %{name} = %{version}-%{release}
180 This package is Bluetooth test application.
183 Summary: Bluetooth OAL
184 Group: Network & Connectivity/Bluetooth
185 Requires: %{name} = %{version}-%{release}
188 This package is BT stack common interface.
190 %package plugin-headed
191 Summary: Bluetooth plugin Headed
192 Group: Network & Connectivity/Bluetooth
193 Requires: %{name} = %{version}-%{release}
195 %description plugin-headed
196 This package is Bluetooth plugin to manage UI and syspopup
198 %package -n bluetooth-haltests
199 Summary: HAL Test package for bluetooth OAL
201 Requires: %{name} = %{version}-%{release}
203 %description -n bluetooth-haltests
204 This package is C-API test application.
212 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
213 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_OBEX"
214 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_PAN_NAP"
215 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_IPSP"
216 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
217 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
218 export CFLAGS="$CFLAGS -DTIZEN_GATT_CLIENT"
219 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_ACTD"
221 %define _servicefile packaging/bluetooth-frwk-common.service
222 %define _servicedir starter.target.wants
224 %if "%{?profile}" == "mobile"
225 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_NETWORK_TETHERING_ENABLE -DTIZEN_FEATURE_FLIGHTMODE_ENABLED -DTIZEN_PROFILE_MOBILE -DTIZEN_FEATURE_TELEPHONY_ENABLED"
226 %if "%{?tizen_target_name}" == "TM1"
227 %define _servicefile packaging/bluetooth-frwk-mobile-sprd.service
229 %define _servicefile packaging/bluetooth-frwk-mobile.service
231 %define _servicedir multi-user.target.wants
234 %if "%{?profile}" == "wearable"
235 export CFLAGS="$CFLAGS -DTIZEN_PROFILE_WEARABLE -DTIZEN_FEATURE_FLIGHTMODE_ENABLED"
236 %define _servicefile packaging/bluetooth-frwk-wearable.service
237 %define _servicedir multi-user.target.wants
240 %if "%{?profile}" == "tv"
241 export CFLAGS="$CFLAGS -DUSB_BLUETOOTH -DTIZEN_TV -DAUTO_ACCEPT"
242 %define _servicefile packaging/bluetooth-frwk-tv.service
243 %define _servicedir multi-user.target.wants
246 %if "%{?profile}" == "ivi"
247 export CFLAGS="$CFLAGS -DTIZEN_PROFILE_IVI"
248 %define _servicefile packaging/bluetooth-frwk-wearable.service
249 %define _servicedir multi-user.target.wants
253 #export CFLAGS="$CFLAGS -Wall -g -fvisibility=hidden -fPIC"
254 export CFLAGS="$CFLAGS -fpie"
255 export CFLAGS+=" -DARCH64"
256 export CXXFLAGS+=" -DARCH64"
257 export FFLAGS+=" -DARCH64"
259 export CFLAGS="$CFLAGS -fpie"
260 export LDFLAGS="$CFLAGS -pie"
263 %if %{bt_bluez_hal} == ENABLED
264 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_RFCOMM_DIRECT -DTIZEN_BT_HAL"
266 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
268 export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
270 %if %{bt_gatt_client_fd} == DISABLED
271 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_GATT_CLIENT_FD_DISABLE"
274 %if %{bt_permanent_log} == ENABLED
275 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_PERMANENT_LOG"
278 %if %{bt_http_proxy} == ENABLED
279 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_HTTP_PROXY"
282 %if %{bt_factory_mode} == ENABLED
283 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_FACTORY_MODE"
286 %ifarch %{ix86} x86_64
287 export CFLAGS+=" -DTIZEN_TEST_EMUL"
288 export CXXFLAGS+=" -DTIZEN_TEST_EMUL"
289 export FFLAGS+=" -DTIZEN_TEST_EMUL"
292 %if %{bt_bluez_hal} == ENABLED
293 export BT_INCLUDE_OAL_BLUEZ=ENABLED
294 export CFLAGS="$CFLAGS -DTIZEN_BT_INCLUDE_OAL_BLUEZ"
296 export BT_INCLUDE_OAL_BLUEZ=DISABLED
299 export CFLAGS_DEFAULT="$CFLAGS"
300 export CXXFLAGS_DEFAULT="$CXXFLAGS"
301 export FFLAGS_DEFAULT="$FFLAGS"
304 %ifarch %{ix86} || %{arm}
306 export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
307 export CXXFLAGS="$CXXFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
308 export FFLAGS="$FFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
310 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
311 -DCMAKE_LIB_DIR=%{_libdir} \
312 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
313 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
314 -DLIBNOTIFY_SUPPORT=Off \
315 -DLIBNOTIFICATION_SUPPORT=Off
321 cp %{buildroot}%{_bindir}/bt-core tm1/bt-core.tm1
325 %ifarch %{ix86} x86_64
326 export CFLAGS="${CFLAGS} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
327 export CXXFLAGS="${CXXFLAGS} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
328 export FFLAGS="${FFLAGS} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
330 mkdir -p build_emulator
332 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
333 -DCMAKE_LIB_DIR=%{_libdir} \
334 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
335 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
336 -DLIBNOTIFY_SUPPORT=Off \
337 -DLIBNOTIFICATION_SUPPORT=Off
343 cp %{buildroot}%{_libdir}/libbluetooth-api.so* build_emulator/
344 pushd build_emulator/
345 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
349 # non-extension-TM1 / non-extension-emulator
351 export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
352 export CXXFLAGS="$CXXFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
353 export FFLAGS="$FFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
357 export CFLAGS+=" -DARCH64"
358 export CXXFLAGS+=" -DARCH64"
359 export FFLAGS+=" -DARCH64"
362 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
363 -DCMAKE_LIB_DIR=%{_libdir} \
364 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
365 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
366 -DLIBNOTIFY_SUPPORT=Off \
367 -DLIBNOTIFICATION_SUPPORT=Off
376 mkdir -p %{buildroot}%{_unitdir}/starter.target.wants
377 mkdir -p %{buildroot}%{_unitdir}/delayed.target.wants
378 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
379 mkdir -p %{buildroot}/%{_prefix}/lib/udev/rules.d
381 cp packaging/99-bluetooth-rfkill.rules %{buildroot}/%{_prefix}/lib/udev/rules.d/99-bluetooth-rfkill.rules
384 %ifarch %{ix86} x86_64
385 cp build_emulator/libbluetooth-api.so*.emulator %{buildroot}%{_libdir}/
386 #mv %{buildroot}/%{_bindir}/bt-service-emul %{buildroot}/%{_bindir}/bt-service
389 # Rename the postfix (.mobile, .tv, ..) at post script
391 install -m 0644 packaging/bluetooth-frwk-mobile.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.mobile
394 %ifarch %{ix86} || %{arm}
395 cp tm1/bt-core.tm1 %{buildroot}%{_bindir}/
396 install -m 0644 packaging/bluetooth-frwk-mobile-sprd.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.tm1
400 install -m 0644 packaging/bluetooth-frwk-wearable.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.wearable
401 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
402 cp %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
403 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
406 install -m 0644 packaging/bluetooth-frwk-tv.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.tv
409 install -m 0644 packaging/bluetooth-frwk-common.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.common
412 install -m 0644 bt-core/bluetooth-frwk-core.service %{buildroot}%{_unitdir}/bluetooth-frwk-core.service
414 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
415 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/starter.target.wants/bluetooth-frwk.service
417 %postun -p /sbin/ldconfig
420 /usr/bin/chsmack -a '_' %{_varlibdir}/bluetooth/auto-pair-blacklist
421 /usr/bin/chown network_fw:network_fw %{_varlibdir}/bluetooth/auto-pair-blacklist
424 %manifest %{name}.manifest
426 %defattr(-, root, root)
427 %{_libdir}/libbluetooth-api.so.*
428 %exclude %{_libdir}/libbluetooth-api.so*.emulator
431 %defattr(-, root, root)
432 %{_includedir}/bt-service/bluetooth-api.h
433 %{_includedir}/bt-service/bluetooth-hid-api.h
434 %{_includedir}/bt-service/bluetooth-audio-api.h
435 %{_includedir}/bt-service/bluetooth-telephony-api.h
436 %{_includedir}/bt-service/bluetooth-media-control.h
437 %{_includedir}/bt-service/bluetooth-scmst-api.h
438 %{_includedir}/bt-service/bluetooth-ipsp-api.h
439 %{_includedir}/bt-service/bluetooth-gatt-server-api.h
440 %{_includedir}/bt-service/bluetooth-gatt-client-api.h
441 %{_libdir}/pkgconfig/bluetooth-api.pc
442 %{_libdir}/libbluetooth-api.so
445 %ifarch %{ix86} x86_64
446 %post extension-emulator
448 for FILE in libbluetooth-api.so*.emulator; do mv "${FILE}" "${FILE%.emulator}"; done
450 %preun extension-emulator
452 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
454 %files extension-emulator
455 %manifest %{name}.manifest
456 %defattr(-, root, root)
457 %{_libdir}/libbluetooth-api.so.*.emulator
458 %{_libdir}/libbluetooth-api.so.emulator
462 %manifest %{name}.manifest
464 %defattr(-, root, root)
465 %{_bindir}/bt-service
466 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
467 %{_bindir}/bluetooth-frwk-test
468 %{_varlibdir}/bluetooth
469 %{_prefix}/etc/bluetooth
470 %attr(-,network_fw,network_fw) %{_varlibdir}/bluetooth/auto-pair-blacklist
472 %if %{bt_http_proxy} == ENABLED
474 %manifest %{name}.manifest
476 %defattr(-, root, root)
477 %{_bindir}/bt-httpproxy
478 %{_datadir}/dbus-1/system-services/org.projectx.httpproxy.service
479 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-httpproxy.conf
483 %manifest %{name}.manifest
485 %defattr(-, root, root)
487 %{_datadir}/dbus-1/system-services/org.projectx.otp.service
488 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-otp.conf
491 %manifest %{name}.manifest
493 %defattr(-, root, root)
494 %{_unitdir}/bluetooth-frwk-core.service
495 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
497 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
498 %{_prefix}/lib/udev/rules.d/99-bluetooth-rfkill.rules
501 %manifest %{name}.manifest
503 %defattr(-, root, root)
504 %{_bindir}/bluetooth-frwk-test
505 #%{_bindir}/bluetooth-gatt-test
506 #%{_bindir}/bluetooth-advertising-test
509 %manifest %{name}.manifest
511 %defattr(-, root, root)
512 %{_libdir}/bt-plugin-headed.so
516 mv bluetooth-frwk.service.common bluetooth-frwk.service
518 %preun profile_common
520 mv bluetooth-frwk.service bluetooth-frwk.service.common
522 %files profile_common
524 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
525 %exclude %{_unitdir}/starter.target.wants/bluetooth-frwk.service
526 %{_unitdir}/bluetooth-frwk.service.common
527 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
531 mv bluetooth-frwk.service.mobile bluetooth-frwk.service
533 %preun profile_mobile
535 mv bluetooth-frwk.service bluetooth-frwk.service.mobile
537 %files profile_mobile
539 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
540 %{_unitdir}/bluetooth-frwk.service.mobile
541 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
544 %ifarch %{ix86} || %{arm}
547 mv bluetooth-frwk.service.tm1 bluetooth-frwk.service
550 mv bt-core.tm1 bt-core
554 mv bluetooth-frwk.service bluetooth-frwk.service.tm1
557 mv bt-core bt-core.tm1
560 %{_unitdir}/bluetooth-frwk.service.tm1
562 %defattr(-, root, root)
563 %{_bindir}/bt-core.tm1
566 %post profile_wearable
568 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
570 %preun profile_wearable
572 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
574 %files profile_wearable
576 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
577 %{_unitdir}/bluetooth-frwk.service.wearable
578 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
582 mv bluetooth-frwk.service.tv bluetooth-frwk.service
586 mv bluetooth-frwk.service bluetooth-frwk.service.tv
590 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
591 %{_unitdir}/bluetooth-frwk.service.tv
592 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
594 # Note: ivi reuses bluetooth-frwk.service.wearable
597 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
599 pushd %{_datadir}/dbus-1/system-services
600 mv org.projectx.bt.service.ivi org.projectx.bt.service
604 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
606 pushd %{_datadir}/dbus-1/system-services
607 mv org.projectx.bt.service org.projectx.bt.service.ivi
611 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
612 %{_unitdir}/bluetooth-frwk.service.wearable
613 %{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
616 %manifest %{name}.manifest
617 %defattr(-, root, root)
618 %{_libdir}/libbt-oal.so*
619 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-gap-agent.conf
621 %if %{bt_bluez_hal} == ENABLED
622 %{_libdir}/libbluetooth.default.so*
625 %files -n bluetooth-haltests
626 %manifest %{name}.manifest
627 %{_bindir}/bluetooth-haltests