# HG changeset patch # User Sascha Wilde # Date 1407429660 -7200 # Node ID 78096ad6f418e7dbbde250f6b9d5b901379b97bb # Parent 02e35782641757a46dd516f518d4218bb70953e1 Provide own, python based uudecode if none is found in the system. diff -r 02e357826417 -r 78096ad6f418 packaging/linux-installer.inc.in --- a/packaging/linux-installer.inc.in Wed Aug 06 18:56:23 2014 +0200 +++ b/packaging/linux-installer.inc.in Thu Aug 07 18:41:00 2014 +0200 @@ -171,7 +171,13 @@ autostart_path=${XDG_CONFIG_HOME:-~/.config/autostart} startmenu_path=${XDG_DATA_HOME:-~/.local/share/applications} fi - instcfg_file="${instcfg_path}/${INSTCFGNAME}" + instcfg_file="${instcfg_path}/${INSTCFGNAME}" + extra_bin_path=`mktemp --tmpdir -d tmpbin.XXXXXXXXXX` +} + +cleanup() +{ + rm -rf "$extra_bin_path" } write_instcfg() @@ -392,6 +398,38 @@ write_autostart "${autostart_path}/trustbridge.desktop" } +provide_uudecode_maybe() +{ + # The shar needs uudecode, which might not be installed. If its not + # available we will provide our own python based implementation. + if which uudecode >/dev/null 2>&1 ; then + getxt "Found system uudecode.\n" + else + local myuudecode="$extra_bin_path/uudecode" + cat >"$myuudecode" < 1: + f = open(sys.argv[1], 'r') +else: + f = sys.stdin +uu.decode(f, None, None, 1) +EOF + chmod 755 "$myuudecode" + PATH="${extra_bin_path}:$PATH" + getxt "Using python uudecode provided by installer.\n" + fi +} + #====================================================================== # main() @@ -444,6 +482,9 @@ install -d "${instcfg[PREFIX]}" || fatal "Could not create '%s'!\n" "${instcfg[PREFIX]}" fi +getxt "checking for uudecode ...\n" +provide_uudecode_maybe + getxt "unpacking files ...\n" cd "${instcfg[PREFIX]}" @@ -469,4 +510,7 @@ getxt "Writing installation configuration to: %s ...\n" "$instcfg_file" write_instcfg + +getxt "Cleaning up temporary stuff ...\n" +cleanup exit 0