python.spec: 625 %define __python %_builddir/Python-%version/python.sh 626 %define _python_lib_path %(RPM_BUILD_ROOT=%buildroot LD_LIBRARY_PATH=%buildroot%_libdir %buildroot%_bindir/python -c "import sys,os; path=os.path.normpath(os.environ['RPM_BUILD_ROOT']) ; print ' '.join([ x[len(path):] for x in [ os.path.normpath(x) for x in sys.path] if x[0 :len(path)]==path])") Так делать некрасиво. При раскрытии %_python_lib_path в %___build_pre (см. /usr/lib/rpm/i586-alt-linux/*) $RPM_BUILD_ROOT ещё не заполнен. $ gear --rpm -- rpm -bp sh: /tmp/.private/at/python-buildroot/usr/bin/python: No such file or directory Executing(%prep): /bin/sh -e /tmp/.private/at/rpm-tmp.95410 ... Правда, этот макрос правильно раскорется ко времени find-requiers и find-provides, т.к. билдрут уже будет заполнен. Как сделать красиво, я не знаю. Кстати, я хотел бы вынести все питоновские (а также перлове) макросы в соответствующие /etc/rpm/macros.d/ файлы. В связи с чем возникает вопрос: как из этих файлов вклиниться в %__build_pre? Т.е. как из /usr/lib/rpm/*/macros перенести строчку %{?_python_lib_path:export %RPM_PYTHON_LIB_PATH=\"%_python_lib_path\"}\ в /etc/rpm/macros.d/python ?