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)
43 BuildRequires: pkgconfig(capi-appfw-app-control)
45 Requires(post): /usr/bin/vconftool
46 Requires(post): /sbin/ldconfig
47 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 /usr/bin/chsmack -a '_' %{_varlibdir}/bluetooth/auto-pair-blacklist
321 /usr/bin/chown 5001:100 %{_varlibdir}/bluetooth/auto-pair-blacklist
324 %manifest %{name}.manifest
326 %defattr(-, root, root)
327 %{_libdir}/libbluetooth-api.so.*
328 %exclude %{_libdir}/libbluetooth-api.so*.emulator
331 %defattr(-, root, root)
332 %{_includedir}/bt-service/bluetooth-api.h
333 %{_includedir}/bt-service/bluetooth-hid-api.h
334 %{_includedir}/bt-service/bluetooth-audio-api.h
335 %{_includedir}/bt-service/bluetooth-telephony-api.h
336 %{_includedir}/bt-service/bluetooth-media-control.h
337 %{_includedir}/bt-service/bluetooth-scmst-api.h
338 %{_includedir}/bt-service/bluetooth-ipsp-api.h
339 %{_libdir}/pkgconfig/bluetooth-api.pc
340 %{_libdir}/libbluetooth-api.so
343 %ifarch %{ix86} x86_64
344 %post extension-emulator
346 for FILE in libbluetooth-api.so*.emulator; do mv "${FILE}" "${FILE%.emulator}"; done
348 %preun extension-emulator
350 for FILE in libbluetooth-api.so*; do mv "${FILE}" "${FILE}.emulator"; done
352 %files extension-emulator
353 %manifest %{name}.manifest
354 %defattr(-, root, root)
355 %{_libdir}/libbluetooth-api.so.*.emulator
356 %{_libdir}/libbluetooth-api.so.emulator
360 %manifest %{name}.manifest
362 %defattr(-, root, root)
363 %{_bindir}/bt-service
364 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
365 %{_bindir}/bluetooth-frwk-test
366 %{_varlibdir}/bluetooth
367 %{_prefix}/etc/bluetooth
368 %attr(-,owner,users) %{_varlibdir}/bluetooth/auto-pair-blacklist
371 %manifest %{name}.manifest
373 %defattr(-, root, root)
374 %{_bindir}/bt-httpproxy
375 %{_datadir}/dbus-1/system-services/org.projectx.httpproxy.service
376 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-httpproxy.conf
380 %manifest %{name}.manifest
382 %defattr(-, root, root)
384 %{_datadir}/dbus-1/system-services/org.projectx.otp.service
385 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-otp.conf
388 %manifest %{name}.manifest
390 %defattr(-, root, root)
391 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
393 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
396 %manifest %{name}.manifest
398 %defattr(-, root, root)
399 %{_bindir}/bluetooth-frwk-test
400 #{_bindir}/bluetooth-gatt-test
401 #{_bindir}/bluetooth-advertising-test
404 %manifest %{name}.manifest
406 %defattr(-, root, root)
407 %{_libdir}/bt-plugin-headed.so
411 mv bluetooth-frwk.service.common bluetooth-frwk.service
413 %preun profile_common
415 mv bluetooth-frwk.service bluetooth-frwk.service.common
417 %files profile_common
419 %{_unitdir}/starter.target.wants/bluetooth-frwk.service
420 %{_unitdir}/bluetooth-frwk.service.common
421 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
425 mv bluetooth-frwk.service.mobile bluetooth-frwk.service
427 %preun profile_mobile
429 mv bluetooth-frwk.service bluetooth-frwk.service.mobile
431 %files profile_mobile
433 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
434 %{_unitdir}/bluetooth-frwk.service.mobile
435 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
438 %ifarch %{ix86} || %{arm}
441 mv bluetooth-frwk.service.tm1 bluetooth-frwk.service
444 mv bt-core.tm1 bt-core
448 mv bluetooth-frwk.service bluetooth-frwk.service.tm1
451 mv bt-core bt-core.tm1
454 %{_unitdir}/bluetooth-frwk.service.tm1
456 %defattr(-, root, root)
457 %{_bindir}/bt-core.tm1
460 %post profile_wearable
462 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
464 %preun profile_wearable
466 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
468 %files profile_wearable
470 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
471 %{_unitdir}/bluetooth-frwk.service.wearable
472 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
476 mv bluetooth-frwk.service.tv bluetooth-frwk.service
480 mv bluetooth-frwk.service bluetooth-frwk.service.tv
484 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
485 %{_unitdir}/bluetooth-frwk.service.tv
486 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
488 # Note: ivi reuses bluetooth-frwk.service.wearable
491 mv bluetooth-frwk.service.wearable bluetooth-frwk.service
493 pushd %{_datadir}/dbus-1/system-services
494 mv org.projectx.bt.service.ivi org.projectx.bt.service
498 mv bluetooth-frwk.service bluetooth-frwk.service.wearable
500 pushd %{_datadir}/dbus-1/system-services
501 mv org.projectx.bt.service org.projectx.bt.service.ivi
505 %{_unitdir}/multi-user.target.wants/bluetooth-frwk.service
506 %{_unitdir}/bluetooth-frwk.service.wearable
507 %{_datadir}/dbus-1/system-services/org.projectx.bt.service.ivi
509 ### added /usr/etc/bluetooth/wearable/stack_info (others: /usr/etc/bluetooth/stack_info))
510 # (for PROFILE WEARABLE)