[Apt-Rpm] rpm 4.4.9 woes for apt-rpm

Gary L. Greene Jr. greeneg at tolharadys.net
Mon Aug 27 23:13:13 PDT 2007


On Monday 27 August 2007 10:34:49 pm Ralf Corsepius wrote:
> On Tue, 2007-08-28 at 12:33 +1200, Tobias Gerschner wrote:
> > Hi,
> >
> > Thanks for the patch, attached are 2 further patches to get apt-get
> > compiled with rpm 4.4.9 .  Testing of apt-get yet to be done.
> >
> > Thx goes to Armin Kazmi ( apriori ) to helping me with his superior
> > C++ knowledge , so apt-0.5.15lorg3.92-cleanup.diff is his work.
> >
> > The other patch is a quick hack removing a definition I could not find
> > at all in the headers of rpm 4.4.9.
> >
> > If anyone finds issues with these please let us know.
>
> Your patch isn't correct, you are duplicating destructors, e.g. this:
>
> diff -Nur apt-0.5.15lorg3.92/apt-pkg/contrib/progress.cc
> apt-0.5.15lorg3.92.patched/apt-pkg/contrib/progress.cc ---
> apt-0.5.15lorg3.92/apt-pkg/contrib/progress.cc      2007-04-27
> 19:47:53.000000000 +1200 +++
> apt-0.5.15lorg3.92.patched/apt-pkg/contrib/progress.cc      2007-08-28
> 08:13:31.236306238 +1200 @@ -33,11 +33,18 @@
>     memset(&LastTime,0,sizeof(LastTime));
>  }
>                                                                        
> /*}}}*/ +//moved implementation
> +OpProgress::~OpProgress()
> +{
> +
> +}
> ...
>
> diff -Nur apt-0.5.15lorg3.92/apt-pkg/contrib/progress.h
> apt-0.5.15lorg3.92.patched/apt-pkg/contrib/progress.h
> --- apt-0.5.15lorg3.92/apt-pkg/contrib/progress.h       2007-03-19
> 07:09:42.000000000 +1200
> +++
> apt-0.5.15lorg3.92.patched/apt-pkg/contrib/progress.h       2007-08-28
> 08:13:31.261302424 +1200
> @@ -68,7 +68,7 @@
>     virtual void Done() {};
>
>     OpProgress();
> -   virtual ~OpProgress() {};
> +   virtual ~OpProgress();
>  };
>
>
> ---
>
> Here you are breaking backward compatibility:
>
> +// min/max operates have been declared deprecated and are no longer
> functional
> +// in g++ 4.2.1
> +//#if defined(__GNUG__)
> +//#define MIN(A,B) ((A) <? (B))
> +//#define MAX(A,B) ((A) >? (B))
> +//#endif
>
> ---
> diff -Nur apt-0.5.15lorg3.92/apt-pkg/rpm/rpmrecords.h
> apt-0.5.15lorg3.92.patched/apt-pkg/rpm/rpmrecords.h ---
> apt-0.5.15lorg3.92/apt-pkg/rpm/rpmrecords.h 2007-03-19 07:09:42.000000000
> +1200 +++ apt-0.5.15lorg3.92.patched/apt-pkg/rpm/rpmrecords.h 2007-08-28
> 08:28:39.662720092 +1200 @@ -22,6 +22,8 @@
>  #include <apt-pkg/pkgrecords.h>
>  #include <apt-pkg/fileutl.h>
>  #include <apt-pkg/rpmhandler.h>
> +//needed for RPMSENSE_* declarations
> +#include <rpm/rpmevr.h>
>
> rpmevr.h doesn't exist in upstream rpm. Apparently the fork of rpm you
> are using has broken the API incompatibly.
>
>
> Ralf
>
>
> _______________________________________________
> Apt-Rpm mailing list
> Apt-Rpm at lists.laiskiainen.org
> http://lists.laiskiainen.org/listinfo.cgi/apt-rpm-laiskiainen.org

Ralph,

it's not a fork, this is the upstream version of RPM from www.rpm5.org which 
is maintained by JBJ. Post-4.4.7, segments of the non-public API of librpm 
changed. Unfortunately, since APT knows _way_ too much about the private API 
than is really good for itself, these kind of changes are necessary to make 
it build with the new version of RPM. A good solution for this likely would 
be to have the differences between API abstracted or be surrounded by header 
guards.

-- 
Gary L. Greene, Jr.
Sent from: peorth.tolharadys.net
 23:08:32 up 9 days, 23:46,  2 users,  load average: 0.90, 0.72, 0.62
=========================================================================
Developer and Project Lead for the AltimatOS open source project
Volunteer Developer for the KDE open source project
 See www.tolharadys.net and www.kde.org for more information
=========================================================================

Please avoid sending me Word or PowerPoint attachments.



More information about the Apt-Rpm mailing list