Page MenuHomeFreeBSD

D26434.diff
No OneTemporary

D26434.diff

Index: comms/chirp/Makefile
===================================================================
--- comms/chirp/Makefile
+++ comms/chirp/Makefile
@@ -1,11 +1,13 @@
# $FreeBSD$
PORTNAME= chirp
-DISTVERSIONPREFIX= daily-
-DISTVERSION= 20200107
-PORTREVISION= 1
+PORTVERSION= 20200213
CATEGORIES= comms hamradio
-MASTER_SITES= https://trac.chirp.danplanet.com/chirp_daily/daily-${DISTVERSION}/
+MASTER_SITES= http://d-rats.com/hg/hgwebdir.cgi/chirp.hg/archive/
+PKGNAMESUFFIX= ${PYTHON_PKGNAMESUFFIX}
+DISTNAME= chirp-hg-${DISTFILES:S/.tar.gz//}
+DISTFILES= 68534f20c141.tar.gz
+DIST_SUBDIR= chirp
MAINTAINER= hamradio@FreeBSD.org
COMMENT= Free, open-source tool for programming your amateur radio
@@ -13,17 +15,22 @@
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-DEPRECATED= Uses deprecated version of python
-EXPIRATION_DATE= 2020-09-15
-
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libxml2>0:textproc/py-libxml2@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}gobject3>0:devel/py-gobject3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}gtk2>0:x11-toolkits/py-gtk2@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR}
RUN_DEPENDS:= ${BUILD_DEPENDS}
-USES= desktop-file-utils python:2.7
+USES= desktop-file-utils python shebangfix
+SHEBANG_GLOB= *.py
+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
+OPTIONS_DEFINE= WXGTK
+
+WXGTK_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}wxPython40>0:x11-toolkits/py-wxPython40@${PY_FLAVOR}
+WXGTK_RUN_DEPENDS:= ${WXGTK_BUILD_DEPENDS}
+
.include <bsd.port.mk>
Index: comms/chirp/distinfo
===================================================================
--- comms/chirp/distinfo
+++ comms/chirp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1578454930
-SHA256 (chirp-daily-20200107.tar.gz) = 9c9d4a614944d3302d182cf02247360e1303949b70796884c579fc616431b1a8
-SIZE (chirp-daily-20200107.tar.gz) = 891293
+TIMESTAMP = 1589185306
+SHA256 (chirp/68534f20c141.tar.gz) = 9909c81df01166e9bbc3b205185e4813f1ee380f6969b5f7e290e500e7aa39c5
+SIZE (chirp/68534f20c141.tar.gz) = 1198846
Index: comms/chirp/files/patch-chirp_drivers_alinco.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_alinco.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/alinco.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/alinco.py
+@@ -199,7 +199,7 @@ class AlincoStyleRadio(chirp_common.CloneModeRadio):
+ self._mmap = self._download(self._memsize)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -208,7 +208,7 @@ class AlincoStyleRadio(chirp_common.CloneModeRadio):
+ self._upload(self._memsize)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def get_raw_memory(self, number):
Index: comms/chirp/files/patch-chirp_drivers_anytone.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_anytone.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/anytone.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/anytone.py
+@@ -177,7 +177,7 @@ def _echo_write(radio, data):
+ try:
+ radio.pipe.write(data)
+ radio.pipe.read(len(data))
+- except Exception, e:
++ except Exception as e:
+ LOG.error("Error writing to radio: %s" % e)
+ raise errors.RadioError("Unable to write to radio")
+
+@@ -185,7 +185,7 @@ def _echo_write(radio, data):
+ def _read(radio, length):
+ try:
+ data = radio.pipe.read(length)
+- except Exception, e:
++ except Exception as e:
+ LOG.error("Error reading from radio: %s" % e)
+ raise errors.RadioError("Unable to read from radio")
+
Index: comms/chirp/files/patch-chirp_drivers_anytone__ht.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_anytone__ht.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/anytone_ht.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/anytone_ht.py
+@@ -233,7 +233,7 @@ struct memory memory[200];
+ def _echo_write(radio, data):
+ try:
+ radio.pipe.write(data)
+- except Exception, e:
++ except Exception as e:
+ LOG.error("Error writing to radio: %s" % e)
+ raise errors.RadioError("Unable to write to radio")
+
+@@ -241,7 +241,7 @@ def _echo_write(radio, data):
+ def _read(radio, length):
+ try:
+ data = radio.pipe.read(length)
+- except Exception, e:
++ except Exception as e:
+ LOG.error("Error reading from radio: %s" % e)
+ raise errors.RadioError("Unable to read from radio")
+
+@@ -930,7 +930,7 @@ class AnyToneTERMN8RRadio(chirp_common.CloneModeRadio,
+ else:
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ap510.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ap510.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/ap510.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ap510.py
+@@ -380,7 +380,7 @@ class AP510Radio(chirp_common.CloneModeRadio):
+ data = download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ # _mmap isn't a Chirp MemoryMap, but since AP510Memory implements
+@@ -398,7 +398,7 @@ class AP510Radio(chirp_common.CloneModeRadio):
+ upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def load_mmap(self, filename):
Index: comms/chirp/files/patch-chirp_drivers_baofeng__common.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_baofeng__common.py
@@ -0,0 +1,39 @@
+--- chirp/drivers/baofeng_common.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/baofeng_common.py
+@@ -164,8 +164,8 @@ def _ident_radio(radio):
+ try:
+ data = _do_ident(radio, magic)
+ return data
+- except errors.RadioError, e:
+- print e
++ except errors.RadioError as e:
++ print(e)
+ error = e
+ time.sleep(2)
+ if error:
+@@ -336,7 +336,7 @@ class BaofengCommonHT(chirp_common.CloneModeRadio,
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ # If anything unexpected happens, make sure we raise
+ # a RadioError and log the problem
+ LOG.exception('Unexpected error during upload')
+@@ -622,7 +622,7 @@ class BaofengCommonHT(chirp_common.CloneModeRadio,
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -636,6 +636,6 @@ class BaofengCommonHT(chirp_common.CloneModeRadio,
+ value = int(val.get_value() * 10)
+ LOG.debug("Setting fm_presets = %s" % (value))
+ self._memobj.fm_presets = value
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_baofeng__uv3r.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_baofeng__uv3r.py
@@ -0,0 +1,47 @@
+--- chirp/drivers/baofeng_uv3r.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/baofeng_uv3r.py
+@@ -51,7 +51,7 @@ def uv3r_prep(radio):
+ for _i in range(0, 10):
+ try:
+ return _uv3r_prep(radio)
+- except errors.RadioError, e:
++ except errors.RadioError as e:
+ time.sleep(1)
+
+ raise e
+@@ -64,7 +64,7 @@ def uv3r_download(radio):
+ return do_download(radio, 0x0000, 0x0E40, 0x0010)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+
+@@ -75,7 +75,7 @@ def uv3r_upload(radio):
+ return do_upload(radio, 0x0000, 0x0E40, 0x0010)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+
+@@ -623,7 +623,7 @@ class UV3RRadio(chirp_common.CloneModeRadio):
+ else:
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -639,7 +639,7 @@ class UV3RRadio(chirp_common.CloneModeRadio):
+ LOG.debug("Setting fm_presets[%1i] = %s" % (index, value))
+ setting = self._memobj.fm_presets
+ setting[index] = value
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_bf-t1.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_bf-t1.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/bf-t1.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/bf-t1.py
+@@ -225,7 +225,7 @@ def _start_clone_mode(radio, status):
+
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Error sending Magic to radio:\n%s" % e)
+
+
+@@ -561,7 +561,7 @@ class BFT1(chirp_common.CloneModeRadio, chirp_common.E
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Error: %s" % e)
+
+ def _decode_tone(self, val, inv):
+@@ -894,7 +894,7 @@ class BFT1(chirp_common.CloneModeRadio, chirp_common.E
+ setattr(_settings, name, value)
+
+ LOG.debug("Setting %s: %s" % (name, value))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_bj9900.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_bj9900.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/bj9900.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/bj9900.py
+@@ -178,7 +178,7 @@ class BJ9900Radio(chirp_common.CloneModeRadio,
+ self._mmap = self._clone_in()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -187,7 +187,7 @@ class BJ9900Radio(chirp_common.CloneModeRadio,
+ self._clone_out()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def process_mmap(self):
Index: comms/chirp/files/patch-chirp_drivers_bjuv55.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_bjuv55.py
@@ -0,0 +1,10 @@
+--- chirp/drivers/bjuv55.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/bjuv55.py
+@@ -647,6 +647,6 @@ class BaojieBJUV55Radio(uv5r.BaofengUV5R):
+ value = int(val.get_value() * 10 - 870)
+ LOG.debug("Setting fm_preset = %s" % (value))
+ self._memobj.fm_preset = value
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_fd268.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_fd268.py
@@ -0,0 +1,16 @@
+--- chirp/drivers/fd268.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/fd268.py
+@@ -790,11 +790,11 @@ class FeidaxinFD2x8yRadio(chirp_common.CloneModeRadio)
+ obj = getattr(_mem, sett)
+ setattr(obj, name, element.value)
+
+- except AttributeError, e:
++ except AttributeError as e:
+ m = "Setting %s is not in this setting block" % name
+ LOG.debug(m)
+
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ft1d.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft1d.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/ft1d.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft1d.py
+@@ -1890,7 +1890,7 @@ class FT1Radio(yaesu_clone.YaesuCloneModeRadio):
+ except AttributeError as e:
+ LOG.error("Setting %s is not in the memory map: %s" %
+ (element.get_name(), e))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ft2800.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft2800.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/ft2800.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft2800.py
+@@ -201,7 +201,7 @@ class FT2800Radio(YaesuCloneModeRadio):
+ self._mmap = _download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ LOG.info("Downloaded in %.2f sec" % (time.time() - start))
+ self.process_mmap()
+@@ -214,7 +214,7 @@ class FT2800Radio(YaesuCloneModeRadio):
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ LOG.info("Uploaded in %.2f sec" % (time.time() - start))
+
Index: comms/chirp/files/patch-chirp_drivers_ft2900.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft2900.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/ft2900.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft2900.py
+@@ -537,7 +537,7 @@ class FT2900Radio(YaesuCloneModeRadio):
+ self._mmap = _download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ LOG.info("Downloaded in %.2f sec" % (time.time() - start))
+ self.process_mmap()
+@@ -549,7 +549,7 @@ class FT2900Radio(YaesuCloneModeRadio):
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ LOG.info("Uploaded in %.2f sec" % (time.time() - start))
+
+@@ -1210,7 +1210,7 @@ class FT2900Radio(YaesuCloneModeRadio):
+ setattr(_settings, name, value)
+
+ LOG.debug("Setting %s: %s" % (name, value))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ft450d.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft450d.py
@@ -0,0 +1,28 @@
+--- chirp/drivers/ft450d.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft450d.py
+@@ -499,7 +499,7 @@ class FT450DRadio(yaesu_clone.YaesuCloneModeRadio):
+ self._mmap = self._clone_in()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s"
+ % e)
+ self.process_mmap()
+@@ -509,7 +509,7 @@ class FT450DRadio(yaesu_clone.YaesuCloneModeRadio):
+ self._clone_out()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s"
+ % e)
+
+@@ -1489,6 +1489,6 @@ class FT450DRadio(yaesu_clone.YaesuCloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_ft50.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft50.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/ft50.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft50.py
+@@ -586,7 +586,7 @@ class FT50Radio(yaesu_clone.YaesuCloneModeRadio):
+ def _clone_out(radio):
+ try:
+ return __clone_out(radio)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with the radio: %s" % e)
+
+
Index: comms/chirp/files/patch-chirp_drivers_ft60.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft60.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/ft60.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft60.py
+@@ -403,7 +403,7 @@ class FT60Radio(yaesu_clone.YaesuCloneModeRadio):
+ self._mmap = _download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+ self.check_checksums()
+@@ -414,7 +414,7 @@ class FT60Radio(yaesu_clone.YaesuCloneModeRadio):
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def process_mmap(self):
+@@ -716,7 +716,7 @@ class FT60Radio(yaesu_clone.YaesuCloneModeRadio):
+ setattr(_settings, name, value)
+
+ LOG.debug("Setting %s: %s" % (name, value))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ft70.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft70.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/ft70.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft70.py
+@@ -1162,7 +1162,7 @@ class FT70Radio(yaesu_clone.YaesuCloneModeRadio):
+ except AttributeError as e:
+ LOG.error("Setting %s is not in the memory map: %s" %
+ (element.get_name(), e))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ft7100.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft7100.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/ft7100.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft7100.py
+@@ -568,7 +568,7 @@ class FT7100Radio(YaesuCloneModeRadio):
+ self._mmap = _download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ LOG.info("Downloaded in %.2f sec", (time.time() - start))
+ self.process_mmap()
+@@ -580,7 +580,7 @@ class FT7100Radio(YaesuCloneModeRadio):
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ LOG.info("Uploaded in %.2f sec", (time.time() - start))
+
+@@ -1091,7 +1091,7 @@ class FT7100Radio(YaesuCloneModeRadio):
+ setattr(_overlay, name, value)
+
+ LOG.debug("Setting %s: %s", name, value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_ft8100.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft8100.py
@@ -0,0 +1,46 @@
+--- chirp/drivers/ft8100.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft8100.py
+@@ -175,7 +175,7 @@ class FT8100Radio(yaesu_clone.YaesuCloneModeRadio):
+
+ if _mem.duplex == DUPLEX.index("split"):
+ tx_freq = int(_mem.offset) * 1000
+- print self.VARIANT, number, tx_freq, mem.freq
++ print(self.VARIANT, number, tx_freq, mem.freq)
+ mem.offset = tx_freq - mem.freq
+ else:
+ mem.offset = int(_mem.offset) * 1000
+@@ -189,7 +189,7 @@ class FT8100Radio(yaesu_clone.YaesuCloneModeRadio):
+ if not self._memobj.enables[byte] & bit and number != 1:
+ mem.empty = True
+
+- print 'R', self.VARIANT, number, _mem.baud9600
++ print('R', self.VARIANT, number, _mem.baud9600)
+
+ return mem
+
+@@ -270,7 +270,7 @@ class FT8100RadioUHF(FT8100Radio):
+ def _clone_out(radio):
+ try:
+ return __clone_out(radio)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with the radio: %s" % e)
+
+
+@@ -291,7 +291,7 @@ def __clone_out(radio):
+ pos = 0
+ for block in radio._block_lengths:
+ if os.getenv("CHIRP_DEBUG"):
+- print "\nSending %i-%i" % (pos, pos + block)
++ print("\nSending %i-%i" % (pos, pos + block))
+ out = radio.get_mmap()[pos:pos + block]
+
+ # need to chew byte-by-byte here or else we lose the ACK...not sure why
+@@ -309,6 +309,6 @@ def __clone_out(radio):
+
+ pos += block
+
+- print "Clone completed in %i seconds" % (time.time() - start)
++ print("Clone completed in %i seconds" % (time.time() - start))
+
+ return True
Index: comms/chirp/files/patch-chirp_drivers_ft90.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ft90.py
@@ -0,0 +1,28 @@
+--- chirp/drivers/ft90.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ft90.py
+@@ -332,7 +332,7 @@ struct {
+ self._mmap = self._clone_in()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ trace = traceback.format_exc()
+ raise errors.RadioError(
+ "Failed to communicate with radio: %s" % trace)
+@@ -343,7 +343,7 @@ struct {
+ self._clone_out()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ trace = traceback.format_exc()
+ raise errors.RadioError(
+ "Failed to communicate with radio: %s" % trace)
+@@ -670,6 +670,6 @@ struct {
+ newval = self._dtmf2bbcd(newval)
+ LOG.debug("Setting %s(%s) <= %s" % (setting, oldval, newval))
+ setattr(_settings, setting, newval)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_ftm350.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ftm350.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/ftm350.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ftm350.py
+@@ -278,7 +278,7 @@ class FTM350Radio(yaesu_clone.YaesuCloneModeRadio):
+ self._mmap = _clone_in(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to download from radio (%s)" % e)
+ self.process_mmap()
+
+@@ -287,7 +287,7 @@ class FTM350Radio(yaesu_clone.YaesuCloneModeRadio):
+ _clone_out(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to upload to radio (%s)" % e)
+
+ def process_mmap(self):
Index: comms/chirp/files/patch-chirp_drivers_kguv8d.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_kguv8d.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/kguv8d.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/kguv8d.py
+@@ -376,7 +376,7 @@ class KGUV8DRadio(chirp_common.CloneModeRadio,
+ self._mmap = self._download()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -393,7 +393,7 @@ class KGUV8DRadio(chirp_common.CloneModeRadio,
+ return self._do_download(0, 32768, 64)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ LOG.exception('Unknown error during download process')
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+@@ -426,7 +426,7 @@ class KGUV8DRadio(chirp_common.CloneModeRadio,
+ self._do_upload(0, 32768, 64)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ return
+
Index: comms/chirp/files/patch-chirp_drivers_kguv8dplus.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_kguv8dplus.py
@@ -0,0 +1,42 @@
+--- chirp/drivers/kguv8dplus.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/kguv8dplus.py
+@@ -418,7 +418,7 @@ class KGUV8DPlusRadio(chirp_common.CloneModeRadio,
+ self._mmap = self._download()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -435,7 +435,7 @@ class KGUV8DPlusRadio(chirp_common.CloneModeRadio,
+ return self._do_download(0, 32768, 64)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ LOG.exception('Unknown error during download process')
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+@@ -467,7 +467,7 @@ class KGUV8DPlusRadio(chirp_common.CloneModeRadio,
+ self._do_upload(0, 32768, 64)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ return
+
+@@ -1103,9 +1103,9 @@ class KGUV8DPlusRadio(chirp_common.CloneModeRadio,
+ setattr(obj, setting, int(element.value)/10)
+ else:
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+ def _is_freq(self, element):
+- return "rxfreq" in element.get_name() or "txoffset" in element.get_name() or "rx_start" in element.get_name() or "rx_stop" in element.get_name() or "tx_start" in element.get_name() or "tx_stop" in element.get_name()
+\ No newline at end of file
++ return "rxfreq" in element.get_name() or "txoffset" in element.get_name() or "rx_start" in element.get_name() or "rx_stop" in element.get_name() or "tx_start" in element.get_name() or "tx_stop" in element.get_name()
Index: comms/chirp/files/patch-chirp_drivers_kguv8e.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_kguv8e.py
@@ -0,0 +1,47 @@
+--- chirp/drivers/kguv8e.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/kguv8e.py
+@@ -337,7 +337,7 @@ class KGUV8ERadio(chirp_common.CloneModeRadio,
+
+ try:
+ self.pipe.write(_header)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def _read_record(self):
+@@ -423,7 +423,7 @@ class KGUV8ERadio(chirp_common.CloneModeRadio,
+ self._mmap = self._download()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -440,7 +440,7 @@ class KGUV8ERadio(chirp_common.CloneModeRadio,
+ return self._do_download(0, 32768, 64)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ LOG.exception('Unknown error during download process')
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+@@ -472,7 +472,7 @@ class KGUV8ERadio(chirp_common.CloneModeRadio,
+ self._do_upload(0, 32768, 64)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ return
+
+@@ -1138,7 +1138,7 @@ class KGUV8ERadio(chirp_common.CloneModeRadio,
+ setattr(obj, setting, int(element.value)/10)
+ else:
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_kguv9dplus.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_kguv9dplus.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/kguv9dplus.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/kguv9dplus.py
+@@ -877,7 +877,7 @@ class KGUV9DPlusRadio(chirp_common.CloneModeRadio,
+ self._write_record(CMD_HANGUP)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ LOG.exception('Unknown error during download process')
+ raise errors.RadioError(
+ "Failed to communicate with radio: %s" % e)
+@@ -894,7 +894,7 @@ class KGUV9DPlusRadio(chirp_common.CloneModeRadio,
+ self._write_record(CMD_HANGUP)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError(
+ "Failed to communicate with radio: %s" % e)
+ return
+@@ -1887,7 +1887,7 @@ class KGUV9DPlusRadio(chirp_common.CloneModeRadio,
+ setattr(obj, setting, int(element.value)/10)
+ else:
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug("set_settings: Exception with %s" %
+ element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_kyd.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_kyd.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/kyd.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/kyd.py
+@@ -500,7 +500,7 @@ class NC630aRadio(chirp_common.CloneModeRadio):
+
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_kyd__IP620.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_kyd__IP620.py
@@ -0,0 +1,67 @@
+--- chirp/drivers/kyd_IP620.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/kyd_IP620.py
+@@ -181,7 +181,7 @@ class IP620Radio(chirp_common.CloneModeRadio,
+ self.pipe.write("\x06")
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Radio refused to exit programming mode: %s" % e)
+
+ def _ip620_enter_programming_mode(self):
+@@ -192,7 +192,7 @@ class IP620Radio(chirp_common.CloneModeRadio,
+ _ack = self.pipe.read(1)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Error communicating with radio: %s" % e)
+ if not _ack:
+ raise errors.RadioError("No response from radio")
+@@ -203,17 +203,17 @@ class IP620Radio(chirp_common.CloneModeRadio,
+ _ident = self.pipe.read(8)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Error communicating with radio: %s" % e)
+ if not _ident.startswith("\x06\x4B\x47\x36\x37\x01\x56\xF8"):
+- print util.hexprint(_ident)
++ print(util.hexprint(_ident))
+ raise errors.RadioError("Radio returned unknown identification string")
+ try:
+ self.pipe.write(CMD_ACK)
+ _ack = self.pipe.read(1)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Error communicating with radio: %s" % e)
+ if _ack != CMD_ACK:
+ raise errors.RadioError("Radio refused to enter programming mode")
+@@ -316,7 +316,7 @@ class IP620Radio(chirp_common.CloneModeRadio,
+ self._mmap = self._do_download()
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -597,7 +597,7 @@ class IP620Radio(chirp_common.CloneModeRadio,
+ setattr(self._memobj.settings_misc,
+ element.get_name(),
+ element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -624,6 +624,6 @@ class IP620Radio(chirp_common.CloneModeRadio,
+ setattr(_settings_misc, setting, newval)
+ else:
+ setattr(_settings, setting, newval)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_leixen.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_leixen.py
@@ -0,0 +1,38 @@
+--- chirp/drivers/leixen.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/leixen.py
+@@ -261,7 +261,7 @@ def send(radio, frame):
+ # util.hexprint(frame).replace("\n", "\n ")))
+ try:
+ radio.pipe.write(frame)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+
+@@ -427,7 +427,7 @@ class LeixenVV898Radio(chirp_common.CloneModeRadio):
+ def sync_in(self):
+ try:
+ self._mmap = do_download(self)
+- except Exception, e:
++ except Exception as e:
+ finish(self)
+ raise errors.RadioError("Failed to download from radio: %s" % e)
+ self.process_mmap()
+@@ -442,7 +442,7 @@ class LeixenVV898Radio(chirp_common.CloneModeRadio):
+ except errors.RadioError:
+ finish(self)
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to upload to radio: %s" % e)
+
+ def get_raw_memory(self, number):
+@@ -941,7 +941,7 @@ class LeixenVV898Radio(chirp_common.CloneModeRadio):
+ else:
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_lt725uv.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_lt725uv.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/lt725uv.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/lt725uv.py
+@@ -1393,7 +1393,7 @@ class LT725UV(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_puxing.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_puxing.py
@@ -0,0 +1,47 @@
+--- chirp/drivers/puxing.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/puxing.py
+@@ -47,7 +47,7 @@ def puxing_prep(radio):
+ for _i in range(0, 10):
+ try:
+ return _puxing_prep(radio)
+- except Exception, e:
++ except Exception as e:
+ time.sleep(1)
+
+ raise e
+@@ -60,7 +60,7 @@ def puxing_download(radio):
+ return do_download(radio, 0x0000, 0x0C60, 0x0008)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+
+@@ -71,7 +71,7 @@ def puxing_upload(radio):
+ return do_upload(radio, 0x0000, 0x0C40, 0x0008)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ POWER_LEVELS = [chirp_common.PowerLevel("High", watts=5.00),
+@@ -372,7 +372,7 @@ def puxing_2r_download(radio):
+ return do_download(radio, 0x0000, 0x0FE0, 0x0010)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+
+@@ -383,7 +383,7 @@ def puxing_2r_upload(radio):
+ return do_upload(radio, 0x0000, 0x0FE0, 0x0010)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ PUXING_2R_MEM_FORMAT = """
Index: comms/chirp/files/patch-chirp_drivers_radioddity__r2.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_radioddity__r2.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/radioddity_r2.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/radioddity_r2.py
+@@ -611,7 +611,7 @@ class RadioddityR2Radio(chirp_common.CloneModeRadio):
+
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_radtel__t18.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_radtel__t18.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/radtel_t18.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/radtel_t18.py
+@@ -478,7 +478,7 @@ class T18Radio(chirp_common.CloneModeRadio):
+ else:
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_retevis__rt1.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_retevis__rt1.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/retevis_rt1.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/retevis_rt1.py
+@@ -726,7 +726,7 @@ class RT1Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_retevis__rt21.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_retevis__rt21.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/retevis_rt21.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/retevis_rt21.py
+@@ -561,7 +561,7 @@ class RT21Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_retevis__rt22.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_retevis__rt22.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/retevis_rt22.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/retevis_rt22.py
+@@ -605,7 +605,7 @@ class RT22Radio(chirp_common.CloneModeRadio):
+
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_retevis__rt23.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_retevis__rt23.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/retevis_rt23.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/retevis_rt23.py
+@@ -846,7 +846,7 @@ class RT23Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_retevis__rt26.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_retevis__rt26.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/retevis_rt26.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/retevis_rt26.py
+@@ -897,7 +897,7 @@ class RT26Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_rfinder.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_rfinder.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/rfinder.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/rfinder.py
+@@ -240,7 +240,7 @@ class RFinderParser:
+ dist = distance(self.__lat, self.__lon, lat, lon)
+ bear = fuzzy_to(self.__lat, self.__lon, lat, lon)
+ mem.comment = "(%imi %s) %s" % (dist, bear, mem.comment)
+- except Exception, e:
++ except Exception as e:
+ LOG.error("Failed to calculate distance: %s" % e)
+
+ return mem
+@@ -258,7 +258,7 @@ class RFinderParser:
+ mem.number = number
+ number += 1
+ self.__memories.append(mem)
+- except Exception, e:
++ except Exception as e:
+ import traceback
+ LOG.error(traceback.format_exc())
+ LOG.error("Error in received data, cannot continue")
Index: comms/chirp/files/patch-chirp_drivers_rh5r__v2.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_rh5r__v2.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/rh5r_v2.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/rh5r_v2.py
+@@ -167,7 +167,7 @@ class TYTTHUVF8_V2(chirp_common.CloneModeRadio):
+ filedata[0x840:0x848] == cls._FILEID)
+
+ def process_mmap(self):
+- print MEM_FORMAT
++ print(MEM_FORMAT)
+ self._memobj = bitwise.parse(MEM_FORMAT, self._mmap)
+
+ def get_raw_memory(self, number):
Index: comms/chirp/files/patch-chirp_drivers_tdxone__tdq8a.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_tdxone__tdq8a.py
@@ -0,0 +1,40 @@
+--- chirp/drivers/tdxone_tdq8a.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/tdxone_tdq8a.py
+@@ -301,8 +301,8 @@ def _ident_radio(radio):
+ try:
+ data = _do_ident(radio, magic)
+ return data
+- except errors.RadioError, e:
+- print e
++ except errors.RadioError as e:
++ print(e)
+ error = e
+ time.sleep(2)
+ if error:
+@@ -426,7 +426,7 @@ def model_match(cls, data):
+
+ if len(data) == 0x2008:
+ rid = data[0x2000:0x2008]
+- print rid
++ print(rid)
+ return rid.startswith(cls.MODEL)
+ else:
+ return False
+@@ -1117,7 +1117,7 @@ class TDXoneTDQ8A(chirp_common.CloneModeRadio,
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -1131,7 +1131,7 @@ class TDXoneTDQ8A(chirp_common.CloneModeRadio,
+ value = int(val.get_value() * 10)
+ LOG.debug("Setting fm_presets = %s" % (value))
+ self._memobj.fm_presets = value
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_th7800.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_th7800.py
@@ -0,0 +1,28 @@
+--- chirp/drivers/th7800.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/th7800.py
+@@ -536,7 +536,7 @@ class TYTTH7800Base(chirp_common.Radio):
+
+ LOG.debug("Setting %s(%s) <= %s" % (setting, oldval, newval))
+ setattr(_settings, setting, newval)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -726,7 +726,7 @@ class TYTTH7800Radio(TYTTH7800Base, chirp_common.Clone
+ def sync_in(self):
+ try:
+ self._mmap = _download(self)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError(
+ "Failed to communicate with the radio: %s" % e)
+ self.process_mmap()
+@@ -734,6 +734,6 @@ class TYTTH7800Radio(TYTTH7800Base, chirp_common.Clone
+ def sync_out(self):
+ try:
+ _upload(self)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError(
+ "Failed to communicate with the radio: %s" % e)
Index: comms/chirp/files/patch-chirp_drivers_th9000.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_th9000.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/th9000.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/th9000.py
+@@ -352,7 +352,7 @@ def _echo_write(radio, data):
+ try:
+ radio.pipe.write(data)
+ radio.pipe.read(len(data))
+- except Exception, e:
++ except Exception as e:
+ LOG.error("Error writing to radio: %s" % e)
+ raise errors.RadioError("Unable to write to radio")
+
+@@ -366,7 +366,7 @@ def _checksum(data):
+ def _read(radio, length):
+ try:
+ data = radio.pipe.read(length)
+- except Exception, e:
++ except Exception as e:
+ LOG.error( "Error reading from radio: %s" % e)
+ raise errors.RadioError("Unable to read from radio")
+
+@@ -793,7 +793,7 @@ class Th9000Radio(chirp_common.CloneModeRadio,
+ else:
+ LOG.debug( "Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug( element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_th9800.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_th9800.py
@@ -0,0 +1,28 @@
+--- chirp/drivers/th9800.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/th9800.py
+@@ -598,7 +598,7 @@ class TYTTH9800Base(chirp_common.Radio):
+
+ LOG.debug("Setting %s(%s) <= %s" % (setting, oldval, newval))
+ setattr(_settings, setting, newval)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -785,7 +785,7 @@ class TYTTH9800Radio(TYTTH9800Base, chirp_common.Clone
+ def sync_in(self):
+ try:
+ self._mmap = _download(self)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError(
+ "Failed to communicate with the radio: %s" % e)
+ self.process_mmap()
+@@ -793,6 +793,6 @@ class TYTTH9800Radio(TYTTH9800Base, chirp_common.Clone
+ def sync_out(self):
+ try:
+ _upload(self)
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError(
+ "Failed to communicate with the radio: %s" % e)
Index: comms/chirp/files/patch-chirp_drivers_th__uv8000.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_th__uv8000.py
@@ -0,0 +1,10 @@
+--- chirp/drivers/th_uv8000.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/th_uv8000.py
+@@ -1486,6 +1486,6 @@ class THUV8000Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
Index: comms/chirp/files/patch-chirp_drivers_thd72.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_thd72.py
@@ -0,0 +1,29 @@
+--- chirp/drivers/thd72.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/thd72.py
+@@ -581,7 +581,7 @@ class THD72Radio(chirp_common.CloneModeRadio):
+ except AttributeError as e:
+ LOG.error("Setting %s is not in the memory map: %s" %
+ (element.get_name(), e))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -738,9 +738,9 @@ if __name__ == "__main__":
+ return r
+
+ def usage():
+- print "Usage: %s <-i input.img>|<-o output.img> -p port " \
++ print("Usage: %s <-i input.img>|<-o output.img> -p port " \
+ "[[-f first-addr] [-l last-addr] | [-b list,of,blocks]]" % \
+- sys.argv[0]
++ sys.argv[0])
+ sys.exit(1)
+
+ opts, args = getopt.getopt(sys.argv[1:], "i:o:p:f:l:b:")
+@@ -793,4 +793,4 @@ if __name__ == "__main__":
+ else:
+ r._mmap = file(fname, "rb").read(r._memsize)
+ r.upload(blocks)
+- print "\nDone"
++ print("\nDone")
Index: comms/chirp/files/patch-chirp_drivers_thuv1f.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_thuv1f.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/thuv1f.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/thuv1f.py
+@@ -214,7 +214,7 @@ class TYTTHUVF1Radio(chirp_common.CloneModeRadio):
+ self._mmap = uvf1_download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+ self.process_mmap()
+
+@@ -223,7 +223,7 @@ class TYTTHUVF1Radio(chirp_common.CloneModeRadio):
+ uvf1_upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ @classmethod
Index: comms/chirp/files/patch-chirp_drivers_tk760g.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_tk760g.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/tk760g.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/tk760g.py
+@@ -907,7 +907,7 @@ class Kenwood_Serie_60G(chirp_common.CloneModeRadio, c
+ do_upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def process_mmap(self):
Index: comms/chirp/files/patch-chirp_drivers_ts2000.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ts2000.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/ts2000.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ts2000.py
+@@ -217,7 +217,7 @@ class TS2000Radio(KenwoodLiveRadio):
+ duplex = 0
+ offset = 0
+ else:
+- print "Bug: unsupported duplex `%s'" % mem.duplex
++ print("Bug: unsupported duplex `%s'" % mem.duplex)
+ if mem.mode in ["AM", "FM"]:
+ step = TS2000_FM_STEPS.index(mem.tuning_step)
+ else:
+@@ -259,7 +259,7 @@ class TS2000Radio(KenwoodLiveRadio):
+ elif mem.duplex == "split":
+ duplex = 0
+ else:
+- print "Bug: unsupported duplex `%s'" % mem.duplex
++ print("Bug: unsupported duplex `%s'" % mem.duplex)
+ if mem.mode in ["AM", "FM"]:
+ step = TS2000_FM_STEPS.index(mem.tuning_step)
+ else:
Index: comms/chirp/files/patch-chirp_drivers_ts480.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ts480.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/ts480.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ts480.py
+@@ -1138,7 +1138,7 @@ class TS480Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+ return
Index: comms/chirp/files/patch-chirp_drivers_ts590.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_ts590.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/ts590.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/ts590.py
+@@ -1644,7 +1644,7 @@ class TS590Radio(chirp_common.CloneModeRadio):
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_vgc.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_vgc.py
@@ -0,0 +1,11 @@
+--- chirp/drivers/vgc.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/vgc.py
+@@ -1410,7 +1410,7 @@ class VGCStyleRadio(chirp_common.CloneModeRadio,
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_drivers_vx6.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_vx6.py
@@ -0,0 +1,9 @@
+--- chirp/drivers/vx6.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/vx6.py
+@@ -871,5 +871,5 @@ class VX6Radio(yaesu_clone.YaesuCloneModeRadio):
+ elif setting == "password":
+ newval = self._encode_chars(newval, 4)
+ setattr(_settings, setting, newval)
+- except Exception, e:
++ except Exception as e:
+ raise
Index: comms/chirp/files/patch-chirp_drivers_vxa700.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_vxa700.py
@@ -0,0 +1,20 @@
+--- chirp/drivers/vxa700.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/vxa700.py
+@@ -177,7 +177,7 @@ class VXA700Radio(chirp_common.CloneModeRadio):
+ self._mmap = _download(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate " +
+ "with the radio: %s" % e)
+ self.process_mmap()
+@@ -192,7 +192,7 @@ class VXA700Radio(chirp_common.CloneModeRadio):
+ _upload(self)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate " +
+ "with the radio: %s" % e)
+
Index: comms/chirp/files/patch-chirp_drivers_wouxun.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_drivers_wouxun.py
@@ -0,0 +1,65 @@
+--- chirp/drivers/wouxun.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/drivers/wouxun.py
+@@ -274,7 +274,7 @@ class KGUVD1PRadio(chirp_common.CloneModeRadio,
+ return do_download(self, 0x0000, 0x2000, 0x0040)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def _upload(self):
+@@ -285,7 +285,7 @@ class KGUVD1PRadio(chirp_common.CloneModeRadio,
+ return do_upload(self, 0x0000, 0x2000, 0x0010)
+ except errors.RadioError:
+ raise
+- except Exception, e:
++ except Exception as e:
+ raise errors.RadioError("Failed to communicate with radio: %s" % e)
+
+ def sync_in(self):
+@@ -658,7 +658,7 @@ class KGUVD1PRadio(chirp_common.CloneModeRadio,
+ else:
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -680,7 +680,7 @@ class KGUVD1PRadio(chirp_common.CloneModeRadio,
+ else:
+ setting = self._memobj.fm_presets_1
+ setting[index] = value
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -690,7 +690,7 @@ class KGUVD1PRadio(chirp_common.CloneModeRadio,
+ setattr(self._memobj.freq_ranges,
+ element.get_name(),
+ encode_freq(int(element.value)))
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -1397,7 +1397,7 @@ class KGUV6DRadio(KGUVD1PRadio):
+ else:
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
+@@ -1419,7 +1419,7 @@ class KGUV6DRadio(KGUVD1PRadio):
+ else:
+ setting = self._memobj.fm_presets_1
+ setting[index] = value
+- except Exception, e:
++ except Exception as e:
+ LOG.debug(element.get_name())
+ raise
+
Index: comms/chirp/files/patch-chirp_ui_mainapp.py
===================================================================
--- /dev/null
+++ comms/chirp/files/patch-chirp_ui_mainapp.py
@@ -0,0 +1,11 @@
+--- chirp/ui/mainapp.py.orig 2020-02-14 00:35:52 UTC
++++ chirp/ui/mainapp.py
+@@ -1137,7 +1137,7 @@ of file.
+
+ query = "http://chirp.danplanet.com/query/rb/1.0/app_direct" \
+ "?loc=%s&band=%s&dist=%s" % (loc, band, dist)
+- print query
++ print(query)
+
+ # Do this in case the import process is going to take a while
+ # to make sure we process events leading up to this
Index: comms/chirp/files/patch-setup.py
===================================================================
--- comms/chirp/files/patch-setup.py
+++ comms/chirp/files/patch-setup.py
@@ -1,21 +1,29 @@
---- setup.py.orig 2015-03-05 08:00:18 UTC
+--- setup.py.orig 2020-05-11 09:14:19 UTC
+++ setup.py
-@@ -109,7 +109,7 @@ def default_build():
+@@ -112,8 +112,6 @@ def default_build():
+ os.system("make -C locale clean all")
desktop_files = glob("share/*.desktop")
- # form_files = glob("forms/*.x?l")
+- # form_files = glob("forms/*.x?l")
- image_files = glob("images/*")
-+# image_files = glob("images/*")
_locale_files = glob("locale/*/LC_MESSAGES/CHIRP.mo")
stock_configs = glob("stock_configs/*")
-@@ -127,11 +127,11 @@ def default_build():
+@@ -123,8 +121,6 @@ def default_build():
+
+ print("LOC: %s" % str(locale_files))
+
+- xsd_files = glob("chirp*.xsd")
+-
+ setup(
+ name="chirp",
+ packages=["chirp", "chirp.drivers", "chirp.ui", "tests", "tests.unit",
+@@ -132,11 +128,9 @@ def default_build():
version=CHIRP_VERSION,
- scripts=["chirpw"],
+ scripts=["chirpw", "rpttool", "chirpwx.py"],
data_files=[('share/applications', desktop_files),
- ('share/chirp/images', image_files),
-+# ('share/chirp/images', image_files),
- ('share/chirp', xsd_files),
+- ('share/chirp', xsd_files),
- ('share/doc/chirp', ['COPYING']),
+# ('share/doc/chirp', ['COPYING']),
('share/pixmaps', ['share/chirp.png']),

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 19, 5:29 AM (11 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29949140
Default Alt Text
D26434.diff (66 KB)

Event Timeline