[Rpm-maint] massive 'make check' failures (first of all, because of atlocal.in)
Panu Matilainen
pmatilai at laiskiainen.org
Tue Sep 6 08:39:01 UTC 2011
On 08/21/2011 08:11 PM, Sergei Steshenko wrote:
> Hello,
>
> I am building a lot of stuff from sources in a manner each
> target is installed in a separate directory, e.g.:
>
> /mnt/sdb8/sergei/AFSWD_debug/20110601/file-5.08
> /mnt/sdb8/sergei/AFSWD_debug/20110601/mozilla_nss-3.12.11_nspr-4.8.9
> /mnt/sdb8/sergei/AFSWD_debug/20110601/db-5.2.28
> ,
> etc.
>
>
> The build is done automatically, and LD_LIBRARY_PATH is set
> automatically as needed, for example, for rpm-4.9.1 it is
> set this way:
>
> "
>
> LD_LIBRARY_PATH=/mnt/sdb8/sergei/AFSWD_debug/20110601/bison-2.4.3/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/db-5.2.28/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/file-5.08/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/gettext-0.18/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/libiconv_pre-1.13.1/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/libtool-2.4/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/lua-5.1.4/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/mozilla_nss-3.12.11_nspr-4.8.9/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/ncurses-5.8/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/popt-1.16/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/readline-6.2/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/sqlite-autoconf-3070701/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/tcl-8.5.9/lib:/mnt/sdb8/sergei/AFSWD_debug/20110601/tcl-8.5.9/lib/expect5.44.1.15:/mnt/sdb8/sergei/AFSWD_debug/20110601/tcl-8.5.9/lib/tcl8.5/graphviz:/mnt/sdb8/sergei/AFSWD_debug/20110601/zlib-1.2.5/lib
> export LD_LIBRARY_PATH
>
> ".
>
> 'make check' first of all had a lot of failures because 'rpm' couldn't load
> 'libdb-5.2.so' file.
>
> Digging the issue I've found that the root cause is in
> 'rpm-4.9.1/tests/atlocal.in' file, specifically in this:
>
> LD_LIBRARY_PATH="${abs_builddir}/testing at usrlibdir@"
>
> line. In reality this line becomes
>
> LD_LIBRARY_PATH="${abs_builddir}/testing/mnt/sdb8/sergei/AFSWD_debug/20110601/rpm-4.9.1/lib"
>
> in 'rpm-4.9.1/tests/atlocal' file, which is senseless anyway, i.e. this path
> doesn't exist.
>
> To improve the situation I repalced
>
> LD_LIBRARY_PATH="${abs_builddir}/testing at usrlibdir@"
>
> with
>
> export LD_LIBRARY_PATH="${abs_builddir}/lib:$LD_LIBRARY_PATH"
>
> - in my case LD_LIBRARY_PATH is definitely set. But a better
> solution is needed for general case.
That should be avoidable by building with LDFLAGS="-L<lots of paths>"
instead. Although having the test-suite just prepend instead of replace
LD_LIBRARY_PATH wouldn't be too bad...
>
> Still there are a lot of failures - mostly of
>
> +error: cannot open Packages database in /${prefix}/var/lib/rpm
> kind.
IIRC this is a bug somewhere in the config/make system that you'll
encounter if you build rpm without an explicit --prefix. Also there were
(and quite possibly still are) bugs in the test-suite which cause some
cases to fail unless --prefix=/usr is used.
> There should be a way to test 'rpm' not using root privileges.
The test-suite is intended to be run without root privileges (for
obvious reasons), that's why it uses fakechroot extensively. However (on
top of the above bugs) for all released rpm versions it occasionally
tries to read from the system rpmdb, and can incorrectly fail because of
that. In rpm.org HEAD, all of the test-cases run fully inside fakechroot
environment so it's not subject to problems like that anymore.
- Panu -
More information about the Rpm-maint
mailing list