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(appcore-efl)
33 BuildRequires: pkgconfig(pkgmgr)
34 #BuildRequires: pkgconfig(journal)
35 BuildRequires: pkgconfig(eventsystem)
36 BuildRequires: pkgconfig(libsoup-2.4)
37 BuildRequires: pkgconfig(capi-network-tethering)
39 BuildRequires: pkgconfig(cynara-client)
40 BuildRequires: pkgconfig(cynara-creds-gdbus)
41 BuildRequires: pkgconfig(libtzplatform-config)
42 BuildRequires: pkgconfig(storage)
43 BuildRequires: pkgconfig(capi-system-info)
45 Requires(post): /usr/bin/vconftool
46 Requires(post): /sbin/ldconfig
47 Requires(postun): /sbin/ldconfig
51 Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
52 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
54 %package profile_common
55 Summary: bluetooth-frwk service and conf files for common profile
56 Requires: %{name} = %{version}-%{release}
57 Conflicts: %{name}-profile_mobile
58 Conflicts: %{name}-profile_wearable
59 Conflicts: %{name}-profile_tv
60 Conflicts: %{name}-profile_ivi
61 %description profile_common
62 Bluetooth framework configuration and service files for Tizen common profile
64 %package profile_mobile
65 Summary: bluetooth-frwk service and conf files for mobile profile
66 Requires: %{name} = %{version}-%{release}
67 Conflicts: %{name}-profile_common
68 Conflicts: %{name}-profile_wearable
69 Conflicts: %{name}-profile_tv
70 Conflicts: %{name}-profile_ivi
71 %description profile_mobile
72 Bluetooth framework configuration and service files for Tizen mobile profile
75 %ifarch %{ix86} || %{arm}
76 %package extension-TM1
77 Summary: bluetooth-frwk service and conf files for mobile TM1
78 Requires: %{name}-profile_mobile = %{version}-%{release}
79 %description extension-TM1
80 Bluetooth framework configuration and service files for Tizen mobile TM1
83 %package profile_wearable
84 Summary: bluetooth-frwk service and conf files for wearable profile
85 Requires: %{name} = %{version}-%{release}
86 Conflicts: %{name}-profile_mobile
87 Conflicts: %{name}-profile_common
88 Conflicts: %{name}-profile_tv
89 Conflicts: %{name}-profile_ivi
90 %description profile_wearable
91 Bluetooth framework configuration and service files for Tizen wearable profile
94 Summary: bluetooth-frwk service and conf files for tv profile
95 Requires: %{name} = %{version}-%{release}
96 Conflicts: %{name}-profile_mobile
97 Conflicts: %{name}-profile_wearable
98 Conflicts: %{name}-profile_common
99 Conflicts: %{name}-profile_ivi
100 %description profile_tv
101 Bluetooth framework configuration and service files for Tizen tv profile
104 Summary: bluetooth-frwk service and conf files for ivi profile
105 Requires: %{name} = %{version}-%{release}
106 Conflicts: %{name}-profile_mobile
107 Conflicts: %{name}-profile_wearable
108 Conflicts: %{name}-profile_tv
109 Conflicts: %{name}-profile_common
110 %description profile_ivi
111 Bluetooth framework configuration and service files for Tizen ivi profile
113 %ifarch %{ix86} x86_64
114 %package extension-emulator
115 Summary: bluetooth-frwk service and conf files for emulator
116 Requires: %{name} = %{version}-%{release}
117 %description extension-emulator
118 bluetooth-frwk service and conf files for emulator
119 %endif // ifarch %{ix86} x86_64
122 Summary: Bluetooth framework for BlueZ and Obexd
123 Group: Development/Libraries
124 Requires: %{name} = %{version}-%{release}
127 This package is development files for Bluetooth framework based on BlueZ and Obexd stack.
128 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
131 Summary: Bluetooth Service daemon
132 Group: Network & Connectivity/Bluetooth
133 Requires: %{name} = %{version}-%{release}
136 This package is Bluetooth Service daemon to manage BT services.
139 Summary: Bluetooth HTTP Proxy Service daemon
141 Requires: %{name} = %{version}-%{release}
143 %description httpproxy
144 This package is Bluetooth HTTP Proxy Service daemon
147 Summary: Bluetooth Core daemon
148 Group: Network & Connectivity/Bluetooth
149 Requires: %{name} = %{version}-%{release}
152 This package is Bluetooth core daemon to manage activation / deactivation.
155 Summary: Bluetooth test application
156 Group: Network & Connectivity/Bluetooth
157 Requires: %{name} = %{version}-%{release}
160 This package is Bluetooth test application.
162 %package plugin-headed
163 Summary: Bluetooth plugin Headed
164 Group: Network & Connectivity/Bluetooth
165 Requires: %{name} = %{version}-%{release}
167 %description plugin-headed
168 This package is Bluetooth plugin to manage UI and syspopup
176 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
177 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
178 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
181 export CFLAGS="$CFLAGS -Wall -g -fvisibility=hidden -fPIC"
182 export CFLAGS+=" -DARCH64 -DTIZEN_TEST_EMUL"
183 export CXXFLAGS+=" -DARCH64 -DTIZEN_TEST_EMUL"
184 export FFLAGS+=" -DARCH64 -DTIZEN_TEST_EMUL"
186 export CFLAGS="$CFLAGS -fpie"
187 export LDFLAGS="$CFLAGS -pie"
190 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
191 export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
195 export CFLAGS+=" -DARCH64"
196 export CXXFLAGS+=" -DARCH64"
197 export FFLAGS+=" -DARCH64"
200 export CFLAGS_DEFAULT="$CFLAGS"
201 export CXXFLAGS_DEFAULT="$CXXFLAGS"
202 export FFLAGS_DEFAULT="$FFLAGS"
205 %ifarch %{ix86} || %{arm}
207 export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
208 export CXXFLAGS="$CXXFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
209 export FFLAGS="$FFLAGS_DEFAULT -DTIZEN_FEATURE_RADIO -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
211 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
212 -DCMAKE_LIB_DIR=%{_libdir} \
213 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
214 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
215 -DLIBNOTIFY_SUPPORT=Off \
216 -DLIBNOTIFICATION_SUPPORT=Off
222 cp %{buildroot}%{_bindir}/bt-core tm1/bt-core.tm1
226 %ifarch %{ix86} x86_64
227 export CFLAGS="${CFLAGS_BASE} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
228 export CXXFLAGS="${CXXFLAGS_BASE} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
229 export FFLAGS="${FFLAGS_BASE} -DTIZEN_TEST_EMUL -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
231 mkdir -p build_emulator
233 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
234 -DCMAKE_LIB_DIR=%{_libdir} \
235 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
236 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
237 -DLIBNOTIFY_SUPPORT=Off \
238 -DLIBNOTIFICATION_SUPPORT=Off
244 cp %{buildroot}%{_libdir}/libbluetooth-api.so* build_emulator/
245 pushd build_emulator/
246 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
250 # non-extension-TM1 / non-extension-emulator
252 export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
253 export CXXFLAGS="$CXXFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
254 export FFLAGS="$FFLAGS_DEFAULT -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
256 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
257 -DCMAKE_LIB_DIR=%{_libdir} \
258 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
259 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
260 -DLIBNOTIFY_SUPPORT=Off \
261 -DLIBNOTIFICATION_SUPPORT=Off
270 mkdir -p %{buildroot}%{_unitdir}/starter.target.wants
271 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
274 %ifarch %{ix86} x86_64
275 cp build_emulator/libbluetooth-api.so*.emulator %{buildroot}%{_libdir}/
278 # Rename the postfix (.mobile, .tv, ..) at post script
280 install -m 0644 packaging/bluetooth-frwk-mobile.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.mobile
283 %ifarch %{ix86} || %{arm}
284 cp tm1/bt-core.tm1 %{buildroot}%{_bindir}/
285 install -m 0644 packaging/bluetooth-frwk-mobile-sprd.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.tm1
289 install -m 0644 packaging/bluetooth-frwk-wearable.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.wearable
290 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
291 cp %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
292 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
295 install -m 0644 packaging/bluetooth-frwk-tv.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.tv
298 install -m 0644 packaging/bluetooth-frwk-common.service %{buildroot}%{_unitdir}/bluetooth-frwk.service.common
300 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
301 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/starter.target.wants/bluetooth-frwk.service
303 %postun -p /sbin/ldconfig
306 %manifest %{name}.manifest
308 %defattr(-, root, root)
309 %{_libdir}/libbluetooth-api.so.*
310 %exclude %{_libdir}/libbluetooth-api.so*.emulator
313 %defattr(-, root, root)
314 %{_includedir}/bt-service/bluetooth-api.h
315 %{_includedir}/bt-service/bluetooth-hid-api.h
316 %{_includedir}/bt-service/bluetooth-audio-api.h
317 %{_includedir}/bt-service/bluetooth-telephony-api.h
318 %{_includedir}/bt-service/bluetooth-media-control.h
319 %{_includedir}/bt-service/bluetooth-scmst-api.h
320 %{_includedir}/bt-service/bluetooth-ipsp-api.h
321 %{_libdir}/pkgconfig/bluetooth-api.pc
322 %{_libdir}/libbluetooth-api.so
325 %ifarch %{ix86} x86_64
326 %post extension-emulator
328 for FILE in libbluetooth-api.so*.emulator; do mv "${FILE}" "${FILE%.emulator}"; done
330 %preun extension-emulator
332 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
334 %files extension-emulator
335 %manifest %{name}.manifest
336 %defattr(-, root, root)
337 %{_libdir}/libbluetooth-api.so.*.emulator
338 %{_libdir}/libbluetooth-api.so.emulator
342 %manifest %{name}.manifest
344 %defattr(-, root, root)
345 %{_bindir}/bt-service
346 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
347 %{_bindir}/bluetooth-frwk-test
348 %{_varlibdir}/bluetooth
349 %{_prefix}/etc/bluetooth
352 %manifest %{name}.manifest
354 %defattr(-, root, root)
355 %{_bindir}/bt-httpproxy
356 %{_datadir}/dbus-1/system-services/org.projectx.httpproxy.service
357 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-httpproxy.conf
360 %manifest %{name}.manifest
362 %defattr(-, root, root)
363 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
365 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
368 %manifest %{name}.manifest
370 %defattr(-, root, root)
371 %{_bindir}/bluetooth-frwk-test
372 #{_bindir}/bluetooth-gatt-test
373 #{_bindir}/bluetooth-advertising-test
376 %manifest %{name}.manifest
378 %defattr(-, root, root)
379 %{_libdir}/bt-plugin-headed.so
383 mv bluetooth-frwk.service.common bluetooth-frwk.service
385 %preun profile_common
387 mv bluetooth-frwk.service bluetooth-frwk.service.common
389 %files profile_common
391 %{_unitdir}/starter.target.wants/bluetooth-frwk.service
392 %{_unitdir}/bluetooth-frwk.service.common
393 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
397 mv bluetooth-frwk.service.mobile bluetooth-frwk.service
399 %preun profile_mobile
401 mv bluetooth-frwk.service bluetooth-frwk.service.mobile
403 %files profile_mobile
405 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
406 %{_unitdir}/bluetooth-frwk.service.mobile
407 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
410 %ifarch %{ix86} || %{arm}
413 mv bluetooth-frwk.service.tm1 bluetooth-frwk.service
416 mv bt-core.tm1 bt-core
420 mv bluetooth-frwk.service bluetooth-frwk.service.tm1
423 mv bt-core bt-core.tm1
426 %{_unitdir}/bluetooth-frwk.service.tm1
428 %defattr(-, root, root)
429 %{_bindir}/bt-core.tm1
432 %post profile_wearable
434 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
436 %preun profile_wearable
438 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
440 %files profile_wearable
442 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
443 %{_unitdir}/bluetooth-frwk.service.wearable
444 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
448 mv bluetooth-frwk.service.tv bluetooth-frwk.service
452 mv bluetooth-frwk.service bluetooth-frwk.service.tv
456 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
457 %{_unitdir}/bluetooth-frwk.service.tv
458 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
460 # Note: ivi reuses bluetooth-frwk.service.wearable
463 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
465 pushd %{_datadir}/dbus-1/system-services
466 mv org.projectx.bt.service.ivi org.projectx.bt.service
470 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
472 pushd %{_datadir}/dbus-1/system-services
473 mv org.projectx.bt.service org.projectx.bt.service.ivi
477 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
478 %{_unitdir}/bluetooth-frwk.service.wearable
479 %{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
481 ### added /usr/etc/bluetooth/wearable/stack_info (others: /usr/etc/bluetooth/stack_info))
482 # (for PROFILE WEARABLE)