The problem is this.

At the beginning of /usr/share/software-center/softwarecenter/config.py,
it imports either configparser or ConfigParser based on what will
import, apparently based on the incorrect belief that "configparser" is
for Python3 while "ConfigParser" is Python2.7:

try:
    from configparser import SafeConfigParser
    SafeConfigParser  # pyflakes
except ImportError:
    from ConfigParser import SafeConfigParser

So the background is that Python2.x has "ConfigParser" and Python3 has
"configparser". Yes, that's kind of weird. In Python3, they decided to
standardize on lower-case package names, so ConfigParser became
configparser.

The problem is, Software Center's developers didn't realize that the
classes also changed somewhat. Example:

Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import configparser, ConfigParser
>>> issubclass(configparser.SafeConfigParser, object)
True
>>> issubclass(ConfigParser.SafeConfigParser, object)
False

Software Center is crashing because ConfigParser and configparser are
not identical and apparently, it was just assumed that they were. What
I'm not sure is why this only affects a handful of people. Perhaps our
ppa's have forced an upgrade in Python that Software Center wasn't
tested against. At any rate, here's a patch.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1038429

Title:
  update-software-center crashed with order (MRO) for bases
  SafeConfigParser, object in __new__()

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/1038429/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to