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

wxGTK32: 3.2.3 -> 3.2.4 #266945

Merged
merged 3 commits into from Nov 16, 2023
Merged

wxGTK32: 3.2.3 -> 3.2.4 #266945

merged 3 commits into from Nov 16, 2023

Conversation

evils
Copy link
Member

@evils evils commented Nov 12, 2023

Description of changes

https://github.com/wxWidgets/wxWidgets/releases/tag/v3.2.4
wxWidgets/wxWidgets@v3.2.3...v3.2.4

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/)
  • 23.11 Release Notes (or backporting 23.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.

result of nixpkgs-review

1 package marked as broken and skipped:
springLobby

9 packages failed to build:
audacity displaycal displaycal.dist erlang-ls klipper-firmware klipper-flash slade sladeUnstable tenacity

195 packages built:
abracadabra aegisub akkoma amule amule-daemon amule-gui amule-web asc bochs boinc bossa bossa-arduino cemu chirp chirp.dist cl codeblocks codeblocksFull comical couchdb3 cqrlog cubicsdr diff-pdf digikam dump1090 dvdstyler easyabc ejabberd electricsheep elixir elixir-ls elixir_1_10 elixir_1_11 elixir_1_12 elixir_1_13 elixir_1_14 elvis-erlang erlang erlang_24 erlang_26 erlang_javac erlang_odbc erlang_odbc_javac erlfmt espanso espanso-wayland espeakedit far2l filezilla fityk flamerobin freedv freefilesync freqtweak fsg gnudatalanguage gnuradio3_8Packages.ais gnuradio3_8Packages.limesdr gnuradio3_8Packages.osmosdr gnuradio3_8Packages.osmosdr.dev gnuradio3_9Packages.osmosdr gnuradio3_9Packages.osmosdr.dev gnuradioPackages.osmosdr gnuradioPackages.osmosdr.dev golly gqrx gqrx-gr-audio gqrx-portaudio grandorgue grass hugin indi-full kicad kicad-small kicad-unstable kicad-unstable-small kstars lenmus lfe limesuite livebook loxodo loxodo.dist mavproxy mavproxy.dist mediainfo-gui meerk40t meerk40t.dist megaglest mercury metamorphose2 mix2nix mmex mobilizon mymcplus mymcplus.dist notmuch-bower odamex opencpn openwebrx openwebrx.dist pcem perl536Packages.AlienWxWidgets perl536Packages.AlienWxWidgets.devdoc perl536Packages.AppMusicChordPro perl536Packages.AppMusicChordPro.devdoc perl536Packages.Wx perl536Packages.Wx.devdoc perl536Packages.WxGLCanvas perl536Packages.WxGLCanvas.devdoc perl538Packages.AlienWxWidgets perl538Packages.AlienWxWidgets.devdoc perl538Packages.AppMusicChordPro perl538Packages.AppMusicChordPro.devdoc perl538Packages.Wx perl538Packages.Wx.devdoc perl538Packages.WxGLCanvas perl538Packages.WxGLCanvas.devdoc phd2 plausible playonlinux pleroma poedit pothos printrun printrun.dist pwsafe python310Packages.humblewx python310Packages.humblewx.dist python310Packages.kicad python310Packages.soapysdr-with-plugins python310Packages.wxPython_4_2 python311Packages.humblewx python311Packages.humblewx.dist python311Packages.kicad python311Packages.soapysdr-with-plugins python311Packages.wxPython_4_2 qgis qgis-ltr qradiolink quisk quisk.dist rabbitmq-server rabbitmq-server.doc rabbitmq-server.man radiotray-ng rapidsvn rebar rebar3 rehex rtl_433 saga scorched3d sdrangel sigdigger slic3r soapysdr-with-plugins sonic-pi sooperlooper sound-of-sorting spatialite_gui spek srsran survex suscan therion timeline tqsl treesheets tsung tunnelx urbackup-client urh urh.dist vbam veracrypt welle-io wings woeusb-ng woeusb-ng.dist wxGTK32 wxSVG wxformbuilder wxhexeditor wxmacmolplt wxmaxima wxsqlite3 wxsqliteplus xchm xmlcopyeditor xylib yaws zeroad zeroadPackages.zeroad-unwrapped zod

kicad seems to work with this update, but

pinging maintainers of packages broken by this change:
audacity: @lheckemann @veprbl @wegank (note: nix-update to 3.4.1 didn't fix it)
erlang-ls: none available, @dlesl authored and erlang maintainer @happysalada seems involved (note: doesn't fail on my branch based on nixos-unstable)
slade: @ertes
tenacity: @IreneKnapp @lheckemann

displaycal and klipper-firmware currently fail on master anyway
but pinging their maintainers to make sure they're aware of that:
displaycal: @toastal
klipper-firmware: @vtuan10 (note: updating to 0.12.0 didn't fix it)

@IreneKnapp
Copy link
Contributor

Thanks, I'm taking a look at the tenacity issue. According to wxGTK upstream this shouldn't be a breaking change, so perhaps tenacity's build system has something hardcoded.

@wegank
Copy link
Member

wegank commented Nov 12, 2023

wxWidgets/wxWidgets@425d945 must be reverted for Audacity to build. Something like this should work:

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e120ee67b902..be39c88bbea6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -30467,6 +30467,16 @@ with pkgs;
 
   audacity = callPackage ../applications/audio/audacity {
     inherit (darwin.apple_sdk.frameworks) AppKit CoreAudioKit;
+    wxGTK32 = wxGTK32.overrideAttrs {
+      patches = [
+        (fetchpatch {
+          url = "https://github.com/wxWidgets/wxWidgets/commit/425d9455e8307c1267a79d47d77e3dafeb4d86de.patch";
+          excludes = [ "docs/changes.txt" ];
+          revert = true;
+          hash = "sha256-6LOYLDLtVCHxNdHAWv3zhlCsljIpi//RJb9XVLGD5hM=";
+        })
+      ];
+    };
   };
 
   audio-recorder = callPackage ../applications/audio/audio-recorder { };

@IreneKnapp
Copy link
Contributor

in the case of Tenacity, the problem is caused by wxGTK having implemented initializer_list support for wxArrayString. this caused a few bits of code that were written on the assumption it didn't exist to misbehave.

I have prepared a two-line patch to the Tenacity code. I am happy to add that patch to the nix Tenacity package, and to drive the process of getting it upstreamed. Fortunately, it's a backwards-compatible fix, so there's nothing stopping it from being applied either before or after the wxGTK update.

This is my first time getting a notification about breakage in one of my packages. What's the procedure here, do you want to add my changes to your PR or should they be their own?

@evils
Copy link
Member Author

evils commented Nov 12, 2023

i opened this PR as a draft because we're in ZHF and this introduces failures
which i guess means my intent is to have this merged after the 23.11 branch-off (in 8 days)
unless all the breakages can be fixed and the changes reviewed before then

What's the procedure here, do you want to add my changes to your PR or should they be their own?

i don't think there's a set procedure

if you were to open a separate PR i'd probably add your change to this PR and mark this one as closing yours
so a separate PR is probably only useful if you want to separate discussion of the tenacity/audacity failure from the slade and erlang-ls one

@vtuan10
Copy link
Contributor

vtuan10 commented Nov 12, 2023

Thanks for notifying!

With the updated config for klipper-firmware (#267070) it should build again. I also tested it with wxGTK 3.2.4 and it builds fine as well.

@generic-pers0n
Copy link

Hello everyone!

This issue has already been fixed in Tenacity. We will be releasing 1.3.3 soon that will contain a fix.

@IreneKnapp
Copy link
Contributor

IreneKnapp commented Nov 13, 2023

oh how lovely, thanks @generic-pers0n ! it sounds like the timeframe works out such that we can just wait for that

here's my changes, in case they're useful just in moving up the timeline or anything like that. I don't think they're particularly idiomatic, I only ever intended them to be temporary

diff --git a/src/Tags.cpp b/src/Tags.cpp
index 50c940bcd..1833307fe 100644
--- a/src/Tags.cpp
+++ b/src/Tags.cpp
@@ -631,7 +631,7 @@ class ComboEditor final : public wxGridCellChoiceEditor
 public:
    ComboEditor(const wxArrayString& choices, bool allowOthers = false)
    :  wxGridCellChoiceEditor(choices, allowOthers)
-   ,  m_choices{ choices }
+   ,  m_choices(choices)
    ,  m_allowOthers{ allowOthers }
    {
    }
diff --git a/src/prefs/GUIPrefs.cpp b/src/prefs/GUIPrefs.cpp
index 1e6a93e56..36a73ee3b 100644
--- a/src/prefs/GUIPrefs.cpp
+++ b/src/prefs/GUIPrefs.cpp
@@ -80,7 +80,7 @@ void GUIPrefs::GetRangeChoices(
       wxT("145") ,
    };
    if (pCodes)
-      *pCodes = sCodes;
+      *pCodes = static_cast<const wxArrayStringEx&>(sCodes);
 
    static const std::initializer_list<TranslatableString> sChoices = {
       XO("-36 dB (shallow range for high-amplitude editing)") ,
-- 

(edit: syntax)

@generic-pers0n
Copy link

@IreneKnapp I created a small PR here: https://codeberg.org/tenacityteam/tenacity/pulls/325. If you approve, I'll merge it ASAP.

@IreneKnapp
Copy link
Contributor

IreneKnapp commented Nov 13, 2023

@evils just so you know, there's discussion over on wxWidgets/wxWidgets#23309 of making sure to announce this kind of thing in advance going forward, so it can be tested. since you're the maintainer for the nix wxGTK package I thought you might want to be involved.

(if you got @'d for this twice, sorry, I have a bunch of PRs open in tabs and got the wrong one...)
(argh I completely fail at @ today)

@evils
Copy link
Member Author

evils commented Nov 13, 2023

no double ping, though the email i got had a different name tagged there

i'm not actually the wxGTK package maintainer, but the KiCad package maintainer
and there's been a bunch of stuff happening with wxWidgets and KiCad related to wayland support, so i updated this to keep an eye on that

@generic-pers0n
Copy link

Tenacity 1.3.3 has just been released with improved compatibility with wxWidgets 3.2.4.

@happysalada
Copy link
Contributor

Thanks for the heads up, erlang-ls built fine, just tested it on linux-x86_64. So all good on that this.

crsib added a commit to crsib/audacity that referenced this pull request Nov 13, 2023
wxWidgets has introduced a breaking API change
with wxWidgets/wxWidgets#23309

This issues is also discussed here:
NixOS/nixpkgs#266945 (comment)
crsib added a commit to audacity/audacity that referenced this pull request Nov 13, 2023
wxWidgets has introduced a breaking API change
with wxWidgets/wxWidgets#23309

This issues is also discussed here:
NixOS/nixpkgs#266945 (comment)
@IreneKnapp IreneKnapp mentioned this pull request Nov 13, 2023
13 tasks
@IreneKnapp
Copy link
Contributor

the fixed Tenacity is now merged (thanks all!), so I think that removes it from the list of things that break

@IreneKnapp
Copy link
Contributor

I also think that means if you fix slade, you could have this merged in time for 23.11. of course, it's up to you whether you want that!

@evils
Copy link
Member Author

evils commented Nov 14, 2023

added wegank's workaround to audacity and slade (thanks!)
waiting for nixpkgs-review to finish before undrafting this

@evils
Copy link
Member Author

evils commented Nov 15, 2023

with #267070 it's down to just diplaycal, which is also a preexisting failure

1 package marked as broken and skipped:
springLobby

2 packages failed to build:
displaycal displaycal.dist

203 packages built:
abracadabra aegisub akkoma amule amule-daemon amule-gui amule-web asc audacity bochs boinc bossa bossa-arduino cemu chirp chirp.dist cl codeblocks codeblocksFull comical couchdb3 cqrlog cubicsdr diff-pdf digikam dump1090 dvdstyler easyabc ejabberd electricsheep elixir elixir-ls elixir_1_10 elixir_1_11 elixir_1_12 elixir_1_13 elixir_1_14 elvis-erlang erlang erlang-ls erlang_24 erlang_26 erlang_javac erlang_odbc erlang_odbc_javac erlfmt espanso espanso-wayland espeakedit far2l filezilla fityk flamerobin freedv freefilesync freqtweak fsg gnudatalanguage gnuradio3_8Packages.ais gnuradio3_8Packages.limesdr gnuradio3_8Packages.osmosdr gnuradio3_8Packages.osmosdr.dev gnuradio3_9Packages.osmosdr gnuradio3_9Packages.osmosdr.dev gnuradioPackages.osmosdr gnuradioPackages.osmosdr.dev golly gqrx gqrx-gr-audio gqrx-portaudio grandorgue grass hugin indi-full kicad kicad-small kicad-unstable kicad-unstable-small klipper-firmware klipper-flash kstars lenmus lfe limesuite livebook loxodo loxodo.dist mavproxy mavproxy.dist mediainfo-gui meerk40t meerk40t.dist megaglest mercury metamorphose2 mix2nix mmex mobilizon mymcplus mymcplus.dist notmuch-bower odamex opencpn openwebrx openwebrx.dist pcem perl536Packages.AlienWxWidgets perl536Packages.AlienWxWidgets.devdoc perl536Packages.AppMusicChordPro perl536Packages.AppMusicChordPro.devdoc perl536Packages.Wx perl536Packages.Wx.devdoc perl536Packages.WxGLCanvas perl536Packages.WxGLCanvas.devdoc perl538Packages.AlienWxWidgets perl538Packages.AlienWxWidgets.devdoc perl538Packages.AppMusicChordPro perl538Packages.AppMusicChordPro.devdoc perl538Packages.Wx perl538Packages.Wx.devdoc perl538Packages.WxGLCanvas perl538Packages.WxGLCanvas.devdoc phd2 plausible playonlinux pleroma poedit pothos printrun printrun.dist pterm pwsafe python310Packages.humblewx python310Packages.humblewx.dist python310Packages.kicad python310Packages.soapysdr-with-plugins python310Packages.wxPython_4_2 python311Packages.humblewx python311Packages.humblewx.dist python311Packages.kicad python311Packages.soapysdr-with-plugins python311Packages.wxPython_4_2 qgis qgis-ltr qradiolink quisk quisk.dist rabbitmq-server rabbitmq-server.doc rabbitmq-server.man radiotray-ng rapidsvn rebar rebar3 rehex rtl_433 saga scorched3d sdrangel sigdigger slade sladeUnstable slic3r soapysdr-with-plugins sonic-pi sooperlooper sound-of-sorting spatialite_gui spek srsran survex suscan tenacity therion timeline tqsl treesheets tsung tunnelx urbackup-client urh urh.dist vbam veracrypt welle-io wings woeusb-ng woeusb-ng.dist wxGTK32 wxSVG wxformbuilder wxhexeditor wxmacmolplt wxmaxima wxsqlite3 wxsqliteplus xchm xmlcopyeditor xylib yaws zeroad zeroadPackages.zeroad-unwrapped zod

@evils evils marked this pull request as ready for review November 15, 2023 00:20
@evils
Copy link
Member Author

evils commented Nov 16, 2023

ok, i just confirmed this resolves an issue i've been having with kicad-unstable on sway (wayland) where my GPU would double its power usage rendering an EGL canvas even if the window is hidden

so if anyone wants to review or merge this PR, please do!

@happysalada happysalada merged commit 5049069 into NixOS:master Nov 16, 2023
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants