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

[BUG] Crash due to conflict between libcef and gtk using the glib event loop on linux #219

Closed
Gol-D-Ace opened this issue Apr 12, 2020 · 112 comments

Comments

@Gol-D-Ace
Copy link
Member

Gol-D-Ace commented Apr 12, 2020

Platform

Operating system and version: Any Linux distro using a desktop environment that makes use of GTK like for example the standard flavor of Ubuntu
OBS Studio version: 25.0.4 (any that include the browser source and therefore libcef)

Expected Behavior

Not have the file dialog / OBS hang or crash when using a file dialog to choose a file for example an image on the image source.

Current Behavior

The file dialog will hang or crash including OBS and makes it impossible to select a file.

Steps to Reproduce

  1. Compile OBS Studio with the browser source or install a binary package that includes the browser source.
  2. Be on a distro that uses GTK for the desktop environment (file dialog) like for example the standard Ubuntu flavor.
  3. Open a file choose dialog. Add for example an image source and click browse.
  4. Try to select a file. It may work on the first try. Try a second or third time in that case or leave the dialog open for a bit.
  5. The dialog and OBS will freeze and eventually crash.

Additional information

Followup issue for obsproject/obs-studio#2644 to get more exposure

This issue seems to get caused by GTK and libcef both using the glib event loop and causing a conflict. Using for example the QT dialogs (none native) will work around the issue.

Unfortunately this work around reduces functionality on GTK and might even break OBS installs entirely on distros where the qt5 configuration tool isn't available because the deb package will depend on it.

@Fenrirthviti
Copy link
Member

Fenrirthviti commented Apr 12, 2020

Just as a note here, we are rolling back the deployment of the browser source plugin on Linux through the official PPA until this can be resolved. If anyone has experienced this issue and has ideas on how to properly fix it, please let us know.

@Gol-D-Ace Gol-D-Ace changed the title [BUG] Crash due to conflict between libcef and gtk+ using the dlib event loop on linux [BUG] Crash due to conflict between libcef and gtk+ using the glib event loop on linux Apr 12, 2020
@Gol-D-Ace Gol-D-Ace changed the title [BUG] Crash due to conflict between libcef and gtk+ using the glib event loop on linux [BUG] Crash due to conflict between libcef and gtk using the glib event loop on linux Apr 12, 2020
@HarleyLorenzo
Copy link

Would it be possible to always force a non-native file picker (like with the fix for the font and color picker crashes) or does that not work on some distros?

@Gol-D-Ace
Copy link
Member Author

Unfortunately the none native file dialog (Qt) lacks functionality.
Mainly network but probably more.

@kkartaltepe
Copy link
Contributor

Original issue for reference #141

The proposed solution there doesnt affect native dialogs which in gtk land will likely all use g(tk)lib for messaging and threading support.

@ebassi
Copy link

ebassi commented Apr 21, 2020

Hi, GTK developer here.

Is there any chance to have a backtrace of the crash to analyze?

@kkartaltepe
Copy link
Contributor

From the original issue for reference:
https://pastebin.com/4wnggfUQ

@Gol-D-Ace
Copy link
Member Author

@ebassi
Thank you for contacting us.

This is the backtrace on Ubuntu 19.10

Thread 1 "obs" received signal SIGTRAP, Trace/breakpoint trap.
0x00007fff9ba16ea3 in ?? () from /usr//lib/obs-plugins/libcef.so
(gdb) bt full
#0  0x00007fff9ba16ea3 in  () at /usr//lib/obs-plugins/libcef.so
#1  0x00007fff9ba1a157 in  () at /usr//lib/obs-plugins/libcef.so
#2  0x00007fff9ba1a7ea in  () at /usr//lib/obs-plugins/libcef.so
#3  0x00007fff9b9f00bd in  () at /usr//lib/obs-plugins/libcef.so
#4  0x00007fff9b9ff44c in  () at /usr//lib/obs-plugins/libcef.so
#5  0x00007fff9b9ff899 in  () at /usr//lib/obs-plugins/libcef.so
#6  0x00007fff9b9c05ff in  () at /usr//lib/obs-plugins/libcef.so
#7  0x00007ffff409c8bd in g_main_context_dispatch ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ffff409cb40 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007ffff409ce33 in g_main_loop_run ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fffeacab357 in gtk_dialog_run ()
    at /lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007fffeb223ec9 in  ()
    at /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk3.so
#12 0x00007ffff62f0f31 in QDialog::exec() ()
    at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff63042b5 in QFileDialog::getOpenFileUrl(QWidget*, QString const&, QUrl const&, QString const&, QString*, QFlags<QFileDialog::Option>, QStringList const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff63043a4 in QFileDialog::getOpenFileName(QWidget*, QString const&, QString const&, QString const&, QString*, QFlags<QFileDialog::Option>) ()

@kkartaltepe
Copy link
Contributor

Iirc the original stack was from a release with debug symbols. If you attempt to run debug chromium you will die on asserts checking that messages are appropriately ordered (obviously when the message is not coming from chromium that check is going to have a bad time)

@ebassi
Copy link

ebassi commented Apr 21, 2020

@Gol-D-Ace Thanks, much appreciated.

There are still missing debugging symbols for the libcef shared library, but since you're using gtk_dialog_run() I'd go out on a limb and say there's some re-entrancy issue due to the nested main loop.

@Gol-D-Ace
Copy link
Member Author

Tried it again and now I'm getting this.

Thread 1 "obs" received signal SIGTRAP, Trace/breakpoint trap.
0x00007fff9ba16ea3 in operator() ()
    at ../../base/threading/sequenced_task_runner_handle.cc:26
26	../../base/threading/sequenced_task_runner_handle.cc: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  0x00007fff9ba16ea3 in operator() ()
    at ../../base/threading/sequenced_task_runner_handle.cc:26
#1  0x00007fff9ba16ea3 in Get() ()
    at ../../base/threading/sequenced_task_runner_handle.cc:26
#2  0x00007fff9ba1a157 in GetTaskRunner () at ../../base/timer/timer.cc:189
#3  0x00007fff9ba1a157 in PostNewScheduledTask() ()
    at ../../base/timer/timer.cc:176
#4  0x00007fff9ba1a7ea in RunUserTask() () at ../../base/timer/timer.cc:296
#5  0x00007fff9b9f00bd in Run () at ../../base/callback.h:97
#6  0x00007fff9b9f00bd in RunTask() ()
    at ../../base/task/common/task_annotator.cc:114
#7  0x00007fff9b9ff44c in DoWorkImpl() ()
    at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:363
#8  0x00007fff9b9ff899 in non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ()
    at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:260
#9  0x00007fff9b9c05ff in HandleDispatch ()
    at ../../base/message_loop/message_pump_glib.cc:263
#10 0x00007fff9b9c05ff in WorkSourceDispatch() ()
    at ../../base/message_loop/message_pump_glib.cc:109
#11 0x00007ffff409b8bd in g_main_context_dispatch ()
--Type <RET> for more, q to quit, c to continue without paging--c
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff409bb40 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff409be33 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007fffeacae357 in gtk_dialog_run () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#15 0x00007fffeb226ec9 in  () at /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk3.so
#16 0x00007ffff62eff31 in QDialog::exec() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff63032b5 in QFileDialog::getOpenFileUrl(QWidget*, QString const&, QUrl const&, QString const&, QString*, QFlags<QFileDialog::Option>, QStringList const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff63033a4 in QFileDialog::getOpenFileName(QWidget*, QString const&, QString const&, QString const&, QString*, QFlags<QFileDialog::Option>) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x0000555555704a9f in  ()
#20 0x000055555570628b in  ()
#21 0x00007ffff56293f8 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff61e1236 in QAbstractButton::clicked(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff61e145e in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff61e28a3 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff61e2a65 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff612f04e in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff60eca86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff60f6053 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff55fda2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff60f5157 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff614b14d in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff614dfdc in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff60eca86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff60f5e00 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff55fda2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#36 0x00007ffff59e5d73 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#37 0x00007ffff59e75fb in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#38 0x00007ffff59c126b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007fffec08d657 in  () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#40 0x00007ffff55fc5cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x00007ffff5604336 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#42 0x00005555555c9478 in main ()
(gdb) 

@kkartaltepe
Copy link
Contributor

Ah that is similar to the debug build crashes that check sequence but instead this looks like its also in release. https://chromium.googlesource.com/chromium/src/+/refs/tags/75.0.3770.156/base/threading/sequenced_task_runner_handle.cc#26

@ebassi
Copy link

ebassi commented Apr 21, 2020

I do hope the task runner is not causing the source dispatch to happen in a different thread than the one that is spinning the GLib main loop of gtk_dialog_run(), because that would be very bad indeed.

@ConorOG
Copy link

ConorOG commented May 21, 2020

I do hope the task runner is not causing the source dispatch to happen in a different thread than the one that is spinning the GLib main loop of gtk_dialog_run(), because that would be very bad indeed.

@ebassi
That would seem like a fundamental design issue? But this plugin has been working before?

@Fenrirthviti
Copy link
Member

This plugin has not been working before, this was our first attempt at releasing on Linux. There is another similar browser source plugin that was developed by a third party, but is no longer maintained.

@leotrs
Copy link

leotrs commented Jun 19, 2020

Hello, has there been any progress here? It is a very unfortunate situation to not have the browser plugin available.

@ccoenen
Copy link

ccoenen commented Jun 19, 2020

I usually don't +1 issues, but it is very silent here. I'm not asking for an ETA or something, but I would also like to know it someone is looking into this, or if someone has a workaround in the meantime.

@davidfurey
Copy link

@arjenpdevries
Copy link

Another workaround: obsproject/obs-studio#2644 (comment)

@dodgepong
Copy link
Member

Unfortunately this is something we haven't had the bandwidth to take a closer look at yet. If anyone else out there wants to take a crack at it, then please do, by all means.

@fabianbur
Copy link

I am a user of free software and Linux in particular. I always use that particular option and it is the reason to have a Windows partition on my laptop. When the official support for the plugin in Linux was announced, I was very happy, I thought that the developers were finally giving it the importance that corresponds to Linux users, then my disappointment was great and with the last message more. I am not an expert programmer in this particular problem, if that were the case I would have fixed it myself. How many developers outside the OBS project are willing to give their time to fix this bug? Until now nobody and I fear that this will continue. Without a real interest from the OBS team in fixing this bug, without a developer assigned, this serious bug will remain open for months or years. How unfortunate!

@dodgepong
Copy link
Member

There are many talented developers in the Linux community. Unfortunately this is a case where we simply don't have enough people to look at everything. Practically speaking, OBS only has one full-time developer. We welcome contribution from the community. Be the change you want to see in the world.

@fabianbur
Copy link

It is definitely a matter of priorities...

@GeorgesStavracas
Copy link
Member

Hm, does that mean OBS Studio doesn't need to disable GLib's mainloop anymore?

@kkartaltepe
Copy link
Contributor

This should be all you need to revert the dialogs and use the glib message pump. It didnt crash for me forcing the gtk file selector and leaving it open for a while (fingers crossed)

diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp
index a415b3f4d..bfa91546e 100644
--- a/UI/obs-app.cpp
+++ b/UI/obs-app.cpp
@@ -1940,10 +1940,6 @@ static int run_program(fstream &logFile, int argc, char *argv[])
 		Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
 #endif
 
-#if !defined(_WIN32) && !defined(__APPLE__) && BROWSER_AVAILABLE
-	setenv("QT_NO_GLIB", "1", true);
-#endif
-
 	QCoreApplication::addLibraryPath(".");
 
 #if __APPLE__
diff --git a/UI/qt-wrappers.cpp b/UI/qt-wrappers.cpp
index 76c532043..13b8d4613 100644
--- a/UI/qt-wrappers.cpp
+++ b/UI/qt-wrappers.cpp
@@ -351,61 +351,32 @@ void setThemeID(QWidget *widget, const QString &themeID)
 
 QString SelectDirectory(QWidget *parent, QString title, QString path)
 {
-#if defined(BROWSER_AVAILABLE) && defined(__linux__)
-	QString dir = QFileDialog::getExistingDirectory(
-		parent, title, path,
-		QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks |
-			QFileDialog::DontUseNativeDialog);
-#else
 	QString dir = QFileDialog::getExistingDirectory(
 		parent, title, path,
 		QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
-#endif
-
 	return dir;
 }
 
 QString SaveFile(QWidget *parent, QString title, QString path,
 		 QString extensions)
 {
-#if defined(BROWSER_AVAILABLE) && defined(__linux__)
-	QString file = QFileDialog::getSaveFileName(
-		parent, title, path, extensions, nullptr,
-		QFileDialog::DontUseNativeDialog);
-#else
 	QString file =
 		QFileDialog::getSaveFileName(parent, title, path, extensions);
-#endif
-
 	return file;
 }
 
 QString OpenFile(QWidget *parent, QString title, QString path,
 		 QString extensions)
 {
-#if defined(BROWSER_AVAILABLE) && defined(__linux__)
-	QString file = QFileDialog::getOpenFileName(
-		parent, title, path, extensions, nullptr,
-		QFileDialog::DontUseNativeDialog);
-#else
 	QString file =
 		QFileDialog::getOpenFileName(parent, title, path, extensions);
-#endif
-
 	return file;
 }
 
 QStringList OpenFiles(QWidget *parent, QString title, QString path,
 		      QString extensions)
 {
-#if defined(BROWSER_AVAILABLE) && defined(__linux__)
-	QStringList files = QFileDialog::getOpenFileNames(
-		parent, title, path, extensions, nullptr,
-		QFileDialog::DontUseNativeDialog);
-#else
 	QStringList files =
 		QFileDialog::getOpenFileNames(parent, title, path, extensions);
-#endif
-
 	return files;
 }

@Gol-D-Ace
Copy link
Member Author

Gol-D-Ace commented Jan 28, 2021

I think I did read this wrong.
Edit: Can't cause any crashing in a short test with the above patch.

@Gol-D-Ace
Copy link
Member Author

Considering that this issue doesn't seem to
be happening anymore with CEF 4280 should the issue be closed?

@ogmkp
Copy link

ogmkp commented Jan 29, 2021

Give us more time to test with CEF 4280 as it was still indicated 3770 in the official building guide for 26.1.1 published 23 days ago and personaly, I need to push production tests to approve.

@Gol-D-Ace
Copy link
Member Author

Sure.
The wiki just got updated btw. with links to a newer CEF build.

@Gol-D-Ace
Copy link
Member Author

I see that @WizardCM did rewrite the build instructions.
Thanks for that.

@joan31
Copy link

joan31 commented Feb 2, 2021

Hi,
Thanks for your work.
For now the only solution to run OBS with this feature, is to make the package following the wiki ?
Or it is better to wait a new version of OBS and install it directly from repo with this fix included ?

@Gol-D-Ace
Copy link
Member Author

@joan31 For Ubuntu you could try out the unstable PPA.
The issue is bypassed though even in the stable PPA.

Other repos / distributions will need to update the used CEF version.

You can either wait until they do that or build.obs including the browser source yourself.

@joan31
Copy link

joan31 commented Feb 3, 2021

@Gol-D-Ace

I'm on Arch Linux. I can build muy own OBS.
But I requested to the community packages to update OBS with this fix

https://bugs.archlinux.org/task/69516

@joan31
Copy link

joan31 commented Feb 4, 2021

FYI on AUR https://aur.archlinux.org/packages/obs-studio-git/ it is ok with the good CEF version 4280.
I tested it and it work.

@ogmkp
Copy link

ogmkp commented Feb 5, 2021

Tested and approved. Everything works well after several hours on Debian 10.
However, the sound still does not come out through an internal and separate audio source from LIBOBS but to pulseaudio from obs-browser-page thread and this is a problem.
No browser audio source in the mixer panel.

There is a regression from this PR who enhanced this ability to control volume ?
#11

@WizardCM
Copy link
Member

WizardCM commented Feb 5, 2021

No browser audio source in the mixer panel.

@maxdrfr Make sure to enable "Control Audio via OBS" in the Browser Source's properties.

@ogmkp
Copy link

ogmkp commented Feb 5, 2021

No browser audio source in the mixer panel.

@maxdrfr Make sure to enable "Control Audio via OBS" in the Browser Source's properties.

Thank you, my fault.

@hollunder
Copy link

Is this actually a plugin that can be built on its own like it is the case with the two outdated external ones? If so that would at least make packaging a bit easier. At least on Arch CEF is not in any official repository, probably for a good reason. As a plugin it could live in the AUR and could be used with OBS from the official binary repos.

@RytoEX
Copy link
Member

RytoEX commented May 16, 2021

Is this actually a plugin that can be built on its own like it is the case with the two outdated external ones? If so that would at least make packaging a bit easier. At least on Arch CEF is not in any official repository, probably for a good reason. As a plugin it could live in the AUR and could be used with OBS from the official binary repos.

We no longer support building obs-browser separately from obs-studio because there are features in obs-studio that rely on building the application with obs-browser enabled. We recommend building obs-studio with obs-browser enabled, per the build instructions on the obs-studio wiki.

Since the patch above was merged in obsproject/obs-studio#4155, and we're now using CEF 4280 on Linux for OBS Studio 27, we consider this Issue to be fixed. As such, I'm closing this.

@RytoEX RytoEX closed this as completed May 16, 2021
@hollunder
Copy link

Will you enable this plugin in your official builds again?
This issue is mentioned as the reason for why it is not.
See for example https://github.com/obsproject/obs-browser

@Gol-D-Ace
Copy link
Member Author

@hollunder
The plugin is already enabled in 26.1.1 Ubuntu PPA builds and will be updated in v27 to a newer version.

@WizardCM WizardCM unpinned this issue Jun 15, 2021
@eliezerlp
Copy link

Would it be helpful if a PR is submitted to update the README.md?

@Fenrirthviti
Copy link
Member

This issue was resolved already. What update are you looking to make?

@eliezerlp
Copy link

As mentioned by @hollunder:

This issue is mentioned as the reason for why it is not.
See for example https://github.com/obsproject/obs-browser

In README.md it mentions the following:
**This plugin is included by default** on official packages on Windows and macOS. While Linux is supported, the official ppa does not currently include the browser source due to a conflict with GTK.

@Fenrirthviti
Copy link
Member

Ah, yes please feel free to submit an update for that!

@HNGamingUK
Copy link

This mentions that it is fixed and the readme needs to be updated, however it's been stated here by @Gol-D-Ace "The plugin is already enabled in 26.1.1 Ubuntu PPA builds and will be updated in v27 to a newer version."

So what about other versions? In my case Fedora 34 which is running v27.0.1-2 of OBS and I don't see a "Browser Source" option.

@Gol-D-Ace
Copy link
Member Author

Hi
We don't package for Fedora so I can't give you information there.

My guess would be that like on many distributions they decided that they don't want to deal with CEF or simply don't have a CEF package available that they could build with.

@qroft
Copy link

qroft commented Dec 10, 2021

I am currently changing from Win10 to Ubuntu.
Can anyone confirm me that the browser source still is not working with the latest stable release?
At least i can not see it in my sources. Greetings everyone!

@Gol-D-Ace
Copy link
Member Author

Gol-D-Ace commented Dec 11, 2021

Hi
How did you install OBS on Ubuntu?

Only the PPA, Flatpak and Snap have the browser source available there.

Only the PPA has and the Flatpak will have the service integrations available.

Does your OBS say dfsg in the window title? If so you are using the Debian repo Version which lacks the browser source, VST and FTL

@qroft
Copy link

qroft commented Dec 11, 2021

Hi How did you install OBS on Ubuntu?

Only the PPA, Flatpak and Snap have the browser source available there.

Only the PPA has and the Flatpak will have the service integrations available.

Does your OBS say dfsg in the window title? If so you are using the Debian repo Version which lacks the browser source, VST and FTL

Thanks a lot, you are right. I had to use a workaround and installed the linuxBrowser plugin.
Thanks for your time!

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