[Rpm-maint] Getting make check to work

Panu Matilainen pmatilai at laiskiainen.org
Wed Mar 6 13:28:51 UTC 2013

On 03/06/2013 02:12 PM, Mark Wielaard wrote:
> On Wed, 2013-03-06 at 10:44 +0200, Panu Matilainen wrote:
>> On 03/05/2013 11:15 PM, Mark Wielaard wrote:
>>> I also tried with srcdir == builddir and with the latest release
>>> instead of a git checkout and on fedora 18. But the issue
>>> is always the same with lots of failures because something seems to
>>> use '${prefix}' literally.
>>> I am configuring with: --with-external-db \
>>>     CPPFLAGS="-I/usr/include/nspr4 -I/usr/include/nss3 -I/usr/include/db4"
>>> Does this ring any bell?
>> Indeed it does... there's an ages old flaw in the configure/make system
>> that causes this unless you pass an explicit --prefix or --localstatedir
>> to configure. Should really do something about it, just never gotten
>> around to it :-/
> Aha, thanks. Would you mind providing the way you setup things to get
> make check to work? I assume you are using srcdir == buildir and some
> --prefix= configure flag. But which one? Using --prefix=/usr doesn't
> really seem to help, still lots of failures. --prefix=/tmp just says
> that it cannot create testing/tmp... --prefix=/usr/local/rpm gives 116
> failed out of 266 run (I dunno what to expect, but that seems a rather
> high number of failures).

The expectation is that breaking the test-suite is strictly forbidden at 
all times, ie everything must pass. So whenever you see failures, its 
either some configuration thing or somebody deserves a spanking :)

That said, the test-suite has been far too dependent on rpm 
configuration and other such things. I just pushed a pile of fixes to 
address some of the worst offenders, so that the test-suite is supposed 
to now pass without specifying any --prefix or --localdir or other 
switches. And its supposed to work with srcdir != builddir too.

There are still at least two things that depend on configuration though: 
python bindings and lua are tested whether support for them is built in 
or not, but other than that the test-suite should be much closer to 
working out of the box regardless of how rpm was configured. So for 
example this (which is basically what you were using) works now:

./configure CPPFLAGS="`pkg-config --cflags nss`" --with-external-db
make check

...and ditto with a separate build-dir. Note that you'll want to do 
"make clean" first to force a clean starting point for the test-suite, 
it doesn't always get properly regenerated when eg test specs change.
It shouldn't be so stricly needed anymore but I'm attaching my "rpmgit" 
script anyway, that's what I normally use for building rpm out of git 
(in part because of the bugs wrt --prefix and all...)

And finally, thanks for complaining about this, really. One can only 
explain known bugs so many times before it gets so irritating as to 
mandate a fix, which was the case here :)

	- Panu -
-------------- next part --------------

#export CPPFLAGS="-I/usr/include/beecrypt"
export CPPFLAGS="`pkg-config --cflags nss`"

#export CFLAGS="`rpm --eval %{optflags}`"
export CFLAGS="-O0 -g"

# to compile with llvm / clang
#export CC=clang
#export CFLAGS="-O2 -g"

./autogen.sh --noconfigure && \
$WRAP ./configure \
	--build=`rpm --eval %{_target_platform}` \
	--prefix=/usr \
	--libdir=`rpm --eval %{_libdir}` \
	--sysconfdir=/etc \
	--localstatedir=/var \
	--enable-python \
	--with-vendor=redhat \
	--with-external-db \
	--without-apidocs \
	--with-cap \
	--with-lua \
	--with-selinux $* && \
$WRAP make -j4

More information about the Rpm-maint mailing list