ports/110464: games/fretsonfire: becomes broken if py-xml is installed

Dmitry Marakasov amdmi3 at amdmi3.ru
Sun Mar 18 06:10:05 UTC 2007


>Number:         110464
>Category:       ports
>Synopsis:       games/fretsonfire: becomes broken if py-xml is installed
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 18 06:10:04 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Marakasov
>Release:        FreeBSD 6.1-RELEASE-p12 i386
>Organization:
>Environment:
System: FreeBSD hades.panopticon 6.1-RELEASE-p12 FreeBSD 6.1-RELEASE-p12 #0: Tue Jan 16 23:12:21 MSK 2007 amdmi3 at hades.panopticon:/usr/obj/usr/src/sys/HADES i386


>Description:
fretsonfire-1.1.324 becomes broken after installing textproc/py-xml. Here's what it says:

---
Traceback (most recent call last):
  File "/usr/local/bin/FretsOnFire", line 16, in ?
    execfile(os.path.join(package_dir, "FretsOnFire.py"))
  File "/usr/local/lib/fretsonfire/FretsOnFire/FretsOnFire.py", line 64, in ?
    engine = GameEngine(config)
  File "/usr/local/lib/fretsonfire/FretsOnFire/GameEngine.py", line 181, in __init__
    self.data = Data(self.resource, self.svg)
  File "/usr/local/lib/fretsonfire/FretsOnFire/Data.py", line 48, in __init__
    self.loadSvgDrawing(self, "star1", "star1.svg", textureSize = (128, 128))
  File "/usr/local/lib/fretsonfire/FretsOnFire/Data.py", line 93, in loadSvgDrawing
    getattr(target, name).convertToTexture(textureSize[0], textureSize[1])
  File "/usr/local/lib/fretsonfire/FretsOnFire/Svg.py", line 564, in convertToTexture
    self._render(transform)
  File "/usr/local/lib/fretsonfire/FretsOnFire/Svg.py", line 585, in _render
    self._cacheDrawing(self.context.drawBoard)
  File "/usr/local/lib/fretsonfire/FretsOnFire/Svg.py", line 543, in _cacheDrawing
    sax.parseString(self.svgData, SvgHandler(drawBoard, self.cache))
  File "/usr/local/lib/python2.4/site-packages/_xmlplus/sax/__init__.py", line 47, in parseString
    parser.parse(inpsrc)
  File "/usr/local/lib/python2.4/site-packages/_xmlplus/sax/expatreader.py", line 109, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/local/lib/python2.4/site-packages/_xmlplus/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/local/lib/python2.4/site-packages/_xmlplus/sax/expatreader.py", line 216, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/local/lib/python2.4/site-packages/_xmlplus/sax/expatreader.py", line 312, in start_element
    self._cont_handler.startElement(name, AttributesImpl(attrs))
  File "/usr/local/lib/fretsonfire/FretsOnFire/Svg.py", line 325, in startElement
    f(attrs)
  File "/usr/local/lib/fretsonfire/FretsOnFire/Svg.py", line 400, in startLineargradient
    if "xlink:href" in attrs:
  File "/usr/local/lib/python2.4/site-packages/_xmlplus/sax/xmlreader.py", line 316, in __getitem__
    return self._attrs[name]
KeyError: 0
---

After deinstalling py-xml, FOF works again.

>How-To-Repeat:
% cd /usr/ports/textproc/py-xml && make install
% FretsOnFire
>Fix:
Seems like FretsOnFire/Svg.py should be patched, so `from xml import sax` line would use python's builtin sax module (/usr/local/lib/python2.4/xml/sax) instead of one installed by py-xml (/usr/local/lib/python2.4/site-packages/_xmlplus/sax). I'm not a pro in python, so I don't know how to actually do it.

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list