summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-misc/teamviewer/files/teamviewer-9.0.32150-gentoo.patch138
-rw-r--r--net-misc/teamviewer/files/teamviewer.sh47
-rw-r--r--net-misc/teamviewer/files/teamviewerd.conf6
-rw-r--r--net-misc/teamviewer/files/teamviewerd.init31
-rw-r--r--net-misc/teamviewer/files/teamviewerd9.init26
5 files changed, 248 insertions, 0 deletions
diff --git a/net-misc/teamviewer/files/teamviewer-9.0.32150-gentoo.patch b/net-misc/teamviewer/files/teamviewer-9.0.32150-gentoo.patch
new file mode 100644
index 00000000..1df46327
--- /dev/null
+++ b/net-misc/teamviewer/files/teamviewer-9.0.32150-gentoo.patch
@@ -0,0 +1,138 @@
+diff --git a/opt/teamviewer9/tv_bin/script/tvw_extra b/opt/teamviewer9/tv_bin/script/tvw_extra
+index 71164aa..848cd25 100644
+--- a/opt/teamviewer9/tv_bin/script/tvw_extra
++++ b/opt/teamviewer9/tv_bin/script/tvw_extra
+@@ -16,13 +16,6 @@
+ isInstalledTV || return
+ ABecho "teamviewer --passwd [PASSWD]" "set a password (useful when installing remote (ssh)"
+ echo
+- ABecho "teamviewer --daemon status" "show current status of the TeamViewer daemon"
+- ABecho "teamviewer --daemon start" "start TeamViewer daemon"
+- ABecho "teamviewer --daemon stop" "stop TeamViewer daemon"
+- ABecho "teamviewer --daemon restart" "stop/start TeamViewer daemon"
+- ABecho "teamviewer --daemon disable" "disable TeamViewer daemon - don't start daemon on system startup"
+- ABecho "teamviewer --daemon enable" "enable TeamViewer daemon - start daemon on system startup (default)"
+- echo
+ }
+
+ function PrintVersion()
+@@ -37,19 +30,6 @@
+ PrintDaemonStatus
+ echo
+ PrintTeamViewerID
+-}
+-
+-function PrintDaemonStatus()
+-{
+- local cmd="$(daemonCtl 'status')"
+- local txt="n/a"
+-
+- if [ isInstalledTV ] ; then
+- txt="$(eval "$cmd")"
+- [ $? = 0 ] || txt='n/a (error)'
+- fi
+-
+- ABecho "teamviewerd status" "$txt"
+ }
+
+ function PrintTeamViewerID()
+@@ -64,20 +44,21 @@
+ ABecho "TeamViewer ID:" "$tvid"
+
+ if [ -z "$tvid" ] && isInstalledTV; then
+- echo "Try restarting the TeamViewer daemon (e.g. teamviewer --daemon restart)"
++ echo "Try restarting the TeamViewer daemon."
+ fi
+ }
+
+ function SetPasswd()
+ {
++ echo "Stop your teamviewer daemon first, then press enter."
++ read
++
+ local pwd="$1"
+ [ -n "$pwd" ] || die 'no password specified'
+
+ installedTVorDie
+ isSuperUser || die 'You need root permissions for this operation'
+
+- Run_Daemon 'stop' > /dev/null
+-
+ "$TV_BIN_DIR/teamviewerd" --passwd "$pwd"
+ case $? in
+ 0 ) echo 'ok' ;;
+@@ -88,12 +69,14 @@
+ * ) echo 'unknown response' ;;
+ esac
+
+- Run_Daemon 'start' > /dev/null || die 'failed to restart the daemon'
+- echo
++ echo "You may start your teamviewer daemon again."
+ }
+
+ function ExportLicense()
+ {
++ echo "Stop your teamviewer daemon first, then press enter."
++ read
++
+ local license="$1"
+ local path='/tmp/tv_global.conf'
+
+@@ -101,8 +84,6 @@
+
+ isSuperUser || die 'You need root permissions for this operation'
+
+- Run_Daemon 'stop' > /dev/null
+-
+ "$TV_BIN_DIR/teamviewerd" --export-license "$license" "$path"
+ case $? in
+ 0 ) echo "ok - license exported to '$path'" ;;
+@@ -110,8 +91,7 @@
+ * ) echo 'unknown response' ;;
+ esac
+
+- Run_Daemon 'start' > /dev/null || die 'failed to restart the daemon'
+- echo
++ echo "You may start your teamviewer daemon again."
+ }
+
+ function StripPersonalInformation()
+diff --git a/opt/teamviewer9/tv_bin/script/tvw_main b/opt/teamviewer9/tv_bin/script/tvw_main
+index 8984db0..c6dff8d 100644
+--- a/opt/teamviewer9/tv_bin/script/tvw_main
++++ b/opt/teamviewer9/tv_bin/script/tvw_main
+@@ -4,7 +4,6 @@
+ source "$TV_SCRIPT_DIR/tvw_config"
+ source "$TV_SCRIPT_DIR/tvw_exec"
+ source "$TV_SCRIPT_DIR/tvw_extra"
+-source "$TV_SCRIPT_DIR/tvw_daemon"
+ source "$TV_SCRIPT_DIR/tvw_profile"
+
+ function Main()
+@@ -18,7 +17,6 @@
+ --help ) PrintHelp ;;
+ --version ) PrintVersion ;;
+ --info ) PrintInfo ;;
+- --daemon ) Run_Daemon $opt ;;
+ --winecfg ) shift; Run_WineCfg "$@" ;;
+ --regedit ) shift; Run_RegEdit "$@" ;;
+ --kill ) Run_KillTeamViewer ;;
+@@ -170,18 +168,3 @@
+ Init
+ wine regedit "$@"
+ }
+-
+-function Run_Daemon()
+-{
+- local opt="$1"
+-
+- installedTVorDie
+-
+- case "$opt" in
+- ( disable ) removeDaemon || rootSuggest ;;
+- ( enable ) installDaemon || rootSuggest ;;
+- ( start | stop | restart ) cmdDaemon $opt || rootSuggest ;;
+- ( status ) cmdDaemon $opt ;;
+- ( * ) echo "unknown option '$opt'" ;;
+- esac
+-}
diff --git a/net-misc/teamviewer/files/teamviewer.sh b/net-misc/teamviewer/files/teamviewer.sh
new file mode 100644
index 00000000..70fc4e8a
--- /dev/null
+++ b/net-misc/teamviewer/files/teamviewer.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+tv="$(basename $0)"
+tvdir="/opt/${tv}"
+version="@TVV@"
+tvw_version=""
+prefix="${HOME}/.wine-${tv}"
+arch="win32"
+native=true
+
+if $native; then
+ export WINEDLLPATH="${prefix}/drive_c/TeamViewer"
+else
+ export WINEDLLPATH="${tvdir}/tv_bin/wine/lib:${tvdir}/tv_bin/wine/lib/wine:${prefix}/drive_c/TeamViewer"
+ export PATH="${tvdir}/tv_bin/wine/bin:${PATH}"
+fi
+export WINEARCH="${arch}"
+export WINEPREFIX="${prefix}"
+
+if [ ! -d "${prefix}" ]; then
+ echo "Creating prefix..."
+ wineboot -i &> /dev/null
+ mkdir -p "${prefix}/drive_c/TeamViewer"
+fi
+
+if [ -e "${prefix}/tvw-version" ]; then
+ tvw_version=$(<"${prefix}/tvw-version")
+fi
+
+#If version has changed or new instance
+if [ "${version}" != "${tvw_version}" ]; then
+ echo "Copying TeamViewer files to prefix..."
+ cp -R "/opt/${tv}/wine/drive_c/TeamViewer" "${prefix}/drive_c/"
+ echo "Creating config and log directories in ~/.config/teamviewer@TVMV@"
+ mkdir -p "${HOME}"/.config/teamviewer@TVMV@/{config,logfiles}
+ echo "${version}" > "${prefix}/tvw-version"
+fi
+
+TV_BASE_DIR="${tvdir}"
+TV_BIN_DIR="${TV_BASE_DIR}/tv_bin"
+TV_PROFILE="${prefix}"
+TV_LOG_DIR="${TV_PROFILE}/logfiles"
+TV_CFG_DIR="${TV_PROFILE}/config"
+TV_USERHOME="${HOME}"
+
+wine "C:\\TeamViewer\\TeamViewer.exe" "\${[@]}" &> \
+ "${HOME}/.config/teamviewer@TVMV@/logfiles/$(date +%Y.%m.%d-%H:%M:%S)-wine.log"
diff --git a/net-misc/teamviewer/files/teamviewerd.conf b/net-misc/teamviewer/files/teamviewerd.conf
new file mode 100644
index 00000000..e9496606
--- /dev/null
+++ b/net-misc/teamviewer/files/teamviewerd.conf
@@ -0,0 +1,6 @@
+# This entry can be used to specify a default daemon password.
+# It is set by running /etc/init.d/teamviewerd@TVV@ passwd.
+# The password must be between 8 and 12 characters, and special characters should
+# be avoided.
+
+PASSWD=""
diff --git a/net-misc/teamviewer/files/teamviewerd.init b/net-misc/teamviewer/files/teamviewerd.init
new file mode 100644
index 00000000..a8966dc1
--- /dev/null
+++ b/net-misc/teamviewer/files/teamviewerd.init
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+command=/opt/teamviewer@TVV@/tv_bin/teamviewerd
+command_args=-d
+description="daemon for TeamViewer"
+pidfile=/var/run/teamviewerd.pid
+
+extra_stopped_commands="passwd"
+
+passwd() {
+ if [ -z "${PASSWD}" ]; then
+ eerror "No password specified."
+ exit 1
+ fi
+
+ ebegin "Attempting to change password."
+ /opt/teamviewer@TVV@/tv_bin/teamviewerd --passwd "${PASSWD}"
+ retr=$?
+ case $retr in
+ 0) einfo "Password successfully set." ;;
+ 11|12) eerror "Password must be between 8 and 12 characters.";;
+ 13) eerror "Invalid characters detected.";;
+ 14) eerror "Password invalid. Validation failed.";;
+ *) eerror "Unknown error code";;
+ esac
+ eend $retr
+ exit $retr
+}
diff --git a/net-misc/teamviewer/files/teamviewerd9.init b/net-misc/teamviewer/files/teamviewerd9.init
new file mode 100644
index 00000000..80e881eb
--- /dev/null
+++ b/net-misc/teamviewer/files/teamviewerd9.init
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description="daemon for TeamViewer"
+
+PIDFILE="/var/run/teamviewerd.pid"
+
+start() {
+ ebegin "Starting Teamviewer Daemon"
+
+ start-stop-daemon \
+ --start \
+ --pidfile "${PIDFILE}" \
+ --background \
+ --exec /opt/teamviewer@TVV@/teamviewerd -- -d
+}
+
+stop() {
+ ebegin "Stopping Teamviewer Daemon"
+
+ start-stop-daemon \
+ --stop \
+ --pidfile "${PIDFILE}"
+}