summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-11-05 01:51:44 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2015-11-05 12:21:33 +0100
commitf01f5d911d6a9731893865bb1ec617c5038add3e (patch)
tree8701432e7810433218ec1a7d74fdca5076295a37
parent4453cfdcf42f7fe6859bb0fc6b310a2a391bee77 (diff)
"support" unsigned Release files without hashes again
This 'ignores' the component Release files you can find in Debian alongside the binary-* directories, which isn't exactly a common usecase, but it worked before, so lets support it again as this isn't worse than a valid Release file which is unsigned. Git-Dch: Ignore
-rw-r--r--apt-pkg/acquire-item.cc7
-rwxr-xr-xtest/integration/test-apt-get-update-unauth-warning9
2 files changed, 11 insertions, 5 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index 9d1c2cc61..2c081261d 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -213,7 +213,7 @@ APT_CONST bool pkgAcqTransactionItem::HashesRequired() const
Only repositories without a Release file can (obviously) not have
hashes – and they are very uncommon and strongly discouraged */
return TransactionManager->MetaIndexParser != NULL &&
- TransactionManager->MetaIndexParser->GetLoadedSuccessfully() != metaIndex::TRI_UNSET;
+ TransactionManager->MetaIndexParser->GetLoadedSuccessfully() == metaIndex::TRI_YES;
}
HashStringList pkgAcqTransactionItem::GetExpectedHashes() const
{
@@ -1669,10 +1669,11 @@ void pkgAcqMetaSig::Failed(string const &Message,pkgAcquire::MethodConfig const
// we parse the indexes here because at this point the user wanted
// a repository that may potentially harm him
- if (TransactionManager->MetaIndexParser->Load(MetaIndex->DestFile, &ErrorText) == false || MetaIndex->VerifyVendor(Message) == false)
+ bool const GoodLoad = TransactionManager->MetaIndexParser->Load(MetaIndex->DestFile, &ErrorText);
+ if (MetaIndex->VerifyVendor(Message) == false)
/* expired Release files are still a problem you need extra force for */;
else
- MetaIndex->QueueIndexes(true);
+ MetaIndex->QueueIndexes(GoodLoad);
TransactionManager->TransactionStageCopy(MetaIndex, MetaIndex->DestFile, MetaIndex->GetFinalFilename());
}
diff --git a/test/integration/test-apt-get-update-unauth-warning b/test/integration/test-apt-get-update-unauth-warning
index b247c1ba9..d71569827 100755
--- a/test/integration/test-apt-get-update-unauth-warning
+++ b/test/integration/test-apt-get-update-unauth-warning
@@ -11,16 +11,21 @@ setupenvironment
configarchitecture "i386"
configcompression '.' 'gz'
+echo 'Acquire::Progress::Ignore::ShowErrorText "false";' > rootdir/etc/apt/apt.conf.d/99show-no-ignore-errors.conf
+
# a "normal" package with source and binary
buildsimplenativepackage 'foo' 'all' '2.0'
setupaptarchive --no-update
APTARCHIVE="$(readlink -f ./aptarchive)"
-find "$APTARCHIVE/dists/unstable" -name '*Release*' -delete
+find "$APTARCHIVE/dists/unstable" \( -name 'InRelease' -o -name 'Release.gpg' \) -delete
+sed -i -n '/^SHA1:$/q;p' "${APTARCHIVE}/dists/unstable/Release"
+testwarning aptget update
-echo 'Acquire::Progress::Ignore::ShowErrorText "false";' > rootdir/etc/apt/apt.conf.d/99show-no-ignore-errors.conf
+rm -rf rootdir/var/lib/apt/lists
+find "$APTARCHIVE/dists/unstable" -name '*Release*' -delete
# update without authenticated files leads to warning
testfailureequal "Get:1 file:$APTARCHIVE unstable InRelease
Ign:1 file:$APTARCHIVE unstable InRelease