Package Details: gr-limesdr-git 3.0.1.r69.gd0fac85-4

Git Clone URL: https://aur.archlinux.org/gr-limesdr-git.git (read-only, click to copy)
Package Base: gr-limesdr-git
Description: gr-limesdr Plugin for GNURadio
Upstream URL: https://github.com/myriadrf/gr-limesdr
Keywords: gnuradio gr lime limesdr limesuite radio sdr
Licenses: MIT
Conflicts: gr-limesdr
Provides: gr-limesdr
Submitter: FFY00
Maintainer: xiota (fixeria)
Last Packager: xiota
Votes: 3
Popularity: 0.000000
First Submitted: 2018-04-25 13:18 (UTC)
Last Updated: 2025-02-16 19:11 (UTC)

Dependencies (10)

Required by (0)

Sources (2)

Latest Comments

1 2 3 Next › Last »

xiota commented on 2025-02-16 19:12 (UTC)

@dcia Rebuild was needed after spdlog update. fmt is pinned because the plugin is incompatible with later versions. Build succeeded after your adjustment because the cached copy was probably still pinned.

I've switched the package to sodeps. This will prevent library updates from breaking it. When ready to rebuild, run pacman -Syudd to allow the updates. Some may disagree with this, but on balance, preventing disruption from broken packages outweighs the inconvenience of updating prior to rebuilds.

dcia commented on 2025-02-14 07:30 (UTC)

This is the runtime error:

File "/usr/lib/python3.13/site-packages/limesdr/init.py", line 18, in <module> from .limesdr_python import * ImportError: /usr/lib/libgnuradio-limesdr.so.1.0.0git: undefined symbol: ZN6spdlog7details7log_msgC1ENS_10source_locEN3fmt3v1017basic_string_viewIcEENS_5level10level_enumES6

Thanks again

xiota commented on 2025-02-13 18:54 (UTC)

@dcia Please provide the runtime error. Use a pastebin if it is longer than a few lines.

dcia commented on 2025-02-13 15:45 (UTC)

Hi. I tried to rebuild this package as part of a docker container. I'm getting a runtime error in gnuradio related to spdlog / fmt. From what I understand the PKGBUILD has a pinned dependency on fmt 10.2.1 which has an incompatible ABI with never versions of spdlog (1.15.1-1 currently expects fmt v.11).

I've done some dirty changes to the PKGBUILD to get gr-lime-sdr to build with the current fmt version: - source+=("fmtlib.fmt"::"git+https://github.com/fmtlib/fmt.git") in source_fmt() - -DCMAKE_CXX_FLAGS="-fpermissive" in _build_main()

Fortunately I have a working container built sometime last year with fmt 11.0.2-1 and spdlog 1.14.1-3 to compare both setups but I have not been able to downgrade any combination of packages that would not give any problems.

Thanks for your time!

xiota commented on 2023-08-29 16:59 (UTC)

@fixeria Thanks for your help.

fixeria commented on 2023-08-29 10:09 (UTC)

I removed doxygen because rebuild in clean chroot succeeded without it. Looks like it just skipped building docs. Adding back.

Thanks. Indeed it builds docs only if doxygen is installed.

I don't see any boost dependency: [...]

Huh, interesting. I am getting the same result with readelf, but ldd gives me:

$ ldd /usr/lib/libgnuradio-limesdr.so
        linux-vdso.so.1 (0x00007fff3ab98000)
        libgnuradio-runtime.so.3.10.7 => /usr/lib/libgnuradio-runtime.so.3.10.7 (0x00007fa4d0393000)
        libLimeSuite.so.22.09-1 => /usr/lib/libLimeSuite.so.22.09-1 (0x00007fa4d02d7000)
        libgnuradio-pmt.so.3.10.7 => /usr/lib/libgnuradio-pmt.so.3.10.7 (0x00007fa4d0281000)
        libspdlog.so.1.11 => /usr/lib/libspdlog.so.1.11 (0x00007fa4d022f000)
        libfmt.so.10 => /usr/lib/libfmt.so.10 (0x00007fa4d020a000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fa4cfe00000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007fa4d011b000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fa4d00f6000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007fa4cfa00000)
        libvolk.so.3.0 => /usr/lib/libvolk.so.3.0 (0x00007fa4cf400000)
    --> libboost_thread.so.1.81.0 => /usr/lib/libboost_thread.so.1.81.0 (0x00007fa4d00da000)
    --> libboost_program_options.so.1.81.0 => /usr/lib/libboost_program_options.so.1.81.0 (0x00007fa4d0095000)
        libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007fa4cfd5a000)
        libunwind.so.8 => /usr/lib/libunwind.so.8 (0x00007fa4cfd41000)
        libthrift-0.18.1.so => /usr/lib/libthrift-0.18.1.so (0x00007fa4cfc7b000)
        libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0x00007fa4cfc5d000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007fa4d051a000)
        liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x00007fa4cf966000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007fa4cf933000)
        libssl.so.3 => /usr/lib/libssl.so.3 (0x00007fa4cf360000)
        libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007fa4cee00000)
        libudev.so.1 => /usr/lib/libudev.so.1 (0x00007fa4cf8fc000)
        libcap.so.2 => /usr/lib/libcap.so.2 (0x00007fa4d0085000)

AFAIU, these libs are actually required by libgnuradio-runtime.so. They used to be required in the project's CMakeLists.txt https://github.com/myriadrf/gr-limesdr/blob/master/CMakeLists.txt#L55 (3y old master branch), but no longer required in the gr-3.10 branch we're using https://github.com/myriadrf/gr-limesdr/blob/gr-3.10/CMakeLists.txt. So yeah, nevermind.

Based on this, adding fmt and spdlog to depends.

Those are also dependencies of libgnuradio:

$ pacman -Qi gnuradio | grep -e fmt -e spdlog
Depends On      : codec2  gcc-libs  glibc  gmp  gsl  libad9361  libuhd  libunwind  libvolk  python-click  python-click-plugins  python-mako  python-matplotlib  python-numpy  python-pyyaml  python-pyzmq  python-scipy  python-thrift  sdl12-compat  soapysdr  spdlog  thrift  alsa-lib  libasound.so=2-64  boost-libs  libboost_program_options.so=1.81.0-64  libboost_thread.so=1.81.0-64  fftw  libfftw3f.so=3-64  libfftw3f_threads.so=3-64  >> fmt <<  libfmt.so=10-64  jack  libjack.so=0-64  libiio  libiio.so=0-64  libsndfile  libsndfile.so=1-64  portaudio  libportaudio.so=2-64  >> spdlog <<  libspdlog.so=1.11-64  zeromq  libzmq.so=5-64

But I don't think it's critical. I am fine with the latest PKGBUILD revision. Thanks!

xiota commented on 2023-08-29 09:46 (UTC) (edited on 2023-08-29 09:49 (UTC) by xiota)

I removed doxygen because rebuild in clean chroot succeeded without it. Looks like it just skipped building docs. Adding back.

I don't see any boost-libs dependency:

$ readelf -d /usr/lib/libgnuradio-limesdr.so

Dynamic section at offset 0x30818 contains 31 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libgnuradio-runtime.so.3.10.7]
 0x0000000000000001 (NEEDED)             Shared library: [libLimeSuite.so.22.09-1]
 0x0000000000000001 (NEEDED)             Shared library: [libgnuradio-pmt.so.3.10.7]
 0x0000000000000001 (NEEDED)             Shared library: [libspdlog.so.1.12]
 0x0000000000000001 (NEEDED)             Shared library: [libfmt.so.10]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname: [libgnuradio-limesdr.so.1.0.0git]
 ...

Based on this, adding fmt and spdlog to depends.

fixeria commented on 2023-08-29 09:07 (UTC)

Hi @xiota,

Are you interested in comaintaining?

yes, I am. Thanks!

Moved boost to makedepends.

Ack. I also found out that libgnuradio-limesdr.so depends on libboost_thread.so and libboost_program_options.so, so boost-libs needs to be added to $depends. I can submit a patch adding it.

Removed doxygen, graphiz, swig.

Not sure why you removed doxygen, it's needed to build documentation (HTML files in /usr/share/doc/limesuite). Other than that, ack.

Please test and let me know if it works.

Works for me. As I mentioned above, I propose to add boost-libs and resurrect doxygen to makedepends. After that we should bump the $pkgrel.

xiota commented on 2023-08-27 21:10 (UTC)

@fixeria Are you interested in comaintaining?

Moved boost to makedepends. Removed doxygen, graphiz, swig. Please test and let me know if it works.

fixeria commented on 2023-08-27 10:44 (UTC)

Hello,

I would like to propose the following PKGBUILD changes:

  • remove 'swig' from $depends, it's not needed anymore (replaced by 'pybind11'),
  • move 'graphviz' to $makedepends or even remove it (is it really needed?),
  • move 'doxygen' to $makedepends.

Thanks for maintaining!