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/build | 4 ++- tools/linux_packaging/stage2.run.in | 53 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/linux_packaging/build b/tools/linux_packaging/build index baf4f5771f..f397386133 100755 --- a/tools/linux_packaging/build +++ b/tools/linux_packaging/build @@ -33,6 +33,7 @@ EXTERNAL_JACK= VENDOR=Ardour ; EXENAME=ardour GCC5ABI=false +USEWINE=false BUILDTYPE="" NOSTRIP="libsuil|libserd|libsord|liblilv|libsratom|liblrdf|libardour|libpbd|libevoral" @@ -239,6 +240,7 @@ echo export 'PATH=/usr/local/bin:/opt/bin:$PATH' >> $ENVIRONMENT # create startup helper script if test -d $BUILD_ROOT/vst; then WINEEXE=wine + USEWINE=true echo export INSTALL_DIR >> $ENVIRONMENT else WINEEXE= @@ -682,7 +684,7 @@ chmod a+x $APPBIN/${APP_VER_NAME}.uninstall.sh # # Add the stage2.run script # -sed -e "s/%REPLACE_MAJOR_VERSION%/${major_version}/;s/%REPLACE_PGM%/${APPNAME}/;s/%REPLACE_VENDOR%/${VENDOR}/;s/%REPLACE_EXE%/${EXENAME}/;s/%REPLACE_GCC5%/${GCC5ABI}/" < stage2.run.in > stage2.run +sed -e "s/%REPLACE_MAJOR_VERSION%/${major_version}/;s/%REPLACE_PGM%/${APPNAME}/;s/%REPLACE_VENDOR%/${VENDOR}/;s/%REPLACE_EXE%/${EXENAME}/;s/%REPLACE_GCC5%/${GCC5ABI}/;s/%REPLACE_WINE%/${USEWINE}/" < stage2.run.in > stage2.run chmod a+x stage2.run 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