Package: coherence
Version: 0.6.6.2-5
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu oneiric ubuntu-patch
In Ubuntu, the attached patch was applied to achieve the following:
* Apply patch from Martin Bartlett that resolves Coherence and
Rhythmbox UPNP not seeing a media server. (LP: #621722)
Thanks for considering the patch.
-- System Information:
Debian Release: wheezy/sid
APT prefers oneiric-updates
APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500,
'oneiric-proposed'), (500, 'oneiric')
Architecture: amd64 (x86_64)
Kernel: Linux 3.0.0-7-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru coherence-0.6.6.2/debian/patches/03_last_updated_service_field_workaround coherence-0.6.6.2/debian/patches/03_last_updated_service_field_workaround
--- coherence-0.6.6.2/debian/patches/03_last_updated_service_field_workaround 1969-12-31 19:00:00.000000000 -0500
+++ coherence-0.6.6.2/debian/patches/03_last_updated_service_field_workaround 2011-07-28 18:06:53.000000000 -0400
@@ -0,0 +1,23 @@
+Description: Force an update of the last_time_updated service field so that some clients will refresh
+Forwarded: http://coherence.beebits.net/ticket/320
+Author: Martin Bartlett
+Reviewed-By: Daniel T Chen <[email protected]>
+Origin: Martin Bartlett, https://bugs.launchpad.net/ubuntu/+source/coherence/+bug/621722/+attachment/1515639/+files/service.py.patch
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/coherence/+bug/621722
+Last-Update: 2011-07-28
+
+--- coherence/service.py 2010-08-24 16:23:50.000000000 +0200
++++ ./coherence/upnp/core/service.py 2010-08-24 16:21:23.000000000 +0200
+@@ -368,6 +368,12 @@
+ self.detection_completed = True
+ louie.send('Coherence.UPnP.Service.detection_completed', sender=self.device, device=self.device)
+ self.info("send signal Coherence.UPnP.Service.detection_completed for %r" % self)
++ if self.last_time_updated == None:
++ # The clients (e.g. media_server_client) check for last time to detect whether service detection is complete
++ # so we need to set it here and now to avoid a potential race condition
++ self.last_time_updated = time.time()
++ louie.send('Coherence.UPnP.DeviceClient.Service.notified', sender=self.device, service=self)
++ self.info("send signal Coherence.UPnP.DeviceClient.Service.notified for %r" % self)
+ """
+ if (self.last_time_updated == None):
+ if( self.id.endswith('AVTransport') or
diff -Nru coherence-0.6.6.2/debian/patches/series coherence-0.6.6.2/debian/patches/series
--- coherence-0.6.6.2/debian/patches/series 2010-06-07 15:34:41.000000000 -0400
+++ coherence-0.6.6.2/debian/patches/series 2011-07-28 18:00:21.000000000 -0400
@@ -1,2 +1,3 @@
02_string_exception_fix
01_systray_fix
+03_last_updated_service_field_workaround