[Bug 839411] [libqapt] src: If the xapian index is not found in openXapianIndex, make xapianIndexNeedsUpdate()

Jonathan Thomas echidnaman at kubuntu.org
Fri Sep 2 21:13:34 UTC 2011


Git commit 6a51b2f63e6eeb34d518da6f1ab3385a8210fe3f by Jonathan Thomas.
Committed on 02/09/2011 at 23:09.
Pushed by jmthomas into branch 'master'.

If the xapian index is not found in openXapianIndex, make xapianIndexNeedsUpdate()
return true.

Fixes xapianIndexNeedsUpdating() returning false when there is no index
at all.

CCMAIL:839411 at bugs.launchpad.net

M  +8    -2    src/backend.cpp
M  +4    -1    src/changelog.cpp

http://commits.kde.org/libqapt/6a51b2f63e6eeb34d518da6f1ab3385a8210fe3f

diff --git a/src/backend.cpp b/src/backend.cpp
index 4003361..b34dbf9 100644
--- a/src/backend.cpp
+++ b/src/backend.cpp
@@ -95,6 +95,7 @@ public:
     // Xapian
     time_t xapianTimeStamp;
     Xapian::Database xapianDatabase;
+    bool xapianIndexExists;
 
     // DBus
     QDBusServiceWatcher *watcher;
@@ -647,12 +648,14 @@ bool Backend::xapianIndexNeedsUpdate() const
    // If the cache has been modified after the xapian timestamp, we need to rebuild
    QDateTime aptCacheTime = QFileInfo(QLatin1String(_config->FindFile("Dir::Cache::pkgcache").c_str())).lastModified();
    QDateTime dpkgStatusTime = QFileInfo(QLatin1String("/var/lib/dpkg/status")).lastModified();
+
+   bool outdated = false;
    if (d->xapianTimeStamp < aptCacheTime.toTime_t() ||
        d->xapianTimeStamp < dpkgStatusTime.toTime_t()) {
-      return true;
+       outdated = true;
    }
 
-   return false;
+   return (outdated || (!d->xapianIndexExists));
 }
 
 bool Backend::openXapianIndex()
@@ -665,9 +668,12 @@ bool Backend::openXapianIndex()
     try {
         d->xapianDatabase.add_database(Xapian::Database("/var/lib/apt-xapian-index/index"));
     } catch (Xapian::DatabaseOpeningError) {
+        d->xapianIndexExists = false;
         return false;
     };
 
+    d->xapianIndexExists = true;
+
     return true;
 }
 
diff --git a/src/changelog.cpp b/src/changelog.cpp
index b4bf5b7..69e9fe4 100644
--- a/src/changelog.cpp
+++ b/src/changelog.cpp
@@ -25,7 +25,6 @@
 #include <QtCore/QSharedData>
 #include <QtCore/QStringBuilder>
 #include <QtCore/QStringList>
-#include <QDebug>
 
 // QApt includes
 #include "package.h"
@@ -58,6 +57,7 @@ public:
     QString version;
     QDateTime issueDate;
     QString description;
+    QStringList CVEUrls;
 
     void parseData(const QString &sourcePackage);
 };
@@ -97,6 +97,9 @@ void ChangelogEntryPrivate::parseData(const QString &sourcePackage)
                 break;
             }
         }
+
+
+        QRegExp rxCVE("CVE-\\d{4}-\\d{4}");
     }
 }

-- 
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to qapt in Ubuntu.
https://bugs.launchpad.net/bugs/839411

Title:
  initial install can not search

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qapt/+bug/839411/+subscriptions



More information about the kubuntu-bugs mailing list