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.
if ! dpkg-statoverride --list "/var/lib/mandos" >/dev/null \
54
2>&1; then
55
chown _mandos:_mandos /var/lib/mandos
56
chmod u=rwx,go= /var/lib/mandos
57
fi
58
59
if dpkg --compare-versions "$2" eq "1.8.0-1" \
60
|| dpkg --compare-versions "$2" eq "1.8.0-1~bpo9+1"; then
61
if grep --quiet --regexp='^[[:space:]]*key_id[[:space:]]*=[[:space:]]*[Ee]3[Bb]0[Cc]44298[Ff][Cc]1[Cc]149[Aa][Ff][Bb][Ff]4[Cc]8996[Ff][Bb]92427[Aa][Ee]41[Ee]4649[Bb]934[Cc][Aa]495991[Bb]7852[Bb]855[[:space:]]*$' /etc/mandos/clients.conf; then