[devel] sisyphus_check, сборка с python2.7 (Re: [#165052] FAILED syslog-ng.git=3.7.3-alt1)
Ivan Zakharyaschev
imz на altlinux.org
Ср Май 25 01:41:47 MSK 2016
On Wed, 25 May 2016, Sergey Y. Afonin wrote:
> On Wednesday 25 May 2016, Girar Builder awaiter robot wrote:
>
>> #100 build 3.7.3-alt1 from /people/asy/packages/syslog-ng.git
>> 2016-May-24 21:36:22 :: [x86_64] #100 syslog-ng.git 3.7.3-alt1: build start
>> /.out/syslog-ng-python-3.7.3-alt1.x86_64.rpm: invalid x86_64 python module path: /usr/lib/python2.7/site-packages/syslogng-1.0-py2.7.egg-info
>> sisyphus_check: check-python ERROR: python modules packaging violation
>> hsh-rebuild: pkg.tar: sisyphus_check failed.
>> 2016-May-24 21:39:57 :: [x86_64] syslog-ng.git 3.7.3-alt1: remote: build failed
>
> А почему invalid x86_64 python module path ? Этот syslogng-1.0-py2.7.egg-info
> вполне себе текстовый. Паковать пытаюсь таким образом:
>
> %python_sitelibdir_noarch/syslogng-1.0-py2.7.egg-info
Может быть, в sisyphus_check недостаточно разумная проверка?.. Когда её
писали, не знали про существование .egg-info?
Там на x86_64 сначала считаются плохими все файлы в /usr/lib/, потом это
отменяется для .py[co] (потому что считается, что они
архитектурно-независимы и имеют права лежат в общем месте). А .egg-info
забыто? Разумно ли добавить? А что-то ещё тогда не нужно ли тоже добавить?
Там и просто всякие README могут лежать.
Хотелось бы, чтобы те, кто практикуют упаковку питона, поделились мыслями
на этот счёт (ещё лучше -- вместе с патчами на sisyphus_check, если такие
изменения оправданы).
(Возможно, часть случаев, с которыми я сейчас массово борюсь, пряча их --
mv в spec-ах из /usr/lib в /usr/lib64, объясняется тем, что мейнтейнеры
столкнулись с этой проверкой? У меня ещё есть подозрение, что всякие
namespace-ы для чего-то вроде zope.чего-то-там не заработают, если они
окажутся в разных физических директориях. Это было бы объяснением части
случаев.)
local bad_dirs= noarch_pattern=
case "$rpm_arch" in
noarch|i?86|pentium*|athlon*)
bad_dirs='/usr/lib64/python[23]([.][0-9])?/site-packages/' ;;
x86_64|amd64)
noarch_pattern='^d[^ ]+ /usr/lib/python[23]([.][0-9])?/site-packages/|^-[^ ]+ /usr/lib/python[23]([.][0-9])?/site-packages/.*\.py([co])?$'
bad_dirs='/usr/lib/python[23]([.][0-9])?/site-packages/' ;;
esac
local bad_files=
if [ -n "$bad_dirs" ]; then
bad_files="$(printf %s "$rpm_perms_filenames" |
egrep "^[^ ]+ $bad_dirs" ||:)"
fi
if [ -n "$bad_files" -a -n "$noarch_pattern" ]; then
bad_files="$(printf %s "$bad_files" |
egrep -v "$noarch_pattern" ||:)"
fi
if [ -n "$bad_files" ]; then
bad_files="$(printf %s "$bad_files" |cut -d' ' -f2-)"
FileError "invalid $rpm_arch python module path: $(oneliner "$bad_files" |fmt -w 128 |head -n1)" "$f"
rc=1
fi
--
Best regards,
Ivan
Подробная информация о списке рассылки Devel