Bug 31586 - ошибка при обработке нестрипнутого бинарника в /usr/lib/rpm/brp-alt
Summary: ошибка при обработке нестрипнутого бинарника в /usr/lib/rpm/brp-alt
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL: https://www.google.com/search?q=Dest+...
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-02 22:42 MSK by Стас
Modified: 2015-12-02 23:21 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Стас 2015-12-02 22:42:36 MSK
Делаю новый пакет, написал спек.
Версии пакетов *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
Comment 1 Dmitry V. Levin 2015-12-02 22:57:00 MSK
Dest dir longer than base dir is not supported and is not going to be supported by debugedit.
Comment 2 Стас 2015-12-02 23:21:31 MSK
Теперь понятно, в чём дело:  в ~/.rpmbuild я указал, как написано в Wiki: 
%_builddir %_tmppath/BUILD
Тогда как нужно указывать длинный путь. Сделал
%_tmppath/RPM_BUILD_TEMPORARY_DIRECTORY
Теперь проблема решена. Осталось исправить статью в altlinux.org