diff options
-rw-r--r-- | apt-pkg/deb/deblistparser.cc | 32 | ||||
-rw-r--r-- | debian/apt.cron.daily | 5 | ||||
-rw-r--r-- | debian/changelog | 23 |
3 files changed, 47 insertions, 13 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 952433428..08c24204b 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -816,16 +816,16 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI, ++lineEnd; // which datastorage need to be updated - map_ptrloc* writeTo = NULL; + enum { Suite, Component, Version, Origin, Codename, Label, None } writeTo = None; if (buffer[0] == ' ') ; - #define APT_PARSER_WRITETO(X, Y) else if (strncmp(Y, buffer, len) == 0) writeTo = &X; - APT_PARSER_WRITETO(FileI->Archive, "Suite") - APT_PARSER_WRITETO(FileI->Component, "Component") - APT_PARSER_WRITETO(FileI->Version, "Version") - APT_PARSER_WRITETO(FileI->Origin, "Origin") - APT_PARSER_WRITETO(FileI->Codename, "Codename") - APT_PARSER_WRITETO(FileI->Label, "Label") + #define APT_PARSER_WRITETO(X) else if (strncmp(#X, buffer, len) == 0) writeTo = X; + APT_PARSER_WRITETO(Suite) + APT_PARSER_WRITETO(Component) + APT_PARSER_WRITETO(Version) + APT_PARSER_WRITETO(Origin) + APT_PARSER_WRITETO(Codename) + APT_PARSER_WRITETO(Label) #undef APT_PARSER_WRITETO #define APT_PARSER_FLAGIT(X) else if (strncmp(#X, buffer, len) == 0) \ pkgTagSection::FindFlag(FileI->Flags, pkgCache::Flag:: X, dataStart, lineEnd); @@ -835,19 +835,19 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI, // load all data from the line and save it string data; - if (writeTo != NULL) + if (writeTo != None) data.append(dataStart, dataEnd); if (sizeof(buffer) - 1 == (dataEnd - buffer)) { while (fgets(buffer, sizeof(buffer), release) != NULL) { - if (writeTo != NULL) + if (writeTo != None) data.append(buffer); if (strlen(buffer) != sizeof(buffer) - 1) break; } } - if (writeTo != NULL) + if (writeTo != None) { // remove spaces and stuff from the end of the data line for (std::string::reverse_iterator s = data.rbegin(); @@ -857,7 +857,15 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI, break; *s = '\0'; } - *writeTo = WriteUniqString(data); + switch (writeTo) { + case Suite: FileI->Archive = WriteUniqString(data); break; + case Component: FileI->Component = WriteUniqString(data); break; + case Version: FileI->Version = WriteUniqString(data); break; + case Origin: FileI->Origin = WriteUniqString(data); break; + case Codename: FileI->Codename = WriteUniqString(data); break; + case Label: FileI->Label = WriteUniqString(data); break; + case None: break; + } } } fclose(release); diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily index 1dfaa04a3..efc61362c 100644 --- a/debian/apt.cron.daily +++ b/debian/apt.cron.daily @@ -457,7 +457,10 @@ if check_stamp $UPDATE_STAMP $UpdateInterval; then # now run apt-xapian-index if it is installed to ensure the index # is up-to-date if [ -x /usr/sbin/update-apt-xapian-index ]; then - nice ionice -c3 update-apt-xapian-index -q + if [ "$(dpkg --print-architecture)" = "armel" ]; then + xapian_extra_args='-u' + fi + nice ionice -c3 update-apt-xapian-index -q $xapian_extra_args fi else debug_echo "download updated metadata (error)" diff --git a/debian/changelog b/debian/changelog index 88b614ca1..a0f59e019 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,26 @@ +apt (0.8.16~exp5ubuntu13) UNRELEASEDoneiric; urgency=low + + [ Adam Conrad ] + * On armel, call update-apt-xapian-index with '-u' to keep the CPU + and I/O usage low. We would do this on all arches, but there's a + regression risk here, but that's better than killing slow systems. + + [ Michael Vogt ] + * cmdline/apt-key: + - fix apt-key net-update, thanks to Marc Deslauriers and + Adam Conrad for the code review (LP: #857472) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 06 Oct 2011 16:13:00 +0200 + +apt (0.8.16~exp5ubuntu12) oneiric; urgency=low + + [ David Kalnischkies ] + * apt-pkg/deb/deblistparser.cc: + - fix crash when the dynamic mmap needs to be remapped during + LoadReleaseInfo (LP: #854090) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 26 Sep 2011 13:31:11 +0200 + apt (0.8.16~exp5ubuntu11) oneiric; urgency=low [ Colin Watson ] |