From 9373b9752db017bc8458720f330dc9594ac8de17 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 8 May 2006 22:27:07 +0200 Subject: * apt-pkg/deb/debversion.cc: - applied patch from Lionel Elie Mamane to fix epoch handling (debian: #363358) --- apt-pkg/deb/debversion.cc | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'apt-pkg/deb') diff --git a/apt-pkg/deb/debversion.cc b/apt-pkg/deb/debversion.cc index aeee61929..064d8fa5b 100644 --- a/apt-pkg/deb/debversion.cc +++ b/apt-pkg/deb/debversion.cc @@ -59,7 +59,7 @@ int debVersioningSystem::CmpFragment(const char *A,const char *AEnd, } /* Iterate over the whole string - What this does is to spilt the whole string into groups of + What this does is to split the whole string into groups of numeric and non numeric portions. For instance: a67bhgs89 Has 4 portions 'a', '67', 'bhgs', '89'. A more normal: @@ -140,6 +140,27 @@ int debVersioningSystem::DoCmpVersion(const char *A,const char *AEnd, if (rhs == BEnd) rhs = B; + // Special case: a zero epoch is the same as no epoch, + // so remove it. + if (lhs != A) + { + for (; *A == '0'; ++A); + if (A == lhs) + { + ++A; + ++lhs; + } + } + if (rhs != B) + { + for (; *B == '0'; ++B); + if (B == rhs) + { + ++B; + ++rhs; + } + } + // Compare the epoch int Res = CmpFragment(A,lhs,B,rhs); if (Res != 0) -- cgit v1.2.3-70-g09d2 From 5e9179a6a301de5e6cb0f99098b467d5c35ab8d5 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 25 Jul 2006 11:37:20 +0200 Subject: * apt-pkg/deb/dpkgpm.cc: - ignore lines that can't be split properly from dpkg (DpkgPM::Go) * doc/examples/configure-index: - documentation updates --- apt-pkg/deb/dpkgpm.cc | 8 +++++++- configure.in | 2 +- debian/changelog | 5 +++++ doc/examples/configure-index | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) (limited to 'apt-pkg/deb') diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 667db8ff2..bf0434ccc 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -624,7 +624,13 @@ bool pkgDPkgPM::Go(int OutStatusFd) */ char* list[5]; - TokSplitString(':', line, list, sizeof(list)/sizeof(list[0])); + if(!TokSplitString(':', line, list, sizeof(list)/sizeof(list[0]))) + // FIXME: dpkg sends multiline error messages sometimes (see + // #374195 for a example. we should support this by + // either patching dpkg to not send multiline over the + // statusfd or by rewriting the code here to deal with + // it. for now we just ignore it and not crash + continue; char *pkg = list[1]; char *action = _strstrip(list[2]); diff --git a/configure.in b/configure.in index 8e1e9bf75..fc4eff203 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.6.44.1-0.1") +AC_DEFINE_UNQUOTED(VERSION,"0.6.45") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/changelog b/debian/changelog index 6813980c5..ae12ac8d1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,11 @@ apt (0.6.45) unstable; urgency=low (closes: #379576) * doc/apt-get.8.xml: - fix path to the apt user build (Closes: #375640) + * apt-pkg/deb/dpkgpm.cc: + - make progress reporting more robust against multiline error + messages (first half of a fix for #374195) + * doc/examples/configure-index: + - document Debug::pkgAcquire::Auth * Merged from Christian Perrier bzr branch: * ko.po: Updated to 512t. Closes: #378901 * hu.po: Updated to 512t. Closes: #376330 diff --git a/doc/examples/configure-index b/doc/examples/configure-index index b87e85030..f8abd75ed 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -247,6 +247,7 @@ Debug pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies pkgAcquire "false"; pkgAcquire::Worker "false"; + pkgAcquire::Auth "false"; pkgDPkgPM "false"; pkgDPkgProgressReporting "false"; pkgOrderList "false"; -- cgit v1.2.3-70-g09d2