[Pkg-libvirt-maintainers] Bug#592858: Bug#592858: virt-manager: vnc display doesn't work with zsh

Guido Günther agx at sigxcpu.org
Wed Aug 25 15:47:37 UTC 2010


On Mon, Aug 23, 2010 at 04:44:12PM -0400, Cole Robinson wrote:
> On 08/13/2010 09:21 AM, Tollef Fog Heen wrote:
> > Package: virt-manager
> > Version: 0.8.4-7
> > Severity: normal
> > 
> > To set up a tunnel and access remote VNC displays, virt-manager does a:
> > 
> > ssh -l $USERNAME $HOST 'nc -q 2>&1 | grep -q "requires an argument";if [
> > $? -eq 0 ] ; then   CMD="nc -q 0 127.0.0.1 5902";else   CMD="nc
> > 127.0.0.1 5902";fi;$CMD;'
> > 
> > however, this doesn't work if your shell on the remote host is zsh, as
> > zsh doesn't expand $CMD.  Using «eval $CMD» works, or you can do sh -c
> > "$CMD", but just plain $CMD doesn't work.
> > 
> > Steps to reproduce should be trivial, but for completeness:
> > 
> > on a remote host with libvirt running and an existing VM, change the
> > shell of the user you are logging in with to zsh.  Try to connect using
> > virt-manager.  Observe that you get the error message:
> > 
> > zsh:1: command not found: nc -q 0 127.0.0.1 5902
> > 
> > (the port number might be different, of course)
> > 
> 
> Upstream already had a fix for zsh, but was still broken with tcsh. I
> think everything works fine now, I basically just wrapped the whole
> block in 'sh -c', and AIUI nobody sets sh to anything but bash or dash,
> which are well tested with this code:
> 
> http://hg.fedorahosted.org/hg/virt-manager/rev/16fcbf77e47e
> 
> Please let me know if that's not sufficient

I'll role a fix with this for the upcoming Debian stable release. Thanks
a lot.
 -- Guido





More information about the Pkg-libvirt-maintainers mailing list