From da9ed163ca5ebe6dd33fda2679107bcbd3ffaa71 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Sun, 30 Apr 2006 10:58:28 +0200 Subject: * string i18n handling fixes (debian bug #349298) --- methods/gpgv.cc | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'methods') diff --git a/methods/gpgv.cc b/methods/gpgv.cc index a114ad797..75335b9b8 100644 --- a/methods/gpgv.cc +++ b/methods/gpgv.cc @@ -11,6 +11,7 @@ #include #include #include +#include #define GNUPGPREFIX "[GNUPG:]" #define GNUPGBADSIG "[GNUPG:] BADSIG" @@ -20,7 +21,7 @@ class GPGVMethod : public pkgAcqMethod { private: - const char *VerifyGetSigners(const char *file, const char *outfile, + string VerifyGetSigners(const char *file, const char *outfile, vector &GoodSigners, vector &BadSigners, vector &NoPubKeySigners); @@ -32,11 +33,15 @@ class GPGVMethod : public pkgAcqMethod GPGVMethod() : pkgAcqMethod("1.0",SingleInstance | SendConfig) {}; }; -const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, +string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, vector &GoodSigners, vector &BadSigners, vector &NoPubKeySigners) { + // setup a (empty) stringstream for formating the return value + std::stringstream ret; + res.str(""); + if (_config->FindB("Debug::Acquire::gpgv", false)) { std::cerr << "inside VerifyGetSigners" << std::endl; @@ -54,9 +59,11 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, std::cerr << "Keyring path: " << pubringpath << std::endl; } - if (stat(pubringpath.c_str(), &buff) != 0) - return (string("Couldn't access keyring: ") + strerror(errno)).c_str(); - + if (stat(pubringpath.c_str(), &buff) != 0) + { + ioprintf(ret, _("Couldn't access keyring: '%s'"), strerror(errno)); + return ret.str(); + } if (pipe(fd) < 0) { return "Couldn't create pipe"; @@ -65,7 +72,7 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, pid = fork(); if (pid < 0) { - return (string("Couldn't spawn new process") + strerror(errno)).c_str(); + return string("Couldn't spawn new process") + strerror(errno); } else if (pid == 0) { @@ -189,7 +196,7 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, { if (GoodSigners.empty()) return _("Internal error: Good signature, but could not determine key fingerprint?!"); - return NULL; + return ""; } else if (WEXITSTATUS(status) == 1) { @@ -197,9 +204,8 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, } else if (WEXITSTATUS(status) == 111) { - // FIXME String concatenation considered harmful. - return (string(_("Could not execute ")) + gpgvpath + - string(_(" to verify signature (is gnupg installed?)"))).c_str(); + ioprintf(ret, _("Could not execute '%s' to verify signature (is gnupg installed?)"), gpgvpath.c_str()); + return ret.str(); } else { @@ -221,8 +227,8 @@ bool GPGVMethod::Fetch(FetchItem *Itm) URIStart(Res); // Run gpgv on file, extract contents and get the key ID of the signer - const char *msg = VerifyGetSigners(Path.c_str(), Itm->DestFile.c_str(), - GoodSigners, BadSigners, NoPubKeySigners); + string msg = VerifyGetSigners(Path.c_str(), Itm->DestFile.c_str(), + GoodSigners, BadSigners, NoPubKeySigners); if (GoodSigners.empty() || !BadSigners.empty() || !NoPubKeySigners.empty()) { string errmsg; -- cgit v1.2.3-70-g09d2 From b2c220756c2c571595765ca23da48c611b88d057 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 1 May 2006 16:17:08 +0200 Subject: * methods/gpgv.cc: typo --- methods/gpgv.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'methods') diff --git a/methods/gpgv.cc b/methods/gpgv.cc index 75335b9b8..ba7389cba 100644 --- a/methods/gpgv.cc +++ b/methods/gpgv.cc @@ -40,7 +40,7 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, { // setup a (empty) stringstream for formating the return value std::stringstream ret; - res.str(""); + ret.str(""); if (_config->FindB("Debug::Acquire::gpgv", false)) { -- cgit v1.2.3-70-g09d2 From fc5f54175a514c31c9400d9f9d08e6496cf63823 Mon Sep 17 00:00:00 2001 From: Michael Vogt 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(-) (limited to 'methods') 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 \n" "Language-Team: LANGUAGE \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-70-g09d2