Xpra: Ticket #1392: moduleset error horror

It started with some updates from trunk that should be applied to v1.0.x (see #840):

jhbuild was then failing with the totally unhelpful:

jhbuild update: failed to parse /Users/osx/Source/jhbuild/modulesets/http:/xpra.org/svn/Xpra/tags/v1.0.x/osx/jhbuild/xpra.modules: \
  [Errno 2] No such file or directory: \
  u'/Users/osx/Source/jhbuild/modulesets/http:/xpra.org/svn/Xpra/tags/v1.0.x/osx/jhbuild/xpra.modules'

So r14664 moved "xpra.modules" to "modulesets-stable", which allowed me to continue (after downloading it into "~/Source/jhbuild/modulesets" by hand). This uncovered an error in the r14662 changeset, fixed in r14665. r14666 moved "xpra.modules" back to where it was (a URL link) but unfortunately it still fails with the same error. Whatever the problem is, it's really not obvious to me.



Mon, 23 Jan 2017 10:04:17 GMT - Antoine Martin: owner changed

@smo: please advise on which updates from trunk (#1404) are applicable to the 1.x branch. Then I'll give this another go, copying the module files by hand if needed.


Tue, 24 Jan 2017 20:21:05 GMT - Smo: owner changed

Okay I've updated the other ticket.


Thu, 26 Jan 2017 17:46:23 GMT - Antoine Martin: status changed; resolution set

Rebuild from scratch with the updates from ticket:1404#comment:9 worked OK. Closing.


Sat, 25 Mar 2017 06:00:28 GMT - Antoine Martin:

Hit it again after r15394 which had some small mistakes in it:

Tried moving things around (r15397), no help. Then digging into the jhbuild code in ~/Source/jhbuild/jhbuild//moduleset.py, I find that they're swallowing the exception details (PITA), so I replaced the exception code with this:

def _parse_module_set(config, uri):
    try:
        filename = httpcache.load(uri, nonetwork=config.nonetwork, age=0)
    except Exception as e:
        raise FatalError(_('could not download %s: %s') % (uri, e))
    filename = os.path.normpath(filename)
    try:
        document = xml.dom.minidom.parse(filename)
    except IOError as e:
        import traceback
        traceback.print_stack()
        #raise FatalError(_('failed to parse %s: %s') % (filename, e))
        raise
    except xml.parsers.expat.ExpatError as e:
        #raise FatalError(_('failed to parse %s: %s') % (uri, e))
        import traceback
        traceback.print_stack()
        raise

And got the details needed instead of the utterly useless original exception message. Immediately found the problem, fixed in r15398. (could also have been found by opening the file with a validating XML parser) Why on earth isn't this the default??


Mon, 12 Aug 2019 05:35:14 GMT - Antoine Martin:

Similar hidden error in jhbuild: ticket:2383#comment:1


Sat, 23 Jan 2021 05:22:59 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1392