diff options
| author | su_v <suv-sf@users.sourceforge.net> | 2014-09-05 12:20:06 +0000 |
|---|---|---|
| committer | ~suv <suv-sf@users.sourceforge.net> | 2014-09-05 12:20:06 +0000 |
| commit | 74f86569d245a4ee26329f1879e82debe8344231 (patch) | |
| tree | 13a08feec918ba0c6b44c9dd260b313d14fc82f4 | |
| parent | update to trunk (r13542) (diff) | |
| download | inkscape-74f86569d245a4ee26329f1879e82debe8344231.tar.gz inkscape-74f86569d245a4ee26329f1879e82debe8344231.zip | |
revert simplification of launcher scripts (r13561)
(bzr r13506.1.57)
| -rwxr-xr-x | packaging/macosx/Resources/bin/inkscape | 154 | ||||
| -rw-r--r--[l---------] | packaging/macosx/Resources/openDoc | 14 | ||||
| -rwxr-xr-x | packaging/macosx/Resources/script | 161 | ||||
| -rwxr-xr-x | packaging/macosx/osx-app.sh | 12 |
4 files changed, 181 insertions, 160 deletions
diff --git a/packaging/macosx/Resources/bin/inkscape b/packaging/macosx/Resources/bin/inkscape new file mode 100755 index 000000000..0b7e85ce8 --- /dev/null +++ b/packaging/macosx/Resources/bin/inkscape @@ -0,0 +1,154 @@ +#!/bin/sh +# +# Author: Aaron Voisine <aaron@voisine.org> +# Inkscape Modifications: +# Michael Wybrow <mjwybrow@users.sourceforge.net> +# Jean-Olivier Irisson <jo.irisson@gmail.com> +# ~suv <suv-sf@users.sourceforge.net> +# + +if test "x$GTK_DEBUG_LAUNCHER" != x; then + set -x +fi + +if test "x$GTK_DEBUG_GDB" != x; then + EXEC="gdb --args" +elif test "x$GTK_DEBUG_LLDB" != x; then + EXEC="lldb -- " +elif test "x$GTK_DEBUG_DTRUSS" != x; then + EXEC="dtruss" +else + EXEC=exec +fi + +CWD="`(cd \"\`dirname \\\"$0\\\"\`\"; echo \"$PWD\")`" +# e.g. /Applications/Inkscape.app/Contents/Resources/bin +TOP="`dirname \"$CWD\"`" +# e.g. /Applications/Inkscape.app/Contents/Resources + + +# Brutally add many things to the PATH. If the directories do not exist, they won't be used anyway. +# People should really use ~/.macosx/environment.plist to set environment variables as explained by Apple: +# http://developer.apple.com/qa/qa2001/qa1067.html +# but since no one does, we correct this by making the 'classic' PATH additions here: +# /usr/local/bin which, though standard, doesn't seem to be in the PATH +# newer python as recommended by MacPython http://www.python.org/download/mac/ +# Fink +# MacPorts (former DarwinPorts) +# LaTeX distribution for Mac OS X +export PATH="/usr/texbin:/opt/local/bin:/sw/bin/:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:$CWD:$PATH" + +# Put /usr/bin at beginning of path so we make sure we use Apple's python +# over one that may be installed be Macports, Fink or some other means. +export PATH="/usr/bin:$PATH" + +# Setup PYTHONPATH to use python modules shipped with Inkscape +OSXMINORNO="$(/usr/bin/sw_vers -productVersion | cut -d. -f2)" +build_arch=__build_arch__ +if [ $OSXMINORNO -gt "5" ]; then + if [ $OSXMINORNO -eq "6" ]; then + export VERSIONER_PYTHON_VERSION=2.6 + else # if [ $OSXMINORNO -ge "7" ]; then + export VERSIONER_PYTHON_VERSION=2.7 + fi + if [ $build_arch = "i386" ]; then + export VERSIONER_PYTHON_PREFER_32_BIT=yes + else # build & runtime arch x86_64 + export VERSIONER_PYTHON_PREFER_32_BIT=no + fi +fi +PYTHON_VERS="$(python -V 2>&1 | cut -c 8-10)" +export PYTHONPATH="$TOP/lib/python$PYTHON_VERS/site-packages/" + +# fallback for missing $INK_CACHE_DIR +if [ -z "$INK_CACHE_DIR" ]; then + INK_CACHE_DIR="${HOME}/.cache/inkscape" + mkdir -p "$INK_CACHE_DIR" + [ $_DEBUG ] && echo "INK_CACHE_DIR: falling back to $INK_CACHE_DIR" +fi + +export FONTCONFIG_PATH="$TOP/etc/fonts" +export PANGO_RC_FILE="${INK_CACHE_DIR}/pangorc" +export GTK_IM_MODULE_FILE="${INK_CACHE_DIR}/immodules.cache" +export GDK_PIXBUF_MODULE_FILE="${INK_CACHE_DIR}/loaders.cache" +export GTK_DATA_PREFIX="$TOP" +export GTK_EXE_PREFIX="$TOP" +export GTK_PATH="$TOP" +export GNOME_VFS_MODULE_CONFIG_PATH="$TOP/etc/gnome-vfs-2.0/modules" +export GNOME_VFS_MODULE_PATH="$TOP/lib/gnome-vfs-2.0/modules" +export XDG_DATA_DIRS="$TOP/share" +export ASPELL_CONF="prefix $TOP;" +export POPPLER_DATADIR="$TOP/share/poppler" + +# Note: This requires the path with the exact ImageMagic version number. +# Also, that ImageMagick will only work if it does not find a +# version installed into the same PREFIX as it was originally +# installed. Luckily, this is very unlikely given the extra long +# and strangely named install prefix we use. +# The actual version is inserted by the packaging script. +export MAGICK_CONFIGURE_PATH="$TOP/lib/ImageMagick-IMAGEMAGICKVER/config:$TOP/share/ImageMagick-IMAGEMAGICKVER_MAJOR/config" +export MAGICK_CODER_FILTER_PATH="$TOP/lib/ImageMagick-IMAGEMAGICKVER/modules-Q16/filters" +export MAGICK_CODER_MODULE_PATH="$TOP/lib/ImageMagick-IMAGEMAGICKVER/modules-Q16/coders" + +export INKSCAPE_SHAREDIR="$TOP/share/inkscape" +export INKSCAPE_PLUGINDIR="$TOP/lib/inkscape" +export INKSCAPE_LOCALEDIR="$TOP/share/locale" + +# Handle the case where the directory storing Inkscape has special characters +# ('#', '&', '|') in the name. These need to be escaped to work properly for +# various configuration files. +ESCAPEDTOP=`echo "$TOP" | sed 's/#/\\\\\\\\#/' | sed 's/&/\\\\\\&/g' | sed 's/|/\\\\\\|/g'` + +# Set GTK theme (only if there is no .gtkrc-2.0 in the user's home) +if [[ ! -e "$HOME/.gtkrc-2.0" ]]; then + export GTK2_RC_FILES="$ESCAPEDTOP/etc/gtk-2.0/gtkrc" +fi + +# If the AppleCollationOrder preference doesn't exist, we fall back to using +# the AppleLocale preference. +LANGSTR=`defaults read .GlobalPreferences AppleCollationOrder 2>/dev/null` +if [ "x$LANGSTR" == "x" -o "x$LANGSTR" == "xroot" ] +then + LANGSTR=`defaults read .GlobalPreferences AppleLocale 2>/dev/null | \ + sed 's/_.*//'` + [ $_DEBUG ] && echo "Setting LANGSTR from AppleLocale: $LANGSTR" 1>&2 +else + [ $_DEBUG ] && echo "Setting LANGSTR from AppleCollationOrder: $LANGSTR" 1>&2 +fi + +# NOTE: Have to add ".UTF-8" to the LANG since omitting causes Inkscape +# to crash on startup in locale_from_utf8(). +if [ "x$LANGSTR" == "x" ] +then + # override broken script + [ $_DEBUG ] && echo "Overriding empty LANGSTR" 1>&2 + export LANG="en_US.UTF-8" +else + tmpLANG="`grep \"\`echo $LANGSTR\`_\" /usr/share/locale/locale.alias | \ + tail -n1 | sed 's/\./ /' | awk '{print $2}'`" + if [ "x$tmpLANG" == "x" ] + then + # override broken script + [ $_DEBUG ] && echo "Overriding empty LANG from /usr/share/locale/locale.alias" 1>&2 + export LANG="en_US.UTF-8" + else + [ $_DEBUG ] && echo "Setting LANG from /usr/share/locale/locale.alias" 1>&2 + export LANG="$tmpLANG.UTF-8" + fi +fi +[ $_DEBUG ] && echo "Setting Language: $LANG" 1>&2 +export LC_ALL="$LANG" + +sed 's|${INK_CACHE_DIR}|'"$INK_CACHE_DIR|g" "$TOP/etc/pango/pangorc" > "${INK_CACHE_DIR}/pangorc" +sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/etc/pango/pango.modules" \ + > "${INK_CACHE_DIR}/pango.modules" +sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/lib/gtk-2.0/__gtk_version__/immodules.cache" \ + > "${INK_CACHE_DIR}/immodules.cache" +sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/lib/gdk-pixbuf-2.0/__gdk_pixbuf_version__/loaders.cache" \ + > "${INK_CACHE_DIR}/loaders.cache" + +if [ "x$GTK_DEBUG_SHELL" != "x" ]; then + exec bash +else + $EXEC "$CWD/inkscape-bin" "$@" +fi diff --git a/packaging/macosx/Resources/openDoc b/packaging/macosx/Resources/openDoc index 2b804bee2..63e803540 120000..100644 --- a/packaging/macosx/Resources/openDoc +++ b/packaging/macosx/Resources/openDoc @@ -1 +1,13 @@ -script
\ No newline at end of file +#!/bin/bash +# +# Author: Aaron Voisine <aaron@voisine.org> +# Inkscape Modifications: Michael Wybrow <mjwybrow@users.sourceforge.net> +# Inkscape Modifications: ~suv <suv-sf@users.sourceforge.net> + +CWD="$(cd "$(dirname "$0")" && pwd)" + +source "${CWD}/xdg_setup.sh" + +BASE="$(echo "$0" | sed -e 's/\/Contents\/Resources\/openDoc/\//')" +cd "$BASE" +exec "$CWD/bin/inkscape" "$@" diff --git a/packaging/macosx/Resources/script b/packaging/macosx/Resources/script index 9951922ab..de839484d 100755 --- a/packaging/macosx/Resources/script +++ b/packaging/macosx/Resources/script @@ -4,164 +4,19 @@ # Inkscape Modifications: Michael Wybrow <mjwybrow@users.sourceforge.net> # Inkscape Modifications: ~suv <suv-sf@users.sourceforge.net> -if test "x$GTK_DEBUG_LAUNCHER" != x; then - set -x -fi +#export _DEBUG=true -if test "x$GTK_DEBUG_GDB" != x; then - EXEC="gdb --args" -elif test "x$GTK_DEBUG_LLDB" != x; then - EXEC="lldb -- " -elif test "x$GTK_DEBUG_DTRUSS" != x; then - EXEC="dtruss" -else - EXEC=exec -fi - -# store absolute path to current script CWD="$(cd "$(dirname "$0")" && pwd)" -# read xdg user configuration source "${CWD}/xdg_setup.sh" +source "${CWD}/alert_fccache.sh" -# if this is the main script, check if this is the first run for current user -if [ $(basename "$0") == "script" ]; then - source "${CWD}/alert_fccache.sh" -fi - -# set prefix for bundled libs and resources -TOP="$CWD" - -# change into path prefix (top-level app dir) for osxapp-enabled binary -BASE="$(echo "$CWD" | sed -e 's/\/Contents\/Resources/\//')" +BASE="$(echo "$0" | sed -e 's/\/Contents\/Resources\/script/\//')" cd "$BASE" -# Brutally add many things to the PATH. If the directories do not exist, they won't be used anyway. -# the 'classic' PATH additions: -# /usr/local/bin which, though standard, doesn't seem to be in the PATH -# Fink -# MacPorts (former DarwinPorts) -# LaTeX distribution for Mac OS X -export PATH="/usr/texbin:/opt/local/bin:/sw/bin/:/usr/local/bin:$PATH" - -# Put /usr/bin at beginning of path so we make sure we use Apple's python -# over one that may be installed be Macports, Fink or some other means. -export PATH="/usr/bin:$PATH" - -# Put $CWD/bin at beginning of path so we make sure that recursive calls -# to inkscape don't pull in other inkscape binaries with different setup -# also allows to override system python with custom wrapper script -export PATH="$CWD/bin:$PATH" - -# Set up PYTHONPATH to use python modules bundled with Inkscape -OSXMINORNO="$(/usr/bin/sw_vers -productVersion | cut -d. -f2)" -build_arch=__build_arch__ -if [ $OSXMINORNO -gt "5" ]; then - if [ $OSXMINORNO -eq "6" ]; then - export VERSIONER_PYTHON_VERSION=2.6 - else # if [ $OSXMINORNO -ge "7" ]; then - export VERSIONER_PYTHON_VERSION=2.7 - fi - if [ $build_arch = "i386" ]; then - export VERSIONER_PYTHON_PREFER_32_BIT=yes - else # build & runtime arch x86_64 - export VERSIONER_PYTHON_PREFER_32_BIT=no - fi -fi -PYTHON_VERS="$(python -V 2>&1 | cut -c 8-10)" -export PYTHONPATH="$TOP/lib/python$PYTHON_VERS/site-packages/" - -# fallback for missing $INK_CACHE_DIR -if [ -z "$INK_CACHE_DIR" ]; then - INK_CACHE_DIR="${HOME}/.cache/inkscape" - mkdir -p "$INK_CACHE_DIR" - [ $_DEBUG ] && echo "INK_CACHE_DIR: falling back to $INK_CACHE_DIR" -fi - -export FONTCONFIG_PATH="$TOP/etc/fonts" -export PANGO_RC_FILE="${INK_CACHE_DIR}/pangorc" -export GTK_IM_MODULE_FILE="${INK_CACHE_DIR}/immodules.cache" -export GDK_PIXBUF_MODULE_FILE="${INK_CACHE_DIR}/loaders.cache" -export GTK_DATA_PREFIX="$TOP" -export GTK_EXE_PREFIX="$TOP" -export GTK_PATH="$TOP" -export GNOME_VFS_MODULE_CONFIG_PATH="$TOP/etc/gnome-vfs-2.0/modules" -export GNOME_VFS_MODULE_PATH="$TOP/lib/gnome-vfs-2.0/modules" -export XDG_DATA_DIRS="$TOP/share" -export ASPELL_CONF="prefix $TOP;" -export POPPLER_DATADIR="$TOP/share/poppler" - -# Note: This requires the path with the exact ImageMagic version number. -# Also, that ImageMagick will only work if it does not find a -# version installed into the same PREFIX as it was originally -# installed. Luckily, this is very unlikely given the extra long -# and strangely named install prefix we use. -# The actual version is inserted by the packaging script. -export MAGICK_CONFIGURE_PATH="$TOP/lib/ImageMagick-IMAGEMAGICKVER/config:$TOP/share/ImageMagick-IMAGEMAGICKVER_MAJOR/config" -export MAGICK_CODER_FILTER_PATH="$TOP/lib/ImageMagick-IMAGEMAGICKVER/modules-Q16/filters" -export MAGICK_CODER_MODULE_PATH="$TOP/lib/ImageMagick-IMAGEMAGICKVER/modules-Q16/coders" - -export INKSCAPE_SHAREDIR="$TOP/share/inkscape" -export INKSCAPE_PLUGINDIR="$TOP/lib/inkscape" -export INKSCAPE_LOCALEDIR="$TOP/share/locale" - -# Handle the case where the directory storing Inkscape has special characters -# ('#', '&', '|') in the name. These need to be escaped to work properly for -# various configuration files. -ESCAPEDTOP=`echo "$TOP" | sed 's/#/\\\\\\\\#/' | sed 's/&/\\\\\\&/g' | sed 's/|/\\\\\\|/g'` - -# Set GTK theme (only if there is no .gtkrc-2.0 in the user's home) -if [[ ! -e "$HOME/.gtkrc-2.0" ]]; then - export GTK2_RC_FILES="$ESCAPEDTOP/etc/gtk-2.0/gtkrc" -fi - -# If the AppleCollationOrder preference doesn't exist, we fall back to using -# the AppleLocale preference. -LANGSTR=`defaults read .GlobalPreferences AppleCollationOrder 2>/dev/null` -if [ "x$LANGSTR" == "x" -o "x$LANGSTR" == "xroot" ] -then - LANGSTR=`defaults read .GlobalPreferences AppleLocale 2>/dev/null | \ - sed 's/_.*//'` - [ $_DEBUG ] && echo "Setting LANGSTR from AppleLocale: $LANGSTR" 1>&2 -else - [ $_DEBUG ] && echo "Setting LANGSTR from AppleCollationOrder: $LANGSTR" 1>&2 -fi - -# NOTE: Have to add ".UTF-8" to the LANG since omitting causes Inkscape -# to crash on startup in locale_from_utf8(). -if [ "x$LANGSTR" == "x" ] -then - # override broken script - [ $_DEBUG ] && echo "Overriding empty LANGSTR" 1>&2 - export LANG="en_US.UTF-8" -else - tmpLANG="`grep \"\`echo $LANGSTR\`_\" /usr/share/locale/locale.alias | \ - tail -n1 | sed 's/\./ /' | awk '{print $2}'`" - if [ "x$tmpLANG" == "x" ] - then - # override broken script - [ $_DEBUG ] && echo "Overriding empty LANG from /usr/share/locale/locale.alias" 1>&2 - export LANG="en_US.UTF-8" - else - [ $_DEBUG ] && echo "Setting LANG from /usr/share/locale/locale.alias" 1>&2 - export LANG="$tmpLANG.UTF-8" - fi -fi -[ $_DEBUG ] && echo "Setting Language: $LANG" 1>&2 -export LC_ALL="$LANG" - -sed 's|${INK_CACHE_DIR}|'"$INK_CACHE_DIR|g" "$TOP/etc/pango/pangorc" > "${INK_CACHE_DIR}/pangorc" -sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/etc/pango/pango.modules" \ - > "${INK_CACHE_DIR}/pango.modules" -sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/lib/gtk-2.0/__gtk_version__/immodules.cache" \ - > "${INK_CACHE_DIR}/immodules.cache" -sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/lib/gdk-pixbuf-2.0/__gdk_pixbuf_version__/loaders.cache" \ - > "${INK_CACHE_DIR}/loaders.cache" - -if [ "x$GTK_DEBUG_SHELL" != "x" ]; then - exec bash -else - $EXEC "$CWD/bin/inkscape" "$@" -fi +# TODO examine whether it would be wisest to move the code from inkscape shell +# script and getdisplay.sh to here and only keep the real binary in bin. This +# may make things easier on Leopard and may also help using Inkscape on the +# command line. -# eof +exec "$CWD/bin/inkscape" "$@" diff --git a/packaging/macosx/osx-app.sh b/packaging/macosx/osx-app.sh index 833161a97..6d6d2a87e 100755 --- a/packaging/macosx/osx-app.sh +++ b/packaging/macosx/osx-app.sh @@ -299,7 +299,7 @@ binary_name=`basename "$binary"` binary_dir=`dirname "$binary"` # Inkscape's binary -binpath="$pkgbin/inkscape" +binpath="$pkgbin/inkscape-bin" cp -v "$binary" "$binpath" # TODO Add a "$verbose" variable and command line switch, which sets wether these commands are verbose or not @@ -387,7 +387,7 @@ if [ ${add_python} = "true" ]; then cp -rvf "$python_dir"/* "$pkglib" fi fi -sed -e "s,__build_arch__,$ARCH,g" -i "" "$pkgresources/script" +sed -e "s,__build_arch__,$ARCH,g" -i "" $pkgbin/inkscape # PkgInfo must match bundle type and creator code from Info.plist echo "APPLInks" > $package/Contents/PkgInfo @@ -433,8 +433,8 @@ gdk_pixbuf_version=`pkg-config --variable=gdk_pixbuf_binary_version gdk-pixbuf-2 mkdir -p $pkglib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders cp $LIBPREFIX/lib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders/*.so $pkglib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders/ -sed -e "s,__gtk_version__,$gtk_version,g" -i "" "$pkgresources/script" -sed -e "s,__gdk_pixbuf_version__,$gdk_pixbuf_version,g" -i "" "$pkgresources/script" +sed -e "s,__gtk_version__,$gtk_version,g" -i "" $pkgbin/inkscape +sed -e "s,__gdk_pixbuf_version__,$gdk_pixbuf_version,g" -i "" $pkgbin/inkscape sed -e "s,$LIBPREFIX,\${CWD},g" $LIBPREFIX/lib/gtk-2.0/$gtk_version/immodules.cache > $pkglib/gtk-2.0/$gtk_version/immodules.cache sed -e "s,$LIBPREFIX,\${CWD},g" $LIBPREFIX/lib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders.cache > $pkglib/gdk-pixbuf-2.0/$gdk_pixbuf_version/loaders.cache @@ -461,8 +461,8 @@ done for la_file in "$pkglib/ImageMagick-$IMAGEMAGICKVER/modules-Q16/filters"/*.la; do sed -e "s,$LIBPREFIX/lib/ImageMagick-$IMAGEMAGICKVER/modules-Q16/filters,,g" -i "" "$la_file" done -sed -e "s,IMAGEMAGICKVER,$IMAGEMAGICKVER,g" -i "" "$pkgresources/script" -sed -e "s,IMAGEMAGICKVER_MAJOR,$IMAGEMAGICKVER_MAJOR,g" -i "" "$pkgresources/script" +sed -e "s,IMAGEMAGICKVER,$IMAGEMAGICKVER,g" -i "" $pkgbin/inkscape +sed -e "s,IMAGEMAGICKVER_MAJOR,$IMAGEMAGICKVER_MAJOR,g" -i "" $pkgbin/inkscape # Copy aspell dictionary files: cp -r "$LIBPREFIX/share/aspell" "$pkgresources/share/" |
