izzyreal / vmpc-juce

JUCE implementation of VMPC2000XL
GNU General Public License v3.0
91 stars 7 forks source link

Reliance on deprecated dependency #89

Closed brownounces closed 1 year ago

brownounces commented 1 year ago

On the Linux build of VMPC2000XL, it expects to find libwebkit2gtk-4.0 to build properly -- this is a part of the wider WebKitGTK-2.38.5 package. WebKitGTK is now on version 2.40.1 and no longer contains libwebkit2gtk-4.0. Many distros have removed the required version of WebKitGTK from their repositories, meaning the user has to track down the dependency and build it themselves, and this is a rather tedious task.

If possible, it might be worthwhile to check if VMPC can build with a more recent version of libwebkit2gtk, and if so, modify the makefile (or whatever file assesses which version is necessary) to allow it to be be built with a more recent version of the library.

izzyreal commented 1 year ago

It's odd that libwebkit is required, because in the CmakeLists.txt we're doing

target_compile_definitions(vmpc2000xl
    PUBLIC
    JUCE_JACK=1
    JUCE_ASIO=1
    JUCE_WEB_BROWSER=0
    ...

As far as I know JUCE_WEB_BROWSER=0 should (indirectly) indicate that no libwebkit is needed. I'm not close to a Linux machine at the moment, so I'll try to verify and investigate later.

brownounces commented 1 year ago

You know, I did notice that when trying to see if I could modify the version requested by the compiler (I mean, I don't think there's a reason it couldn't work on a more slightly more recent version of the library) -- though obviously the better solution is to axe it entirely if it's not necessary. Maybe there's a bool being ignored somewhere and it's just deciding to run the code to build the browser?

izzyreal commented 1 year ago

On the Linux build of VMPC2000XL, it expects to find libwebkit2gtk-4.0 to build properly

I can't reproduce this. I've tried it on Ubuntu 23 after removing all packages that have "webkit" in the name, and when I configure the CMake project I get:

...
-- Checking for modules 'webkit2gtk-4.0;gtk+-x11-3.0'
--   Package 'webkit2gtk-4.0', required by 'virtual:world', not found
--   Package 'gtk+-x11-3.0', required by 'virtual:world', not found
...

But the configuration process succeeds anyway, and I can build the project and run the vmpc2000xl_Standalone target fine. So JUCE's CMake configuration probably does a check, regardless of whether the project needs it or not.

Are you getting different results in the absence of webkit2gtk-4.0?

izzyreal commented 1 year ago

Closing this due to inactivity. Feel free to reopen if it's still relevant.