SceneSwitcher icon indicating copy to clipboard operation
SceneSwitcher copied to clipboard

QT 6 error after OBS update

Open Tomcatt opened this issue 1 year ago • 5 comments

Describe the bug I have QT6 error from the OBS log file. But my version of QT is 5.15.12.

To Reproduce Steps to reproduce the behavior:

  1. Start Linux
  2. Open OBS
  3. Look for Advance Scene Switcher
  4. Go to the log file to see the error

Expected behavior I was looking for the window to open once I use the tools pull down menu then select A.S.S. plug-in before I stream

Logs 20:52:52.563: --------------------------------- 20:52:52.707: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher-lib.so->/usr//lib/obs-plugins/advanced-scene-switcher-lib.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:52.707: 20:52:52.846: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher-lib.so->/usr//lib/obs-plugins/advanced-scene-switcher-lib.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:52.846: 20:52:52.846: Module '/usr//lib/obs-plugins/advanced-scene-switcher-lib.so' not loaded 20:52:52.988: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher.so->/usr//lib/obs-plugins/advanced-scene-switcher.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so.1: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:52.988: 20:52:53.128: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher.so->/usr//lib/obs-plugins/advanced-scene-switcher.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so.1: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:53.128: 20:52:53.128: Module '/usr//lib/obs-plugins/advanced-scene-switcher.so' not loaded

Version information

  • OS: EndeavourOS Arch Linux
  • OBS Version obs-studio-browser 30.0.2-6
  • Plugin Version 1.24.2-1

Additional context I can fix some errors on my own but coding isn't my thing.

Tomcatt avatar Feb 22 '24 12:02 Tomcatt

Unfortunately, the plugin only supports Qt6 as OBS switched to Qt6 a while ago.

I am not really familiar with Arch Linux so forgive me if I am missing something, but can't you just install this package, which will take care of installing all of the required dependencies? https://aur.archlinux.org/packages/obs-advanced-scene-switcher

Alternatively, I can also recommend using flatpak OBS in combination with the flatpak version of the Advanced Scene Switcher. (https://github.com/flathub/com.obsproject.Studio.Plugin.SceneSwitcher)

Or is there a particular reason you need to stick with Qt5?

WarmUpTill avatar Feb 22 '24 19:02 WarmUpTill

No, I didn't know QT6 was ready for use. I guess I should figure out how to upgrade to QT6.

I'm sure that's where I paru pulled OBS.A.S.S. from. My last resort will be to use the flapak or snap.

Tomcatt avatar Feb 22 '24 23:02 Tomcatt

Question, where are the macros stored? I could at least pull in my macros if I know where A.S.S. stores the data.

Tomcatt avatar Feb 23 '24 16:02 Tomcatt

The settings are stored as part of the OBS scene collection data.

WarmUpTill avatar Feb 23 '24 18:02 WarmUpTill

I was having the same issue, but managed to fix it. Will document everything here in case it's helpful.

Thoughts:

Looking at the diff between releases(https://github.com/WarmUpTill/SceneSwitcher/compare/1.24.1...1.24.2), nothing sticks out to me besides src/advanced-scene-switcher.cpp now having a #include <QTextStream> declaration, and using it as part of the function that backs up settings.

I only skimmed the diff, so don't take my word for it.

This makes me think that part of the qt6 libs weren't linked properly at some point, causing a build issue with newer versions of the plugin? It's been a long time since I've touched any C++ though.

Solution:

  1. Update + reinstall any qt6 packages on my system, just to be safe. 1.1 qt6-base and any dependencies of tessaract should be all that are explicitly required. 1.2 I did this with a one-liner, paru -Qg qt6 | cut -d " " -f 2 | paru -Syu -
  2. Export a copy of settings (native function of the plugin).
  3. Completely remove all traces of old builds and freshly reinstall the plugin, forcing a rebuild. 3.1 paru -Rs obs-advanced-scene-switcher 3.2 I also deleted everything cached for this package, for me this was in ~/.cache/paru/clone/obs-advanced-scene-switcher 3.3 paru -Syu obs-advanced-scene-switcher --rebuild
  4. Check logs as needed, import settings, test functionality, and confirm working again.

Some of these steps likely aren't 100% necessary (like deleting cached builds), but I wanted to cover all my bases.

b02860de585071a2 avatar Mar 10 '24 04:03 b02860de585071a2