Подскажите, как правильно переопределить путь BUILDROOT в описаниях SPEC-файла?
В заголовке прописал
....
BuildArch: noarch
%define _topdir /home/snake/wrk
%define _prjdir /opt/%{name}
BuildRoot: %{_topdir}/rpm/buildroot/%{name}-%{version}-%{release}-fff
%define buildroot %{_topdir}/rpm/buildroot/%{name}-%{version}-%{release}-fff
....
/home/snake/wrk/rpm/buildroot/MyPrj-1.0-1-fff
для записи туда файлов и последующей их архивации НО скрипт секции %install, при
%install
....
install -m 0644 file.a %{buildroot}%{_prjdir}/file.a
упорно искал файлы в директории
/home/snake/rpmbuild/BUILDROOT/MyPrj-1.0-1.x86_64
т.е. по пути который генерировал сам rpmbuild причем заметьте, что архитектуру, объявленную в шапке, он упорно не видит!
проверил значения этих макросов, прописал в секции %prep
%prep
echo %{buildroot}
echo $RPM_BUILD_ROOT
действительно, rpmbuild выдает пути
/home/snake/rpmbuild/BUILDROOT/MyPrj-1.0-1.x86_64
вместо указанного ему
/home/snake/wrk/rpm/buildroot/MyPrj-1.0-1-fff
Решение: Для %install - прописать определение макроса еще раз в секции %prep
%prep
%define buildroot %{_topdir}/rpm/buildroot/%{name}-%{version}-%{release}-fff
тогда секция %install начинает понимать директорию - куда записать файлы и
%install
....
install -m 0644 file.a %{buildroot}%{_prjdir}/file.a
....
/home/snake/wrk/rpm/buildroot/MyPrj-1.0-1-fff
НО, секция %files - упорно продолжает искать файлы для упаковки в своем изначально заданном каталоге
/home/snake/rpmbuild/BUILDROOT/MyPrj-1.0-1.x86_64
в файле /usr/lib/rpm/macros, написано следующее
....
# The directory where buildroots will be created.
%_buildrootdir %{_topdir}/BUILDROOT
# Build root path, where %install installs the package during build.
%buildroot %{_buildrootdir}/%{NAME}-%{VERSION}-%{RELEASE}.%{_arch}
....
т.е. свое значение для поиска rpmbuild явно берет из этого определения.
Подскажите! Как же правильно переопределить директории в spec-файле для корректной работы rpmbuild??