On Jul 31, 2011, at 4:40 PM, Robert Xu wrote:

>> 
>> SHort answer:
>>        You won't miss a thing if you change your rpm.spec to do
>>                --without-semanage
>>        instead.
>> 
> 
> Got further after this :)
> (I don't even know what SuSE uses semanage in RPM for anyway...)
> 
> 
> I've ended up here next...
> http://slexy.org/view/s2f7L0QS0T
> 

This is the problem that everyone is encountering:
        Berkeley DB is both actually and de facto MANDATORY to build rpm.

The issue is that
        /usr/include/db51/db.h
and
        /usr/lib*/libdb-5.1.so

MUST exist to build RPM from a tarball easily. Everyone
is expecting RPM to just transparently deal with whatever
Berkeley DB is installed and that is NOT what is implemented
at the moment.

Check your ./configure output (or generated config.h) to confirm whether
Berkeley DB was found … checking …

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I../build -I../lib 
-I../lib -I../rpmdb -I../rpmio -I../misc -I../beecrypt/include 
-I../beecrypt/include -I../beecrypt -I../beecrypt -I../lua/local -I../lua/local 
-I../lua -I../lua -I../db -I../db -I../db/src -I../db/src -I../scripts 
-I../scripts -DRPM_OS_LINUX=030000 -I/usr/local/include -DRPM_OS_LINUX=030000 
-I/usr/local/include -fopenmp -fomit-frame-pointer -fmessage-length=0 -O2 -Wall 
-D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables 
-fasynchronous-unwind-tables -g -fno-strict-aliasing -ffunction-sections -g 
-D_GNU_SOURCE -D_REENTRANT -MT librpmdb_la-dbconfig.lo -MD -MP -MF 
.deps/librpmdb_la-dbconfig.Tpo -c dbconfig.c  -fPIC -DPIC -o 
.libs/librpmdb_la-dbconfig.o

I can tell from flags like
        -I../db
that the RPM configuration has defaulted to "internal" and Berkeley DB
is no longer in the rpm-5.4.1 tarball.

The easiest path to fix your build failure is just to install db51 on SuSE. You 
can
find what I use by "portably" (translation: its not drop-in
ready, but the db51.spec can easily be adjusted to build db-5.1.25):

        cvs -d :pserver:anonym...@rpm5.org:/v/rpm/cvs get distro/db51

You will need to add the db-5.1.25.tar.gz from Oracle and some copy
of db-1.85 from most any distro and then build/install a db51*.rpm.

All that's there is a Fedorable based db51.spec that does NOT install
        /usr/include/db.h
and whatever other goofiness that "system" Berekely DB does. So the
db51 recipe SHOULD drop-in most everywhere whit no fuss or muss.

RPM doesn't NEED db-5.1.25, any version back to db-4.5.x can be used
either externally/internally (see archives here for ways to do that, or ask).

But there's so many versions of Berkeley DB around that I've
deliberately chosen db-5.1.25 in order to make my rpm release QA as simple
as possible by targeting one single version of Berkeley DB.

hth

73 de Jeff

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to