portmidi 1:200-0ubuntu1.12.04.1 is broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
portmidi (Ubuntu) |
Fix Released
|
High
|
Alessio Treglia | ||
Lucid |
Invalid
|
Undecided
|
Unassigned | ||
Oneiric |
Fix Released
|
High
|
Unassigned | ||
Precise |
Fix Released
|
High
|
Unassigned | ||
Quantal |
Fix Released
|
High
|
Unassigned |
Bug Description
This is on a Ubuntu 12.04.1 (fully upgraded) system, but given the nature of the bug it might affect other Ubuntu releases which received a similar upgrade. I first noticed this with MIDI playback which has stopped working in Frescobaldi since a few days because Python can't load its portmidi module. The message I get boils down to the following error from the dynamic linker:
/usr/lib/
Downgrading to the previous 1:200-0ubuntu1 version of the package solves the problem. Quite obviously the root cause is a miscompiled libportmidi. Here's what ldd says about the libportmidi.so.0 from the 1:200-0ubuntu1.
linux-vdso.so.1 => (0x00007fff9e3f
libporttime.so.0 => /usr/lib/
libc.so.6 => /lib/x86_
libpthread.so.0 => /lib/x86_
/lib64/
Compare this to the ldd output for the 1:200-0ubuntu1 version:
linux-vdso.so.1 => (0x00007fffe9bf
libasound.so.2 => /usr/lib/
libpthread.so.0 => /lib/x86_
libporttime.so.0 => /usr/lib/
libc.so.6 => /lib/x86_
libm.so.6 => /lib/x86_
libdl.so.2 => /lib/x86_
librt.so.1 => /lib/x86_
/lib64/
I haven't checked the sources, but it looks like some linker flags may have gone missing in the 1:200-0ubuntu1.
Just for the record, here's the full traceback from Frescobaldi (but note that the last line is really all that's important; this is definitely an issue with portmidi, not Frescobaldi or the Python portmidi module):
Traceback (most recent call last):
File "/usr/lib/
self.widget()
File "/usr/lib/
w = self.createWidget()
File "/usr/lib/
from . import widget
File "/usr/lib/
import midihub
File "/usr/lib/
portmidi.init()
File "/usr/lib/
if _setup() and not _initalized:
File "/usr/lib/
pypm = globals(
File "/usr/lib/
from . import ctypes_pypm
File "/usr/lib/
from .pm_ctypes import (
File "/usr/lib/
libpm = CDLL(dll_name)
File "/usr/lib/
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/
tags: | added: regression |
Changed in portmidi (Ubuntu): | |
importance: | Undecided → High |
tags: |
added: regression-update removed: regression |
Changed in portmidi (Ubuntu): | |
status: | Confirmed → Triaged |
Changed in portmidi (Ubuntu Oneiric): | |
importance: | Undecided → High |
Changed in portmidi (Ubuntu Precise): | |
importance: | Undecided → High |
Changed in portmidi (Ubuntu Quantal): | |
importance: | Undecided → High |
tags: | added: verification-done-quantal |
tags: |
added: verification-done removed: verification-needed |
Status changed to 'Confirmed' because the bug affects multiple users.