Bug 9974

Summary: Без python в системе создаётся битый src.rpm для любого модуля python
Product: Sisyphus Reporter: Fr. Br. George <george>
Component: rpm-build-pythonAssignee: Ivan Zakharyaschev <imz>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: darktemplar, george, imz, ldv
Version: unstable   
Hardware: all   
OS: Linux   

Description Fr. Br. George 2006-09-08 20:46:20 MSD
Если в хост-системе не стоит python, собирется src.rpm, из которого невозможно
ничего собрать, потому что в этом src.rpm-е указана версия питона "unknown".
Причина: rpm-макрос %__python_version вызывает python, а если его нет --
возвращает строку unknown (ошибку rpm-макрос возвращаться не должен). Как уже
пиалось в devel@, проблему можно обойти, добавив в _каждый_ спек
BuildRequires(pre), либо там же вручную переопределять %__python_version.

Без этого информации в спеке недостаточно для создания src.rpm, и никакой
сборочный робот с такой задачей не справится. Это стопроцентно тормозит переход
Сизифа на git.

Вместе с тем информация о последней версии python присутствует в неявном виде в
/etc/rpm/macros.d/python, например, в %_check_bound_python_version (это
последняя из попыток %_check_python_version:).

Предложение: добавить в /etc/rpm/macros.d/python информацию о последней версии
python в явном виде, но переопределять %__python_version только в случае, если
стандартный способ "unknown". Патч прилагается:

--- rpm-build-python/python     2006-09-08 18:46:35 +0400
+++ /home/george/hasher/chroot/etc/rpm/macros.d/python  2006-09-08 18:43:36 +0400
@@ -18,2 +18,5 @@
 #
+
+%__python_version_unknown 2.4
+
 %_check_python_version_internal() \
@@ -61,2 +64,3 @@
 %_setup_python_module_internal()        \
+%{expand: %{expand:%%{?__python_version_%__python_version:%%%%global
__python_version %__python_version_unknown}}} \
 %{expand: %%global modulename %{1}} \

Steps to Reproduce:
1.[No python in system]$ rpm -bs --nodeps RPM/SPECS/python-module-blah.spec 
Wrote: /usr/src/RPM/SRPMS/python-module-blah-0.2-alt1.src.rpm
2.[No python in system]$ rpm -q --requires -p
/usr/src/RPM/SRPMS/python-module-blah-0.2-alt1.src.rpm
Actual Results:  
rpm-build-python  
rpmlib(VersionedDependencies) <= 3.0.3-1
python-devel = unknown
rpmlib(CompressedFileNames) <= 3.0.4-1


Expected Results:  
rpm-build-python  
rpmlib(VersionedDependencies) <= 3.0.3-1
python-devel = 2.4
rpmlib(CompressedFileNames) <= 3.0.4-1
Comment 1 Dmitry V. Levin 2006-11-16 23:23:44 MSK
Между прочим, давно исправлено в 0.29-alt2.
Неплохо бы отражать это в bugzilla.
Comment 2 Fr. Br. George 2006-11-20 18:47:54 MSK
Что, сам повесил, сам испрвил, и сам закрыть забыл? Закрываю...