[devel] и снова PyQt4

Sergey Vlasov vsu на altlinux.ru
Сб Мар 13 15:07:04 UTC 2010


On Sat, Mar 13, 2010 at 12:54:56PM +0200, Artem Zolochevskiy wrote:
> Господа, повторно ищу помощи с питоном.
> 
> Я, увы, самостоятельно не могу в точности определить проблемное место.
> У меня не собирается пакет. Как мне видится из-за того, что на x86_64
> не находится питон-овый dbus.mainloop.qt
> 
> Картина выглядит следующим образом:
> 
> $ rpm -qf /usr/lib64/python2.6/site-packages/dbus/mainloop/qt.so
> python-module-PyQt4-4.7-alt2

google:"/usr/lib64/python2.6/site-packages/dbus/mainloop/qt.so"
показывает, что подобное размещение этого файла использовалось только
в SUSE; причём даже там в свежих версиях этот файл уехал в /usr/lib:
http://www.rpmfind.net//linux/RPM/opensuse/11.2/x86_64/python-qt4-4.6.1-1.1.1.x86_64.html

> $ ls /usr/lib64/python2.6/site-packages/dbus/mainloop/__init__.py
> ls: cannot access
> /usr/lib64/python2.6/site-packages/dbus/mainloop/__init__.py: No such
> file or directory
> 
> $ rpm -qf /usr/lib/python2.6/site-packages/dbus/mainloop/__init__.py
> python-module-dbus-data-0.83.1-alt1
> 
> Нормальна ли такая картина?
> Может ли мне кто-то подсказать, что не так и что должно быть сделано
> чтоб на x86_64 у питона заработало
> import dbus.mainloop.qt

Как уже обсуждалось, файл __init__.py у пакета модулей Python может
быть только один - а вот каталогов, где он может лежать в системе, у
нас в общем случае два (arch и noarch), но на i386 каталоги arch и
noarch у питона совпадают, поэтому там проблема не видна.  Решать её
можно одним из двух способов:

 1) Так, как делается как минимум в fedora и opensuse - класть qt.so в
    каталог /usr/lib/python2.6/site-packages/dbus/mainloop даже на
    x86_64.  Сейчас sisyphus_check блокирует этот вариант.

 2) Так, как, похоже, не делается больше нигде - в пакете
    python-module-dbus перенести site-packages/dbus/mainloop/ из
    noarch-части в arch - в этом случае существующий пакет
    python-module-PyQt4 заработает без изменений (и даже без его
    пересборки).
    
    Хотя перенести только dbus/mainloop совсем просто не получится
    из-за того, что подпакет python-module-dbus-data сделан noarch и
    должен быть одинаковым на всех архитектурах - придётся добавлять
    условия в %files.  Вероятнее всего, наиболее простое и надёжное
    решение - полностью отказаться от выделения noarch-части в
    подпакет python-module-dbus-data (в конце концов, большинство
    arch-specific пакетов python-module-* содержат и некоторое
    количество *.py, лежащих в arch-каталоге рядом с *.so, и никто по
    этому поводу не возмущается).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20100313/24ecdd26/attachment-0001.bin>


Подробная информация о списке рассылки Devel