Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uhd: 4.6.0.0 -> 4.7.0.0 #349079

Merged
merged 5 commits into from
Oct 31, 2024
Merged

uhd: 4.6.0.0 -> 4.7.0.0 #349079

merged 5 commits into from
Oct 31, 2024

Conversation

kouyk
Copy link
Contributor

@kouyk kouyk commented Oct 16, 2024

https://github.com/EttusResearch/uhd/releases/tag/v4.7.0.0

There are additional tests included by upstream in this release, causing the patch file to no longer be valid. I have fixed that together in this update.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@kouyk
Copy link
Contributor Author

kouyk commented Oct 16, 2024

Results of nix run nixpkgs#nixpkgs-review -- rev HEAD

--------- Report for 'x86_64-linux' ---------
18 packages failed to build:
abracadabra gnss-sdr gnuradio gnuradio3_8 gnuradio3_8Packages.ais gnuradio3_8Packages.grnet gnuradio3_8Packages.limesdr gnuradio3_8Packages.osmosdr gnuradio3_8Packages.osmosdr.dev gnuradio3_8Packages.rds gnuradioMinimal gnuradioPackages.osmosdr gnuradioPackages.osmosdr.dev gqrx gqrx-gr-audio gqrx-portaudio python312Packages.soapysdr-with-plugins qradiolink

21 packages built:
cubicsdr dump1090 gnuradio3_8Minimal inspectrum openwebrx openwebrx.dist pothos python311Packages.soapysdr-with-plugins rtl_433 sdrangel sdrpp sigdigger soapysdr-with-plugins soapyuhd srsran suscan uhd uhd.dev uhdMinimal uhdMinimal.dev welle-io

@bjornfor
Copy link
Contributor

Result of nixpkgs-review pr 349079 run on x86_64-linux 1

18 packages failed to build:
  • abracadabra
  • gnss-sdr
  • gnuradio
  • gnuradio3_8
  • gnuradio3_8Packages.ais
  • gnuradio3_8Packages.grnet
  • gnuradio3_8Packages.limesdr
  • gnuradio3_8Packages.osmosdr
  • gnuradio3_8Packages.osmosdr.dev
  • gnuradio3_8Packages.rds
  • gnuradioMinimal
  • gnuradioPackages.osmosdr
  • gnuradioPackages.osmosdr.dev
  • gqrx
  • gqrx-gr-audio
  • gqrx-portaudio
  • python312Packages.soapysdr-with-plugins
  • qradiolink
21 packages built:
  • cubicsdr
  • dump1090
  • gnuradio3_8Minimal
  • inspectrum
  • openwebrx
  • openwebrx.dist
  • pothos
  • python311Packages.soapysdr-with-plugins
  • rtl_433
  • sdrangel
  • sdrpp
  • sigdigger
  • soapysdr-with-plugins
  • soapyuhd
  • srsran
  • suscan
  • uhd
  • uhd.dev
  • uhdMinimal
  • uhdMinimal.dev
  • welle-io

@bjornfor
Copy link
Contributor

18 packages failed to build:

Ugh, looks like many packages are broken already on master branch.

@kouyk
Copy link
Contributor Author

kouyk commented Oct 16, 2024

Ugh, looks like many packages are broken already on master branch.

Thanks for the confirmation! This is quite worrying given how close we are to 24.11.

@doronbehar
Copy link
Contributor

I don't understand why hydra-check says that gnuradio packages fail to build due to dependencies... Also locally it starts building right away (didn't have time to see it through), I'll ask ofborg in the meantime:

@ofborg build gnuradio

@ofborg build gnuradio3_8

@doronbehar
Copy link
Contributor

@ofborg build gnuradio3_8

@doronbehar doronbehar mentioned this pull request Oct 18, 2024
13 tasks
@ofborg ofborg bot requested a review from jiegec October 18, 2024 11:26
@doronbehar
Copy link
Contributor

OK as for Gnuradio 3.10, I'm optimistic that if me and/or @LunNova will fix python311Packages.pyqt6 it will be fixed as well. (Don't have time now to dig into that, but here is a build log: https://cache.nixos.org/log/8b01w19ymf8w9grnbsr7vhd1vccgxax2-python3.11-pyqt6-6.7.0.dev2404081550.drv ).

As for ofborg's build timing out for GR 3.8, it also continues on forever locally, so I disabled the tests completely. Let's see it is fixed now:

@ofborg build gnuradio3_8

@LunNova
Copy link
Member

LunNova commented Oct 18, 2024

pyqt6 should be building again: #348697

@LunNova
Copy link
Member

LunNova commented Oct 18, 2024

Failing eval for me with nixpkgs-review:

       error: attribute 'swig' missing
       at /home/lun/.cache/nixpkgs-review/pr-349079/nixpkgs/pkgs/top-level/gnuradio-packages.nix:25:7:
           24|       qwt
           25|       swig
             |       ^
           26|     ;

@doronbehar
Copy link
Contributor

@ofborg build gnuradio

@ofborg ofborg bot added the 8.has: package (new) This PR adds a new package label Oct 19, 2024
@ofborg ofborg bot requested review from mogorman, markuskowa and chuangzhu October 19, 2024 22:20
Copy link
Contributor

@doronbehar doronbehar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK CI is green for gnuradio except for x86_64-darwin in which it times out; I'm optimistic it won't be an issue on Hydra. For gnuradio3_8 it is fully green, and I also checked locally gnuradio3_8Packages.{osmo,lime}sdr and they are OK.

Diff LGTM.

@doronbehar
Copy link
Contributor

Can be merged if there are no objections if you ask me.

@wegank wegank added 12.approvals: 1 This PR was reviewed and approved by one reputable person 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in the package labels Oct 20, 2024
@LunNova
Copy link
Member

LunNova commented Oct 20, 2024

@ofborg build soapysdr

@doronbehar
Copy link
Contributor

soapysdr is a dependency of gnuradio, so my previous @ofborg build already included that.

@LunNova
Copy link
Member

LunNova commented Oct 20, 2024

@ofborg build soapysdr-with-plugins

@LunNova
Copy link
Member

LunNova commented Oct 20, 2024

python312Packages.soapysdr-with-plugins is failing, but it's failing on master in the same way so nvm

@doronbehar
Copy link
Contributor

python312Packages.soapysdr-with-plugins is failing, but it's failing on master in the same way so nvm

It looks to me that it doesn't fail here..

@LunNova
Copy link
Member

LunNova commented Oct 20, 2024

@ofborg build python312Packages.soapysdr-with-plugins

Copy link
Member

@jopejoe1 jopejoe1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 2 failed packages were failing before.

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 349079


x86_64-linux

❌ 2 packages failed to build:
  • abracadabra
  • python312Packages.soapysdr-with-plugins
✅ 38 packages built:
  • cubicsdr
  • dump1090
  • gnss-sdr
  • gnuradio
  • gnuradio3_8
  • gnuradio3_8Minimal
  • gnuradio3_8Packages.ais
  • gnuradio3_8Packages.grnet
  • gnuradio3_8Packages.limesdr
  • gnuradio3_8Packages.osmosdr
  • gnuradio3_8Packages.osmosdr.dev
  • gnuradio3_8Packages.rds
  • gnuradioMinimal
  • gnuradioPackages.osmosdr
  • gnuradioPackages.osmosdr.dev
  • gqrx
  • gqrx-gr-audio
  • gqrx-portaudio
  • inspectrum
  • openwebrx
  • openwebrx.dist
  • pothos
  • python311Packages.soapysdr-with-plugins
  • qradiolink
  • rtl_433
  • sdrangel
  • sdrpp
  • sigdigger
  • soapysdr-with-plugins
  • soapyuhd
  • srsran
  • suscan
  • swig3
  • uhd
  • uhd.dev
  • uhdMinimal
  • uhdMinimal.dev
  • welle-io

@jopejoe1 jopejoe1 merged commit 369d626 into NixOS:master Oct 31, 2024
47 checks passed
@kouyk kouyk deleted the uhd-update branch October 31, 2024 15:13
@emilazy
Copy link
Member

emilazy commented Nov 16, 2024

cc @bcdarwin

Would have been good to get a ping about the reintroduction of an old SWIG version as we have been specifically trying to cut down on them. SInce the latest GNU Radio uses SWIG 4 I imagine it should not be too difficult to backport whatever change made that possible.

@doronbehar
Copy link
Contributor

I am the one who reintroduced the old swig 3 derivation. The diff between GR 3.10 and 3.8 is so big that I doubt it would be easy enough even for someone with swig experience to perform such a backport. However, I'd be happy to review such a PR removing swig3.

@emilazy
Copy link
Member

emilazy commented Nov 18, 2024

FWIW, it also means another package requiring the end‐of‐life, not‐updated‐in‐three‐years original PCRE library (#356387); Debian has already removed PCRE entirely as of last year’s stable release, and they removed SWIG 3 in 2021. I think at the very least we’d want to backport PCRE2 support from SWIG 4, but I don’t feel great about reintroducing it at all – Gforth’s modified SWIG 3 fork was bad enough but at least that’s more contained and not something other packages can depend on.

This seems like another instance of “exceptions to our normal practice of not carrying multiple old versions of packages leading to knock‐on maintenance effects throughout the tree that eventually bottoms out in keeping around something that’s EOL/a security risk” – can I ask why we package GNU Radio 3.8 at all? It seems like 3.9 was released almost four years ago and 3.8 hasn’t had an update since 2022; should we really be shipping 24.11 with it at all?

(Also, it seems like GNU Radio 3.9 just moved off SWIG entirely and our swig dependency for the 3.10 package is dead code…)

@doronbehar
Copy link
Contributor

FWIW, it also means another package requiring the end‐of‐life, not‐updated‐in‐three‐years original PCRE library (#356387); Debian has already removed PCRE entirely as of last year’s stable release, and they removed SWIG 3 in 2021. I think at the very least we’d want to backport PCRE2 support from SWIG 4, but I don’t feel great about reintroducing it at all – Gforth’s modified SWIG 3 fork was bad enough but at least that’s more contained and not something other packages can depend on.

This seems like another instance of “exceptions to our normal practice of not carrying multiple old versions of packages leading to knock‐on maintenance effects throughout the tree that eventually bottoms out in keeping around something that’s EOL/a security risk” – can I ask why we package GNU Radio 3.8 at all? It seems like 3.9 was released almost four years ago and 3.8 hasn’t had an update since 2022; should we really be shipping 24.11 with it at all?

OK I see, this is very convincing.I just checked, and qradiolink (@markuskowa maintaining) and inspectrum (@mogorman maintaining) are using GR 3.8. I tried to naively make them switch to GR 3.10, and it worked flawlessly for inspectrum, but not for qradiolink (@markuskowa ):

Running phase: qmakePrePhase
@nix { "action": "setPhase", "phase": "qmakePrePhase" }
Running phase: qtPreHook
@nix { "action": "setPhase", "phase": "qtPreHook" }
Running phase: unpackPhase
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking source archive /nix/store/l23ppz8nz4dxmbfa7xig2yaxyq0rhpsd-source
source root is source
Running phase: patchPhase
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: configurePhase
@nix { "action": "setPhase", "phase": "configurePhase" }
QMAKEPATH=/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev:/nix/store/sjmp1y6rljagil353r6g307kr48127m4-qtwayland-5.15.15-dev:/nix/store/xb8k04n787ala1f550r3l4vwhbqby2k7-qtdeclarative-5.15.15-dev:/nix/store/q0x7d4ycs2463f9q53k606azvgn23axq-qtsvg-5.15.15-dev:/nix/store/90z9i95sv3xiwdyfq4d7bk9kiqyr9lnd-qtmultimedia-5.15.15-dev:/nix/store/b9gykb4vc0848icri1ffy0p92c3h4vc6-qttools-5.15.15-dev
qmake CONFIG+=nostrip CONFIG+=release PREFIX=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1 NIX_OUTPUT_OUT=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1 NIX_OUTPUT_DEV=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1 NIX_OUTPUT_BIN=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1 NIX_OUTPUT_DOC=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1/share/doc/qt-5.15.15 NIX_OUTPUT_QML=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1/lib/qt-5.15.15/qml NIX_OUTPUT_PLUGIN=/nix/store/basn682319fii4s0d8sl3axnkn4x7lkc-qradiolink-0.9.0-1/lib/qt-5.15.15/plugins QMAKE_LRELEASE=/nix/store/b9gykb4vc0848icri1ffy0p92c3h4vc6-qttools-5.15.15-dev/bin/lrelease
Info: creating stash file /build/source/.qmake.stash
Project MESSAGE: /nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/mkspecs/linux-g++
Project MESSAGE: Building for GNU/Linux
Project MESSAGE: Building without OpenGL support
Project MESSAGE: Building with Qt audio support.
WARNING: Failure to find: src/ext/Mumble.pb.cc
WARNING: Failure to find: src/ext/QRadioLink.pb.cc
WARNING: Failure to find: src/ext/Mumble.pb.h
WARNING: Failure to find: src/ext/QRadioLink.pb.h
Running phase: buildPhase
@nix { "action": "setPhase", "phase": "buildPhase" }
Project MESSAGE: /nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/mkspecs/linux-g++
Project MESSAGE: Building for GNU/Linux
Project MESSAGE: Building without OpenGL support
Project MESSAGE: Building with Qt audio support.
build flags: -j1 SHELL=/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin/bash
/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/bin/uic src/mainwindow.ui -o ui_mainwindow.h
g++ -c -pipe -O2 -D_REENTRANT -Wall -Wextra -fPIC -DUSE_QT_AUDIO -DQT_NO_DEBUG -DQT_MULTIMEDIAWIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Isrc/M17 -I/nix/store/90z9i95sv3xiwdyfq4d7bk9kiqyr9lnd-qtmultimedia-5.15.15-dev/include/QtMultimediaWidgets -I/nix/store/90z9i95sv3xiwdyfq4d7bk9kiqyr9lnd-qtmultimedia-5.15.15-dev/include/QtMultimedia -I/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/include/QtWidgets -I/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/include/QtGui -I/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/include/QtNetwork -I/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/include/QtCore -I. -I/nix/store/mnpvi1mvwyf0wsyy5wca3kfwxv2j4pd9-libglvnd-1.7.0-dev/include -I. -I/nix/store/yzwd3xa66zrq4iihfj5vpxr3xzlsrphk-qtbase-5.15.15-dev/mkspecs/linux-g++ -o main.o src/main.cpp
In file included from /nix/store/di5dzx8m7b51nkz59dfmqwrmkm8j2rzb-gnuradio-3.10.11.0/include/gnuradio/io_signature.h:19,
                 from /nix/store/di5dzx8m7b51nkz59dfmqwrmkm8j2rzb-gnuradio-3.10.11.0/include/gnuradio/basic_block.h:15,
                 from /nix/store/di5dzx8m7b51nkz59dfmqwrmkm8j2rzb-gnuradio-3.10.11.0/include/gnuradio/hier_block2.h:15,
                 from /nix/store/di5dzx8m7b51nkz59dfmqwrmkm8j2rzb-gnuradio-3.10.11.0/include/gnuradio/top_block.h:15,
                 from ./src/gr/gr_mod_base.h:28,
                 from ./src/gr_modem.h:36,
                 from ./src/radiocontroller.h:47,
                 from src/main.cpp:35:
/nix/store/pnqw6igiqaalvl099z81z96r62zhn5hx-spdlog-1.14.1-dev/include/spdlog/fmt/fmt.h:24:14: fatal error: spdlog/fmt/bundled/core.h: No such file or directory
   24 |     #include <spdlog/fmt/bundled/core.h>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:1633: main.o] Error 1

Perhaps an issue in upstream's bug tracker should be opened.

(Also, it seems like GNU Radio 3.9 just moved off SWIG entirely and our swig dependency for the 3.10 package is dead code…)

Although we use swig in the package's arguments, it is not used there at all.

Anyway, I opened #356976 as a draft to suggest the removal of GR 3.8 along with swig3. Marked as a draft at the moment due to the error above of qradiolink, and also seeking in general @markuskowa's approval.

@emilazy
Copy link
Member

emilazy commented Nov 18, 2024

Thank you for looking into this :) FWIW, it’s not super urgent to resolve this especially as the Gforth fork is a problem on its own in terms of PCRE, and SWIG is (hopefully!) not getting exposed to untrusted user input anyway, but I do just want to make sure we’re moving forward rather than backwards on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.has: package (new) This PR adds a new package 10.rebuild-darwin: 11-100 10.rebuild-linux: 11-100 12.approvals: 1 This PR was reviewed and approved by one reputable person 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in the package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants