summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2010-01-08 22:32:32 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2010-01-08 22:32:32 +0100
commit61690a7ed8403091425e42c6959918fb62824248 (patch)
tree602a48f8d1ab474a46fb8eb8d33aa02435a4d1d2
parent46e39c8e14dc98045107cfb38af8cecb8a4773b0 (diff)
* cmdline/apt-get.cc:
- fix apt-get source pkg=version regression (closes: #561971)
-rw-r--r--cmdline/apt-get.cc24
-rw-r--r--debian/changelog6
2 files changed, 22 insertions, 8 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index f84c82d28..dede0137e 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1299,31 +1299,41 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
{
pkgRecords::Parser &Parse = Recs.Lookup(VF);
Src = Parse.SourcePkg();
+ // no SourcePkg name, so it is the "binary" name
+ if (Src.empty() == true)
+ Src = TmpSrc;
+ // no Version, so we try the Version of the SourcePkg -
+ // and after that the version of the binary package
if (VerTag.empty() == true)
VerTag = Parse.SourceVer();
+ if (VerTag.empty() == true)
+ VerTag = Ver.VerStr();
break;
}
}
+ if (Src.empty() == false)
+ break;
}
if (Src.empty() == true)
{
- if (VerTag.empty() == false)
- _error->Warning(_("Ignore unavailable version '%s' of package '%s'"), VerTag.c_str(), TmpSrc.c_str());
- else
+ // Sources files have no codename information
+ if (VerTag.empty() == true && DefRel.empty() == false)
_error->Warning(_("Ignore unavailable target release '%s' of package '%s'"), DefRel.c_str(), TmpSrc.c_str());
- VerTag.clear();
DefRel.clear();
}
}
- if (VerTag.empty() == true && DefRel.empty() == true)
+ if (Src.empty() == true)
{
- // if we don't have a version or default release, use the CandidateVer to find the Source
+ // if we don't have found a fitting package yet so we will
+ // choose a good candidate and proceed with that.
+ // Maybe we will find a source later on with the right VerTag
pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
if (Ver.end() == false)
{
pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
Src = Parse.SourcePkg();
- VerTag = Parse.SourceVer();
+ if (VerTag.empty() == true)
+ VerTag = Parse.SourceVer();
}
}
}
diff --git a/debian/changelog b/debian/changelog
index 56d3f79c0..ef46df5b0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -32,7 +32,11 @@ apt (0.7.25.1) UNRELEASED; urgency=low
- finally merge the rest of the patchset from Arnaud Ebalard
with the CRL and Issuers options, thanks! (Closes: #485963)
- -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 08 Jan 2010 20:17:28 +0100
+ [ Michael Vogt ]
+ * cmdline/apt-get.cc:
+ - fix apt-get source pkg=version regression (closes: #561971)
+
+ -- Michael Vogt <mvo@debian.org> Fri, 08 Jan 2010 22:31:47 +0100
apt (0.7.25) unstable; urgency=low