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

Nestopia 1.53.0 segfaults on F41/wayland #431

Open
musuruan opened this issue Dec 24, 2024 · 2 comments
Open

Nestopia 1.53.0 segfaults on F41/wayland #431

musuruan opened this issue Dec 24, 2024 · 2 comments

Comments

@musuruan
Copy link

I was updating Nestopia RPM for RPM Fusion. Version 1.53.0 segfaults on Fedora 41 under Wayland as soon as I click on the "open" menu item. This does not happens under X11.

(gdb) bt
#0 0x00007fffb008a6ab in IA__gdk_display_open (display_name=) at x11/gdkdisplay-x11.c:173
#1 0x00007fffb005850d in IA__gdk_display_open_default_libgtk_only () at /usr/src/debug/gtk2-2.24.33-19.fc41.x86_64/gdk/gdk.c:324
#2 0x00007fff94d40742 in IA__gtk_init_check (argc=, argv=) at /usr/src/debug/gtk2-2.24.33-19.fc41.x86_64/gtk/gtkmain.c:1008
#3 0x00007ffff796de65 in Fl_GTK_File_Chooser::fl_gtk_chooser_wrapper (this=this@entry=0x555556c2bb60) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_Native_File_Chooser_GTK.cxx:433
#4 0x00007ffff796e4c0 in Fl_GTK_File_Chooser::show (this=0x555556c2bb60) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_Native_File_Chooser_GTK.cxx:385
#5 0x00005555556e90b8 in ??? ()
#6 0x00007ffff7964ff5 in Fl_Menu_Item::do_callback (this=0x555555788118, o=0x5555558005c0) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/FL/Fl_Menu_Item.H:384
#7 Fl_Menu_::picked (this=this@entry=0x5555558005c0, v=0x555555788118) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_Menu_.cxx:306
#8 0x00007ffff796842f in Fl_Menu_Bar::handle (this=0x5555558005c0, event=) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_Menu_Bar.cxx:55
#9 Fl_Menu_Bar::handle (this=0x5555558005c0, event=) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_Menu_Bar.cxx:45
#10 0x00007ffff795105b in Fl_Group::handle (this=, event=) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_Group.cxx:228
#11 0x00007ffff79384c5 in send_event (event=event@entry=1, to=to@entry=0x5555557e7a60, window=window@entry=0x5555557e7a60) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl.cxx:1220
#12 0x00007ffff793af65 in Fl::handle_ (e=, window=0x5555557e7a60) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl.cxx:1349
#13 Fl::handle_ (e=, window=0x5555557e7a60) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl.cxx:1318
#14 0x00007ffff79a8c5a in fl_handle (thisevent=) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_x.cxx:2258
#15 0x00007ffff799a4a2 in do_queued_events () at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_x.cxx:212
#16 0x00007ffff799a80a in fl_wait (time_to_wait=) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl_x.cxx:278
#17 0x00007ffff793a60a in Fl::wait (time_to_wait=0.0093253333333332706, time_to_wait@entry=1e+20) at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl.cxx:627
#18 0x00007ffff793a749 in Fl::wait () at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl.cxx:672
#19 Fl::wait () at /usr/src/debug/fltk-1.3.8-10.fc41.x86_64/src/Fl.cxx:670
#20 0x00005555555693e7 in ??? ()
#21 0x00007ffff7329248 in __libc_start_call_main (main=main@entry=0x555555567600, argc=argc@entry=1, argv=argv@entry=0x7fffffffdeb8) at ../sysdeps/nptl/libc_start_call_main.h:58
#22 0x00007ffff732930b in __libc_start_main_impl (main=0x555555567600, argc=1, argv=0x7fffffffdeb8, init=, fini=, rtld_fini=, stack_end=0x7fffffffdea8) at ../csu/libc-start.c:360
#23 0x000055555556b675 in ??? ()

Fedora 41 is fully updated.

@rdanbrook
Copy link
Member

rdanbrook commented Dec 24, 2024

I suspect it's because you are using FLTK 1.3, which does not explicitly support Wayland. Since XWayland is managing the main window, when you try to bring up a GTK-based "native" file dialog, it fails because GTK wants to use Wayland directly instead of be under XWayland.

This is actually an FLTK problem. The solution is for Fedora to upgrade to FLTK 1.4, or somehow force the file dialog to use XWayland as well. There might be an environment variable to disable the native file chooser and use FLTK's, but I haven't been able to find any answers about that.

Edit: On second thought, it's possible that FLTK could have fixed this in 1.3.10, you are on 1.3.8. I don't have time to check right now, but if that is the case, then it might be easier for the Fedora packagers to get the latest FLTK from the 1.3 series packaged than to package up 1.4 and then rebuild the Nestopia RPM against that. I don't really know how distros plan to handle the 1.3 to 1.4 upgrade.

You can also try using this environment variable: GDK_BACKEND=x11

I could also be completely wrong here. If you still have problems after trying the above suggestions (maybe build it against your own build of FLTK 1.4), then it might be helpful to know more information about your desktop environment, and GPU hardware.

@musuruan
Copy link
Author

musuruan commented Jan 4, 2025

I suspect it's because you are using FLTK 1.3, which does not explicitly support Wayland. Since XWayland is managing the main window, when you try to bring up a GTK-based "native" file dialog, it fails because GTK wants to use Wayland directly instead of be under XWayland.

Yes, Fedora is still using 1.3.8.

This is actually an FLTK problem. The solution is for Fedora to upgrade to FLTK 1.4, or somehow force the file dialog to use XWayland as well. There might be an environment variable to disable the native file chooser and use FLTK's, but I haven't been able to find any answers about that.

They are working on upgrading FKTL to 1.4. I have no idea if it will also available for F41 or only for F42+.
https://bugzilla.redhat.com/show_bug.cgi?id=2253781

Edit: On second thought, it's possible that FLTK could have fixed this in 1.3.10, you are on 1.3.8. I don't have time to check right now, but if that is the case, then it might be easier for the Fedora packagers to get the latest FLTK from the 1.3 series packaged than to package up 1.4 and then rebuild the Nestopia RPM against that. I don't really know how distros plan to handle the 1.3 to 1.4 upgrade.

Unluckily 1.3.10 is not (yet?) available in Fedora.

You can also try using this environment variable: GDK_BACKEND=x11

I could also be completely wrong here. If you still have problems after trying the above suggestions (maybe build it against your own build of FLTK 1.4), then it might be helpful to know more information about your desktop environment, and GPU hardware.

This works but it would probably be better to wait for 1.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants