import dleyna-renderer-0.6.0-2.el8

This commit is contained in:
CentOS Sources 2019-05-07 07:00:57 -04:00 committed by Andrew Lukoshko
commit 3900841759
4 changed files with 227 additions and 0 deletions

View File

@ -0,0 +1 @@
2c590af078c9f500a7639d2af2274507b1e4213e SOURCES/dleyna-renderer-0.6.0.tar_2.gz

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/dleyna-renderer-0.6.0.tar_2.gz

View File

@ -0,0 +1,77 @@
From 916daa1bf04bfb1d8823c3f677a021bf41df1db0 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@freedesktop.org>
Date: Tue, 20 Jan 2015 13:59:33 +0100
Subject: [PATCH] Disconnect signal handlers during destruction
A GUPnPContextManager can outlive a dlr_upnp_t because it might be
using asynchronous operations during its construction (eg.,
GUPnPNetworkManager) which retain references to it. This can be
demonstrated if the service is spawned as a result of the following
command:
$ gdbus call \
--session \
--dest com.intel.dleyna-renderer \
--object-path /com/intel/dLeynaRenderer \
--method com.intel.dLeynaRenderer.Manager.Release
This leads to the signal handlers being invoked with an invalid
dlr_upnp_t and the outcome is a crash.
To avoid this, we should disconnect the callbacks listening to the
context manager and the control points belonging to it.
---
libdleyna/renderer/upnp.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/libdleyna/renderer/upnp.c b/libdleyna/renderer/upnp.c
index 17cbda720bc1..707dc09aaf5a 100644
--- a/libdleyna/renderer/upnp.c
+++ b/libdleyna/renderer/upnp.c
@@ -45,6 +45,7 @@ struct dlr_upnp_t_ {
void *user_data;
GHashTable *server_udn_map;
GHashTable *server_uc_map;
+ GList *cps;
dlr_host_service_t *host_service;
};
@@ -352,6 +353,7 @@ static void prv_on_context_available(GUPnPContextManager *context_manager,
gssdp_resource_browser_set_active(GSSDP_RESOURCE_BROWSER(cp), TRUE);
gupnp_context_manager_manage_control_point(upnp->context_manager, cp);
+ upnp->cps = g_list_prepend (upnp->cps, g_object_ref (cp));
g_object_unref(cp);
}
@@ -390,10 +392,28 @@ dlr_upnp_t *dlr_upnp_new(dleyna_connector_id_t connection,
void dlr_upnp_delete(dlr_upnp_t *upnp)
{
if (upnp) {
+ GList *l;
+
+ for (l = upnp->cps; l != NULL; l = l->next) {
+ GUPnPControlPoint *cp = GUPNP_CONTROL_POINT (l->data);
+
+ g_signal_handlers_disconnect_by_func (cp,
+ prv_server_available_cb,
+ upnp);
+ g_signal_handlers_disconnect_by_func (cp,
+ prv_server_unavailable_cb,
+ upnp);
+ }
+
+ g_signal_handlers_disconnect_by_func (upnp->context_manager,
+ prv_on_context_available,
+ upnp);
+
dlr_host_service_delete(upnp->host_service);
g_object_unref(upnp->context_manager);
g_hash_table_unref(upnp->server_udn_map);
g_hash_table_unref(upnp->server_uc_map);
+ g_list_free_full (upnp->cps, g_object_unref);
g_free(upnp);
}
--
2.9.5

148
SPECS/dleyna-renderer.spec Normal file
View File

@ -0,0 +1,148 @@
%global api 1.0
Name: dleyna-renderer
Version: 0.6.0
Release: 2%{?dist}
Summary: Service for interacting with Digital Media Renderers
License: LGPLv2
URL: https://01.org/dleyna/
Source0: https://01.org/sites/default/files/downloads/dleyna/%{name}-%{version}.tar_2.gz
# https://bugzilla.gnome.org/show_bug.cgi?id=741257
Patch0: 0001-UPnP-Disconnect-signal-handlers-during-destruction.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: pkgconfig(dleyna-core-1.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gssdp-1.0)
BuildRequires: pkgconfig(gupnp-1.0)
BuildRequires: pkgconfig(gupnp-av-1.0)
BuildRequires: pkgconfig(gupnp-dlna-2.0)
BuildRequires: pkgconfig(libsoup-2.4)
Requires: dbus
Requires: dleyna-connector-dbus%{?_isa}
%description
D-Bus service for clients to discover and manipulate DLNA Digital Media
Renderers (DMRs).
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q
%patch0 -p1
%build
autoreconf -f -i
%configure \
--disable-silent-rules \
--disable-static
# Omit unused direct shared library dependencies.
sed --in-place --expression 's! -shared ! -Wl,--as-needed\0!g' libtool
make %{?_smp_mflags}
%install
%make_install
find $RPM_BUILD_ROOT -name '*.la' -delete
# We don't need to install the headers because only the daemon is supposed to be
# using the library.
rm -rf $RPM_BUILD_ROOT/%{_includedir}
rm -f $RPM_BUILD_ROOT/%{_libdir}/%{name}/libdleyna-renderer-%{api}.so
%files
%license COPYING
%doc AUTHORS
%doc ChangeLog
%doc README
%{_datadir}/dbus-1/services/com.intel.%{name}.service
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/libdleyna-renderer-%{api}.so.*
%{_libexecdir}/%{name}-service
%config(noreplace) %{_sysconfdir}/%{name}-service.conf
%files devel
%{_libdir}/pkgconfig/dleyna-renderer-service-%{api}.pc
%changelog
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Oct 06 2017 Debarshi Ray <rishi@fedoraproject.org> - 0.6.0-1
- Update to 0.6.0
* Fri Oct 06 2017 Debarshi Ray <rishi@fedoraproject.org> - 0.5.0-9
- Use arch-specific Requires on dleyna-connector-dbus
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Sep 15 2016 Debarshi Ray <rishi@fedoraproject.org> - 0.5.0-5
- Avoid any attempts to delete the same dlr_upnp_t twice (RH #1251366)
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jan 21 2016 Kalev Lember <klember@redhat.com> - 0.5.0-3
- Add -devel subpackage with the .pc file
- Use make_install macro
- Use license macro for COPYING
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu May 07 2015 Debarshi Ray <rishi@fedoraproject.org> - 0.5.0-1
- Update to 0.5.0
* Tue Jan 20 2015 Debarshi Ray <rishi@fedoraproject.org> - 0.4.0-4
- Fix crash when spawned by a call to com.intel.dLeynaRenderer.Manager.Release
(RH #1154788)
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Wed Jan 15 2014 Bastien Nocera <bnocera@redhat.com> - 0.4.0-1
- Update to 0.4.0
* Mon Sep 02 2013 Debarshi Ray <rishi@fedoraproject.org> - 0.1.3-2
- Do not remove the rpaths anymore because the library has now been moved to a
private location.
* Mon Sep 02 2013 Debarshi Ray <rishi@fedoraproject.org> - 0.1.3-1
- Update to 0.1.3.
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Jun 26 2013 Debarshi Ray <rishi@fedoraproject.org> - 0.1.1-1
- Initial spec.