From 259dbaea520be3a8f60fe517e2ea22da624691ef Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 16 Dec 2015 22:39:00 +0100 Subject: fun hacks for wine windows-VST? yes, we could. --- tools/linux_packaging/stage2.run.in | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'tools/linux_packaging/stage2.run.in') diff --git a/tools/linux_packaging/stage2.run.in b/tools/linux_packaging/stage2.run.in index ea83a57e20..ba8e280a3a 100755 --- a/tools/linux_packaging/stage2.run.in +++ b/tools/linux_packaging/stage2.run.in @@ -313,6 +313,19 @@ else fi fi +if %REPLACE_WINE%; then + if -z "`which wine`"; then + echo "" + echo "!!! ERROR !!! - 'wine' was not found." + echo "" + echo "This version of Ardour with Windows VST support requires wine." + echo "https://www.winehq.org/" + echo "" + read -p "Press ENTER to exit installer:" BLAH + exit 1 + fi +fi + ##################### # Unpack the bundle ##################### @@ -375,6 +388,46 @@ then HAS_XDG="F" fi +################################################# +# Set up libwine.so +################################################# +if %REPLACE_WINE%; then + echo "" + echo "Searching for libwine.so (Windows VST support)" + echo "" + # we need to add libwine to ardour's LD_LIBRARY_PATH + # libwine itself includes paths to the various system-components + # which may be different on each platform. + # + # There's some chicken/egg here: ardour.exe.so is linked against libwine.so + # at build-time. wine/wineloader assumes a windows-application (which does not use libwine + # directly) and does not set up the LD path to libwine itself. the application terminates + # (missing libs) before it even starts.. + # + # wine itself does not provide means to find the location of libwine. + # /usr/bin/wine is usually shell-script and libwine.so can be found in + # various places on different distros. + # + # if this check were quick and easy.. it should be done in the startup-script, but it's not + # so here we go... (updating wine may require re-installing ardour) + # + LIBWINE=$( + LD_DEBUG=files wine `pwd`/${BUNDLE_DIR}/lib/ardour-vst-scanner.exe.so 2>&1 \ + | grep -e "calling init:.*libwine" \ + | sed 's/^.*calling init: //' \ + | uniq \ + ) + if ! test -f "$LIBWINE"; then + echo "" + echo "!!! ERROR !!! - 'libwine.so*' was not found." + echo "" + read -p "Press ENTER to exit installer:" BLAH + exit 1 + fi + # this replaces/overwrites the bundled libwine + cp -L "$LIBWINE" `pwd`/${BUNDLE_DIR}/lib/libwine.so.1 +fi + ################################################# # Check if system libs are OK (libc, etc) ################################################# -- cgit v1.2.3