- can't assume otherdb being available in sqlite handler
authorPanu Matilainen <pmatilai@laiskiainen.org>
Mon, 19 Feb 2007 19:05:07 +0000 (21:05 +0200)
committerPanu Matilainen <pmatilai@laiskiainen.org>
Mon, 19 Feb 2007 19:05:07 +0000 (21:05 +0200)
- traditional apt-rpm repostories don't carry changelog data, but
  singlefile "repos" do.. only there's no way to access them ATM

apt-pkg/rpm/rpmhandler.cc
apt-pkg/rpm/rpmhandler.h

index ead4b96..8475ba0 100644 (file)
@@ -1611,6 +1611,10 @@ bool RPMSqliteHandler::ChangeLog(vector<ChangeLogEntry* > &ChangeLogs)
    ostringstream sql;
    unsigned long pkgKey = Packages->GetColI("pkgKey");
    sql  << "select * from changelog where pkgKey=" << pkgKey << endl;
+   if (! Other) {
+      return false;
+   }
+
    SqliteQuery *Changes = Other->Query();
    if (!Changes->Exec(sql.str())) {
       return false;
index c372fe9..d02510a 100644 (file)
@@ -170,6 +170,9 @@ class RPMFileHandler : public RPMHdrHandler
    virtual unsigned long FileSize();
    virtual string MD5Sum();
 
+   // the rpm-repotype stripped down hdrlists dont carry changelog data
+   virtual bool ChangeLog(vector<ChangeLogEntry* > &ChangeLogs) { return false; };
+
    RPMFileHandler(FileFd *File);
    RPMFileHandler(string File);
    virtual ~RPMFileHandler();
@@ -192,6 +195,7 @@ class RPMSingleFileHandler : public RPMFileHandler
    virtual unsigned long FileSize();
    virtual string MD5Sum();
    virtual bool ProvideFileName() {return true;};
+   virtual bool ChangeLog(vector<ChangeLogEntry* > &ChangeLogs) { return RPMHandler::ChangeLog(ChangeLogs); };
 
    RPMSingleFileHandler(string File) : RPMFileHandler(File), sFilePath(File) {};
    virtual ~RPMSingleFileHandler() {};