Делаю новый пакет, написал спек. Версии пакетов *rpm*: rpm-macros-alternatives-0.4.5-alt1 rpm-build-python-0.36.2-alt1 rpm-4.0.4-alt100.76.M70P.1 librpm-4.0.4-alt100.76.M70P.1 rpm-macros-alterator-4.24-alt2.M70P.1 rpminstall-1.1.3-alt1.qa1 rpm-macros-qt5-5.3.1-alt4.M70P.1 rpm-build-perl-0.83-alt1 rpm-macros-info-install-4.13-alt9 rpm-build-xdg-0.2-alt1 rpm-build-licenses-2.0.5-alt1 rpm-utils-0.9.17-alt1 rpm-build-4.0.4-alt100.76.M70P.1 librpmbuild-4.0.4-alt100.76.M70P.1 Если спеке в секции %install указываю "install -Ds -m 755 src/src/emercoind %{buildroot}%{_bindir}", пакет собирается нормально. Если убираю опцию -s - сборка пакета падает в скрипте /usr/lib/rpm/brp.d/056-debuginfo.brp, сообщение об ошибке: /usr/lib/rpm/debugedit: Dest dir longer than base dir is not supported Я добавил опцию -x к параметрах шела (в первой строчке скрипта), получилось вот что: + . /usr/lib/rpm/functions ++ unset CDPATH ++ export LC_ALL=C ++ LC_ALL=C ++ PROG=056-debuginfo.brp ++ case "${RPM_SCRIPTS_DEBUG:-0}" in ++ unset RPM_SCRIPTS_DEBUG ++ '[' -z /tmp/emercoind-buildroot ']' ++ ValidateBuildRoot ++ '[' -n /tmp/emercoind-buildroot ']' +++ printf %s /tmp/emercoind-buildroot +++ tr -d ' /.' ++ '[' -n tmpemercoind-buildroot ']' ++ local real_buildroot +++ readlink -vm -- /tmp/emercoind-buildroot ++ real_buildroot=/tmp/emercoind-buildroot ++ '[' /tmp/emercoind-buildroot = /tmp/emercoind-buildroot ']' ++ readonly RPM_BUILD_ROOT + ValidateBuildRoot + '[' -n /tmp/emercoind-buildroot ']' ++ printf %s /tmp/emercoind-buildroot ++ tr -d ' /.' + '[' -n tmpemercoind-buildroot ']' + local real_buildroot ++ readlink -vm -- /tmp/emercoind-buildroot + real_buildroot=/tmp/emercoind-buildroot + '[' /tmp/emercoind-buildroot = /tmp/emercoind-buildroot ']' + cd /tmp/emercoind-buildroot + rm -rf .tmp + mkdir .tmp + : + prune_paths='/lib/firmware /usr/lib/debug /usr/share /usr/src ' ++ printf %s '/lib/firmware /usr/lib/debug /usr/share /usr/src ' ++ tr '[:space:]' '\n' ++ sort -u ++ sed -n '/^\// s/.*/ -o -path .&/p' + prune_tests=' -o -path ./lib/firmware -o -path ./usr/lib/debug -o -path ./usr/share -o -path ./usr/src' + find . '(' -path './.*' -o -path ./lib/firmware -o -path ./usr/lib/debug -o -path ./usr/share -o -path ./usr/src ')' -prune -o -type f -print + sort + file '-NF ' -f - + sed -n 's/\t.* ELF .* \(executable\|shared object\), .*, not stripped.*//p' + xargs -r '--delimiter=\n' stat -c '%h %i %n' + read -r nlink ino f + debugf=./usr/lib/debug/usr/bin/emercoind.debug + '[' 1 -gt 1 ']' + strip=--strip-all + touch -r ./usr/bin/emercoind .tmp/stamp + /usr/lib/rpm/debugedit -b /tmp/BUILD -d /usr/src/debug -l .tmp/src ./usr/bin/emercoind /usr/lib/rpm/debugedit: Dest dir longer than base dir is not supported
Dest dir longer than base dir is not supported and is not going to be supported by debugedit.
Теперь понятно, в чём дело: в ~/.rpmbuild я указал, как написано в Wiki: %_builddir %_tmppath/BUILD Тогда как нужно указывать длинный путь. Сделал %_tmppath/RPM_BUILD_TEMPORARY_DIRECTORY Теперь проблема решена. Осталось исправить статью в altlinux.org