%define _usrlibdir /usr/lib Name: bluetooth-agent Summary: Bluetooth agent packages that support various external profiles Version: 0.1.3 Release: 1 Group: Network & Connectivity/Bluetooth License: Apache-2.0 Source0: %{name}-%{version}.tar.gz Source1001: bluetooth-agent.manifest BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(bluetooth-api) # The profile macro usage with the following comments may be removed after # Tizen OBS build projects are merged. However, each vendor may keep using # such if/endif statement to skip building profiles not interested # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" # Original: wearable, ivi. Added: common, "undefined" BuildRequires: pkgconfig(alarm-service) BuildRequires: pkgconfig(capi-appfw-app-manager) BuildRequires: pkgconfig(capi-system-device) %endif # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "wearable" && "%{?profile}" != "ivi" # Original: common, mobile, tv. Added: "undefined" BuildRequires: pkgconfig(contacts-service2) BuildRequires: pkgconfig(msg-service) BuildRequires: pkgconfig(email-service) %endif BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(tapi) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(vconf) BuildRequires: pkgconfig(appsvc) BuildRequires: pkgconfig(capi-appfw-application) BuildRequires: pkgconfig(capi-network-connection) BuildRequires: pkgconfig(capi-network-bluetooth) BuildRequires: pkgconfig(capi-media-image-util) BuildRequires: pkgconfig(contacts-service2) BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(gio-2.0) BuildRequires: cmake Requires: security-config Requires: %{name}-compat = %{version}-%{release} Recommends: %{name}-profile_common = %{version}-%{release} %description Bluetooth agent packages that support various external profiles %package profile_common Summary: Bluetooth agent for common/tv/mobile Provides: %{name}-compat = %{version}-%{release} Provides: %{name}-profile_mobile = %{version}-%{release} Provides: %{name}-profile_tv = %{version}-%{release} Conflicts: %{name}-profile_ivi Conflicts: %{name}-profile_wearable %description profile_common Bluetooth agent binary compiled for common, tv, mobile profiles %package profile_ivi Summary: Bluetooth agent for ivi Provides: %{name}-compat = %{version}-%{release} Conflicts: %{name}-profile_common Conflicts: %{name}-profile_wearable %description profile_ivi Bluetooth agent binary compiled for ivi profile %package profile_wearable Summary: Bluetooth agent for wearable Provides: %{name}-compat = %{version}-%{release} Conflicts: %{name}-profile_common Conflicts: %{name}-profile_ivi %description profile_wearable Bluetooth agent binary compiled for wearable profile %package ipsp Summary: Bluetooth Ipsp daemon Group: Network & Connectivity/Bluetooth Requires: %{name} = %{version}-%{release} %description ipsp This package is Bluetooth ipsp daemon to manage activation / deactivation. %prep %setup -q cp %{SOURCE1001} . %build export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" #export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_MEDIA_ENHANCE" export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_HFP_AG" export CFLAGS="$CFLAGS -DTIZEN_SUPPORT_DUAL_HF" %ifarch aarch64 echo arch64 export CFLAGS+=" -DARCH64" export CXXFLAGS+=" -DARCH64" export FFLAGS+=" -DARCH64" %endif %ifarch x86_64 echo x86_64 export CFLAGS+=" -DARCH64" export CXXFLAGS+=" -DARCH64" export FFLAGS+=" -DARCH64" %endif export CFLAGS+=" -fpie -DTIZEN_FEATURE_BP_PBAP_SIM -fvisibility=hidden " export CXXFLAGS+=" -fpie -DTIZEN_FEATURE_BP_PBAP_SIM -fvisibility=hidden " export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie" export CFLAGS_DEFAULT="$CFLAGS" # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" # Original: wearable, ivi. Added: common, "undefined" # Build Wearable export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_PROFILE_WEARABLE" export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_LUNAR_DEVICE" mkdir -p wearable_build pushd wearable_build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/wearable -DTIZEN_PROFILE_WEARABLE=1 -DTIZEN_FEATURE_BT_HFP_AG=1 make VERBOSE=1 popd # Build IVI # TODO: BT-Agent Developers, Please Check if TIZEN_KIRAN is really need for ALL NON-WEARABLES. export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_BT_KIRAN_DEVICE" export CFLAGS="$CFLAGS -DTIZEN_PROFILE_IVI" mkdir -p ivi_build pushd ivi_build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/ivi -DTIZEN_PROFILE_WEARABLE=0 -DTIZEN_PROFILE_IVI=1 -DTIZEN_FEATURE_BT_HFP_AG=1 make VERBOSE=1 popd %endif # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "wearable" && "%{?profile}" != "ivi" # Original: common, mobile, tv. Added: "undefined" # Build All Others (common/tv/mobile) # TODO: BT-Agent Developers, Please Check if TIZEN_KIRAN is really need for ALL NON-WEARABLES. export CFLAGS="$CFLAGS_DEFAULT -DTIZEN_FEATURE_BT_KIRAN_DEVICE" mkdir -p common_build pushd common_build cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DTIZEN_PROFILE_WEARABLE=0 -DTIZEN_FEATURE_BT_HFP_AG=1 make VERBOSE=1 popd %endif %install rm -rf %{buildroot} # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" # Original: wearable, ivi. Added: common, "undefined" pushd wearable_build %make_install popd pushd ivi_build %make_install popd %endif # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "wearable" && "%{?profile}" != "ivi" # Original: common, mobile, tv. Added: "undefined" pushd common_build %make_install popd %endif install -D -m 0644 packaging/bluetooth-map-agent.service %{buildroot}%{_libdir}/systemd/system/bluetooth-map-agent.service # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" # Original: wearable, ivi. Added: common, "undefined" mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services mkdir -p %{buildroot}%{_bindir}/ install -D -m 0644 %{buildroot}/usr/wearable/share/dbus-1/system-services/org.bluez.hf_agent.service %{buildroot}%{_datadir}/dbus-1/system-services/ install -D -m 0644 %{buildroot}/usr/wearable/share/dbus-1/system-services/org.projectx.bt_ipsp.service %{buildroot}%{_datadir}/dbus-1/system-services/ install -D -m 0644 %{buildroot}/usr/wearable/bin/bluetooth-hf-agent %{buildroot}%{_bindir}/ install -D -m 0644 %{buildroot}/usr/wearable/bin/bt-ipsp %{buildroot}%{_bindir}/ install -D -m 0644 %{buildroot}/usr/ivi/share/dbus-1/system-services/org.projectx.bt_ipsp.service %{buildroot}%{_datadir}/dbus-1/system-services/ install -D -m 0644 %{buildroot}/usr/ivi/bin/bluetooth-hf-agent %{buildroot}%{_bindir}/bluetooth-hf-agent.ivi install -D -m 0644 %{buildroot}/usr/ivi/bin/bt-ipsp %{buildroot}%{_bindir}/ rm -Rf %{buildroot}/usr/ivi rm -Rf %{buildroot}/usr/wearable %endif install -D -m 0644 packaging/bluetooth-pbap-agent.service %{buildroot}%{_libdir}/systemd/system/bluetooth-pbap-agent.service %post %if 0%{?sec_product_feature_bt_map_server_enable} ln -sf %{_libdir}/systemd/user/bluetooth-map-agent.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/ %endif ln -sf %{_libdir}/systemd/system/bluetooth-pbap-agent.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/ # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" # Original: wearable, ivi. Added: common, "undefined" %post profile_ivi ln -sf bluetooth-hf-agent.ivi %{_bindir}/bluetooth-hf-agent %preun profile_ivi rm %{_bindir}/bluetooth-hf-agent %endif %files %manifest %{name}.manifest %license LICENSE %defattr(-, root, root) # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" # Original: wearable, ivi. Added: common, "undefined" %files profile_wearable %license LICENSE %{_bindir}/bluetooth-hf-agent %{_bindir}/bluetooth-ag-agent %{_datadir}/dbus-1/system-services/org.bluez.hf_agent.service %{_datadir}/dbus-1/system-services/org.bluez.ag_agent.service %{_sysconfdir}/dbus-1/system.d/bluetooth-ag-agent.conf %exclude %{_libdir}/systemd/system/bluetooth-map-agent.service %exclude %{_libdir}/systemd/system/bluetooth-pbap-agent.service %files profile_ivi %license LICENSE %{_bindir}/bluetooth-hf-agent.ivi %{_datadir}/dbus-1/system-services/org.bluez.hf_agent.service %exclude %{_libdir}/systemd/system/bluetooth-map-agent.service %exclude %{_libdir}/systemd/system/bluetooth-pbap-agent.service %endif # This usage of profile macro does NOT conflict 4.0 configurability. %if "%{?profile}" != "wearable" && "%{?profile}" != "ivi" # Original: common, mobile, tv. Added: "undefined" %files profile_common %license LICENSE %{_bindir}/bluetooth-ag-agent %{_bindir}/bluetooth-map-agent %{_bindir}/bluetooth-pb-agent %{_datadir}/dbus-1/system-services/org.bluez.pb_agent.service %{_datadir}/dbus-1/system-services/org.bluez.map_agent.service %{_datadir}/dbus-1/system-services/org.bluez.ag_agent.service %attr(0666,-,-) /var/lib/bluetooth/voice-recognition-blacklist %{_sysconfdir}/dbus-1/system.d/bluetooth-ag-agent.conf %{_libdir}/systemd/system/bluetooth-map-agent.service %{_libdir}/systemd/system/bluetooth-pbap-agent.service %endif %files ipsp %manifest %{name}.manifest %license LICENSE %defattr(-, root, root) %{_datadir}/dbus-1/system-services/org.projectx.bt_ipsp.service %{_bindir}/bt-ipsp %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-ipsp.conf