[devel] buildreq & python3-module-zope (a pure namespace package); Re: Пересборка питона

Ivan Zakharyaschev imz на altlinux.org
Ср Мар 23 13:45:02 MSK 2016


On Wed, 23 Mar 2016, Denis Medvedev wrote:

>> >  Простите, я потерял ход событий. Правильно ли я понимаю, что это все 
>> >  оставшиеся пакеты, которые не собираются?
>> >  Или это только верхушка айсберга?
>>
>>  Это в каком-то смысле верхушка небольшого айсберга, но только оно нас
>>  должно волновать.
>>
>>  Если эти 10 собрать, остальные соберутся.
>> 
>> 
> Вдогонку, mistune и zope.interface из этого списка уже можно вычеркнуть.

Узнав, как nbr@ сделал zope.interface собираемым (просто убрав всякие 
BuildRequires на zope.*, и оно собралось без заметных изменений 
результата), я подумал (с учётом того, что при пересборке легонько 
сталкивался с пакетами zope, т.к. они не переезжали в 
python3/site-packages в произвольном порядке), что buildreq из-за какой-то 
особой для zope фигни даёт такие зависимости.

Собственно вот:

$ filereq filereqs-zope.interface rpm -bc RPM/SPECS/python-module-zope.interface.spec
$ rpm -qa 'python3-module-zope*' -l | fgrep -x -f filereqs-zope.interface
/usr/lib64/python3/site-packages/zope.event-4.0.3-py3.3.egg-info/namespace_packages.txt
/usr/lib64/python3/site-packages/zope/__init__.py
/usr/lib64/python3/site-packages/zope.interface-4.1.3.dev0-py3.3.egg-info/PKG-INFO
/usr/lib64/python3/site-packages/zope.interface-4.1.3.dev0-py3.3.egg-info/namespace_packages.txt
/usr/lib64/python3/site-packages/zope.fixers-1.1.2-py3.3.egg-info/entry_points.txt
/usr/lib64/python3/site-packages/zope.fixers-1.1.2-py3.3.egg-info/namespace_packages.txt
$ cat /usr/lib64/python3/site-packages/zope/__init__.py
# <...>
# This file is necessary to make this directory a package.

try:
     # Declare this a namespace package if pkg_resources is available.
     import pkg_resources
     pkg_resources.declare_namespace('zope')
except ImportError:
     pass
$ cat /usr/lib64/python3/site-packages/zope.fixers-1.1.2-py3.3.egg-info/namespace_packages.txt
zope
$ cat /usr/lib64/python3/site-packages/zope.fixers-1.1.2-py3.3.egg-info/entry_points.txt

       [console_scripts]
       zope-2to3 = zope.fixers.main:main
       $

Если это игнорировать по некому разумному правилу, то самое непонятное с 
PKG-INFO. Там есть какая-то информация, и оно при сборке читалось не у 
всех пакетов, а только у одного.

Нельзя же считать, что если было обращение к PKG-INFO только (без других 
файлов пакета), то пакет никак существенно при сборке не используется и 
соберётся в его отсутствии?

С улучшенными правилами для buildreq, можно было бы автоматически 
избавиться от части лишних BuildRequires на zope, но у нас сейчас среди 
проблемных остался всего один такой (python-module-zope.container), 
который не лезет в сборочную среду к другим проблемным (напишу обновлённый 
граф зависимостей в следующем письме). Так что это не очень актуальный 
массовый фикс сейчас.

-- 
Best regards,
Ivan


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