| Summary: | Без python в системе создаётся битый src.rpm для любого модуля python | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Fr. Br. George <george> |
| Component: | rpm-build-python | Assignee: | 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 | ||
Между прочим, давно исправлено в 0.29-alt2. Неплохо бы отражать это в bugzilla. Что, сам повесил, сам испрвил, и сам закрыть забыл? Закрываю... |
Если в хост-системе не стоит 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