rigon / qmmp-plugin-youtube

Plugin for Qmmp (Qt-based Multimedia Player) to search and play musics directly from YouTube.
MIT License
26 stars 5 forks source link

Make in linux mint #7

Open nitssousa opened 8 years ago

nitssousa commented 8 years ago

src/youtubewindow.cpp:30:23: fatal error: QJsonObject: No such file or directory compilation terminated. Makefile:290: recipe for target 'youtubewindow.o' failed make: *\ [youtubewindow.o] Error 1

rigon commented 8 years ago

That error happens because you don't have QJson properly installed. So, you have to install:

 sudo apt-get install libqjson0 libqjson-dev

Until today, I didn't try to build this project for a debian flavored disto, only in ArchLinux. I spent some time trying to build it but even I got stuck.

What I've done so far in Ubuntu:

After that, you have to change the youtube.pro file to link the library with python3.5m, i. e., where is -lpython3 should be changed to -lpython3.5m (Ubuntu specific thing). You also have to add -L/usr/lib/qmmp/ in the same line.

Even so, I got stuck with a linking problem. The library is produced correctly, but if I check the dependencies with ldd libyoutube.so, libqmmp.so and libqmmpui.so are missing.

If you can help me with this problem, it will be great!!

rigon commented 8 years ago

Ah, the most recent changes are in the branch transportsplugin. When I finish it, I will merge this branch with master

rigon commented 8 years ago

I already merged the branch transportsplugin with master. If you have made any progress, please let me know ;)

nitssousa commented 8 years ago

Hi,

i only tried today to buid the plugin, but i'm getting another error, can you help me with this?

/usr/bin/ld: cannot find -lqmmp /usr/bin/ld: cannot find -lqmmpui /usr/bin/ld: cannot find -lpython3 collect2: error: ld returned 1 exit status Makefile:174: recipe for target 'libyoutubeui.so.1.0.0' failed make[1]: * [libyoutubeui.so.1.0.0] Error 1 make[1]: Leaving directory '/home/joao/Desktop/qmmp-1.1.4/qmmp-plugin-youtube/youtubeui' Makefile:68: recipe for target 'sub-youtubeui-make_first' failed make: * [sub-youtubeui-make_first] Error 2 make: * Waiting for unfinished jobs.... /usr/bin/ld: cannot find -lqmmp /usr/bin/ld: cannot find -lqmmpui /usr/bin/ld: cannot find -lpython3 collect2: error: ld returned 1 exit status Makefile:168: recipe for target 'libyoutube.so.1.0.0' failed make[1]: * [libyoutube.so.1.0.0] Error 1 make[1]: Leaving directory '/home/joao/Desktop/qmmp-1.1.4/qmmp-plugin-youtube/youtube' Makefile:43: recipe for target 'sub-youtube-make_first' failed make: *\ [sub-youtube-make_first] Error 2

Atenciosamente, João Sousa


De: Ricardo Gonçalves notifications@github.com Enviado: domingo, 23 de outubro de 2016 11:25 Para: rigon/qmmp-plugin-youtube Cc: nitssousa; Author Assunto: Re: [rigon/qmmp-plugin-youtube] Make in linux mint (#7)

I already merged the branch transportsplugin with master. If you have made any progress, please let me know ;)

You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/rigon/qmmp-plugin-youtube/issues/7#issuecomment-255580771, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALo9QWikFu6q8iUvNSVbVS628cc81Nlaks5q2zYegaJpZM4KYBoj.

rigon commented 7 years ago

Olá João! Vou continuar em inglês para que toda a gente perceba.

I updated the dependencies and now you should be able to proceed. Try the following script:

# Create symbolic links
sudo ln -sv /usr/lib/qmmp/libqmmp* /usr/lib/x86_64-linux-gnu/
# Compile
qmake .
make -j4
# Install libraries into QMMP
sudo cp youtube/libyoutube.so /usr/lib/qmmp/qmmp/Transports/
sudo cp youtubeui/libyoutubeui.so /usr/lib/qmmp/qmmp/General/
sudo chmod 644 /usr/lib/qmmp/qmmp/Transports/libyoutube.so /usr/lib/qmmp/qmmp/General/libyoutubeui.so

I'm creating those symbolic links because it was the way I figured out to solve linkage problems...

But I'm still stuck... Now everything compiles and is links, but now I got a segmentation fault when QMMP attempts to load the Transport plugin (libyoutube.so).

I will dig a bit more to figure out why. If you have made any progress, please let me know ;)

zensubz commented 7 years ago

Hi... I did manage to get this plugin compile in a Debian 8.0 box with qt5 versions of qjson, pythonqt and qmmp. The plugin loads into qmmp, but there is no output in the main-window (screenshot attached). Any solution for this strange problem.? Thanks. qmmp-ytp

rigon commented 7 years ago

Sorry for the long time to respond...

I installed Debian on my computer to test your problem but I got the correct results...

image

If you launch QMMP from console it will produce some debug messages. Can you provide the output when you try to search?

PS: the compilation on Debian is not as clean as should be, it requires some tweaks to make it work. I will try to improve this. If you can provide some insights about how to do it, I will be very grateful!

zensubz commented 7 years ago

I think the version of Debian you have installed is 9.0 (i.e., current stable, code-name Stretch), and in that case, the youtube-plugin will work. My case was with Debian 8.0 (code-name Jessie). I think there is something to do with Qt5 - current Debian stable has Qt5 5.7.x, whereas it was 5.3.2 in case of Jessie - and there is something missing in Jessie version of Qt5? In fact, the build-requirement of Qt5 version of Qmmp is Qt5 > 5.4.x, and I managed it compile in Debian 8.0 with some minor adjustments (i.e., the projectM plugin won't compile).

I had tested your plugin in other distros, and it is working fine. Say for example, Linux Mint 18.x. No issues there (all of them have Qt5 > 5.4).

Would it be possible for you to release the Qt4-compatible version of your youtube-plugin - like the way Qmmp does...? We have Qt4 versions of PythonQt, QJson so the build-requirements would easily be met.

As for the insights, did you mean packaging for Debian?

zensubz commented 7 years ago

Here is the console output:

QmmpPluginCache: loaded plugin libalsa.so OutputALSA: setupMixer() OutputALSA: setupMixer() success QmmpUiPluginCache: loaded plugin libyoutubeui.so QmmpUiPluginCache: loaded plugin libskinned.so MainWindow: detected wm: Xfwm4 Skin: using :/glare Skin: cannot find region.txt. Transparency disabled Visual: loaded plugin libanalyzer.so WindowSystem: setting sticky state of window 0x5200005 to false.

There is no further output in the Youtube-UI window (i.e., after I enter a search-word). It's all blank...

MichaelTunnell commented 6 years ago

@rigon would you mind just setting up a PPA on Launchpad? It would build all the needed packages and you wouldn't need to troubleshoot building errors. :sunglasses: :+1:

Of course you would still set youtube-dl as a suggested package

rigon commented 6 years ago

That is a great idea! :D I will do that!