[Apt-Rpm] New development release (apt-0.5.15lorg3.94)

Panu Matilainen pmatilai at laiskiainen.org
Mon Jan 14 05:00:04 PST 2008


On Mon, 14 Jan 2008, Anders F Björklund wrote:

> Panu Matilainen wrote:
>
>> Here goes Yet Another development release, executive summary of
>> changes since 0.5.15lorg3.93 follows:
>>
> ...
>>      * Fix build against rpm5.org 4.x versions (hopefully)
>>
>> Available from the usual spot at http://apt-rpm.org/testing/, sha1sum:
>> 9fdf30aed4f3eae0fe466e7b78b16dffa6fbe48f  apt-0.5.15lorg3.94.tar.bz2
>>
>> This time I think we're *really* getting close to a new stable release
>> (but knock wood ;) I've still some minor details like making
>> installations
>> with -q actually quiet again on my plate, but the issues are mostly
>> "cosmetical".
>>
>> Due to popular demand, I added some compatibility checks for rpm5.org
>> 4.x
>> versions (5.x is more work due to header interfaces changing completely
>> and is not going to make it to this release), please check that it
>> actually builds now. Mind you, not all features of rpm5.org >= 4.4.7
>> are
>> supported but the "traditional" bits might have a fair chance at
>> working
>> out of the box now, unless I've managed to completely f*** up the
>> checks.
>> Let me know ;)
>
> Here are the build errors when building apt-0.5.15lorg3.94a with the
> 4 versions of RPM (4.4,4.5,5.0,5.1) that are available in MacPorts:
>
> # port rpm - "RPM version 4.4.9"
> # port rpm45 - "RPM version 4.5" (-0.4)
>
>  ccache /usr/bin/g++-4.0 -DHAVE_CONFIG_H -I. -I../include
> -I../include/apt-pkg -DLIBDIR=\"/opt/local/lib\"
> -DPKGDATADIR=\"/opt/local/share/apt\"
> -DLOCALEDIR=\"/opt/local/share/locale\" -DAPT_DOMAIN=\"apt\"
> -I../lua/include -I../lua/local -I/opt/local/include/libxml2
> -I/opt/local/include -I/opt/local/include -I/opt/local/include/rpm -MT
> rpm/rpmpm.lo -MD -MP -MF rpm/.deps/rpmpm.Tpo -c rpm/rpmpm.cc
> -fno-common -DPIC -o rpm/.libs/rpmpm.o
> rpm/rpmpm.cc: In member function 'virtual bool
> pkgRPMLibPM::Process(std::vector<const char*, std::allocator<const
> char*> >&, std::vector<const char*, std::allocator<const char*> >&,
> std::vector<const char*, std::allocator<const char*> >&)':
> rpm/rpmpm.cc:907: error: invalid conversion from 'void* (*)(const
> void*, rpmCallbackType, rpmCallbackSize_t, rpmCallbackSize_t, const
> void*, void*)' to 'void* (*)(const void*, rpmCallbackType, long long
> unsigned int, long long unsigned int, const void*, void*)'
> rpm/rpmpm.cc:907: error:   initializing argument 2 of 'int
> rpmtsSetNotifyCallback(rpmts_s*, void* (*)(const void*,
> rpmCallbackType, long long unsigned int, long long unsigned int, const
> void*, void*), void*)'

Ah .. the callback interface types have changed further. Can be fixed, 
it just starts getting fairly ugly with all the variants.

> # port rpm50 - "rpm (RPM) 5.0.0"
> # port rpm-devel - "RPM version 5.0.SNAPSHOT.20080104"
>
>  ccache /usr/bin/g++-4.0 -DHAVE_CONFIG_H -I. -I../include
> -I../include/apt-pkg -DLIBDIR=\"/opt/local/lib\"
> -DPKGDATADIR=\"/opt/local/share/apt\"
> -DLOCALEDIR=\"/opt/local/share/locale\" -DAPT_DOMAIN=\"apt\"
> -I../lua/include -I../lua/local -I/opt/local/include/libxml2
> -I/opt/local/include -I/opt/local/include/rpm -I/opt/local/include
> -I/opt/local/include/rpm -MT rpm/aptcallback.lo -MD -MP -MF
> rpm/.deps/aptcallback.Tpo -c rpm/aptcallback.cc  -fno-common -DPIC -o
> rpm/.libs/aptcallback.o
> /opt/local/include/rpm/rpmurl.h:52: error: 'FD_t' does not name a type
> /opt/local/include/rpm/rpmurl.h:53: error: 'FD_t' does not name a type
> /opt/local/include/rpm/rpmte.h:553: error: 'FD_t' does not name a type
> /opt/local/include/rpm/rpmts.h:708: error: 'FD_t' does not name a type
> /opt/local/include/rpm/rpmts.h:716: error: 'FD_t' has not been declared
> /opt/local/include/rpm/rpmcli.h:407: error: 'FD_t' has not been declared
> rpm/aptcallback.cc: In function 'void* rpmCallback(const void*,
> rpmCallbackType, rpmCallbackSize_t, rpmCallbackSize_t, const void*,
> void*)':
> rpm/aptcallback.cc:51: error: 'FD_t' does not name a type
> rpm/aptcallback.cc:60: error: 'fd' was not declared in this scope
> rpm/aptcallback.cc:60: error: 'Fopen' was not declared in this scope
> rpm/aptcallback.cc:62: error: 'fdLink' was not declared in this scope
> rpm/aptcallback.cc:67: error: 'fdFree' was not declared in this scope
> rpm/aptcallback.cc:69: error: 'Fclose' was not declared in this scope
>
> The MacPorts install should be working on Fedora at least,
> but some of the dependencies might require updating still.

The above errors are just the tip of the iceberg with rpm5.org >= 5.0 (the 
headers aren't including everything they need), could be worked around but 
the rpm header data interface changes is something that can't be fixed 
with just fiddling with ifdefs and includes.

 	- Panu -



More information about the Apt-Rpm mailing list