Bug#762250: cecilia: Please update to use wxpython3.0

Olly Betts olly at survex.com
Sat Sep 20 02:34:42 UTC 2014


Package: cecilia
Version: 5.0.9-1
Severity: serious
Justification: blocks the on-going wxpython3.0 transition
Tags: sid jessie
User: freewx-maint at lists.alioth.debian.org
Usertags: wxpy3.0
Control: block 755757 by -1

I missed this package in my previous checks, as while it uses the wx API,
it doesn't seem to have any sort of dependency on python-wxgtk2.8 or
indeed any wx package (it'd be useful for transitions, and I think also for
users, to add at least a 'Suggests: python-wxgtk3.0').

Starting cecilia from unstable with python-wxgtk3.0 installed, I get the
following output, and it doesn't seem to actually start up correctly:

Preferences file not found.

pyo version 0.7.0 (uses single precision)

WxPython is not found for the current python version. 
Pyo will use a minimal GUI toolkit written with Tkinter. 
This toolkit has limited functionnalities and is no more 
maintained or updated. If you want to use all of pyo's
GUI features, you should install WxPython, available here: 
http://www.wxpython.org/

ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:947:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:947:(find_matching_chmap) Found no matching channel map
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/splash.py", line 70, in OnPaint
    font.SetPixelSize((15,15))
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_gdi.py", line 2313, in SetPixelSize
    return _gdi_.Font_SetPixelSize(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "IsOk()" failed at ../src/gtk/font.cpp(337) in GetPointSize(): invalid font
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_misc.py", line 1367, in Notify
    self.notify()
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 16866, in Notify
    self.result = self.callable(*self.args, **self.kwargs)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/splash.py", line 78, in OnClose
    self.callback()
  File "/usr/bin/cecilia", line 68, in onStart
    ceciliaMainFrame.onOpen(os.path.join(MODULES_PATH, category, file), True)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/CeciliaMainFrame.py", line 236, in onOpen
    CeciliaLib.openCeciliaFile(self, event, builtin)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/CeciliaLib.py", line 584, in openCeciliaFile
    getVar("audioServer").openCecFile(cecFilePath)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/audio.py", line 1660, in openCecFile
    CeciliaLib.getVar("mainFrame").onUpdateInterface(None)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/CeciliaMainFrame.py", line 326, in onUpdateInterface
    ceciliaInterface = CeciliaInterface.CeciliaInterface(None, title='Interface - %s' % title, mainFrame=self)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/CeciliaInterface.py", line 52, in __init__
    self.controlPanel = Control.CECControl(self, -1)
  File "/usr/lib/python2.7/dist-packages/cecilia/Resources/Control.py", line 108, in __init__
    self.sizerMain.Add(Separator(self, (230,2), colour=BORDER_COLOUR), 1, wx.EXPAND)
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 14453, in Add
    return _core_.Sizer_Add(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "Assert failure" failed at ../src/common/sizer.cpp(1401) in DoInsert(): too many items (4 > 1*3) in grid sizer (maybe you should omit the number of either rows or columns?)

I've included the standard information from the other mails I filed
earlier below:

We're aiming to migrate the archive to using wxpython3.0 instead of
wxwidgets2.8, and hope to drop wxwidgets2.8 before jessie is released.
This transition is already underway, and is being tracked by the release
team here:

https://release.debian.org/transitions/html/wxpython3.0.html

The wxPython 3.0 API mostly adds to the wxPython2.8 API.  Many packages
work with wxPython 3.0 without any changes, but there are a few
incompatibilities.  For example, wx.Color is no longer supported as
an alias for wx.Colour, and some constants which were deprecated in 2.8
have been removed.  All the removed constants I'm aware of were set to 0
in wxPython 2.8, so removing them is still compatible with 2.8.

To assist updating to wxPython 3.0, I've put together a script which
will help make the mechanical changes required.  This is in a git repo
on collab-maint along with a README about using it and updating packages
for wxPython 3.0 in general:

http://anonscm.debian.org/cgit/collab-maint/wx-migration-tools.git

The script has some options to control the sorts of changes it makes -
see the README and --help output for more information - you can view
the latest version of the README online here:

http://anonscm.debian.org/cgit/collab-maint/wx-migration-tools.git/tree/README

I've developed this script by trying to convert 20+ packages.  Please
try it out on your package - in many cases, it should be enough to get
your package working (if it doesn't already) - if it does, please upload
(and close this bug).

If the script doesn't do the job, please let me know (or improve the
script if you can figure out what it needs to do to get your package
working).

Another issue you may hit is that wxWidgets 3.0 now defaults to enabling
its "WXDEBUG" checks for incorrect API usage, so some applications will
emit scary sounding "assertion failures".  These are unlikely to
actually be new, just in a default build of 2.8, such incorrect uses
were handled quietly behind the scenes.  Sometimes these are easy to
fix, but if not you can easily patch the application to tell wx 3.0 to
handle them in the same way wx 2.8 does - details of how to do so are in
the README:

http://anonscm.debian.org/cgit/collab-maint/wx-migration-tools.git/tree/README

I'm happy to sponsor uploads for this transition, though if you have an
active sponsor already check with them first - I don't want to tread on
anyone's toes.

Cheers,
    Olly



More information about the pkg-multimedia-maintainers mailing list