Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0
xorg-scripts
u_Add-ssh-support-to-xon.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File u_Add-ssh-support-to-xon.patch of Package xorg-scripts
From: Egbert Eich <eich@suse.de> Date: Tue Feb 11 19:10:37 2014 +0100 Subject: [PATCH]Add ssh support to 'xon' Patch-Mainline: to be upstreamed Git-commit: e967f71f0432cdd9b4ffb25bca5ad8dff7295c22 Git-repo: References: Signed-off-by: Egbert Eich <eich@suse.com> 'xon' has been around for ages, it's a small script that can be used to start any xclient remotely. It did so by opening a shell connection using 'rsh' or 'rcmd' to connect to the remote system. Today (hopefully) nobody has rsh installed any more for security reasons. 'ssh' has become the remote login tool of chioce which also allows to tunnel the X protocol over a secure channel. This patch adds ssh support to xon to make it useful again. Signed-off-by: Egbert Eich <eich@suse.de> --- xon | 61 ++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/xon b/xon index 772b357..959e0e7 100644 --- a/xon +++ b/xon @@ -32,20 +32,27 @@ target=$1 shift label=$target resource=xterm-$label -if [ -f /usr/bin/remsh ]; then +if [ -x /usr/bin/ssh ]; then + rsh=/usr/bin/ssh +elif [ -f /usr/bin/remsh ]; then rsh=/usr/bin/remsh elif [ -f /usr/bin/rcmd ]; then rsh=/usr/bin/rcmd else rsh=rsh fi -rcmd="$rsh $target -n" -case $DISPLAY in +case $rsh in + *ssh) rcmd_args="-Y $target" ;; + *) rcmd_args="$target -n" ;; +esac + +display=$DISPLAY +case $display in unix:*) - DISPLAY=`echo $DISPLAY | sed 's/unix//'` + display=`echo $display | sed 's/unix//'` ;; esac -case $DISPLAY in +case $display in :*) case `uname` in Linux*) @@ -61,10 +68,10 @@ case $DISPLAY in esac hostname=`echo $fullname | sed 's/\..*$//'` if [ $hostname = $target ] || [ $fullname = $target ]; then - DISPLAY=$DISPLAY + display=$display rcmd="sh -c" else - DISPLAY=$fullname$DISPLAY + display=$fullname$display fi ;; esac @@ -79,17 +86,23 @@ x) xpath='HOME=${HOME-`pwd`} XUSERFILESEARCHPATH=${XUSERFILESEARCHPATH-"'"$XUSERFILESEARCHPATH"'"} ' ;; esac -redirect=" < /dev/null > /dev/null 2>&1 &" +debug=n command= ls=-ls continue=: +remote_background= +rcmd_background_arg= + while $continue; do case $1 in -remote) shift if [ $rsh != "sh" ]; then rsh="$1" - rcmd="$rsh $target -n" + case $rsh in + *ssh) rcmd_args="-fY $target" ;; + *) rcmd_args="$target -n" ;; + esac fi shift;; -user) @@ -102,7 +115,10 @@ while $continue; do username="-l $1" label="$target $1" - rcmd="$rsh $target $username -n" + case $rsh in + *ssh) rcmd_args="-Y ${username}@${target}" ;; + *) rcmd_args="$rsh $target $username -n" ;; + esac shift case x$XAUTHORITY in x) @@ -139,7 +155,7 @@ while $continue; do ;; -debug) shift - redirect= + debug=y ;; -screen) shift @@ -149,7 +165,7 @@ while $continue; do usage "-screen option requires an argument" fi - DISPLAY=`echo $DISPLAY | sed 's/:\\([0-9][0-9]*\\)\\.[0-9]/:\1/'`.$1 + display=`echo $display | sed 's/:\\([0-9][0-9]*\\)\\.[0-9]/:\1/'`.$1 shift ;; *) @@ -171,7 +187,26 @@ x*) sess_mangr="SESSION_MANAGER=$SESSION_MANAGER " ;; esac -vars='PATH=${PATH:+$PATH:}/usr/X11R6/bin '"$xpath$xauth$sess_mangr"DISPLAY="$DISPLAY" +vars='PATH=${PATH:+$PATH:}/usr/X11R6/bin '"$xpath$xauth$sess_mangr" +case $rsh in + *ssh) + rcmd_background_arg="-f " + ;; + *) + remote_background="&"; + DISPLAY=$display + vars=${vars}DISPLAY="$DISPLAY" + ;; +esac + +if [ "$debug" = "n" ] +then + rcmd_args=$rcmd_background_arg$rcmd_args + redirect=" < /dev/null > /dev/null 2>&1 $remote_background" +fi + +[ "z" = "z$rcmd" ] && rcmd="$rsh $rcmd_args" + case $# in 0) $rcmd 'sh -c '"'$vars"' xterm '$ls' -name "'"$resource"'" -T "'"$label"'" -n "'"$label"'" '"$redirect'"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor