+%bcond_with x
%define _dumpdir /opt/etc/dump.d/module.d
%define _varlibdir /opt/var/lib
Name: bluetooth-frwk
Summary: Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
-Version: 0.2.148
+Version: 0.2.156
Release: 1
-Group: TO_BE/FILLED_IN
+Group: Network & Connectivity/Bluetooth
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
+Source1001: bluetooth-frwk.manifest
-Requires: sys-assert
Requires: dbus
Requires: syspopup
+%if "%{?profile}" != "mobile"
+Requires: bluetooth-tools
+%endif
BuildRequires: pkgconfig(aul)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(vconf)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(dbus-1)
-BuildRequires: pkgconfig(utilX)
BuildRequires: pkgconfig(capi-network-connection)
BuildRequires: pkgconfig(alarm-service)
-BuildRequires: pkgconfig(security-server)
BuildRequires: pkgconfig(capi-content-mime-type)
BuildRequires: pkgconfig(appcore-efl)
BuildRequires: pkgconfig(pkgmgr)
-BuildRequires: pkgconfig(journal)
+#BuildRequires: pkgconfig(journal)
BuildRequires: pkgconfig(eventsystem)
-%if "%{?tizen_profile_name}" == "mobile"
+BuildRequires: pkgconfig(libsoup-2.4)
+%if "%{?profile}" == "mobile"
BuildRequires: pkgconfig(capi-network-tethering)
%endif
-
BuildRequires: cmake
-
-Requires(post): vconf
-Requires(postun): eglibc
+BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(cynara-creds-gdbus)
+BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(storage)
+
+Requires(post): /usr/bin/vconftool
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
Requires: psmisc
%description
%package devel
Summary: Bluetooth framework for BlueZ and Obexd
-Group: TO_BE/FILLED
+Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
%package service
Summary: Bluetooth Service daemon
-Group: TO_BE/FILLED
+Group: Network & Connectivity/Bluetooth
Requires: %{name} = %{version}-%{release}
%description service
This package is Bluetooth Service daemon to manage BT services.
+%package httpproxy
+Summary: Bluetooth HTTP Proxy Service daemon
+Group: TO_BE/FILLED
+Requires: %{name} = %{version}-%{release}
+
+%description httpproxy
+This package is Bluetooth HTTP Proxy Service daemon
+
%package core
Summary: Bluetooth Core daemon
-Group: TO_BE/FILLED
+Group: Network & Connectivity/Bluetooth
Requires: %{name} = %{version}-%{release}
%description core
%package test
Summary: Bluetooth test application
-Group: TO_BE/FILLED
+Group: Network & Connectivity/Bluetooth
Requires: %{name} = %{version}-%{release}
%description test
%prep
%setup -q
+cp %{SOURCE1001} .
%build
export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
-%if "%{?tizen_profile_name}" == "mobile"
-export CFLAGS="$CFLAGS -DTIZEN_NETWORK_TETHERING_ENABLE"
+%define _servicefile packaging/bluetooth-frwk-common.service
+%define _servicedir starter.target.wants
+
+%if "%{?profile}" == "mobile"
+export CFLAGS="$CFLAGS -DTIZEN_FEATURE_NETWORK_TETHERING_ENABLE -DTIZEN_FEATURE_FLIGHTMODE_ENABLED -DTIZEN_PROFILE_MOBILE -DTIZEN_FEATURE_TELEPHONY_ENABLED"
+%if "%{?tizen_target_name}" == "TM1"
+%define _servicefile packaging/bluetooth-frwk-mobile-sprd.service
+%else
+%define _servicefile packaging/bluetooth-frwk-mobile.service
+%endif
+%define _servicedir multi-user.target.wants
%endif
-%if "%{?tizen_profile_name}" == "wearable"
-export CFLAGS="$CFLAGS -DTIZEN_WEARABLE"
+%if "%{?profile}" == "wearable"
+export CFLAGS="$CFLAGS -DTIZEN_PROFILE_WEARABLE -DTIZEN_FEATURE_FLIGHTMODE_ENABLED"
%define _servicefile packaging/bluetooth-frwk-wearable.service
%define _servicedir multi-user.target.wants
-%else
-%define _servicefile packaging/bluetooth-frwk-mobile.service
-%define _servicedir graphical.target.wants
%endif
+
+%if "%{?profile}" == "tv"
+export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_USB_DONGLE -DTIZEN_PROFILE_TV"
+%define _servicefile packaging/bluetooth-frwk-tv.service
+%define _servicedir multi-user.target.wants
+%endif
+
+%if "%{?profile}" == "ivi"
+export CFLAGS="$CFLAGS -DTIZEN_PROFILE_IVI"
+%define _servicefile packaging/bluetooth-frwk-wearable.service
%define _servicedir multi-user.target.wants
+%endif
-%if "%{?tizen_profile_name}" == "mobile"
-export CFLAGS="$CFLAGS -DTIZEN_BT_FLIGHTMODE_ENABLED"
+%ifarch x86_64
+export CFLAGS="$CFLAGS -Wall -g -fvisibility=hidden -fPIC"
+%else
+export CFLAGS="$CFLAGS -fpie"
+export LDFLAGS="$CFLAGS -pie"
%endif
-export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
+export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_RFCOMM_DIRECT"
+export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
+
+%if "%{?_with_emulator}" == "1"
+export CFLAGS="$CFLAGS -DTIZEN_TEST_EMUL"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_TEST_EMUL"
+export FFLAGS="$FFLAGS -DTIZEN_TEST_EMUL"
+%endif
-export CFLAGS+=" -fpie -DRFCOMM_DIRECT "
-cmake . -DCMAKE_INSTALL_PREFIX=/usr
+%if "%{?tizen_target_name}" == "TM1"
+export CFLAGS="${CFLAGS} -DTIZEN_FEATURE_RADIO"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_FEATURE_RADIO"
+export FFLAGS="$FFLAGS -DTIZEN_FEATURE_RADIO"
+%endif
+
+%ifarch aarch64
+echo arch64
+export CFLAGS+=" -DARCH64"
+export CXXFLAGS+=" -DARCH64"
+export FFLAGS+=" -DARCH64"
+%endif
+
+cmake . -DCMAKE_INSTALL_PREFIX=/usr \
+-DCMAKE_LIB_DIR=%{_libdir} \
+-DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
+-DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
+ -DLIBNOTIFY_SUPPORT=Off \
+ -DLIBNOTIFICATION_SUPPORT=Off
make
%cmake \
-%if "%{?tizen_profile_name}" == "wearable"
- -DTIZEN_WEARABLE=YES \
+%if "%{?profile}" == "wearable"
+ -DTIZEN_PROFILE_WEARABLE=YES \
%else
- -DTIZEN_WEARABLE=NO \
+ -DTIZEN_PROFILE_WEARABLE=NO \
+%endif
+%if "%{?profile}" == "common"
+ -DTIZEN_PROFILE_WEARABLE=NO \
%endif
%install
install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk
install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-service
+install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-httpproxy
install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-devel
-mkdir -p %{buildroot}%{_libdir}/systemd/system/%{_servicedir}
-install -m 0644 %{_servicefile} %{buildroot}%{_libdir}/systemd/system/bluetooth-frwk.service
-ln -s ../bluetooth-frwk.service %{buildroot}%{_libdir}/systemd/system/%{_servicedir}/bluetooth-frwk.service
+#mkdir -p %{buildroot}%{_libdir}/systemd/user
+#install -m 0644 packaging/bluetooth-frwk-tv.service %{buildroot}%{_libdir}/systemd/user
+mkdir -p %{buildroot}%{_unitdir}/%{_servicedir}
+install -m 0644 %{_servicefile} %{buildroot}%{_unitdir}/bluetooth-frwk.service
+ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/%{_servicedir}/bluetooth-frwk.service
-mkdir -p %{buildroot}%{_dumpdir}
-install -m 0755 bluetooth_log_dump.sh %{buildroot}%{_dumpdir}
-
-%post
-%if "%{?tizen_profile_name}" == "wearable"
-vconftool set -tf int db/bluetooth/status "1" -g 5000 -s tizen::vconf::public::r::platform::rw
-%else
-vconftool set -tf int db/bluetooth/status "0" -g 5000 -s tizen::vconf::public::r::platform::rw
+# On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
+%if "%{profile}"=="ivi"
+sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service
%endif
-#vconftool set -tf int db/bluetooth/lestatus "0" -g 5000 -s tizen::vconf::public::r::platform::rw
-#vconftool set -tf int file/private/bt-core/flight_mode_deactivated "0" -g 5000 -i -s tizen::vconf::platform::rw
-#vconftool set -tf int file/private/bt-core/powersaving_mode_deactivated "0" -g 5000 -i -s tizen::vconf::platform::rw
-#vconftool set -tf int file/private/bt-service/bt_off_due_to_timeout "0" -g 5000 -i -s tizen::vconf::platform::rw
-#vconftool set -tf string memory/bluetooth/sco_headset_name "" -g 5000 -i -s tizen::vconf::platform::rw
-#vconftool set -tf int memory/bluetooth/device "0" -g 5000 -i -s tizen::vconf::platform::rw
-#vconftool set -tf bool memory/bluetooth/dutmode "0" -g 5000 -i -s tizen::vconf::platform::rw
-
-%post service
-mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
-ln -sf %{_libdir}/systemd/system/bluetooth-frwk.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
+
+
+#%post
+#/sbin/ldconfig
+#%if "%{?profile}" == "wearable"
+#vconftool set -f -t int db/bluetooth/status "1" -g 6520
+#%endif
+#%if "%{?profile}" == "mobile"
+#vconftool set -f -t int db/bluetooth/status "0" -g 6520
+#%endif
+#%if "%{?profile}" == "common"
+#vconftool set -f -t int db/bluetooth/status "0" -g 6520
+#%endif
+
+#vconftool set -f -t int db/bluetooth/status "0" -s User
+#vconftool set -f -t int db/bluetooth/lestatus "0" -s User
+#vconftool set -f -t int file/private/bt-core/flight_mode_deactivated "0" -s User
+#vconftool set -f -t int file/private/bt-core/powersaving_mode_deactivated "0" -s User
+#vconftool set -f -t int file/private/bt-service/bt_off_due_to_timeout "0" -s User
+#vconftool set -f -t string memory/bluetooth/sco_headset_name "" -g 6520 -i
+#vconftool set -f -t int memory/bluetooth/device "0" -g 6520 -i
+#vconftool set -f -t bool memory/bluetooth/btsco "0" -g 6520 -i
+#vconftool set -f -t bool memory/bluetooth/dutmode "0" -g 6520 -i
+
+
+#%post service
+#mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
+#ln -sf %{_libdir}/systemd/user/bluetooth-frwk.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
%postun -p /sbin/ldconfig
%files
+%manifest %{name}.manifest
%defattr(-, root, root)
%{_libdir}/libbluetooth-api.so.*
%{_datadir}/license/bluetooth-frwk
-%{_libdir}/systemd/system/%{_servicedir}/bluetooth-frwk.service
-%{_libdir}/systemd/system/bluetooth-frwk.service
+%{_unitdir}/%{_servicedir}/bluetooth-frwk.service
+%{_unitdir}/bluetooth-frwk.service
%files devel
%defattr(-, root, root)
%{_includedir}/bt-service/bluetooth-telephony-api.h
%{_includedir}/bt-service/bluetooth-media-control.h
%{_includedir}/bt-service/bluetooth-scmst-api.h
+%{_includedir}/bt-service/bluetooth-ipsp-api.h
%{_libdir}/pkgconfig/bluetooth-api.pc
%{_libdir}/libbluetooth-api.so
%{_datadir}/license/bluetooth-frwk-devel
%files service
-%manifest bluetooth-frwk.manifest
+%manifest %{name}.manifest
%defattr(-, root, root)
-%{_sysconfdir}/rc.d/init.d/bluetooth-frwk-service
%{_datadir}/dbus-1/system-services/org.projectx.bt.service
%{_bindir}/bt-service
+#%{_libdir}/systemd/user/bluetooth-frwk-tv.service
+%{_unitdir}/%{_servicedir}/bluetooth-frwk.service
+%{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
%{_bindir}/bluetooth-frwk-test
-%{_bindir}/bluetooth-gatt-test
-%{_bindir}/bluetooth-advertising-test
+#%{_bindir}/bluetooth-gatt-test
+#%{_bindir}/bluetooth-advertising-test
%{_varlibdir}/bluetooth
%{_prefix}/etc/bluetooth
-%attr(0666,-,-) %{_varlibdir}/bluetooth/auto-pair-blacklist
-%attr(0666,-,-) %{_prefix}/etc/bluetooth/stack_info
-%{_dumpdir}/bluetooth_log_dump.sh
+#%attr(0666,-,-) %{_varlibdir}/bluetooth/auto-pair-blacklist
+#%attr(0666,-,-) %{_prefix}/etc/bluetooth/stack_info
+#%{_dumpdir}/bluetooth_log_dump.sh
%{_datadir}/license/bluetooth-frwk-service
+%files httpproxy
+%manifest %{name}.manifest
+%defattr(-, root, root)
+%{_bindir}/bt-httpproxy
+%{_datadir}/license/bluetooth-frwk-httpproxy
+%{_datadir}/dbus-1/system-services/org.projectx.httpproxy.service
+%{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-httpproxy.conf
+
%files core
-%manifest bluetooth-frwk-core.manifest
+%manifest %{name}.manifest
%defattr(-, root, root)
%{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
%{_bindir}/bt-core
+%{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
%files test
-%manifest bluetooth-frwk-test.manifest
+%manifest %{name}.manifest
%defattr(-, root, root)
%{_bindir}/bluetooth-frwk-test
-%{_bindir}/bluetooth-gatt-test
-%{_bindir}/bluetooth-advertising-test
+#%{_bindir}/bluetooth-gatt-test
+#%{_bindir}/bluetooth-advertising-test