RPM Community Forums

Mailing List Message of <rpm-users>

Re: libzypp and rpm-5.3.10

From: Jeff Johnson <n3npq@mac.com>
Date: Sat 30 Jul 2011 - 20:11:16 CEST
Message-id: <81BA464C-EF88-4520-BA73-FA1CAB460201@mac.com>

On Jul 30, 2011, at 1:47 PM, Eric MSP Veith wrote:

> Hash: SHA1
> Hello,
> did somebody have any luck with building libzypp against rpm-5.3.10? I've 
> weeded out most of the simple compile errors, but I'm stuck here:

Poky-Yacto has succeeded using zipper -> rpm-5.4.0 (API is nearly the same,
rpm-5.4.0 was just to get out of Mandriva's way).

The patches were pretty minor iirc.

> cd /usr/src/gnyubuild/build/libzypp-9.8.9/build/zypp && /usr/bin/c++   -
> D_RPM_5 -DHAVE_UDEV -DLOCALEDIR=\"/usr/share/locale\" -DTEXTDOMAIN=\"zypp\" 
> - -O2 -g -m32 -mtune=generic -march=i686 -fasynchronous-unwind-tables -
> D_RPMDB_INTERNAL -D_RPMDB_INTERNAL  -fno-strict-aliasing -fPIC -g -Wall -
> Woverloaded-virtual -Wnon-virtual-dtor -Wl,-as-needed -fPIC -
> I/usr/src/gnyubuild/build/libzypp-9.8.9 -
> I/usr/src/gnyubuild/build/libzypp-9.8.9/build -I/usr/include/rpm -
> I/usr/include/libxml2 -I/usr/src/gnyubuild/build/libzypp-9.8.9/build/zypp    
> CMakeFiles/zypp.dir/target/rpm/BinHeader.cc.o -c 
> /usr/src/gnyubuild/build/libzypp-9.8.9/zypp/target/rpm/BinHeader.cc
> In file included from /usr/include/rpm/rpm4compat.h:60:0,
>                 from 

Avoid rpm*compat.h and go native rpm-5.3.x is what I would suggest (what Poky-Yacto did).

There is no desire to maintain a "compatible" API though what's
there mostly works. But you likely need to pick-n-choose because
there's no such thing as a rp[m4 API anymore than there is an rpm5 API.

Things change when necessary: and having an API isn't that high a priority
because most interest is in bindings, not in the API.

> /usr/src/gnyubuild/build/libzypp-9.8.9/zypp/target/rpm/librpm.h:19,
>                 from 
> /usr/src/gnyubuild/build/libzypp-9.8.9/zypp/target/rpm/BinHeader.cc:12:
> /usr/include/rpm/rpmdb.h: In function 'DB_TXN* dbiTxnid(_dbiIndex*)':
> /usr/include/rpm/rpmdb.h:863:50: error: invalid conversion from 'void*' to 
> 'DB_TXN*'
> /usr/include/rpm/rpmdb.h: In function 'int rpmlkId(rpmdb_s*, uint32_t*)':
> /usr/include/rpm/rpmdb.h:873:29: error: invalid conversion from 'void*' to 
> 'DB_ENV*'
> /usr/include/rpm/rpmdb.h: In function 'int rpmlkIdFree(rpmdb_s*, uint32_t)':
> /usr/include/rpm/rpmdb.h:884:29: error: invalid conversion from 'void*' to 
> 'DB_ENV*'
> /usr/include/rpm/rpmdb.h: In function 'int rpmlkGet(rpmdb_s*, DBT*, 
> uint32_t, void*)':
> /usr/include/rpm/rpmdb.h:895:29: error: invalid conversion from 'void*' to 
> 'DB_ENV*'
> /usr/include/rpm/rpmdb.h:899:69: error: invalid conversion from 'uint32_t' 
> to 'db_lockmode_t'
> /usr/include/rpm/rpmdb.h:899:69: error: invalid conversion from 'void*' to 
> 'DB_LOCK*'

Theses aren't difficult issues to fix: they are all Berkeley DB typedef's missing,
grab whatever you need from whatever db.h is in use and bigger out how to
include when compiling.

73 de Jeff
Received on Sat Jul 30 20:12:01 2011
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.