[devel] RFC: Правильная схема построения питон-модулей

Alexey Morozov =?iso-8859-1?q?alex-altlinux_=CE=C1_idisys=2Eiae=2Ensk=2Esu?=
Чт Фев 12 15:55:36 MSK 2004


В аттачменте находится поправленный файл макросов для python.
Изменения:

	* решена проблема с именованием пакетов, если версия питон не
	  задана явно. Теперь пакет все равно будет называться
	  pythonXY-module...
	* всегда проставляется соответствующий Requires: python = X.Y
	* чуть более внятная диагностика ошибки при попытке сказать
	  rpmbuild -ba pyModule.spec --with python22 --with python23

Комментарии принимаются. С радостью. Я бы даже сказал, с нетерпением :-)


----------- следующая часть -----------
# for an unknown reason %%error macro doesn't lead to immediate immediate abort
# so we use BuildConflicts below as a headshot :-/

%check_python_version_internal() \
%{expand: %{expand:%%{?_with_python%{2}:%%{?__python_package_version:%%%%{error:Only one python version can be selected at a time}}}}} \
%(echo %{expand:%%{?_with_python%{2}:%%{?__python_package_version:BuildConflicts: python = %{1}}}}) \
%(echo %{expand:%%{?_with_python%{2}:BuildPreReq: python = %{1}}}) \
%{expand: %{expand:%%{?_with_python%{2}:%%%%global __python %(which python%1 2>/dev/null || echo `which python`)}}} \
%{expand: %{expand:%%{?_with_python%{2}:%%{!?__python_package_version:%%%%global __python_package_version %2}}}}

%check_python_version() \
%{expand: %%check_python_version_internal %{1} %(echo %1 | sed -e 's/\\.//g')}

%setup_python_module()	\
%{expand: %%global modulename %{1}} \
%(echo Provides: python-%{1} = %version-%release) \
%check_python_version 2.2 \
%check_python_version 2.4 \
%check_python_version 2.3 \
%{expand: %{expand: %%{!?__python_package_version:%%%%global __python_package_version %%(echo %%__python_version | tee -a aaa.log | sed -e 's/\\.//g')}}} \
%{expand: %%global packagename python%%{__python_package_version}-%%{modulename}} \
%(echo %{expand:Requires: python = %%__python_version})



Подробная информация о списке рассылки Devel