From fc5f54175a514c31c9400d9f9d08e6496cf63823 Mon Sep 17 00:00:00 2001
From: Michael Vogt <michael.vogt@ubuntu.com>
Date: Mon, 8 May 2006 18:31:47 +0200
Subject: * methods/ftp.cc: remove a tried-to-downloaded file if the file is
 missing on the sever

---
 debian/changelog |  3 +++
 methods/ftp.cc   |  7 +++++--
 po/apt-all.pot   | 47 ++++++++++++++++++++++-------------------------
 3 files changed, 30 insertions(+), 27 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index b104e9666..034702090 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -19,6 +19,9 @@ apt (0.6.44) unstable; urgency=low
     - i18n fixes (closes: #349298)
   * debian/postinst: dont fail on not available
     /usr/share/doc/apt/examples/sources.list (closes: #361130)
+  * methods/ftp.cc:
+    - unlink empty file in partial if the download failed because
+      the file is missing on the server (closes: #316337)
   
  --
 
diff --git a/methods/ftp.cc b/methods/ftp.cc
index f595e0ca4..0c2aa00a7 100644
--- a/methods/ftp.cc
+++ b/methods/ftp.cc
@@ -1055,9 +1055,12 @@ bool FtpMethod::Fetch(FetchItem *Itm)
 	 UBuf.modtime = FailTime;
 	 utime(FailFile.c_str(),&UBuf);
 	 
-	 // If the file is missing we hard fail otherwise transient fail
-	 if (Missing == true)
+	 // If the file is missing we hard fail and delete the destfile
+	 // otherwise transient fail
+	 if (Missing == true) {
+	    unlink(FailFile.c_str());
 	    return false;
+	 }
 	 Fail(true);
 	 return true;
       }
diff --git a/po/apt-all.pot b/po/apt-all.pot
index dc455c7af..d2209487a 100644
--- a/po/apt-all.pot
+++ b/po/apt-all.pot
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-20 12:50+0200\n"
+"POT-Creation-Date: 2006-05-08 11:02+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -417,7 +417,7 @@ msgid " DeLink limit of %sB hit.\n"
 msgstr ""
 
 #: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193
-#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:260
+#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266
 #, c-format
 msgid "Failed to stat %s"
 msgstr ""
@@ -1365,7 +1365,7 @@ msgstr ""
 msgid "Internal error getting a package name"
 msgstr ""
 
-#: apt-inst/deb/dpkgdb.cc:205
+#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386
 msgid "Reading file listing"
 msgstr ""
 
@@ -1409,10 +1409,6 @@ msgstr ""
 msgid "The pkg cache must be initialized first"
 msgstr ""
 
-#: apt-inst/deb/dpkgdb.cc:386
-msgid "Reading file list"
-msgstr ""
-
 #: apt-inst/deb/dpkgdb.cc:443
 #, c-format
 msgid "Failed to find a Package: header, offset %lu"
@@ -1483,12 +1479,12 @@ msgstr ""
 msgid "File not found"
 msgstr ""
 
-#: methods/copy.cc:42 methods/gpgv.cc:269 methods/gzip.cc:133
+#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133
 #: methods/gzip.cc:142
 msgid "Failed to stat"
 msgstr ""
 
-#: methods/copy.cc:79 methods/gpgv.cc:266 methods/gzip.cc:139
+#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139
 msgid "Failed to set modification time"
 msgstr ""
 
@@ -1637,7 +1633,7 @@ msgstr ""
 msgid "Query"
 msgstr ""
 
-#: methods/ftp.cc:1106
+#: methods/ftp.cc:1109
 msgid "Unable to invoke "
 msgstr ""
 
@@ -1698,37 +1694,38 @@ msgstr ""
 msgid "Unable to connect to %s %s:"
 msgstr ""
 
-#: methods/gpgv.cc:92
+#: methods/gpgv.cc:64
+#, c-format
+msgid "Couldn't access keyring: '%s'"
+msgstr ""
+
+#: methods/gpgv.cc:99
 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 msgstr ""
 
-#: methods/gpgv.cc:191
+#: methods/gpgv.cc:198
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:196
+#: methods/gpgv.cc:203
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#. FIXME String concatenation considered harmful.
-#: methods/gpgv.cc:201
-msgid "Could not execute "
-msgstr ""
-
-#: methods/gpgv.cc:202
-msgid " to verify signature (is gnupg installed?)"
+#: methods/gpgv.cc:207
+#, c-format
+msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:206
+#: methods/gpgv.cc:212
 msgid "Unknown error executing gpgv"
 msgstr ""
 
-#: methods/gpgv.cc:237
+#: methods/gpgv.cc:243
 msgid "The following signatures were invalid:\n"
 msgstr ""
 
-#: methods/gpgv.cc:244
+#: methods/gpgv.cc:250
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2104,12 +2101,12 @@ msgstr ""
 msgid "Dependency generation"
 msgstr ""
 
-#: apt-pkg/tagfile.cc:73
+#: apt-pkg/tagfile.cc:72
 #, c-format
 msgid "Unable to parse package file %s (1)"
 msgstr ""
 
-#: apt-pkg/tagfile.cc:160
+#: apt-pkg/tagfile.cc:102
 #, c-format
 msgid "Unable to parse package file %s (2)"
 msgstr ""
-- 
cgit v1.2.3