Package Details: libsigrok-git 0.2.1.r3425.gf6129c8f-1

Git Clone URL: https://aur.archlinux.org/libsigrok-git.git (read-only)
Package Base: libsigrok-git
Description: Client software that supports various hardware logic analyzers, core library (git version)
Upstream URL: http://www.sigrok.org/wiki/Libsigrok
Licenses: GPL3
Conflicts: libsigrok
Provides: libsigrok
Submitter: Manouchehri
Maintainer: codyps
Last Packager: codyps
Votes: 10
Popularity: 0.031747
First Submitted: 2015-09-08 21:55
Last Updated: 2019-10-21 17:21

Latest Comments

1 2 Next › Last »

codyps commented on 2019-09-01 02:52

Ok. I've added a workaround for the doxygen 1.8.16 issue.

codyps commented on 2019-09-01 02:43

Follow up: current build failures are due to a regression present in doxygen 1.8.16 (the current archlinux shipped version of doxygen).

There is an upstream doxygen commit to fix the issue in doxygen:

commit a27369dbf3cccbe4b96bfde1aca49d96d4b396f0
Author: albert-github <albert.tests@gmail.com>
Date:   Tue Aug 13 19:23:42 2019 +0200

    issue #7190 1.8.16: Blank FILE_PATTERNS => no files processed

There's a pretty easy work-around to ("put stuff in FILE_PATTERNS in Doxyfile"), which I'll add here so this package can build

codyps commented on 2019-09-01 02:17

Yep, the same appears to be happening for me, even built outside of makepkg. Appears that something is broken-ish about the cxx bindings.

Unfortunately, pulseview needs the cxx bindings, so disabling them isn't a real solution here.

It appears that for some reason enums.py which is using the generated doxy/xml data is emitting none of the data structures it is expected to emit. It appears that the doxy/xml is entirely devoid of kind="enum" attributes that enums.py looks for.

I haven't determined why this is.

bigrick commented on 2019-09-01 01:45

Build fails for me, any suggestions?

$ makepkg -sri
==> Making package: libsigrok-git 0.2.1.r3225.gea7a83a4-1 (Sat 31 Aug 2019 09:30:11 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading libsigrok...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  106k    0  106k    0     0   144k      0 --:--:-- --:--:-- --:--:--  144k
==> Validating source files with sha512sums...
    libsigrok ... Skipped
==> Extracting sources...
==> Starting pkgver()...
/home/evan/Documents/libsigrok/libsigrok-git/PKGBUILD: line 22: cd: /home/evan/Documents/libsigrok/libsigrok-git/src/libsigrok: Not a directory
==> ERROR: pkgver is not allowed to be empty.
==> ERROR: pkgver() generated an invalid version:
~/D/l/libsigrok-git master ×
$ ls                                                                            :(
libsigrok  PKGBUILD  src  tags
~/D/l/libsigrok-git master ×
$ ls src
libsigrok
~/D/l/libsigrok-git master ×
$ file libsigrok
libsigrok: HTML document, UTF-8 Unicode text, with very long lines
~/D/l/libsigrok-git master ×
$ vim PKGBUILD
~/D/l/libsigrok-git master ×
$ makepkg -sri
==> Making package: libsigrok-git 0.2.1.r3225.gea7a83a4-1 (Sat 31 Aug 2019 09:32:13 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading libsigrok.git...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0     0   1797      0 --:--:-- --:--:-- --:--:--  1797
100  106k    0  106k    0     0   223k      0 --:--:-- --:--:-- --:--:--  223k
==> Validating source files with sha512sums...
    libsigrok.git ... Skipped
==> Extracting sources...
==> Starting pkgver()...
/home/evan/Documents/libsigrok/libsigrok-git/PKGBUILD: line 22: cd: /home/evan/Documents/libsigrok/libsigrok-git/src/libsigrok: Not a directory
==> ERROR: pkgver is not allowed to be empty.
==> ERROR: pkgver() generated an invalid version:
~/D/l/libsigrok-git master ×
$ file src/libsigrok.git                                                        :(
src/libsigrok.git: symbolic link to /home/evan/Documents/libsigrok/libsigrok-git/libsigrok.git
~/D/l/libsigrok-git master ×
$ file src/libsigrok
src/libsigrok: symbolic link to /home/evan/Documents/libsigrok/libsigrok-git/libsigrok
~/D/l/libsigrok-git master ×
$ rm -rf libsigrok.git libsigrok src tags
~/D/l/libsigrok-git master ×
$ vim PKGBUILD
~/D/l/libsigrok-git master ×
$ makepkg -sri
==> Making package: libsigrok-git 0.2.1.r3225.gea7a83a4-1 (Sat 31 Aug 2019 09:33:11 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning libsigrok git repo...
Cloning into bare repository '/home/evan/Documents/libsigrok/libsigrok-git/libsigrok'...
remote: Enumerating objects: 41142, done.
remote: Total 41142 (delta 0), reused 0 (delta 0), pack-reused 41142
Receiving objects: 100% (41142/41142), 8.25 MiB | 17.39 MiB/s, done.
Resolving deltas: 100% (28615/28615), done.
==> Validating source files with sha512sums...
    libsigrok ... Skipped
==> Extracting sources...
  -> Creating working copy of libsigrok git repo...
Cloning into 'libsigrok'...
done.
==> Starting pkgver()...
==> Starting build()...
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory autostuff
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'autostuff'.
libtoolize: copying file 'autostuff/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:34: installing 'autostuff/ar-lib'
configure.ac:34: installing 'autostuff/compile'
configure.ac:36: installing 'autostuff/config.guess'
configure.ac:36: installing 'autostuff/config.sub'
configure.ac:32: installing 'autostuff/install-sh'
configure.ac:32: installing 'autostuff/missing'
Makefile.am: installing './INSTALL'
Makefile.am: installing 'autostuff/depcomp'
parallel-tests: installing 'autostuff/test-driver'
autoreconf: Leaving directory `.'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether ln -s works... yes
checking whether make supports order-only prerequisites... yes
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.22... yes
checking for libserialport... yes
checking for libftdi... yes
checking for libusb... yes
checking for librevisa... no
checking for libgpib... no
checking for libieee1284... yes
checking compiler flag for C99... -std=c99
checking compiler flag for visibility... -fvisibility=hidden
checking which C compiler warning flags to use... -Wall -Wextra -Wmissing-prototypes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking whether byte ordering is bigendian... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking for library containing pow... -lm
checking for RPC support... no
checking for __int128_t... yes
checking for __uint128_t... yes
checking which C++ compiler warning flags to use... -Wall -Wextra
checking whether g++ supports C++11 features by default... yes
checking for doxygen... yes
checking for library containing __cxa_throw... none required
checking whether python2 version is >= 2.7... yes
checking for python2 version... 2.7
checking for python2 platform... linux2
checking for python2 script directory... ${prefix}/lib/python2.7/site-packages
checking for python2 extension module directory... ${exec_prefix}/lib/python2.7/site-packages
checking for stoi and stod... yes
checking python2 module: setuptools... yes
checking python2 module: numpy... yes
checking for swig... swig
checking for swig version... 4.0.1
checking for ruby... no
checking for javac... yes
checking jni.h usability... no
checking jni.h presence... no
checking for jni.h... no
checking for LIBSIGROK... yes
checking for TESTS... yes
checking for LIBSIGROKCXX... yes
checking for PYSIGROK... yes
checking for RBSIGROK... yes
Please specify at least one package name on the command line.
Please specify at least one package name on the command line.
Please specify at least one package name on the command line.
checking for libusb_os_handle... no
checking for zip_discard... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsigrok.pc
config.status: creating bindings/cxx/libsigrokcxx.pc
config.status: creating config.h
config.status: creating include/libsigrok/version.h
config.status: executing depfiles commands
config.status: executing libtool commands

libsigrok configuration summary:
 - Package version................. 0.6.0-git-e44a058e
 - Library ABI version............. 4:0:0
 - Prefix.......................... /usr
 - Building on..................... x86_64-pc-linux-gnu
 - Building for.................... x86_64-pc-linux-gnu
 - Building shared / static........ yes / yes

Compile configuration:
 - C compiler...................... gcc
 - C compiler version.............. gcc (GCC) 9.1.0
 - C compiler flags................ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt
 - Additional C compiler flags..... -std=c99 -fvisibility=hidden
 - C compiler warnings............. -Wall -Wextra -Wmissing-prototypes
 - C++ compiler.................... g++
 - C++ compiler version............ g++ (GCC) 9.1.0
 - C++ compiler flags.............. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt
 - C++ compiler warnings........... -Wall -Wextra
 - Linker flags.................... -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now

Detected libraries (required):
 - glib-2.0 >= 2.32.0.............. 2.60.6
 - libzip >= 0.10.................. 1.5.2

Detected libraries (optional):
 - libserialport >= 0.1.1.......... 0.1.1
 - libftdi1 >= 1.0................. 1.4
 - libusb-1.0 >= 1.0.16............ 1.0.22
 - librevisa >= 0.0.20130412....... no
 - libgpib......................... no
 - libieee1284..................... yes
 - check >= 0.9.4.................. 0.12.0
 - glibmm-2.4 >= 2.32.0............ 2.60.0
 - python = 2.7.................... no
 - python2 = 2.7................... 2.7
 - pygobject-3.0 >= 3.0.0.......... 3.32.2
 - ruby............................ no
 - ruby-........................... no

Enabled hardware drivers:
 - agilent-dmm..................... yes
 - appa-55ii....................... yes
 - arachnid-labs-re-load-pro....... yes
 - asix-sigma...................... yes
 - atten-pps3xxx................... yes
 - baylibre-acme................... yes
 - beaglelogic..................... yes
 - brymen-bm86x.................... yes
 - brymen-dmm...................... yes
 - cem-dt-885x..................... yes
 - center-3xx...................... yes
 - chronovu-la..................... yes
 - colead-slm...................... yes
 - conrad-digi-35-cpu.............. yes
 - demo............................ yes
 - dreamsourcelab-dslogic.......... yes
 - fluke-45........................ yes
 - fluke-dmm....................... yes
 - ftdi-la......................... yes
 - fx2lafw......................... yes
 - gmc-mh-1x-2x.................... yes
 - greatfet........................ yes
 - gwinstek-gds-800................ yes
 - gwinstek-gpd.................... yes
 - hameg-hmo....................... yes
 - hantek-4032l.................... yes
 - hantek-6xxx..................... yes
 - hantek-dso...................... yes
 - hp-3457a........................ yes
 - hp-3478a........................ no (missing: libgpib)
 - hung-chang-dso-2100............. yes
 - ikalogic-scanalogic2............ yes
 - ikalogic-scanaplus.............. yes
 - ipdbg-la........................ yes
 - kecheng-kc-330b................. yes
 - kern-scale...................... yes
 - korad-kaxxxxp................... yes
 - lascar-el-usb................... yes
 - lecroy-logicstudio.............. yes
 - lecroy-xstream.................. yes
 - manson-hcs-3xxx................. yes
 - maynuo-m97...................... yes
 - mic-985xx....................... yes
 - microchip-pickit2............... yes
 - motech-lps-30x.................. yes
 - norma-dmm....................... yes
 - openbench-logic-sniffer......... yes
 - pce-322a........................ yes
 - pipistrello-ols................. yes
 - rdtech-dps...................... yes
 - rigol-ds........................ yes
 - rohde-schwarz-sme-0x............ yes
 - saleae-logic16.................. yes
 - saleae-logic-pro................ yes
 - scpi-dmm........................ yes
 - scpi-pps........................ yes
 - serial-dmm...................... yes
 - serial-lcr...................... yes
 - siglent-sds..................... yes
 - sysclk-lwla..................... yes
 - teleinfo........................ yes
 - testo........................... yes
 - tondaj-sl-814................... yes
 - uni-t-dmm....................... yes
 - uni-t-ut32x..................... yes
 - victor-dmm...................... yes
 - yokogawa-dlm.................... yes
 - zeroplus-logic-cube............. yes
 - zketech-ebd-usb................. yes

Enabled SCPI backends:
 - TCP............................. yes
 - RPC............................. no
 - serial.......................... yes
 - VISA............................ no
 - GPIB............................ no
 - USBTMC.......................... yes

Enabled language bindings:
 - C++............................. yes
 - Python.......................... yes
 - Ruby............................ no (missing: Ruby, Headers)
 - Java............................ no (disabled)

make  all-am
  CC       src/backend.lo
  CC       src/conversion.lo
  CC       src/device.lo
  CC       src/session.lo
src/session.c: In function ‘fd_source_dispatch’:
src/session.c:130:11: warning: cast between incompatible function types from ‘GSourceFunc’ {aka ‘int (*)(void *)’} to ‘int (*)(int,  int,  void *)’ [-Wcast-function-type]
  130 |  keep = (*(sr_receive_data_callback)callback)
      |           ^
src/session.c: In function ‘sr_session_fd_source_add’:
src/session.c:1203:32: warning: cast between incompatible function types from ‘sr_receive_data_callback’ {aka ‘int (*)(int,  int,  void *)’} to ‘gboolean (*)(void *)’ {aka ‘int (*)(void *)’} [-Wcast-function-type]
 1203 |  g_source_set_callback(source, (GSourceFunc)cb, cb_data, NULL);
      |                                ^
  CC       src/session_file.lo
  CC       src/session_driver.lo
  CC       src/hwdriver.lo
  CC       src/trigger.lo
  CC       src/soft-trigger.lo
  CC       src/analog.lo
  CC       src/fallback.lo
  CC       src/resource.lo
  CC       src/strutil.lo
  CC       src/log.lo
  CC       src/version.lo
  CC       src/error.lo
  CC       src/std.lo
  CC       src/sw_limits.lo
  CC       src/input/input.lo
  CC       src/input/binary.lo
  CC       src/input/chronovu_la8.lo
  CC       src/input/csv.lo
  CC       src/input/logicport.lo
  CC       src/input/raw_analog.lo
  CC       src/input/trace32_ad.lo
  CC       src/input/vcd.lo
  CC       src/input/wav.lo
  CC       src/input/null.lo
  CC       src/output/output.lo
  CC       src/output/analog.lo
  CC       src/output/ascii.lo
  CC       src/output/bits.lo
  CC       src/output/binary.lo
  CC       src/output/csv.lo
  CC       src/output/chronovu_la8.lo
  CC       src/output/wav.lo
  CC       src/output/hex.lo
  CC       src/output/ols.lo
  CC       src/output/srzip.lo
  CC       src/output/vcd.lo
  CC       src/output/null.lo
  CC       src/transform/transform.lo
  CC       src/transform/nop.lo
  CC       src/transform/scale.lo
  CC       src/transform/invert.lo
  CC       src/scpi/scpi.lo
  CC       src/scpi/scpi_tcp.lo
  CC       src/serial.lo
  CC       src/scpi/scpi_serial.lo
  CC       src/ezusb.lo
  CC       src/usb.lo
src/usb.c: In function ‘usb_source_dispatch’:
src/usb.c:142:11: warning: cast between incompatible function types from ‘GSourceFunc’ {aka ‘int (*)(void *)’} to ‘int (*)(int,  int,  void *)’ [-Wcast-function-type]
  142 |  keep = (*(sr_receive_data_callback)callback)(-1, revents, user_data);
      |           ^
src/usb.c: In function ‘usb_source_add’:
src/usb.c:459:32: warning: cast between incompatible function types from ‘sr_receive_data_callback’ {aka ‘int (*)(int,  int,  void *)’} to ‘gboolean (*)(void *)’ {aka ‘int (*)(void *)’} [-Wcast-function-type]
  459 |  g_source_set_callback(source, (GSourceFunc)cb, cb_data, NULL);
      |                                ^
  CC       src/scpi/scpi_usbtmc_libusb.lo
  CC       src/modbus/modbus.lo
  CC       src/modbus/modbus_serial_rtu.lo
  CC       src/dmm/asycii.lo
  CC       src/dmm/bm25x.lo
  CC       src/dmm/dtm0660.lo
  CC       src/dmm/eev121gw.lo
  CC       src/dmm/es519xx.lo
  CC       src/dmm/fs9721.lo
  CC       src/dmm/fs9922.lo
  CC       src/dmm/m2110.lo
  CC       src/dmm/metex14.lo
  CC       src/dmm/ms8250d.lo
  CC       src/dmm/rs9lcd.lo
  CC       src/dmm/ut372.lo
  CC       src/dmm/ut71x.lo
  CC       src/dmm/vc870.lo
  CC       src/dmm/vc96.lo
  CC       src/lcr/es51919.lo
  CC       src/scale/kern.lo
  CC       src/drivers.lo
  CC       src/hardware/agilent-dmm/protocol.lo
  CC       src/hardware/agilent-dmm/api.lo
  CC       src/hardware/appa-55ii/protocol.lo
  CC       src/hardware/appa-55ii/api.lo
  CC       src/hardware/arachnid-labs-re-load-pro/protocol.lo
  CC       src/hardware/arachnid-labs-re-load-pro/api.lo
  CC       src/hardware/asix-sigma/protocol.lo
src/hardware/asix-sigma/protocol.c: In function ‘download_capture’:
src/hardware/asix-sigma/protocol.c:175:7: warning: array subscript -1 is outside array bounds of ‘uint32_t[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
  175 |  if ((*--triggerpos & 0x1ff) == 0x1ff)
      |       ^~~~~~~~~~~~~
src/hardware/asix-sigma/protocol.c:1002:20: note: while referencing ‘triggerpos’
 1002 |  uint32_t stoppos, triggerpos;
      |                    ^~~~~~~~~~
src/hardware/asix-sigma/protocol.c:176:15: warning: array subscript -1 is outside array bounds of ‘uint32_t[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
  176 |   *triggerpos -= 64;
      |   ~~~~~~~~~~~~^~~~~
src/hardware/asix-sigma/protocol.c:1002:20: note: while referencing ‘triggerpos’
 1002 |  uint32_t stoppos, triggerpos;
      |                    ^~~~~~~~~~
  CC       src/hardware/asix-sigma/api.lo
  CC       src/hardware/atten-pps3xxx/protocol.lo
  CC       src/hardware/atten-pps3xxx/api.lo
  CC       src/hardware/baylibre-acme/protocol.lo
  CC       src/hardware/baylibre-acme/api.lo
  CC       src/hardware/baylibre-acme/gpio.lo
  CC       src/hardware/beaglelogic/protocol.lo
  CC       src/hardware/beaglelogic/api.lo
  CC       src/hardware/beaglelogic/beaglelogic_native.lo
  CC       src/hardware/beaglelogic/beaglelogic_tcp.lo
  CC       src/hardware/brymen-bm86x/protocol.lo
  CC       src/hardware/brymen-bm86x/api.lo
  CC       src/hardware/brymen-dmm/parser.lo
  CC       src/hardware/brymen-dmm/protocol.lo
  CC       src/hardware/brymen-dmm/api.lo
  CC       src/hardware/cem-dt-885x/protocol.lo
  CC       src/hardware/cem-dt-885x/api.lo
  CC       src/hardware/center-3xx/protocol.lo
  CC       src/hardware/center-3xx/api.lo
  CC       src/hardware/chronovu-la/protocol.lo
  CC       src/hardware/chronovu-la/api.lo
  CC       src/hardware/colead-slm/protocol.lo
  CC       src/hardware/colead-slm/api.lo
  CC       src/hardware/conrad-digi-35-cpu/protocol.lo
  CC       src/hardware/conrad-digi-35-cpu/api.lo
  CC       src/hardware/demo/protocol.lo
  CC       src/hardware/demo/api.lo
  CC       src/hardware/dreamsourcelab-dslogic/protocol.lo
  CC       src/hardware/dreamsourcelab-dslogic/api.lo
  CC       src/hardware/fluke-45/protocol.lo
  CC       src/hardware/fluke-45/api.lo
  CC       src/hardware/fluke-dmm/protocol.lo
  CC       src/hardware/fluke-dmm/api.lo
  CC       src/hardware/ftdi-la/protocol.lo
  CC       src/hardware/ftdi-la/api.lo
  CC       src/hardware/fx2lafw/protocol.lo
  CC       src/hardware/fx2lafw/api.lo
  CC       src/hardware/gmc-mh-1x-2x/protocol.lo
  CC       src/hardware/gmc-mh-1x-2x/api.lo
  CC       src/hardware/greatfet/protocol.lo
  CC       src/hardware/greatfet/api.lo
In file included from src/hardware/greatfet/api.c:30:
src/hardware/greatfet/api.c: In function ‘sample_transfer_complete’:
src/hardware/greatfet/protocol.h:29:20: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=]
   29 | #define LOG_PREFIX "greatfet"
      |                    ^~~~~~~~~~
./src/libsigrok-internal.h:763:42: note: in expansion of macro ‘LOG_PREFIX’
  763 | #define sr_warn(...) sr_log(SR_LOG_WARN, LOG_PREFIX ": " __VA_ARGS__)
      |                                          ^~~~~~~~~~
src/hardware/greatfet/api.c:394:4: note: in expansion of macro ‘sr_warn’
  394 |    sr_warn("%s(): the greatfet reports overrun; this sample rate may not be meetable! (trying to continue)\n");
      |    ^~~~~~~
src/hardware/greatfet/api.c:394:14: note: format string is defined here
  394 |    sr_warn("%s(): the greatfet reports overrun; this sample rate may not be meetable! (trying to continue)\n");
      |             ~^
      |              |
      |              char *
In file included from src/hardware/greatfet/api.c:29:
./src/libsigrok-internal.h:763:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
  763 | #define sr_warn(...) sr_log(SR_LOG_WARN, LOG_PREFIX ": " __VA_ARGS__)
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/hardware/greatfet/api.c:383:4: note: in expansion of macro ‘sr_warn’
  383 |    sr_warn("%s(): transfer timed out; trying to use what data we received\n",  __func__);
      |    ^~~~~~~
src/hardware/greatfet/api.c:387:3: note: here
  387 |   case LIBUSB_TRANSFER_COMPLETED:
      |   ^~~~
In file included from src/hardware/greatfet/api.c:29:
./src/libsigrok-internal.h:764:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
  764 | #define sr_err(...) sr_log(SR_LOG_ERR,  LOG_PREFIX ": " __VA_ARGS__)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/hardware/greatfet/api.c:400:4: note: in expansion of macro ‘sr_err’
  400 |    sr_err("%s(): transfer terminated due to device detach\n", __func__);
      |    ^~~~~~
src/hardware/greatfet/api.c:403:3: note: here
  403 |   default:
      |   ^~~~~~~
  CC       src/hardware/gwinstek-gds-800/protocol.lo
  CC       src/hardware/gwinstek-gds-800/api.lo
  CC       src/hardware/gwinstek-gpd/protocol.lo
  CC       src/hardware/gwinstek-gpd/api.lo
  CC       src/hardware/hameg-hmo/protocol.lo
  CC       src/hardware/hameg-hmo/api.lo
  CC       src/hardware/hantek-4032l/protocol.lo
  CC       src/hardware/hantek-4032l/api.lo
  CC       src/hardware/hantek-6xxx/protocol.lo
  CC       src/hardware/hantek-6xxx/api.lo
  CC       src/hardware/hantek-dso/protocol.lo
  CC       src/hardware/hantek-dso/api.lo
  CC       src/hardware/hp-3457a/protocol.lo
  CC       src/hardware/hp-3457a/api.lo
  CC       src/hardware/hung-chang-dso-2100/protocol.lo
  CC       src/hardware/hung-chang-dso-2100/api.lo
  CC       src/hardware/ikalogic-scanalogic2/protocol.lo
  CC       src/hardware/ikalogic-scanalogic2/api.lo
  CC       src/hardware/ikalogic-scanaplus/protocol.lo
  CC       src/hardware/ikalogic-scanaplus/api.lo
  CC       src/hardware/ipdbg-la/protocol.lo
  CC       src/hardware/ipdbg-la/api.lo
  CC       src/hardware/kecheng-kc-330b/protocol.lo
  CC       src/hardware/kecheng-kc-330b/api.lo
  CC       src/hardware/kern-scale/protocol.lo
  CC       src/hardware/kern-scale/api.lo
  CC       src/hardware/korad-kaxxxxp/protocol.lo
  CC       src/hardware/korad-kaxxxxp/api.lo
  CC       src/hardware/lascar-el-usb/protocol.lo
  CC       src/hardware/lascar-el-usb/api.lo
  CC       src/hardware/lecroy-logicstudio/protocol.lo
  CC       src/hardware/lecroy-logicstudio/api.lo
  CC       src/hardware/lecroy-xstream/protocol.lo
  CC       src/hardware/lecroy-xstream/api.lo
  CC       src/hardware/manson-hcs-3xxx/protocol.lo
  CC       src/hardware/manson-hcs-3xxx/api.lo
  CC       src/hardware/maynuo-m97/protocol.lo
  CC       src/hardware/maynuo-m97/api.lo
  CC       src/hardware/microchip-pickit2/protocol.lo
  CC       src/hardware/microchip-pickit2/api.lo
  CC       src/hardware/mic-985xx/protocol.lo
  CC       src/hardware/mic-985xx/api.lo
  CC       src/hardware/motech-lps-30x/protocol.lo
  CC       src/hardware/motech-lps-30x/api.lo
  CC       src/hardware/norma-dmm/protocol.lo
  CC       src/hardware/norma-dmm/api.lo
  CC       src/hardware/openbench-logic-sniffer/protocol.lo
  CC       src/hardware/openbench-logic-sniffer/api.lo
  CC       src/hardware/pce-322a/protocol.lo
  CC       src/hardware/pce-322a/api.lo
  CC       src/hardware/pipistrello-ols/protocol.lo
  CC       src/hardware/pipistrello-ols/api.lo
  CC       src/hardware/rdtech-dps/protocol.lo
  CC       src/hardware/rdtech-dps/api.lo
  CC       src/hardware/rigol-ds/protocol.lo
  CC       src/hardware/rigol-ds/api.lo
  CC       src/hardware/rohde-schwarz-sme-0x/protocol.lo
  CC       src/hardware/rohde-schwarz-sme-0x/api.lo
  CC       src/hardware/saleae-logic16/protocol.lo
  CC       src/hardware/saleae-logic16/api.lo
  CC       src/hardware/saleae-logic-pro/protocol.lo
  CC       src/hardware/saleae-logic-pro/api.lo
  CC       src/hardware/scpi-dmm/protocol.lo
  CC       src/hardware/scpi-dmm/api.lo
  CC       src/hardware/scpi-pps/protocol.lo
  CC       src/hardware/scpi-pps/profiles.lo
  CC       src/hardware/scpi-pps/api.lo
  CC       src/hardware/serial-dmm/protocol.lo
  CC       src/hardware/serial-dmm/api.lo
  CC       src/hardware/serial-lcr/api.lo
  CC       src/hardware/siglent-sds/protocol.lo
  CC       src/hardware/siglent-sds/api.lo
  CC       src/hardware/sysclk-lwla/lwla.lo
  CC       src/hardware/sysclk-lwla/lwla1016.lo
  CC       src/hardware/sysclk-lwla/lwla1034.lo
  CC       src/hardware/sysclk-lwla/protocol.lo
  CC       src/hardware/sysclk-lwla/api.lo
  CC       src/hardware/teleinfo/protocol.lo
  CC       src/hardware/teleinfo/api.lo
  CC       src/hardware/testo/protocol.lo
  CC       src/hardware/testo/api.lo
  CC       src/hardware/tondaj-sl-814/protocol.lo
  CC       src/hardware/tondaj-sl-814/api.lo
  CC       src/hardware/uni-t-dmm/protocol.lo
  CC       src/hardware/uni-t-dmm/api.lo
  CC       src/hardware/uni-t-ut32x/protocol.lo
  CC       src/hardware/uni-t-ut32x/api.lo
  CC       src/hardware/victor-dmm/protocol.lo
  CC       src/hardware/victor-dmm/api.lo
  CC       src/hardware/yokogawa-dlm/protocol.lo
  CC       src/hardware/yokogawa-dlm/protocol_wrappers.lo
  CC       src/hardware/yokogawa-dlm/api.lo
  CC       src/hardware/zeroplus-logic-cube/analyzer.lo
  CC       src/hardware/zeroplus-logic-cube/gl_usb.lo
  CC       src/hardware/zeroplus-logic-cube/protocol.lo
  CC       src/hardware/zeroplus-logic-cube/api.lo
  CC       src/hardware/zketech-ebd-usb/protocol.lo
  CC       src/hardware/zketech-ebd-usb/api.lo
  CCLD     src/libdrivers.la
copying selected object files to avoid basename conflicts...
  CC       src/driver_list_start.lo
  CCLD     src/libdrivers_head.la
  CC       src/driver_list_stop.lo
  CCLD     src/libdrivers_tail.la
  CCLD     src/libdrivers.o
  GEN      src/libdrivers.lo
  CCLD     libsigrok.la
copying selected object files to avoid basename conflicts...
  GEN      doxy/xml/index.xml
  GEN      bindings/cxx/enums.timestamp
  CXX      bindings/cxx/classes.lo
bindings/cxx/classes.cpp: In member function ‘const sigrok::LogLevel* sigrok::Context::log_level() const’:
bindings/cxx/classes.cpp:224:19: error: incomplete type ‘sigrok::LogLevel’ used in nested name specifier
  224 |  return LogLevel::get(sr_log_loglevel_get());
      |                   ^~~
bindings/cxx/classes.cpp: In member function ‘void sigrok::Context::set_log_level(const sigrok::LogLevel*)’:
bindings/cxx/classes.cpp:229:33: error: invalid use of incomplete type ‘const class sigrok::LogLevel’
  229 |  check(sr_log_loglevel_set(level->id()));
      |                                 ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:105:14: note: forward declaration of ‘class sigrok::LogLevel’
  105 | class SR_API LogLevel;
      |              ^~~~~~~~
bindings/cxx/classes.cpp: In function ‘int sigrok::call_log_callback(void*, int, const char*, __va_list_tag*)’:
bindings/cxx/classes.cpp:241:25: error: incomplete type ‘sigrok::LogLevel’ used in nested name specifier
  241 |   (*callback)(LogLevel::get(loglevel), message.get());
      |                         ^~~
bindings/cxx/classes.cpp: In member function ‘std::shared_ptr<sigrok::Packet> sigrok::Context::create_meta_packet(std::map<const sigrok::ConfigKey*, Glib::VariantBase>)’:
bindings/cxx/classes.cpp:309:20: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  309 |   output->key = key->id();
      |                    ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘std::shared_ptr<sigrok::Packet> sigrok::Context::create_analog_packet(std::vector<std::shared_ptr<sigrok::Channel> >, const float*, unsigned int, const sigrok::Quantity*, const sigrok::Unit*, std::vector<const sigrok::QuantityFlag*>)’:
bindings/cxx/classes.cpp:347:37: error: invalid use of incomplete type ‘const class sigrok::Quantity’
  347 |  meaning->mq = static_cast<sr_mq>(mq->id());
      |                                     ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:115:14: note: forward declaration of ‘class sigrok::Quantity’
  115 | class SR_API Quantity;
      |              ^~~~~~~~
bindings/cxx/classes.cpp:348:43: error: invalid use of incomplete type ‘const class sigrok::Unit’
  348 |  meaning->unit = static_cast<sr_unit>(unit->id());
      |                                           ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:116:14: note: forward declaration of ‘class sigrok::Unit’
  116 | class SR_API Unit;
      |              ^~~~
bindings/cxx/classes.cpp:349:58: error: incomplete type ‘sigrok::QuantityFlag’ used in nested name specifier
  349 |  meaning->mqflags = static_cast<sr_mqflag>(QuantityFlag::mask_from_flags(move(mqflags)));
      |                                                          ^~~~~~~~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘std::set<const sigrok::ConfigKey*> sigrok::Driver::scan_options() const’:
bindings/cxx/classes.cpp:467:29: error: incomplete type ‘sigrok::ConfigKey’ used in nested name specifier
  467 |    result.insert(ConfigKey::get(g_array_index(opts, uint32_t, i)));
      |                             ^~~
bindings/cxx/classes.cpp: In member function ‘std::vector<std::shared_ptr<sigrok::HardwareDevice> > sigrok::Driver::scan(std::map<const sigrok::ConfigKey*, Glib::VariantBase>)’:
bindings/cxx/classes.cpp:488:20: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  488 |   config->key = key->id();
      |                    ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘std::set<const sigrok::ConfigKey*> sigrok::Configurable::config_keys() const’:
bindings/cxx/classes.cpp:539:29: error: incomplete type ‘sigrok::ConfigKey’ used in nested name specifier
  539 |    result.insert(ConfigKey::get(g_array_index(opts, uint32_t, i)));
      |                             ^~~
bindings/cxx/classes.cpp: In member function ‘Glib::VariantBase sigrok::Configurable::config_get(const sigrok::ConfigKey*) const’:
bindings/cxx/classes.cpp:551:6: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  551 |   key->id(), &data));
      |      ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘void sigrok::Configurable::config_set(const sigrok::ConfigKey*, const Glib::VariantBase&)’:
bindings/cxx/classes.cpp:559:6: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  559 |   key->id(), const_cast<GVariant*>(value.gobj())));
      |      ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘std::set<const sigrok::Capability*> sigrok::Configurable::config_capabilities(const sigrok::ConfigKey*) const’:
bindings/cxx/classes.cpp:565:30: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  565 |     config_channel_group, key->id());
      |                              ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp:569:29: error: incomplete type ‘sigrok::Capability’ used in nested name specifier
  569 |  for (auto cap: Capability::values())
      |                             ^~~~~~
bindings/cxx/classes.cpp: In member function ‘bool sigrok::Configurable::config_check(const sigrok::ConfigKey*, const sigrok::Capability*) const’:
bindings/cxx/classes.cpp:580:30: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  580 |     config_channel_group, key->id());
      |                              ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp:582:27: error: invalid use of incomplete type ‘const class sigrok::Capability’
  582 |  return (caps & capability->id());
      |                           ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:101:14: note: forward declaration of ‘class sigrok::Capability’
  101 | class SR_API Capability;
      |              ^~~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘Glib::VariantContainerBase sigrok::Configurable::config_list(const sigrok::ConfigKey*) const’:
bindings/cxx/classes.cpp:590:6: error: invalid use of incomplete type ‘const class sigrok::ConfigKey’
  590 |   key->id(), &data));
      |      ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:100:14: note: forward declaration of ‘class sigrok::ConfigKey’
  100 | class SR_API ConfigKey;
      |              ^~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘std::shared_ptr<sigrok::Channel> sigrok::UserDevice::add_channel(unsigned int, const sigrok::ChannelType*, std::string)’:
bindings/cxx/classes.cpp:717:14: error: invalid use of incomplete type ‘const class sigrok::ChannelType’
  717 |   index, type->id(), name.c_str()));
      |              ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:111:14: note: forward declaration of ‘class sigrok::ChannelType’
  111 | class SR_API ChannelType;
      |              ^~~~~~~~~~~
bindings/cxx/classes.cpp: In constructor ‘sigrok::Channel::Channel(sr_channel*)’:
bindings/cxx/classes.cpp:727:21: error: incomplete type ‘sigrok::ChannelType’ used in nested name specifier
  727 |  _type(ChannelType::get(_structure->type))
      |                     ^~~
bindings/cxx/classes.cpp: In member function ‘const sigrok::ChannelType* sigrok::Channel::type() const’:
bindings/cxx/classes.cpp:747:22: error: incomplete type ‘sigrok::ChannelType’ used in nested name specifier
  747 |  return ChannelType::get(_structure->type);
      |                      ^~~
bindings/cxx/classes.cpp: In member function ‘void sigrok::TriggerStage::add_match(std::shared_ptr<sigrok::Channel>, const sigrok::TriggerMatchType*, float)’:
bindings/cxx/classes.cpp:856:28: error: invalid use of incomplete type ‘const class sigrok::TriggerMatchType’
  856 |   channel->_structure, type->id(), value));
      |                            ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:110:14: note: forward declaration of ‘class sigrok::TriggerMatchType’
  110 | class SR_API TriggerMatchType;
      |              ^~~~~~~~~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘const sigrok::TriggerMatchType* sigrok::TriggerMatch::type() const’:
bindings/cxx/classes.cpp:888:27: error: incomplete type ‘sigrok::TriggerMatchType’ used in nested name specifier
  888 |  return TriggerMatchType::get(_structure->match);
      |                           ^~~
bindings/cxx/classes.cpp: In member function ‘const sigrok::PacketType* sigrok::Packet::type() const’:
bindings/cxx/classes.cpp:1115:21: error: incomplete type ‘sigrok::PacketType’ used in nested name specifier
 1115 |  return PacketType::get(_structure->type);
      |                     ^~~
bindings/cxx/classes.cpp: In member function ‘std::map<const sigrok::ConfigKey*, Glib::VariantBase> sigrok::Meta::config() const’:
bindings/cxx/classes.cpp:1183:21: error: incomplete type ‘sigrok::ConfigKey’ used in nested name specifier
 1183 |   result[ConfigKey::get(config->key)] = Glib::VariantBase(config->data, true);
      |                     ^~~
bindings/cxx/classes.cpp: In member function ‘const sigrok::Quantity* sigrok::Analog::mq() const’:
bindings/cxx/classes.cpp:1314:19: error: incomplete type ‘sigrok::Quantity’ used in nested name specifier
 1314 |  return Quantity::get(_structure->meaning->mq);
      |                   ^~~
bindings/cxx/classes.cpp: In member function ‘const sigrok::Unit* sigrok::Analog::unit() const’:
bindings/cxx/classes.cpp:1319:15: error: incomplete type ‘sigrok::Unit’ used in nested name specifier
 1319 |  return Unit::get(_structure->meaning->unit);
      |               ^~~
bindings/cxx/classes.cpp: In member function ‘std::vector<const sigrok::QuantityFlag*> sigrok::Analog::mq_flags() const’:
bindings/cxx/classes.cpp:1324:23: error: incomplete type ‘sigrok::QuantityFlag’ used in nested name specifier
 1324 |  return QuantityFlag::flags_from_mask(_structure->meaning->mqflags);
      |                       ^~~~~~~~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘Glib::VariantBase sigrok::Option::parse_string(std::string)’:
bindings/cxx/classes.cpp:1570:20: error: incomplete type ‘sigrok::ConfigKey’ used in nested name specifier
 1570 |  return ConfigKey::parse_string(value, dt);
      |                    ^~~~~~~~~~~~
bindings/cxx/classes.cpp: In member function ‘bool sigrok::OutputFormat::test_flag(const sigrok::OutputFlag*) const’:
bindings/cxx/classes.cpp:1636:45: error: invalid use of incomplete type ‘const class sigrok::OutputFlag’
 1636 |  return sr_output_test_flag(_structure, flag->id());
      |                                             ^~
In file included from bindings/cxx/classes.cpp:27:
bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp:104:14: note: forward declaration of ‘class sigrok::OutputFlag’
  104 | class SR_API OutputFlag;
      |              ^~~~~~~~~~
make[1]: *** [Makefile:3604: bindings/cxx/classes.lo] Error 1
make: *** [Makefile:1941: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
makepkg -sri  146.85s user 24.32s system 103% cpu 2:46.03

codyps commented on 2018-11-03 18:24

Needs an exclude in pkgver() to avoid the bogus unreleased version number.

From fcb32a51df1108ee4b3d338914f234eceb2a2876 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Sat, 3 Nov 2018 14:20:33 -0400
Subject: [PATCH] avoid "unreleased" version

---
 .SRCINFO | 2 +-
 PKGBUILD | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/.SRCINFO b/.SRCINFO
index 6ea5482..3f99492 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
 pkgbase = libsigrok-git
    pkgdesc = Client software that supports various hardware logic analyzers, core library (git version)
-   pkgver = 0.2.1.r3082.g0f523f2b
+   pkgver = 0.2.1.r3187.g3940abcb
    pkgrel = 1
    url = http://www.sigrok.org/wiki/Libsigrok
    arch = armv6h
diff --git a/PKGBUILD b/PKGBUILD
index 0527d22..725155d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@

 _gitname='libsigrok'
 pkgname="${_gitname}-git"
-pkgver=0.2.1.r3082.g0f523f2b
+pkgver=0.2.1.r3187.g3940abcb
 pkgrel=1
 pkgdesc="Client software that supports various hardware logic analyzers, core library (git version)"
 arch=('armv6h' 'armv7h' 'i686' 'x86_64')
@@ -20,7 +20,7 @@ sha512sums=('SKIP')

 pkgver() {
   cd "${srcdir}/${_gitname}"
-  git describe --long | sed 's/^libsigrok-//;s/\([^-]*-g\)/r\1/;s/-/./g'
+  git describe --long --exclude 'libsigrok-unreleased' | sed 's/^libsigrok-//;s/\([^-]*-g\)/r\1/;s/-/./g'
 }

 build() {
-- 
2.19.1

Jake commented on 2018-06-22 17:10

The udev rules got split into 2 files, please add: install -Dm 644 'contrib/61-libsigrok-uaccess.rules' "${pkgdir}/usr/lib/udev/rules.d/61-libsigrok-uaccess.rules" to the pkgbuild.

codyps commented on 2017-11-22 21:00

Upstream renamed `z60_libsigrok.rules` to `60_libsigrok.rules`, needs fixing in PKGBUILD

anatolik commented on 2016-08-21 04:49

Please add 'doxygen' to makedeps. It enables CXX bindings compilation. These CXX bindings are needed for other dependencies like pulseview.

anatolik commented on 2016-08-21 04:28

Use 'libftdi' instead of 'libftdi-compat'. It is updated ftdi/usb stack, it also avoids compilation errors.

Manouchehri commented on 2015-09-16 22:54

Thanks, I'll change that.