summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/acquire-item.cc9
-rw-r--r--methods/file.cc2
-rwxr-xr-xtest/integration/test-apt-update-file4
3 files changed, 8 insertions, 7 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index b2e578629..0569c6dda 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -437,7 +437,7 @@ bool pkgAcqTransactionItem::TransactionState(TransactionStates const state)
} else {
if(Debug == true)
std::clog << "rm " << DestFile << " # " << DescURI() << std::endl;
- if (RemoveFile("TransactionCommit", DestFile) == false)
+ if (RemoveFile("TransItem::TransactionCommit", DestFile) == false)
return false;
}
break;
@@ -470,7 +470,7 @@ bool pkgAcqIndex::TransactionState(TransactionStates const state)
break;
case TransactionCommit:
if (EraseFileName.empty() == false)
- RemoveFile("TransactionCommit", EraseFileName);
+ RemoveFile("AcqIndex::TransactionCommit", EraseFileName);
break;
}
return true;
@@ -2748,9 +2748,8 @@ void pkgAcqIndex::StageDownloadDone(string const &Message)
// methods like file:// give us an alternative (uncompressed) file
else if (Target.KeepCompressed == false && AltFilename.empty() == false)
{
- if (CurrentCompressionExtension != "uncompressed")
- DestFile.erase(DestFile.length() - (CurrentCompressionExtension.length() + 1));
Filename = AltFilename;
+ EraseFileName.clear();
}
// Methods like e.g. "file:" will give us a (compressed) FileName that is
// not the "DestFile" we set, in this case we uncompress from the local file
@@ -2780,7 +2779,7 @@ void pkgAcqIndex::StageDownloadDone(string const &Message)
DestFile = "/dev/null";
}
- if (EraseFileName.empty())
+ if (EraseFileName.empty() && Filename != AltFilename)
EraseFileName = Filename;
// queue uri for the next stage
diff --git a/methods/file.cc b/methods/file.cc
index 4e3410078..36f3c39b9 100644
--- a/methods/file.cc
+++ b/methods/file.cc
@@ -98,7 +98,7 @@ bool FileMethod::Fetch(FetchItem *Itm)
{
if (APT::String::Endswith(File, *ext) == true)
{
- std::string const unfile = File.substr(0, File.length() - ext->length() - 1);
+ std::string const unfile = File.substr(0, File.length() - ext->length());
if (stat(unfile.c_str(),&Buf) == 0)
{
AltRes.Size = Buf.st_size;
diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file
index 369b40f2f..20f604695 100755
--- a/test/integration/test-apt-update-file
+++ b/test/integration/test-apt-update-file
@@ -40,7 +40,9 @@ if [ "$(id -u)" = '0' ]; then
exit
fi
chmod 555 aptarchive/dists/unstable/main/binary-all
-testsuccess aptget update
+testsuccess aptget update -o Debug::pkgAcquire::Worker=1
+cp -a rootdir/tmp/testsuccess.output rootdir/tmp/update.output
+testsuccess grep '%0aAlt-Filename:%20' rootdir/tmp/update.output
# the release files aren't an IMS-hit, but the indexes are
redatereleasefiles '+1 hour'