diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 60ec5c1..4d4e1bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,18 +39,10 @@ jobs: - debian:stable - debian:bookworm - debian:bullseye - - debian:buster # Fails on configure on GCC and clang (process restrictions?) # - fedora:rawhide - fedora:latest - - fedora:42 - - fedora:41 - - fedora:40 - - fedora:39 - - fedora:38 - - fedora:37 - ubuntu:latest - - ubuntu:oracular - ubuntu:noble - ubuntu:jammy - ubuntu:focal @@ -86,14 +78,6 @@ jobs: pkg_config_path: /usr/lib/i386-linux-gnu/pkgconfig variant: i386 - - container: "debian:buster" - arch: i386 - family: x86 - compiler: gcc -m32 - cross_compile: i686-linux-gnu - pkg_config_path: /usr/lib/i386-linux-gnu/pkgconfig - variant: i386 - # Debian cross compilation builds - container: "debian:testing" arch: armhf @@ -183,7 +167,7 @@ jobs: echo "PKG_CONFIG_PATH: $PKG_CONFIG_PATH" - name: Git checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install additional packages run: | diff --git a/cdba.c b/cdba.c index 68cbdc3..5331354 100644 --- a/cdba.c +++ b/cdba.c @@ -193,7 +193,8 @@ static void cdba_queue_data(int type, size_t len, const void *buf) item->type = type; item->len = len; item->fd = -1; - memcpy(item->payload, buf, len); + if (len) + memcpy(item->payload, buf, len); list_append(&tx_queue, &item->node); } diff --git a/ci/alpine.sh b/ci/alpine.sh index c4b5083..f3424ca 100755 --- a/ci/alpine.sh +++ b/ci/alpine.sh @@ -17,6 +17,7 @@ case $CC in esac apk add \ + build-base \ linux-headers \ libftdi1-dev \ yaml-dev \ diff --git a/ci/debian.cross-compile.sh b/ci/debian.cross-compile.sh index 04be957..153c526 100755 --- a/ci/debian.cross-compile.sh +++ b/ci/debian.cross-compile.sh @@ -19,7 +19,8 @@ dpkg --add-architecture $ARCH apt update apt install -y --no-install-recommends \ - libftdi-dev:${ARCH} \ + libc6-dev:${ARCH} \ + libftdi1-dev:${ARCH} \ libudev-dev:${ARCH} \ libyaml-dev:${ARCH} \ libgpiod-dev:${ARCH} \ diff --git a/ci/debian.i386.sh b/ci/debian.i386.sh index 100cacc..219e201 100755 --- a/ci/debian.i386.sh +++ b/ci/debian.i386.sh @@ -20,7 +20,7 @@ apt install -y --no-install-recommends \ linux-libc-dev:i386 apt install -y --no-install-recommends \ - libftdi-dev:i386 \ + libftdi1-dev:i386 \ libudev-dev:i386 \ libyaml-dev:i386 \ libgpiod-dev:i386 \ diff --git a/ci/debian.sh b/ci/debian.sh index 2fdc362..91b5c56 100755 --- a/ci/debian.sh +++ b/ci/debian.sh @@ -29,7 +29,7 @@ esac apt install -y --no-install-recommends \ pkg-config \ - libftdi-dev \ + libftdi1-dev \ libudev-dev \ libyaml-dev \ libgpiod-dev \ diff --git a/drivers/local-gpio-v1.c b/drivers/local-gpio-v1.c index 793dd1d..657a152 100644 --- a/drivers/local-gpio-v1.c +++ b/drivers/local-gpio-v1.c @@ -25,7 +25,7 @@ int local_gpio_init(struct local_gpio *local_gpio) int i; for (i = 0; i < GPIO_COUNT; ++i) { - struct gpiod_line_request_config cfg; + struct gpiod_line_request_config cfg = { 0 }; if (!local_gpio->options->gpios[i].present) continue; diff --git a/meson.build b/meson.build index cd9c7ad..06e532f 100644 --- a/meson.build +++ b/meson.build @@ -59,10 +59,12 @@ cdbalib_deps = [dependency('libudev', required: server_opt), gpiod_dep, ftdi_dep] -# E.g. Debian reuires -lutil for forkpty -if not compiler.has_function('forkpty') - util_dep = compiler.find_library('util') - cdbalib_deps += util_dep +# E.g. Debian requires -lutil for forkpty +if not compiler.has_function('forkpty', prefix: '#include ') + util_dep = compiler.find_library('util', required: false) + if util_dep.found() + cdbalib_deps += util_dep + endif endif drivers_srcs = ['drivers/alpaca.c',