[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. f42782c2eac82d326783e
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: n0nb <n0...@us...> - 2025-09-03 19:40:42
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via f42782c2eac82d326783e5138a9bed860e9f83eb (commit) via 688b9dba9a51b143b75a33b204932d37cb3b99e6 (commit) via 7f8ac191e98eb00ce80318777573d632e40a38f1 (commit) via 50852d43b91dd4762d143c02fdec10389ab2b3b9 (commit) via dfad2a788ba2d3863ddbf8f3b3f3cac39ae8c8da (commit) via fa7ca3415ded790764b4434dcf6d315b089eb19b (commit) via 9bad1d6eb20b91c16d9d88f37a65bae7fd3ddd48 (commit) from f15537f2e690bcf4a705a8976e4327738a18afde (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f42782c2eac82d326783e5138a9bed860e9f83eb Author: George Baltz N3GB <Geo...@gm...> Date: Wed Sep 3 10:11:41 2025 -0400 Fix typo diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index 72a7c59de..18c1323d5 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -46,7 +46,7 @@ Along with the moves to separate storage, the definitions of these data structur will be moved out of hamlib/rig.h to their own include files. These `.h` files also define macros to get the address of said structures. -Prelinary versions of these files are also part of 4.7 for pre-emptive use. +Preliminary versions of these files are also part of 4.7 for pre-emptive use. ### The good news If your application only calls the Hamlib API routines, then nothing needs to change. commit 688b9dba9a51b143b75a33b204932d37cb3b99e6 Author: George Baltz N3GB <Geo...@gm...> Date: Tue Sep 2 22:09:06 2025 -0400 Ask for testing of FTX-1 diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index 90bb2ad4a..72a7c59de 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -6,7 +6,7 @@ This release brings new equipment support, bug fixes/code cleanups, and some changes to ease transition to 5.0 ## New equipment support -- Yaesu FTX-1 Optima/Field - Work in progress +- Yaesu FTX-1 Optima/Field - Work in progress; testers welcome. - Drake R8/R8A/R8B - new, revised backend - AF6SA WRC rotator - GUOHETEC PMR-171 & Q900 moved to separate backend commit 7f8ac191e98eb00ce80318777573d632e40a38f1 Author: George Baltz N3GB <Geo...@gm...> Date: Tue Sep 2 18:17:30 2025 -0400 Bring some things up to date. Still nowhere close to done. diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index 0fe2dae33..90bb2ad4a 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -1,32 +1,35 @@ # HAMLIB 4.7 - Release Notes (WIP) 2025-12-01(?) +*This is very much a first cut - nothing is set in concrete or inviolate - n3gb* + This release brings new equipment support, bug fixes/code cleanups, and some changes to ease transition to 5.0 ## New equipment support -- Yaesu FTX-1 Optima/Field - Work in progress, waiting for official - documentation from Yaesu +- Yaesu FTX-1 Optima/Field - Work in progress - Drake R8/R8A/R8B - new, revised backend - AF6SA WRC rotator - GUOHETEC PMR-171 & Q900 moved to separate backend -## Bug Fixes & Code cleanups +## Bug fixes & code cleanups - Codebase conforms to ISO/IEC 9899:2024 (-std=c23) - Reduce gripes from cppcheck and other static analyzers - Functions `rig_get_conf()`, `rot_get_conf()` and `amp_get_conf()` are deprecated and will be removed in 5.0. Use `..._get_conf2()` instead. See issue [#924](https://github.com/Hamlib/Hamlib/issues/924). +- Documentation brought up to date. - (TBD) -## Build/install Changes +## Build/install changes - POSIX threads(PTHREADS) support required +- Many fixes for building the optional language bindings - C compiler - Supported compilers unchanged; c11 or c17 recommended, c23 optional. 5.0 will require at least c11. ## Changes for 5.0 HAMLIB 5.0 will make some major changes to the Application Binary Interface(ABI) that will require changes to some applications, and at least recompilation/linking for all -apps. Most(All, I hope) of these source changes can be made/tested/debugged incrementally +apps. Most(all, I hope) of these source changes can be made/tested/debugged incrementally with 4.7, making the transition much easier. The Application Programming Interface(API) does not change. @@ -43,6 +46,8 @@ Along with the moves to separate storage, the definitions of these data structur will be moved out of hamlib/rig.h to their own include files. These `.h` files also define macros to get the address of said structures. +Prelinary versions of these files are also part of 4.7 for pre-emptive use. + ### The good news If your application only calls the Hamlib API routines, then nothing needs to change. If your application only uses configuration items like names, speeds, etc, it may be diff --git a/ReleaseNotes_5.0.md b/ReleaseNotes_5.0.md index 890afc35a..fb1797e9d 100644 --- a/ReleaseNotes_5.0.md +++ b/ReleaseNotes_5.0.md @@ -1,5 +1,7 @@ # HAMLIB 5.0 - Release Notes (DRAFT) 2026-12-01(target) +*This more of a list of possibilities than a true document - a strawman only* + This major release includes a restructuring of HAMLIB internal storage, forcing changes to the Application Binary Interface(ABI). commit 50852d43b91dd4762d143c02fdec10389ab2b3b9 Author: George Baltz N3GB <Geo...@gm...> Date: Sun Aug 3 10:28:27 2025 -0400 Add deprecation/change info diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index f0bde453b..0fe2dae33 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -35,8 +35,8 @@ HAMLIB 5.0 will move many data items/structures out of rig_struct into separate buffers. See issues [#487](https://github.com/Hanlib/Hamlib/issues/487), [#1445](https://github.com/Hamlib/Hamlib/issues/1445), and [#1420](https://github.com/Hamlib/Hamlib/issues/1420). This changes many of -the methods for accessing HAMLIB internal data. It also removes some obsolete -items, and restructures/resizes others. +the methods for accessing HAMLIB internal data. HAMLIB 4.7 marks these old methods as +"Deprecated", and supplies macros to use for forward compatibility. ### Include files Along with the moves to separate storage, the definitions of these data structures diff --git a/ReleaseNotes_5.0.md b/ReleaseNotes_5.0.md index 04e72579e..890afc35a 100644 --- a/ReleaseNotes_5.0.md +++ b/ReleaseNotes_5.0.md @@ -6,19 +6,28 @@ changes to the Application Binary Interface(ABI). ## New Hardware - TBD -## Build changes -- No more K&R C - C compiler needs at least c11 capability. +## Bug fixes & code cleanups +- shortfreq_t changed to int32? - Functions rig_get_conf(), rot_get_conf() and amp_get_conf() have been removed. See [issue #924](https://github.com/Hamlib/Hamlib/issues/924). -- shortfreq_t changed to int32? + +## Build changes +- No more K&R C - C compiler needs at least c11 capability. ## Application changes +The renovation of HAMLIB working storage was done with three goals: + +- Eliminate problems due to having structures within structures, which caused alignment + issues between applications and shared libraries. +- Separate API definitions from HAMLIB internal data. +- Plan for the future. + +### Structure renovation Many of the internal HAMLIB data structures have been moved out of the rig_struct area into their own heap buffers, and are addressed by pointers. Any application that wishes to access these structure will have to add a new `#include` statement and use a macro defined in that `.h` file to obtain the address. - | Structure | Old reference | Include file | New Pointer | | --------- | ---------------- | ----------------- | ------------ | | Rig state | `rig->state` | `<hamlib/rig_state.h>` | `HAMLIB_STATE(rig)` | @@ -30,3 +39,12 @@ use a macro defined in that `.h` file to obtain the address. | Rotator state | `rot->state` | `<hamlib/rot_state.h>` | `HAMLIB_ROTSTATE(rot)` | | Rotator port | `rot->state.rotport` | `<hamlib/port.h>` | `HAMLIB_ROTPORT(rot)` | | Rotator port2 | `rot->state.rotport2` | `<hamlib/port.h>` | `HAMLIB_ROTPORT2(rot)` | + +### Separate definitions +Previously, including `hamlib/rig.h` in an application defined not only the API functions +and constants needed to use HAMLIB, but everything needed by HAMLIB itself. This may +have caused conflicts with the app's own symbols("namespace pollution"), or just added to +compilation time. Some(many?) of these are now kept solely within HAMLIB. Including +`hamlib/rig.h` should be just enough to call the API functions. + +### Future considerations commit dfad2a788ba2d3863ddbf8f3b3f3cac39ae8c8da Author: George Baltz N3GB <Geo...@gm...> Date: Thu Jul 31 21:38:53 2025 -0400 More things filled in Add links to issues(with URLs) Add table of structures/include files/macros diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index e7241a87b..f0bde453b 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -1,4 +1,4 @@ -# HAMLIB 4.7 - Release Notes +# HAMLIB 4.7 - Release Notes (WIP) 2025-12-01(?) This release brings new equipment support, bug fixes/code cleanups, and some changes to ease transition to 5.0 @@ -13,8 +13,9 @@ changes to ease transition to 5.0 ## Bug Fixes & Code cleanups - Codebase conforms to ISO/IEC 9899:2024 (-std=c23) - Reduce gripes from cppcheck and other static analyzers -- Functions rig_get_conf(), rot_get_conf() and amp_get_conf() are deprecated and - will be removed in 5.0. Use xyz_get_conf2() instead. See issue #924 +- Functions `rig_get_conf()`, `rot_get_conf()` and `amp_get_conf()` are deprecated and + will be removed in 5.0. Use `..._get_conf2()` instead. See issue + [#924](https://github.com/Hamlib/Hamlib/issues/924). - (TBD) ## Build/install Changes @@ -30,9 +31,12 @@ with 4.7, making the transition much easier. The Application Programming Interfa does not change. ### Storage restructuring -HAMLIB 5.0 will move many data items/structures out of rig_struct into separate, -calloc'ed buffers. This changes many of the methods for accessing HAMLIB internal -data. It also removes some obsolete items, and restructures/resizes others. +HAMLIB 5.0 will move many data items/structures out of rig_struct into separate heap +buffers. See issues [#487](https://github.com/Hanlib/Hamlib/issues/487), +[#1445](https://github.com/Hamlib/Hamlib/issues/1445), and +[#1420](https://github.com/Hamlib/Hamlib/issues/1420). This changes many of +the methods for accessing HAMLIB internal data. It also removes some obsolete +items, and restructures/resizes others. ### Include files Along with the moves to separate storage, the definitions of these data structures diff --git a/ReleaseNotes_5.0.md b/ReleaseNotes_5.0.md index 526b67517..04e72579e 100644 --- a/ReleaseNotes_5.0.md +++ b/ReleaseNotes_5.0.md @@ -1,4 +1,4 @@ -# HAMLIB 5.0 - Release Notes (DRAFT) +# HAMLIB 5.0 - Release Notes (DRAFT) 2026-12-01(target) This major release includes a restructuring of HAMLIB internal storage, forcing changes to the Application Binary Interface(ABI). @@ -9,7 +9,24 @@ changes to the Application Binary Interface(ABI). ## Build changes - No more K&R C - C compiler needs at least c11 capability. - Functions rig_get_conf(), rot_get_conf() and amp_get_conf() have been removed. - See issue #924. -- shortfreq_t changed to int? + See [issue #924](https://github.com/Hamlib/Hamlib/issues/924). +- shortfreq_t changed to int32? ## Application changes +Many of the internal HAMLIB data structures have been moved out of the rig_struct +area into their own heap buffers, and are addressed by pointers. Any application that +wishes to access these structure will have to add a new `#include` statement and +use a macro defined in that `.h` file to obtain the address. + + +| Structure | Old reference | Include file | New Pointer | +| --------- | ---------------- | ----------------- | ------------ | +| Rig state | `rig->state` | `<hamlib/rig_state.h>` | `HAMLIB_STATE(rig)` | +| Rig CAT port | `rig->state.rigport` | `<hamlib/port.h>` | `HAMLIB_RIGPORT(rig)` | +| Rig PTT port | `rig->state.pttport` | `<hamlib/port.h>` | `HAMLIB_PTTPORT(rig)` | +| Rig DCD port | `rig->state.dcdport` | `<hamlib/port.h>` | `HAMLIB_DCDPORT(rig)` | +| Amplifier state | `amp->state` | `<hamlib/amp_state.h>` | `HAMLIB_AMPSTATE(amp)` | +| Amplifier port | `amp->state.ampport` | `<hamlib/port.h>` | `HAMLIB_AMPPORT(amp)` | +| Rotator state | `rot->state` | `<hamlib/rot_state.h>` | `HAMLIB_ROTSTATE(rot)` | +| Rotator port | `rot->state.rotport` | `<hamlib/port.h>` | `HAMLIB_ROTPORT(rot)` | +| Rotator port2 | `rot->state.rotport2` | `<hamlib/port.h>` | `HAMLIB_ROTPORT2(rot)` | commit fa7ca3415ded790764b4434dcf6d315b089eb19b Author: George Baltz N3GB <Geo...@gm...> Date: Sun Jul 27 17:15:17 2025 -0400 More text for relnote diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index 036e80b7d..e7241a87b 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -1,6 +1,6 @@ # HAMLIB 4.7 - Release Notes -The release brings new equipment support, bug fixes/code cleanups, and some +This release brings new equipment support, bug fixes/code cleanups, and some changes to ease transition to 5.0 ## New equipment support @@ -13,21 +13,33 @@ changes to ease transition to 5.0 ## Bug Fixes & Code cleanups - Codebase conforms to ISO/IEC 9899:2024 (-std=c23) - Reduce gripes from cppcheck and other static analyzers -- Function rig_get_conf() is deprecated and will be removed in 5.0. - Use rig_get_conf2() instead. +- Functions rig_get_conf(), rot_get_conf() and amp_get_conf() are deprecated and + will be removed in 5.0. Use xyz_get_conf2() instead. See issue #924 - (TBD) ## Build/install Changes -- POSIX thread(PTHREADS) support required +- POSIX threads(PTHREADS) support required - C compiler - Supported compilers unchanged; c11 or c17 recommended, c23 optional. 5.0 will require at least c11. ## Changes for 5.0 +HAMLIB 5.0 will make some major changes to the Application Binary Interface(ABI) that will +require changes to some applications, and at least recompilation/linking for all +apps. Most(All, I hope) of these source changes can be made/tested/debugged incrementally +with 4.7, making the transition much easier. The Application Programming Interface(API) +does not change. ### Storage restructuring -HAMLIB 5.0 will move many data items/structures out of rig_struct into -separate, calloc'ed buffers. This changes many of the methods for accessing -HAMLIB internal data. +HAMLIB 5.0 will move many data items/structures out of rig_struct into separate, +calloc'ed buffers. This changes many of the methods for accessing HAMLIB internal +data. It also removes some obsolete items, and restructures/resizes others. ### Include files - +Along with the moves to separate storage, the definitions of these data structures +will be moved out of hamlib/rig.h to their own include files. These `.h` files also +define macros to get the address of said structures. + +### The good news +If your application only calls the Hamlib API routines, then nothing needs to change. +If your application only uses configuration items like names, speeds, etc, it may be +easiest to change over to using rig_set_conf(). and let Hamlib handle the internals. diff --git a/ReleaseNotes_5.0.md b/ReleaseNotes_5.0.md index dcba4a2ab..526b67517 100644 --- a/ReleaseNotes_5.0.md +++ b/ReleaseNotes_5.0.md @@ -7,7 +7,9 @@ changes to the Application Binary Interface(ABI). - TBD ## Build changes -- No more K&R C - need at least c11 compiler support. +- No more K&R C - C compiler needs at least c11 capability. +- Functions rig_get_conf(), rot_get_conf() and amp_get_conf() have been removed. + See issue #924. - shortfreq_t changed to int? ## Application changes commit 9bad1d6eb20b91c16d9d88f37a65bae7fd3ddd48 Author: George Baltz N3GB <Geo...@gm...> Date: Sat Jul 26 13:09:42 2025 -0400 Baseline for Release Notes diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md new file mode 100644 index 000000000..036e80b7d --- /dev/null +++ b/ReleaseNotes_4.7.md @@ -0,0 +1,33 @@ +# HAMLIB 4.7 - Release Notes + +The release brings new equipment support, bug fixes/code cleanups, and some +changes to ease transition to 5.0 + +## New equipment support +- Yaesu FTX-1 Optima/Field - Work in progress, waiting for official + documentation from Yaesu +- Drake R8/R8A/R8B - new, revised backend +- AF6SA WRC rotator +- GUOHETEC PMR-171 & Q900 moved to separate backend + +## Bug Fixes & Code cleanups +- Codebase conforms to ISO/IEC 9899:2024 (-std=c23) +- Reduce gripes from cppcheck and other static analyzers +- Function rig_get_conf() is deprecated and will be removed in 5.0. + Use rig_get_conf2() instead. +- (TBD) + +## Build/install Changes +- POSIX thread(PTHREADS) support required +- C compiler - Supported compilers unchanged; c11 or c17 recommended, + c23 optional. 5.0 will require at least c11. + +## Changes for 5.0 + +### Storage restructuring +HAMLIB 5.0 will move many data items/structures out of rig_struct into +separate, calloc'ed buffers. This changes many of the methods for accessing +HAMLIB internal data. + +### Include files + diff --git a/ReleaseNotes_5.0.md b/ReleaseNotes_5.0.md new file mode 100644 index 000000000..dcba4a2ab --- /dev/null +++ b/ReleaseNotes_5.0.md @@ -0,0 +1,13 @@ +# HAMLIB 5.0 - Release Notes (DRAFT) + +This major release includes a restructuring of HAMLIB internal storage, forcing +changes to the Application Binary Interface(ABI). + +## New Hardware +- TBD + +## Build changes +- No more K&R C - need at least c11 compiler support. +- shortfreq_t changed to int? + +## Application changes ----------------------------------------------------------------------- Summary of changes: ReleaseNotes_4.7.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ ReleaseNotes_5.0.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 ReleaseNotes_4.7.md create mode 100644 ReleaseNotes_5.0.md hooks/post-receive -- Hamlib -- Ham radio control libraries |