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