--- /dev/null
+From Wilfried.Weissmann@gmx.at Fri Oct 20 22:16:18 2006
+Date: Fri, 20 Oct 2006 21:15:58 +0200
+From: Wilfried Weissmann <Wilfried.Weissmann@gmx.at>
+To: Panu Matilainen <pmatilai@laiskiainen.org>
+Cc: Wilfried Weissmann <wweissmann@gmx.at>, apt-rpm@lists.laiskiainen.org
+Subject: Re: [OT] who maintains aptitude for rpm? (fwd)
+
+Hi,
+
+Here is the aptitude patch for 0.3.5.1. The work is based on the patch
+from mandriva. I did some upgrades, installs and package removals this
+week on a fedora 5 computer and I did not have any serious problems.
+When I do a update of the repository I get warnings about that there are
+no checksum files. However the update is working fine.
+
+Bye,
+Wilfried
+
+ [ Part 2: "Attached Text" ]
+
+diff -Nurp aptitude-0.3.5.1-orig/configure.ac aptitude-0.3.5.1/configure.ac
+--- aptitude-0.3.5.1-orig/configure.ac 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/configure.ac 2006-10-12 15:39:30.000000000 +0200
+@@ -23,6 +23,15 @@ AC_CHECK_LIB(pthread, main,
+ HAVE_LIBPTHREAD=1
+ , [AC_MSG_ERROR([Can't find the POSIX thread libraries])])
+
++dnl popt checking
++AC_CHECK_LIB(popt, main,
++ HAVE_POPT=1,
++ AC_MSG_ERROR([Can't find the popt library -- please install popt-devel package]))
++dnl rpm checking
++AC_CHECK_LIB(rpm, main,
++ HAVE_RPM=1,
++ AC_MSG_ERROR([Can't find the rpm library -- please install librpm-devel package]))
++
+ ALL_LINGUAS="ar bs ca cs da de el es eu fi fr gl it ja lt nb nl nn pl pt pt_BR ro ru sk tl tr vi zh_CN zh_TW"
+ AM_GNU_GETTEXT([external])
+
+@@ -145,6 +154,24 @@ then
+ [AC_MSG_ERROR([POSIX thread header not installed])])
+ fi
+
++if test x$HAVE_RPM = x1
++then
++ AC_CHECK_HEADER(rpm/rpmio.h,
++ CXXFLAGS="$CXXFLAGS -I/usr/include/rpm"
++ LDFLAGS="$LDFLAGS -lrpm"
++ [AC_DEFINE(HAVE_RPM, , [Define if rpm is available])],
++ [AC_MSG_ERROR([RPM headers not found. Please verify your build system.])])
++fi
++
++if test x$HAVE_POPT = x1
++then
++ AC_CHECK_HEADER(popt.h,
++ CXXFLAGS="$CXXFLAGS"
++ LDFLAGS="$LDFLAGS -lpopt"
++ [AC_DEFINE(HAVE_POPT, , [Define if popt is available])],
++ [AC_MSG_ERROR([POPT headers not found. Please verify your build system.])])
++fi
++
+ WERROR="-Werror"
+
+ AC_ARG_ENABLE(dynamic-backtrace,
+diff -Nurp aptitude-0.3.5.1-orig/doc/aptitude-html.xsl aptitude-0.3.5.1/doc/aptitude-html.xsl
+--- aptitude-0.3.5.1-orig/doc/aptitude-html.xsl 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/doc/aptitude-html.xsl 2006-10-12 15:39:30.000000000 +0200
+@@ -5,7 +5,7 @@
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+-<xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/html/chunk.xsl"/>
++<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl"/>
+
+ <xsl:import href="aptitude-common.xsl"/>
+
+diff -Nurp aptitude-0.3.5.1-orig/doc/aptitude-man.xsl aptitude-0.3.5.1/doc/aptitude-man.xsl
+--- aptitude-0.3.5.1-orig/doc/aptitude-man.xsl 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/doc/aptitude-man.xsl 2006-10-12 15:39:30.000000000 +0200
+@@ -5,7 +5,7 @@
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+-<xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl"/>
++<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl"/>
+
+ <xsl:template match='replaceable'>
+ <xsl:text>\fI<</xsl:text><xsl:apply-templates/><xsl:text>>\fR</xsl:text>
+diff -Nurp aptitude-0.3.5.1-orig/doc/aptitude-txt.xsl aptitude-0.3.5.1/doc/aptitude-txt.xsl
+--- aptitude-0.3.5.1-orig/doc/aptitude-txt.xsl 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/doc/aptitude-txt.xsl 2006-10-12 15:39:30.000000000 +0200
+@@ -5,7 +5,7 @@
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+-<xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl"/>
++<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"/>
+
+ <xsl:import href="aptitude-common.xsl"/>
+
+diff -Nurp aptitude-0.3.5.1-orig/doc/cs/aptitude.xml aptitude-0.3.5.1/doc/cs/aptitude.xml
+--- aptitude-0.3.5.1-orig/doc/cs/aptitude.xml 2006-10-11 16:06:46.000000000 +0200
++++ aptitude-0.3.5.1/doc/cs/aptitude.xml 2006-10-12 15:39:30.000000000 +0200
+@@ -1,7 +1,7 @@
+ <?xml version="1.0" encoding="iso-8859-2" standalone="no"?>
+
+ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+-"file:///usr/share/xml/docbook/schema/dtd/4.2/docbookx.dtd" [
++"file:///usr/share/sgml/docbook/xml-dtd-4.2-1.0-30/docbookx.dtd" [
+ <!ENTITY aptitude "<command>aptitude</command>">
+ <!ENTITY apt '<systemitem class="library">apt</systemitem>'>
+ <!ENTITY dselect '<command>dselect</command>'>
+diff -Nurp aptitude-0.3.5.1-orig/doc/cs/Makefile.am aptitude-0.3.5.1/doc/cs/Makefile.am
+--- aptitude-0.3.5.1-orig/doc/cs/Makefile.am 2006-10-11 16:06:46.000000000 +0200
++++ aptitude-0.3.5.1/doc/cs/Makefile.am 2006-10-12 15:39:30.000000000 +0200
+@@ -59,7 +59,7 @@ doc-html-stamp: aptitude.xml ../aptitude
+
+ mkdir output-html/images/
+ ln -f $(srcdir)/images/*.png output-html/images/
+- for x in caution important note tip warning; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png output-html/images/; done
+- for x in home next prev up; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.gif output-html/images/; done
++ for x in caution important note tip warning; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.png output-html/images/; done
++ for x in home next prev up; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.gif output-html/images/; done
+
+ touch doc-html-stamp
+diff -Nurp aptitude-0.3.5.1-orig/doc/de/Makefile.am aptitude-0.3.5.1/doc/de/Makefile.am
+--- aptitude-0.3.5.1-orig/doc/de/Makefile.am 2006-10-11 16:06:46.000000000 +0200
++++ aptitude-0.3.5.1/doc/de/Makefile.am 2006-10-12 15:39:30.000000000 +0200
+@@ -61,8 +61,8 @@ doc-html-stamp: $(XMLSOURCES) $(srcdir)/
+
+ mkdir output-html/images/
+ ln -f $(srcdir)/images/*.png output-html/images/
+- for x in caution important note tip warning; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png output-html/images/; done
+- for x in home next prev up; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.gif output-html/images/; done
++ for x in caution important note tip warning; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.png output-html/images/; done
++ for x in home next prev up; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.gif output-html/images/; done
+
+ touch doc-html-stamp
+
+diff -Nurp aptitude-0.3.5.1-orig/doc/en/Makefile.am aptitude-0.3.5.1/doc/en/Makefile.am
+--- aptitude-0.3.5.1-orig/doc/en/Makefile.am 2006-10-11 16:06:46.000000000 +0200
++++ aptitude-0.3.5.1/doc/en/Makefile.am 2006-10-12 15:39:30.000000000 +0200
+@@ -53,7 +53,7 @@ doc-html-stamp: aptitude.xml manpage.xml
+
+ mkdir output-html/images/
+ ln -f $(srcdir)/images/*.png output-html/images/
+- for x in caution important note tip warning; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png output-html/images/; done
+- for x in home next prev up; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.gif output-html/images/; done
++ for x in caution important note tip warning; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.png output-html/images/; done
++ for x in home next prev up; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.gif output-html/images/; done
+
+ touch doc-html-stamp
+diff -Nurp aptitude-0.3.5.1-orig/doc/fi/Makefile.am aptitude-0.3.5.1/doc/fi/Makefile.am
+--- aptitude-0.3.5.1-orig/doc/fi/Makefile.am 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/doc/fi/Makefile.am 2006-10-12 15:39:30.000000000 +0200
+@@ -60,7 +60,7 @@ doc-html-stamp: aptitude.xml manpage.xml
+
+ mkdir output-html/images/
+ ln -f $(srcdir)/images/*.png output-html/images/
+- for x in caution important note tip warning; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png output-html/images/; done
+- for x in home next prev up; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.gif output-html/images/; done
++ for x in caution important note tip warning; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.png output-html/images/; done
++ for x in home next prev up; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.gif output-html/images/; done
+
+ touch doc-html-stamp
+diff -Nurp aptitude-0.3.5.1-orig/doc/fr/Makefile.am aptitude-0.3.5.1/doc/fr/Makefile.am
+--- aptitude-0.3.5.1-orig/doc/fr/Makefile.am 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/doc/fr/Makefile.am 2006-10-12 15:39:30.000000000 +0200
+@@ -56,7 +56,7 @@ doc-html-stamp: aptitude.xml manpage.xml
+
+ mkdir output-html/images/
+ ln -f $(srcdir)/images/*.png output-html/images/
+- for x in caution important note tip warning; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.png output-html/images/; done
+- for x in home next prev up; do ln -s /usr/share/xml/docbook/stylesheet/nwalsh/images/$$x.gif output-html/images/; done
++ for x in caution important note tip warning; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.png output-html/images/; done
++ for x in home next prev up; do ln -s /usr/share/sgml/docbook/xsl-stylesheets/images/$$x.gif output-html/images/; done
+
+ touch doc-html-stamp
+diff -Nurp aptitude-0.3.5.1-orig/Makefile.am aptitude-0.3.5.1/Makefile.am
+--- aptitude-0.3.5.1-orig/Makefile.am 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/Makefile.am 2006-10-12 15:39:30.000000000 +0200
+@@ -17,12 +17,13 @@ EXTRA_DIST = config.rpath ChangeLog.SVN
+ $(TLMANPAGES) $(TLHELPTXTS)
+
+ pkgdatadir=$(datadir)/$(PACKAGE)
++pkgstatedir=$(localstatedir)/$(PACKAGE)
+
+ pkgdata_DATA = $(TLHELPTXTS) COPYING NEWS \
+ function_groups function_pkgs aptitude-defaults
+
+ install-data-local:
+- [ -d $(DESTDIR)$(STATEDIR) ] || $(mkinstalldirs) $(DESTDIR)$(STATEDIR)
++ [ -d $(DESTDIR)$(pkgstatedir) ] || $(mkinstalldirs) $(DESTDIR)$(pkgstatedir)
+ # FIXME: this really ought to use the autoconf directory variables
+
+ for l in $(MANPAGE_LOCALES); do \
+@@ -31,7 +32,7 @@ install-data-local:
+ done
+
+ uninstall-local:
+- rm -fr $(DESTDIR)$(STATEDIR)
++ rm -fr $(DESTDIR)$(pkgstatedir)
+ # Is -r a good idea here?
+
+
+diff -Nurp aptitude-0.3.5.1-orig/src/cmdline/cmdline_changelog.cc aptitude-0.3.5.1/src/cmdline/cmdline_changelog.cc
+--- aptitude-0.3.5.1-orig/src/cmdline/cmdline_changelog.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/cmdline/cmdline_changelog.cc 2006-10-12 15:39:47.000000000 +0200
+@@ -14,7 +14,6 @@
+ #include <generic/apt/pkg_changelog.h>
+
+ #include <apt-pkg/error.h>
+-#include <apt-pkg/metaindex.h>
+ #include <apt-pkg/progress.h>
+ #include <apt-pkg/sourcelist.h>
+ #include <apt-pkg/srcrecords.h>
+@@ -23,6 +22,7 @@
+
+ using namespace std;
+
++#if 0
+ /** Represents the information needed to retrieve a changelog. */
+ struct changelog_entity
+ {
+@@ -54,6 +54,7 @@ struct changelog_entity
+ pkg = other.pkg;
+ ver = other.ver;
+ section = other.section;
++ return *this;
+ }
+ };
+
+@@ -185,9 +186,12 @@ changelog_entity find_src_archive(pkgSou
+
+ return changelog_entity();
+ }
++#endif
+
+ bool do_cmdline_changelog(const vector<string> &packages)
+ {
++ _error->Error(_("Somebody was too lazy to implement this! FIXME"));
++#if 0
+ const char *pager="/usr/bin/sensible-pager";
+
+ if(access("/usr/bin/sensible-pager", X_OK)!=0)
+@@ -310,6 +314,7 @@ bool do_cmdline_changelog(const vector<s
+ // Run the user's pager.
+ system((string(pager) + " " + filename.get_name()).c_str());
+ }
++#endif
+ }
+
+ // TODO: fetch them all in one go.
+diff -Nurp aptitude-0.3.5.1-orig/src/cmdline/cmdline_prompt.cc aptitude-0.3.5.1/src/cmdline/cmdline_prompt.cc
+--- aptitude-0.3.5.1-orig/src/cmdline/cmdline_prompt.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/cmdline/cmdline_prompt.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -21,10 +21,10 @@
+ #include <vscreen/vscreen.h>
+
+ #include <apt-pkg/algorithms.h>
+-#include <apt-pkg/dpkgpm.h>
+ #include <apt-pkg/error.h>
+ #include <apt-pkg/sourcelist.h>
+ #include <apt-pkg/strutl.h>
++#include <apt-pkg/pkgsystem.h>
+
+ using namespace std;
+
+@@ -51,7 +51,7 @@ static bool get_fetchinfo(fetchinfo &f)
+ if(!l.ReadMainList())
+ return _error->Error(_("Couldn't read list of sources"));
+
+- pkgDPkgPM pm(*apt_cache_file);
++ pkgPackageManager &pm = *_system->CreatePM(*apt_cache_file);
+ pm.GetArchives(&fetcher, &l, apt_package_records);
+
+ f.FetchBytes=fetcher.FetchNeeded();
+diff -Nurp aptitude-0.3.5.1-orig/src/dep_item.cc aptitude-0.3.5.1/src/dep_item.cc
+--- aptitude-0.3.5.1-orig/src/dep_item.cc 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/dep_item.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -31,7 +31,8 @@
+ #include <generic/apt/apt.h>
+ #include <generic/apt/config_signal.h>
+
+-#include <apt-pkg/version.h>
++#include <apt-pkg/pkgsystem.h>
++#include <apt-pkg/configuration.h>
+
+ using namespace std;
+ using namespace __gnu_cxx;
+diff -Nurp aptitude-0.3.5.1-orig/src/desc_parse.cc aptitude-0.3.5.1/src/desc_parse.cc
+--- aptitude-0.3.5.1-orig/src/desc_parse.cc 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/desc_parse.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -72,10 +72,14 @@ static fragment *make_level_fragment(con
+ wstring::size_type &start)
+ {
+ vector<fragment*> fragments;
++
++#if 0
+ bool first=true;
++#endif
+
+ while(start<desc.size())
+ {
++#if 0
+ wstring::size_type loc=start;
+ unsigned int nspaces;
+
+@@ -225,6 +229,19 @@ static fragment *make_level_fragment(con
+ fragments.push_back(wrapbox(text_fragment(par)));
+ }
+ }
++#endif
++ wstring::size_type amt=0;
++
++ while(start+amt<desc.size() && desc[start+amt]!=L'\n')
++ ++amt;
++
++ fragments.push_back(wrapbox(text_fragment(wstring(desc, start, amt))));
++
++ start+=amt;
++
++ // Skip the newline
++ if(start<desc.size())
++ ++start;
+ }
+
+ return sequence_fragment(fragments);
+@@ -235,13 +252,6 @@ fragment *make_desc_fragment(const wstri
+ wstring::size_type loc=0;
+ vector<fragment*> fragments;
+
+- // Skip the short description
+- while(loc<desc.size() && desc[loc]!=L'\n')
+- ++loc;
+-
+- if(loc<desc.size()) // Skip the '\n'
+- ++loc;
+-
+ // Skip leading whitespace on the first line if there is any.
+ if(loc<desc.size() && desc[loc] == L' ')
+ ++loc;
+diff -Nurp aptitude-0.3.5.1-orig/src/download_item.cc aptitude-0.3.5.1/src/download_item.cc
+--- aptitude-0.3.5.1-orig/src/download_item.cc 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/download_item.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -42,8 +42,11 @@ style download_item::get_normal_style()
+ return vs_treeitem::get_normal_style()+get_style("DownloadHit");
+ case pkgAcquire::Item::StatError:
+ return vs_treeitem::get_normal_style()+get_style("Error");
++// Not yet implemented in apt 0.5
++#if 0
+ case pkgAcquire::Item::StatAuthError:
+ return vs_treeitem::get_normal_style()+get_style("Error");
++#endif
+ default:
+ assert(0);
+ }
+@@ -104,9 +107,12 @@ void download_item::paint(vs_tree *win,
+ case pkgAcquire::Item::StatError:
+ output+=item.Owner->ErrorText;
+ break;
++// Not yet implemented in apt 0.5
++#if 0
+ case pkgAcquire::Item::StatAuthError:
+ output+=item.Owner->ErrorText;
+ break;
++#endif
+ }
+
+ win->show_string_as_progbar(0, y, transcode(output),
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/apt.cc aptitude-0.3.5.1/src/generic/apt/apt.cc
+--- aptitude-0.3.5.1-orig/src/generic/apt/apt.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/apt.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -597,6 +597,8 @@ bool package_recommended(const pkgCache:
+
+ bool package_trusted(const pkgCache::VerIterator &ver)
+ {
++// Not yet implemented in apt 0.5
++#if 0
+ for(pkgCache::VerFileIterator i = ver.FileList(); !i.end(); ++i)
+ {
+ pkgIndexFile *index;
+@@ -604,7 +606,7 @@ bool package_trusted(const pkgCache::Ver
+ if(apt_source_list->FindIndex(i.File(), index) && !index->IsTrusted())
+ return false;
+ }
+-
++#endif
+ return true;
+ }
+
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/aptitudepolicy.h aptitude-0.3.5.1/src/generic/apt/aptitudepolicy.h
+--- aptitude-0.3.5.1-orig/src/generic/apt/aptitudepolicy.h 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/aptitudepolicy.h 2006-10-12 15:39:30.000000000 +0200
+@@ -17,7 +17,7 @@
+ class aptitudePolicy:public pkgPolicy
+ {
+ public:
+- aptitudePolicy::aptitudePolicy(pkgCache *Owner)
++ aptitudePolicy(pkgCache *Owner)
+ :pkgPolicy(Owner) {}
+
+ bool IsImportantDep(pkgCache::DepIterator dep);
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/aptitude_resolver_universe.h aptitude-0.3.5.1/src/generic/apt/aptitude_resolver_universe.h
+--- aptitude-0.3.5.1-orig/src/generic/apt/aptitude_resolver_universe.h 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/aptitude_resolver_universe.h 2006-10-12 15:39:30.000000000 +0200
+@@ -20,6 +20,8 @@
+ #ifndef APTITUDE_RESOLVER_UNIVERSE_H
+ #define APTITUDE_RESOLVER_UNIVERSE_H
+
++#include <assert.h>
++
+ #include <apt-pkg/pkgcache.h>
+ #include <apt-pkg/pkgsystem.h>
+ #include <apt-pkg/version.h>
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/download_install_manager.cc aptitude-0.3.5.1/src/generic/apt/download_install_manager.cc
+--- aptitude-0.3.5.1-orig/src/generic/apt/download_install_manager.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/download_install_manager.cc 2006-10-12 15:39:47.000000000 +0200
+@@ -26,15 +26,16 @@
+ #include <aptitude.h>
+
+ #include <apt-pkg/acquire-item.h>
+-#include <apt-pkg/dpkgpm.h>
+ #include <apt-pkg/error.h>
+ #include <apt-pkg/sourcelist.h>
++#include <apt-pkg/pkgsystem.h>
+
+ using namespace std;
+
+ download_install_manager::download_install_manager(bool _download_only)
+- : log(NULL), download_only(_download_only), pm(new pkgDPkgPM(*apt_cache_file))
++ : log(NULL), download_only(_download_only)
+ {
++ pm=_system->CreatePM(*apt_cache_file);
+ }
+
+ download_install_manager::~download_install_manager()
+@@ -133,13 +134,12 @@ download_manager::result download_instal
+
+ result rval = success;
+
+- pkgPackageManager::OrderResult pmres = pm->DoInstall(aptcfg->FindI("APT::Status-Fd", -1));
++ pkgPackageManager::OrderResult pmres = pm->DoInstall();
+ switch(pmres)
+ {
+ case pkgPackageManager::Failed:
+ _error->DumpErrors();
+- cerr << _("A package failed to install. Trying to recover:") << endl;
+- system("dpkg --configure -a");
++ cerr << _("A package failed to install.") << endl;
+ _error->Discard();
+
+ rval = failure;
+@@ -162,7 +162,7 @@ download_manager::result download_instal
+ if(!apt_cache_file->GainLock())
+ // This really shouldn't happen.
+ {
+- _error->Error(_("Could not regain the system lock! (Perhaps another apt or dpkg is running?)"));
++ _error->Error(_("Could not regain the system lock! (Perhaps another apt or rpm is running?)"));
+ return failure;
+ }
+
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/download_manager.cc aptitude-0.3.5.1/src/generic/apt/download_manager.cc
+--- aptitude-0.3.5.1-orig/src/generic/apt/download_manager.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/download_manager.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -36,5 +36,5 @@ pkgAcquire::RunResult download_manager::
+
+ pkgAcquire::RunResult download_manager::do_download(int PulseInterval)
+ {
+- return fetcher->Run(PulseInterval);
++ return fetcher->Run();
+ }
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/log.cc aptitude-0.3.5.1/src/generic/apt/log.cc
+--- aptitude-0.3.5.1-orig/src/generic/apt/log.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/log.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -66,7 +66,7 @@ bool do_log(const string &log,
+
+ fprintf(f, "Aptitude " VERSION ": %s\n%s\n\n",
+ _("log report"), timestr.c_str());
+- fprintf(f, _("IMPORTANT: this log only lists intended actions; actions which fail due to\ndpkg problems may not be completed.\n\n"));
++ fprintf(f, _("IMPORTANT: this log only lists intended actions; actions which fail due to\nrpm problems may not be completed.\n\n"));
+ fprintf(f, _("Will install %li packages, and remove %li packages.\n"),
+ (*apt_cache_file)->InstCount(), (*apt_cache_file)->DelCount());
+
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/tags.cc aptitude-0.3.5.1/src/generic/apt/tags.cc
+--- aptitude-0.3.5.1-orig/src/generic/apt/tags.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/tags.cc 2006-10-12 15:39:47.000000000 +0200
+@@ -30,6 +30,7 @@
+
+ #include <ctype.h>
+ #include <string.h>
++#include <assert.h>
+
+ #include <sigc++/functors/mem_fun.h>
+
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/apt/tasks.cc aptitude-0.3.5.1/src/generic/apt/tasks.cc
+--- aptitude-0.3.5.1-orig/src/generic/apt/tasks.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/apt/tasks.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -48,6 +48,7 @@ static void update_tasks(const pkgCache:
+ // tasks structure.
+ assert(tasks_by_package);
+
++#if 0
+ list<string> &lst=tasks_by_package[pkg->ID];
+
+ lst.clear();
+@@ -90,6 +91,7 @@ static void update_tasks(const pkgCache:
+ if(loc!=tasks.size())
+ lst.push_back(string(tasks, loc));
+ }
++#endif
+ }
+
+ bool task::keys_present()
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/problemresolver/dummy_universe.h aptitude-0.3.5.1/src/generic/problemresolver/dummy_universe.h
+--- aptitude-0.3.5.1-orig/src/generic/problemresolver/dummy_universe.h 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/problemresolver/dummy_universe.h 2006-10-12 15:39:30.000000000 +0200
+@@ -28,6 +28,7 @@
+ #include <set>
+ #include <string>
+ #include <vector>
++#include <assert.h>
+
+ #include <generic/util/exception.h>
+
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/util/temp.h aptitude-0.3.5.1/src/generic/util/temp.h
+--- aptitude-0.3.5.1-orig/src/generic/util/temp.h 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/util/temp.h 2006-10-12 15:39:30.000000000 +0200
+@@ -25,6 +25,8 @@
+
+ #include <string>
+
++#include <assert.h>
++
+ #include "exception.h"
+ #include "threads.h"
+
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/util/threads.h aptitude-0.3.5.1/src/generic/util/threads.h
+--- aptitude-0.3.5.1-orig/src/generic/util/threads.h 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/util/threads.h 2006-10-12 15:39:30.000000000 +0200
+@@ -586,7 +586,7 @@ namespace threads
+ * performed.
+ */
+ template<typename Mutator>
+- void box::update(const Mutator &m);
++ void update(const Mutator &m);
+ };
+
+ /** A box specialized for 'void'; may make it easier to write
+@@ -621,7 +621,7 @@ namespace threads
+ bool timed_put(const timespec &until);
+
+ template<typename Mutator>
+- void box::update(const Mutator &m)
++ void update(const Mutator &m)
+ {
+ take();
+ try
+diff -Nurp aptitude-0.3.5.1-orig/src/generic/util/util.cc aptitude-0.3.5.1/src/generic/util/util.cc
+--- aptitude-0.3.5.1-orig/src/generic/util/util.cc 2006-10-11 16:06:47.000000000 +0200
++++ aptitude-0.3.5.1/src/generic/util/util.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -27,6 +27,7 @@
+ #include <sys/types.h>
+ #include <time.h>
+ #include <unistd.h>
++#include <assert.h>
+
+ using namespace std;
+
+diff -Nurp aptitude-0.3.5.1-orig/src/pkg_info_screen.cc aptitude-0.3.5.1/src/pkg_info_screen.cc
+--- aptitude-0.3.5.1-orig/src/pkg_info_screen.cc 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/pkg_info_screen.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -79,7 +79,7 @@ void pkg_grouppolicy_info::setup_package
+ pkgRecords::Parser &rec=apt_package_records->Lookup(ver.FileList());
+
+ string desc=apt_package_records->Lookup(ver.FileList()).LongDesc();
+- string shortdesc=string(desc, 0, desc.find('\n'));
++ string shortdesc=apt_package_records->Lookup(ver.FileList()).ShortDesc();
+
+ vector<fragment*> frags;
+
+diff -Nurp aptitude-0.3.5.1-orig/src/vscreen/vs_menubar.cc aptitude-0.3.5.1/src/vscreen/vs_menubar.cc
+--- aptitude-0.3.5.1-orig/src/vscreen/vs_menubar.cc 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/vscreen/vs_menubar.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -309,7 +309,8 @@ int vs_menubar::width_request()
+ }
+
+ // Expand the width as needed to account for active menus.
+- for(activemenulist::iterator i=active_menus.begin(), num=0;
++ int num=0;
++ for(activemenulist::iterator i=active_menus.begin();
+ i!=active_menus.end();
+ i++, num++)
+ {
+@@ -345,7 +346,8 @@ int vs_menubar::height_request(int w)
+
+ int h=always_visible?1:0;
+
+- for(activemenulist::iterator i=active_menus.begin(), num=0;
++ int num=0;
++ for(activemenulist::iterator i=active_menus.begin();
+ i!=active_menus.end();
+ i++, num++)
+ h=max(h, 1+(*i)->height_request(w));
+diff -Nurp aptitude-0.3.5.1-orig/src/vscreen/vs_stacked.h aptitude-0.3.5.1/src/vscreen/vs_stacked.h
+--- aptitude-0.3.5.1-orig/src/vscreen/vs_stacked.h 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/vscreen/vs_stacked.h 2006-10-12 15:39:30.000000000 +0200
+@@ -75,7 +75,7 @@ public:
+
+ void dispatch_mouse(short id, int x, int y, int z, mmask_t bstate);
+
+- vs_widget_ref vs_stacked::get_focus();
++ vs_widget_ref get_focus();
+
+ void show_all();
+
+diff -Nurp aptitude-0.3.5.1-orig/src/vscreen/vs_table.h aptitude-0.3.5.1/src/vscreen/vs_table.h
+--- aptitude-0.3.5.1-orig/src/vscreen/vs_table.h 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/vscreen/vs_table.h 2006-10-12 15:39:30.000000000 +0200
+@@ -123,14 +123,14 @@ private:
+ */
+ void get_col_contents(std::vector<std::vector<child_info *> > col_contents);
+
+- void vs_table::alloc_ideal_widths(std::vector<int> &col_sizes);
+- void vs_table::expand_widths(std::vector<int> &col_sizes, int target_w);
+- void vs_table::shrink_widths(std::vector<int> &col_sizes, int target_w);
+- void vs_table::alloc_ideal_heights(std::vector<int> &row_sizes,
++ void alloc_ideal_widths(std::vector<int> &col_sizes);
++ void expand_widths(std::vector<int> &col_sizes, int target_w);
++ void shrink_widths(std::vector<int> &col_sizes, int target_w);
++ void alloc_ideal_heights(std::vector<int> &row_sizes,
+ const std::vector<int> &col_sizes);
+- void vs_table::expand_heights(std::vector<int> &row_sizes, int target_h);
+- void vs_table::shrink_heights(std::vector<int> &row_sizes, int target_h);
+- void vs_table::alloc_child_sizes(const std::vector<int> &col_sizes,
++ void expand_heights(std::vector<int> &row_sizes, int target_h);
++ void shrink_heights(std::vector<int> &row_sizes, int target_h);
++ void alloc_child_sizes(const std::vector<int> &col_sizes,
+ const std::vector<int> &row_sizes);
+
+
+diff -Nurp aptitude-0.3.5.1-orig/src/vscreen/vs_tree.h aptitude-0.3.5.1/src/vscreen/vs_tree.h
+--- aptitude-0.3.5.1-orig/src/vscreen/vs_tree.h 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/vscreen/vs_tree.h 2006-10-12 15:39:30.000000000 +0200
+@@ -141,8 +141,8 @@ public:
+ */
+ int height_request(int w);
+
+- bool vs_tree::get_cursorvisible();
+- point vs_tree::get_cursorloc();
++ bool get_cursorvisible();
++ point get_cursorloc();
+ virtual bool focus_me() {return true;}
+ virtual void paint(const style &st);
+ virtual void dispatch_mouse(short id, int x, int y, int z, mmask_t bstate);
+diff -Nurp aptitude-0.3.5.1-orig/src/vs_progress.cc aptitude-0.3.5.1/src/vs_progress.cc
+--- aptitude-0.3.5.1-orig/src/vs_progress.cc 2006-10-11 16:06:48.000000000 +0200
++++ aptitude-0.3.5.1/src/vs_progress.cc 2006-10-12 15:39:30.000000000 +0200
+@@ -37,7 +37,8 @@ void vs_progress::paint(const style &st)
+
+ if(!Op.empty())
+ {
+- assert(Percent>=0 && Percent<=100);
++ if ( Percent > 100 )
++ Percent = 100;
+ barsize=int(Percent*width/100.0);
+
+ snprintf(percent_string, 50, ": %i%%", int(Percent));