xpilot-project / xpilot

Open-source, cross-platform X-Plane pilot client for VATSIM.
https://xpilot-project.org
GNU General Public License v3.0
119 stars 36 forks source link

Unable to run in FEDORA 36/37. #144

Closed anthraxn8b closed 1 year ago

anthraxn8b commented 1 year ago

Hi! Whatever I do, I do not get it to work properly.

The installation works (but has a UI glitch in the path input (a small area of the path text is invisible). When I then execute it (from command line), the following is shown and the program crashes:

$ QT_QPA_PLATFORM=wayland ./xPilot.AppImage 
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.

Abgebrochen (Speicherabzug geschrieben)

OR

$ ./xPilot.AppImage 
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
Abgebrochen (Speicherabzug geschrieben)

Ideas?

justinshannon commented 1 year ago

Did you successfully use previous version of xPilot, or is this your first time running xPilot?

anthraxn8b commented 1 year ago

I never got it fully working on fedora linux yet. Maybe you could just fire up a VM with fedora 36 and try it out. Of course it could also be a problem related to the person sitting in front of the monitor... ;-)

justinshannon commented 1 year ago

I just fired up a vanilla VM running Fedora 36 and had no issues with installing and running xPilot. VirtualBoxVM_BWYky0uUwM

I didn't experience any UI glitches during the install process, either. VirtualBoxVM_HGOGMKSyk9

anthraxn8b commented 1 year ago

Are you using xserver or wayland?

justinshannon commented 1 year ago

Wayland

mloftis commented 1 year ago

Is qt5-wayland or qt6-wayland package installed? Package may be different equiv on Fedora though -- BAsically QT is complaining it can't init at all because it's missing the plugin needed for wayland.

Disclaimer, not running XPL in Linux, just a Linux dev.

mloftis commented 1 year ago

Another option that may also work is using Xwayland (if installed, or can install) and setting the env var QT_QPA_PLATFORM=xcb (or QT_QPA_PLATFORM=wayland;xcb) in your profile. This forces QT to not try to use native wayland and fall back to X11, but requires that Xwayland is installed (basically an X11 server that outputs to Wayland's compositor, rather than the normal method of directly to the compositor)

anthraxn8b commented 1 year ago

$ gdb ./xPilot.AppImage 
GNU gdb (GDB) Fedora Linux 12.1-6.fc37
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./xPilot.AppImage...

This GDB supports auto-downloading debuginfo from the following URLs:
https://debuginfod.fedoraproject.org/ 
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
(No debugging symbols found in ./xPilot.AppImage)
(gdb) run
Starting program: /games/flightSimulation/xPlane/tools/xPilot/xPilot.AppImage 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[Detaching after fork from child process 5602]
process 5599 is executing new program: /tmp/.mount_xPilotHX7cle/AppRun
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
process 5599 is executing new program: /tmp/.mount_xPilotHX7cle/usr/bin/xpilot
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
[New Thread 0x7fffe8fff6c0 (LWP 5608)]
[New Thread 0x7fffe3fff6c0 (LWP 5609)]

Thread 1 "xpilot" received signal SIGSEGV, Segmentation fault.
0x0000555555932a08 in ma_context_get_device_info_source_callback__pulse(ma_pa_context*, ma_pa_source_info const*, int, void*) ()
(gdb) bt
#0  0x0000555555932a08 in ma_context_get_device_info_source_callback__pulse(ma_pa_context*, ma_pa_source_info const*, int, void*) ()
#1  0x00007fffe3186586 in context_get_source_info_callback (pd=pd@entry=0x55555864e0f0, command=command@entry=0, tag=tag@entry=7, t=t@entry=0x55555864e650, userdata=userdata@entry=0x555558604a80)
    at ../src/pulse/introspect.c:565
#2  0x00007fffe311fa81 in run_action (pd=0x55555864e0f0, r=0x555558720950, command=0, ts=0x55555864e650) at ../src/pulsecore/pdispatch.c:291
#3  0x00007fffe3120c8c in pa_pdispatch_run (pd=0x55555864e0f0, packet=packet@entry=0x5555586bddb0, ancil_data=ancil_data@entry=0x55555864e028, userdata=userdata@entry=0x5555586089f0)
    at ../src/pulsecore/pdispatch.c:344
#4  0x00007fffe3179ec2 in pstream_packet_callback (p=<optimized out>, packet=0x5555586bddb0, ancil_data=0x55555864e028, userdata=0x5555586089f0) at ../src/pulse/context.c:364
#5  0x00007fffe3125923 in do_read (p=p@entry=0x55555864dd90, re=re@entry=0x55555864df58) at ../src/pulsecore/pstream.c:1023
#6  0x00007fffe3126698 in do_pstream_read_write (p=0x55555864dd90) at ../src/pulsecore/pstream.c:254
#7  0x00007fffe3126a5a in srb_callback (srb=0x5555586595d0, userdata=0x55555864dd90) at ../src/pulsecore/pstream.c:296
#8  0x00007fffe312ab7a in srbchannel_rwloop (sr=0x5555586595d0) at ../src/pulsecore/srbchannel.c:190
#9  0x00007fffe318d408 in dispatch_pollfds (m=0x5555586088f0) at ../src/pulse/mainloop.c:676
#10 pa_mainloop_dispatch (m=m@entry=0x5555586088f0) at ../src/pulse/mainloop.c:917
#11 0x00007fffe318da58 in pa_mainloop_iterate (m=0x5555586088f0, block=<optimized out>, retval=0x0) at ../src/pulse/mainloop.c:948
#12 0x0000555555932670 in ma_context_get_device_info__pulse(ma_context*, ma_device_type, ma_device_id const*, ma_device_info*) ()
#13 0x0000555555933dc0 in ma_context_get_device_info ()
#14 0x000055555594dbfd in afv_native::audio::MiniAudioAudioDevice::getCompatibleOutputDevices() ()
#15 0x000055555594e857 in afv_native::audio::AudioDevice::getCompatibleOutputDevicesForApi(unsigned int) ()
#16 0x0000555555894104 in xpilot::AudioForVatsim::configureAudioDevices() ()
#17 0x0000555555896fdf in xpilot::AudioForVatsim::AudioForVatsim(QObject*) ()
#18 0x000055555588c698 in xpilot::Main(int, char**) ()
#19 0x00007ffff6f6a510 in __libc_start_call_main (main=main@entry=0x555555859af0 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd8f8) at ../sysdeps/nptl/libc_start_call_main.h:58
#20 0x00007ffff6f6a5c9 in __libc_start_main_impl (main=0x555555859af0 <main>, argc=1, argv=0x7fffffffd8f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd8e8)
    at ../csu/libc-start.c:381
#21 0x0000555555861cee in _start ()
(gdb) 
``
anthraxn8b commented 1 year ago

Using QT_QPA_PLATFORM=wayland:


$ QT_QPA_PLATFORM=wayland gdb ./xPilot.AppImage 
GNU gdb (GDB) Fedora Linux 12.1-6.fc37
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./xPilot.AppImage...

This GDB supports auto-downloading debuginfo from the following URLs:
https://debuginfod.fedoraproject.org/ 
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
(No debugging symbols found in ./xPilot.AppImage)
(gdb) run
Starting program: /games/flightSimulation/xPlane/tools/xPilot/xPilot.AppImage 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[Detaching after fork from child process 5859]
process 5856 is executing new program: /tmp/.mount_xPilotJfogUl/AppRun
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
process 5856 is executing new program: /tmp/.mount_xPilotJfogUl/usr/bin/xpilot
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.

Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
Downloading 0.00 MB source file /usr/src/debug/glibc-2.36-8.fc37.x86_64/nptl/pthread_kill.c
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;                                                                                                                        
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff6fcfee3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff6f7faa6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff6f697fc in __GI_abort () at abort.c:79
#4  0x000055555581c1c3 in qAbort() ()
#5  0x000055555581c5be in QMessageLogger::fatal(char const*, ...) const ()
#6  0x000055555584559e in init_platform(QString const&, QString const&, QString const&, int&, char**) [clone .cold] ()
#7  0x0000555556e05042 in QGuiApplicationPrivate::createPlatformIntegration() ()
#8  0x0000555556e058f8 in QGuiApplicationPrivate::createEventDispatcher() ()
#9  0x0000555555c61145 in QCoreApplicationPrivate::init() ()
#10 0x0000555556e0c0e7 in QGuiApplicationPrivate::init() ()
#11 0x0000555556e0dd5d in QGuiApplication::QGuiApplication(int&, char**, int) ()
#12 0x000055555588c395 in xpilot::Main(int, char**) ()
#13 0x00007ffff6f6a510 in __libc_start_call_main (main=main@entry=0x555555859af0 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd8d8) at ../sysdeps/nptl/libc_start_call_main.h:58
#14 0x00007ffff6f6a5c9 in __libc_start_main_impl (main=0x555555859af0 <main>, argc=1, argv=0x7fffffffd8d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd8c8)
    at ../csu/libc-start.c:381
#15 0x0000555555861cee in _start ()
(gdb) ```
anthraxn8b commented 1 year ago

QT is installed:

$ sudo dnf install qt5-qtwayland
Letzte Prüfung auf abgelaufene Metadaten: vor 0:00:07 am Do 12 Jan 2023 11:03:50 CET.
Das Paket qt5-qtwayland-5.15.7-1.fc37.x86_64 ist bereits installiert.
Abhängigkeiten sind aufgelöst.
Nichts zu tun.
Fertig!

$ sudo dnf install qt6-qtwayland
Letzte Prüfung auf abgelaufene Metadaten: vor 0:00:13 am Do 12 Jan 2023 11:03:50 CET.
Das Paket qt6-qtwayland-6.4.1-1.fc37.x86_64 ist bereits installiert.
Abhängigkeiten sind aufgelöst.
Nichts zu tun.
Fertig!
anthraxn8b commented 1 year ago

@justinshannon, maybe this is interesting: qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3" since plugins are disabled in static builds

$ export QT_DEBUG_PLUGINS=1
$ ./xPilot.AppImage 
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3" since plugins are disabled in static builds
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
qt.core.library: "Xcursor" loaded library
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QIconEngineFactoryInterface" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QImageIOHandlerFactoryInterface" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
Speicherzugriffsfehler (Speicherabzug geschrieben)
anthraxn8b commented 1 year ago

@mloftis, I have no clue what is happening here.

$ QT_QPA_PLATFORM=xcb gdb ./xPilot.AppImage 
GNU gdb (GDB) Fedora Linux 12.1-6.fc37
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./xPilot.AppImage...

This GDB supports auto-downloading debuginfo from the following URLs:
https://debuginfod.fedoraproject.org/ 
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
(No debugging symbols found in ./xPilot.AppImage)
(gdb) run
Starting program: /games/flightSimulation/xPlane/tools/xPilot/xPilot.AppImage 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[Detaching after fork from child process 7580]
process 7577 is executing new program: /tmp/.mount_xPilot5egRHD/AppRun
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
process 7577 is executing new program: /tmp/.mount_xPilot5egRHD/usr/bin/xpilot
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3" since plugins are disabled in static builds
[New Thread 0x7fffe8fff6c0 (LWP 7586)]
qt.core.library: "Xcursor" loaded library
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QIconEngineFactoryInterface" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.QImageIOHandlerFactoryInterface" since plugins are disabled in static builds
[New Thread 0x7fffe3fff6c0 (LWP 7587)]
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds
qt.core.plugin.factoryloader: ignoring "org.qt-project.Qt.NetworkAccessBackendFactory" since plugins are disabled in static builds

Thread 1 "xpilot" received signal SIGSEGV, Segmentation fault.
0x0000555555932a08 in ma_context_get_device_info_source_callback__pulse(ma_pa_context*, ma_pa_source_info const*, int, void*) ()
(gdb) bt
#0  0x0000555555932a08 in ma_context_get_device_info_source_callback__pulse(ma_pa_context*, ma_pa_source_info const*, int, void*) ()
#1  0x00007fffe3186586 in context_get_source_info_callback (pd=pd@entry=0x555558656420, command=command@entry=0, tag=tag@entry=7, t=t@entry=0x55555864db40, userdata=userdata@entry=0x555558656290)
    at ../src/pulse/introspect.c:565
#2  0x00007fffe311fa81 in run_action (pd=0x555558656420, r=0x55555864e120, command=0, ts=0x55555864db40) at ../src/pulsecore/pdispatch.c:291
#3  0x00007fffe3120c8c in pa_pdispatch_run (pd=0x555558656420, packet=packet@entry=0x5555586bcc70, ancil_data=ancil_data@entry=0x555558604248, userdata=userdata@entry=0x55555860a740)
    at ../src/pulsecore/pdispatch.c:344
#4  0x00007fffe3179ec2 in pstream_packet_callback (p=<optimized out>, packet=0x5555586bcc70, ancil_data=0x555558604248, userdata=0x55555860a740) at ../src/pulse/context.c:364
#5  0x00007fffe3125923 in do_read (p=p@entry=0x555558603fb0, re=re@entry=0x555558604178) at ../src/pulsecore/pstream.c:1023
#6  0x00007fffe3126698 in do_pstream_read_write (p=0x555558603fb0) at ../src/pulsecore/pstream.c:254
#7  0x00007fffe3126a5a in srb_callback (srb=0x555558587d50, userdata=0x555558603fb0) at ../src/pulsecore/pstream.c:296
#8  0x00007fffe312ab7a in srbchannel_rwloop (sr=0x555558587d50) at ../src/pulsecore/srbchannel.c:190
#9  0x00007fffe318d408 in dispatch_pollfds (m=0x555558608b70) at ../src/pulse/mainloop.c:676
#10 pa_mainloop_dispatch (m=m@entry=0x555558608b70) at ../src/pulse/mainloop.c:917
#11 0x00007fffe318da58 in pa_mainloop_iterate (m=0x555558608b70, block=<optimized out>, retval=0x0) at ../src/pulse/mainloop.c:948
#12 0x0000555555932670 in ma_context_get_device_info__pulse(ma_context*, ma_device_type, ma_device_id const*, ma_device_info*) ()
#13 0x0000555555933dc0 in ma_context_get_device_info ()
#14 0x000055555594dbfd in afv_native::audio::MiniAudioAudioDevice::getCompatibleOutputDevices() ()
#15 0x000055555594e857 in afv_native::audio::AudioDevice::getCompatibleOutputDevicesForApi(unsigned int) ()
#16 0x0000555555894104 in xpilot::AudioForVatsim::configureAudioDevices() ()
#17 0x0000555555896fdf in xpilot::AudioForVatsim::AudioForVatsim(QObject*) ()
#18 0x000055555588c698 in xpilot::Main(int, char**) ()
#19 0x00007ffff6f6a510 in __libc_start_call_main (main=main@entry=0x555555859af0 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd8c8) at ../sysdeps/nptl/libc_start_call_main.h:58
#20 0x00007ffff6f6a5c9 in __libc_start_main_impl (main=0x555555859af0 <main>, argc=1, argv=0x7fffffffd8c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd8b8)
    at ../csu/libc-start.c:381
#21 0x0000555555861cee in _start ()
(gdb) 
jonaseberle commented 1 year ago

I believe the output about wayland is distracting. The crash happens in ma_context_get_device_info_source_callback__pulse() just like in https://github.com/xpilot-project/xpilot/issues/145

anthraxn8b commented 1 year ago

After some tests (running xPilot via sudo,...) now xPilot just outputs nothing on the console, opens no window, just exits directly (with exit code 0)...

justinshannon commented 1 year ago

@anthraxn8b I found a typo in the audio code... can you give this version a try? https://xpilot-project.org/files/xPilot-2.0.0-beta.42-Linux.zip

anthraxn8b commented 1 year ago

@justinshannon WORKS!!! THX!!!

justinshannon commented 1 year ago

Thanks... this fix will be in the next release.