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 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']),