From c2f156175a2566e6608e6b8b67845dc1e5f0344e Mon Sep 17 00:00:00 2001 From: Konstantin Dmitriev Date: Dec 19 2019 12:12:13 +0000 Subject: Fix #972: Can't read directories on OSX 10.15 Catalina. Thanks to Artem Konoplin. --- diff --git a/3-package-osx-dmg.sh b/3-package-osx-dmg.sh index d0a112a..7781190 100755 --- a/3-package-osx-dmg.sh +++ b/3-package-osx-dmg.sh @@ -50,7 +50,8 @@ mkapp() [ ! -d ${APPDIR_FINAL} ] || rm -rf ${APPDIR_FINAL} cp -Rf "${SCRIPTPATH}/autobuild/osx/app-template" "$APPDIR" - mv ${APPDIR}/Contents/MacOS/synfigstudio $APPDIR/Contents/MacOS/SynfigStudio || true + mv "${APPDIR}/Contents/MacOS/synfigstudio.sh" "$APPDIR/Contents/MacOS/SynfigStudio.sh" || true + g++ "${SCRIPTPATH}/autobuild/osx/synfig_osx_launcher.cpp" -o "$APPDIR/Contents/MacOS/SynfigStudio" #mkdir -p "$APPCONTENTS/bin" #cp -R "$MACPORTS/bin/ffmpeg" "$APPCONTENTS/bin" diff --git a/autobuild/osx/app-template/Contents/MacOS/SynfigStudio b/autobuild/osx/app-template/Contents/MacOS/SynfigStudio deleted file mode 100755 index d8cdfd6..0000000 --- a/autobuild/osx/app-template/Contents/MacOS/SynfigStudio +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -set -e - -DIR=`dirname "$0"` -cd "$DIR/../Resources" -CWD=`pwd` - -#export DYLD_LIBRARY_PATH="$CWD/lib:$CWD/synfig/lib:$CWD/Library/Frameworks/Python.framework/Versions/3.3/:/Volumes/data/SynfigStudio.app/Contents/Resources/Library/Frameworks/Python.framework/Versions/3.3/Resources/Python.app/Contents/MacOS/:$DYLD_LIBRARY_PATH" - -export GTK_EXE_PREFIX="$CWD" -export GTK_DATA_PREFIX="$CWD/share" - -export GSETTINGS_SCHEMA_DIR="$CWD/share/glib-2.0/schemas/" -export FONTCONFIG_PATH="$CWD/etc/fonts" -export MLT_DATA="$CWD/share/mlt/" -export MLT_REPOSITORY="$CWD/lib/mlt/" - -export PATH="$CWD/bin:$CWD/synfig-production/bin:$PATH" -export SYNFIG_ROOT="$CWD/" -export SYNFIG_MODULE_LIST="$CWD/etc/synfig_modules.cfg" - -export PYTHONHOME="$CWD/Frameworks/Python.framework/Versions/3.6/" - -export MAGICK_DIR=`ls -1 -d ${CWD}/lib/ImageMagick* | head -n 1` -export MAGICK_DIR=`basename $MAGICK_DIR` -export MAGICK_DIR_CONFIG=`ls -1 -d ${CWD}/lib/${MAGICK_DIR}/config-* | head -n 1` -export MAGICK_DIR_CONFIG=`basename $MAGICK_DIR_CONFIG` -export MAGICK_DIR_MODULES=`ls -1 -d ${CWD}/lib/${MAGICK_DIR}/modules-* | head -n 1` -export MAGICK_DIR_MODULES=`basename $MAGICK_DIR_MODULES` -export MAGICK_CONFIGURE_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_CONFIG}/" -export MAGICK_CODER_MODULE_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_MODULES}/coders/" -export MAGICK_CODER_FILTER_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_MODULES}/filters/" - -export XDG_DATA_DIRS="$CWD/share/:$XDG_DATA_DIRS" -export GDK_PIXBUF_MODULEDIR="$CWD/lib/gdk-pixbuf-2.0/2.10.0/loaders/" -export GDK_PIXBUF_MODULE_FILE=$HOME/.synfig-gdk-loaders -[ ! -f $HOME/.synfig-gdk-loaders ] || rm -f $HOME/.synfig-gdk-loaders -"$CWD/bin/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE" - -cd "$CWD" -exec "$SYNFIG_ROOT/bin/synfigstudio" "$@" diff --git a/autobuild/osx/app-template/Contents/MacOS/SynfigStudio.sh b/autobuild/osx/app-template/Contents/MacOS/SynfigStudio.sh new file mode 100755 index 0000000..d8cdfd6 --- /dev/null +++ b/autobuild/osx/app-template/Contents/MacOS/SynfigStudio.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +DIR=`dirname "$0"` +cd "$DIR/../Resources" +CWD=`pwd` + +#export DYLD_LIBRARY_PATH="$CWD/lib:$CWD/synfig/lib:$CWD/Library/Frameworks/Python.framework/Versions/3.3/:/Volumes/data/SynfigStudio.app/Contents/Resources/Library/Frameworks/Python.framework/Versions/3.3/Resources/Python.app/Contents/MacOS/:$DYLD_LIBRARY_PATH" + +export GTK_EXE_PREFIX="$CWD" +export GTK_DATA_PREFIX="$CWD/share" + +export GSETTINGS_SCHEMA_DIR="$CWD/share/glib-2.0/schemas/" +export FONTCONFIG_PATH="$CWD/etc/fonts" +export MLT_DATA="$CWD/share/mlt/" +export MLT_REPOSITORY="$CWD/lib/mlt/" + +export PATH="$CWD/bin:$CWD/synfig-production/bin:$PATH" +export SYNFIG_ROOT="$CWD/" +export SYNFIG_MODULE_LIST="$CWD/etc/synfig_modules.cfg" + +export PYTHONHOME="$CWD/Frameworks/Python.framework/Versions/3.6/" + +export MAGICK_DIR=`ls -1 -d ${CWD}/lib/ImageMagick* | head -n 1` +export MAGICK_DIR=`basename $MAGICK_DIR` +export MAGICK_DIR_CONFIG=`ls -1 -d ${CWD}/lib/${MAGICK_DIR}/config-* | head -n 1` +export MAGICK_DIR_CONFIG=`basename $MAGICK_DIR_CONFIG` +export MAGICK_DIR_MODULES=`ls -1 -d ${CWD}/lib/${MAGICK_DIR}/modules-* | head -n 1` +export MAGICK_DIR_MODULES=`basename $MAGICK_DIR_MODULES` +export MAGICK_CONFIGURE_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_CONFIG}/" +export MAGICK_CODER_MODULE_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_MODULES}/coders/" +export MAGICK_CODER_FILTER_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_MODULES}/filters/" + +export XDG_DATA_DIRS="$CWD/share/:$XDG_DATA_DIRS" +export GDK_PIXBUF_MODULEDIR="$CWD/lib/gdk-pixbuf-2.0/2.10.0/loaders/" +export GDK_PIXBUF_MODULE_FILE=$HOME/.synfig-gdk-loaders +[ ! -f $HOME/.synfig-gdk-loaders ] || rm -f $HOME/.synfig-gdk-loaders +"$CWD/bin/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE" + +cd "$CWD" +exec "$SYNFIG_ROOT/bin/synfigstudio" "$@" diff --git a/autobuild/osx/synfig_osx_launcher.cpp b/autobuild/osx/synfig_osx_launcher.cpp new file mode 100644 index 0000000..11f8400 --- /dev/null +++ b/autobuild/osx/synfig_osx_launcher.cpp @@ -0,0 +1,13 @@ +#include +#include + +int main(int argc, char* argv[]) { + std::string buf(argv[0]); + + std::size_t found = buf.rfind('/'); // looking for a last slash in path + if (found != std::string::npos) { + buf = buf.substr(0, found + 1); // get the directory where exe is located + } + + return system(buf.append("SynfigStudio.sh").c_str()); +}