Hello,
Have you experienced the mysterious error, “Only dest dir longer than base dir not supported”?
I have.
The Problem
When you build an rpm, the code is built in %{_builddir}
, which usually evaluates as %{_topdir}/BUILD
, which in turn evaluates as something like /home/you/rpmbuild/BUILD
. The built code (if built with GCC) ends up with loads of /home/you/rpmbuild/BUILD
paths embedded in it, and the script /usr/lib/rpm/debugedit
rewrites these paths to /usr/src/debug
so that the debuginfo rpms work. /usr/lib/rpm/debugedit
cannot extend strings, it can only shrink them. If you are seeing “Only dest dir longer than base dir not supported” then, somewhere in your build system, %{_builddir}
is defined as something that expands to a string shorter than /usr/src/debug
.
Example
In my case, I was building a glibc rpm in a VM that turned out not to have enough disk. I created a new disk, mounted it on /mnt
, and added the line %_topdir /mnt
to my ~/.rpmmacros
. The result? “Only dest dir longer than base dir not supported”. I fixed it by editing ~/.rpmmacros
to say %_topdir /mnt/rpmbuild
.
Briefly
/usr/src/debug # the reference /mnt/BUILD # too short! /mnt/rpmbuild/BUILD # long enough
Thank you,
The Mgt.