diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0a5dc6f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libbluedevil-2.1.tar.xz diff --git a/.libbluedevil.metadata b/.libbluedevil.metadata new file mode 100644 index 0000000..07194a9 --- /dev/null +++ b/.libbluedevil.metadata @@ -0,0 +1 @@ +3c0f10b01246461924134139b5af80641f5f88da SOURCES/libbluedevil-2.1.tar.xz diff --git a/SOURCES/0001-Adapter-Add-back-alias-and-setAlias-for-binary-compa.patch b/SOURCES/0001-Adapter-Add-back-alias-and-setAlias-for-binary-compa.patch new file mode 100644 index 0000000..7dedca7 --- /dev/null +++ b/SOURCES/0001-Adapter-Add-back-alias-and-setAlias-for-binary-compa.patch @@ -0,0 +1,85 @@ +From 338bad3d36260be9250277bfdfcb133ab19b376d Mon Sep 17 00:00:00 2001 +From: David Rosca +Date: Sat, 27 Dec 2014 13:16:35 +0100 +Subject: [PATCH] Adapter: Add back alias() and setAlias() for binary + compatibility + +Fixes binary compatibility break from ec29ea82fd8e06ddebffd9c1dbdb53ec6872c3f2 +--- + bluedevil/bluedeviladapter.cpp | 10 ++++++++++ + bluedevil/bluedeviladapter.h | 13 ++++++++++++- + 2 files changed, 22 insertions(+), 1 deletion(-) + +diff --git a/bluedevil/bluedeviladapter.cpp b/bluedevil/bluedeviladapter.cpp +index e8d0abf..960b1d7 100644 +--- a/bluedevil/bluedeviladapter.cpp ++++ b/bluedevil/bluedeviladapter.cpp +@@ -144,6 +144,11 @@ QString Adapter::name() const + return d->m_bluezAdapterInterface->alias(); + } + ++QString Adapter::alias() const ++{ ++ return name(); ++} ++ + QString Adapter::systemName() const + { + return d->m_bluezAdapterInterface->name(); +@@ -219,6 +224,11 @@ void Adapter::setName(const QString& name) + d->m_bluezAdapterInterface->setAlias(name); + } + ++void Adapter::setAlias(const QString &alias) ++{ ++ setName(alias); ++} ++ + void Adapter::setPowered(bool powered) + { + d->m_bluezAdapterInterface->setPowered(powered); +diff --git a/bluedevil/bluedeviladapter.h b/bluedevil/bluedeviladapter.h +index 11cd211..b89ed50 100644 +--- a/bluedevil/bluedeviladapter.h ++++ b/bluedevil/bluedeviladapter.h +@@ -50,6 +50,7 @@ class BLUEDEVIL_EXPORT Adapter + + Q_PROPERTY(QString address READ address) + Q_PROPERTY(QString name READ name WRITE setName) ++ Q_PROPERTY(QString alias READ alias WRITE setAlias) + Q_PROPERTY(QString systemName READ systemName) + Q_PROPERTY(quint32 adapterClass READ adapterClass) + Q_PROPERTY(bool powered READ isPowered WRITE setPowered) +@@ -85,6 +86,11 @@ public: + QString name() const; + + /** ++ * Only for binary compatibility. Same as name(). ++ */ ++ QString alias() const; ++ ++ /** + * @return The system name (hostname) of the adapter. + */ + QString systemName() const; +@@ -152,11 +158,16 @@ public: + + public Q_SLOTS: + /** +- * Set the name (alias) of the adapter ++ * Set the name (alias) of the adapter + */ + void setName(const QString &name); + + /** ++ * Only for binary compatibility. Same as setAlias(). ++ */ ++ void setAlias(const QString &alias); ++ ++ /** + * Sets whether this adapter is consuming energy or not. + */ + void setPowered(bool powered); +-- +2.1.0 + diff --git a/SOURCES/0002-Delete-adapter-only-after-all-devices-from-the-adapt.patch b/SOURCES/0002-Delete-adapter-only-after-all-devices-from-the-adapt.patch new file mode 100644 index 0000000..2361632 --- /dev/null +++ b/SOURCES/0002-Delete-adapter-only-after-all-devices-from-the-adapt.patch @@ -0,0 +1,37 @@ +From a316b2a48d0ad0a6e3ee7ec90a74bc771f4e3c46 Mon Sep 17 00:00:00 2001 +From: David Rosca +Date: Mon, 27 Apr 2015 17:46:06 +0200 +Subject: [PATCH 2/2] Delete adapter only after all devices from the adapter + were removed + +BUG: 346329 +--- + bluedevil/bluedevilmanager_p.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/bluedevil/bluedevilmanager_p.cpp b/bluedevil/bluedevilmanager_p.cpp +index bb65467..3c45f2a 100644 +--- a/bluedevil/bluedevilmanager_p.cpp ++++ b/bluedevil/bluedevilmanager_p.cpp +@@ -162,7 +162,6 @@ void ManagerPrivate::_k_interfacesRemoved(const QDBusObjectPath &objectPath, con + } + if (adapter) { + emit m_q->adapterRemoved(adapter); +- delete adapter; + } + if (m_adapters.isEmpty()) { + emit m_q->usableAdapterChanged(0); +@@ -180,6 +179,10 @@ void ManagerPrivate::_k_interfacesRemoved(const QDBusObjectPath &objectPath, con + Adapter * const adapter = m_devAdapter.take(object); + if (adapter) { + adapter->removeDevice(object); ++ ++ if (adapter->devices().isEmpty()) { ++ adapter->deleteLater(); ++ } + } + } + } +-- +2.3.6 + diff --git a/SOURCES/0003-Only-delete-adapter-when-removed-from-m_adapters-has.patch b/SOURCES/0003-Only-delete-adapter-when-removed-from-m_adapters-has.patch new file mode 100644 index 0000000..c250104 --- /dev/null +++ b/SOURCES/0003-Only-delete-adapter-when-removed-from-m_adapters-has.patch @@ -0,0 +1,37 @@ +From 241d21361a677fa44b3bd0c53e65f12cd23c5ba3 Mon Sep 17 00:00:00 2001 +From: David Rosca +Date: Tue, 5 May 2015 17:04:06 +0200 +Subject: [PATCH 3/3] Only delete adapter when removed from m_adapters hash + +BUG: 346329 +--- + bluedevil/bluedevilmanager_p.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/bluedevil/bluedevilmanager_p.cpp b/bluedevil/bluedevilmanager_p.cpp +index 3c45f2a..af63593 100644 +--- a/bluedevil/bluedevilmanager_p.cpp ++++ b/bluedevil/bluedevilmanager_p.cpp +@@ -162,6 +162,10 @@ void ManagerPrivate::_k_interfacesRemoved(const QDBusObjectPath &objectPath, con + } + if (adapter) { + emit m_q->adapterRemoved(adapter); ++ ++ if (adapter->devices().isEmpty()) { ++ adapter->deleteLater(); ++ } + } + if (m_adapters.isEmpty()) { + emit m_q->usableAdapterChanged(0); +@@ -180,7 +184,7 @@ void ManagerPrivate::_k_interfacesRemoved(const QDBusObjectPath &objectPath, con + if (adapter) { + adapter->removeDevice(object); + +- if (adapter->devices().isEmpty()) { ++ if (adapter->devices().isEmpty() && !m_adapters.values().contains(adapter)) { + adapter->deleteLater(); + } + } +-- +2.4.0 + diff --git a/SPECS/libbluedevil.spec b/SPECS/libbluedevil.spec new file mode 100644 index 0000000..c7d2f37 --- /dev/null +++ b/SPECS/libbluedevil.spec @@ -0,0 +1,117 @@ + +%define stable stable + +Name: libbluedevil +Version: 2.1 +Release: 1%{?dist} +Summary: A Qt wrapper for bluez + +License: LGPLv2+ +URL: https://projects.kde.org/projects/playground/libs/libbluedevil + +%if 0%{?snap} +# git archive --format=tar --remote=git://anongit.kde.org/libbluedevil bluez5 --prefix=libbluedevil-%{version}/ | xz ... +Source0: libbluedevil-%{version}-%{snap}.tar.xz +%else +Source0: http://download.kde.org/%{stable}/libbluedevil/%{version}%{?pre:-%{pre}}/src/libbluedevil-%{version}%{?pre:-%{pre}}.tar.xz +%endif + +## upstream patches +Patch1: 0001-Adapter-Add-back-alias-and-setAlias-for-binary-compa.patch +Patch2: 0002-Delete-adapter-only-after-all-devices-from-the-adapt.patch +Patch3: 0003-Only-delete-adapter-when-removed-from-m_adapters-has.patch + +ExcludeArch: s390 s390x + +BuildRequires: automoc4 +BuildRequires: cmake +BuildRequires: pkgconfig(QtCore) pkgconfig(QtDBus) + +Requires: bluez >= 5 + +%description +%{name} is Qt-based library written handle all Bluetooth functionality. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files for %{name}. + + +%prep +%autosetup -n libbluedevil-%{version}%{?pre:-%{pre}} -p1 + + +%build +mkdir %{_target_platform} +pushd %{_target_platform} +%{cmake} .. +popd + +make %{?_smp_mflags} -C %{_target_platform} + + +%install +make install/fast DESTDIR=%{buildroot} -C %{_target_platform} + + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%{_libdir}/libbluedevil.so.2* + +%files devel +%doc HACKING +%{_includedir}/bluedevil/ +%{_libdir}/libbluedevil.so +%{_libdir}/pkgconfig/bluedevil.pc + + +%changelog +* Mon May 25 2015 Jan Grulich - 2.1-1 +- Re-base to 2.1 (sync with F21) + +* Fri Dec 27 2013 Daniel Mach - 1.9.2-5 +- Mass rebuild 2013-12-27 + +* Wed Jun 19 2013 Rex Dieter 1.9.2-4 +- ExcludeArch: s390 s390x (#975736) + +* Thu Feb 14 2013 Fedora Release Engineering - 1.9.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 1.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Apr 29 2012 Rex Dieter 1.9.2-1 +- 1.9.2 + +* Fri Mar 30 2012 Rex Dieter 1.9.1-1 +- 1.9.1 + +* Fri Jan 13 2012 Fedora Release Engineering - 1.9-0.2.20110502git +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon May 02 2011 Jaroslav Reznik - 1.9-0.1 +- update to pre-release snapshot of 1.9 + +* Mon Mar 28 2011 Jaroslav Reznik - 1.8.1-1 +- update to 1.8.1 + +* Mon Feb 07 2011 Fedora Release Engineering - 1.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Nov 30 2010 Jaroslav Reznik - 1.8-3 +- update to 1.8-1 (respin?) + +* Wed Sep 29 2010 jkeating - 1.8-2 +- Rebuilt for gcc bug 634757 + +* Tue Sep 21 2010 Jaroslav Reznik - 1.8-1 +- update to 1.8 + +* Fri Aug 13 2010 Jaroslav Reznik - 1.7-1 +- initial package