[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 3a10a363dc8a4358ace22
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: n0nb <n0...@us...> - 2025-09-13 20:56:11
|
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 3a10a363dc8a4358ace228620a1e3cdc185f459e (commit) via 410c172ed67da2dd3b9b001df524698e05d72805 (commit) via 85bd4882dd2ea8f9fc398b440219bb965c48911c (commit) via b90e1d10b1063fd608f1694f920f43e512a1ceeb (commit) via bae995413d339978c7e9469fccd4821965189431 (commit) via d64520a086ec2e7cb585e9c1c730f50c5bd81114 (commit) via dd6bc97ae5230e4dc83aabd2f3d5373157cceb67 (commit) via 2c5d2a6d1156a39707319d7525b00d45ec8e81c3 (commit) via 4c64c21580219232ff87b0b17db828c1658851aa (commit) via 623ae3d5cee26f2c952d05653445cb97b0b4af7b (commit) via f694eca0dcc0c747cf7e1adab0340df79a6769cf (commit) via a9afa8d4d90ae3744a66528b72bfa98f987d7ff2 (commit) via 911169d7943cb84a21e45631d93b1c382c4c14da (commit) via e1761827d91aa86389112c735eb287c64583758b (commit) via d507e815a32df03d81b2e4eaa445a7d55dfd496e (commit) from d74581f6fee747037e18a7d46430827710d1200c (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 3a10a363dc8a4358ace228620a1e3cdc185f459e Merge: 410c172ed a9afa8d4d Author: Nate Bargmann <n0...@n0...> Date: Sat Sep 13 15:01:40 2025 -0500 Merge GitHub PR #1902 commit 410c172ed67da2dd3b9b001df524698e05d72805 Author: Nate Bargmann <n0...@n0...> Date: Fri Sep 12 18:13:40 2025 -0500 First cut at MacOS workflows with tar'd artifacts Unfortunately, unlike with Ubuntu, MacOS is not available in act, so these are not tested until they get pushed to master on GitHub. The objective of these files is to generate a tarball of all build artifacts so that a build failure can be more fully investigated. I ran out of time to figure out how to come up with a way to have unique tar file names. Separate files will do for now. diff --git a/.github/workflows/macos-latest-features.yml b/.github/workflows/macos-latest-features.yml new file mode 100644 index 000000000..184cd675a --- /dev/null +++ b/.github/workflows/macos-latest-features.yml @@ -0,0 +1,64 @@ +name: MacOS latest C/C++ (features) + +on: + push: + branches: [ master, feature/* ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + configure_args: + - >- + --enable-html-matrix=yes + --enable-parallel=yes + --enable-pytest=yes + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=yes + --with-cxx-binding=yes + --with-indi=yes + --with-libusb=yes + --with-lua-binding=yes + --with-perl-binding=yes + --with-python-binding=yes + --with-readline=yes + --with-tcl-binding=yes + --with-xml-support=yes + + steps: + - uses: actions/checkout@v4 + - name: Install dependencies on MacOS + run: | + brew install autoconf + brew install automake + brew install libnova + brew install libtool + brew install grep + brew install swig + brew install tcl-tk + - name: bootstrap + run: | + pwd + ./bootstrap + - name: Suppress -Winitializer-overrides on MacOS + run: | + export CFLAGS="$CFLAGS -Wno-initializer-overrides" + export CXXFLAGS="$CXXFLAGS -Wno-initializer-overrides" + - name: configure on MacOS + run: ./configure ${{ matrix.configure_args }} --with-indi=detect --without-lua-binding PYTHON=/opt/homebrew/bin/python3 + - name: make distcheck + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --with-indi=detect --without-perl-binding --without-lua-binding --without-tcl-binding PYTHON=/opt/homebrew/bin/python3" + - name: 'tar files' + run: tar -cvf macos_latest_features.tar $(pwd) + - name: 'Upload Build Artifact' + uses: actions/upload-artifact@v4.6.2 + with: + name: 'Macos_latest_features' + path: macos_latest_features.tar diff --git a/.github/workflows/macos-latest-no-features.yml b/.github/workflows/macos-latest-no-features.yml new file mode 100644 index 000000000..0b6570acc --- /dev/null +++ b/.github/workflows/macos-latest-no-features.yml @@ -0,0 +1,64 @@ +name: MacOS latest C/C++ (no features) + +on: + push: + branches: [ master, feature/* ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + configure_args: + - >- + --enable-html-matrix=no + --enable-parallel=no + --enable-pytest=no + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=no + --with-cxx-binding=no + --with-indi=no + --with-libusb=no + --with-lua-binding=no + --with-perl-binding=no + --with-python-binding=no + --with-readline=no + --with-tcl-binding=no + --with-xml-support=no + + steps: + - uses: actions/checkout@v4 + - name: Install dependencies on MacOS + run: | + brew install autoconf + brew install automake + brew install libnova + brew install libtool + brew install grep + brew install swig + brew install tcl-tk + - name: bootstrap + run: | + pwd + ./bootstrap + - name: Suppress -Winitializer-overrides on MacOS + run: | + export CFLAGS="$CFLAGS -Wno-initializer-overrides" + export CXXFLAGS="$CXXFLAGS -Wno-initializer-overrides" + - name: configure on MacOS + run: ./configure ${{ matrix.configure_args }} --with-indi=detect --without-lua-binding PYTHON=/opt/homebrew/bin/python3 + - name: make distcheck + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --with-indi=detect --without-perl-binding --without-lua-binding --without-tcl-binding PYTHON=/opt/homebrew/bin/python3" + - name: 'tar files' + run: tar -cvf macos_latest_no_features.tar $(pwd) + - name: 'Upload Build Artifact' + uses: actions/upload-artifact@v4.6.2 + with: + name: 'Macos_latest_no_features' + path: macos_latest_no_features.tar commit 85bd4882dd2ea8f9fc398b440219bb965c48911c Author: Nate Bargmann <n0...@n0...> Date: Fri Sep 12 17:00:24 2025 -0500 Add the Ubuntu workflow with all features enabled. Perhaps this can be merged with the no-features variant once a way to give unique names to the resulting tar files is configured. diff --git a/.github/workflows/ubuntu-latest-features.yml b/.github/workflows/ubuntu-latest-features.yml new file mode 100644 index 000000000..421b04d9e --- /dev/null +++ b/.github/workflows/ubuntu-latest-features.yml @@ -0,0 +1,62 @@ +name: Ubuntu latest C/C++ (features) + +on: + push: + branches: [ master, feature/* ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + configure_args: + - >- + --enable-html-matrix=yes + --enable-parallel=yes + --enable-pytest=yes + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=yes + --with-cxx-binding=yes + --with-indi=yes + --with-libusb=yes + --with-lua-binding=yes + --with-perl-binding=yes + --with-python-binding=yes + --with-readline=yes + --with-tcl-binding=yes + --with-xml-support=yes + + steps: + - uses: actions/checkout@v4 + - name: Install dependencies on Ubuntu latest + run: | + sudo apt update + sudo apt -y install libusb-1.0-0-dev + sudo apt -y install libgd-dev + sudo apt -y install libgpiod-dev + sudo apt -y install libindi-dev libnova-dev + sudo apt -y install grep + sudo apt -y install python3-dev python3-pytest + sudo apt -y install lua5.4 liblua5.4-dev libperl-dev tcl-dev + sudo apt -y install swig + - name: bootstrap + run: | + pwd + ./bootstrap + - name: configure + run: ./configure ${{ matrix.configure_args }} + - name: make distcheck + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --without-perl-binding" + - name: 'tar files' + run: tar -cvf ubuntu_latest_features.tar $(pwd) + - name: 'Upload Build Artifact' + uses: actions/upload-artifact@v4.6.2 + with: + name: 'Ubuntu_latest_features' + path: ubuntu_latest_features.tar commit b90e1d10b1063fd608f1694f920f43e512a1ceeb Author: Nate Bargmann <n0...@n0...> Date: Fri Sep 12 16:51:09 2025 -0500 Need to add '-y' to apt commands in images used by act Using act to locally test workflow runs downloads a Ubuntu image that is not configured to assume "yes" to apt commands. While this is extra clutter for the GitHub image, its presence should be useful for others want to locally test the workflow using act. https://github.com/nektos/act diff --git a/.github/workflows/ubuntu-latest-no-features.yml b/.github/workflows/ubuntu-latest-no-features.yml index 38f0b908f..44539e455 100644 --- a/.github/workflows/ubuntu-latest-no-features.yml +++ b/.github/workflows/ubuntu-latest-no-features.yml @@ -37,25 +37,23 @@ jobs: - name: Install dependencies on Ubuntu latest run: | sudo apt update - sudo apt install libusb-1.0-0-dev - sudo apt install libgd-dev - sudo apt install libgpiod-dev - sudo apt install libindi-dev libnova-dev - sudo apt install grep - sudo apt install python3-dev python3-pytest - sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev + sudo apt -y install libusb-1.0-0-dev + sudo apt -y install libgd-dev + sudo apt -y install libgpiod-dev + sudo apt -y install libindi-dev libnova-dev + sudo apt -y install grep + sudo apt -y install python3-dev python3-pytest + sudo apt -y install lua5.4 liblua5.4-dev libperl-dev tcl-dev - name: bootstrap run: | pwd ./bootstrap - name: configure run: ./configure ${{ matrix.configure_args }} - - name: make - run: make -j 4 V=0 --no-print-directory - name: make distcheck - run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }}" + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --without-perl-binding" - name: 'tar files' - run: tar -cvf ubuntu_latest_no_features.tar /home/runner/work/Hamlib/Hamlib + run: tar -cvf ubuntu_latest_no_features.tar $(pwd) - name: 'Upload Build Artifact' uses: actions/upload-artifact@v4.6.2 with: commit bae995413d339978c7e9469fccd4821965189431 Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 14:22:49 2025 -0500 Try to fix the tar upload failure diff --git a/.github/workflows/ubuntu-latest-no-features.yml b/.github/workflows/ubuntu-latest-no-features.yml index 380f1b92a..38f0b908f 100644 --- a/.github/workflows/ubuntu-latest-no-features.yml +++ b/.github/workflows/ubuntu-latest-no-features.yml @@ -48,18 +48,16 @@ jobs: run: | pwd ./bootstrap - - name: README Debug - run: grep README Makefile.am - name: configure run: ./configure ${{ matrix.configure_args }} - name: make run: make -j 4 V=0 --no-print-directory - name: make distcheck run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }}" - - name: 'Tar files' - run: tar -cvf ubuntu_latest_no_features.tar . - - name: 'Upload Build Artifacts' + - name: 'tar files' + run: tar -cvf ubuntu_latest_no_features.tar /home/runner/work/Hamlib/Hamlib + - name: 'Upload Build Artifact' uses: actions/upload-artifact@v4.6.2 with: name: 'Ubuntu_latest_no_features' - path: Hamlib + path: ubuntu_latest_no_features.tar commit d64520a086ec2e7cb585e9c1c730f50c5bd81114 Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 14:06:16 2025 -0500 Try again diff --git a/.github/workflows/ubuntu-latest-no-features.yml b/.github/workflows/ubuntu-latest-no-features.yml index 2e91a7f6b..380f1b92a 100644 --- a/.github/workflows/ubuntu-latest-no-features.yml +++ b/.github/workflows/ubuntu-latest-no-features.yml @@ -11,7 +11,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: ubuntu-latest + os: [ubuntu-latest] configure_args: - >- --enable-html-matrix=no commit dd6bc97ae5230e4dc83aabd2f3d5373157cceb67 Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 14:05:02 2025 -0500 One more try... diff --git a/.github/workflows/ubuntu-latest-no-features.yml b/.github/workflows/ubuntu-latest-no-features.yml index ee4ff15e0..2e91a7f6b 100644 --- a/.github/workflows/ubuntu-latest-no-features.yml +++ b/.github/workflows/ubuntu-latest-no-features.yml @@ -8,7 +8,29 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ubuntu-latest + configure_args: + - >- + --enable-html-matrix=no + --enable-parallel=no + --enable-pytest=no + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=no + --with-cxx-binding=no + --with-indi=no + --with-libusb=no + --with-lua-binding=no + --with-perl-binding=no + --with-python-binding=no + --with-readline=no + --with-tcl-binding=no + --with-xml-support=no steps: - uses: actions/checkout@v4 @@ -22,27 +44,6 @@ jobs: sudo apt install grep sudo apt install python3-dev python3-pytest sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev - - name: Set configure arguments - - run: >- - --enable-html-matrix=no - --enable-parallel=no - --enable-pytest=no - --enable-shared=yes - --enable-silent-rules - --enable-static=yes - --enable-usrp=no - --enable-winradio=no - --with-cxx-binding=no - --with-indi=no - --with-libusb=no - --with-lua-binding=no - --with-perl-binding=no - --with-python-binding=no - --with-readline=no - --with-tcl-binding=no - --with-xml-support=no - - id: configure_args - - name: bootstrap run: | pwd @@ -50,11 +51,11 @@ jobs: - name: README Debug run: grep README Makefile.am - name: configure - run: ./configure ${{ configure_args }} + run: ./configure ${{ matrix.configure_args }} - name: make run: make -j 4 V=0 --no-print-directory - name: make distcheck - run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ configure_args }}" + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }}" - name: 'Tar files' run: tar -cvf ubuntu_latest_no_features.tar . - name: 'Upload Build Artifacts' commit 2c5d2a6d1156a39707319d7525b00d45ec8e81c3 Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 13:52:24 2025 -0500 Update ubuntu-latest-no-features.yml Move configure_args into the "steps" section per https://trstringer.com/github-actions-multiline-strings/ diff --git a/.github/workflows/ubuntu-latest-no-features.yml b/.github/workflows/ubuntu-latest-no-features.yml index 5611206ec..ee4ff15e0 100644 --- a/.github/workflows/ubuntu-latest-no-features.yml +++ b/.github/workflows/ubuntu-latest-no-features.yml @@ -9,25 +9,6 @@ on: jobs: build: runs-on: ubuntu-latest - configure_args: - - >- - --enable-html-matrix=no - --enable-parallel=no - --enable-pytest=no - --enable-shared=yes - --enable-silent-rules - --enable-static=yes - --enable-usrp=no - --enable-winradio=no - --with-cxx-binding=no - --with-indi=no - --with-libusb=no - --with-lua-binding=no - --with-perl-binding=no - --with-python-binding=no - --with-readline=no - --with-tcl-binding=no - --with-xml-support=no steps: - uses: actions/checkout@v4 @@ -41,6 +22,27 @@ jobs: sudo apt install grep sudo apt install python3-dev python3-pytest sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev + - name: Set configure arguments + - run: >- + --enable-html-matrix=no + --enable-parallel=no + --enable-pytest=no + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=no + --with-cxx-binding=no + --with-indi=no + --with-libusb=no + --with-lua-binding=no + --with-perl-binding=no + --with-python-binding=no + --with-readline=no + --with-tcl-binding=no + --with-xml-support=no + - id: configure_args + - name: bootstrap run: | pwd commit 4c64c21580219232ff87b0b17db828c1658851aa Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 13:38:38 2025 -0500 Break out Ubuntu latest to a "no feature" workflow diff --git a/.github/workflows/ubuntu-latest-no-features.yml b/.github/workflows/ubuntu-latest-no-features.yml new file mode 100644 index 000000000..5611206ec --- /dev/null +++ b/.github/workflows/ubuntu-latest-no-features.yml @@ -0,0 +1,62 @@ +name: Ubuntu latest C/C++ (no features) + +on: + push: + branches: [ master, feature/* ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + configure_args: + - >- + --enable-html-matrix=no + --enable-parallel=no + --enable-pytest=no + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=no + --with-cxx-binding=no + --with-indi=no + --with-libusb=no + --with-lua-binding=no + --with-perl-binding=no + --with-python-binding=no + --with-readline=no + --with-tcl-binding=no + --with-xml-support=no + + steps: + - uses: actions/checkout@v4 + - name: Install dependencies on Ubuntu latest + run: | + sudo apt update + sudo apt install libusb-1.0-0-dev + sudo apt install libgd-dev + sudo apt install libgpiod-dev + sudo apt install libindi-dev libnova-dev + sudo apt install grep + sudo apt install python3-dev python3-pytest + sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev + - name: bootstrap + run: | + pwd + ./bootstrap + - name: README Debug + run: grep README Makefile.am + - name: configure + run: ./configure ${{ configure_args }} + - name: make + run: make -j 4 V=0 --no-print-directory + - name: make distcheck + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ configure_args }}" + - name: 'Tar files' + run: tar -cvf ubuntu_latest_no_features.tar . + - name: 'Upload Build Artifacts' + uses: actions/upload-artifact@v4.6.2 + with: + name: 'Ubuntu_latest_no_features' + path: Hamlib diff --git a/.github/workflows/ubuntu-latest.yml b/.github/workflows/ubuntu-latest.yml deleted file mode 100644 index c0c269bff..000000000 --- a/.github/workflows/ubuntu-latest.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: C/C++ CI on Ubuntu latest - -on: - push: - branches: [ master, feature/* ] - pull_request: - branches: [ master ] - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - configure_args: - - >- - --enable-html-matrix=no - --enable-parallel=no - --enable-pytest=no - --enable-shared=yes - --enable-silent-rules - --enable-static=yes - --enable-usrp=no - --enable-winradio=no - --with-cxx-binding=no - --with-indi=no - --with-libusb=no - --with-lua-binding=no - --with-perl-binding=no - --with-python-binding=no - --with-readline=no - --with-tcl-binding=no - --with-xml-support=no - - >- - --enable-html-matrix=yes - --enable-parallel=yes - --enable-pytest=yes - --enable-shared=yes - --enable-silent-rules - --enable-static=yes - --enable-usrp=no - --enable-winradio=yes - --with-cxx-binding=yes - --with-indi=yes - --with-libusb=yes - --with-lua-binding=yes - --with-perl-binding=yes - --with-python-binding=yes - --with-readline=yes - --with-tcl-binding=yes - --with-xml-support=yes - - steps: - - uses: actions/checkout@v4 - - name: Install dependencies on Ubuntu latest - run: | - sudo apt update - sudo apt install libusb-1.0-0-dev - sudo apt install libgd-dev - sudo apt install libgpiod-dev - sudo apt install libindi-dev libnova-dev - sudo apt install grep - sudo apt install python3-dev python3-pytest - sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev - - name: bootstrap - run: | - pwd - ./bootstrap - - name: README Debug - run: grep README Makefile.am - - name: configure - run: ./configure ${{ matrix.configure_args }} - - name: make - run: make -j 4 V=0 --no-print-directory - - name: make distcheck - run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --without-perl-binding" - - name: 'Tar files' - run: tar -cvf hamlib_artifacts /home/runner/work/Hamlib/Hamlib - - name: 'Upload Build Artifacts' - uses: actions/upload-artifact@v4.6.2 - with: - name: 'Hamlib build artifacts' - path: hamlib_artifacts commit 623ae3d5cee26f2c952d05653445cb97b0b4af7b Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 09:54:05 2025 -0500 Fix 'path' indentation diff --git a/.github/workflows/ubuntu-latest.yml b/.github/workflows/ubuntu-latest.yml index 87a6b409b..c0c269bff 100644 --- a/.github/workflows/ubuntu-latest.yml +++ b/.github/workflows/ubuntu-latest.yml @@ -80,5 +80,4 @@ jobs: uses: actions/upload-artifact@v4.6.2 with: name: 'Hamlib build artifacts' - path: hamlib_artifacts - + path: hamlib_artifacts commit f694eca0dcc0c747cf7e1adab0340df79a6769cf Author: Nate Bargmann <n0...@n0...> Date: Wed Sep 10 08:55:31 2025 -0500 First cut at separating CIs with Ubuntu latest Includes runs without and with language bindings. Should create a build artifact tar file. References GitHub issue #1870. diff --git a/.github/workflows/ubuntu-latest.yml b/.github/workflows/ubuntu-latest.yml new file mode 100644 index 000000000..87a6b409b --- /dev/null +++ b/.github/workflows/ubuntu-latest.yml @@ -0,0 +1,84 @@ +name: C/C++ CI on Ubuntu latest + +on: + push: + branches: [ master, feature/* ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + configure_args: + - >- + --enable-html-matrix=no + --enable-parallel=no + --enable-pytest=no + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=no + --with-cxx-binding=no + --with-indi=no + --with-libusb=no + --with-lua-binding=no + --with-perl-binding=no + --with-python-binding=no + --with-readline=no + --with-tcl-binding=no + --with-xml-support=no + - >- + --enable-html-matrix=yes + --enable-parallel=yes + --enable-pytest=yes + --enable-shared=yes + --enable-silent-rules + --enable-static=yes + --enable-usrp=no + --enable-winradio=yes + --with-cxx-binding=yes + --with-indi=yes + --with-libusb=yes + --with-lua-binding=yes + --with-perl-binding=yes + --with-python-binding=yes + --with-readline=yes + --with-tcl-binding=yes + --with-xml-support=yes + + steps: + - uses: actions/checkout@v4 + - name: Install dependencies on Ubuntu latest + run: | + sudo apt update + sudo apt install libusb-1.0-0-dev + sudo apt install libgd-dev + sudo apt install libgpiod-dev + sudo apt install libindi-dev libnova-dev + sudo apt install grep + sudo apt install python3-dev python3-pytest + sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev + - name: bootstrap + run: | + pwd + ./bootstrap + - name: README Debug + run: grep README Makefile.am + - name: configure + run: ./configure ${{ matrix.configure_args }} + - name: make + run: make -j 4 V=0 --no-print-directory + - name: make distcheck + run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --without-perl-binding" + - name: 'Tar files' + run: tar -cvf hamlib_artifacts /home/runner/work/Hamlib/Hamlib + - name: 'Upload Build Artifacts' + uses: actions/upload-artifact@v4.6.2 + with: + name: 'Hamlib build artifacts' + path: hamlib_artifacts + commit a9afa8d4d90ae3744a66528b72bfa98f987d7ff2 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sat Sep 6 12:01:26 2025 +0200 Handle --rot-file and --serial_speed in bindings tests This allow to run the tests for a specific model, eg. PYTHONPATH=bindings/:bindings/.libs bindings/python/test_rot.py --model 2 diff --git a/bindings/python/conftest.py b/bindings/python/conftest.py index c664bc1b6..713616236 100644 --- a/bindings/python/conftest.py +++ b/bindings/python/conftest.py @@ -43,6 +43,10 @@ def amp_file(request): def rig_file(request): return request.config.getoption("--rig-file") +...@py...xture +def rot_file(request): + return request.config.getoption("--rot-file") + @pytest.fixture def serial_speed(request): return request.config.getoption("--serial-speed") diff --git a/bindings/python/test_rot.py b/bindings/python/test_rot.py index 73cce79af..3e0b5c292 100755 --- a/bindings/python/test_rot.py +++ b/bindings/python/test_rot.py @@ -5,6 +5,7 @@ Running this script directly will use the installed bindings. For an in-tree run use "make check", or set PYTHONPATH to point to the directories containing Hamlib.py and _Hamlib.so. """ +import pytest from pytest import raises import Hamlib @@ -49,12 +50,18 @@ class TestClass: assert rot.token_lookup("") is None - def test_with_open(self, model): + @pytest.mark.skipif('config.getoption("model") != Hamlib.ROT_MODEL_DUMMY') + def test_with_open(self, model, rot_file, serial_speed): """Call all the methods that depend on open()""" rot = Hamlib.Rot(model) assert rot is not None assert rot.state.comm_state == 0 + # first try a known string because rot_file is None during "make check" + assert rot.set_conf("rot_pathname", "foo") is None + assert rot.get_conf("rot_pathname") == "foo" + assert rot.set_conf("rot_pathname", rot_file) is None + assert rot.set_conf("serial_speed", str(serial_speed)) is None assert rot.open() is None assert rot.state.comm_state == 1 info = rot.get_info() @@ -108,6 +115,7 @@ class TestClass: assert info is None + @pytest.mark.skipif('config.getoption("model") != Hamlib.ROT_MODEL_DUMMY') def test_object_creation(self, model): """Create all objects available""" rot = Hamlib.Rig(model) commit 911169d7943cb84a21e45631d93b1c382c4c14da Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sat Sep 6 09:06:24 2025 +0200 Handle --amp-file and --serial_speed in bindings tests This allow to run the tests for a specific model, eg. PYTHONPATH=bindings/:bindings/.libs bindings/python/test_amp.py --model 2 diff --git a/bindings/python/conftest.py b/bindings/python/conftest.py index 9ce2517cd..c664bc1b6 100644 --- a/bindings/python/conftest.py +++ b/bindings/python/conftest.py @@ -35,6 +35,10 @@ def pytest_addoption(parser): def model(request): return request.config.getoption("--model") +...@py...xture +def amp_file(request): + return request.config.getoption("--amp-file") + @pytest.fixture def rig_file(request): return request.config.getoption("--rig-file") diff --git a/bindings/python/test_amp.py b/bindings/python/test_amp.py index 4f8608761..f5eeef872 100755 --- a/bindings/python/test_amp.py +++ b/bindings/python/test_amp.py @@ -5,6 +5,8 @@ Running this script directly will use the installed bindings. For an in-tree run use "make check", or set PYTHONPATH to point to the directories containing Hamlib.py and _Hamlib.so. """ +import pytest + import Hamlib Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE) @@ -40,12 +42,18 @@ class TestClass: assert amp.token_lookup("") is None - def test_with_open(self, model): + @pytest.mark.skipif('config.getoption("model") != Hamlib.AMP_MODEL_DUMMY') + def test_with_open(self, model, amp_file, serial_speed): """Call all the methods that depend on open()""" amp = Hamlib.Amp(model) assert amp is not None assert amp.state.comm_state == 0 + # first try a known string because amp_file is None during "make check" + assert amp.set_conf("amp_pathname", "foo") is None + assert amp.get_conf("amp_pathname") == "foo" + assert amp.set_conf("amp_pathname", amp_file) is None + assert amp.set_conf("serial_speed", str(serial_speed)) is None assert amp.open() is None assert amp.state.comm_state == 1 info = amp.get_info() @@ -72,6 +80,7 @@ class TestClass: assert info is None + @pytest.mark.skipif('config.getoption("model") != Hamlib.AMP_MODEL_DUMMY') def test_object_creation(self, model): """Create all objects available""" amp = Hamlib.Rig(model) commit e1761827d91aa86389112c735eb287c64583758b Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Tue Sep 9 19:30:37 2025 +0200 Fix handling of command line parameters for pytests diff --git a/bindings/python/conftest.py b/bindings/python/conftest.py index a91d7684d..9ce2517cd 100644 --- a/bindings/python/conftest.py +++ b/bindings/python/conftest.py @@ -10,7 +10,7 @@ def pytest_addoption(parser): metavar='ID', help='select amplifier model number') parser.addoption('--amp-file', default=None, metavar='DEVICE', help='set device of the amplifier to operate on') - if sys.argv[1].endswith("rig.py"): + elif sys.argv[1].endswith("rig.py"): parser.addoption('--model', type=int, default=1, metavar='ID', help='select radio model number') parser.addoption('--rig-file', default=None, commit d507e815a32df03d81b2e4eaa445a7d55dfd496e Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sat Sep 6 09:16:00 2025 +0200 Also check the "val" parameter in amp_set_conf() and rot_set_conf() Avoids a segfault in lower level functions that can more easily happen when using the bindings. Simmetric with amp_get_conf() via amp_get_conf2() and rot_get_conf() via rot_get_conf2(). This is a followup of commit ede84bfce41bf8da3dafea7c585666259a5e4b71 that made the same change to conf.c diff --git a/src/amp_conf.c b/src/amp_conf.c index 481786b3f..d60496412 100644 --- a/src/amp_conf.c +++ b/src/amp_conf.c @@ -683,7 +683,7 @@ int HAMLIB_API amp_set_conf(AMP *amp, hamlib_token_t token, const char *val) { amp_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - if (!amp || !amp->caps) + if (!amp || !amp->caps || !val) { return -RIG_EINVAL; } diff --git a/src/rot_conf.c b/src/rot_conf.c index 5f204aed7..008a8f048 100644 --- a/src/rot_conf.c +++ b/src/rot_conf.c @@ -748,7 +748,7 @@ int HAMLIB_API rot_set_conf(ROT *rot, hamlib_token_t token, const char *val) { rot_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - if (!rot || !rot->caps) + if (!rot || !rot->caps || !val) { return -RIG_EINVAL; } ----------------------------------------------------------------------- Summary of changes: .github/workflows/macos-latest-features.yml | 64 +++++++++++++++++++++++++ .github/workflows/macos-latest-no-features.yml | 64 +++++++++++++++++++++++++ .github/workflows/ubuntu-latest-features.yml | 62 ++++++++++++++++++++++++ .github/workflows/ubuntu-latest-no-features.yml | 61 +++++++++++++++++++++++ bindings/python/conftest.py | 10 +++- bindings/python/test_amp.py | 11 ++++- bindings/python/test_rot.py | 10 +++- src/amp_conf.c | 2 +- src/rot_conf.c | 2 +- 9 files changed, 281 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/macos-latest-features.yml create mode 100644 .github/workflows/macos-latest-no-features.yml create mode 100644 .github/workflows/ubuntu-latest-features.yml create mode 100644 .github/workflows/ubuntu-latest-no-features.yml hooks/post-receive -- Hamlib -- Ham radio control libraries |