Linux dependency issue
-
A user has reported that they are unable to launch my plugin on their installation of Linux Mint 18. They have done some magic and tell me it's because their OS has an older version of GLIBC than the one on the machine the plugin was compiled on (my PC). Is there a way to remove this dependency entirely from the plugin? The only other solution I can think of is to install a really old version of Linux Mint or Ubuntu and compile on that instead.
-
Hmm maybe you can select something in the Projucer (I know that you can choose the standard library for the XCode exporter).
-
Good thread about this: https://forum.juce.com/t/distributing-linux-plugins/20204/6
TLDR: use the oldest machine / OS version for compiling you can get your hands on. You need C++14 support though so there‘s a limit on how much you go back in time.
-
Thanks for the link, I shall go back to the age of
the dinosaursUbuntu 14.04 -
Do you think this setting will have any effect on the issue?
I also found in JUCE core I could disable the libcurl dependency, dunno if that will make a difference but I'll do it anyway.
-
Well Ubuntu 14 is not good. Projucer 5 requires libwebkit v4 which isn't available for that version of Ubuntu, I tried installing libwebkit-4 but it has its own set of dependencies and I was falling into a rabbit hole. I then tried using an older version of Projucer which built just fine but it seems is too old to build HISE. So I'm going to try Ubuntu 16.
-
Linux Mint 18 worked, shame I can't go back earlier though.
-
Hmm if webkit is the only non-behaving dependency you might get rid of it since it‘s just for rendering webpages and shouldn‘t be used by any plugin amyways.
-
@christoph-hart The problem is the version of Projucer supplied with HISE won't open without webkit either.
-
Yes but I think you could remove the dependency from webkit (maybe with setting the JUCE_ENABLE_WEB_BROWSER macro to 0 and rebuild the Projucer.
I‘ll take a look.
-
According to this post:
https://forum.juce.com/t/link-error-with-webkit-disabled/22124
disabling
JUCE_WEB_BROWSER
should work. I don't have a Linux distro without this library so you need to check it for yourself.If this fixes the issue, I'll commit the change to the repo and rebuild the binary - or maybe you could even send the Projucer binary that you've build with your old distro, so it will run on more machines :)
-
@christoph-hart Just so I understand. I rebuild Projucer with that value set? Where do I set that value?
-
Also does it have to be version 5.2 or should I build the latest?
-
- Open the projucer that you have build.
- Load the project in
HISE FOLDER/JUCE/extras/Projucer/Projucer.jucer
- Click on the modules tab on the left side, select the
juce_graphics
module and setJUCE_WEB_BROWSER
to 0. - Click on "File -> Save Project and open in IDE"
- It will create a makefile under
Builds/LinuxMakefile
. Run this file (make
in the terminal) and you should get a new projucer binary.
-
@christoph-hart Oh I see, I was thinking I needed to build it on my system running the old version of Ubuntu where the Projucer won't open. I shall build it now.
-
I'm thinking I could also get rid of the libcurl dependency on Linux too right? JUCE_USE_CURL=0.
-
I've hit a snag
make: *** No rule to make target '../../Source/ComponentEditor/Components/jucer_ComponentTypeHandler.cpp', needed by 'build/intermediate/Release/jucer_ComponentTypeHandler_d7e70242.o'. Stop.
-
Oh I figured it out, our old friend case sensitivity strikes again. The Components folder is named components. I fixed this and now I'm getting more problems, I bet the solution is the same :D
-
Ok I've built it now. Will test it on ye olde Ubuntu later today.
-
Well it was a bit of a struggle but I managed to build the Projucer and HISE on Linux Mint 17 (Ubuntu 14), had to also install g++6 in order to use C++14.
The autogenerated jucer files from HISE have the JUCE_WEB_BROWSER and JUCE_USE_CURL set to use default, is it possible to make it generate with them set to disabled so I don't have to open them and do it manually for each export? Also it possible to get HISE to generate separate jucers for standalone and plugin so I can run a single batch file to compile both?
Here is the download for both the Projucer and HISE that I built - https://www.dropbox.com/s/10b1g7pj22fkaqb/HISEProjucer.7z?dl=0