Bjørn Lie
2bc9350593
- Replace avahi-0.7-python3.patch with avahi-0.7-dbm.patch: use what is upstream (boo#1110668). - Add avahi-0.7-encode-strings-as-utf8.patch: encode strings as UTF-8 (boo#1110668). - Add avahi-0.7-python3-bookmarks.patch: make bookmarks python 3 compatible (boo#1110668). - Add CVE-2018-1000845.patch: drop legacy unicast queries from address not on local link (boo#1120281 CVE-2018-1000845). - Drop avahi-0.6.31-invalid-packet.patch: fixed upstream. OBS-URL: https://build.opensuse.org/request/show/662744 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/avahi?expand=0&rev=150
126 lines
4.8 KiB
Diff
126 lines
4.8 KiB
Diff
From e6325a8e9f359de3ffed159757886b2535cc49a9 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Jollans <tjol@tjol.eu>
|
|
Date: Thu, 4 Oct 2018 01:25:31 +0200
|
|
Subject: [PATCH] Make avahi-bookmarks Python3 compatible
|
|
|
|
Should work with Python 2, but this has not been tested. Not that
|
|
anybody uses python 2 anymore anyway.
|
|
---
|
|
avahi-python/avahi-bookmarks.in | 48 +++++++++++++++++----------------
|
|
1 file changed, 25 insertions(+), 23 deletions(-)
|
|
|
|
diff --git a/avahi-python/avahi-bookmarks.in b/avahi-python/avahi-bookmarks.in
|
|
index dea7bef..7a562e3 100755
|
|
--- a/avahi-python/avahi-bookmarks.in
|
|
+++ b/avahi-python/avahi-bookmarks.in
|
|
@@ -20,9 +20,10 @@
|
|
import sys, getopt, os
|
|
|
|
try:
|
|
- import avahi, gobject, dbus
|
|
+ from gi.repository import GObject
|
|
+ import avahi, dbus
|
|
except ImportError:
|
|
- print "Sorry, to use this tool you need to install Avahi and python-dbus."
|
|
+ print("Sorry, to use this tool you need to install Avahi and python-dbus.")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -95,7 +96,7 @@ class AvahiBookmarks:
|
|
else:
|
|
t += '<ul style="padding: 0px; margin: 20px; list-style-type: none">'
|
|
|
|
- for k, v in self.services.iteritems():
|
|
+ for k, v in self.services.items():
|
|
|
|
if v[3] == 80:
|
|
port = ''
|
|
@@ -109,7 +110,7 @@ class AvahiBookmarks:
|
|
|
|
t += '<hr noshade/><p style="font-size: 8; font-family: sans-serif">Served by %s</p></body></html>' % self.version_string
|
|
|
|
- return str(t)
|
|
+ return str(t).encode('utf-8')
|
|
|
|
|
|
def new_service(self, interface, protocol, name, type, domain, flags):
|
|
@@ -138,16 +139,16 @@ class AvahiBookmarks:
|
|
|
|
def usage(retval = 0):
|
|
|
|
- print "%s [options]\n" % sys.argv[0]
|
|
- print " -h --help Show this help"
|
|
- print " -c --cgi Run as a CGI instead of as a server (default to server"
|
|
- print " unless environment variable GATEWAY_INTERFACE is set)"
|
|
- print " -t --timeout MS Specify the max time for CGI browsing (default %u)" % timeout
|
|
- print " -p --port PORT Specify the port to use (default %u)" % port
|
|
- print " -a --address ADDRESS Specify the address to bind to (default %s)" % address
|
|
- print " -H --host-names Show links with real hostnames"
|
|
- print " -A --addresses Show links with numeric IP addresses"
|
|
- print " -d --domain DOMAIN Specify the domain to browse"
|
|
+ print("%s [options]\n" % sys.argv[0])
|
|
+ print(" -h --help Show this help")
|
|
+ print(" -c --cgi Run as a CGI instead of as a server (default to server")
|
|
+ print(" unless environment variable GATEWAY_INTERFACE is set)")
|
|
+ print(" -t --timeout MS Specify the max time for CGI browsing (default %u)" % timeout)
|
|
+ print(" -p --port PORT Specify the port to use (default %u)" % port)
|
|
+ print(" -a --address ADDRESS Specify the address to bind to (default %s)" % address)
|
|
+ print(" -H --host-names Show links with real hostnames")
|
|
+ print(" -A --addresses Show links with numeric IP addresses")
|
|
+ print(" -d --domain DOMAIN Specify the domain to browse" )
|
|
sys.exit(retval)
|
|
|
|
try:
|
|
@@ -181,30 +182,31 @@ for o, a in opts:
|
|
domain = a
|
|
|
|
if use_CGI is None:
|
|
- use_CGI = os.environ.has_key("GATEWAY_INTERFACE")
|
|
+ use_CGI = "GATEWAY_INTERFACE" in os.environ
|
|
|
|
if use_CGI:
|
|
cgi = AvahiBookmarks(use_host_names)
|
|
|
|
- mainloop = gobject.MainLoop()
|
|
- gobject.timeout_add(timeout, mainloop.quit)
|
|
+ mainloop = GObject.MainLoop()
|
|
+ GObject.timeout_add(timeout, mainloop.quit)
|
|
|
|
try:
|
|
mainloop.run()
|
|
except KeyboardInterrupt:
|
|
pass
|
|
|
|
- print 'Content-type: text/html\n\n' + cgi.render_html()
|
|
+ print('Content-type: text/html\n\n' + cgi.render_html())
|
|
|
|
else:
|
|
try:
|
|
- from twisted.internet import glib2reactor
|
|
- glib2reactor.install()
|
|
+ from twisted.internet import gireactor
|
|
+ gireactor.install()
|
|
from twisted.internet import reactor
|
|
from twisted.web import server, resource
|
|
except ImportError:
|
|
- print "Sorry, to use this tool as a server you need to install twisted and twisted.web.\n"
|
|
- sys.exit(1)
|
|
+ raise
|
|
+ print("Sorry, to use this tool as a server you need to install twisted and twisted.web.\n")
|
|
+ sys.exit(1)
|
|
|
|
class AvahiBookmarksServer(AvahiBookmarks, resource.Resource):
|
|
isLeaf = True
|
|
@@ -219,7 +221,7 @@ else:
|
|
site = server.Site(AvahiBookmarksServer(use_host_names))
|
|
reactor.listenTCP(port, site, interface=address)
|
|
|
|
- print "Now point your web browser to http://%s:%u/!" % (address, port)
|
|
+ print("Now point your web browser to http://%s:%u/!" % (address, port))
|
|
|
|
try:
|
|
reactor.run()
|
|
--
|
|
2.18.0
|
|
|