Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package chirp for openSUSE:Factory checked in at 2025-08-03 13:37:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chirp (Old) and /work/SRC/openSUSE:Factory/.chirp.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chirp" Sun Aug 3 13:37:31 2025 rev:32 rq:1297119 version:20250801 Changes: -------- --- /work/SRC/openSUSE:Factory/chirp/chirp.changes 2025-07-21 19:59:43.369643858 +0200 +++ /work/SRC/openSUSE:Factory/.chirp.new.1085/chirp.changes 2025-08-03 13:37:59.800909433 +0200 @@ -1,0 +2,11 @@ +Fri Aug 1 19:23:11 UTC 2025 - Andreas Stieger <andreas.stie...@gmx.de> + +- Update to version 20250801: + * Add fingerprint for RT-630 V0.09 + * btech: Fix block size for non-8900D models + * Add Baofeng UV-5G Pro + * btech: Fix download for QYT KT-8900D radios + * ft4: Format different ID messages for better readability + * rt21: Add new fingerprint for RT29UHF + +------------------------------------------------------------------- Old: ---- chirp-20250718.obscpio New: ---- chirp-20250801.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chirp.spec ++++++ --- /var/tmp/diff_new_pack.I3fYkS/_old 2025-08-03 13:38:01.356973975 +0200 +++ /var/tmp/diff_new_pack.I3fYkS/_new 2025-08-03 13:38:01.360974141 +0200 @@ -19,7 +19,7 @@ %define pythons python3 Name: chirp -Version: 20250718 +Version: 20250801 Release: 0 Summary: Tool for programming amateur radio sets License: GPL-3.0-only ++++++ _service ++++++ --- /var/tmp/diff_new_pack.I3fYkS/_old 2025-08-03 13:38:01.392975468 +0200 +++ /var/tmp/diff_new_pack.I3fYkS/_new 2025-08-03 13:38:01.396975634 +0200 @@ -4,8 +4,8 @@ <param name="scm">git</param> <param name="changesgenerate">enable</param> <param name="filename">chirp</param> - <param name="versionformat">20250718</param> - <param name="revision">c28ea5e8a7d8036ccc76ec38a050fd30b84c65e4</param> + <param name="versionformat">20250801</param> + <param name="revision">477a28489d173e582f859e6f7242bbbeb840fd60</param> </service> <service mode="manual" name="set_version"/> <service name="tar" mode="buildtime"/> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.I3fYkS/_old 2025-08-03 13:38:01.416976464 +0200 +++ /var/tmp/diff_new_pack.I3fYkS/_new 2025-08-03 13:38:01.420976630 +0200 @@ -1,7 +1,7 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kk7ds/chirp.git</param> - <param name="changesrevision">c28ea5e8a7d8036ccc76ec38a050fd30b84c65e4</param> + <param name="changesrevision">477a28489d173e582f859e6f7242bbbeb840fd60</param> </service> </servicedata> (No newline at EOF) ++++++ chirp-20250718.obscpio -> chirp-20250801.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chirp-20250718/chirp/drivers/btech.py new/chirp-20250801/chirp/drivers/btech.py --- old/chirp-20250718/chirp/drivers/btech.py 2025-07-17 23:58:04.000000000 +0200 +++ new/chirp-20250801/chirp/drivers/btech.py 2025-08-01 00:30:55.000000000 +0200 @@ -419,11 +419,11 @@ # Get the full 69 bytes at a time to reduce load # 1 byte ACK + 4 bytes header + 64 bytes of data (BLOCK_SIZE) - # get the whole block - block = _rawrecv(radio, BLOCK_SIZE + 5) + # get the whole block Bug #11851 BLOCKSIZE fix for KT-8900D + block = _rawrecv(radio, radio._block_size + 5) - # basic check - if len(block) < (BLOCK_SIZE + 5): + # basic check Bug #11851 BLOCKSIZE fix for KT-8900D + if len(block) < (radio._block_size + 5): raise errors.RadioError("Short read of the block 0x%04x" % addr) # checking for the ack @@ -432,7 +432,7 @@ # header validation c, a, l = struct.unpack(">BHB", block[1:5]) - if a != addr or l != BLOCK_SIZE or c != ord("X"): + if a != addr or l != radio._block_size or c != ord("X"): LOG.debug("Invalid header for block 0x%04x" % addr) LOG.debug("CMD: %s ADDR: %04x SIZE: %02x" % (c, a, l)) raise errors.RadioError("Invalid header for block 0x%04x:" % addr) @@ -542,16 +542,16 @@ # put radio in program mode and identify it _do_ident(radio, status) - # reset the progress bar in the UI - status.max = MEM_SIZE // BLOCK_SIZE + # reset the progress bar in the UI Bug #11851 BLOCKSIZE fix for KT-8900D + status.max = MEM_SIZE // radio._block_size status.msg = "Cloning from radio..." status.cur = 0 radio.status_fn(status) data = b"" - for addr in range(0, MEM_SIZE, BLOCK_SIZE): + for addr in range(0, MEM_SIZE, radio._block_size): # sending the read request - _send(radio, _make_frame("S", addr, BLOCK_SIZE)) + _send(radio, _make_frame("S", addr, radio._block_size)) # read d = _recv(radio, addr) @@ -662,6 +662,7 @@ """BTECH's UV-5001 and alike radios""" VENDOR = "BTECH" MODEL = "" + _block_size = BLOCK_SIZE # Bug 11851 should default to BLOCK_SIZE IDENT = "" BANDS = 2 COLOR_LCD = False @@ -4091,6 +4092,7 @@ """QYT KT8900D""" VENDOR = "QYT" MODEL = "KT8900D" + _block_size = 0x10 # Bug 11851 BLOCKSIZE fix for KT-8900D BANDS = 2 LIST_TMR = LIST_TMR15 _vhf_range = (136000000, 175000000) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chirp-20250718/chirp/drivers/ft4.py new/chirp-20250801/chirp/drivers/ft4.py --- old/chirp-20250718/chirp/drivers/ft4.py 2025-07-17 23:58:04.000000000 +0200 +++ new/chirp-20250801/chirp/drivers/ft4.py 2025-08-01 00:30:55.000000000 +0200 @@ -345,13 +345,15 @@ if id_response != radio.id_str: substr0 = radio.id_str[:radio.id_str.find(b'\x00')] if id_response[:id_response.find(b'\x00')] != substr0: - msg = "ID mismatch. Expected" + util.hexprint(radio.id_str) - msg += ", Received:" + util.hexprint(id_response_mod) + msg = "ID mismatch.\nExpected:\n{}Received:\n{}".format( + util.hexprint(radio.id_str), util.hexprint(id_response_mod) + ) LOG.warning(msg) raise errors.RadioError("Incorrect ID read from radio.") else: - msg = "ID suspect. Expected" + util.hexprint(radio.id_str) - msg += ", Received:" + util.hexprint(id_response_mod) + msg = "ID suspect.\nExpected:\n{}Received:\n{}".format( + util.hexprint(radio.id_str), util.hexprint(id_response_mod) + ) LOG.warning(msg) return progressbar diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chirp-20250718/chirp/drivers/mml_jc8810.py new/chirp-20250801/chirp/drivers/mml_jc8810.py --- old/chirp-20250718/chirp/drivers/mml_jc8810.py 2025-07-17 23:58:04.000000000 +0200 +++ new/chirp-20250801/chirp/drivers/mml_jc8810.py 2025-08-01 00:30:55.000000000 +0200 @@ -1580,6 +1580,7 @@ # ========== _fingerprint = [b"\x00\x00\x00\x32\x00\x20\xD8\x04", # fw 0.07 + b"\x00\x00\x00\x36\x00\x20\xDC\x04", # fw V0.09 20250703 ] POWER_LEVELS = [chirp_common.PowerLevel("H", watts=5.00), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chirp-20250718/chirp/drivers/retevis_rt21.py new/chirp-20250801/chirp/drivers/retevis_rt21.py --- old/chirp-20250718/chirp/drivers/retevis_rt21.py 2025-07-17 23:58:04.000000000 +0200 +++ new/chirp-20250801/chirp/drivers/retevis_rt21.py 2025-08-01 00:30:55.000000000 +0200 @@ -2034,7 +2034,8 @@ chirp_common.PowerLevel("Low", watts=1.00)] _magic = b"PROHRAM" - _fingerprint = [b"P3207" + b"\x13\xF8\xFF", ] # UHF model + _fingerprint = [b"P3207" + b"\x13\xF8\xFF", + b"P3207s\xF8\xFF"] # UHF model _upper = 16 _skipflags = True _reserved = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chirp-20250718/chirp/drivers/uv5r.py new/chirp-20250801/chirp/drivers/uv5r.py --- old/chirp-20250718/chirp/drivers/uv5r.py 2025-07-17 23:58:04.000000000 +0200 +++ new/chirp-20250801/chirp/drivers/uv5r.py 2025-08-01 00:30:55.000000000 +0200 @@ -1902,6 +1902,46 @@ @directory.register +class BaofengUV5GPro(BaofengUV5R): + MODEL = "UV-5G Pro" + _airband = (108000000, 136000000) + + def get_features(self): + rf = super().get_features() + rf.valid_bands = [(108000000, 174000000), + (220000000, 260000000), + (350000000, 390000000), + (400000000, 520000000)] + rf.valid_modes.append('AM') + return rf + + @classmethod + def match_model(cls, filename, filedata): + return False + + def get_memory(self, number): + mem = super().get_memory(number) + if chirp_common.in_range(mem.freq, [self._airband]): + # UV-5G Pro is AM in 108-136 MHz range + mem.mode = 'AM' + elif mem.mode == 'AM': + mem.mode = 'FM' + return mem + + def validate_memory(self, mem): + msgs = super().validate_memory(mem) + if (chirp_common.in_range(mem.freq, [self._airband]) and + not mem.mode == 'AM'): + msgs.append(chirp_common.ValidationWarning( + _('Frequency in this range requires AM mode'))) + if (not chirp_common.in_range(mem.freq, [self._airband]) and + mem.mode == 'AM'): + msgs.append(chirp_common.ValidationWarning( + _('Frequency in this range must not be AM mode'))) + return msgs + + +@directory.register class BaofengF11Radio(BaofengUV5R): VENDOR = "Baofeng" MODEL = "F-11" Binary files old/chirp-20250718/tests/images/Baofeng_UV-5G_Pro.img and new/chirp-20250801/tests/images/Baofeng_UV-5G_Pro.img differ ++++++ chirp.obsinfo ++++++ --- /var/tmp/diff_new_pack.I3fYkS/_old 2025-08-03 13:38:02.001000688 +0200 +++ /var/tmp/diff_new_pack.I3fYkS/_new 2025-08-03 13:38:02.005000854 +0200 @@ -1,5 +1,5 @@ name: chirp -version: 20250718 -mtime: 1752789484 -commit: c28ea5e8a7d8036ccc76ec38a050fd30b84c65e4 +version: 20250801 +mtime: 1754001055 +commit: 477a28489d173e582f859e6f7242bbbeb840fd60