Bug 9974 - Без python в системе создаётся битый src.rpm для любого модуля python
Summary: Без python в системе создаётся битый src.rpm для любого модуля python
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build-python (show other bugs)
Version: unstable
Hardware: all Linux
: P2 major
Assignee: Ivan Zakharyaschev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-08 20:46 MSD by Fr. Br. George
Modified: 2006-11-20 18:47 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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
Что, сам повесил, сам испрвил, и сам закрыть забыл? Закрываю...