-
Committer:
Teddy Hogeborn
-
Date:
2016-03-09 21:23:21 UTC
-
mto:
(237.7.594 trunk)
-
mto:
This revision was merged to the branch mainline in
revision
339.
-
Revision ID:
teddy@recompile.se-20160309212321-2qlkzj9tecepc8xq
Server: Add Python 3 compatibility
Add Python 3 compatibility by not using the python-avahi module. Also
fix miscellaneous things which differs in Python 3. Especially hard
to fix is loading and saving clients data between Python 3 and 2,
since pickle formats have problems with strings.
* INSTALL: Remove python-avahi (and change python-gobject to
python-gi, which is preferred now).
* debian/control (Source: mandos/Build-Depends-Indep): Remove
"python-avahi".
* mandos: Wrap future_builtins import in try-except clause. Do not
import avahi module. Use codecs.decode(..., "base64) instead of
.decode("base64). Use .keys(), .values(), and .items() instead of
.iterkeys(), .itervalues(), and .iteritems().
(alternate_dbus_interfaces/wrapper): Python 3 still requires the
"black magic", but luckily it still works. The Python 3 type()
constructor requires first argument to be a string, not a byte
string.
(copy_function): New. Use throughout.
(Avahi, avahi): New class and global variable.
(GnuTLS._need_version): Changed to be a byte string.
(main): Decode byte strings loaded from pickle file.
(main/cleanup): Dump using pickle prototoc 2 which Python 2 can
read.