The branch, master has been updated via 6d1945340163f63a971625d0c5c5259a38620299 (commit) via aee40cd57c0925f62589eab444d0505c94245793 (commit) via 6fd80fce8bb01b6b3c6fa59eaaf7f35cae0f6cb2 (commit) from ad6f58f4462ebd6acb1852da0f92cfaa8d750689 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6d1945340163f63a971625d0c5c5259a38620299 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sun Jan 13 15:53:44 2013 +0100 bump version to 0.2.2.0 commit aee40cd57c0925f62589eab444d0505c94245793 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sun Jan 13 15:52:31 2013 +0100 Drop SSH proxy tunnel configuration parameter. Adapt PyHoca-GUI to the way X2GoClient configures the SSH proxy settings. commit 6fd80fce8bb01b6b3c6fa59eaaf7f35cae0f6cb2 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sun Jan 13 15:44:53 2013 +0100 typo in German translation ----------------------------------------------------------------------- Summary of changes: debian/changelog | 10 ++- debian/control | 2 +- po/de.po | 2 +- pyhoca/wxgui/__init__.py | 2 +- pyhoca/wxgui/profilemanager.py | 176 ++++++++-------------------------------- 5 files changed, 45 insertions(+), 147 deletions(-) The diff of changes is: diff --git a/debian/changelog b/debian/changelog index b0dab63..d2acff9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,21 +1,23 @@ -pyhoca-gui (0.2.1.2-0~x2go1) UNRELEASED; urgency=low +pyhoca-gui (0.2.2.0-0~x2go1) UNRELEASED; urgency=low [ Orion Poplawski ] - * New upstream version (0.2.1.2): + * New upstream version (0.2.2.0): - Importing all of pyhoca.wxgui in setup.py causes rpmbuild problems due to DISPLAY not being set. It is overkill as well, causing extra dependencies to be installed at build time. (Fixes: #91). [ Mike Gabriel ] - * New upstream version (0.2.1.2): + * New upstream version (0.2.2.0): - Add rules to setup.py that install PyHoca-GUI's data files under Linux (i.e. icons, images, man page, etc.). Thanks to Orion Poplawski for coming up with an inspiring patch. (Fixes: #92). - Add support for exporting session profiles and session profile groups. - Translation source file (.pot) updated. Update of en.po and de.po. + - Drop SSH proxy tunnel configuration parameter. Adapt PyHoca-GUI to the + way X2GoClient configures the SSH proxy settings. * /debian/control: + Thanks to Orion's patch in bug #91 we can drop many build dependencies. - + Versioned Depend: on python-x2go (>= 0.2.1.2-0~). + + Versioned Depend: on python-x2go (>= 0.2.2.0-0~). + Add gnome-colors-common to Build-Depends. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Thu, 20 Dec 2012 08:51:50 +0100 diff --git a/debian/control b/debian/control index a3bc64e..ad57e92 100644 --- a/debian/control +++ b/debian/control @@ -24,7 +24,7 @@ Architecture: all Depends: ${misc:Depends}, python, - python-x2go (>=0.2.1.2-0~), + python-x2go (>=0.2.2.0-0~), python-argparse, python-notify, python-setproctitle, diff --git a/po/de.po b/po/de.po index d4097b8..0796ecd 100644 --- a/po/de.po +++ b/po/de.po @@ -418,7 +418,7 @@ msgstr "Schlüssel" #: ../pyhoca/wxgui/profilemanager.py:276 msgid "Discover SSH keys or use SSH agent for proxy authentication" -msgstr "Find SSH Schlüssel oder verwende SSH Agent für Proxy-Anmeldung" +msgstr "Finde SSH Schlüssel oder verwende SSH Agent für Proxy-Anmeldung" #: ../pyhoca/wxgui/profilemanager.py:279 msgid "Modem" diff --git a/pyhoca/wxgui/__init__.py b/pyhoca/wxgui/__init__.py index 7f1a55b..eddb9e3 100644 --- a/pyhoca/wxgui/__init__.py +++ b/pyhoca/wxgui/__init__.py @@ -18,6 +18,6 @@ # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. -__VERSION__ = '0.2.1.2' +__VERSION__ = '0.2.2.0' from frontend import * diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py index 0d3dde5..c8c9de8 100644 --- a/pyhoca/wxgui/profilemanager.py +++ b/pyhoca/wxgui/profilemanager.py @@ -149,19 +149,31 @@ class PyHocaGUI_ProfileManager(wx.Dialog): # allow localization of the default keyboard settings self.profile_name = self.profile_config['name'] = profile_name + # this code block is for compatibility of session profiles prior to 0.2.2.0: + _from_host = _from_port = _to_host = _to_port = None + if self.profile_config.has_key('sshproxytunnel'): + if self.profile_config['sshproxytunnel'].count(':') == 2: + _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':') + _from_host = 'localhost' + elif self.profile_config['sshproxytunnel'].count(':') == 3: + _from_host, _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':') + + if _to_host: self.profile_config['host'] = _to_host + if _to_port: self.profile_config['sshport'] = int(_to_port) + # we create a backup dict of our profile_config immediately (for being able to reset erroneously made changes) self.profile_config_bak = copy.deepcopy(self.profile_config) self._last_rdpclient = self.profile_config['rdpclient'] self._last_application = self.applicationChoices['TERMINAL'] - self.X2goTabs = wx.Notebook(self, -1, style=0) - self.tab_Profile = wx.Panel(self.X2goTabs, -1) - self.tab_Session = wx.Panel(self.X2goTabs, -1) - self.tab_Connection = wx.Panel(self.X2goTabs, -1) - self.tab_LinkQuality = wx.Panel(self.X2goTabs, -1) - self.tab_Settings = wx.Panel(self.X2goTabs, -1) - self.tab_SharedResources = wx.Panel(self.X2goTabs, -1) + self.X2GoTabs = wx.Notebook(self, -1, style=0) + self.tab_Profile = wx.Panel(self.X2GoTabs, -1) + self.tab_Session = wx.Panel(self.X2GoTabs, -1) + self.tab_Connection = wx.Panel(self.X2GoTabs, -1) + self.tab_LinkQuality = wx.Panel(self.X2GoTabs, -1) + self.tab_Settings = wx.Panel(self.X2GoTabs, -1) + self.tab_SharedResources = wx.Panel(self.X2GoTabs, -1) # boxes for all tabs self.staticbox_Profile = wx.StaticBox(self.tab_Profile, -1, ' %s ' % _(u'Session Title')) @@ -261,12 +273,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.SSHProxyHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(80,20)) self.SSHProxyPortLabel = wx.StaticText(self.tab_Connection, -1, _(u"Port")+": ") self.SSHProxyPort = wx.SpinCtrl(self.tab_Connection, -1, "22", min=1, max=65534) - self.SSHProxyTunnelLabel = wx.StaticText(self.tab_Connection, -1, _(u"SSH Proxy Tunnel")+": ") - self.SSHProxyTunnelFromHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20)) - self.SSHProxyTunnelFromPort = wx.SpinCtrl(self.tab_Connection, -1, "44444", min=1, max=65534) - self.SSHProxyTunnelBetweenLabel = wx.StaticText(self.tab_Connection, -1, " -> ") - self.SSHProxyTunnelToHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20)) - self.SSHProxyTunnelToPort = wx.SpinCtrl(self.tab_Connection, -1, "22", min=1, max=65534) self.SSHProxyAutoLogin = wx.CheckBox(self.tab_Connection, -1, _(u"Discover SSH keys or use SSH agent for proxy authentication")) self.LinkSpeed = wx.Slider(self.tab_LinkQuality, -1, 0, 0, 4) @@ -367,8 +373,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.Bind(wx.EVT_CHECKBOX, self.OnSSHProxySameUser, self.SSHProxySameUser) self.Bind(wx.EVT_CHECKBOX, self.OnSSHProxySamePassword, self.SSHProxySamePassword) self.Bind(wx.EVT_CHECKBOX, self.OnSSHProxyAutoLogin, self.SSHProxyAutoLogin) - self.Bind(wx.EVT_TEXT, self.OnUpdateSSHProxyTunnelFromHost, self.SSHProxyTunnelFromHost) - self.Bind(wx.EVT_TEXT, self.OnUpdateSSHProxyTunnelFromPort, self.SSHProxyTunnelFromPort) self.Bind(wx.EVT_COMBOBOX, self.OnCompressionSelected, self.Compression) self.Bind(wx.EVT_RADIOBUTTON, self.OnSetDisplayFullscreen, self.DisplayTypeFullscreen) self.Bind(wx.EVT_RADIOBUTTON, self.OnSetDisplayMaximize, self.DisplayTypeMaximize) @@ -458,11 +462,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.SSHProxyPortLabel.SetMinSize((-1, 16)) self.SSHProxyPort.SetMinSize((65, self._textfield_height)) self.SSHProxyKeyFile.SetMinSize((220, self._textfield_height)) - self.SSHProxyTunnelLabel.SetMinSize((-1, 16)) - self.SSHProxyTunnelFromPort.SetMinSize((65, self._textfield_height)) - self.SSHProxyTunnelToPort.SetMinSize((65, self._textfield_height)) - self.SSHProxyTunnelFromHost.SetMinSize((140, self._textfield_height)) - self.SSHProxyTunnelToHost.SetMinSize((140, self._textfield_height)) if X2GOCLIENT_OS == 'Windows': self.LinkSpeed.SetMinSize((425, self._textfield_height)) else: @@ -602,18 +601,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): sizer_3_2_1.Add(self.SSHProxyPort, pos=(3,4), span=(1,2), flag=wx.ALIGN_CENTRE_VERTICAL) sizer_3_2_1.Add(self.SSHProxyAutoLogin, pos=(4,0), span=(1,6), flag=wx.ALIGN_CENTRE_VERTICAL) sizer_3_2_1_1 = wx.BoxSizer(wx.HORIZONTAL) - sizer_3_2_1_1.Add(self.SSHProxyTunnelLabel, flag=wx.ALIGN_CENTRE_VERTICAL) - sizer_3_2_1_1.Add(self.SSHProxyTunnelFromHost, flag=wx.ALIGN_CENTRE_VERTICAL) - sizer_3_2_1_1.Add((4, 0)) - sizer_3_2_1_1.Add(self.SSHProxyTunnelFromPort, flag=wx.ALIGN_CENTRE_VERTICAL) - sizer_3_2_1_1.Add((8, 0)) - sizer_3_2_1_1.Add(self.SSHProxyTunnelBetweenLabel, flag=wx.ALIGN_CENTRE_VERTICAL|wx.ALIGN_CENTRE_HORIZONTAL) - sizer_3_2_1_1.Add((8, 0)) - sizer_3_2_1_1.Add(self.SSHProxyTunnelToHost, flag=wx.ALIGN_CENTRE_VERTICAL) - sizer_3_2_1_1.Add((4, 0)) - sizer_3_2_1_1.Add(self.SSHProxyTunnelToPort, flag=wx.ALIGN_CENTRE_VERTICAL) - sizer_3_2_1_1.Add((0,32)) - sizer_3_2_1.Add(sizer_3_2_1_1, pos=(5,0), span=(1,6)) sizer_3_2.Add(sizer_3_2_1, flag=wx.EXPAND|wx.ALL, border=7) sizer_3.Add(sizer_3_1, flag=wx.EXPAND|wx.ALL, border=5) @@ -794,12 +781,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.tab_SharedResources.SetSizerAndFit(sizer_6) self.tab_SharedResources.Layout() - self.X2goTabs.AddPage(self.tab_Profile, _(u"Profile")) - self.X2goTabs.AddPage(self.tab_Session, _(u"Session")) - self.X2goTabs.AddPage(self.tab_Connection, _(u"Connection")) - self.X2goTabs.AddPage(self.tab_LinkQuality, _(u"Link Quality")) - self.X2goTabs.AddPage(self.tab_Settings, _(u"Settings")) - self.X2goTabs.AddPage(self.tab_SharedResources, _(u"Sharing")) + self.X2GoTabs.AddPage(self.tab_Profile, _(u"Profile")) + self.X2GoTabs.AddPage(self.tab_Session, _(u"Session")) + self.X2GoTabs.AddPage(self.tab_Connection, _(u"Connection")) + self.X2GoTabs.AddPage(self.tab_LinkQuality, _(u"Link Quality")) + self.X2GoTabs.AddPage(self.tab_Settings, _(u"Settings")) + self.X2GoTabs.AddPage(self.tab_SharedResources, _(u"Sharing")) # the bottom area with OK, Defaults and Cancel buttons sizer_B = wx.BoxSizer(wx.HORIZONTAL) @@ -811,7 +798,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog): # put it all together... MainSizer = wx.BoxSizer(wx.VERTICAL) - MainSizer.Add(self.X2goTabs, proportion=1, flag=wx.EXPAND|wx.FIXED_MINSIZE) + MainSizer.Add(self.X2GoTabs, proportion=1, flag=wx.EXPAND|wx.FIXED_MINSIZE) MainSizer.Add(sizer_B, flag=wx.ALIGN_RIGHT) self.SetSizerAndFit(MainSizer) @@ -822,7 +809,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog): max5_x, max5_y = self.tab_Settings.GetBestSize() max6_x, max6_y = self.tab_SharedResources.GetBestSize() - #self.SetSize(self.GetBestSize() + self.X2goTabs.GetBestSize()) + #self.SetSize(self.GetBestSize() + self.X2GoTabs.GetBestSize()) if X2GOCLIENT_OS == "Windows": self.SetSize((max(max1_x, max2_x, max3_x, max4_x, max5_x) * 1.05, max(max1_y, max2_y, max3_y, max4_y, max5_y) * 1.10 + 50)) @@ -881,18 +868,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.SSHProxyUser.SetValue(self.profile_config['sshproxyuser']) self.SSHProxyKeyFile.SetValue(self.profile_config['sshproxykeyfile']) - _from_host = _from_port = _to_host = _to_port = None - if self.profile_config['sshproxytunnel'].count(':') == 2: - _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':') - _from_host = 'localhost' - elif self.profile_config['sshproxytunnel'].count(':') == 3: - _from_host, _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':') - - if _from_host: self.SSHProxyTunnelFromHost.SetValue(_from_host) - if _from_port: self.SSHProxyTunnelFromPort.SetValue(int(_from_port)) - if _to_host: self.SSHProxyTunnelToHost.SetValue(_to_host) - if _to_port: self.SSHProxyTunnelToPort.SetValue(int(_to_port)) - self.UseSSHProxy.SetValue(_ssh_proxy) self.SSHProxySameUser.SetValue(self.profile_config['sshproxysameuser']) self.SSHProxySamePassword.SetValue(self.profile_config['sshproxysamepass']) @@ -1246,12 +1221,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.SSHProxyHost.Enable(False) self.SSHProxyPortLabel.Enable(False) self.SSHProxyPort.Enable(False) - self.SSHProxyTunnelLabel.Enable(False) - self.SSHProxyTunnelFromHost.Enable(False) - self.SSHProxyTunnelFromPort.Enable(False) - self.SSHProxyTunnelBetweenLabel.Enable(False) - self.SSHProxyTunnelToHost.Enable(False) - self.SSHProxyTunnelToPort.Enable(False) self.SSHProxyAutoLogin.Enable(False) @@ -1281,13 +1250,11 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.profile_config['icon'] = ':icons/128x128/x2gosession.png' self.profile_config['user'] = self.UserName.GetValue() self.profile_config['key'] = self.SSHKeyFile.GetValue() + self.profile_config['host'] = self.Host.GetValue() if self.UseSSHProxy.GetValue(): self.profile_config['usesshproxy'] = True - self.profile_config['host'] = self.SSHProxyTunnelFromHost.GetValue() - self.profile_config['sshport'] = self.SSHProxyTunnelFromPort.GetValue() else: self.profile_config['usesshproxy'] = False - self.profile_config['host'] = self.Host.GetValue() if _session_type != 'DirectRDP': self.profile_config['sshport'] = self.SSHPort.GetValue() self.profile_config['sshproxysameuser'] = self.SSHProxySameUser.GetValue() @@ -1295,11 +1262,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.profile_config['sshproxyhost'] = self.SSHProxyHost.GetValue() self.profile_config['sshproxyport'] = self.SSHProxyPort.GetValue() - self.profile_config['sshproxytunnel'] = '%s:%s:%s:%s' % (self.SSHProxyTunnelFromHost.GetValue(), - self.SSHProxyTunnelFromPort.GetValue(), - self.SSHProxyTunnelToHost.GetValue(), - self.SSHProxyTunnelToPort.GetValue(), - ) + if self.profile_config.has_key('sshproxytunnel'): + self.profile_config['sshproxytunnel'] = 'DEPRECATED_CAN_BE_REMOVED' self.profile_config['sshproxyautologin'] = self.SSHProxyAutoLogin.GetValue() if self.profile_config['sshproxysameuser']: self.profile_config['sshproxyuser'] = '' @@ -1521,12 +1485,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.SSHProxyHost.Enable(False) self.SSHProxyPortLabel.Enable(False) self.SSHProxyPort.Enable(False) - self.SSHProxyTunnelLabel.Enable(False) - self.SSHProxyTunnelFromHost.Enable(False) - self.SSHProxyTunnelFromPort.Enable(False) - self.SSHProxyTunnelBetweenLabel.Enable(False) - self.SSHProxyTunnelToHost.Enable(False) - self.SSHProxyTunnelToPort.Enable(False) self.SSHProxyAutoLogin.Enable(False) self.LinkSpeed.Enable(False) self.ModemLabel.Enable(False) @@ -1566,14 +1524,11 @@ class PyHocaGUI_ProfileManager(wx.Dialog): @type event: C{obj} """ - if not self.UseSSHProxy.GetValue(): - self.HostLabel.Enable(True) - self.Host.Enable(True) - self.SSHPortLabel.Enable(True) - self.SSHPort.Enable(True) - self.SSHPort.SetValue(self.profile_config_bak['sshport']) - else: - self.SSHPort.SetValue(self.SSHProxyTunnelFromPort.GetValue()) + self.HostLabel.Enable(True) + self.Host.Enable(True) + self.SSHPortLabel.Enable(True) + self.SSHPort.Enable(True) + self.SSHPort.SetValue(self.profile_config_bak['sshport']) self.SSHAutoLogin.Enable(True) if PARAMIKO_FEATURE['forward-ssh-agent']: self.SSHForwardAuthAgent.Enable(True) @@ -1956,18 +1911,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): if self.SSHProxyAutoLogin.GetValue(): self.SSHProxyKeyFileLabel.Enable(False) self.SSHProxyAutoLogin.Enable(True) - self.SSHProxyTunnelLabel.Enable(True) - self.SSHProxyTunnelFromHost.Enable(True) - self.SSHProxyTunnelFromPort.Enable(True) - self.SSHProxyTunnelBetweenLabel.Enable(True) - self.SSHProxyTunnelToHost.Enable(True) - self.SSHProxyTunnelToPort.Enable(True) - self.Host.Enable(False) - self.HostLabel.Enable(False) - self.Host.SetValue(self.SSHProxyTunnelFromHost.GetValue()) - self.SSHPort.Enable(False) - self.SSHPortLabel.Enable(False) - self.SSHPort.SetValue(self.SSHProxyTunnelFromPort.GetValue()) else: self.staticbox_Proxy.Enable(False) self.SSHProxySameUser.Enable(False) @@ -1981,39 +1924,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.SSHProxyKeyFileLabel.Enable(False) self.SSHProxyKeyFile.Enable(False) self.SSHProxyKeyFileBrowseButton.Enable(False) - self.SSHProxyTunnelLabel.Enable(False) - self.SSHProxyTunnelFromHost.Enable(False) - self.SSHProxyTunnelFromPort.Enable(False) - self.SSHProxyTunnelBetweenLabel.Enable(False) - self.SSHProxyTunnelToHost.Enable(False) - self.SSHProxyTunnelToPort.Enable(False) self.SSHProxyAutoLogin.Enable(False) - self.Host.Enable(True) - self.HostLabel.Enable(True) - self.Host.SetValue(self.profile_config_bak['host']) - self.SSHPort.Enable(True) - self.SSHPortLabel.Enable(True) - self.SSHPort.SetValue(self.profile_config_bak['sshport']) - - def OnUpdateSSHProxyTunnelFromHost(self, event): - """\ - Gets called whenever the ssh-proxy-tunnel-from-host gets modified. - - @param event: event - @type event: C{obj} - - """ - self.Host.SetValue(self.SSHProxyTunnelFromHost.GetValue()) - - def OnUpdateSSHProxyTunnelFromPort(self, event): - """\ - Gets called whenever the ssh-proxy-tunnel-from-port gets modified. - - @param event: event - @type event: C{obj} - - """ - self.SSHPort.SetValue(self.SSHProxyTunnelFromPort.GetValue()) def OnSetKeyboard(self, event): """\ @@ -2048,7 +1959,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog): self.KeyboardModel.Enable(False) self.KeyboardVariant.Enable(False) - def OnSoundEnable(self, event): # wxGlade: X2goMaintProfile.<event_handler> + def OnSoundEnable(self, event): """\ Gets called whenever the enable-sound checkbox gets marked. @@ -2352,21 +2263,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog): elif self.profile_config['name'].strip() != self.profile_config_bak['name'] and self.profile_config['name'] in self.session_profiles.profile_names: validateOk = False self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name %s already exists!!!') % self.profile_config['name'].strip(), icon='profile_error') - elif self.profile_config['usesshproxy'] and self.profile_config['name'] == self.profile_config_bak['name']: - try: - (from_host, from_port) = self.profile_config['sshproxytunnel'].split(':')[0:2] - except ValueError: - self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'The SSH proxy configuration is incomplete. Try again.'), icon='profile_error') - for profile_name in [ p for p in self._PyHocaGUI.profile_names if p != self.profile_config['name'] ]: - test_profile_config = self.session_profiles.get_profile_config(profile_name) - if test_profile_config['usesshproxy']: - try: - (test_from_host, test_from_port) = test_profile_config['sshproxytunnel'].split(':')[0:2] - except ValueError: - continue - if (from_host, from_port) == (test_from_host, test_from_port): - validateOk = False - self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Another session profile (%s) already uses [%s]:%s for binding a local SSH proxy to.\nPlease change the SSH proxy settings accordingly.' % (profile_name.strip(), from_host, from_port)), icon='profile_warning') return validateOk def OnOKButton(self, event): hooks/post-receive -- pyhoca-gui.git (Python X2Go Client (wxPython GUI)) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).