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

Vestige module is not listed despite it builds successfully #2628

Closed
ClockGen opened this issue Mar 2, 2016 · 20 comments
Closed

Vestige module is not listed despite it builds successfully #2628

ClockGen opened this issue Mar 2, 2016 · 20 comments
Labels

Comments

@ClockGen
Copy link

ClockGen commented Mar 2, 2016

I'm using arch linux x64. I'm trying to get lmms version with vestige module, but it doesn't show up.
I have all deps installed, when running cmake, it states that both vst instrument and vst effect are ok, also I see that everything related to vst compiled and linked successfully, but when I'm opening lmms itself, vestige module is not listed on the list. Compiling with gcc 5.3.0.

Edit: @tresf from conversation on #lmms after adding qDebug()

"Cannot load library /home/tricobalt/lmms/build/plugins/libvestige.so: (../libvstbase.so: cannot open shared object file: No such file or directory)"
"Cannot load library /home/tricobalt/lmms/build/plugins/libvsteffect.so: (../libvstbase.so: cannot open shared object file: No such file or directory)"
@tresf
Copy link
Member

tresf commented Mar 2, 2016

@Bukarus it looks like we're never displaying library load errors from our plugins directory.

For troubleshooting, can you please add this to PluginFactory.cpp#147

PluginFactory.cpp#L147

qWarning() << library->errorString();

This will tell us what the error message is while loading. For example, if I make a fake plugin:

touch plugins/libFake.so

Then I get the following output in console:

"Cannot load library /home/foo/lmms/build/plugins/libFake.so: 
(/home/foo/lmms/build/plugins/libFake.so: invalid ELF header)"

FYI - Not sure how much success you'll have once this bug is closed due to #1875, but we should be able to fix the linking problem. 👍

@tresf
Copy link
Member

tresf commented Mar 2, 2016

@lukas-w should we add some debug info to the console for cases like this? It seems quite strange that we offer no output when a lib fails to load, especially libs that are placed into the /plugins directory.

@tresf tresf added the bug label Mar 2, 2016
@tresf
Copy link
Member

tresf commented Mar 2, 2016

Ok... perhaps new cmake CMP0015 behavior going on here...

What cmake version are you on?

@Bukarus can you add this to /CMakeLists.txt#L11 and see if it fixes it?

IF(COMMAND CMAKE_POLICY)
    CMAKE_POLICY(SET CMP0005 NEW)
    CMAKE_POLICY(SET CMP0003 NEW)
    IF (CMAKE_MAJOR_VERSION GREATER 2)
+       CMAKE_POLICY(SET CMP0015 OLD)
        CMAKE_POLICY(SET CMP0026 OLD)
    ENDIF()
ENDIF(COMMAND CMAKE_POLICY)

@ClockGen
Copy link
Author

ClockGen commented Mar 2, 2016

Putting libvestige.so to build's parent directory (root of the entire lmms folder) makes vestige appear on the list. Compiling with modified cmakelists (and clean lmms repo clone) didn't make any difference, though.

@tresf
Copy link
Member

tresf commented Mar 2, 2016

Ok... I think this is a duplicate of #2572.

The relevant portion is here:

... [foo.so] is compiled as a module and not as a shared library (maybe a change in cmake cause this - cmake 3.4.1 ...).

The solution would be similar to pulls/#2758, scroll down to the CMakeLists.txt portion.

If this is correct, we'll need to fix it for plugins/vestige/CMakeLists.txt as well as plugins/VstEffect/CMakeLists.txt too.

If you can please test this out and get back to us, we can have a patch submitted right away.

@liushuyu
Copy link
Member

liushuyu commented Mar 3, 2016

The solution would be similar to pulls/#2758, scroll down to the CMakeLists.txt portion.

Yes, I also uses Arch Linux x86_64 version, and this surely worked for me.

@tresf
Copy link
Member

tresf commented Mar 3, 2016

@liushuyu can you please fork and pull request this change or post the diff so that one of us can implement it? I assume #1875 is still broken afterward, right?

@ClockGen
Copy link
Author

ClockGen commented Mar 3, 2016

@tresf could you give me instructions how to fix vestige and vsteffects cmakefiles.txt, so I could check if #1875 still happens?

@tresf
Copy link
Member

tresf commented Mar 3, 2016

@tresf could you give me instructions how to fix vestige and vsteffects cmakefiles.txt, so I could check if #1875 still happens?

I was hoping @liushuyu would do that. I don't have a machine ready to test the code on, wherease @liushuyu apparently does. 👍

@tresf
Copy link
Member

tresf commented Mar 3, 2016

@tresf could you give me instructions how to fix vestige and vsteffects cmakefiles.txt, so I could check if #1875 still happens?

If I were to try, I'd start by adding this line to the plugins/vestige/CMakeLists.txt file. 👍

If that fixes the listing, I'd repeat for the VstEffects, respectively.

@lukas-w
Copy link
Member

lukas-w commented Mar 3, 2016

@lukas-w should we add some debug info to the console for cases like this?

Yes! It'd be helpful to have an output in the GUI as well but that's an ongoing discussion iirc (about how to do this while keeping engine and gui decoupled).

@tresf
Copy link
Member

tresf commented Mar 3, 2016

Yes! It'd be helpful to have a output in the GUI as well but that's an ongoing discussion iirc (about how to do this while keeping engine and gui decoupled).

They're being collected alright, not sure how best to log them (#1945, #1525, @Wallacoloo), nor where they're going #1524...

@liushuyu
Copy link
Member

liushuyu commented Mar 3, 2016

I was hoping @liushuyu would do that. I don't have a machine ready to test the code on, wherease @liushuyu apparently does.

First, yes you are right. 😀
so how to fix?
Just take a look at #2578, I found the same solution can be applied to Vestige compilation ('Linking', more precisely).
What's more, I even tried to change the link method to 'SHARED' of all the plugins, and expect a crash. But to my 'surprise', LMMS still worked like a charm. XD

So just change the link method of Vestige from "MODULE" to "SHARED" will work ( I swear...)

@liushuyu
Copy link
Member

liushuyu commented Mar 4, 2016

@liushuyu can you please fork and pull request this change or post the diff so that one of us can implement it? I assume #1875 is still broken afterward, right?

Yes, #1875 still exists... It takes forever to load the VST plugins under Arch Linux 64-bit (Other platforms have not tested, and I am afraid this could likely to happen on many 64-bit Linux systems) . 🌝

@tresf
Copy link
Member

tresf commented Mar 4, 2016

A Pull Request would be fantastic from someone who's already working on this code (including both vestige and VstEffects confirmed on a platform exhibiting the issues. If not, we'll get to it... eventually.

liushuyu pushed a commit to liushuyu/lmms that referenced this issue Mar 4, 2016
@lukas-w lukas-w changed the title Vestige module is not listed despite it builds successfully Vestige module is not listed despite it builds successfully Mar 4, 2016
@tresf
Copy link
Member

tresf commented Mar 4, 2016

@lukas-w your auto-assign stuff, please turn it off. 👍 😄

@tresf tresf removed their assignment Mar 4, 2016
liushuyu pushed a commit to liushuyu/lmms that referenced this issue Mar 4, 2016
liushuyu pushed a commit to liushuyu/lmms that referenced this issue Mar 4, 2016
@tresf
Copy link
Member

tresf commented Mar 4, 2016

@Bukarus, fixed. Please issue a git pull and you'll have the fix implemented.

@liushuyu much obliged. 🌝

@lukas-w
Copy link
Member

lukas-w commented Mar 5, 2016

your auto-assign stuff, please turn it off.

Is it still doing that? I'll try, but I'll probably have to reach out to support… Should be turned off now.

@tresf
Copy link
Member

tresf commented Mar 5, 2016

Is this "reviewable" crane/weird purple bird looking thing your doing as well? #2632 (comment) 😆 Killing off github access should do it. There should be a way un-trust the service.

@lukas-w
Copy link
Member

lukas-w commented Mar 5, 2016

No, it isn't. Promise 🙌

liushuyu pushed a commit to liushuyu/lmms that referenced this issue Mar 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants