debian/0000755000000000000000000000000012202153611007157 5ustar debian/install0000644000000000000000000000016312201702710010547 0ustar misc/org.Coherence.service usr/share/dbus-1/services/ bin/coherence usr/bin/ README usr/share/doc/python-coherence debian/examples0000644000000000000000000000003412201702710010714 0ustar docs/coherence.conf.example debian/manpages0000644000000000000000000000007412201702710010675 0ustar docs/man/coherence.1 misc/Desktop-Applet/applet-coherence.1 debian/applet-coherence.10000644000000000000000000000131412201702710012455 0ustar .TH "python-coherence-applet" "1" "0.6.2" "Frank Scholz" "Python UPnP Framework" .SH "NAME" .LP .LP Coherence \- Is a Python UPnP framework which enabling your application to participate in digital living networks, at the moment primarily the UPnP universe. Its goal is to relieve your application from all the membership and UPnP related tasks as much as possible. The core of Coherence provides a (hopefully complete) implementation of: * a SSDP server, * a MSEARCH client, * server and client for HTTP/SOAP requests, and * server and client for Event Subscription and Notification (GENA). .SH "OVERVIEW" .LP There are no command line options for applet\-coherence. .SH "SEE ALSO" .LP coherence debian/changelog0000644000000000000000000002503212202152021011025 0ustar coherence (0.6.6.2-8) unstable; urgency=low * Remove generated files on clean (Closes: #671245). * Patched to replace use of deprecated FileTransfer class (Closes: 572796) -- Eric Evans Mon, 12 Aug 2013 13:43:58 +0200 coherence (0.6.6.2-7) unstable; urgency=low * New maintainer (Closes: #691229). * New patch to fix tracebacks for missing attribute (Closes: #664027). * Suggest python-qt4, needed by applet (Closes: #660772) -- Eric Evans Sun, 11 Aug 2013 16:36:51 +0200 coherence (0.6.6.2-6) unstable; urgency=low * added pydist-overrided for dhp2 error concerning python-configobj. * debian/patches: - updated header information for all patches. - added 03_last_updated_service_field_workaround. Thanks Danial T. Chen for the bug report and thanks to Martin Bartlett for the patch. Closes: #635835 * debian/rules: - added "--with python2". - use dh_install exclude instead of "rm" to not install uuid. - remove *egg.info in clean target dhp2 will regenerate it. - dh_auto_install override no longer needed. * debian/control: - added DMPT to uploaders field. - use X-P-V instead of XS-P-V - increase python version to 2.6.6-3~. -- Charlie Smotherman Sun, 31 Jul 2011 21:42:42 -0500 coherence (0.6.6.2-5) unstable; urgency=low * debian/rules made use of ${CURDIR} variable in remove statement. * debian/install added README install statement. Closes: #572801 * Removed debian/coherence.docs as it was not installing README into /usr/share/doc/python-coherence/. -- Charlie Smotherman Wed, 30 June 2010 22:43:12 -0500 coherence (0.6.6.2-4) unstable; urgency=low * Added debian/coherence.docs to install README into /usr/share/docs/python-coherence. Closes: #572801 * Added debian/patches/02_string_exception_fix to correct an inappropriate string exception. Closes: #585285 * Added source format 3.0 (quilt). Dropped dependency on quilt as it is no longer needed, removed --with quilt from debian/rules. * Added description to 01_systray_fix. * Moved python, python-twisted-core and python-twisted-web from Build-Depends-Indep to Build-Depends. * debian/control changed Standards-Version to 3.9.0 no changes needed. -- Charlie Smotherman Wed, 30 June 2010 16:10:32 -0500 coherence (0.6.6.2-3) unstable; urgency=low * Corrected applet-coherence icon not showing in systray. Added quilt and added patch 01_systray_fix. Thx Olivier Berger. Closes: #572745 -- Charlie Smotherman Fri, 12 Mar 2010 13:46:00 -0600 coherence (0.6.6.2-2) unstable; urgency=low * Added dh_install call to override_dh_install in debian/rules so dh_install will install /misc/org.Coherence.service into /usr/share/dbus-1/service. -- Charlie Smotherman Sat, 23 Jan 2010 18:39:15 -0500 coherence (0.6.6.2-1) unstable; urgency=low * New upstream release, summary of changes: - adding all necessary files to MANIFEST.in, to compensate for the gone 'auto-include-all-files-under-version-control' setuptools feature. - rearranging genre and genres attribute in DIDLLite - thx Caleb - fix face_path typo, fixes #275. -- Charlie Smotherman Sat, 02 Jan 2010 10:57:15 -0500 coherence (0.6.6.1-1) unstable; urgency=low * New upstream release. * debian/rules, added rule to remove /coherence/extern/uuid. Closes: #555429 * debian/control - Moved python-twisted-core and python-twisted-web to Build-Depends-Indep these are now required at build time. - Changed my email address. - Added python-mechanize, libgdata-google1.2-1, to Recommends field. - Removed Depends on python-celementtree, python-ctypes, python-elementtree, these are now part of python. - Remove unnecessary dependency on ‘python-nose’. Thx Bin Finney (Closes: bug#561323) -- Charlie Smotherman Tue, 22 Dec 2009 16:56:12 -0500 coherence (0.6.4-4) unstable; urgency=low * debian/control - changed package stanza to python-coherence, to provide a proper python-coherence package that will be installed in the global name space to make python-coherence accessible to upnp-inspector and other programs. - added Conflicts/Replaces/Provides fields. * debian/rules - removed --install-scripts and --install-libs, so python-coherence will be installed into the global name space. Closes: #544885, #546285 * Added debian/applet-coherence.1 to correct binary-without-manpage lintian error. * Removed pycompat. -- Charlie Smotherman Sun, 22 Sep 2009 17:55:44 -0500 coherence (0.6.4-3) unstable; urgency=low * Added Conflicts/Replaces/Provides field to debian/control to account for binary name change. Thx Adreas Moog Closes: #537438 * debian/install - install the coherence binary. Thx Adreas Moog Closes: #537439 -- Charlie Smotherman Mon, 20 Jul 2009 21:21:32 -0500 coherence (0.6.4-2) unstable; urgency=low * Removed coherence.1 from the debian dir, upstream has included it in the orig.tar.gz. * Updated debian/manpages to install coherence.1. * Removed applet-coherence.1 from the debian dir, upstream removed the applet. * Updated debian/manpages to reflect removal of applet-coherence.1. * debian/control - Removed cdbs from Build-Depends section. - Bumped debhelper to 7. - Bumped debian/compat to 7. - Added Build-Depends-Indep field. - Package now uses python-support. - Bumped Standards-Version to 3.8.2, no changes needed. - Bumped XS-Python-Version to 2.5. - Changed the Package: stanza to be coherence as this is a stand alone app and not a python module. - Removed python2.5 from Depends section, the Dependency on python is satisfied in the Build-Depends-Indep section. - Removed XB-Python-Version as it is not needed with python-support. - Changed Priority: section to extra to correct a debcheck error. * debian/rules - Simplified debian/rules to take advantage of dh 7 features. - Coherence now installs to /usr/share/coherence in preperation for the python 2.6 transition. -- Charlie Smotherman Sun, 05 Jul 2009 09:25:24 -0500 coherence (0.6.4-1) unstable; urgency=low * New upstream release. Summary of changes. - new MediaServer backends that allow access to Picasa Web Albums - a TestServer to easily serve and test interaction with, - one or more items and adjust 'upnp_class', 'mimetype'and 'DLNA-flags - items that are a GStreamer pipeline or an external program. - a new, used in parallel, D-Bus API with an 'org.DLNA' interface with the goal to create a common API for all UPnP/DNLA frameworks - support for the dlna-playcontainer URI - enchancements to the GStreamer MediaRenderer, supporting now dlna-playcontainer and SetNextAVTransportURI, and jumping to previous and next tracks - support for video items served by Ampache - base classes for a ScheduledRecording? service - some 'compatibility' adjustments for different devices * Removed MochiKit symbolic link creation from debian/rules. * Removed dependency on MochiKit in debian/control. -- Charlie Smotherman Wed, 13 May 2009 00:34:24 -0500 coherence (0.6.2-3) unstable; urgency=low * debian/python-coherence.install - install org.Coherence.service to dbus-services. Thx Adreas Moog Closes: #524426 * Corrected the lintian error copyright-with-old-dh-make-debian-copyright by deleting/replacing (C) with the word Copyright in debian/copyright. * Updated standards version to 3.8.1. -- Charlie Smotherman Thu, 07 May 2009 01:38:44 -0500 coherence (0.6.2-2) unstable; urgency=low * debian/rules: add the MochiKit symlink creation after the removal of the embedded version, since we can't rely on a links file here (Closes: #520594) * debian/links: removed to the profit of the above rule * debian/control: add Charlie Smotherman to Uploaders -- Arnaud Quette Wed, 25 Mar 2009 10:01:32 +0100 coherence (0.6.2-1) unstable; urgency=low * New upstream release (Closes: #518391) * Merge from Ubuntu (Charlie Smotherman) * debian/control: - add Build-Depends on libjs-mochikit - add Vcs-Browser and Vcs-Svn fields * debian/rules: add binary-predeb to remove Mochikit as it is a "courtesy copy of code" (Policy, section 4.13). This fixes the lintian error "embedded-javascript-library". * debian/links: added for letter case compatibility on MochiKit * debian/coherence.1, debian/applet-coherence.1: created * debian/manpages: created to use the above manpages * debian/examples: renamed from python-coherence.examples for consistency -- Arnaud Quette Tue, 10 Mar 2009 23:35:49 +0100 coherence (0.5.8-1) unstable; urgency=low * New upstream release * debian/control: - add a Homepage field - complete Depends with python-nose (Closes: #489198) - complete Depends for the mediadb backend (Ubuntu report 235910) -- Arnaud Quette Sun, 13 Jul 2008 15:18:54 +0200 coherence (0.5.6-1) unstable; urgency=low * New upstream release (Closes: #474729) * debian/control: - allow Depends on python2.5 or python2.4 (Closes: #485592) - update Standards-Version to 3.8.0 -- Arnaud Quette Thu, 12 Jun 2008 16:49:04 +0200 coherence (0.5.2-1) unstable; urgency=low * New upstream release * debian/control: depend on python-pkg-resources instead of python-setuptools for the runtime dependency (Closes: #468724) -- Arnaud Quette Wed, 05 Mar 2008 13:43:01 +0100 coherence (0.5.0-1) unstable; urgency=low * New upstream release * debian/watch: add an advice to install libcrypt-ssleay-perl -- Arnaud Quette Sun, 20 Jan 2008 21:59:25 +0100 coherence (0.4.0-1) unstable; urgency=low * New upstream release * debian/control: remove the python-soappy dependency since it's not needed anymore. -- Arnaud Quette Thu, 2 Aug 2007 10:48:40 +0200 coherence (0.2.1-2) unstable; urgency=low * Depend on python-setuptools; thanks Paul Wise; closes: #432624. -- Loic Minier Wed, 25 Jul 2007 14:50:00 +0200 coherence (0.2.1-1) experimental; urgency=low * Initial release; closes: #427570. -- Loic Minier Mon, 18 Jun 2007 11:34:15 +0200 debian/source/0000755000000000000000000000000012202150604010456 5ustar debian/source/format0000644000000000000000000000001412201702710011664 0ustar 3.0 (quilt) debian/copyright0000644000000000000000000000340712201702710011115 0ustar This package was Debian-ized by Loïc Minier on Mon, 18 Jun 2007 11:25:51 +0200. It was downloaded from: Upstream Author: Frank Scholz Copyright: Copyright 2006, Frank Scholz Copyright 2005, Tim Potter Copyright 2006 John-Mark Gurney Copyright 2006, Ka-Ping Yee Copyright 1999-2006 by Fredrik Lundh Copyright 1999-2003 by Secret Labs AB Copyright 2006 Fluendo, S.A. (www.fluendo.com). License: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The Debian packaging is copyright 2007, Loïc Minier and is licensed under the same license as the upstream source. debian/watch0000644000000000000000000000011212201702710010201 0ustar version=3 http://coherence.beebits.net/download/Coherence-([\d.]+).tar.gz debian/patches/0000755000000000000000000000000012202152777010622 5ustar debian/patches/01_systray_fix0000644000000000000000000000144712201702710013422 0ustar Description: Desktop Applet not showing in system tray. Origin: Debian Bug-Debian: http://bugs.debian.org/572745 Author: Olivier Berger Forwarded: not needed. Index: coherence/misc/Desktop-Applet/applet-coherence =================================================================== --- coherence.orig/misc/Desktop-Applet/applet-coherence 2010-03-12 10:34:31.000000000 -0600 +++ coherence/misc/Desktop-Applet/applet-coherence 2010-03-12 10:35:33.000000000 -0600 @@ -35,7 +35,7 @@ # this ../.. is evil, I know :-( # there must be a better way if not os.path.exists(icon): - icon = "/usr/share/icons/coherence/tango-system-file-manager.png" + icon = "/usr/share/pyshared/misc/Desktop-Applet/tango-system-file-manager.png" from PyQt4.QtGui import * from PyQt4.QtCore import * debian/patches/10_deprecated_filetransfer0000644000000000000000000000244012202152777015711 0ustar Description: replace deprecated static.FileTransfer with static.File Author: exarkun Bug-Debian: http://bugs.debian.org/572796 Origin: upstream, http://coherence.beebits.net/attachment/ticket/298/deprecated-filetransfer.patch Bug: http://coherence.beebits.net/ticket/298 Forwarded: http://coherence.beebits.net/ticket/298 Reviewed-By: Eric Evans Last-Update: 2013-08-12 Index: coherence/coherence/upnp/core/utils.py =================================================================== --- coherence.orig/coherence/upnp/core/utils.py 2013-08-12 14:32:12.000000000 +0200 +++ coherence/coherence/upnp/core/utils.py 2013-08-12 14:32:58.643890078 +0200 @@ -11,7 +11,7 @@ from coherence import SERVER_ID - +import twisted from twisted.web import server, http, static from twisted.web import client, error from twisted.web import proxy, resource, server @@ -686,6 +686,11 @@ # and make sure the connection doesn't get closed return server.NOT_DONE_YET +if twisted.version.major >= 9: + # Since 9.0, twisted.web.static.File has supported byte range requests. + # Prefer that, if it is available. + StaticFile = static.File + class BufferFile(static.File): """ taken from twisted.web.static and modified accordingly to the patch by John-Mark Gurney debian/patches/03_last_updated_service_field_workaround0000644000000000000000000000275312201702710020650 0ustar 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 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 debian/patches/series0000644000000000000000000000020512202151141012014 0ustar 03_last_updated_service_field_workaround 02_string_exception_fix 01_systray_fix 04_missing_attribute_fix 10_deprecated_filetransfer debian/patches/04_missing_attribute_fix0000644000000000000000000001401312201716425015444 0ustar Description: do not override private init A sub-class of HTTPClientFactory overrides the __init__ method without calling super's, and changes in a Twisted major release resulted in breakage. . This patch by "marco" (found attached to issue #360 upstream), solves the bug by eliminating the __init__ override. Origin: http://coherence.beebits.net/attachment/ticket/360/getPage.patch Bug: http://coherence.beebits.net/ticket/360 Bug-Debian: http://bugs.debian.org/664027 Forwarded: not-needed Reviewed-By: Eric Evans Last-Update: 2013-08-11 --- coherence-0.6.6.2.orig/coherence/upnp/core/utils.py +++ coherence-0.6.6.2/coherence/upnp/core/utils.py @@ -517,48 +517,14 @@ class HeaderAwareHTTPClientFactory(clien protocol = myHTTPPageGetter noisy = False - def __init__(self, url, method='GET', postdata=None, headers=None, - agent="Twisted PageGetter", timeout=0, cookies=None, - followRedirect=True, redirectLimit=20): - self.followRedirect = followRedirect - self.redirectLimit = redirectLimit - self._redirectCount = 0 - self.timeout = timeout - self.agent = agent - - if cookies is None: - cookies = {} - self.cookies = cookies - if headers is not None: - self.headers = InsensitiveDict(headers) - else: - self.headers = InsensitiveDict() - if postdata is not None: - self.headers.setdefault('Content-Length', len(postdata)) - # just in case a broken http/1.1 decides to keep connection alive - self.headers.setdefault("connection", "close") - self.postdata = postdata - self.method = method - - self.setURL(url) - - self.waiting = 1 - self.deferred = defer.Deferred() - self.response_headers = None - def buildProtocol(self, addr): - p = protocol.ClientFactory.buildProtocol(self, addr) + p = client.HTTPClientFactory.buildProtocol(self, addr) p.method = self.method p.followRedirect = self.followRedirect - if self.timeout: - timeoutCall = reactor.callLater(self.timeout, p.timeout) - self.deferred.addBoth(self._cancelTimeout, timeoutCall) return p def page(self, page): - if self.waiting: - self.waiting = 0 - self.deferred.callback((page, self.response_headers)) + client.HTTPClientFactory.page(self, (page, self.response_headers)) class HeaderAwareHTTPDownloader(client.HTTPDownloader): @@ -577,24 +543,22 @@ class HeaderAwareHTTPDownloader(client.H self.requestedPartial = 0 + def getPage(url, contextFactory=None, *args, **kwargs): - """Download a web page as a string. + """ + Download a web page as a string. Download a page. Return a deferred, which will callback with a page (as a string) or errback with a description of the error. See HTTPClientFactory to see what extra args can be passed. """ - scheme, host, port, path = client._parse(url) - factory = HeaderAwareHTTPClientFactory(url, *args, **kwargs) - if scheme == 'https': - from twisted.internet import ssl - if contextFactory is None: - contextFactory = ssl.ClientContextFactory() - reactor.connectSSL(host, port, factory, contextFactory) - else: - reactor.connectTCP(host, port, factory) - return factory.deferred + kwargs['agent'] = "Coherence PageGetter" + return client._makeGetterFactory( + url, + HeaderAwareHTTPClientFactory, + contextFactory=contextFactory, + *args, **kwargs).deferred def downloadPage(url, file, contextFactory=None, *args, **kwargs): --- coherence-0.6.6.2.orig/coherence/upnp/core/test/test_utils.py +++ coherence-0.6.6.2/coherence/upnp/core/test/test_utils.py @@ -9,9 +9,14 @@ Test cases for L{upnp.core.utils} """ +import os from twisted.trial import unittest +from twisted.python.filepath import FilePath +from twisted.internet import reactor +from twisted.web import static, server +from twisted.protocols import policies -from coherence.upnp.core.utils import * +from coherence.upnp.core import utils # This data is joined using CRLF pairs. testChunkedData = ['200', @@ -121,9 +126,49 @@ class TestUpnpUtils(unittest.TestCase): based on a test and data provided by Lawrence """ testData = '\r\n'.join(testChunkedData) - newData = de_chunk_payload(testData) + newData = utils.de_chunk_payload(testData) # see whether we can parse the result self.assertEqual(newData, '\r\n'.join( testChunkedDataResult)) +class TestClient(unittest.TestCase): + + def _listen(self, site): + return reactor.listenTCP(0, site, interface="127.0.0.1") + + def setUp(self): + name = self.mktemp() + os.mkdir(name) + FilePath(name).child("file").setContent("0123456789") + r = static.File(name) + self.site = server.Site(r, timeout=None) + self.wrapper = policies.WrappingFactory(self.site) + self.port = self._listen(self.wrapper) + self.portno = self.port.getHost().port + + def tearDown(self): + return self.port.stopListening() + + def getURL(self, path): + return "http://127.0.0.1:%d/%s" % (self.portno, path) + + def assertResponse(self, original, content, headers): + self.assertIsInstance(original, tuple) + self.assertEqual(original[0], content) + originalHeaders = original[1] + for header in headers: + self.assertIn(header, originalHeaders) + self.assertEqual(originalHeaders[header], headers[header]) + + def test_getPage(self): + content = '0123456789' + headers = {'accept-ranges': ['bytes'], + 'content-length': ['10'], + 'content-type': ['text/html']} + d = utils.getPage(self.getURL("file")) + d.addCallback(self.assertResponse, content, headers) + return d + + + # $Id:$ debian/patches/02_string_exception_fix0000644000000000000000000000140712201702710015265 0ustar Description: Corrected depreciated string exceptions in python 2.6 Origin: Debian Author: Charlie Smotherman Forwarded: to upstreams bug tracker Index: coherence-0.6.6.3/coherence/extern/galleryremote/gallery.py =================================================================== --- coherence-0.6.6.3.orig/coherence/extern/galleryremote/gallery.py 2010-06-07 12:10:53.440177834 -0500 +++ coherence-0.6.6.3/coherence/extern/galleryremote/gallery.py 2010-06-07 12:11:39.520707119 -0500 @@ -137,7 +137,7 @@ # make sure the 1st line is #__GR2PROTO__ if string.find( line, '#__GR2PROTO__' ) == -1: - raise "Bad response: \r\n" + response + raise Exception("Bad response: \r\n" + response) resDict = {} debian/control0000644000000000000000000000252712201753726010604 0ustar Source: coherence Section: python Priority: extra Maintainer: Eric Evans Build-Depends: debhelper (>= 7.0.50), python (>= 2.6.6-3), python-configobj, python-setuptools, python-twisted-core, python-twisted-web Standards-Version: 3.9.4 Homepage: http://coherence.beebits.net Vcs-Git: git://anonscm.debian.org/collab-maint/coherence.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/coherence.git;a=summary X-Python-Version: >= 2.5 Package: python-coherence Architecture: all Depends: ${misc:Depends}, ${python:Depends}, python-configobj, python-gst0.10, python-louie, python-pkg-resources, python-axiom, python-tagpy, python-zopeinterface Conflicts: coherence Replaces: coherence Provides: coherence Recommends: python-mechanize, libgdata-google1.2-1 Suggests: python-qt4 Description: Python UPnP framework Coherence is a framework written in Python enabling your application to participate in digital living networks, at the moment primarily the UPnP universe. . Its goal is to relieve your application from all the membership / the UPnP related tasks as much as possible. . The core of Coherence provides a (hopefully complete) implementation of: * a SSDP server, * a MSEARCH client, * server and client for HTTP/SOAP requests, and * server and client for Event Subscription and Notification (GENA). debian/compat0000644000000000000000000000000212201702710010354 0ustar 7 debian/rules0000755000000000000000000000035412202144767010255 0ustar #!/usr/bin/make -f %: dh $@ --with python2 override_dh_auto_clean: rm -rf \ build \ coherence/__init__.pyc \ Coherence.egg-info/PKG-INFO \ Coherence.egg-info/SOURCES.txt override_dh_install: dh_install -Xuuid