Browse Source

show distribution mismatch for changed codenames

We have the last Release file around for other checks, so its trivial to
look if the new Release file contains a new codename (e.g. the user has
"testing" in the sources and it flipped from stretch to buster).

Such a change can be okay and expected, but also be a hint of problems,
so a warning if we see it happen seems okay. We can only print it once
anyhow and frontends and co are likely to ignore/hide it.
debian/1.8.y
David Kalnischkies 6 years ago
parent
commit
7434f15cb6
  1. 8
      apt-pkg/acquire-item.cc
  2. 12
      test/integration/test-bug-841874-warning-for-mismatching-distribution

8
apt-pkg/acquire-item.cc

@ -1608,6 +1608,14 @@ bool pkgAcqMetaBase::VerifyVendor(string const &) /*{{{*/
if (TransactionManager->MetaIndexParser->CheckDist(ExpectedDist) == false)
_error->Warning(_("Conflicting distribution: %s (expected %s but got %s)"),
Desc.Description.c_str(), ExpectedDist.c_str(), NowCodename.c_str());
// might be okay, might be not
if (TransactionManager->LastMetaIndexParser != nullptr)
{
auto const LastCodename = TransactionManager->LastMetaIndexParser->GetCodename();
if (LastCodename.empty() == false && NowCodename.empty() == false && LastCodename != NowCodename)
_error->Warning(_("Conflicting distribution: %s (expected %s but got %s)"),
Desc.Description.c_str(), LastCodename.c_str(), NowCodename.c_str());
}
return true;
}
/*}}}*/

12
test/integration/test-bug-841874-warning-for-mismatching-distribution

@ -47,3 +47,15 @@ testfailure apt show foo
ln -s "${APTARCHIVE}/dists/testing" "${APTARCHIVE}/dists/buster"
testsuccess apt update
testsuccess apt show foo
# changing codenames gets a warning, too
rm -rf rootdir/var/lib/apt/lists
sed -i -e 's#buster#testing#g' rootdir/etc/apt/sources.list.d/*
testsuccess apt update
testsuccess apt show foo
sed -i -e 's#^Codename: buster#Codename: zurg#g' $(find ./aptarchive -name 'Release')
signreleasefiles
testwarningmsg "W: Conflicting distribution: file:$APTARCHIVE testing/updates InRelease (expected buster/updates but got zurg/updates)" apt update
testsuccess apt show foo
testsuccess apt update
testsuccess apt show foo

Loading…
Cancel
Save