[GRASS-dev] wxGUI not starting on Ubuntu 14.04.1

Hi,

we just compiled the current relbranch SVN on an Ubuntu box and get:

GRASS 7.0.0svn (latlong):/grassdata/latlong/matteo > g.gui
Launching <wxpython> GUI in the background, please wait...
Traceback (most recent call last):
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 142, in <module>
    sys.exit(main())
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 134, in main
    app = GMApp(workspaceFile)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 49, in __init__
    wx.App.__init__(self, False)
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py",
line 7981, in __init__
    self._BootstrapApp()
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py",
line 7555, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 83, in OnInit
    workspace = self.workspaceFile)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/lmgr/frame.py",
line 134, in __init__
    self.notebook = self._createNoteBook()
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/lmgr/frame.py",
line 300, in _createNoteBook
    gcstyle = GC_PROMPT)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/gui_core/goutput.py",
line 104, in __init__
    self.cmdPrompt = GPromptSTC(parent=self, menuModel=self._menuModel)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/gui_core/prompt.py",
line 137, in __init__
    GPrompt.__init__(self, parent = parent, menuModel = menuModel)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/gui_core/prompt.py",
line 57, in __init__
    self.mapsetList = utils.ListOfMapsets()
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/core/utils.py",
line 301, in ListOfMapsets
    mapsets.remove(mapset)
ValueError: list.remove(x): x not in list

this works ok on my Fedora box.

Any ideas?

Markus

On Thu, Jan 15, 2015 at 5:12 PM, Markus Neteler <neteler@osgeo.org> wrote:

Hi,

we just compiled the current relbranch SVN on an Ubuntu box and get:

GRASS 7.0.0svn (latlong):/grassdata/latlong/matteo > g.gui
Launching <wxpython> GUI in the background, please wait...
Traceback (most recent call last):
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 142, in <module>
    sys.exit(main())
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 134, in main
    app = GMApp(workspaceFile)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 49, in __init__
    wx.App.__init__(self, False)
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py",
line 7981, in __init__
    self._BootstrapApp()
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py",
line 7555, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/wxgui.py",
line 83, in OnInit
    workspace = self.workspaceFile)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/lmgr/frame.py",
line 134, in __init__
    self.notebook = self._createNoteBook()
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/lmgr/frame.py",
line 300, in _createNoteBook
    gcstyle = GC_PROMPT)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/gui_core/goutput.py",
line 104, in __init__
    self.cmdPrompt = GPromptSTC(parent=self, menuModel=self._menuModel)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/gui_core/prompt.py",
line 137, in __init__
    GPrompt.__init__(self, parent = parent, menuModel = menuModel)
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/gui_core/prompt.py",
line 57, in __init__
    self.mapsetList = utils.ListOfMapsets()
  File "/home/matteo/software/grass70/dist.x86_64-unknown-linux-gnu/gui/wxpython/core/utils.py",
line 301, in ListOfMapsets
    mapsets.remove(mapset)
ValueError: list.remove(x): x not in list

this works ok on my Fedora box.

Any ideas?

We figured it out: The user, by mistake, added a mapset with trailing "/":

Here an example

GRASS 7.0.0svn (eu_laea):~ > g.mapsets nightdata_new/ operation=add
GRASS 7.0.0svn (eu_laea):~ > g.mapsets -p
Accessible mapsets:
neteler PERMANENT modis_lst_reconstructed_europe_monthly nightdata_new
nightdata_new/

This will (maybe not surprisingly) crash the GUI at the next startup.

Question: is there a way to chop off such "junk" chars? Can we use
G_legal_filename() here?

thanks
Markus