From c8259fcde18ad9e08fffb04bf06ed64b87b1ac6a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 8 Apr 2014 09:04:15 +0200 Subject: fix apt list output for pkgs in dpkg ^rc state Packages in the "deinstall ok config-file" have no candidate or instaleld version. So they must be special cased in the apt list generation. --- apt-private/private-cacheset.cc | 8 +++++++- apt-private/private-output.cc | 4 ++++ test/integration/test-apt-cli-list | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apt-private/private-cacheset.cc b/apt-private/private-cacheset.cc index 4a63c7e81..e37e7b227 100644 --- a/apt-private/private-cacheset.cc +++ b/apt-private/private-cacheset.cc @@ -73,7 +73,13 @@ bool GetLocalitySortedVersionSet(pkgCacheFile &CacheFile, else { pkgPolicy *policy = CacheFile.GetPolicy(); - output_set.insert(policy->GetCandidateVer(P)); + if (policy->GetCandidateVer(P).IsGood()) + output_set.insert(policy->GetCandidateVer(P)); + else + // no candidate, this may happen for packages in + // dpkg "deinstall ok config-file" state - we pick the first ver + // (which should be the only one) + output_set.insert(P.VersionList()); } } progress.Done(); diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc index bbd8545ad..757999167 100644 --- a/apt-private/private-output.cc +++ b/apt-private/private-output.cc @@ -146,6 +146,10 @@ static std::string GetArchitecture(pkgCacheFile &CacheFile, pkgCache::PkgIterato pkgCache::VerIterator inst = P.CurrentVer(); pkgCache::VerIterator cand = policy->GetCandidateVer(P); + // this may happen for packages in dpkg "deinstall ok config-file" state + if (inst.IsGood() == false && cand.IsGood() == false) + return P.VersionList().Arch(); + return inst ? inst.Arch() : cand.Arch(); } /*}}}*/ diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 47cfb624a..6fc4bc7f6 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -51,3 +51,8 @@ bar/now 1.0 i386 [installed,local] an autogenerated dummy bar=1.0/installed " apt list bar --verbose +# test for dpkg ^rc state +insertinstalledpackage 'conf-only' 'i386' '1.0' '' '' 'deinstall ok config-files' +testequal "Listing... +conf-only/now 1.0 i386 [residual-config]" apt list conf-only + -- cgit v1.2.3 From d6570f8577a955a6950ef9fe1ee9def401759336 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Apr 2014 16:23:14 +0200 Subject: Notice the user about "apt list -a" when only a single hit if found If the user is using "apt list pattern" and there is only a single hit, notice about "--all-versions" as this is what the user may be interessted in --- apt-private/private-list.cc | 15 ++++++++++++++- test/integration/test-apt-cli-list | 12 ++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index b053cbcbe..b69002103 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -130,10 +130,11 @@ bool DoList(CommandLine &Cmd) Cache->Head().PackageCount, _("Listing")); GetLocalitySortedVersionSet(CacheFile, bag, matcher, progress); + bool ShowAllVersions = _config->FindB("APT::Cmd::All-Versions", false); for (LocalitySortedVersionSet::iterator V = bag.begin(); V != bag.end(); ++V) { std::stringstream outs; - if(_config->FindB("APT::Cmd::All-Versions", false) == true) + if(ShowAllVersions == true) { ListAllVersions(CacheFile, records, V.ParentPkg(), outs, includeSummary); output_map.insert(std::make_pair( @@ -151,6 +152,18 @@ bool DoList(CommandLine &Cmd) std::cout << (*K).second << std::endl; + // be nice and tell the user if there is more to see + if (bag.size() == 1 && ShowAllVersions == false) + { + // start with -1 as we already displayed one version + int versions = -1; + pkgCache::VerIterator Ver = *bag.begin(); + for ( ; Ver.end() == false; Ver++) + versions++; + if (versions > 0) + _error->Notice(P_("There is %i additional version. Please use the '-a' switch to see it", "There are %i additional versions. Please use the '-a' switch to see them.", versions), versions); + } + return true; } diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 47cfb624a..b738bcc66 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -19,12 +19,17 @@ insertinstalledpackage 'bar' 'i386' '1.0' insertinstalledpackage 'foobar' 'i386' '1.0' insertpackage 'unstable' 'foobar' 'i386' '2.0' +insertinstalledpackage 'baz' 'all' '0.1' +insertpackage 'testing' 'baz' 'all' '1.0' +insertpackage 'unstable' 'baz' 'all' '2.0' + setupaptarchive APTARCHIVE=$(readlink -f ./aptarchive) testequal "Listing... bar/now 1.0 i386 [installed,local] +baz/unstable 2.0 all [upgradable from: 0.1] foo/unstable 1.0 all foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list @@ -33,12 +38,14 @@ foo/unstable 1.0 all foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list "foo*" testequal "Listing... +baz/unstable 2.0 all [upgradable from: 0.1] foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list --upgradable # FIXME: hm, hm - does it make sense to have this different? shouldn't # we use "installed,upgradable" consitently? testequal "Listing... bar/now 1.0 i386 [installed,local] +baz/now 0.1 all [installed,upgradable to: 2.0] foobar/now 1.0 i386 [installed,upgradable to: 2.0]" apt list --installed testequal "Listing... @@ -51,3 +58,8 @@ bar/now 1.0 i386 [installed,local] an autogenerated dummy bar=1.0/installed " apt list bar --verbose +# ensure that the users learns about multiple versions too +testequal "Listing... +baz/unstable 2.0 all [upgradable from: 0.1] +N: There are 2 additional versions. Please use the '-a' switch to see them." apt list baz -o quiet=0 + -- cgit v1.2.3 From f22b65b47990237bd5d9a1c171919c3059fbd9b0 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Apr 2014 10:12:10 +0200 Subject: Fix insecure file permissions when using FileFd with OpenMode::Atomic Commit 7335eebea6dd43581d4650a8818b06383ab89901 introduced a bug that caused FileFd to create insecure permissions when FileFd::Atomic is used. This commit fixes the permissions and adds a test. The bug is most likely caused by the confusing "Perm" parameter that is passed to Open() - its not the file permissions but intead the "mode" part of open/creat. --- apt-pkg/contrib/fileutl.cc | 8 ++++++-- test/libapt/fileutl_test.cc | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 188bb87ee..8b57e87a3 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1067,6 +1067,10 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co if_FLAGGED_SET(Exclusive, O_EXCL); #undef if_FLAGGED_SET + // there is no getumask() so we read it by setting it and reset + mode_t current_umask = umask(0); + umask(current_umask); + if ((Mode & Atomic) == Atomic) { char *name = strdup((FileName + ".XXXXXX").c_str()); @@ -1080,11 +1084,11 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co TemporaryFileName = string(name); free(name); - if(Perms != 600 && fchmod(iFd, Perms) == -1) + if(Perms != 600 && fchmod(iFd, Perms & ~current_umask) == -1) return FileFdErrno("fchmod", "Could not change permissions for temporary file %s", TemporaryFileName.c_str()); } else - iFd = open(FileName.c_str(), fileflags, Perms); + iFd = open(FileName.c_str(), fileflags, Perms & ~current_umask); this->FileName = FileName; if (iFd == -1 || OpenInternDescriptor(Mode, compressor) == false) diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 8da832ba9..1d1a1a1b8 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -6,13 +6,44 @@ #include #include #include +#include #include "assert.h" +// regression test for permission bug LP: #1304657 +static bool +TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) +{ + FileFd f; + struct stat buf; + static const char* fname = "test.txt"; + + umask(a_umask); + f.Open(fname, FileFd::ReadWrite|FileFd::Atomic); + f.Close(); + if (stat(fname, &buf) < 0) + { + _error->Errno("stat", "failed to stat"); + _error->DumpErrors(); + return false; + } + unlink(fname); + equals(buf.st_mode & 0777, ExpectedFilePermission); + return true; +} + int main() { std::vector files; + if (TestFileFdOpenPermissions(0002, 0664) == false || + TestFileFdOpenPermissions(0022, 0644) == false || + TestFileFdOpenPermissions(0077, 0600) == false || + TestFileFdOpenPermissions(0026, 0640) == false) + { + return 1; + } + // normal match files = Glob("*.lst"); if (files.size() != 1) -- cgit v1.2.3 From e5f3f8c101b772a6eb6326203a2174e809ab406d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Apr 2014 10:24:47 +0200 Subject: Rename FileFd::Open() Perms to AccessMode Bug lp:#1304657 was caused by confusion around the name Perms. The new name AccessMode should make it clear that its not the literal file permissions but instead the AccessMode passed to open() (i.e. the umask needs to be applied) --- apt-pkg/contrib/fileutl.cc | 12 ++++++------ apt-pkg/contrib/fileutl.h | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 8b57e87a3..c6072ca15 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -958,10 +958,10 @@ class FileFdPrivate { /*{{{*/ // FileFd::Open - Open a file /*{{{*/ // --------------------------------------------------------------------- /* The most commonly used open mode combinations are given with Mode */ -bool FileFd::Open(string FileName,unsigned int const Mode,CompressMode Compress, unsigned long const Perms) +bool FileFd::Open(string FileName,unsigned int const Mode,CompressMode Compress, unsigned long const AccessMode) { if (Mode == ReadOnlyGzip) - return Open(FileName, ReadOnly, Gzip, Perms); + return Open(FileName, ReadOnly, Gzip, AccessMode); if (Compress == Auto && (Mode & WriteOnly) == WriteOnly) return FileFdError("Autodetection on %s only works in ReadOnly openmode!", FileName.c_str()); @@ -1028,9 +1028,9 @@ bool FileFd::Open(string FileName,unsigned int const Mode,CompressMode Compress, if (compressor == compressors.end()) return FileFdError("Can't find a match for specified compressor mode for file %s", FileName.c_str()); - return Open(FileName, Mode, *compressor, Perms); + return Open(FileName, Mode, *compressor, AccessMode); } -bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Compressor const &compressor, unsigned long const Perms) +bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Compressor const &compressor, unsigned long const AccessMode) { Close(); Flags = AutoClose; @@ -1084,11 +1084,11 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co TemporaryFileName = string(name); free(name); - if(Perms != 600 && fchmod(iFd, Perms & ~current_umask) == -1) + if(AccessMode != 600 && fchmod(iFd, AccessMode & ~current_umask) == -1) return FileFdErrno("fchmod", "Could not change permissions for temporary file %s", TemporaryFileName.c_str()); } else - iFd = open(FileName.c_str(), fileflags, Perms & ~current_umask); + iFd = open(FileName.c_str(), fileflags, AccessMode & ~current_umask); this->FileName = FileName; if (iFd == -1 || OpenInternDescriptor(Mode, compressor) == false) diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index f25ed3622..cc1a98eae 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -103,10 +103,10 @@ class FileFd return T; } - bool Open(std::string FileName,unsigned int const Mode,CompressMode Compress,unsigned long const Perms = 0666); - bool Open(std::string FileName,unsigned int const Mode,APT::Configuration::Compressor const &compressor,unsigned long const Perms = 0666); - inline bool Open(std::string const &FileName,unsigned int const Mode, unsigned long const Perms = 0666) { - return Open(FileName, Mode, None, Perms); + bool Open(std::string FileName,unsigned int const Mode,CompressMode Compress,unsigned long const AccessMode = 0666); + bool Open(std::string FileName,unsigned int const Mode,APT::Configuration::Compressor const &compressor,unsigned long const AccessMode = 0666); + inline bool Open(std::string const &FileName,unsigned int const Mode, unsigned long const AccessMode = 0666) { + return Open(FileName, Mode, None, AccessMode); }; bool OpenDescriptor(int Fd, unsigned int const Mode, CompressMode Compress, bool AutoClose=false); bool OpenDescriptor(int Fd, unsigned int const Mode, APT::Configuration::Compressor const &compressor, bool AutoClose=false); @@ -129,13 +129,13 @@ class FileFd inline bool IsCompressed() {return (Flags & Compressed) == Compressed;}; inline std::string &Name() {return FileName;}; - FileFd(std::string FileName,unsigned int const Mode,unsigned long Perms = 0666) : iFd(-1), Flags(0), d(NULL) + FileFd(std::string FileName,unsigned int const Mode,unsigned long AccessMode = 0666) : iFd(-1), Flags(0), d(NULL) { - Open(FileName,Mode, None, Perms); + Open(FileName,Mode, None, AccessMode); }; - FileFd(std::string FileName,unsigned int const Mode, CompressMode Compress, unsigned long Perms = 0666) : iFd(-1), Flags(0), d(NULL) + FileFd(std::string FileName,unsigned int const Mode, CompressMode Compress, unsigned long AccessMode = 0666) : iFd(-1), Flags(0), d(NULL) { - Open(FileName,Mode, Compress, Perms); + Open(FileName,Mode, Compress, AccessMode); }; FileFd() : iFd(-1), Flags(AutoClose), d(NULL) {}; FileFd(int const Fd, unsigned int const Mode = ReadWrite, CompressMode Compress = None) : iFd(-1), Flags(0), d(NULL) -- cgit v1.2.3 From db5bf949ed796395d281474c49033f882e73f3a9 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 10 Apr 2014 09:11:57 +0200 Subject: improve umask/fchmod code readability --- apt-pkg/contrib/fileutl.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index c6072ca15..69a675648 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1067,9 +1067,12 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co if_FLAGGED_SET(Exclusive, O_EXCL); #undef if_FLAGGED_SET - // there is no getumask() so we read it by setting it and reset - mode_t current_umask = umask(0); - umask(current_umask); + // umask() will always set the umask and return the previous value, so + // we first set the umask and then reset it to the old value + mode_t CurrentUmask = umask(0); + umask(CurrentUmask); + // calculate the actual file permissions (just like open/creat) + mode_t FilePermissions = (AccessMode & ~CurrentUmask); if ((Mode & Atomic) == Atomic) { @@ -1084,11 +1087,11 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co TemporaryFileName = string(name); free(name); - if(AccessMode != 600 && fchmod(iFd, AccessMode & ~current_umask) == -1) + if(FilePermissions != 600 && fchmod(iFd, FilePermissions) == -1) return FileFdErrno("fchmod", "Could not change permissions for temporary file %s", TemporaryFileName.c_str()); } else - iFd = open(FileName.c_str(), fileflags, AccessMode & ~current_umask); + iFd = open(FileName.c_str(), fileflags, FilePermissions); this->FileName = FileName; if (iFd == -1 || OpenInternDescriptor(Mode, compressor) == false) -- cgit v1.2.3 From 5ff678f7a22bb3206f5e46fcbdd00e56cb44b99e Mon Sep 17 00:00:00 2001 From: Josef Vitu Date: Thu, 10 Apr 2014 09:33:14 +0200 Subject: apt: Minor typo in 'apt' man page (closes: #743657) --- doc/apt.8.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/apt.8.xml b/doc/apt.8.xml index 8d3b00fb3..85e7276bf 100644 --- a/doc/apt.8.xml +++ b/doc/apt.8.xml @@ -143,7 +143,7 @@ Differences to &apt-get; The apt command is meant to be pleasant for - end users and does not need to be backward compatilbe like + end users and does not need to be backward compatible like &apt-get;. Therefore some options are different: -- cgit v1.2.3 From 128aa7d3630f138f37ef83e3e8564feca01ec429 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 10 Apr 2014 09:49:25 +0200 Subject: prepare 1.0.1 release --- configure.ac | 2 +- debian/changelog | 21 +++++++++++++++++++++ doc/apt-verbatim.ent | 2 +- doc/po/apt-doc.pot | 6 +++--- doc/po/de.po | 4 ++-- doc/po/es.po | 4 ++-- doc/po/fr.po | 4 ++-- doc/po/it.po | 4 ++-- doc/po/ja.po | 4 ++-- doc/po/pl.po | 4 ++-- doc/po/pt.po | 4 ++-- doc/po/pt_BR.po | 4 ++-- po/ar.po | 38 +++++++++++++++++++------------------- po/ast.po | 38 +++++++++++++++++++------------------- po/bg.po | 38 +++++++++++++++++++------------------- po/bs.po | 38 +++++++++++++++++++------------------- po/ca.po | 38 +++++++++++++++++++------------------- po/cs.po | 38 +++++++++++++++++++------------------- po/cy.po | 38 +++++++++++++++++++------------------- po/da.po | 38 +++++++++++++++++++------------------- po/de.po | 38 +++++++++++++++++++------------------- po/dz.po | 38 +++++++++++++++++++------------------- po/el.po | 38 +++++++++++++++++++------------------- po/es.po | 38 +++++++++++++++++++------------------- po/eu.po | 38 +++++++++++++++++++------------------- po/fi.po | 38 +++++++++++++++++++------------------- po/fr.po | 38 +++++++++++++++++++------------------- po/gl.po | 38 +++++++++++++++++++------------------- po/hu.po | 38 +++++++++++++++++++------------------- po/it.po | 38 +++++++++++++++++++------------------- po/ja.po | 38 +++++++++++++++++++------------------- po/km.po | 38 +++++++++++++++++++------------------- po/ko.po | 38 +++++++++++++++++++------------------- po/ku.po | 38 +++++++++++++++++++------------------- po/lt.po | 38 +++++++++++++++++++------------------- po/mr.po | 38 +++++++++++++++++++------------------- po/nb.po | 38 +++++++++++++++++++------------------- po/ne.po | 38 +++++++++++++++++++------------------- po/nl.po | 38 +++++++++++++++++++------------------- po/nn.po | 38 +++++++++++++++++++------------------- po/pl.po | 38 +++++++++++++++++++------------------- po/pt.po | 38 +++++++++++++++++++------------------- po/pt_BR.po | 38 +++++++++++++++++++------------------- po/ro.po | 38 +++++++++++++++++++------------------- po/ru.po | 38 +++++++++++++++++++------------------- po/sk.po | 38 +++++++++++++++++++------------------- po/sl.po | 38 +++++++++++++++++++------------------- po/sv.po | 38 +++++++++++++++++++------------------- po/th.po | 38 +++++++++++++++++++------------------- po/tl.po | 38 +++++++++++++++++++------------------- po/tr.po | 38 +++++++++++++++++++------------------- po/uk.po | 38 +++++++++++++++++++------------------- po/vi.po | 38 +++++++++++++++++++------------------- po/zh_CN.po | 38 +++++++++++++++++++------------------- po/zh_TW.po | 38 +++++++++++++++++++------------------- 55 files changed, 859 insertions(+), 838 deletions(-) diff --git a/configure.ac b/configure.ac index e135f8d5e..0fcaff267 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) PACKAGE="apt" -PACKAGE_VERSION="1.0" +PACKAGE_VERSION="1.0.1" PACKAGE_MAIL="APT Development Team " AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION") diff --git a/debian/changelog b/debian/changelog index d3beac0ef..ea2aaa8f3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,24 @@ +apt (1.0.1) unstable; urgency=medium + + [ Michael Vogt ] + * Fix crash in "apt list" when a sources.list file is unreable + (Closes: 743413) + * make apt search case-insensitive by default + * Fix possible race when stunnel/aptwebserver create their PID files + in the tests + * Fix insecure file permissions when using FileFd with OpenMode::Atomic + (LP: #1304657) + + [ Julian Andres Klode ] + * Version the Breaks/Replaces for sun-java{5,6}-jdk (LP: #1302736) + (Closes: #743616) + * Add versioned openjdk-6-jdk breaks + + [ Josef Vitu ] + * apt: Minor typo in 'apt' man page (closes: #743657) + + -- Michael Vogt Thu, 10 Apr 2014 09:48:56 +0200 + apt (1.0) unstable; urgency=low The "Happy birthday and 10000b years in the making" release diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index 24c9f6786..37d2cf8c8 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -225,7 +225,7 @@ "> - + diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index 524b1afdb..8eebad5e8 100644 --- a/doc/po/apt-doc.pot +++ b/doc/po/apt-doc.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt-doc 0.9.16.1\n" +"Project-Id-Version: apt-doc 1.0.1\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -636,7 +636,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/de.po b/doc/po/de.po index 46d6d6294..953eeed37 100644 --- a/doc/po/de.po +++ b/doc/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 0.9.16\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 14:00+0200\n" "Last-Translator: Chris Leick \n" "Language-Team: German \n" @@ -790,7 +790,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/es.po b/doc/po/es.po index 47080350a..219e56710 100644 --- a/doc/po/es.po +++ b/doc/po/es.po @@ -38,7 +38,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.1\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 14:00+0200\n" "Last-Translator: Omar Campagne \n" "Language-Team: Debian l10n Spanish \n" @@ -874,7 +874,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/fr.po b/doc/po/fr.po index 279905402..cabedea51 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 14:00+0200\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" @@ -785,7 +785,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/it.po b/doc/po/it.po index cdb78fdb4..afef7d860 100644 --- a/doc/po/it.po +++ b/doc/po/it.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 14:00+0200\n" "Last-Translator: Beatrice Torracca \n" "Language-Team: Italian \n" @@ -837,7 +837,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/ja.po b/doc/po/ja.po index 9c7aa3def..36564102f 100644 --- a/doc/po/ja.po +++ b/doc/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.25.3\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 14:00+0200\n" "Last-Translator: KURASAWA Nozomu \n" "Language-Team: Debian Japanese List \n" @@ -830,7 +830,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/pl.po b/doc/po/pl.po index 22cd47baa..d70676ff7 100644 --- a/doc/po/pl.po +++ b/doc/po/pl.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.3\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 13:59+0200\n" "Last-Translator: Robert Luberda \n" "Language-Team: Polish \n" @@ -833,7 +833,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/pt.po b/doc/po/pt.po index b10890eca..d0433d498 100644 --- a/doc/po/pt.po +++ b/doc/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.1\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2014-04-01 13:59+0200\n" "Last-Translator: Américo Monteiro \n" "Language-Team: Portuguese \n" @@ -834,7 +834,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/doc/po/pt_BR.po b/doc/po/pt_BR.po index ef5c757b1..15d0bf27d 100644 --- a/doc/po/pt_BR.po +++ b/doc/po/pt_BR.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 14:24+0200\n" +"POT-Creation-Date: 2014-04-10 09:49+0200\n" "PO-Revision-Date: 2004-09-20 17:02+0000\n" "Last-Translator: André Luís Lopes \n" "Language-Team: \n" @@ -632,7 +632,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The apt command is meant to be pleasant for end users and " -"does not need to be backward compatilbe like &apt-get;. Therefore some " +"does not need to be backward compatible like &apt-get;. Therefore some " "options are different:" msgstr "" diff --git a/po/ar.po b/po/ar.po index 54324bac5..ab7efcae2 100644 --- a/po/ar.po +++ b/po/ar.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2006-10-20 21:28+0300\n" "Last-Translator: Ossama M. Khayat \n" "Language-Team: Arabic \n" @@ -734,9 +734,9 @@ msgstr "انتهى وقت الاتصال" msgid "Server closed the connection" msgstr "أغلق الخادم الاتصال" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "خطأ في القراءة" @@ -749,9 +749,9 @@ msgid "Protocol corruption" msgstr "" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "خطأ في الكتابة" @@ -1005,7 +1005,7 @@ msgstr "فشل الاتصال" msgid "Internal error" msgstr "خطأ داخلي" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2378,54 +2378,54 @@ msgstr "" msgid "Problem closing the gzip file %s" msgstr "مشكلة في إغلاق الملف" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "فشل إغلاق الملف %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "مشكلة في إغلاق الملف" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "مشكلة في مزامنة الملف" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "مشكلة في إغلاق الملف" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "مشكلة في مزامنة الملف" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "فشل إعادة التسمية ، %s (%s -> %s)." diff --git a/po/ast.po b/po/ast.po index 1495a18b0..723896b23 100644 --- a/po/ast.po +++ b/po/ast.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.18\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2010-10-02 23:35+0100\n" "Last-Translator: Iñigo Varela \n" "Language-Team: Asturian (ast)\n" @@ -840,9 +840,9 @@ msgstr "Gandió'l tiempu de conexón" msgid "Server closed the connection" msgstr "El sirvidor zarró la conexón" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Fallu de llectura" @@ -855,9 +855,9 @@ msgid "Protocol corruption" msgstr "Corrupción del protocolu" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Fallu d'escritura" @@ -1114,7 +1114,7 @@ msgstr "Fallo la conexón" msgid "Internal error" msgstr "Fallu internu" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2589,54 +2589,54 @@ msgstr "El subprocesu %s terminó de manera inesperada" msgid "Problem closing the gzip file %s" msgstr "Problemes zarrando'l ficheru gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nun se pudo abrir el ficheru %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Nun pudo abrise un ficheru descriptor %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Nun pudo criase'l soprocesu IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Nun pudo executase'l compresor " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "lleíos, entá tenía de lleer %lu pero nun queda nada" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "escritos, entá tenía d'escribir %lu pero nun pudo facerse" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problemes zarrando'l ficheru %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Hai problemes al renomar el ficheru %s a %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Hai problemes desvenceyando'l ficheru %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Hai problemes al sincronizar el ficheru" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "falló'l cambiu de nome, %s (%s -> %s)." diff --git a/po/bg.po b/po/bg.po index e07e96319..3f8808a07 100644 --- a/po/bg.po +++ b/po/bg.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.21\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-25 17:23+0300\n" "Last-Translator: Damyan Ivanov \n" "Language-Team: Bulgarian \n" @@ -867,9 +867,9 @@ msgstr "Допустимото време за свързването изтеч msgid "Server closed the connection" msgstr "Сървърът разпадна връзката" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Грешка при четене" @@ -882,9 +882,9 @@ msgid "Protocol corruption" msgstr "Развален протокол" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Грешка при запис" @@ -1146,7 +1146,7 @@ msgstr "Неуспех при свързването" msgid "Internal error" msgstr "Вътрешна грешка" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2627,55 +2627,55 @@ msgstr "Подпроцесът %s завърши неочаквано" msgid "Problem closing the gzip file %s" msgstr "Проблем при затваряне на компресираният файл %s (gzip)" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Неуспех при отварянето на файла %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Неуспех при отварянето на файлов манипулатор %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Неуспех при създаването на подпроцес IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Неуспех при изпълнението на компресиращата програма " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" "грешка при четене, все още има %llu за четене, но няма нито един останал" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "грешка при запис, все още име %llu за запис, но не успя" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Проблем при затваряне на файла %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Проблем при преименуване на файла %s на %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Проблем при изтриване на файла %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Проблем при синхронизиране на файла" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "преименуването се провали, %s (%s -> %s)." diff --git a/po/bs.po b/po/bs.po index 08e61a875..180900748 100644 --- a/po/bs.po +++ b/po/bs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2004-05-06 15:25+0100\n" "Last-Translator: Safir Šećerović \n" "Language-Team: Bosnian \n" @@ -737,9 +737,9 @@ msgstr "" msgid "Server closed the connection" msgstr "Server je zatvorio vezu" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Greška pri čitanju" @@ -753,9 +753,9 @@ msgid "Protocol corruption" msgstr "Oštećenje protokola" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Greška pri pisanju" @@ -1010,7 +1010,7 @@ msgstr "Povezivanje neuspješno" msgid "Internal error" msgstr "Unutrašnja greška" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2371,54 +2371,54 @@ msgstr "" msgid "Problem closing the gzip file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Ne mogu otvoriti %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Ne mogu ukloniti %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "" diff --git a/po/ca.po b/po/ca.po index e6f688d69..f015c1eb3 100644 --- a/po/ca.po +++ b/po/ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.6\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-10-19 13:30+0200\n" "Last-Translator: Jordi Mallach \n" "Language-Team: Catalan \n" @@ -851,9 +851,9 @@ msgstr "Temps de connexió finalitzat" msgid "Server closed the connection" msgstr "El servidor ha tancat la connexió" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Error de lectura" @@ -866,9 +866,9 @@ msgid "Protocol corruption" msgstr "Protocol corromput" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Error d'escriptura" @@ -1130,7 +1130,7 @@ msgstr "Ha fallat la connexió" msgid "Internal error" msgstr "Error intern" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2612,54 +2612,54 @@ msgstr "El sub-procés %s ha sortit inesperadament" msgid "Problem closing the gzip file %s" msgstr "Ha hagut un problema en tancar el fitxer gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "No s'ha pogut obrir el fitxer %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "No s'ha pogut obrir el descriptor del fitxer %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "No s'ha pogut crear el subprocés IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "No s'ha pogut executar el compressor " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "llegits, falten %llu per llegir, però no queda res" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "escrits, falten %llu per escriure però no s'ha pogut" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Ha hagut un problema en tancar el fitxer %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Ha hagut un problema en reanomenar el fitxer %s a %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Ha hagut un problema en desenllaçar el fitxer %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Ha hagut un problema en sincronitzar el fitxer" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "no s'ha pogut canviar el nom, %s (%s -> %s)." diff --git a/po/cs.po b/po/cs.po index de7480c37..8dfab73a5 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-07-08 13:46+0200\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" @@ -849,9 +849,9 @@ msgstr "Čas spojení vypršel" msgid "Server closed the connection" msgstr "Server uzavřel spojení" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Chyba čtení" @@ -864,9 +864,9 @@ msgid "Protocol corruption" msgstr "Porušení protokolu" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Chyba zápisu" @@ -1122,7 +1122,7 @@ msgstr "Spojení selhalo" msgid "Internal error" msgstr "Vnitřní chyba" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2588,54 +2588,54 @@ msgstr "Podproces %s neočekávaně skončil" msgid "Problem closing the gzip file %s" msgstr "Problém při zavírání gzip souboru %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nelze otevřít soubor %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Nelze otevřít popisovač souboru %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Nelze vytvořit podproces IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Nezdařilo se spustit kompresor " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "čtení, stále mám k přečtení %llu, ale už nic nezbývá" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "zápis, stále mám %llu k zápisu, ale nejde to" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problém při zavírání souboru %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problém při přejmenování souboru %s na %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problém při odstraňování souboru %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problém při synchronizování souboru" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "přejmenování selhalo, %s (%s -> %s)." diff --git a/po/cy.po b/po/cy.po index db5a11b8b..83c4450f6 100644 --- a/po/cy.po +++ b/po/cy.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: APT\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2005-06-06 13:46+0100\n" "Last-Translator: Dafydd Harries \n" "Language-Team: Welsh \n" @@ -859,9 +859,9 @@ msgstr "Goramser cysylltu" msgid "Server closed the connection" msgstr "Caeodd y gweinydd y cysylltiad" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Gwall darllen" @@ -874,9 +874,9 @@ msgid "Protocol corruption" msgstr "Llygr protocol" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Gwall ysgrifennu" @@ -1140,7 +1140,7 @@ msgstr "Methodd y cysylltiad" msgid "Internal error" msgstr "Gwall mewnol" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2624,56 +2624,56 @@ msgstr "Gorffenodd is-broses %s yn annisgwyl" msgid "Problem closing the gzip file %s" msgstr "Gwall wrth gau'r ffeil" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Methwyd agor ffeil %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Methwyd agor pibell ar gyfer %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Methwyd creu isbroses IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Methwyd gweithredu cywasgydd " # FIXME -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "o hyd %lu i ddarllen ond dim ar ôl" # FIXME -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "o hyd %lu i ysgrifennu ond methwyd" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Gwall wrth gau'r ffeil" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Gwall wrth gyfamseru'r ffeil" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Gwall wrth dadgysylltu'r ffeil" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Gwall wrth gyfamseru'r ffeil" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "methwyd ailenwi, %s (%s -> %s)." diff --git a/po/da.po b/po/da.po index 2d60bd666..4a6c64d9e 100644 --- a/po/da.po +++ b/po/da.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2013-12-14 23:51+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" @@ -878,9 +878,9 @@ msgstr "Tidsudløb på forbindelsen" msgid "Server closed the connection" msgstr "Serveren lukkede forbindelsen" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Læsefejl" @@ -893,9 +893,9 @@ msgid "Protocol corruption" msgstr "Protokolfejl" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Skrivefejl" @@ -1157,7 +1157,7 @@ msgid "Internal error" msgstr "Intern fejl" # måske visning, kategorisering -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "Listing" @@ -2622,54 +2622,54 @@ msgstr "Underprocessen %s afsluttedes uventet" msgid "Problem closing the gzip file %s" msgstr "Problem under lukning af gzip-filen %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Kunne ikke åbne filen %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Kunne ikke åbne filbeskrivelse %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Kunne ikke oprette underproces IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Kunne ikke udføre komprimeringsprogram " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "læs, mangler stadig at læse %llu men der er ikke flere" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "skriv, mangler stadig at skrive %llu men kunne ikke" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problem under lukning af filen %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem under omdøbning af filen %s til %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Fejl ved frigivelse af filen %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problem under synkronisering af fil" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "omdøbning mislykkedes, %s (%s -> %s)." diff --git a/po/de.po b/po/de.po index a822e23f9..aaa08def6 100644 --- a/po/de.po +++ b/po/de.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.2\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-27 10:55+0200\n" "Last-Translator: Holger Wansing \n" "Language-Team: Debian German \n" @@ -889,9 +889,9 @@ msgstr "Zeitüberschreitung der Verbindung" msgid "Server closed the connection" msgstr "Verbindung durch Server geschlossen" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Lesefehler" @@ -904,9 +904,9 @@ msgid "Protocol corruption" msgstr "Protokoll beschädigt" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Schreibfehler" @@ -1176,7 +1176,7 @@ msgstr "Verbindung fehlgeschlagen" msgid "Internal error" msgstr "Interner Fehler" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2670,58 +2670,58 @@ msgstr "Unterprozess %s unerwartet beendet" msgid "Problem closing the gzip file %s" msgstr "Problem beim Schließen der gzip-Datei %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Datei %s konnte nicht geöffnet werden." -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Datei-Deskriptor %d konnte nicht geöffnet werden." -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "" "Interprozesskommunikation mit Unterprozess konnte nicht aufgebaut werden." -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Fehler beim Ausführen von Komprimierer " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" "Lesevorgang: es verbleiben noch %llu zu lesen, jedoch ist nichts mehr übrig." -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "" "Schreibvorgang: es verbleiben noch %llu zu schreiben, Schreiben ist jedoch " "nicht möglich." -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problem beim Schließen der Datei %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem beim Umbenennen der Datei %s nach %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problem beim Entfernen (unlink) der Datei %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problem beim Synchronisieren der Datei" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "Umbenennen fehlgeschlagen, %s (%s -> %s)." diff --git a/po/dz.po b/po/dz.po index eab302182..8090b9d43 100644 --- a/po/dz.po +++ b/po/dz.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po.pot\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2006-09-19 09:49+0530\n" "Last-Translator: Kinley Tshering \n" "Language-Team: Dzongkha \n" @@ -833,9 +833,9 @@ msgstr "མཐུད་ལམ་ངལ་མཚམས" msgid "Server closed the connection" msgstr "སར་བར་གྱིས་མཐུད་ལམ་འདི་ཁ་བསྡམས་ཏེ་ཡོདཔ་ཨིན།" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "འཛོལ་བ་ལྷབ།" @@ -848,9 +848,9 @@ msgid "Protocol corruption" msgstr "གནད་སྤེལ་ལམ་ལུགས་ ངན་ཅན།" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "འཛོལ་བ་འབྲི།" @@ -1109,7 +1109,7 @@ msgstr "བཐུད་ལམ་འཐུས་ཤོར་བྱུང་ཡོ msgid "Internal error" msgstr "ནང་འཁོད་འཛོལ་བ།" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2575,54 +2575,54 @@ msgstr "ཡན་ལག་ལས་སྦྱོར་་%s་གིས་རེ msgid "Problem closing the gzip file %s" msgstr "ཡིག་སྣོད་འདི་ཁ་བསྡམས་པའི་བསྒང་དཀའ་ངལ།" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "%s་ཡིག་སྣོད་འདི་ཁ་ཕྱེ་མ་ཚུགས།" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "%s་གི་དོན་ལུ་རྒྱུད་དུང་འདི་ཁ་ཕྱེ་མ་ཚུགས།" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "ཡན་ལག་ལས་སྦྱོར་ ཨའི་པི་སི་ གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "ཨེབ་འཕྲུལ་ལག་ལེན་འཐབ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "ལྷག་ ད་ལྟོ་ཡང་ལྷག་ནི་ལུ་%lu་ཡོད་འདི་འབདཝ་ད་ཅི་ཡང་ལྷག་ལུས་མིན་འདུག" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "འབྲི་ ད་ལྟོ་ཡང་འབྲི་ནི་ལུ་%lu་ཡོད་འདི་འདབཝ་ད་འབད་མ་ཚུགས།" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "ཡིག་སྣོད་འདི་ཁ་བསྡམས་པའི་བསྒང་དཀའ་ངལ།" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "ཡིག་སྣོད་མཉམ་བྱུང་འབདཝ་ད་དཀའ་ངལ།" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "ཡིག་སྣོད་འདི་འབྲེལལམ་མེདཔ་བཟོ་བའི་བསྒང་དཀའ་ངལ།" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "ཡིག་སྣོད་མཉམ་བྱུང་འབདཝ་ད་དཀའ་ངལ།" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "%s (%s -> %s)བསྐྱར་མིང་བཏགས་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།" diff --git a/po/el.po b/po/el.po index 9a7d05cfb..761435e57 100644 --- a/po/el.po +++ b/po/el.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_el\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-08-26 18:25+0300\n" "Last-Translator: Θανάσης Νάτσης \n" "Language-Team: Greek \n" @@ -846,9 +846,9 @@ msgstr "Λήξη χρόνου σύνδεσης" msgid "Server closed the connection" msgstr "Ο διακομιστής έκλεισε την σύνδεση" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Σφάλμα ανάγνωσης" @@ -861,9 +861,9 @@ msgid "Protocol corruption" msgstr "Αλλοίωση του πρωτοκόλλου" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Σφάλμα εγγραφής" @@ -1125,7 +1125,7 @@ msgstr "Η σύνδεση απέτυχε" msgid "Internal error" msgstr "Εσωτερικό Σφάλμα" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2601,54 +2601,54 @@ msgstr "Η υποδιεργασία %s εγκατέλειψε απρόσμενα msgid "Problem closing the gzip file %s" msgstr "Πρόβλημα κατά το κλείσιμο του αρχείου" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Αδύνατο το άνοιγμα του αρχείου %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Αδύνατο το άνοιγμα διασωλήνωσης για το %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Αποτυχία δημιουργίας IPC στην υποδιεργασία" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Αποτυχία εκτέλεσης του συμπιεστή " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "αναγνώστηκαν, απομένουν ακόμη %lu για ανάγνωση αλλά δεν απομένουν άλλα" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "γράφτηκαν, απομένουν %lu για εγγραφή αλλά χωρίς επιτυχία" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Πρόβλημα κατά το κλείσιμο του αρχείου" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Πρόβλημα κατά τον συγχρονισμό του αρχείου" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Πρόβλημα κατά την διαγραφή του αρχείου" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Πρόβλημα κατά τον συγχρονισμό του αρχείου" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "απέτυχε η μετονομασία, %s (%s -> %s)." diff --git a/po/es.po b/po/es.po index 7dd6ef6fd..8b6a05561 100644 --- a/po/es.po +++ b/po/es.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.10\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2011-01-24 11:47+0100\n" "Last-Translator: Javier Fernández-Sanguino Peña \n" "Language-Team: Debian Spanish \n" @@ -904,9 +904,9 @@ msgstr "La conexión expiró" msgid "Server closed the connection" msgstr "El servidor cerró la conexión" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Error de lectura" @@ -919,9 +919,9 @@ msgid "Protocol corruption" msgstr "Fallo del protocolo" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Error de escritura" @@ -1180,7 +1180,7 @@ msgstr "Fallo la conexión" msgid "Internal error" msgstr "Error interno" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2671,54 +2671,54 @@ msgstr "El subproceso %s terminó de forma inesperada" msgid "Problem closing the gzip file %s" msgstr "Se produjo un problema al cerrar el fichero gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "No pude abrir el fichero %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "No se pudo abrir el descriptor de fichero %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "No se pudo crear el subproceso IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "No se pudo ejecutar el compresor " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "leídos, todavía debía leer %lu pero no queda nada" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "escritos, todavía tenía que escribir %lu pero no pude hacerlo" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Se produjo un problema al cerrar el fichero %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Se produjo un problema al renombrar el fichero %s a %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Se produjo un problema al desligar el fichero %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Se produjo un problema al sincronizar el fichero" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "falló el cambio de nombre, %s (%s -> %s)." diff --git a/po/eu.po b/po/eu.po index de7e906a6..fd266e49e 100644 --- a/po/eu.po +++ b/po/eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_eu\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2009-05-17 00:41+0200\n" "Last-Translator: Piarres Beobide \n" "Language-Team: Euskara \n" @@ -834,9 +834,9 @@ msgstr "Konexioa denboraz kanpo" msgid "Server closed the connection" msgstr "Zerbitzariak konexioa itxi du" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Irakurketa errorea" @@ -849,9 +849,9 @@ msgid "Protocol corruption" msgstr "Protokolo hondatzea" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Idazketa errorea" @@ -1110,7 +1110,7 @@ msgstr "Konexioak huts egin du" msgid "Internal error" msgstr "Barne errorea" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2578,54 +2578,54 @@ msgstr "%s azpiprozesua ustekabean amaitu da" msgid "Problem closing the gzip file %s" msgstr "Arazoa fitxategia ixtean" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "%s fitxategia ezin izan da ireki" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Ezin izan da %s(r)en kanalizazioa ireki" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Huts egin du IPC azpiprozesua sortzean" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Huts egin du konpresorea exekutatzean " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "irakurrita; oraindik %lu irakurtzeke, baina ez da ezer geratzen" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "idatzita; oraindik %lu idazteke, baina ezin da" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Arazoa fitxategia ixtean" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Arazoa fitxategia sinkronizatzean" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Arazoa fitxategia desestekatzean" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Arazoa fitxategia sinkronizatzean" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "huts egin du izen-aldaketak, %s (%s -> %s)." diff --git a/po/fi.po b/po/fi.po index 0d7d68bb5..8e9835466 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-12-11 14:52+0200\n" "Last-Translator: Tapio Lehtonen \n" "Language-Team: Finnish \n" @@ -826,9 +826,9 @@ msgstr "Yhteys aikakatkaistiin" msgid "Server closed the connection" msgstr "Palvelin sulki yhteyden" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Lukuvirhe" @@ -841,9 +841,9 @@ msgid "Protocol corruption" msgstr "Yhteyskäytäntö on turmeltunut" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Virhe kirjoitettaessa" @@ -1102,7 +1102,7 @@ msgstr "Yhteys ei toiminut" msgid "Internal error" msgstr "Sisäinen virhe" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2569,54 +2569,54 @@ msgstr "Aliprosessi %s lopetti odottamatta" msgid "Problem closing the gzip file %s" msgstr "Pulmia tiedoston sulkemisessa" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Tiedostoa %s ei voitu avata" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Putkea %s ei voitu avata" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Prosessien välistä kommunikaatiota aliprosessiin ei saatu luotua" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Pakkaajan käynnistäminen ei onnistunut" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "read, vielä %lu lukematta mutta tiedosto loppui" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "write, vielä %lu kirjoittamatta mutta epäonnistui" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Pulmia tiedoston sulkemisessa" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Pulmia tehtäessä tiedostolle sync" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Pulmia tehtäessä tiedostolle unlink" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Pulmia tehtäessä tiedostolle sync" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "nimen vaihto ei onnistunut, %s (%s -> %s)." diff --git a/po/fr.po b/po/fr.po index 29a2271bc..9541eee46 100644 --- a/po/fr.po +++ b/po/fr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2013-08-17 07:57+0200\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" @@ -892,9 +892,9 @@ msgstr "Dépassement du délai de connexion" msgid "Server closed the connection" msgstr "Le serveur a fermé la connexion" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Erreur de lecture" @@ -907,9 +907,9 @@ msgid "Protocol corruption" msgstr "Corruption du protocole" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Erreur d'écriture" @@ -1174,7 +1174,7 @@ msgstr "Échec de la connexion" msgid "Internal error" msgstr "Erreur interne" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2681,54 +2681,54 @@ msgstr "Le sous-processus %s s'est arrêté prématurément" msgid "Problem closing the gzip file %s" msgstr "Problème de fermeture du fichier gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Impossible d'ouvrir le fichier %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Impossible d'ouvrir le descripteur de fichier %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Impossible de créer un sous-processus IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Impossible d'exécuter la compression " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "lu(s), %llu restant à lire, mais rien n'est disponible" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "écrit(s), %llu restant à écrire, mais l'écriture est impossible" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problème de fermeture du fichier %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problème de renommage du fichier %s en %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problème de suppression du lien %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problème de synchronisation du fichier" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "impossible de changer le nom, %s (%s -> %s)." diff --git a/po/gl.po b/po/gl.po index fb586a3a3..7738a566e 100644 --- a/po/gl.po +++ b/po/gl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_gl\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2011-05-12 15:28+0100\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: galician \n" @@ -849,9 +849,9 @@ msgstr "Esgotouse o tempo para a conexión" msgid "Server closed the connection" msgstr "O servidor pechou a conexión" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Produciuse un erro de lectura" @@ -864,9 +864,9 @@ msgid "Protocol corruption" msgstr "Dano no protocolo" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Produciuse un erro de escritura" @@ -1129,7 +1129,7 @@ msgstr "Produciuse un fallo na conexión" msgid "Internal error" msgstr "Produciuse un erro interno" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2618,54 +2618,54 @@ msgstr "O subproceso %s saíu de xeito inesperado" msgid "Problem closing the gzip file %s" msgstr "Produciuse un problema ao pechar o arquivo gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Non foi posíbel abrir o ficheiro %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Non foi posíbel abrir o descritor de ficheiro %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Non foi posíbel crear o IPC do subproceso" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Non foi posíbel executar o compresor " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "lectura, aínda hai %lu para ler pero non queda ningún" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "escritura, aínda hai %lu para escribir pero non se puido" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Produciuse un problema ao pechar o ficheiro %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Produciuse un problema ao renomear o ficheiro %s a %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Produciuse un problema ao desligar o ficheiro %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Produciuse un problema ao sincronizar o ficheiro" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "non foi posíbel cambiar o nome, %s (%s -> %s)." diff --git a/po/hu.po b/po/hu.po index 323cab75f..c8892d7c0 100644 --- a/po/hu.po +++ b/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt trunk\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-25 17:09+0200\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" @@ -869,9 +869,9 @@ msgstr "Időtúllépés a kapcsolatban" msgid "Server closed the connection" msgstr "A kiszolgáló lezárta a kapcsolatot" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Olvasási hiba" @@ -884,9 +884,9 @@ msgid "Protocol corruption" msgstr "Protokollhiba" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Írási hiba" @@ -1144,7 +1144,7 @@ msgstr "Sikertelen kapcsolódás" msgid "Internal error" msgstr "Belső hiba" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2621,54 +2621,54 @@ msgstr "%s alfolyamat váratlanul kilépett" msgid "Problem closing the gzip file %s" msgstr "Hiba a(z) %s gzip fájl bezárásakor" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nem lehet megnyitni a(z) %s fájlt" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Nem lehet megnyitni a(z) %d fájlleírót" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Nem sikerült az alfolyamat IPC-t létrehozni" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Nem sikerült elindítani a tömörítőt " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "olvasás, még kellene %llu, de már az összes elfogyott" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "írás, még kiírandó %llu, de ez nem lehetséges" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Hiba a(z) %s fájl bezárásakor" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Hiba a(z) %s fájl átnevezésekor erre: %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Hiba a(z) %s fájl törlésekor" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Hiba a fájl szinkronizálásakor" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "sikertelen átnevezés, %s (%s -> %s)." diff --git a/po/it.po b/po/it.po index 9856bf486..03a114bde 100644 --- a/po/it.po +++ b/po/it.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2013-08-27 22:06+0200\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" @@ -882,9 +882,9 @@ msgstr "Connessione scaduta" msgid "Server closed the connection" msgstr "Il server ha chiuso la connessione" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Errore di lettura" @@ -897,9 +897,9 @@ msgid "Protocol corruption" msgstr "Protocollo danneggiato" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Errore di scrittura" @@ -1163,7 +1163,7 @@ msgstr "Connessione non riuscita" msgid "Internal error" msgstr "Errore interno" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2663,54 +2663,54 @@ msgstr "Il sottoprocesso %s è uscito inaspettatamente" msgid "Problem closing the gzip file %s" msgstr "Si è verificato un problema nel chiudere il file gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Impossibile aprire il file %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Impossibile aprire il descrittore del file %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Creazione di un sottoprocesso IPC non riuscita" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Esecuzione non riuscita del compressore " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "lettura, ancora %llu da leggere, ma non è stato trovato nulla" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "scrittura, ancora %llu da scrivere, ma non è possibile" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Si è verificato un problema nel chiudere il file %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Si è verificato un problema nel rinominare il file %s in %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Si è verificato un problema nell'eseguire l'unlink del file %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Si è verificato un problema nel sincronizzare il file" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "rename() non riuscita: %s (%s -> %s)." diff --git a/po/ja.po b/po/ja.po index 439af8f7f..bd2261781 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.16.1\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2014-03-21 19:53+0900\n" "Last-Translator: Kenshi Muto \n" "Language-Team: Debian Japanese List \n" @@ -903,9 +903,9 @@ msgstr "接続タイムアウト" msgid "Server closed the connection" msgstr "サーバが接続を切断しました" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "読み込みエラー" @@ -918,9 +918,9 @@ msgid "Protocol corruption" msgstr "プロトコルが壊れています" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "書き込みエラー" @@ -1178,7 +1178,7 @@ msgstr "接続失敗" msgid "Internal error" msgstr "内部エラー" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "一覧表示" @@ -2640,54 +2640,54 @@ msgstr "子プロセス %s が予期せず終了しました" msgid "Problem closing the gzip file %s" msgstr "gzip ファイル %s のクローズ中に問題が発生しました" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "ファイル %s をオープンできませんでした" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "ファイルデスクリプタ %d を開けませんでした" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "子プロセス IPC の生成に失敗しました" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "以下の圧縮ツールの実行に失敗しました: " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "読み込みが %llu 残っているはずですが、何も残っていません" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "あと %llu 書き込む必要がありますが、書き込むことができませんでした" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "ファイル %s のクローズ中に問題が発生しました" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "%s から %s へのファイル名変更中に問題が発生しました" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "ファイル %s の削除中に問題が発生しました" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "ファイルの同期中に問題が発生しました" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "名前の変更に失敗しました。%s (%s -> %s)" diff --git a/po/km.po b/po/km.po index 98f874066..dcd1541d6 100644 --- a/po/km.po +++ b/po/km.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_km\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2006-10-10 09:48+0700\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" @@ -823,9 +823,9 @@ msgstr "អស់ពេល​ក្នុងការតភ្ជាប់​" msgid "Server closed the connection" msgstr "ម៉ាស៊ីន​បម្រើ​បាន​បិទ​ការតភ្ជាប់​" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "ការអាន​មានកំហុស" @@ -838,9 +838,9 @@ msgid "Protocol corruption" msgstr "ការបង្ខូច​ពិធីការ​" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "ការសរសេរ​មានកំហុស" @@ -1095,7 +1095,7 @@ msgstr "ការតភ្ជាប់​បាន​បរាជ័យ​" msgid "Internal error" msgstr "កំហុស​ខាង​ក្នុង​" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2547,54 +2547,54 @@ msgstr "ដំណើរការ​រង​ %s បានចេញ ដោយ​ msgid "Problem closing the gzip file %s" msgstr "មាន​បញ្ហា​ក្នុងការ​បិទ​ឯកសារ" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "មិន​អាច​បើក​ឯកសារ​ %s បានឡើយ" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "មិន​អាច​បើក​បំពុង​សម្រាប់​ %s បានឡើយ" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "បរាជ័យ​ក្នុង​ការ​បង្កើត​ដំណើរការ​រង​ IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "បរាជ័យ​ក្នុង​ការ​ប្រតិបត្តិ​កម្មវិធី​បង្ហាប់ " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "អាន​, នៅតែ​មាន %lu ដើម្បី​អាន​ ប៉ុន្តែ​គ្មាន​អ្វី​នៅសល់" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "សរសេរ​, នៅតែមាន​ %lu ដើម្បី​សរសេរ​ ប៉ុន្តែ​មិន​អាច​" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "មាន​បញ្ហា​ក្នុងការ​បិទ​ឯកសារ" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "មានបញ្ហា​ក្នុង​ការធ្វើ​សមកាលកម្មឯកសារ​" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "មានបញ្ហា​ក្នុងការ​ផ្ដាច់តំណ​ឯកសារ" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "មានបញ្ហា​ក្នុង​ការធ្វើ​សមកាលកម្មឯកសារ​" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "ប្តូរ​ឈ្មោះ​បានបរាជ័យ​, %s (%s -> %s) ។" diff --git a/po/ko.po b/po/ko.po index ed4168b59..c41d2ca48 100644 --- a/po/ko.po +++ b/po/ko.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2010-08-30 02:31+0900\n" "Last-Translator: Changwoo Ryu \n" "Language-Team: Korean \n" @@ -831,9 +831,9 @@ msgstr "연결 시간 초과" msgid "Server closed the connection" msgstr "서버에서 연결을 닫았습니다" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "읽기 오류" @@ -846,9 +846,9 @@ msgid "Protocol corruption" msgstr "프로토콜이 틀렸습니다" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "쓰기 오류" @@ -1103,7 +1103,7 @@ msgstr "연결이 실패했습니다" msgid "Internal error" msgstr "내부 오류" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2563,54 +2563,54 @@ msgstr "하위 프로세스 %s 프로세스가 예상치 못하게 끝났습니 msgid "Problem closing the gzip file %s" msgstr "%s gzip 파일을 닫는데 문제가 있습니다" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "%s 파일을 열 수 없습니다" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "%d 파일 디스크립터를 열 수 없습니다" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "하위 프로세스 IPC를 만드는데 실패했습니다" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "다음 압축 프로그램을 실행하는데 실패했습니다: " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "%lu만큼 더 읽어야 하지만 더 이상 읽을 데이터가 없습니다" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "%lu만큼 더 써야 하지만 더 이상 쓸 수 없습니다" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "%s 파일을 닫는데 문제가 있습니다" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "%s 파일을 %s(으)로 이름을 바꾸는데 문제가 있습니다" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "%s 파일을 삭제하는데 문제가 있습니다" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "파일을 동기화하는데 문제가 있습니다" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "이름 바꾸기가 실패했습니다. %s (%s -> %s)." diff --git a/po/ku.po b/po/ku.po index c198f1730..cb6e20aaa 100644 --- a/po/ku.po +++ b/po/ku.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-ku\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-05-08 12:48+0200\n" "Last-Translator: Erdal Ronahi \n" "Language-Team: ku \n" @@ -742,9 +742,9 @@ msgstr "" msgid "Server closed the connection" msgstr "" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Çewiya xwendinê" @@ -757,9 +757,9 @@ msgid "Protocol corruption" msgstr "" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Çewtiya nivîsînê" @@ -1016,7 +1016,7 @@ msgstr "Girêdan pêk nehatiye" msgid "Internal error" msgstr "Çewtiya hundirîn" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2391,54 +2391,54 @@ msgstr "" msgid "Problem closing the gzip file %s" msgstr "Di girtina pelî de pirsgirêkek derket" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nikarî pelê %s veke" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Nikarî pelê %s veke" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Di girtina pelî de pirsgirêkek derket" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Di girtina pelî de pirsgirêkek derket" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Di girtina pelî de pirsgirêkek derket" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "nav guherandin biserneket, %s (%s -> %s)" diff --git a/po/lt.po b/po/lt.po index d950560a4..0488f39cd 100644 --- a/po/lt.po +++ b/po/lt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-08-02 01:47-0400\n" "Last-Translator: Gintautas Miliauskas \n" "Language-Team: Lithuanian \n" @@ -746,9 +746,9 @@ msgstr "Jungiamasi per ilgai" msgid "Server closed the connection" msgstr "" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Skaitymo klaida" @@ -761,9 +761,9 @@ msgid "Protocol corruption" msgstr "" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Rašymo klaida" @@ -1017,7 +1017,7 @@ msgstr "Prisijungti nepavyko" msgid "Internal error" msgstr "Vidinė klaida" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2481,54 +2481,54 @@ msgstr "Procesas %s netikėtai išėjo" msgid "Problem closing the gzip file %s" msgstr "Klaida užveriant failą" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nepavyko atverti failo %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Nepavyko atverti failo %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Nepavyko sukurti subproceso IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Nepavyko paleisti suspaudėjo " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Klaida užveriant failą" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Klaida sinchronizuojant failą" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Klaida užveriant failą" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Klaida sinchronizuojant failą" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "" diff --git a/po/mr.po b/po/mr.po index fc4b5a1a3..c7ac9664a 100644 --- a/po/mr.po +++ b/po/mr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-11-20 23:27+0530\n" "Last-Translator: Sampada \n" "Language-Team: Marathi, janabhaaratii, C-DAC, Mumbai, India " @@ -820,9 +820,9 @@ msgstr "वेळेअभावी संबंध जोडता येत msgid "Server closed the connection" msgstr "सर्व्हरने संबंध जोडणी बंद केली" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "त्रुटी वाचा" @@ -835,9 +835,9 @@ msgid "Protocol corruption" msgstr "प्रोटोकॉल खराब झाले" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "लिहिण्यात त्रुटी" @@ -1093,7 +1093,7 @@ msgstr "जोडणी अयशस्वी" msgid "Internal error" msgstr "अंतर्गत त्रुटी" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2552,54 +2552,54 @@ msgstr "%s उपक्रिया अचानकपणे बाहेर प msgid "Problem closing the gzip file %s" msgstr "फाईल बंद करण्यात अडचण" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "%s फाईल उघडता येत नाही" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "%s साठी पाईप उघडता येत नाही" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "आयपीसी उपक्रिया तयार करण्यास असमर्थ" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "दाबक(संकलितकर्ता) कर्यान्वित करण्यास असमर्थ" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "वाचा, %lu अजूनही वाचण्यासाठी आहे पण आता काही उरली नाही" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "लिहा, %lu अजूनही लिहिण्यासाठी आहे पण लिहिता येत नाही" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "फाईल बंद करण्यात अडचण" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "संचिकेची syncing समस्या" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "फाईल अनलिंकिंग करण्यात अडचण" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "संचिकेची syncing समस्या" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "पुनर्नामांकन अयशस्वी, %s (%s -> %s)." diff --git a/po/nb.po b/po/nb.po index 08379c91f..5600dca35 100644 --- a/po/nb.po +++ b/po/nb.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2010-09-01 21:10+0200\n" "Last-Translator: Hans Fredrik Nordhaug \n" "Language-Team: Norwegian Bokmål \n" @@ -837,9 +837,9 @@ msgstr "Tidsavbrudd på forbindelsen" msgid "Server closed the connection" msgstr "Tjeneren lukket forbindelsen" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Lesefeil" @@ -852,9 +852,9 @@ msgid "Protocol corruption" msgstr "Protokollødeleggelse" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Skrivefeil" @@ -1111,7 +1111,7 @@ msgstr "Forbindelsen mislykkes" msgid "Internal error" msgstr "Intern feil" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2582,54 +2582,54 @@ msgstr "Underprosessen %s avsluttet uventet" msgid "Problem closing the gzip file %s" msgstr "Problem ved låsing av gzip-fila %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Klarte ikke åpne fila %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Klarte ikke åpne fildeskriptor %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Klarte ikke å opprette underprosessen IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Klarte ikke å kjøre komprimeringen" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "lese, har fremdeles %lu igjen å lese, men ingen igjen" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "skrive, har fremdeles %lu igjen å skrive, men klarte ikke å" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problem ved låsing av fila %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem ved endring av navn på fila %s til %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problem ved oppheving av lenke til fila %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problem ved oppdatering av fila" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "klarte ikke å endre navnet, %s (%s -> %s)." diff --git a/po/ne.po b/po/ne.po index ff59e0502..0e13dd90d 100644 --- a/po/ne.po +++ b/po/ne.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2006-06-12 14:35+0545\n" "Last-Translator: Shiva Pokharel \n" "Language-Team: Nepali \n" @@ -822,9 +822,9 @@ msgstr "जडान समय सकियो" msgid "Server closed the connection" msgstr "सर्भरले जडान बन्द गर्यो" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "त्रुटि पढ्नुहोस्" @@ -837,9 +837,9 @@ msgid "Protocol corruption" msgstr "प्रोटोकल दूषित" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "त्रुटि लेख्नुहोस्" @@ -1094,7 +1094,7 @@ msgstr "जडान असफल भयो" msgid "Internal error" msgstr "आन्तरिक त्रुटि" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2549,54 +2549,54 @@ msgstr "सहायक प्रक्रिया %s अनपेक्षि msgid "Problem closing the gzip file %s" msgstr "फाइल बन्द गर्दा समस्या" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "फाइल %s खोल्न सकिएन" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "%s को लागि पाइप खोल्न सकिएन" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "सहायक प्रक्रिया IPC सिर्जना गर्न असफल" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "सङ्कुचनकर्ता कार्यान्वयन गर्न असफल भयो" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "पड्नुहोस्, अहिले सम्म %lu पढ्न छ तर कुनै बाँकी छैन" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "लेख्नुहोस्, अहिले सम्म %lu लेख्न छ तर सकिदैन " -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "फाइल बन्द गर्दा समस्या" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "फाइल गुप्तिकरण गर्दा समस्या" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "फाइल अनलिङ्क गर्दा समस्या" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "फाइल गुप्तिकरण गर्दा समस्या" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "पुन:नामकरण असफल गरियो, %s (%s -> %s) ।" diff --git a/po/nl.po b/po/nl.po index a079c9819..dbd5bf934 100644 --- a/po/nl.po +++ b/po/nl.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.15.9\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2011-12-05 17:10+0100\n" "Last-Translator: Jeroen Schot \n" "Language-Team: Debian l10n Dutch \n" @@ -850,9 +850,9 @@ msgstr "Verbinding is verlopen" msgid "Server closed the connection" msgstr "Verbinding is verbroken door de server" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Leesfout" @@ -865,9 +865,9 @@ msgid "Protocol corruption" msgstr "Protocolcorruptie" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Schrijffout" @@ -1130,7 +1130,7 @@ msgstr "Verbinding mislukt" msgid "Internal error" msgstr "Interne fout" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2618,54 +2618,54 @@ msgstr "Subproces %s sloot onverwacht af" msgid "Problem closing the gzip file %s" msgstr "Probleem bij het afsluiten van het gzip-bestand %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Kon het bestand %s niet openen" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Kon de bestandsindicator %d niet openen" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Aanmaken subproces-IPC is mislukt" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Uitvoeren van de compressor is mislukt " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "lees, de laatste te lezen %lu zijn niet beschikbaar" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "schrijf, de laatste %lu konden niet weggeschreven worden" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Probleem bij het afsluiten van het bestand %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Probleem bij het hernoemen van '%s' naar '%s'" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Probleem bij het ontlinken van het bestand %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Probleem bij het synchroniseren van het bestand" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "herbenoeming is mislukt, %s (%s -> %s)." diff --git a/po/nn.po b/po/nn.po index 5220b6d66..b4df6ba8c 100644 --- a/po/nn.po +++ b/po/nn.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_nn\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2005-02-14 23:30+0100\n" "Last-Translator: Havard Korsvoll \n" "Language-Team: Norwegian nynorsk \n" @@ -831,9 +831,9 @@ msgstr "Tidsavbrot p msgid "Server closed the connection" msgstr "Tenaren lukka sambandet" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Lesefeil" @@ -846,9 +846,9 @@ msgid "Protocol corruption" msgstr "Protokollydeleggjing" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Skrivefeil" @@ -1103,7 +1103,7 @@ msgstr "Sambandet mislukkast" msgid "Internal error" msgstr "Intern feil" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2555,54 +2555,54 @@ msgstr "Underprosessen %s avslutta uventa" msgid "Problem closing the gzip file %s" msgstr "Problem ved lsing av fila" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Klarte ikkje opna fila %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Klarte ikkje opna ryr for %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Klarte ikkje oppretta underprosessen IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Klarte ikkje kyra komprimeringa " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "lese, har framleis %lu att lesa, men ingen att" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "skrive, har framleis %lu att skrive, men klarte ikkje" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Problem ved lsing av fila" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem ved synkronisering av fila" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Problem ved oppheving av lenkje til fila" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problem ved synkronisering av fila" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "endring av namn mislukkast, %s (%s -> %s)." diff --git a/po/pl.po b/po/pl.po index 5cc96f2eb..3b81f0657 100644 --- a/po/pl.po +++ b/po/pl.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.3\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-07-28 21:53+0200\n" "Last-Translator: Michał Kułach \n" "Language-Team: Polish \n" @@ -879,9 +879,9 @@ msgstr "Przekroczenie czasu połączenia" msgid "Server closed the connection" msgstr "Serwer zamknął połączenie" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Błąd odczytu" @@ -894,9 +894,9 @@ msgid "Protocol corruption" msgstr "Naruszenie zasad protokołu" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Błąd zapisu" @@ -1155,7 +1155,7 @@ msgstr "Połączenie nie powiodło się" msgid "Internal error" msgstr "Błąd wewnętrzny" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2654,54 +2654,54 @@ msgstr "Podproces %s zakończył się niespodziewanie" msgid "Problem closing the gzip file %s" msgstr "Problem przy zamykaniu pliku gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nie udało się otworzyć pliku %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Nie udało się otworzyć deskryptora pliku %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Nie udało się utworzyć IPC z podprocesem" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Nie udało się uruchomić kompresora " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "należało przeczytać jeszcze %llu, ale nic nie zostało" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "należało zapisać jeszcze %llu, ale nie udało się to" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problem przy zamykaniu pliku %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem przy zapisywaniu pliku %s w %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problem przy odlinkowywaniu pliku %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problem przy zapisywaniu pliku na dysk" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "nie udało się zmienić nazwy, %s (%s -> %s)" diff --git a/po/pt.po b/po/pt.po index 3e49fc625..b89bb27e6 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-29 15:45+0100\n" "Last-Translator: Miguel Figueiredo \n" "Language-Team: Portuguese \n" @@ -868,9 +868,9 @@ msgstr "Foi atingido o tempo limite de ligação" msgid "Server closed the connection" msgstr "O servidor fechou a ligação" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Erro de leitura" @@ -883,9 +883,9 @@ msgid "Protocol corruption" msgstr "Corrupção de protocolo" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Erro de escrita" @@ -1145,7 +1145,7 @@ msgstr "A ligação falhou" msgid "Internal error" msgstr "Erro interno" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2628,54 +2628,54 @@ msgstr "O sub-processo %s terminou inesperadamente" msgid "Problem closing the gzip file %s" msgstr "Problema ao fechar o ficheiro gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Não foi possível abrir ficheiro o %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Não foi possível abrir o descritor de ficheiro %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Falhou criar subprocesso IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Falhou executar compactador " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "lidos, ainda restam %llu para serem lidos mas não resta nenhum" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "escritos, ainda restam %llu para escrever mas não foi possível" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problema ao fechar o ficheiro %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problema ao renomear o ficheiro %s para %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problema ao remover o link do ficheiro %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problema sincronizando o ficheiro" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "falhou renomear, %s (%s -> %s)." diff --git a/po/pt_BR.po b/po/pt_BR.po index 9b7255ab7..b52558a89 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-11-17 02:33-0200\n" "Last-Translator: Felipe Augusto van de Wiel (faw) \n" "Language-Team: Brazilian Portuguese %s)." msgstr "renomeação falhou, %s (%s -> %s)." diff --git a/po/ro.po b/po/ro.po index e003560c1..72c0404b3 100644 --- a/po/ro.po +++ b/po/ro.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ro\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2008-11-15 02:21+0200\n" "Last-Translator: Eddy Petrișor \n" "Language-Team: Romanian \n" @@ -838,9 +838,9 @@ msgstr "Timpul de conectare a expirat" msgid "Server closed the connection" msgstr "Serverul a închis conexiunea" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Eroare de citire" @@ -853,9 +853,9 @@ msgid "Protocol corruption" msgstr "Protocol corupt" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Eroare de scriere" @@ -1119,7 +1119,7 @@ msgstr "Conectare eșuată" msgid "Internal error" msgstr "Eroare internă" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2604,54 +2604,54 @@ msgstr "Subprocesul %s s-a terminat brusc" msgid "Problem closing the gzip file %s" msgstr "Problemă la închiderea fișierului" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nu s-a putut deschide fișierul %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Nu s-a putut deschide conexiunea pentru %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Eșec la crearea IPC-ului pentru subproces" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Eșec la executarea compresorului" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "citire, încă mai am %lu de citit dar n-a mai rămas nimic" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "scriere, încă mai am %lu de scris dar nu pot" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Problemă la închiderea fișierului" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Problemă în timpul sincronizării fișierului" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Problemă la dezlegarea fișierului" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problemă în timpul sincronizării fișierului" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "redenumire eșuată, %s (%s -> %s)." diff --git a/po/ru.po b/po/ru.po index c9559661c..3120a381b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt rev2227.1.3\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-30 08:47+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" @@ -876,9 +876,9 @@ msgstr "Допустимое время ожидания для соединен msgid "Server closed the connection" msgstr "Сервер прервал соединение" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Ошибка чтения" @@ -891,9 +891,9 @@ msgid "Protocol corruption" msgstr "Искажение протокола" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Ошибка записи" @@ -1153,7 +1153,7 @@ msgstr "Соединение разорвано" msgid "Internal error" msgstr "Внутренняя ошибка" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2653,55 +2653,55 @@ msgstr "Порождённый процесс %s неожиданно завер msgid "Problem closing the gzip file %s" msgstr "Проблема закрытия gzip-файла %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Не удалось открыть файл %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Не удалось открыть файловый дескриптор %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Не удалось создать IPC с порождённым процессом" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Не удалось выполнить компрессор " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "" "ошибка при чтении; собирались прочесть ещё %llu байт, но ничего больше нет" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "ошибка при записи; собирались записать ещё %llu байт, но не смогли" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Проблема закрытия файла %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Проблема при переименовании файла %s в %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Проблема при удалении файла %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Проблема при синхронизации файла" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "переименовать не удалось, %s (%s -> %s)." diff --git a/po/sk.po b/po/sk.po index 8f09fcd0c..cb394a91c 100644 --- a/po/sk.po +++ b/po/sk.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-28 20:49+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" @@ -859,9 +859,9 @@ msgstr "Uplynul čas spojenia" msgid "Server closed the connection" msgstr "Server ukončil spojenie" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Chyba pri čítaní" @@ -874,9 +874,9 @@ msgid "Protocol corruption" msgstr "Narušenie protokolu" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Chyba pri zápise" @@ -1132,7 +1132,7 @@ msgstr "Spojenie zlyhalo" msgid "Internal error" msgstr "Vnútorná chyba" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2608,54 +2608,54 @@ msgstr "Podproces %s neočakávane skončil" msgid "Problem closing the gzip file %s" msgstr "Problém pri zatváraní gzip súboru %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Nedá sa otvoriť súbor %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Nedá sa otvoriť popisovač súboru %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Nedá sa vytvoriť podproces IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Nepodarilo sa spustiť kompresor " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "čítanie, treba prečítať ešte %llu, ale už nič neostáva" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "zápis, treba zapísať ešte %llu, no nedá sa to" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problém pri zatváraní súboru %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problém pri synchronizovaní súboru %s na %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problém pri odstraňovaní súboru %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problém pri synchronizovaní súboru" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "premenovanie zlyhalo, %s (%s -> %s)." diff --git a/po/sl.po b/po/sl.po index d36795470..683a05b1c 100644 --- a/po/sl.po +++ b/po/sl.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-06-27 21:29+0000\n" "Last-Translator: Andrej Znidarsic \n" "Language-Team: Slovenian \n" @@ -855,9 +855,9 @@ msgstr "Povezava je zakasnela" msgid "Server closed the connection" msgstr "Strežnik je zaprl povezavo" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Napaka branja" @@ -870,9 +870,9 @@ msgid "Protocol corruption" msgstr "Okvara protokola" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Napaka pisanja" @@ -1128,7 +1128,7 @@ msgstr "Povezava ni uspela" msgid "Internal error" msgstr "Notranja napaka" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2611,54 +2611,54 @@ msgstr "Pod-opravilo %s se je nepričakovano zaključilo" msgid "Problem closing the gzip file %s" msgstr "Težava med zapiranjem gzip datoteke %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Ni mogoče odpreti datoteke %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Ni mogoče odpreti opisnika datotek %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Ni mogoče ustvariti podopravila IPD" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Ni mogoče izvesti stiskanja " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "Prebrano, še vedno je treba prebrati %llu bajtov, vendar ni nič ostalo" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "pisanje, preostalo je še %llu za pisanje, vendar ni bilo mogoče pisati" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Težava med zapiranjem datoteke %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Težava med preimenovanje datoteke %s v %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Težava med razvezovanjem datoteke %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Težava med usklajevanjem datoteke" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "preimenovanje je spodletelo, %s (%s -> %s)." diff --git a/po/sv.po b/po/sv.po index 3bed88e94..13c08231f 100644 --- a/po/sv.po +++ b/po/sv.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2010-08-24 21:18+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -838,9 +838,9 @@ msgstr "Tidsgränsen för anslutningen överskreds" msgid "Server closed the connection" msgstr "Servern stängde anslutningen" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Läsfel" @@ -853,9 +853,9 @@ msgid "Protocol corruption" msgstr "Protokollet skadat" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Skrivfel" @@ -1119,7 +1119,7 @@ msgstr "Anslutningen misslyckades" msgid "Internal error" msgstr "Internt fel" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2605,54 +2605,54 @@ msgstr "Underprocessen %s avslutades oväntat" msgid "Problem closing the gzip file %s" msgstr "Problem med att stänga gzip-filen %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Kunde inte öppna filen %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Kunde inte öppna filhandtag %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Misslyckades med att skapa underprocess-IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Misslyckades med att starta komprimerare " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "läsning, har fortfarande %lu att läsa men ingenting finns kvar" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "skrivning, har fortfarande %lu att skriva men kunde inte" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Problem med att stänga filen %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem med att byta namn på filen %s till %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Problem med att avlänka filen %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problem med att synkronisera filen" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "namnbyte misslyckades, %s (%s -> %s)." diff --git a/po/th.po b/po/th.po index 03ecffa05..d36c706cc 100644 --- a/po/th.po +++ b/po/th.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-10-27 22:44+0700\n" "Last-Translator: Theppitak Karoonboonyanan \n" "Language-Team: Thai \n" @@ -838,9 +838,9 @@ msgstr "หมดเวลารอเชื่อมต่อ" msgid "Server closed the connection" msgstr "เซิร์ฟเวอร์ปิดการเชื่อมต่อ" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "การอ่านข้อมูลผิดพลาด" @@ -853,9 +853,9 @@ msgid "Protocol corruption" msgstr "มีความเสียหายของโพรโทคอล" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "การเขียนข้อมูลผิดพลาด" @@ -1109,7 +1109,7 @@ msgstr "เชื่อมต่อไม่สำเร็จ" msgid "Internal error" msgstr "ข้อผิดพลาดภายใน" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2550,54 +2550,54 @@ msgstr "โพรเซสย่อย %s จบการทำงานกะ msgid "Problem closing the gzip file %s" msgstr "เกิดปัญหาขณะปิดแฟ้ม gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "ไม่สามารถเปิดแฟ้ม %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "ไม่สามารถเปิด file destriptor %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "สร้าง IPC ของโพรเซสย่อยไม่สำเร็จ" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "เรียกทำงานตัวบีบอัดไม่สำเร็จ" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "read: ยังเหลือ %llu ที่ยังไม่ได้อ่าน แต่ข้อมูลหมดแล้ว" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "write: ยังเหลือ %llu ที่ยังไม่ได้เขียน แต่ไม่สามารถเขียนได้" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "เกิดปัญหาขณะปิดแฟ้ม %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "เกิดปัญหาขณะเปลี่ยนชื่อแฟ้ม %s ไปเป็น %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "เกิดปัญหาขณะลบแฟ้ม %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "เกิดปัญหาขณะ sync แฟ้ม" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "เปลี่ยนชื่อไม่สำเร็จ: %s (%s -> %s)" diff --git a/po/tl.po b/po/tl.po index a753eb1b0..84a3082c8 100644 --- a/po/tl.po +++ b/po/tl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2007-03-29 21:36+0800\n" "Last-Translator: Eric Pareja \n" "Language-Team: Tagalog \n" @@ -835,9 +835,9 @@ msgstr "Lumipas ang koneksyon" msgid "Server closed the connection" msgstr "Sinarhan ng server ang koneksyon" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Error sa pagbasa" @@ -850,9 +850,9 @@ msgid "Protocol corruption" msgstr "Sira ang protocol" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Error sa pagsulat" @@ -1112,7 +1112,7 @@ msgstr "Bigo ang koneksyon" msgid "Internal error" msgstr "Internal na error" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2586,54 +2586,54 @@ msgstr "Ang sub-process %s ay lumabas ng di inaasahan" msgid "Problem closing the gzip file %s" msgstr "Problema sa pagsara ng talaksan" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Hindi mabuksan ang talaksang %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, fuzzy, c-format msgid "Could not open file descriptor %d" msgstr "Hindi makapag-bukas ng pipe para sa %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Bigo ang paglikha ng subprocess IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Bigo ang pag-exec ng taga-compress" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "pagbasa, mayroong %lu na babasahin ngunit walang natira" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "pagsulat, mayroon pang %lu na isusulat ngunit hindi makasulat" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Problema sa pagsara ng talaksan" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, fuzzy, c-format msgid "Problem renaming the file %s to %s" msgstr "Problema sa pag-sync ng talaksan" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Problema sa pag-unlink ng talaksan" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problema sa pag-sync ng talaksan" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "pagpalit ng pangalan ay bigo, %s (%s -> %s)." diff --git a/po/tr.po b/po/tr.po index fdea2a155..05ce5a7a9 100644 --- a/po/tr.po +++ b/po/tr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2013-02-18 03:41+0200\n" "Last-Translator: Mert Dirik \n" "Language-Team: Debian l10n Turkish\n" @@ -861,9 +861,9 @@ msgstr "Bağlantı zaman aşımına uğradı" msgid "Server closed the connection" msgstr "Sunucu bağlantıyı kesti" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Okuma hatası" @@ -876,9 +876,9 @@ msgid "Protocol corruption" msgstr "İletişim kuralları bozulması" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Yazma hatası" @@ -1132,7 +1132,7 @@ msgstr "Bağlantı başarısız" msgid "Internal error" msgstr "İç hata" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2618,54 +2618,54 @@ msgstr "%s altsüreci beklenmeyen bir şekilde sona erdi" msgid "Problem closing the gzip file %s" msgstr "Gzip dosyası %s kapatılamadı" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "%s dosyası açılamadı" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Dosya tanımlayıcı %d açılamadı" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Altsüreç IPC'si oluşturulamadı" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Sıkıştırma programı çalıştırılamadı " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "read, %llu bayt okunması gerekli fakat hiç kalmamış" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "write, yazılması gereken %llu bayt yazılamıyor" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "%s dosyası kapatılamadı" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "%s dosyası %s olarak yeniden adlandırılamadı" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "%s dosyasından bağ kaldırma sorunu" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Dosya eşitlenirken sorun çıktı" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "yeniden adlandırma başarısız, %s (%s -> %s)." diff --git a/po/uk.po b/po/uk.po index e23e4fa35..8e8cc635f 100644 --- a/po/uk.po +++ b/po/uk.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-all\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2012-09-25 20:19+0300\n" "Last-Translator: A. Bondarenko \n" "Language-Team: Українська \n" @@ -875,9 +875,9 @@ msgstr "Час з'єднання вичерпався" msgid "Server closed the connection" msgstr "Сервер закрив з'єднання" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Помилка зчитування" @@ -890,9 +890,9 @@ msgid "Protocol corruption" msgstr "Спотворений протокол" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Помилка запису" @@ -1150,7 +1150,7 @@ msgstr "З'єднання не вдалося" msgid "Internal error" msgstr "Внутрішня помилка" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2655,54 +2655,54 @@ msgstr "Підпроцес %s раптово завершився" msgid "Problem closing the gzip file %s" msgstr "Проблема з закриттям gzip файла %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Неможливо відкрити файл %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Неможливо відкрити файловий дескриптор %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Не вдалося створити IPC з породженим процесом" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Не вдалося виконати компресор " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "зчитування, повинен зчитати ще %llu байт, але нічого більше нема" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "записування, повинен був записати ще %llu байт, але не вдалося" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Проблема з закриттям файла %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Проблема з перейменуванням файла %s на %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Проблема з роз'єднанням файла %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Проблема з синхронізацією файла" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "не вдалося перейменувати, %s (%s -> %s)." diff --git a/po/vi.po b/po/vi.po index 6f31c2d67..460932b8b 100644 --- a/po/vi.po +++ b/po/vi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.16.1\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2014-03-28 14:49+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" @@ -911,9 +911,9 @@ msgstr "Thời hạn kết nối" msgid "Server closed the connection" msgstr "Máy phục vụ đã đóng kết nối" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "Lỗi đọc" @@ -926,9 +926,9 @@ msgid "Protocol corruption" msgstr "Giao thức bị hỏng" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "Lỗi ghi" @@ -1190,7 +1190,7 @@ msgstr "Kết nối bị lỗi" msgid "Internal error" msgstr "Gặp lỗi nội bộ" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "Đang liệt kê" @@ -2672,54 +2672,54 @@ msgstr "Tiến trình con %s đã thoát bất thường" msgid "Problem closing the gzip file %s" msgstr "Gặp vấn đề khi đóng tập tin gzip %s" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "Không thể mở tập tin %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "Không thể mở bộ mô tả tập tin %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Việc tạo tiến trình con IPC bị lỗi" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Gặp lỗi khi thực hiện nén " -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, c-format msgid "read, still have %llu to read but none left" msgstr "đọc, còn cần đọc %llu nhưng mà không có gì còn lại cả" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, c-format msgid "write, still have %llu to write but couldn't" msgstr "ghi, còn cần ghi %llu nhưng mà không thể" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "Gặp vấn đề khi đóng tập tin %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Gặp vấn đề khi đổi tên tập tin %s thành %s" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "Gặp vấn đề khi bỏ liên kết tập tin %s" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Gặp vấn đề khi đồng bộ hóa tập tin" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "gặp lỗi khi đổi tên, %s (%s → %s)." diff --git a/po/zh_CN.po b/po/zh_CN.po index dd991a8a4..463d76e71 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.0~pre1\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2010-08-26 14:42+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified) \n" @@ -826,9 +826,9 @@ msgstr "连接超时" msgid "Server closed the connection" msgstr "服务器关闭了连接" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1468 -#: apt-pkg/contrib/fileutl.cc:1477 apt-pkg/contrib/fileutl.cc:1482 -#: apt-pkg/contrib/fileutl.cc:1484 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 +#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 +#: apt-pkg/contrib/fileutl.cc:1491 msgid "Read error" msgstr "读错误" @@ -841,9 +841,9 @@ msgid "Protocol corruption" msgstr "协议有误" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1590 apt-pkg/contrib/fileutl.cc:1599 -#: apt-pkg/contrib/fileutl.cc:1604 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1631 +#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 +#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 +#: apt-pkg/contrib/fileutl.cc:1638 msgid "Write error" msgstr "写出错" @@ -1097,7 +1097,7 @@ msgstr "连接失败" msgid "Internal error" msgstr "内部错误" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2538,54 +2538,54 @@ msgstr "子进程 %s 异常退出" msgid "Problem closing the gzip file %s" msgstr "关闭 gzip %s 文件出错" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format msgid "Could not open file %s" msgstr "无法打开文件 %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format msgid "Could not open file descriptor %d" msgstr "无法打开文件描述符 %d" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "无法创建子进程的 IPC 管道" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "无法执行压缩程序" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/contrib/fileutl.cc:1513 #, fuzzy, c-format msgid "read, still have %llu to read but none left" msgstr "读取文件出错,还剩 %lu 字节没有读出" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 #, fuzzy, c-format msgid "write, still have %llu to write but couldn't" msgstr "写入文件出错,还剩 %lu 字节没有保存" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, c-format msgid "Problem closing the file %s" msgstr "关闭文件 %s 出错" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/contrib/fileutl.cc:1930 #, c-format msgid "Problem renaming the file %s to %s" msgstr "重命名文件 %s 为 %s 出错" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, c-format msgid "Problem unlinking the file %s" msgstr "用 unlink 删除文件 %s 出错" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "同步文件出错" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "无法重命名文件,%s (%s -> %s)。" diff --git a/po/zh_TW.po b/po/zh_TW.po index 8fe40662a..74c783829 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.5.4\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" "PO-Revision-Date: 2009-01-28 10:41+0800\n" "Last-Translator: Tetralet \n" "Language-Team: Debian-user in Chinese [Big5] %s)." msgstr "無法重新命名,%s (%s -> %s)。" -- cgit v1.2.3 From 291a386f1e65c40a1acb01a9a5614ad00efc509d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 10 Apr 2014 13:53:28 +0200 Subject: fix test-failure in adt --- test/integration/framework | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/integration/framework b/test/integration/framework index 8d8a0becc..3b900a960 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -190,7 +190,13 @@ setupenvironment() { touch var/lib/dpkg/available mkdir -p usr/lib/apt ln -s ${METHODSDIR} usr/lib/apt/methods - ln -s ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove etc/apt/apt.conf.d/01autoremove + # use the autoremove from the BUILDDIRECTORY if its there, otherwise + # system + if [ -e ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove ]; then + ln -s ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove etc/apt/apt.conf.d/01autoremove + else + ln -s /etc/apt/apt.conf.d/01autoremove etc/apt/apt.conf.d/01autoremove + fi cd .. local PACKAGESFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Packages-/' -e 's/^skip-/Packages-/') if [ -f "${TESTDIRECTORY}/${PACKAGESFILE}" ]; then -- cgit v1.2.3 From 53c3a8fa16351f35b7b7d359c81dfbe36ab04444 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 23 Mar 2014 13:17:24 +0100 Subject: use wildcard to get files in our library makefiles The explicit listing is a pain every time you want to add a file to the list and serves no propose as we list all files there anyway, so this is not only easier but also documents this fact. Git-Dch: Ignore --- apt-inst/makefile | 12 ++---------- apt-pkg/makefile | 48 +++--------------------------------------------- apt-private/makefile | 12 ++---------- 3 files changed, 7 insertions(+), 65 deletions(-) diff --git a/apt-inst/makefile b/apt-inst/makefile index da983df5f..af887bba8 100644 --- a/apt-inst/makefile +++ b/apt-inst/makefile @@ -20,15 +20,7 @@ SLIBS=$(PTHREADLIB) -lapt-pkg APT_DOMAIN:=libapt-inst$(MAJOR) LIBRARYDEPENDS=$(LIB)/libapt-pkg.so -# Source code for the contributed non-core things -SOURCE = contrib/extracttar.cc contrib/arfile.cc +SOURCE = $(wildcard *.cc */*.cc) +HEADERS = $(addprefix apt-pkg/,$(notdir $(wildcard *.h */*.h))) -# Source code for the main library -SOURCE+= filelist.cc dirstream.cc extract.cc deb/debfile.cc - -# Public header files -HEADERS = extracttar.h arfile.h filelist.h extract.h \ - dirstream.h debfile.h - -HEADERS := $(addprefix apt-pkg/,$(HEADERS)) include $(LIBRARY_H) diff --git a/apt-pkg/makefile b/apt-pkg/makefile index 1d456873b..5603b51ed 100644 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@ -11,6 +11,7 @@ include ../buildlib/defaults.mak # The library name and version (indirectly used from init.h) include ../buildlib/libversion.mak + LIBRARY=apt-pkg MAJOR=$(LIBAPTPKG_MAJOR) MINOR=$(LIBAPTPKG_RELEASE) @@ -26,50 +27,7 @@ SLIBS+= -llzma endif APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR) -# Source code for the contributed non-core things -SOURCE = contrib/mmap.cc contrib/error.cc contrib/strutl.cc \ - contrib/configuration.cc contrib/progress.cc contrib/cmndline.cc \ - contrib/hashsum.cc contrib/md5.cc contrib/sha1.cc \ - contrib/sha2_internal.cc contrib/hashes.cc \ - contrib/cdromutl.cc contrib/crc-16.cc contrib/netrc.cc \ - contrib/fileutl.cc contrib/gpgv.cc -HEADERS = mmap.h error.h configuration.h fileutl.h cmndline.h netrc.h \ - md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha2.h sha256.h \ - sha2_internal.h hashes.h hashsum_template.h \ - macros.h weakptr.h gpgv.h - -# Source code for the core main library -SOURCE+= pkgcache.cc version.cc depcache.cc \ - orderlist.cc tagfile.cc sourcelist.cc packagemanager.cc \ - pkgrecords.cc algorithms.cc acquire.cc\ - acquire-worker.cc acquire-method.cc init.cc clean.cc \ - srcrecords.cc cachefile.cc versionmatch.cc policy.cc \ - pkgsystem.cc indexfile.cc pkgcachegen.cc acquire-item.cc \ - indexrecords.cc vendor.cc vendorlist.cc cdrom.cc indexcopy.cc \ - aptconfiguration.cc cachefilter.cc cacheset.cc edsp.cc \ - install-progress.cc upgrade.cc update.cc -HEADERS+= algorithms.h depcache.h pkgcachegen.h cacheiterators.h \ - orderlist.h sourcelist.h packagemanager.h tagfile.h \ - init.h pkgcache.h version.h progress.h pkgrecords.h \ - acquire.h acquire-worker.h acquire-item.h acquire-method.h \ - clean.h srcrecords.h cachefile.h versionmatch.h policy.h \ - pkgsystem.h indexfile.h metaindex.h indexrecords.h vendor.h \ - vendorlist.h cdrom.h indexcopy.h aptconfiguration.h \ - cachefilter.h cacheset.h edsp.h install-progress.h \ - upgrade.h update.h - -# Source code for the debian specific components -# In theory the deb headers do not need to be exported.. -SOURCE+= deb/deblistparser.cc deb/debrecords.cc deb/dpkgpm.cc \ - deb/debsrcrecords.cc deb/debversion.cc deb/debsystem.cc \ - deb/debindexfile.cc deb/debindexfile.cc deb/debmetaindex.cc -HEADERS+= debversion.h debsrcrecords.h dpkgpm.h debrecords.h \ - deblistparser.h debsystem.h debindexfile.h debmetaindex.h - -# Source code for the APT resolver interface specific components -SOURCE+= edsp/edsplistparser.cc edsp/edspindexfile.cc edsp/edspsystem.cc -HEADERS+= edsplistparser.h edspindexfile.h edspsystem.h - -HEADERS := $(addprefix apt-pkg/,$(HEADERS)) +SOURCE = $(wildcard *.cc */*.cc) +HEADERS = $(addprefix apt-pkg/,$(notdir $(wildcard *.h */*.h))) include $(LIBRARY_H) diff --git a/apt-private/makefile b/apt-private/makefile index 09736c6d3..9a3fbdb29 100644 --- a/apt-private/makefile +++ b/apt-private/makefile @@ -8,9 +8,6 @@ HEADER_TARGETDIRS = apt-private # Bring in the default rules include ../buildlib/defaults.mak -# The library name and version (indirectly used from init.h) -include ../buildlib/libversion.mak - # The library name LIBRARY=apt-private MAJOR=0.0 @@ -18,12 +15,7 @@ MINOR=0 SLIBS=$(PTHREADLIB) -lapt-pkg CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden -PRIVATES=list install download output cachefile cacheset update upgrade cmndline moo search show main utils sources -SOURCE += $(foreach private, $(PRIVATES), private-$(private).cc) -HEADERS += $(foreach private, $(PRIVATES), private-$(private).h) - -SOURCE+= acqprogress.cc -HEADERS+= acqprogress.h private-cacheset.h +SOURCE = $(wildcard *.cc) +HEADERS = $(addprefix apt-private/,$(wildcard *.h)) -HEADERS := $(addprefix apt-private/,$(HEADERS)) include $(LIBRARY_H) -- cgit v1.2.3 From e6d282e450191b1f03b0aed73f7d97115e094e90 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 23 Mar 2014 14:09:12 +0100 Subject: be able to run abicheck from any directory Git-Dch: Ignore --- .gitignore | 6 ++++++ abicheck/run_abi_test | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 488682ee7..a00c84a02 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,9 @@ /vendor/current /vendor/*/sources.list /vendor/*/makefile.auto + +# generated for and by abicheck +/abicheck/apt_build.xml +/abicheck/apt_installed.xml +/abicheck/compat_reports/ +/abicheck/logs/ diff --git a/abicheck/run_abi_test b/abicheck/run_abi_test index 8f2d7d203..18c13dfcb 100755 --- a/abicheck/run_abi_test +++ b/abicheck/run_abi_test @@ -1,5 +1,8 @@ #!/bin/sh +# ensure we are in the abibreak subdirectory +cd "$(readlink -f $(dirname $0))" + if [ ! -d ../build ]; then echo "../build missing, did you run make?" exit 1 @@ -10,7 +13,7 @@ if [ ! -x "$(which abi-compliance-checker 2>/dev/null )" ]; then exit 1 fi -LIBPATH=$(find /usr/lib/ -type f -name "libapt-*.so.*" -printf %p\\\\n) +LIBPATH=$(find /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH) -type f -regex '.*/libapt-\(pkg\|inst\)\.so\..*' -printf %p\\\\n) sed s#@installed_libapt@#$LIBPATH# apt_installed.xml.in > apt_installed.xml BUILDPATH=$(readlink -f ../build) -- cgit v1.2.3 From 8056a00cd76c0f9dd6c444f23aa9998f96f805ed Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 11:16:04 +0200 Subject: do not create an (additional) empty compressor FileFd code knows how to deal with such a compressor, so it isn't a problem, but it is absolutely not needed as we already have an (matching) identity compressor with '.' earlier in the list. Git-Dch: Ignore --- apt-pkg/aptconfiguration.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 6ba047560..9982759c6 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -476,7 +476,7 @@ const Configuration::getCompressors(bool const Cached) { std::vector const comp = _config->FindVector("APT::Compressor"); for (std::vector::const_iterator c = comp.begin(); c != comp.end(); ++c) { - if (*c == "." || *c == "gzip" || *c == "bzip2" || *c == "lzma" || *c == "xz") + if (c->empty() || *c == "." || *c == "gzip" || *c == "bzip2" || *c == "lzma" || *c == "xz") continue; compressors.push_back(Compressor(c->c_str(), std::string(".").append(*c).c_str(), c->c_str(), "-9", "-d", 100)); } -- cgit v1.2.3 From 21ba8115c873ae4085770e4bf0bed765e0e099a6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 11:18:58 +0200 Subject: don't double-count seeks in FileFd::Skip for bzip/xz FileFd::Read already deals with the increase of the skipposition so that we as the caller in FileFd::Skip really shouldn't increase it, too. --- apt-pkg/contrib/fileutl.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 69a675648..c51f75984 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1712,7 +1712,6 @@ bool FileFd::Skip(unsigned long long Over) { if (d != NULL && (d->pipe == true || d->InternalStream() == true)) { - d->seekpos += Over; char buffer[1024]; while (Over != 0) { -- cgit v1.2.3 From 230e69d718f761a39ee3ee057938dcd0264af74f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 11:22:10 +0200 Subject: deal with umask only if we really need to for mkstemp As the comment actually says: open() does the umask dance by itself, so we don't need to do it for it. We have to do it after mkstemp in Atomic though, so move it into the if. Also removes the "micro-optimisation" "FilePermissions == 600" as it doesn't trigger at the moment anyway as 600 != 0600. --- apt-pkg/contrib/fileutl.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index c51f75984..c9d419fc4 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1067,13 +1067,6 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co if_FLAGGED_SET(Exclusive, O_EXCL); #undef if_FLAGGED_SET - // umask() will always set the umask and return the previous value, so - // we first set the umask and then reset it to the old value - mode_t CurrentUmask = umask(0); - umask(CurrentUmask); - // calculate the actual file permissions (just like open/creat) - mode_t FilePermissions = (AccessMode & ~CurrentUmask); - if ((Mode & Atomic) == Atomic) { char *name = strdup((FileName + ".XXXXXX").c_str()); @@ -1087,11 +1080,18 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co TemporaryFileName = string(name); free(name); - if(FilePermissions != 600 && fchmod(iFd, FilePermissions) == -1) + // umask() will always set the umask and return the previous value, so + // we first set the umask and then reset it to the old value + mode_t const CurrentUmask = umask(0); + umask(CurrentUmask); + // calculate the actual file permissions (just like open/creat) + mode_t const FilePermissions = (AccessMode & ~CurrentUmask); + + if(fchmod(iFd, FilePermissions) == -1) return FileFdErrno("fchmod", "Could not change permissions for temporary file %s", TemporaryFileName.c_str()); } else - iFd = open(FileName.c_str(), fileflags, FilePermissions); + iFd = open(FileName.c_str(), fileflags, AccessMode); this->FileName = FileName; if (iFd == -1 || OpenInternDescriptor(Mode, compressor) == false) -- cgit v1.2.3 From f7feb041e8d8dac5fac3c6cd44c8108e12ea4cd6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 11:29:31 +0200 Subject: extend FileFd test behond basic permission tests We now do Open, Write and Read (the later multiple ways) for each permission and each compressor we have configured to cover more cases and especially ensure that compressors do not change our premissions. This test is also to be credited for discovering the skippos-fix. Git-Dch: Ignore --- test/libapt/fileutl_test.cc | 109 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 99 insertions(+), 10 deletions(-) diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 1d1a1a1b8..3a354814d 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -2,29 +2,93 @@ #include #include +#include #include #include #include #include +#include #include "assert.h" -// regression test for permission bug LP: #1304657 +static void assertStringEquals(char const * const expect, char const * const got, unsigned long const line) { + if (strncmp(expect, got, strlen(expect)) == 0) + return; + OutputAssertEqual(expect, "==", got, line); +} +#define strequals(x,y) assertStringEquals(x, y, __LINE__) + static bool -TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) +TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned int const filemode, APT::Configuration::Compressor const &compressor) { FileFd f; struct stat buf; static const char* fname = "test.txt"; umask(a_umask); - f.Open(fname, FileFd::ReadWrite|FileFd::Atomic); + equals(f.Open(fname, filemode, compressor), true); + equals(f.IsOpen(), true); + equals(f.Failed(), false); + equals(umask(a_umask), a_umask); + + std::string test = "This is a test!"; + equals(f.Write(test.c_str(), test.size()), true); + equals(f.IsOpen(), true); + equals(f.Failed(), false); + f.Close(); + equals(f.IsOpen(), false); + equals(f.Failed(), false); + + equals(f.Open(fname, FileFd::ReadOnly, compressor), true); + equalsNot(f.FileSize(), 0); + equals(f.IsOpen(), true); + equals(f.Failed(), false); + + char readback[20]; + { + char const * const expect = "This"; + equals(f.Read(readback, strlen(expect)), true); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(expect, readback); + equals(strlen(expect), f.Tell()); + } + { + char const * const expect = "test!"; + equals(f.Skip((test.size() - f.Tell()) - strlen(expect)), true); + equals(f.Read(readback, strlen(expect)), true); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(expect, readback); + equals(test.size(), f.Tell()); + } + + equals(f.Seek(0), true); + equals(f.Read(readback, 20, true), true); + equals(f.Failed(), false); + equals(f.Eof(), true); + equals(test, readback); + equals(test.size(), strlen(readback)); + equals(f.Size(), f.Tell()); + + equals(f.Seek(0), true); + f.ReadLine(readback, 20); + equals(f.Failed(), false); + equals(f.Eof(), true); + equals(test, readback); + equals(test.size(), strlen(readback)); + equals(f.Size(), f.Tell()); + + f.Close(); + equals(f.IsOpen(), false); + equals(f.Failed(), false); + + // regression test for permission bug LP: #1304657 if (stat(fname, &buf) < 0) { _error->Errno("stat", "failed to stat"); - _error->DumpErrors(); return false; } unlink(fname); @@ -32,18 +96,43 @@ TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) return true; } -int main() +static bool TestFileFd(unsigned int const filemode) { - std::vector files; + std::vector const compressors = APT::Configuration::getCompressors(); + for (std::vector::const_iterator c = compressors.begin(); c != compressors.end(); ++c) + { + if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && + (c->Name.empty() != true && c->Binary.empty() != true)) + continue; + if (TestFileFd(0002, 0664, filemode, *c) == false || + TestFileFd(0022, 0644, filemode, *c) == false || + TestFileFd(0077, 0600, filemode, *c) == false || + TestFileFd(0026, 0640, filemode, *c) == false) + { + _error->DumpErrors(); + return false; + } + } + return true; +} - if (TestFileFdOpenPermissions(0002, 0664) == false || - TestFileFdOpenPermissions(0022, 0644) == false || - TestFileFdOpenPermissions(0077, 0600) == false || - TestFileFdOpenPermissions(0026, 0640) == false) +int main() +{ + if (TestFileFd(FileFd::WriteOnly | FileFd::Create) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Atomic) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Atomic) == false || + // short-hands for ReadWrite with these modes + TestFileFd(FileFd::WriteEmpty) == false || + TestFileFd(FileFd::WriteAny) == false || + TestFileFd(FileFd::WriteTemp) == false || + TestFileFd(FileFd::WriteAtomic) == false) { return 1; } + std::vector files; // normal match files = Glob("*.lst"); if (files.size() != 1) -- cgit v1.2.3 From 4cd4a2e7033a2af214be1d830b56fab719088b7a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 13:33:31 +0200 Subject: consider priorities only for downloadable pkgs in resolver A package which can't be downloaded anymore is very likely dropped from a release and can therefore no longer be 'standard' (or similar). We therefore do not grant points for them anymore and demote them to prio:extra instead which helps other packages breaking them away even if they have a lower priority. The testcase was initially created by Michael Vogt and just amended. --- apt-pkg/algorithms.cc | 19 +++++---- ...t-ubuntu-bug-1304403-obsolete-priority-standard | 48 ++++++++++++++++++++++ 2 files changed, 59 insertions(+), 8 deletions(-) create mode 100755 test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index a7b676660..608ec7fce 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -445,19 +445,22 @@ void pkgProblemResolver::MakeScores() || (I->Flags & pkgCache::Flag::Important) == pkgCache::Flag::Important) Score += PrioEssentials; - // We transform the priority - if (Cache[I].InstVerIter(Cache)->Priority <= 5) - Score += PrioMap[Cache[I].InstVerIter(Cache)->Priority]; - + pkgCache::VerIterator const InstVer = Cache[I].InstVerIter(Cache); + // We apply priorities only to downloadable packages, all others are prio:extra + // as an obsolete prio:standard package can't be that standard anymore… + if (InstVer->Priority <= pkgCache::State::Extra && InstVer.Downloadable() == true) + Score += PrioMap[InstVer->Priority]; + else + Score += PrioMap[pkgCache::State::Extra]; + /* This helps to fix oddball problems with conflicting packages - on the same level. We enhance the score of installed packages - if those are not obsolete - */ + on the same level. We enhance the score of installed packages + if those are not obsolete */ if (I->CurrentVer != 0 && Cache[I].CandidateVer != 0 && Cache[I].CandidateVerIter(Cache).Downloadable()) Score += PrioInstalledAndNotObsolete; // propagate score points along dependencies - for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; ++D) + for (pkgCache::DepIterator D = InstVer.DependsList(); D.end() == false; ++D) { if (DepMap[D->Type] == 0) continue; diff --git a/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard b/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard new file mode 100755 index 000000000..2f2d384e1 --- /dev/null +++ b/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard @@ -0,0 +1,48 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'i386' + +# Regression test for LP: #1304403 +# +# The issue here is that libkadm5srv-mit8 (priority standard) is replaced +# by a new libkadm5srv-mit9 and libkbd5-7 breaks on the old -mit8 package. +# The -mit8 package is no longer downloadable (and hence not upgradeable) + +# normal upradable pkg +# (libkdb5-7 that breaks on libkadm5srv-mit8 (<< 1.11+dfsg~) +insertinstalledpackage 'upgradable' 'all' '1.0' '' 'extra' +insertpackage 'unstable' 'upgradable' 'all' '2.0' 'Breaks: not-downloadable (<< 1.1)' 'optional' + +# no longer downloadable pkg (libkadm5srv-mit8, replaced by libkadm5srv-mit9) +# but priority standard pushes it higher +insertinstalledpackage 'not-downloadable' 'all' '1.0' '' 'standard' + +setupaptarchive + +# discourage keeping obsolete high-priority packages … +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + not-downloadable +The following packages will be upgraded: + upgradable +1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +Remv not-downloadable [1.0] +Inst upgradable [1.0] (2.0 unstable [all]) +Conf upgradable (2.0 unstable [all])' aptget -s dist-upgrade + +# … but if it has dependencies we want to keep it as usual +for i in $(seq 1 10); do +insertinstalledpackage "depender$i" 'all' '1.0' 'Depends: not-downloadable' +done + +testequal 'Reading package lists... +Building dependency tree... +The following packages have been kept back: + upgradable +0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.' aptget -s dist-upgrade -- cgit v1.2.3 From e7bd4a8a34532afa382a995b9fbaa9333f42e86d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=E1=BA=A7n=20Ng=E1=BB=8Dc=20Qu=C3=A2n?= Date: Fri, 11 Apr 2014 20:19:40 +0200 Subject: l10n: vi.po (624t): Update translation Signed-off-by: Michael Vogt --- po/vi.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/po/vi.po b/po/vi.po index 460932b8b..ee688ced9 100644 --- a/po/vi.po +++ b/po/vi.po @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: apt 0.9.16.1\n" +"Project-Id-Version: apt 1.0.1\n" "Report-Msgid-Bugs-To: APT Development Team \n" "POT-Creation-Date: 2014-04-10 10:18+0200\n" -"PO-Revision-Date: 2014-03-28 14:49+0700\n" +"PO-Revision-Date: 2014-04-11 09:08+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" @@ -217,7 +217,7 @@ msgstr "" "thông tin từ các tập tin bộ nhớ tạm nhị phân của APT.\n" "\n" "Lệnh:\n" -" gencaches - Xây dựng (tạo ra) bộ nhớ tạm cho cả gói lẫn nguồn\n" +" gencaches - Tạo bộ nhớ tạm cho cả gói lẫn nguồn\n" " showpkg - Hiện thông tin chung về một gói riêng lẻ\n" " showsrc - Hiện các bản ghi cho gói nguồn\n" " stats - Hiện phần thống kê cơ bản\n" @@ -616,7 +616,7 @@ msgstr "" " autoremove - Tự động gỡ bỏ tất cả các gói không dùng\n" " purge - Gỡ bỏ và tẩy xóa gói\n" " source - Tải về kho nguồn\n" -" build-dep - Định cấu hình quan hệ phụ thuộc khi biên dịch, cho gói nguồn\n" +" build-dep - Cấu hình quan hệ phụ thuộc khi biên dịch, cho gói nguồn\n" " dist-upgrade - Nâng cấp hệ điều hành lên phiên bản mới hơn, hãy xem apt-" "get(8)\n" " dselect-upgrade - Cho phép chọn dselect\n" @@ -954,7 +954,7 @@ msgstr "getaddrinfo (lấy thông tin địa chỉ) không thể lấy ổ cắm #: methods/ftp.cc:749 msgid "Could not bind a socket" -msgstr "Không thể đóng kết ổ cắm" +msgstr "Không thể ràng buộc ổ cắm" #: methods/ftp.cc:753 msgid "Could not listen on the socket" @@ -1200,7 +1200,7 @@ msgstr "Lỗi nội bộ: InstallPackages (cài đặt gói) được gọi vớ #: apt-private/private-install.cc:90 msgid "Packages need to be removed but remove is disabled." -msgstr "Cần phải gỡ bỏ một số gói, nhưng mà khả năng Gỡ bỏ (Remove) đã bị tắt." +msgstr "Cần phải gỡ bỏ một số gói, nhưng mà tính năng Gỡ bỏ (Remove) đã bị tắt." #: apt-private/private-install.cc:109 msgid "Internal error, Ordering didn't finish" @@ -1413,7 +1413,7 @@ msgstr "Gói khuyến khích:" #: apt-private/private-download.cc:31 msgid "WARNING: The following packages cannot be authenticated!" -msgstr "CẢNH BÁO: Không thể xác thực những gói theo đây!" +msgstr "CẢNH BÁO: Không thể xác thực những gói sau đây!" #: apt-private/private-download.cc:35 msgid "Authentication warning overridden.\n" @@ -1636,7 +1636,7 @@ msgstr "Đang tính toán nâng cấp... " #: apt-private/private-upgrade.cc:30 msgid "Internal error, Upgrade broke stuff" -msgstr "Lỗi nội bộ: Upgrade (Nâng cấp) đã làm hỏng thứ gì đó" +msgstr "Lỗi nội bộ: Lệnh nâng cấp đã làm hỏng thứ gì đó" #: apt-private/private-upgrade.cc:32 msgid "Done" @@ -1667,7 +1667,7 @@ msgstr "" "CHÚ Ý: đây chỉ là mô phỏng!\n" " apt-get yêu cầu quyền root để thực hiện thật.\n" " Cần nhớ rằng chức năng khóa đã bị tắt,\n" -" nên có thể nó không chính xác như những gì làm thật!" +" nên có thể nó không chính xác như khi làm thật!" #: apt-private/private-sources.cc:58 #, c-format @@ -1761,7 +1761,7 @@ msgstr "[Bản sao: %s]" #: methods/rsh.cc:102 ftparchive/multicompress.cc:171 msgid "Failed to create IPC pipe to subprocess" -msgstr "Việc tạo ống IPC đến tiến trình con bị lỗi" +msgstr "Gặp lỗi khi tạo ống IPC đến tiến trình con" #: methods/rsh.cc:343 msgid "Connection closed prematurely" @@ -1832,9 +1832,9 @@ msgstr "" " -o=? Đặt một tùy chọn cấu hình tùy ý, v.d. “-o dir::cache=/tmp”\n" #: cmdline/apt-extracttemplates.cc:254 -#, fuzzy, c-format +#, c-format msgid "Unable to mkstemp %s" -msgstr "Không thể lấy thông tin thống kê %s" +msgstr "Không thể tạo tập tin tạm (hàm mkstemp) %s" #: cmdline/apt-extracttemplates.cc:259 apt-pkg/pkgcachegen.cc:1400 #, c-format -- cgit v1.2.3 From cbc9ec23b0fb551f20f4fd8ca46d98f59b5666bc Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 13 Apr 2014 21:40:35 +0200 Subject: compile with absolute paths to allow lcov use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instructing gcc (or clang) to prepare for capturing coverage data is easy: Just build with: CXXFLAGS=--coverage The hard part is that our buildsystem uses relative paths and so confuses the hell out of lcov as it assumes this way that all our *.cc files are in the same directory… by changing to absolute paths in the compile rules we solve this problem. Still not perfect as it refers to build/include files for most headers and our forking/threading code isn't properly captured, but good enough to see red reports for now: CXXFLAGS=--coverage make make test ./test/integration/run-tests -q lcov --no-external --directory . --capture --output-file apt.info genhtml --output-directory ./coverage/ apt.info Git-Dch: Ignore --- buildlib/library.mak | 2 +- buildlib/program.mak | 2 +- buildlib/python.mak | 2 +- buildlib/staticlibrary.mak | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/buildlib/library.mak b/buildlib/library.mak index ef1306b66..cc0286d7e 100644 --- a/buildlib/library.mak +++ b/buildlib/library.mak @@ -63,7 +63,7 @@ $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) vpath %.cc $(SUBDIRS) $(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS) echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available diff --git a/buildlib/program.mak b/buildlib/program.mak index da538f5eb..71c265f39 100644 --- a/buildlib/program.mak +++ b/buildlib/program.mak @@ -50,7 +50,7 @@ $($(LOCAL)-BIN): $($(LOCAL)-OBJS) $($(LOCAL)-MKS) vpath %.cc $(SUBDIRS) $(OBJ)/%.o: %.cc echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available diff --git a/buildlib/python.mak b/buildlib/python.mak index 02345c2d2..f08ab5563 100644 --- a/buildlib/python.mak +++ b/buildlib/python.mak @@ -58,7 +58,7 @@ endif # ifdef PYTHONLIB vpath %.cc $(SUBDIRS) $(OBJ)/%.opic: %.cc echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available diff --git a/buildlib/staticlibrary.mak b/buildlib/staticlibrary.mak index ce9259dc0..86908700f 100644 --- a/buildlib/staticlibrary.mak +++ b/buildlib/staticlibrary.mak @@ -50,7 +50,7 @@ endif vpath %.cc $(SUBDIRS) $(OBJ)/%.o: %.cc echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available -- cgit v1.2.3 From 76bd63e2dc6ac5aaaf7f2cc98c2a83ab88ccc46c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 14 Apr 2014 17:12:09 +0200 Subject: force fancy progressbar redraw on window size change We always reacted on the size change, but the bar is only redraw if the precentage changes, which can take quiet a while in big upgrades, so with a bit of refactoring we can now call for a redraw immediate to fix this. This refactor also helps in avoiding obscure pitfalls clangs static analyser was complaining about (namely failure of ioctl resulting in garbage values in the struct). --- apt-pkg/install-progress.cc | 35 +++++++++++++++++++++++------------ apt-pkg/install-progress.h | 3 +++ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index 8bb587f67..cf6c85912 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -256,14 +256,14 @@ PackageManagerFancy::TermSize PackageManagerFancy::GetTerminalSize() { struct winsize win; - PackageManagerFancy::TermSize s; + PackageManagerFancy::TermSize s = { 0, 0 }; // FIXME: get from "child_pty" instead? if(ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&win) != 0) return s; if(_config->FindB("Debug::InstallProgress::Fancy", false) == true) - std::cerr << "GetTerminalSize: " << win.ws_row << std::endl; + std::cerr << "GetTerminalSize: " << win.ws_row << " x " << win.ws_col << std::endl; s.rows = win.ws_row; s.columns = win.ws_col; @@ -275,6 +275,9 @@ void PackageManagerFancy::SetupTerminalScrollArea(int nr_rows) if(_config->FindB("Debug::InstallProgress::Fancy", false) == true) std::cerr << "SetupTerminalScrollArea: " << nr_rows << std::endl; + if (unlikely(nr_rows <= 1)) + return; + // scroll down a bit to avoid visual glitch when the screen // area shrinks by one row std::cout << "\n"; @@ -296,28 +299,30 @@ void PackageManagerFancy::SetupTerminalScrollArea(int nr_rows) // setup tty size to ensure xterm/linux console are working properly too // see bug #731738 struct winsize win; - ioctl(child_pty, TIOCGWINSZ, (char *)&win); - win.ws_row = nr_rows - 1; - ioctl(child_pty, TIOCSWINSZ, (char *)&win); + if (ioctl(child_pty, TIOCGWINSZ, (char *)&win) != -1) + { + win.ws_row = nr_rows - 1; + ioctl(child_pty, TIOCSWINSZ, (char *)&win); + } } void PackageManagerFancy::HandleSIGWINCH(int) { - int nr_terminal_rows = GetTerminalSize().rows; + int const nr_terminal_rows = GetTerminalSize().rows; SetupTerminalScrollArea(nr_terminal_rows); + DrawStatusLine(); } void PackageManagerFancy::Start(int a_child_pty) { child_pty = a_child_pty; - int nr_terminal_rows = GetTerminalSize().rows; - if (nr_terminal_rows > 0) - SetupTerminalScrollArea(nr_terminal_rows); + int const nr_terminal_rows = GetTerminalSize().rows; + SetupTerminalScrollArea(nr_terminal_rows); } void PackageManagerFancy::Stop() { - int nr_terminal_rows = GetTerminalSize().rows; + int const nr_terminal_rows = GetTerminalSize().rows; if (nr_terminal_rows > 0) { SetupTerminalScrollArea(nr_terminal_rows + 1); @@ -358,7 +363,13 @@ bool PackageManagerFancy::StatusChanged(std::string PackageName, HumanReadableAction)) return false; - PackageManagerFancy::TermSize size = GetTerminalSize(); + return DrawStatusLine(); +} +bool PackageManagerFancy::DrawStatusLine() +{ + PackageManagerFancy::TermSize const size = GetTerminalSize(); + if (unlikely(size.rows < 1 || size.columns < 1)) + return false; static std::string save_cursor = "\033[s"; static std::string restore_cursor = "\033[u"; @@ -388,7 +399,7 @@ bool PackageManagerFancy::StatusChanged(std::string PackageName, { int padding = 4; float progressbar_size = size.columns - padding - progress_str.size(); - float current_percent = (float)StepsDone/(float)TotalSteps; + float current_percent = percentage / 100.0; std::cout << " " << GetTextProgressStr(current_percent, progressbar_size) << " "; diff --git a/apt-pkg/install-progress.h b/apt-pkg/install-progress.h index 112b034fb..5d1a20e9b 100644 --- a/apt-pkg/install-progress.h +++ b/apt-pkg/install-progress.h @@ -1,6 +1,8 @@ #ifndef PKGLIB_IPROGRESS_H #define PKGLIB_IPROGRESS_H +#include + #include #include #include @@ -120,6 +122,7 @@ namespace Progress { private: static void staticSIGWINCH(int); static std::vector instances; + APT_HIDDEN bool DrawStatusLine(); protected: void SetupTerminalScrollArea(int nr_rows); -- cgit v1.2.3 From bb93178b8b5c2f8021977dbc34066f0d0fb8b9b9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 15 Apr 2014 10:21:52 +0200 Subject: clear HitEof flag in FileFd::Seek fseek and co do this to their eof-flags and it is more logic this way as we will usually seek away from the end (e.g. to re-read the file). The commit also improves the testcase further and adds a test for the binary compressor codepath (as gz, bzip2 and xz are handled by libraries) via the use of 'rev' as a 'compressor'. --- apt-pkg/contrib/fileutl.cc | 7 ++- test/libapt/assert.h | 2 + test/libapt/fileutl_test.cc | 110 ++++++++++++++++++++++++++++++++++---------- test/libapt/run-tests | 2 + 4 files changed, 96 insertions(+), 25 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index c9d419fc4..de73a7fd8 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1360,7 +1360,10 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C Args.push_back(a->c_str()); if (Comp == false && FileName.empty() == false) { - Args.push_back("--stdout"); + // commands not needing arguments, do not need to be told about using standard output + // in reality, only testcases with tools like cat, rev, rot13, … are able to trigger this + if (compressor.CompressArgs.empty() == false && compressor.UncompressArgs.empty() == false) + Args.push_back("--stdout"); if (TemporaryFileName.empty() == false) Args.push_back(TemporaryFileName.c_str()); else @@ -1653,6 +1656,8 @@ bool FileFd::Write(int Fd, const void *From, unsigned long long Size) /* */ bool FileFd::Seek(unsigned long long To) { + Flags &= ~HitEof; + if (d != NULL && (d->pipe == true || d->InternalStream() == true)) { // Our poor man seeking in pipes is costly, so try to avoid it diff --git a/test/libapt/assert.h b/test/libapt/assert.h index 357801592..3e45143a3 100644 --- a/test/libapt/assert.h +++ b/test/libapt/assert.h @@ -2,6 +2,7 @@ #include #include +#include #if __GNUC__ >= 4 #pragma GCC diagnostic push @@ -14,6 +15,7 @@ template < typename X, typename Y > APT_NORETURN void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) { std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl; + _error->DumpErrors(std::cerr); std::exit(EXIT_FAILURE); } diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 3a354814d..f3a3dd08e 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -24,7 +24,9 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i { FileFd f; struct stat buf; - static const char* fname = "test.txt"; + static const char* fname = "apt-filefd-test.txt"; + if (FileExists(fname) == true) + equals(unlink(fname), 0); umask(a_umask); equals(f.Open(fname, filemode, compressor), true); @@ -32,7 +34,7 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i equals(f.Failed(), false); equals(umask(a_umask), a_umask); - std::string test = "This is a test!"; + std::string test = "This is a test!\n"; equals(f.Write(test.c_str(), test.size()), true); equals(f.IsOpen(), true); equals(f.Failed(), false); @@ -42,12 +44,21 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i equals(f.Failed(), false); equals(f.Open(fname, FileFd::ReadOnly, compressor), true); - equalsNot(f.FileSize(), 0); equals(f.IsOpen(), true); equals(f.Failed(), false); + equals(f.Eof(), false); + equalsNot(f.FileSize(), 0); + equals(f.Failed(), false); + equalsNot(f.ModificationTime(), 0); + equals(f.Failed(), false); - char readback[20]; + // ensure the memory is as predictably messed up +# define APT_INIT_READBACK \ + char readback[20]; \ + memset(readback, 'D', sizeof(readback)/sizeof(readback[0])); \ + readback[19] = '\0'; { + APT_INIT_READBACK char const * const expect = "This"; equals(f.Read(readback, strlen(expect)), true); equals(f.Failed(), false); @@ -56,7 +67,8 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i equals(strlen(expect), f.Tell()); } { - char const * const expect = "test!"; + APT_INIT_READBACK + char const * const expect = "test!\n"; equals(f.Skip((test.size() - f.Tell()) - strlen(expect)), true); equals(f.Read(readback, strlen(expect)), true); equals(f.Failed(), false); @@ -64,22 +76,60 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i strequals(expect, readback); equals(test.size(), f.Tell()); } - - equals(f.Seek(0), true); - equals(f.Read(readback, 20, true), true); - equals(f.Failed(), false); - equals(f.Eof(), true); - equals(test, readback); - equals(test.size(), strlen(readback)); - equals(f.Size(), f.Tell()); - - equals(f.Seek(0), true); - f.ReadLine(readback, 20); - equals(f.Failed(), false); - equals(f.Eof(), true); - equals(test, readback); - equals(test.size(), strlen(readback)); - equals(f.Size(), f.Tell()); + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + equals(f.Read(readback, 20, true), true); + equals(f.Failed(), false); + equals(f.Eof(), true); + strequals(test.c_str(), readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + equals(f.Read(readback, test.size(), true), true); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(test.c_str(), readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + unsigned long long actual; + equals(f.Read(readback, 20, &actual), true); + equals(f.Failed(), false); + equals(f.Eof(), true); + equals(test.size(), actual); + strequals(test.c_str(), readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + f.ReadLine(readback, 20); + equals(f.Failed(), false); + equals(f.Eof(), false); + equals(test, readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + char const * const expect = "This"; + f.ReadLine(readback, strlen(expect) + 1); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(expect, readback); + equals(strlen(expect), f.Tell()); + } +#undef APT_INIT_READBACK f.Close(); equals(f.IsOpen(), false); @@ -91,14 +141,19 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i _error->Errno("stat", "failed to stat"); return false; } - unlink(fname); + equals(unlink(fname), 0); equals(buf.st_mode & 0777, ExpectedFilePermission); return true; } static bool TestFileFd(unsigned int const filemode) { - std::vector const compressors = APT::Configuration::getCompressors(); + std::vector compressors = APT::Configuration::getCompressors(); + + // testing the (un)compress via pipe, as the 'real' compressors are usually built in via libraries + compressors.push_back(APT::Configuration::Compressor("rev", ".reversed", "rev", NULL, NULL, 42)); + //compressors.push_back(APT::Configuration::Compressor("cat", ".ident", "cat", NULL, NULL, 42)); + for (std::vector::const_iterator c = compressors.begin(); c != compressors.end(); ++c) { if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && @@ -116,8 +171,13 @@ static bool TestFileFd(unsigned int const filemode) return true; } -int main() +int main(int const argc, char const * const * const argv) { + std::string startdir; + if (argc > 1 && DirectoryExists(argv[1]) == true) { + startdir = SafeGetCWD(); + equals(chdir(argv[1]), 0); + } if (TestFileFd(FileFd::WriteOnly | FileFd::Create) == false || TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty) == false || TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive) == false || @@ -131,6 +191,8 @@ int main() { return 1; } + if (startdir.empty() == false) + equals(chdir(startdir.c_str()), 0); std::vector files; // normal match diff --git a/test/libapt/run-tests b/test/libapt/run-tests index 0baedcf9e..574e51e90 100755 --- a/test/libapt/run-tests +++ b/test/libapt/run-tests @@ -116,6 +116,8 @@ sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0 /dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0 /dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0 tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0' > $tmppath + elif [ $name = "FileUtl${EXT}" ]; then + tmppath="$(mktemp -d)" fi echo -n "Testing with ${NAME} " -- cgit v1.2.3 From f00832cc273e52a47fb88e49849891b771de4e17 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 16 Apr 2014 17:09:37 +0200 Subject: use Google C++ Testing Framework for libapt tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit My commit 45df0ad2 from 26. Nov 2009 had a little remark: "The commit also includes a very very simple testapp." This was never intended to be permanent, but as usually… The commit adds the needed make magic to compile gtest statically as it is required and links it against a small runner. All previous testcase binaries are reimplemented in gtest and combined in this runner. While most code is a 1:1 translation some had to be rewritten like compareversion_test.cc, but the coverage remains the same. --- debian/control | 2 +- test/libapt/assert.h | 126 ------- test/libapt/cdrom_test.cc | 114 ++++++ test/libapt/cdromfindmountpointfordevice_test.cc | 26 -- test/libapt/cdromfindpackages_test.cc | 169 +++++---- test/libapt/cdromreducesourcelist_test.cc | 86 ----- test/libapt/commandline_test.cc | 53 ++- test/libapt/commandlineasstring_test.cc | 41 -- test/libapt/compareversion_test.cc | 185 +++++---- test/libapt/configuration_test.cc | 167 +++++---- test/libapt/file-helpers.cc | 77 ++++ test/libapt/file-helpers.h | 29 ++ test/libapt/fileutl_test.cc | 272 +++++++------- test/libapt/getarchitectures_test.cc | 116 +++--- test/libapt/getlanguages_test.cc | 412 ++++++++++---------- test/libapt/getlistoffilesindir_test.cc | 159 ++++---- test/libapt/globalerror_test.cc | 213 ++++++----- test/libapt/gtest_runner.cc | 19 + test/libapt/hashsums_test.cc | 274 ++++++++------ test/libapt/indexcopytosourcelist_test.cc | 73 ++-- test/libapt/install_progress_test.cc | 26 +- test/libapt/makefile | 184 ++++----- test/libapt/parsedepends_test.cc | 458 ++++++++++++----------- test/libapt/run-tests | 135 ------- test/libapt/sourcelist_test.cc | 49 +-- test/libapt/strutil_test.cc | 138 +++---- test/libapt/tagfile_test.cc | 62 +-- test/libapt/uri_test.cc | 233 ++++++------ test/libapt/versions.lst | 106 ------ 29 files changed, 1918 insertions(+), 2086 deletions(-) delete mode 100644 test/libapt/assert.h create mode 100644 test/libapt/cdrom_test.cc delete mode 100644 test/libapt/cdromfindmountpointfordevice_test.cc delete mode 100644 test/libapt/cdromreducesourcelist_test.cc delete mode 100644 test/libapt/commandlineasstring_test.cc create mode 100644 test/libapt/file-helpers.cc create mode 100644 test/libapt/file-helpers.h create mode 100644 test/libapt/gtest_runner.cc delete mode 100755 test/libapt/run-tests delete mode 100644 test/libapt/versions.lst diff --git a/debian/control b/debian/control index c0526d30c..ff984db75 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.4~), zlib1g-dev, libbz2-dev, liblzma-dev, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), - autotools-dev, autoconf, automake + autotools-dev, autoconf, automake, libgtest-dev Build-Depends-Indep: doxygen, debiandoc-sgml, graphviz Build-Conflicts: autoconf2.13, automake1.4 Vcs-Git: git://anonscm.debian.org/apt/apt.git diff --git a/test/libapt/assert.h b/test/libapt/assert.h deleted file mode 100644 index 3e45143a3..000000000 --- a/test/libapt/assert.h +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include - -#include -#include - -#if __GNUC__ >= 4 - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wmissing-declarations" -#endif - -#define equals(x,y) assertEquals(y, x, __LINE__) -#define equalsNot(x,y) assertEqualsNot(y, x, __LINE__) - -template < typename X, typename Y > -APT_NORETURN void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl; - _error->DumpErrors(std::cerr); - std::exit(EXIT_FAILURE); -} - -template < typename X, typename Y > -void assertEquals(X expect, Y get, unsigned long const &line) { - if (expect == get) - return; - OutputAssertEqual(expect, "==", get, line); -} - -template < typename X, typename Y > -void assertEqualsNot(X expect, Y get, unsigned long const &line) { - if (expect != get) - return; - OutputAssertEqual(expect, "!=", get, line); -} - -void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - -void assertEquals(int const &expect, unsigned int const &get, unsigned long const &line) { - if (expect < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - -void assertEquals(unsigned long const &expect, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - -void assertEquals(int const &expect, unsigned long const &get, unsigned long const &line) { - if (expect < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - - -#define equalsOr2(x,y,z) assertEqualsOr2(y, z, x, __LINE__) - -template < typename X, typename Y > -void OutputAssertEqualOr2(X expect1, X expect2, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« " << compare << " »" << get << "« at line " << line << std::endl; -} - -template < typename X, typename Y > -void assertEqualsOr2(X expect1, X expect2, Y get, unsigned long const &line) { - if (expect1 == get || expect2 == get) - return; - OutputAssertEqualOr2(expect1, expect2, "==", get, line); -} - -void assertEqualsOr2(unsigned int const &expect1, unsigned int const &expect2, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqualOr2(expect1, expect2, "==", get, line); - assertEqualsOr2(expect1, expect2, get, line); -} - -void assertEqualsOr2(int const &expect1, int const &expect2, unsigned int const &get, unsigned long const &line) { - if (expect1 < 0 && expect2 < 0) - OutputAssertEqualOr2(expect1, expect2, "==", get, line); - assertEqualsOr2(expect1, expect2, get, line); -} - - -#define equalsOr3(w,x,y,z) assertEqualsOr3(x, y, z, w, __LINE__) - -template < typename X, typename Y > -void OutputAssertEqualOr3(X expect1, X expect2, X expect3, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« or »" << expect3 << "« " << compare << " »" << get << "« at line " << line << std::endl; -} - -template < typename X, typename Y > -void assertEqualsOr3(X expect1, X expect2, X expect3, Y get, unsigned long const &line) { - if (expect1 == get || expect2 == get || expect3 == get) - return; - OutputAssertEqualOr3(expect1, expect2, expect3, "==", get, line); -} - -#define equalsOr4(v,w,x,y,z) assertEqualsOr4(w, x, y, z, v, __LINE__) - -template < typename X, typename Y > -void OutputAssertEqualOr4(X expect1, X expect2, X expect3, X expect4, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« or »" << expect3 << "« or »" << expect4 << "« " << compare << " »" << get << "« at line " << line << std::endl; -} - -template < typename X, typename Y > -void assertEqualsOr4(X expect1, X expect2, X expect3, X expect4, Y get, unsigned long const &line) { - if (expect1 == get || expect2 == get || expect3 == get || expect4 == get) - return; - OutputAssertEqualOr4(expect1, expect2, expect3, expect4, "==", get, line); -} - -// simple helper to quickly output a vectors -template < typename X > -void dumpVector(X vec) { - for (typename X::const_iterator v = vec.begin(); - v != vec.end(); ++v) - std::cout << *v << std::endl; -} - -#if __GNUC__ >= 4 - #pragma GCC diagnostic pop -#endif diff --git a/test/libapt/cdrom_test.cc b/test/libapt/cdrom_test.cc new file mode 100644 index 000000000..626ef538e --- /dev/null +++ b/test/libapt/cdrom_test.cc @@ -0,0 +1,114 @@ +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include "file-helpers.h" + +class Cdrom : public pkgCdrom { +public: + std::vector ReduceSourcelist(std::string CD,std::vector List) { + pkgCdrom::ReduceSourcelist(CD, List); + return List; + } +}; + +TEST(CDROMTest,ReduceSourcelist) +{ + Cdrom cd; + std::vector List; + std::string CD("/media/cdrom/"); + + std::vector R = cd.ReduceSourcelist(CD, List); + EXPECT_TRUE(R.empty()); + + List.push_back(" wheezy main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(1, R.size()); + EXPECT_EQ(" wheezy main", R[0]); + + List.push_back(" wheezy main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(1, R.size()); + EXPECT_EQ(" wheezy main", R[0]); + + List.push_back(" wheezy contrib"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(1, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + + List.push_back(" wheezy-update contrib"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib", R[1]); + + List.push_back(" wheezy-update contrib"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib", R[1]); + + List.push_back(" wheezy-update non-free"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib non-free", R[1]); + + List.push_back(" wheezy-update main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[1]); + + List.push_back(" wheezy non-free"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main non-free", R[0]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[1]); + + List.push_back(" sid main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(3, R.size()); + EXPECT_EQ(" sid main", R[0]); + EXPECT_EQ(" wheezy contrib main non-free", R[1]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[2]); + + List.push_back(" sid main-reduce"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(3, R.size()); + EXPECT_EQ(" sid main main-reduce", R[0]); + EXPECT_EQ(" wheezy contrib main non-free", R[1]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[2]); +} +TEST(CDROMTest, FindMountPointForDevice) +{ + char * tempfile; + FileFd fd; + createTemporaryFile("mountpoints", fd, &tempfile, + "rootfs / rootfs rw 0 0\n" + "sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0\n" + "sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0\n" + "/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0\n" + "/dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0\n" + "tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0\n"); + _config->Set("Dir::state::Mountpoints", tempfile); + + EXPECT_EQ("/", FindMountPointForDevice("rootfs")); + EXPECT_EQ("/", FindMountPointForDevice("/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21")); + EXPECT_EQ("/sys", FindMountPointForDevice("sysfs")); + EXPECT_EQ("/sys0", FindMountPointForDevice("sysfs0")); + EXPECT_EQ("/boot/efi", FindMountPointForDevice("/dev/sda1")); + EXPECT_EQ("/tmp", FindMountPointForDevice("tmpfs")); + + unlink(tempfile); + free(tempfile); +} diff --git a/test/libapt/cdromfindmountpointfordevice_test.cc b/test/libapt/cdromfindmountpointfordevice_test.cc deleted file mode 100644 index 26dcd1459..000000000 --- a/test/libapt/cdromfindmountpointfordevice_test.cc +++ /dev/null @@ -1,26 +0,0 @@ -#include - -#include -#include - -#include -#include - -#include "assert.h" - -int main(int argc, char const *argv[]) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } - - _config->Set("Dir::state::Mountpoints", argv[1]); - equals("/", FindMountPointForDevice("rootfs")); - equals("/", FindMountPointForDevice("/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21")); - equals("/sys", FindMountPointForDevice("sysfs")); - equals("/sys0", FindMountPointForDevice("sysfs0")); - equals("/boot/efi", FindMountPointForDevice("/dev/sda1")); - equals("/tmp", FindMountPointForDevice("tmpfs")); - - return 0; -} diff --git a/test/libapt/cdromfindpackages_test.cc b/test/libapt/cdromfindpackages_test.cc index 583de1423..719dd8f63 100644 --- a/test/libapt/cdromfindpackages_test.cc +++ b/test/libapt/cdromfindpackages_test.cc @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -9,82 +10,112 @@ #include #include -#include "assert.h" +#include + +#include "file-helpers.h" class Cdrom : public pkgCdrom { - public: - bool FindPackages(std::string const &CD, - std::vector &List, - std::vector &SList, - std::vector &SigList, - std::vector &TransList, - std::string &InfoDir) { - bool const result = pkgCdrom::FindPackages(CD, List, SList, SigList, TransList, InfoDir, NULL, 0); - std::sort(List.begin(), List.end()); - std::sort(SList.begin(), SList.end()); - std::sort(SigList.begin(), SigList.end()); - std::sort(TransList.begin(), TransList.end()); - return result; - } + public: + bool FindPackages(std::string const &CD, + std::vector &List, + std::vector &SList, + std::vector &SigList, + std::vector &TransList, + std::string &InfoDir) { + std::string const startdir = SafeGetCWD(); + EXPECT_FALSE(startdir.empty()); + bool const result = pkgCdrom::FindPackages(CD, List, SList, SigList, TransList, InfoDir, NULL, 0); + std::sort(List.begin(), List.end()); + std::sort(SList.begin(), SList.end()); + std::sort(SigList.begin(), SigList.end()); + std::sort(TransList.begin(), TransList.end()); + EXPECT_EQ(0, chdir(startdir.c_str())); + return result; + } - bool DropRepeats(std::vector &List, char const *Name) { - return pkgCdrom::DropRepeats(List, Name); - } + using pkgCdrom::DropRepeats; }; -int main(int argc, char const *argv[]) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } +TEST(CDROMTest,FindPackages) +{ + std::string path; + createTemporaryDirectory("findpackage", path); + + createDirectory(path, ".disk"); + createDirectory(path, "pool"); + createDirectory(path, "dists/stable/main/binary-i386"); + createDirectory(path, "dists/stable/main/source"); + createDirectory(path, "dists/stable/contrib/binary-amd64"); + createDirectory(path, "dists/stable/contrib/binary-all"); + createDirectory(path, "dists/unstable/main/binary-i386"); + createDirectory(path, "dists/unstable/main/i18n"); + createDirectory(path, "dists/unstable/main/source"); + createDirectory(path, "dists/broken/non-free/source"); + createFile(path, "dists/broken/.aptignr"); + createFile(path, "dists/stable/main/binary-i386/Packages"); + createFile(path, "dists/stable/main/binary-i386/Packages.bz2"); + createFile(path, "dists/stable/main/source/Sources.xz"); + createFile(path, "dists/stable/contrib/binary-amd64/Packages"); + createFile(path, "dists/stable/contrib/binary-amd64/Packages.gz"); + createFile(path, "dists/stable/contrib/binary-all/Packages"); + createFile(path, "dists/unstable/main/binary-i386/Packages.xz"); + createFile(path, "dists/unstable/main/binary-i386/Packages.lzma"); + createFile(path, "dists/unstable/main/i18n/Translation-en"); + createFile(path, "dists/unstable/main/i18n/Translation-de.bz2"); + createFile(path, "dists/unstable/main/source/Sources.xz"); + createFile(path, "dists/broken/non-free/source/Sources.gz"); + createFile(path, "dists/stable/Release.gpg"); + createFile(path, "dists/stable/Release"); + createFile(path, "dists/unstable/InRelease"); + createFile(path, "dists/broken/Release.gpg"); + createLink(path, "dists/unstable", "dists/sid"); - Cdrom cd; - std::vector Packages, Sources, Signatur, Translation; - std::string InfoDir; - std::string path = argv[1]; - equals(true, cd.FindPackages(path, Packages, Sources, Signatur, Translation, InfoDir)); - equals(4, Packages.size()); - equals(path + "/dists/sid/main/binary-i386/", Packages[0]); - equals(path + "/dists/stable/contrib/binary-amd64/", Packages[1]); - equals(path + "/dists/stable/main/binary-i386/", Packages[2]); - equals(path + "/dists/unstable/main/binary-i386/", Packages[3]); - equals(3, Sources.size()); - equals(path + "/dists/sid/main/source/", Sources[0]); - equals(path + "/dists/stable/main/source/", Sources[1]); - equals(path + "/dists/unstable/main/source/", Sources[2]); - equals(3, Signatur.size()); - equals(path + "/dists/sid/", Signatur[0]); - equals(path + "/dists/stable/", Signatur[1]); - equals(path + "/dists/unstable/", Signatur[2]); - equals(4, Translation.size()); - equals(path + "/dists/sid/main/i18n/Translation-de", Translation[0]); - equals(path + "/dists/sid/main/i18n/Translation-en", Translation[1]); - equals(path + "/dists/unstable/main/i18n/Translation-de", Translation[2]); - equals(path + "/dists/unstable/main/i18n/Translation-en", Translation[3]); - equals(path + "/.disk/", InfoDir); + Cdrom cd; + std::vector Packages, Sources, Signatur, Translation; + std::string InfoDir; + EXPECT_TRUE(cd.FindPackages(path, Packages, Sources, Signatur, Translation, InfoDir)); + EXPECT_EQ(4, Packages.size()); + EXPECT_EQ(path + "/dists/sid/main/binary-i386/", Packages[0]); + EXPECT_EQ(path + "/dists/stable/contrib/binary-amd64/", Packages[1]); + EXPECT_EQ(path + "/dists/stable/main/binary-i386/", Packages[2]); + EXPECT_EQ(path + "/dists/unstable/main/binary-i386/", Packages[3]); + EXPECT_EQ(3, Sources.size()); + EXPECT_EQ(path + "/dists/sid/main/source/", Sources[0]); + EXPECT_EQ(path + "/dists/stable/main/source/", Sources[1]); + EXPECT_EQ(path + "/dists/unstable/main/source/", Sources[2]); + EXPECT_EQ(3, Signatur.size()); + EXPECT_EQ(path + "/dists/sid/", Signatur[0]); + EXPECT_EQ(path + "/dists/stable/", Signatur[1]); + EXPECT_EQ(path + "/dists/unstable/", Signatur[2]); + EXPECT_EQ(4, Translation.size()); + EXPECT_EQ(path + "/dists/sid/main/i18n/Translation-de", Translation[0]); + EXPECT_EQ(path + "/dists/sid/main/i18n/Translation-en", Translation[1]); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-de", Translation[2]); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-en", Translation[3]); + EXPECT_EQ(path + "/.disk/", InfoDir); - cd.DropRepeats(Packages, "Packages"); - cd.DropRepeats(Sources, "Sources"); - _error->PushToStack(); - cd.DropRepeats(Signatur, "InRelease"); - cd.DropRepeats(Signatur, "Release.gpg"); - _error->RevertToStack(); - _error->DumpErrors(); - cd.DropRepeats(Translation, ""); + cd.DropRepeats(Packages, "Packages"); + cd.DropRepeats(Sources, "Sources"); + _error->PushToStack(); + cd.DropRepeats(Signatur, "InRelease"); + cd.DropRepeats(Signatur, "Release.gpg"); + _error->RevertToStack(); + _error->DumpErrors(); + cd.DropRepeats(Translation, ""); - equals(3, Packages.size()); - equals(path + "/dists/stable/contrib/binary-amd64/", Packages[0]); - equals(path + "/dists/stable/main/binary-i386/", Packages[1]); - equals(path + "/dists/unstable/main/binary-i386/", Packages[2]); - equals(2, Sources.size()); - equals(path + "/dists/stable/main/source/", Sources[0]); - equals(path + "/dists/unstable/main/source/", Sources[1]); - equals(2, Signatur.size()); - equals(path + "/dists/stable/", Signatur[0]); - equals(path + "/dists/unstable/", Signatur[1]); - equals(2, Translation.size()); - equals(path + "/dists/unstable/main/i18n/Translation-de", Translation[0]); - equals(path + "/dists/unstable/main/i18n/Translation-en", Translation[1]); + EXPECT_EQ(3, Packages.size()); + EXPECT_EQ(path + "/dists/stable/contrib/binary-amd64/", Packages[0]); + EXPECT_EQ(path + "/dists/stable/main/binary-i386/", Packages[1]); + EXPECT_EQ(path + "/dists/unstable/main/binary-i386/", Packages[2]); + EXPECT_EQ(2, Sources.size()); + EXPECT_EQ(path + "/dists/stable/main/source/", Sources[0]); + EXPECT_EQ(path + "/dists/unstable/main/source/", Sources[1]); + EXPECT_EQ(2, Signatur.size()); + EXPECT_EQ(path + "/dists/stable/", Signatur[0]); + EXPECT_EQ(path + "/dists/unstable/", Signatur[1]); + EXPECT_EQ(2, Translation.size()); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-de", Translation[0]); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-en", Translation[1]); - return 0; + removeDirectory(path); } diff --git a/test/libapt/cdromreducesourcelist_test.cc b/test/libapt/cdromreducesourcelist_test.cc deleted file mode 100644 index 196d0136e..000000000 --- a/test/libapt/cdromreducesourcelist_test.cc +++ /dev/null @@ -1,86 +0,0 @@ -#include - -#include - -#include -#include - -#include "assert.h" - -class Cdrom : public pkgCdrom { -public: - std::vector ReduceSourcelist(std::string CD,std::vector List) { - pkgCdrom::ReduceSourcelist(CD, List); - return List; - } -}; - -int main() { - Cdrom cd; - std::vector List; - std::string CD("/media/cdrom/"); - - std::vector R = cd.ReduceSourcelist(CD, List); - equals(R.empty(), true); - - List.push_back(" wheezy main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 1); - equals(R[0], " wheezy main"); - - List.push_back(" wheezy main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 1); - equals(R[0], " wheezy main"); - - List.push_back(" wheezy contrib"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 1); - equals(R[0], " wheezy contrib main"); - - List.push_back(" wheezy-update contrib"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib"); - - List.push_back(" wheezy-update contrib"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib"); - - List.push_back(" wheezy-update non-free"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib non-free"); - - List.push_back(" wheezy-update main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib main non-free"); - - List.push_back(" wheezy non-free"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main non-free"); - equals(R[1], " wheezy-update contrib main non-free"); - - List.push_back(" sid main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 3); - equals(R[0], " sid main"); - equals(R[1], " wheezy contrib main non-free"); - equals(R[2], " wheezy-update contrib main non-free"); - - List.push_back(" sid main-reduce"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 3); - equals(R[0], " sid main main-reduce"); - equals(R[1], " wheezy contrib main non-free"); - equals(R[2], " wheezy-update contrib main non-free"); - - return 0; -} diff --git a/test/libapt/commandline_test.cc b/test/libapt/commandline_test.cc index d8c5bc5bd..26e80bfde 100644 --- a/test/libapt/commandline_test.cc +++ b/test/libapt/commandline_test.cc @@ -3,33 +3,56 @@ #include #include -#include "assert.h" - -int main() +#include + +class CLT: public CommandLine { + public: + std::string static AsString(const char * const * const argv, + unsigned int const argc) { + std::string const static conf = "Commandline::AsString"; + _config->Clear(conf); + SaveInConfig(argc, argv); + return _config->Find(conf); + } +}; + +#define EXPECT_CMD(x, ...) { const char * const argv[] = { __VA_ARGS__ }; EXPECT_EQ(x, CLT::AsString(argv, sizeof(argv)/sizeof(argv[0]))); } + +TEST(CommandLineTest,SaveInConfig) +{ + EXPECT_CMD("apt-get install -sf", + "apt-get", "install", "-sf"); + EXPECT_CMD("apt-cache -s apt -so Debug::test=Test", + "apt-cache", "-s", "apt", "-so", "Debug::test=Test"); + EXPECT_CMD("apt-cache -s apt -so Debug::test=\"Das ist ein Test\"", + "apt-cache", "-s", "apt", "-so", "Debug::test=Das ist ein Test"); + EXPECT_CMD("apt-cache -s apt --hallo test=1.0", + "apt-cache", "-s", "apt", "--hallo", "test=1.0"); +} +TEST(CommandLineTest,Parsing) { CommandLine::Args Args[] = { { 't', 0, "Test::Worked", 0 }, { 'z', "zero", "Test::Zero", 0 }, {0,0,0,0} }; - CommandLine CmdL(Args,_config); + ::Configuration c; + CommandLine CmdL(Args, &c); char const * argv[] = { "test", "--zero", "-t" }; CmdL.Parse(3 , argv); - equals(true, _config->FindB("Test::Worked", false)); - equals(true, _config->FindB("Test::Zero", false)); + EXPECT_TRUE(c.FindB("Test::Worked", false)); + EXPECT_TRUE(c.FindB("Test::Zero", false)); - _config->Clear("Test"); - equals(false, _config->FindB("Test::Worked", false)); - equals(false, _config->FindB("Test::Zero", false)); + c.Clear("Test"); + EXPECT_FALSE(c.FindB("Test::Worked", false)); + EXPECT_FALSE(c.FindB("Test::Zero", false)); - _config->Set("Test::Zero", true); - equals(true, _config->FindB("Test::Zero", false)); + c.Set("Test::Zero", true); + EXPECT_TRUE(c.FindB("Test::Zero", false)); char const * argv2[] = { "test", "--no-zero", "-t" }; CmdL.Parse(3 , argv2); - equals(true, _config->FindB("Test::Worked", false)); - equals(false, _config->FindB("Test::Zero", false)); - - return 0; + EXPECT_TRUE(c.FindB("Test::Worked", false)); + EXPECT_FALSE(c.FindB("Test::Zero", false)); } diff --git a/test/libapt/commandlineasstring_test.cc b/test/libapt/commandlineasstring_test.cc deleted file mode 100644 index 5c005e956..000000000 --- a/test/libapt/commandlineasstring_test.cc +++ /dev/null @@ -1,41 +0,0 @@ -#include - -#include -#include - -#include - -#include "assert.h" - -class CLT: public CommandLine { - - public: - std::string static AsString(const char * const * const argv, - unsigned int const argc) { - std::string const static conf = "Commandline::AsString"; - _config->Clear(conf); - SaveInConfig(argc, argv); - return _config->Find(conf); - } -}; - -#define CMD(y,z) equals(CLT::AsString(argv, y), z); - -int main() { - { - const char* const argv[] = {"apt-get", "install", "-sf"}; - CMD(3, "apt-get install -sf"); - } - { - const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Test"}; - CMD(5, "apt-cache -s apt -so Debug::test=Test"); - } - { - const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Das ist ein Test"}; - CMD(5, "apt-cache -s apt -so Debug::test=\"Das ist ein Test\""); - } - { - const char* const argv[] = {"apt-cache", "-s", "apt", "--hallo", "test=1.0"}; - CMD(5, "apt-cache -s apt --hallo test=1.0"); - } -} diff --git a/test/libapt/compareversion_test.cc b/test/libapt/compareversion_test.cc index 43b98f240..3b2c0c209 100644 --- a/test/libapt/compareversion_test.cc +++ b/test/libapt/compareversion_test.cc @@ -28,9 +28,11 @@ #include #include +#include + using namespace std; -static bool callDPkg(const char *val, const char *ref, const char &op) { +static bool callDPKG(const char *val, const char *ref, const char &op) { pid_t Process = ExecFork(); if (Process == 0) { @@ -49,77 +51,130 @@ static bool callDPkg(const char *val, const char *ref, const char &op) { return WIFEXITED(Ret) == true && WEXITSTATUS(Ret) == 0; } -static void assertVersion(int const &CurLine, string const &A, string const &B, int const &Expected) { - int Res = debVS.CmpVersion(A.c_str(), B.c_str()); - bool const dpkg = callDPkg(A.c_str(),B.c_str(), Expected); - Res = (Res < 0) ? -1 : ( (Res > 0) ? 1 : Res); - if (Res != Expected) - _error->Error("Comparison failed on line %u. '%s' '%s' '%s' %i != %i",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")) ,B.c_str(),Res,Expected); - if (dpkg == false) - _error->Error("DPkg differ with line: %u. '%s' '%s' '%s' == false",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")),B.c_str()); +#define EXPECT_VERSION_PART(A, compare, B) \ +{ \ + int Res = debVS.CmpVersion(A, B); \ + Res = (Res < 0) ? -1 : ( (Res > 0) ? 1 : Res); \ + EXPECT_EQ(compare, Res) << "APT: A: »" << A << "« B: »" << B << "«"; \ + EXPECT_PRED3(callDPKG, A, B, compare); \ } +#define EXPECT_VERSION(A, compare, B) \ + EXPECT_VERSION_PART(A, compare, B); \ + EXPECT_VERSION_PART(B, compare * -1, A) + +// History-Remark: The versions used to be specified in a versions.lst file + +enum CompareVersionType { LESS = -1, GREATER = 1, EQUAL = 0 }; -static bool RunTest(const char *File) +TEST(CompareVersionTest,Basic) { - if (FileExists(File) == false) - return _error->Error("Versiontestfile %s doesn't exist!", File); + EXPECT_VERSION("7.6p2-4", GREATER, "7.6-0"); + EXPECT_VERSION("1.0.3-3", GREATER, "1.0-1"); + EXPECT_VERSION("1.3", GREATER, "1.2.2-2"); + EXPECT_VERSION("1.3", GREATER, "1.2.2"); - ifstream F(File,ios::in); - if (!F != 0) - return false; + /* disabled as dpkg doesn't like them… (versions have to start with a number) + EXPECT_VERSION("-", LESS, "."); + EXPECT_VERSION("p", LESS, "-"); + EXPECT_VERSION("a", LESS, "-"); + EXPECT_VERSION("z", LESS, "-"); + EXPECT_VERSION("a", LESS, "."); + EXPECT_VERSION("z", LESS, "."); + // */ - char Buffer[300]; - int CurLine = 0; - - while (1) - { - F.getline(Buffer,sizeof(Buffer)); - CurLine++; - if (F.eof() != 0) - return true; - if (!F != 0) - return _error->Error("Line %u in %s is too long",CurLine,File); - - // Comment - if (Buffer[0] == '#' || Buffer[0] == 0) - continue; - - // First version - char *I; - char *Start = Buffer; - for (I = Buffer; *I != 0 && *I != ' '; I++); - string A(Start, I - Start); - - if (*I == 0) - return _error->Error("Invalid line %u",CurLine); - - // Second version - I++; - Start = I; - for (I = Start; *I != 0 && *I != ' '; I++); - string B(Start,I - Start); - - if (*I == 0 || I[1] == 0) - return _error->Error("Invalid line %u",CurLine); - - // Result - I++; - int const Expected = atoi(I); - assertVersion(CurLine, A, B, Expected); - // Check the reverse as well - assertVersion(CurLine, B, A, Expected*-1); - } + /* disabled as dpkg doesn't like them… (versions have to start with a number) + EXPECT_VERSION("III-alpha9.8", LESS, "III-alpha9.8-1.5"); + // */ + + // Test some properties of text strings + EXPECT_VERSION("0-pre", EQUAL, "0-pre"); + EXPECT_VERSION("0-pre", LESS, "0-pree"); + + EXPECT_VERSION("1.1.6r2-2", GREATER, "1.1.6r-1"); + EXPECT_VERSION("2.6b2-1", GREATER, "2.6b-2"); + + EXPECT_VERSION("98.1p5-1", LESS, "98.1-pre2-b6-2"); + EXPECT_VERSION("0.4a6-2", GREATER, "0.4-1"); + + EXPECT_VERSION("1:3.0.5-2", LESS, "1:3.0.5.1"); } +TEST(CompareVersionTest,Epochs) +{ + EXPECT_VERSION("1:0.4", GREATER, "10.3"); + EXPECT_VERSION("1:1.25-4", LESS, "1:1.25-8"); + EXPECT_VERSION("0:1.18.36", EQUAL, "1.18.36"); + + EXPECT_VERSION("1.18.36", GREATER, "1.18.35"); + EXPECT_VERSION("0:1.18.36", GREATER, "1.18.35"); +} +TEST(CompareVersionTest,Strangeness) +{ + // Funky, but allowed, characters in upstream version + EXPECT_VERSION("9:1.18.36:5.4-20", LESS, "10:0.5.1-22"); + EXPECT_VERSION("9:1.18.36:5.4-20", LESS, "9:1.18.36:5.5-1"); + EXPECT_VERSION("9:1.18.36:5.4-20", LESS, " 9:1.18.37:4.3-22"); + EXPECT_VERSION("1.18.36-0.17.35-18", GREATER, "1.18.36-19"); + + // Junk + EXPECT_VERSION("1:1.2.13-3", LESS, "1:1.2.13-3.1"); + EXPECT_VERSION("2.0.7pre1-4", LESS, "2.0.7r-1"); -int main(int argc, char *argv[]) + // if a version includes a dash, it should be the debrev dash - policy says so… + EXPECT_VERSION("0:0-0-0", GREATER, "0-0"); + + // do we like strange versions? Yes we like strange versions… + EXPECT_VERSION("0", EQUAL, "0"); + EXPECT_VERSION("0", EQUAL, "00"); +} +TEST(CompareVersionTest,DebianBug) +{ + // #205960 + EXPECT_VERSION("3.0~rc1-1", LESS, "3.0-1"); + // #573592 - debian policy 5.6.12 + EXPECT_VERSION("1.0", EQUAL, "1.0-0"); + EXPECT_VERSION("0.2", LESS, "1.0-0"); + EXPECT_VERSION("1.0", LESS, "1.0-0+b1"); + EXPECT_VERSION("1.0", GREATER, "1.0-0~"); +} +TEST(CompareVersionTest,CuptTests) { - if (argc != 2) - return 1; - else - RunTest(argv[1]); - - // Print any errors or warnings found - _error->DumpErrors(); - return 0; + // "steal" the testcases from (old perl) cupt + EXPECT_VERSION("1.2.3", EQUAL, "1.2.3"); // identical + EXPECT_VERSION("4.4.3-2", EQUAL, "4.4.3-2"); // identical + EXPECT_VERSION("1:2ab:5", EQUAL, "1:2ab:5"); // this is correct... + EXPECT_VERSION("7:1-a:b-5", EQUAL, "7:1-a:b-5"); // and this + EXPECT_VERSION("57:1.2.3abYZ+~-4-5", EQUAL, "57:1.2.3abYZ+~-4-5"); // and those too + EXPECT_VERSION("1.2.3", EQUAL, "0:1.2.3"); // zero epoch + EXPECT_VERSION("1.2.3", EQUAL, "1.2.3-0"); // zero revision + EXPECT_VERSION("009", EQUAL, "9"); // zeroes… + EXPECT_VERSION("009ab5", EQUAL, "9ab5"); // there as well + EXPECT_VERSION("1.2.3", LESS, "1.2.3-1"); // added non-zero revision + EXPECT_VERSION("1.2.3", LESS, "1.2.4"); // just bigger + EXPECT_VERSION("1.2.4", GREATER, "1.2.3"); // order doesn't matter + EXPECT_VERSION("1.2.24", GREATER, "1.2.3"); // bigger, eh? + EXPECT_VERSION("0.10.0", GREATER, "0.8.7"); // bigger, eh? + EXPECT_VERSION("3.2", GREATER, "2.3"); // major number rocks + EXPECT_VERSION("1.3.2a", GREATER, "1.3.2"); // letters rock + EXPECT_VERSION("0.5.0~git", LESS, "0.5.0~git2"); // numbers rock + EXPECT_VERSION("2a", LESS, "21"); // but not in all places + EXPECT_VERSION("1.3.2a", LESS, "1.3.2b"); // but there is another letter + EXPECT_VERSION("1:1.2.3", GREATER, "1.2.4"); // epoch rocks + EXPECT_VERSION("1:1.2.3", LESS, "1:1.2.4"); // bigger anyway + EXPECT_VERSION("1.2a+~bCd3", LESS, "1.2a++"); // tilde doesn't rock + EXPECT_VERSION("1.2a+~bCd3", GREATER, "1.2a+~"); // but first is longer! + EXPECT_VERSION("5:2", GREATER, "304-2"); // epoch rocks + EXPECT_VERSION("5:2", LESS, "304:2"); // so big epoch? + EXPECT_VERSION("25:2", GREATER, "3:2"); // 25 > 3, obviously + EXPECT_VERSION("1:2:123", LESS, "1:12:3"); // 12 > 2 + EXPECT_VERSION("1.2-5", LESS, "1.2-3-5"); // 1.2 < 1.2-3 + EXPECT_VERSION("5.10.0", GREATER, "5.005"); // preceding zeroes don't matters + EXPECT_VERSION("3a9.8", LESS, "3.10.2"); // letters are before all letter symbols + EXPECT_VERSION("3a9.8", GREATER, "3~10"); // but after the tilde + EXPECT_VERSION("1.4+OOo3.0.0~", LESS, "1.4+OOo3.0.0-4"); // another tilde check + EXPECT_VERSION("2.4.7-1", LESS, "2.4.7-z"); // revision comparing + EXPECT_VERSION("1.002-1+b2", GREATER, "1.00"); // whatever... + /* disabled as dpkg doesn't like them… (versions with illegal char) + EXPECT_VERSION("2.2.4-47978_Debian_lenny", EQUAL, "2.2.4-47978_Debian_lenny"); // and underscore... + // */ } diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc index c9235500c..647d8a4af 100644 --- a/test/libapt/configuration_test.cc +++ b/test/libapt/configuration_test.cc @@ -5,135 +5,142 @@ #include #include -#include "assert.h" +#include -int main() { +//FIXME: Test for configuration file parsing; +// currently only integration/ tests test them implicitly + +TEST(ConfigurationTest,Lists) +{ Configuration Cnf; - std::vector fds; Cnf.Set("APT::Keep-Fds::",28); Cnf.Set("APT::Keep-Fds::",17); Cnf.Set("APT::Keep-Fds::2",47); Cnf.Set("APT::Keep-Fds::","broken"); - fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "28"); - equals(fds[1], "17"); - equals(fds[2], "47"); - equals(fds[3], "broken"); - equals(fds.size(), 4); - equals(Cnf.Exists("APT::Keep-Fds::2"), true); - equals(Cnf.Find("APT::Keep-Fds::2"), "47"); - equals(Cnf.FindI("APT::Keep-Fds::2"), 47); - equals(Cnf.Exists("APT::Keep-Fds::3"), false); - equals(Cnf.Find("APT::Keep-Fds::3"), ""); - equals(Cnf.FindI("APT::Keep-Fds::3", 56), 56); - equals(Cnf.Find("APT::Keep-Fds::3", "not-set"), "not-set"); + std::vector fds = Cnf.FindVector("APT::Keep-Fds"); + ASSERT_EQ(4, fds.size()); + EXPECT_EQ("28", fds[0]); + EXPECT_EQ("17", fds[1]); + EXPECT_EQ("47", fds[2]); + EXPECT_EQ("broken", fds[3]); + + EXPECT_TRUE(Cnf.Exists("APT::Keep-Fds::2")); + EXPECT_EQ("47", Cnf.Find("APT::Keep-Fds::2")); + EXPECT_EQ(47, Cnf.FindI("APT::Keep-Fds::2")); + EXPECT_FALSE(Cnf.Exists("APT::Keep-Fds::3")); + EXPECT_EQ("", Cnf.Find("APT::Keep-Fds::3")); + EXPECT_EQ(56, Cnf.FindI("APT::Keep-Fds::3", 56)); + EXPECT_EQ("not-set", Cnf.Find("APT::Keep-Fds::3", "not-set")); Cnf.Clear("APT::Keep-Fds::2"); + EXPECT_TRUE(Cnf.Exists("APT::Keep-Fds::2")); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "28"); - equals(fds[1], "17"); - equals(fds[2], ""); - equals(fds[3], "broken"); - equals(fds.size(), 4); - equals(Cnf.Exists("APT::Keep-Fds::2"), true); + ASSERT_EQ(4, fds.size()); + EXPECT_EQ("28", fds[0]); + EXPECT_EQ("17", fds[1]); + EXPECT_EQ("", fds[2]); + EXPECT_EQ("broken", fds[3]); Cnf.Clear("APT::Keep-Fds",28); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "17"); - equals(fds[1], ""); - equals(fds[2], "broken"); - equals(fds.size(), 3); + ASSERT_EQ(3, fds.size()); + EXPECT_EQ("17", fds[0]); + EXPECT_EQ("", fds[1]); + EXPECT_EQ("broken", fds[2]); Cnf.Clear("APT::Keep-Fds",""); - equals(Cnf.Exists("APT::Keep-Fds::2"), false); + EXPECT_FALSE(Cnf.Exists("APT::Keep-Fds::2")); Cnf.Clear("APT::Keep-Fds",17); Cnf.Clear("APT::Keep-Fds","broken"); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds.empty(), true); + EXPECT_TRUE(fds.empty()); Cnf.Set("APT::Keep-Fds::",21); Cnf.Set("APT::Keep-Fds::",42); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "21"); - equals(fds[1], "42"); - equals(fds.size(), 2); + ASSERT_EQ(2, fds.size()); + EXPECT_EQ("21", fds[0]); + EXPECT_EQ("42", fds[1]); Cnf.Clear("APT::Keep-Fds"); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds.empty(), true); + EXPECT_TRUE(fds.empty()); +} +TEST(ConfigurationTest,Integers) +{ + Configuration Cnf; Cnf.CndSet("APT::Version", 42); Cnf.CndSet("APT::Version", "66"); - equals(Cnf.Find("APT::Version"), "42"); - equals(Cnf.FindI("APT::Version"), 42); - equals(Cnf.Find("APT::Version", "33"), "42"); - equals(Cnf.FindI("APT::Version", 33), 42); - equals(Cnf.Find("APT2::Version", "33"), "33"); - equals(Cnf.FindI("APT2::Version", 33), 33); - - equals(Cnf.FindFile("Dir::State"), ""); - equals(Cnf.FindFile("Dir::Aptitude::State"), ""); + EXPECT_EQ("42", Cnf.Find("APT::Version")); + EXPECT_EQ(42, Cnf.FindI("APT::Version")); + EXPECT_EQ("42", Cnf.Find("APT::Version", "33")); + EXPECT_EQ(42, Cnf.FindI("APT::Version", 33)); + EXPECT_EQ("33", Cnf.Find("APT2::Version", "33")); + EXPECT_EQ(33, Cnf.FindI("APT2::Version", 33)); +} +TEST(ConfigurationTest,DirsAndFiles) +{ + Configuration Cnf; + + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("Dir", "/srv/sid"); - equals(Cnf.FindFile("Dir::State"), ""); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); Cnf.Set("Dir::State", "var/lib/apt"); Cnf.Set("Dir::Aptitude::State", "var/lib/aptitude"); - equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "/"); - equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "//./////.////"); - equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "/rootdir"); - equals(Cnf.FindFile("Dir::State"), "/rootdir/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/rootdir/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/rootdir/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/rootdir/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "/rootdir/"); - equals(Cnf.FindFile("Dir::State"), "/rootdir/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/rootdir/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/rootdir/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/rootdir/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("Dir::State", "/dev/null"); Cnf.Set("Dir::State::lists", "lists/"); - equals(Cnf.FindDir("Dir::State"), "/rootdir/dev/null"); - equals(Cnf.FindDir("Dir::State::lists"), "/rootdir/dev/null"); - - Cnf.Set("Moo::Bar", "1"); - Cnf.Clear(); - equals(Cnf.Find("Moo::Bar"), ""); + EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State")); + EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State::lists")); +} +TEST(ConfigurationTest,Vector) +{ + Configuration Cnf; std::vector vec = Cnf.FindVector("Test::Vector", ""); - equals(vec.size(), 0); + EXPECT_EQ(0, vec.size()); vec = Cnf.FindVector("Test::Vector", "foo"); - equals(vec.size(), 1); - equals(vec[0], "foo"); + ASSERT_EQ(1, vec.size()); + EXPECT_EQ("foo", vec[0]); vec = Cnf.FindVector("Test::Vector", "foo,bar"); - equals(vec.size(), 2); - equals(vec[0], "foo"); - equals(vec[1], "bar"); + EXPECT_EQ(2, vec.size()); + EXPECT_EQ("foo", vec[0]); + EXPECT_EQ("bar", vec[1]); Cnf.Set("Test::Vector::", "baz"); Cnf.Set("Test::Vector::", "bob"); Cnf.Set("Test::Vector::", "dob"); vec = Cnf.FindVector("Test::Vector"); - equals(vec.size(), 3); - equals(vec[0], "baz"); - equals(vec[1], "bob"); - equals(vec[2], "dob"); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("baz", vec[0]); + EXPECT_EQ("bob", vec[1]); + EXPECT_EQ("dob", vec[2]); vec = Cnf.FindVector("Test::Vector", "foo,bar"); - equals(vec.size(), 3); - equals(vec[0], "baz"); - equals(vec[1], "bob"); - equals(vec[2], "dob"); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("baz", vec[0]); + EXPECT_EQ("bob", vec[1]); + EXPECT_EQ("dob", vec[2]); Cnf.Set("Test::Vector", "abel,bravo"); vec = Cnf.FindVector("Test::Vector", "foo,bar"); - equals(vec.size(), 2); - equals(vec[0], "abel"); - equals(vec[1], "bravo"); - - //FIXME: Test for configuration file parsing; - // currently only integration/ tests test them implicitly - - return 0; + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("abel", vec[0]); + EXPECT_EQ("bravo", vec[1]); } diff --git a/test/libapt/file-helpers.cc b/test/libapt/file-helpers.cc new file mode 100644 index 000000000..5edb9a9fe --- /dev/null +++ b/test/libapt/file-helpers.cc @@ -0,0 +1,77 @@ +#include + +#include + +#include +#include +#include +#include + +#include + +#include "file-helpers.h" + +void helperCreateTemporaryDirectory(std::string const &id, std::string &dir) +{ + std::string const strtempdir = GetTempDir().append("/apt-tests-").append(id).append(".XXXXXX"); + char * tempdir = strdup(strtempdir.c_str()); + ASSERT_STREQ(tempdir, mkdtemp(tempdir)); + dir = tempdir; + free(tempdir); +} +void helperRemoveDirectory(std::string const &dir) +{ + // basic sanity check to avoid removing random directories based on earlier failures + if (dir.find("/apt-tests-") == std::string::npos || dir.find_first_of("*?") != std::string::npos) + FAIL() << "Directory '" << dir << "' seems invalid. It is therefore not removed!"; + else + ASSERT_EQ(0, system(std::string("rm -rf ").append(dir).c_str())); +} +void helperCreateFile(std::string const &dir, std::string const &name) +{ + std::string file = dir; + file.append("/"); + file.append(name); + int const fd = creat(file.c_str(), 0600); + ASSERT_NE(-1, fd); + close(fd); +} +void helperCreateDirectory(std::string const &dir, std::string const &name) +{ + std::string file = dir; + file.append("/"); + file.append(name); + ASSERT_TRUE(CreateDirectory(dir, file)); +} +void helperCreateLink(std::string const &dir, std::string const &targetname, std::string const &linkname) +{ + std::string target = dir; + target.append("/"); + target.append(targetname); + std::string link = dir; + link.append("/"); + link.append(linkname); + ASSERT_EQ(0, symlink(target.c_str(), link.c_str())); +} +void helperCreateTemporaryFile(std::string const &id, FileFd &fd, char * * const filename, char const * const content) +{ + std::string name("apt-test-"); + name.append(id).append(".XXXXXXXX"); + char * tempfile = strdup(name.c_str()); + int tempfile_fd = mkstemp(tempfile); + ASSERT_NE(-1, tempfile_fd); + if (filename != NULL) + *filename = tempfile; + else + { + unlink(tempfile); + free(tempfile); + } + + EXPECT_TRUE(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite)); + if (content != NULL) + { + ASSERT_TRUE(fd.Write(content, strlen(content))); + fd.Seek(0); + } +} diff --git a/test/libapt/file-helpers.h b/test/libapt/file-helpers.h new file mode 100644 index 000000000..e8472d503 --- /dev/null +++ b/test/libapt/file-helpers.h @@ -0,0 +1,29 @@ +#ifndef APT_TESTS_FILE_HELPERS +#define APT_TESTS_FILE_HELPERS + +#include + +#include + +class FileFd; + +#define createTemporaryDirectory(id, dir) \ + ASSERT_NO_FATAL_FAILURE(helperCreateTemporaryDirectory(id, dir)) +void helperCreateTemporaryDirectory(std::string const &id, std::string &dir); +#define removeDirectory(dir) \ + ASSERT_NO_FATAL_FAILURE(helperRemoveDirectory(dir)) +void helperRemoveDirectory(std::string const &dir); +#define createFile(dir, name) \ + ASSERT_NO_FATAL_FAILURE(helperCreateFile(dir, name)) +void helperCreateFile(std::string const &dir, std::string const &name); +#define createDirectory(dir, name) \ + ASSERT_NO_FATAL_FAILURE(helperCreateDirectory(dir, name)) +void helperCreateDirectory(std::string const &dir, std::string const &name); +#define createLink(dir, targetname, linkname) \ + ASSERT_NO_FATAL_FAILURE(helperCreateLink(dir, targetname, linkname)) +void helperCreateLink(std::string const &dir, std::string const &targetname, std::string const &linkname); +#define createTemporaryFile(id, fd, filename, content) \ + ASSERT_NO_FATAL_FAILURE(helperCreateTemporaryFile(id, fd, filename, content)) +void helperCreateTemporaryFile(std::string const &id, FileFd &fd, char * * const filename, char const * const content); + +#endif diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index f3a3dd08e..643c02297 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -2,151 +2,148 @@ #include #include +#include #include #include #include #include -#include #include -#include "assert.h" +#include -static void assertStringEquals(char const * const expect, char const * const got, unsigned long const line) { - if (strncmp(expect, got, strlen(expect)) == 0) - return; - OutputAssertEqual(expect, "==", got, line); -} -#define strequals(x,y) assertStringEquals(x, y, __LINE__) +#include "file-helpers.h" -static bool -TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned int const filemode, APT::Configuration::Compressor const &compressor) +static void TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, + unsigned int const filemode, APT::Configuration::Compressor const &compressor) { - FileFd f; - struct stat buf; + std::string trace; + strprintf(trace, "TestFileFd: Compressor: %s umask: %#o permission: %#o mode: %d", compressor.Name.c_str(), a_umask, ExpectedFilePermission, filemode); + SCOPED_TRACE(trace); + static const char* fname = "apt-filefd-test.txt"; if (FileExists(fname) == true) - equals(unlink(fname), 0); + EXPECT_EQ(0, unlink(fname)); + FileFd f; umask(a_umask); - equals(f.Open(fname, filemode, compressor), true); - equals(f.IsOpen(), true); - equals(f.Failed(), false); - equals(umask(a_umask), a_umask); + EXPECT_TRUE(f.Open(fname, filemode, compressor)); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + EXPECT_EQ(umask(a_umask), a_umask); std::string test = "This is a test!\n"; - equals(f.Write(test.c_str(), test.size()), true); - equals(f.IsOpen(), true); - equals(f.Failed(), false); + EXPECT_TRUE(f.Write(test.c_str(), test.size())); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); f.Close(); - equals(f.IsOpen(), false); - equals(f.Failed(), false); - - equals(f.Open(fname, FileFd::ReadOnly, compressor), true); - equals(f.IsOpen(), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - equalsNot(f.FileSize(), 0); - equals(f.Failed(), false); - equalsNot(f.ModificationTime(), 0); - equals(f.Failed(), false); + EXPECT_FALSE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + + EXPECT_TRUE(f.Open(fname, FileFd::ReadOnly, compressor)); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_NE(0, f.FileSize()); + EXPECT_FALSE(f.Failed()); + EXPECT_NE(0, f.ModificationTime()); + EXPECT_FALSE(f.Failed()); // ensure the memory is as predictably messed up -# define APT_INIT_READBACK \ +#define APT_INIT_READBACK \ char readback[20]; \ memset(readback, 'D', sizeof(readback)/sizeof(readback[0])); \ readback[19] = '\0'; +#define EXPECT_N_STR(expect, actual) \ + EXPECT_EQ(0, strncmp(expect, actual, strlen(expect))); + { APT_INIT_READBACK char const * const expect = "This"; - equals(f.Read(readback, strlen(expect)), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(expect, readback); - equals(strlen(expect), f.Tell()); + EXPECT_TRUE(f.Read(readback, strlen(expect))); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(strlen(expect), f.Tell()); } { APT_INIT_READBACK char const * const expect = "test!\n"; - equals(f.Skip((test.size() - f.Tell()) - strlen(expect)), true); - equals(f.Read(readback, strlen(expect)), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(expect, readback); - equals(test.size(), f.Tell()); + EXPECT_TRUE(f.Skip((test.size() - f.Tell()) - strlen(expect))); + EXPECT_TRUE(f.Read(readback, strlen(expect))); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(test.size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); - equals(f.Read(readback, 20, true), true); - equals(f.Failed(), false); - equals(f.Eof(), true); - strequals(test.c_str(), readback); - equals(f.Size(), f.Tell()); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + EXPECT_TRUE(f.Read(readback, 20, true)); + EXPECT_FALSE(f.Failed()); + EXPECT_TRUE(f.Eof()); + EXPECT_N_STR(test.c_str(), readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); - equals(f.Read(readback, test.size(), true), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(test.c_str(), readback); - equals(f.Size(), f.Tell()); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + EXPECT_TRUE(f.Read(readback, test.size(), true)); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(test.c_str(), readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); unsigned long long actual; - equals(f.Read(readback, 20, &actual), true); - equals(f.Failed(), false); - equals(f.Eof(), true); - equals(test.size(), actual); - strequals(test.c_str(), readback); - equals(f.Size(), f.Tell()); + EXPECT_TRUE(f.Read(readback, 20, &actual)); + EXPECT_FALSE(f.Failed()); + EXPECT_TRUE(f.Eof()); + EXPECT_EQ(test.size(), actual); + EXPECT_N_STR(test.c_str(), readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); f.ReadLine(readback, 20); - equals(f.Failed(), false); - equals(f.Eof(), false); - equals(test, readback); - equals(f.Size(), f.Tell()); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_EQ(test, readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); char const * const expect = "This"; f.ReadLine(readback, strlen(expect) + 1); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(expect, readback); - equals(strlen(expect), f.Tell()); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(strlen(expect), f.Tell()); } #undef APT_INIT_READBACK f.Close(); - equals(f.IsOpen(), false); - equals(f.Failed(), false); + EXPECT_FALSE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); // regression test for permission bug LP: #1304657 - if (stat(fname, &buf) < 0) - { - _error->Errno("stat", "failed to stat"); - return false; - } - equals(unlink(fname), 0); - equals(buf.st_mode & 0777, ExpectedFilePermission); - return true; + struct stat buf; + EXPECT_EQ(0, stat(fname, &buf)); + EXPECT_EQ(0, unlink(fname)); + EXPECT_EQ(ExpectedFilePermission, buf.st_mode & 0777); } -static bool TestFileFd(unsigned int const filemode) +static void TestFileFd(unsigned int const filemode) { std::vector compressors = APT::Configuration::getCompressors(); @@ -159,78 +156,71 @@ static bool TestFileFd(unsigned int const filemode) if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && (c->Name.empty() != true && c->Binary.empty() != true)) continue; - if (TestFileFd(0002, 0664, filemode, *c) == false || - TestFileFd(0022, 0644, filemode, *c) == false || - TestFileFd(0077, 0600, filemode, *c) == false || - TestFileFd(0026, 0640, filemode, *c) == false) - { - _error->DumpErrors(); - return false; - } + TestFileFd(0002, 0664, filemode, *c); + TestFileFd(0022, 0644, filemode, *c); + TestFileFd(0077, 0600, filemode, *c); + TestFileFd(0026, 0640, filemode, *c); } - return true; } -int main(int const argc, char const * const * const argv) +TEST(FileUtlTest, FileFD) +{ + std::string const startdir = SafeGetCWD(); + EXPECT_FALSE(startdir.empty()); + std::string tempdir; + createTemporaryDirectory("filefd", tempdir); + EXPECT_EQ(0, chdir(tempdir.c_str())); + + TestFileFd(FileFd::WriteOnly | FileFd::Create); + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty); + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive); + TestFileFd(FileFd::WriteOnly | FileFd::Atomic); + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Atomic); + // short-hands for ReadWrite with these modes + TestFileFd(FileFd::WriteEmpty); + TestFileFd(FileFd::WriteAny); + TestFileFd(FileFd::WriteTemp); + TestFileFd(FileFd::WriteAtomic); + + EXPECT_EQ(0, chdir(startdir.c_str())); + removeDirectory(tempdir); +} +TEST(FileUtlTest, Glob) { - std::string startdir; - if (argc > 1 && DirectoryExists(argv[1]) == true) { - startdir = SafeGetCWD(); - equals(chdir(argv[1]), 0); - } - if (TestFileFd(FileFd::WriteOnly | FileFd::Create) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Atomic) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Atomic) == false || - // short-hands for ReadWrite with these modes - TestFileFd(FileFd::WriteEmpty) == false || - TestFileFd(FileFd::WriteAny) == false || - TestFileFd(FileFd::WriteTemp) == false || - TestFileFd(FileFd::WriteAtomic) == false) - { - return 1; - } - if (startdir.empty() == false) - equals(chdir(startdir.c_str()), 0); - std::vector files; // normal match - files = Glob("*.lst"); - if (files.size() != 1) - { - _error->DumpErrors(); - return 1; - } + files = Glob("*akefile"); + EXPECT_EQ(1, files.size()); // not there files = Glob("xxxyyyzzz"); - if (files.size() != 0 || _error->PendingError()) - { - _error->DumpErrors(); - return 1; - } + EXPECT_TRUE(files.empty()); + EXPECT_FALSE(_error->PendingError()); // many matches (number is a bit random) files = Glob("*.cc"); - if (files.size() < 10) - { - _error->DumpErrors(); - return 1; - } + EXPECT_LT(10, files.size()); +} +TEST(FileUtlTest, GetTempDir) +{ + char const * const envtmp = getenv("TMPDIR"); + std::string old_tmpdir; + if (envtmp != NULL) + old_tmpdir = envtmp; - // GetTempDir() unsetenv("TMPDIR"); - equals(GetTempDir(), "/tmp"); + EXPECT_EQ("/tmp", GetTempDir()); setenv("TMPDIR", "", 1); - equals(GetTempDir(), "/tmp"); + EXPECT_EQ("/tmp", GetTempDir()); setenv("TMPDIR", "/not-there-no-really-not", 1); - equals(GetTempDir(), "/tmp"); + EXPECT_EQ("/tmp", GetTempDir()); setenv("TMPDIR", "/usr", 1); - equals(GetTempDir(), "/usr"); + EXPECT_EQ("/usr", GetTempDir()); - return 0; + unsetenv("TMPDIR"); + if (old_tmpdir.empty() == false) + setenv("TMPDIR", old_tmpdir.c_str(), 1); } diff --git a/test/libapt/getarchitectures_test.cc b/test/libapt/getarchitectures_test.cc index f4dfc6ae8..53c00cd8f 100644 --- a/test/libapt/getarchitectures_test.cc +++ b/test/libapt/getarchitectures_test.cc @@ -6,56 +6,72 @@ #include #include -#include "assert.h" +#include -int main() +TEST(ArchitecturesTest,SimpleLists) { - std::vector vec; - - _config->Set("APT::Architectures::1", "i386"); - _config->Set("APT::Architectures::2", "amd64"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "i386"); - equals(vec[1], "amd64"); - - _config->Set("APT::Architecture", "i386"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "i386"); - equals(vec[1], "amd64"); - - _config->Set("APT::Architectures::2", ""); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 1); - equals(vec[0], "i386"); - - _config->Set("APT::Architecture", "armel"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "armel"); - equals(vec[1], "i386"); - - _config->Set("APT::Architectures::2", "armel"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "i386"); - equals(vec[1], "armel"); - - _config->Set("APT::Architectures::2", "amd64"); - _config->Set("APT::Architectures::3", "i386"); - _config->Set("APT::Architectures::4", "armel"); - _config->Set("APT::Architectures::5", "i386"); - _config->Set("APT::Architectures::6", "amd64"); - _config->Set("APT::Architectures::7", "armel"); - _config->Set("APT::Architectures::8", "armel"); - _config->Set("APT::Architectures::9", "amd64"); - _config->Set("APT::Architectures::10", "amd64"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 3); - equals(vec[0], "i386"); - equals(vec[1], "amd64"); - equals(vec[2], "armel"); - - return 0; + _config->Clear(); + std::vector vec; + + _config->Set("APT::Architectures::1", "i386"); + _config->Set("APT::Architectures::2", "amd64"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("amd64", vec[1]); + + _config->Set("APT::Architecture", "i386"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("amd64", vec[1]); + + _config->Set("APT::Architectures::2", ""); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(1, vec.size()); + EXPECT_EQ("i386", vec[0]); + + _config->Set("APT::Architecture", "armel"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("armel", vec[0]); + EXPECT_EQ("i386", vec[1]); + + _config->Set("APT::Architectures::2", "armel"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("armel", vec[1]); + + _config->Set("APT::Architectures", "armel,armhf"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("armel", vec[0]); + EXPECT_EQ("armhf", vec[1]); + _config->Clear(); +} +TEST(ArchitecturesTest,Duplicates) +{ + _config->Clear(); + + _config->Set("APT::Architecture", "armel"); + _config->Set("APT::Architectures::", "i386"); + _config->Set("APT::Architectures::", "amd64"); + _config->Set("APT::Architectures::", "i386"); + _config->Set("APT::Architectures::", "armel"); + _config->Set("APT::Architectures::", "i386"); + _config->Set("APT::Architectures::", "amd64"); + _config->Set("APT::Architectures::", "armel"); + _config->Set("APT::Architectures::", "armel"); + _config->Set("APT::Architectures::", "amd64"); + _config->Set("APT::Architectures::", "amd64"); + std::vector vec = _config->FindVector("APT::Architectures"); + ASSERT_EQ(10, vec.size()); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("amd64", vec[1]); + EXPECT_EQ("armel", vec[2]); + + _config->Clear(); } diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index 15aa4e879..c50ff6ff8 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -2,199 +2,233 @@ #include #include +#include -#include "assert.h" +#include +#include #include #include -#include +#include +#include +#include + +#include + +#include "file-helpers.h" + +TEST(LanguagesTest,Environment) +{ + _config->Clear(); + + char const* env[2]; + env[0] = "de_DE.UTF-8"; + env[1] = ""; + + std::vector vec = APT::Configuration::getLanguages(false, false, env); + ASSERT_EQ(3 ,vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + // Special: Check if the cache is actually in use + env[0] = "en_GB.UTF-8"; + vec = APT::Configuration::getLanguages(false, true, env); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "en_GB.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("en_GB", vec[0]); + EXPECT_EQ("en", vec[1]); + + // esperanto + env[0] = "eo.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("eo", vec[0]); + EXPECT_EQ("en", vec[1]); + + env[0] = "tr_DE@euro"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("tr_DE", vec[0]); + EXPECT_EQ("tr", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "de_NO"; + env[1] = "de_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(6, vec.size()); + EXPECT_EQ("de_NO", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en_GB", vec[2]); + EXPECT_EQ("nb_NO", vec[3]); + EXPECT_EQ("nb", vec[4]); + EXPECT_EQ("en", vec[5]); + + env[0] = "pt_PR.UTF-8"; + env[1] = ""; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("pt_PR", vec[0]); + EXPECT_EQ("pt", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "ast_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("ast_DE", vec[0]); + EXPECT_EQ("ast", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("en", vec[0]); + + _config->Set("Acquire::Languages", "none"); + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_TRUE(vec.empty()); + + _config->Set("Acquire::Languages", "environment"); + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("en", vec[0]); + + _config->Set("Acquire::Languages", "de"); + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("de", vec[0]); + + _config->Set("Acquire::Languages", "fr"); + env[0] = "ast_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("fr", vec[0]); + + _config->Set("Acquire::Languages", "environment,en"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + _config->Set("Acquire::Languages", ""); + + _config->Set("Acquire::Languages::1", "environment"); + _config->Set("Acquire::Languages::2", "en"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + _config->Set("Acquire::Languages::3", "de"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + _config->Clear(); +} -int main(int argc,char *argv[]) +TEST(LanguagesTest,TranslationFiles) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } - - char const* env[2]; - env[0] = "de_DE.UTF-8"; - env[1] = ""; - - std::vector vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - // Special: Check if the cache is actually in use - env[0] = "en_GB.UTF-8"; - vec = APT::Configuration::getLanguages(false, true, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - env[0] = "en_GB.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "en_GB"); - equals(vec[1], "en"); - - // esperanto - env[0] = "eo.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "eo"); - equals(vec[1], "en"); - - env[0] = "tr_DE@euro"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "tr_DE"); - equals(vec[1], "tr"); - equals(vec[2], "en"); - - env[0] = "de_NO"; - env[1] = "de_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 6); - equals(vec[0], "de_NO"); - equals(vec[1], "de"); - equals(vec[2], "en_GB"); - equals(vec[3], "nb_NO"); - equals(vec[4], "nb"); - equals(vec[5], "en"); - - env[0] = "pt_PR.UTF-8"; - env[1] = ""; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "pt_PR"); - equals(vec[1], "pt"); - equals(vec[2], "en"); - - env[0] = "ast_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct - equals(vec.size(), 3); - equals(vec[0], "ast_DE"); - equals(vec[1], "ast"); - equals(vec[2], "en"); - - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "en"); - - _config->Set("Acquire::Languages", "none"); - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 0); - - _config->Set("Acquire::Languages", "environment"); - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "en"); - - _config->Set("Acquire::Languages", "de"); - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "de"); - - _config->Set("Acquire::Languages", "fr"); - env[0] = "ast_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "fr"); - - _config->Set("Acquire::Languages", "environment,en"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - _config->Set("Acquire::Languages", ""); - - _config->Set("Acquire::Languages::1", "environment"); - _config->Set("Acquire::Languages::2", "en"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - _config->Set("Acquire::Languages::3", "de"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - _config->Set("Dir::State::lists", argv[1]); - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 8); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - equals(vec[3], "none"); - equalsOr4(vec[4], "pt", "tr", "ast_DE", "tlh_DE"); - equalsOr4(vec[5], "tr", "pt", "ast_DE", "tlh_DE"); - equalsOr4(vec[6], "tr", "pt", "ast_DE", "tlh_DE"); - equalsOr4(vec[7], "tr", "pt", "ast_DE", "tlh_DE"); - equalsNot(vec[4], vec[5]); - equalsNot(vec[4], vec[6]); - equalsNot(vec[4], vec[7]); - equalsNot(vec[5], vec[6]); - equalsNot(vec[5], vec[7]); - equalsNot(vec[6], vec[7]); - - _config->Set("Acquire::Languages", "none"); - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); - equals(vec[0], "none"); - _config->Set("Acquire::Languages", ""); - - _config->Set("Dir::State::lists", "/non-existing-dir"); - _config->Set("Acquire::Languages::1", "none"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 0); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 2); - equals(vec[0], "en"); - equals(vec[1], "de"); - - _config->Set("Acquire::Languages::1", "fr"); - _config->Set("Acquire::Languages", "de_DE"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "de_DE"); - - _config->Set("Acquire::Languages", "none"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); - equals(vec[0], "none"); - - _config->Set("Acquire::Languages", ""); - //FIXME: Remove support for this deprecated setting - _config->Set("APT::Acquire::Translation", "ast_DE"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 2); - equals(vec[0], "ast_DE"); - equals(vec[1], "en"); - _config->Set("APT::Acquire::Translation", "none"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); - equals(vec[0], "en"); - - return 0; + _config->Clear(); + _config->Set("Acquire::Languages::1", "environment"); + _config->Set("Acquire::Languages::2", "en"); + _config->Set("Acquire::Languages::3", "de"); + + char const* env[2]; + env[0] = "de_DE.UTF-8"; + env[1] = ""; + + std::string tempdir; + createTemporaryDirectory("languages", tempdir); + +#define createTranslation(lang) \ + createFile(tempdir, std::string("/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-").append(lang)); + + createTranslation("tr"); + createTranslation("pt"); + createTranslation("se~"); + createTranslation("st.bak"); + createTranslation("ast_DE"); + createTranslation("tlh%5fDE"); + + _config->Set("Dir::State::lists", tempdir); + std::vector vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(8, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + EXPECT_EQ("none", vec[3]); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "pt")); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "tr")); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "ast_DE")); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "tlh_DE")); + EXPECT_NE(vec[4], vec[5]); + EXPECT_NE(vec[4], vec[6]); + EXPECT_NE(vec[4], vec[7]); + EXPECT_NE(vec[5], vec[6]); + EXPECT_NE(vec[5], vec[7]); + EXPECT_NE(vec[6], vec[7]); + + _config->Set("Acquire::Languages", "none"); + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("none", vec[0]); + _config->Set("Acquire::Languages", ""); + + _config->Set("Dir::State::lists", "/non-existing-dir"); + _config->Set("Acquire::Languages::1", "none"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_TRUE(vec.empty()); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(2, vec.size()); + EXPECT_EQ("en", vec[0]); + EXPECT_EQ("de", vec[1]); + + _config->Set("Acquire::Languages::1", "fr"); + _config->Set("Acquire::Languages", "de_DE"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + + _config->Set("Acquire::Languages", "none"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("none", vec[0]); + + _config->Set("Acquire::Languages", ""); + //FIXME: Remove support for this deprecated setting + _config->Set("APT::Acquire::Translation", "ast_DE"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(2, vec.size()); + EXPECT_EQ("ast_DE", vec[0]); + EXPECT_EQ("en", vec[1]); + _config->Set("APT::Acquire::Translation", "none"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("en", vec[0]); + + + EXPECT_EQ(0, system(std::string("rm -rf ").append(tempdir).c_str())); + _config->Clear(); } diff --git a/test/libapt/getlistoffilesindir_test.cc b/test/libapt/getlistoffilesindir_test.cc index df125fc83..2369c911a 100644 --- a/test/libapt/getlistoffilesindir_test.cc +++ b/test/libapt/getlistoffilesindir_test.cc @@ -6,71 +6,102 @@ #include #include -#include "assert.h" +#include -#define P(x) std::string(argv[1]).append("/").append(x) +#include "file-helpers.h" -int main(int argc,char *argv[]) +#define P(x) std::string(tempdir).append("/").append(x) + +TEST(FileUtlTest,GetListOfFilesInDir) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } - - // Files with no extension - std::vector files = GetListOfFilesInDir(argv[1], "", true); - equals(files.size(), 2); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - - // Files with no extension - should be the same as above - files = GetListOfFilesInDir(argv[1], "", true, true); - equals(files.size(), 2); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - - // Files with impossible extension - files = GetListOfFilesInDir(argv[1], "impossible", true); - equals(files.size(), 0); - - // Files with impossible or no extension - files = GetListOfFilesInDir(argv[1], "impossible", true, true); - equals(files.size(), 2); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - - // Files with list extension - nothing more - files = GetListOfFilesInDir(argv[1], "list", true); - equals(files.size(), 4); - equals(files[0], P("01yet-anotherapt.list")); - equals(files[1], P("anormalapt.list")); - equals(files[2], P("linkedfile.list")); - equals(files[3], P("multi.dot.list")); - - // Files with conf or no extension - files = GetListOfFilesInDir(argv[1], "conf", true, true); - equals(files.size(), 5); - equals(files[0], P("01yet-anotherapt.conf")); - equals(files[1], P("01yet-anothernormalfile")); - equals(files[2], P("anormalapt.conf")); - equals(files[3], P("anormalfile")); - equals(files[4], P("multi.dot.conf")); - - // Files with disabled extension - nothing more - files = GetListOfFilesInDir(argv[1], "disabled", true); - equals(files.size(), 3); - equals(files[0], P("disabledfile.conf.disabled")); - equals(files[1], P("disabledfile.disabled")); - equals(files[2], P("disabledfile.list.disabled")); - - // Files with disabled or no extension - files = GetListOfFilesInDir(argv[1], "disabled", true, true); - equals(files.size(), 5); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - equals(files[2], P("disabledfile.conf.disabled")); - equals(files[3], P("disabledfile.disabled")); - equals(files[4], P("disabledfile.list.disabled")); - - return 0; + std::string tempdir; + createTemporaryDirectory("getlistoffiles", tempdir); + + createFile(tempdir, "anormalfile"); + createFile(tempdir, "01yet-anothernormalfile"); + createFile(tempdir, "anormalapt.conf"); + createFile(tempdir, "01yet-anotherapt.conf"); + createFile(tempdir, "anormalapt.list"); + createFile(tempdir, "01yet-anotherapt.list"); + createFile(tempdir, "wrongextension.wron"); + createFile(tempdir, "wrong-extension.wron"); + createFile(tempdir, "strangefile."); + createFile(tempdir, "s.t.r.a.n.g.e.f.i.l.e"); + createFile(tempdir, ".hiddenfile"); + createFile(tempdir, ".hiddenfile.conf"); + createFile(tempdir, ".hiddenfile.list"); + createFile(tempdir, "multi..dot"); + createFile(tempdir, "multi.dot.conf"); + createFile(tempdir, "multi.dot.list"); + createFile(tempdir, "disabledfile.disabled"); + createFile(tempdir, "disabledfile.conf.disabled"); + createFile(tempdir, "disabledfile.list.disabled"); + createFile(tempdir, "invälid.conf"); + createFile(tempdir, "invalíd"); + createFile(tempdir, "01invalíd"); + createDirectory(tempdir, "invaliddir"); + createDirectory(tempdir, "directory.conf"); + createDirectory(tempdir, "directory.list"); + createDirectory(tempdir, "directory.wron"); + createDirectory(tempdir, "directory.list.disabled"); + createLink(tempdir, "anormalfile", "linkedfile.list"); + createLink(tempdir, "invaliddir", "linkeddir.list"); + createLink(tempdir, "non-existing-file", "brokenlink.list"); + + // Files with no extension + std::vector files = GetListOfFilesInDir(tempdir, "", true); + ASSERT_EQ(2, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + + // Files with no extension - should be the same as above + files = GetListOfFilesInDir(tempdir, "", true, true); + ASSERT_EQ(2, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + + // Files with impossible extension + files = GetListOfFilesInDir(tempdir, "impossible", true); + EXPECT_TRUE(files.empty()); + + // Files with impossible or no extension + files = GetListOfFilesInDir(tempdir, "impossible", true, true); + ASSERT_EQ(2, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + + // Files with list extension - nothing more + files = GetListOfFilesInDir(tempdir, "list", true); + ASSERT_EQ(4, files.size()); + EXPECT_EQ(P("01yet-anotherapt.list"), files[0]); + EXPECT_EQ(P("anormalapt.list"), files[1]); + EXPECT_EQ(P("linkedfile.list"), files[2]); + EXPECT_EQ(P("multi.dot.list"), files[3]); + + // Files with conf or no extension + files = GetListOfFilesInDir(tempdir, "conf", true, true); + ASSERT_EQ(5, files.size()); + EXPECT_EQ(P("01yet-anotherapt.conf"), files[0]); + EXPECT_EQ(P("01yet-anothernormalfile"), files[1]); + EXPECT_EQ(P("anormalapt.conf"), files[2]); + EXPECT_EQ(P("anormalfile"), files[3]); + EXPECT_EQ(P("multi.dot.conf"), files[4]); + + // Files with disabled extension - nothing more + files = GetListOfFilesInDir(tempdir, "disabled", true); + ASSERT_EQ(3, files.size()); + EXPECT_EQ(P("disabledfile.conf.disabled"), files[0]); + EXPECT_EQ(P("disabledfile.disabled"), files[1]); + EXPECT_EQ(P("disabledfile.list.disabled"), files[2]); + + // Files with disabled or no extension + files = GetListOfFilesInDir(tempdir, "disabled", true, true); + ASSERT_EQ(5, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + EXPECT_EQ(P("disabledfile.conf.disabled"), files[2]); + EXPECT_EQ(P("disabledfile.disabled"), files[3]); + EXPECT_EQ(P("disabledfile.list.disabled"), files[4]); + + removeDirectory(tempdir); } diff --git a/test/libapt/globalerror_test.cc b/test/libapt/globalerror_test.cc index e913fdc12..05b95db85 100644 --- a/test/libapt/globalerror_test.cc +++ b/test/libapt/globalerror_test.cc @@ -7,110 +7,129 @@ #include #include -#include "assert.h" +#include -int main() +TEST(GlobalErrorTest,BasicDiscard) { - std::string const textOfErrnoZero(strerror(0)); + GlobalError e; + EXPECT_TRUE(e.empty()); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Notice("%s Notice", "A")); + EXPECT_TRUE(e.empty()); + EXPECT_FALSE(e.empty(GlobalError::DEBUG)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); - equals(_error->empty(), true); - equals(_error->PendingError(), false); - equals(_error->Notice("%s Notice", "A"), false); - equals(_error->empty(), true); - equals(_error->empty(GlobalError::DEBUG), false); - equals(_error->PendingError(), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - std::string text; - equals(_error->PopMessage(text), false); - equals(_error->PendingError(), true); - equals(text, "A Notice"); - equals(_error->PopMessage(text), true); - equals(text, "Something horrible happened 2 times"); - equals(_error->empty(GlobalError::DEBUG), true); - equals(_error->PendingError(), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - equals(_error->empty(GlobalError::FATAL), false); - _error->Discard(); + std::string text; + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_TRUE(e.PendingError()); + EXPECT_EQ("A Notice", text); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ("Something horrible happened 2 times", text); + EXPECT_TRUE(e.empty(GlobalError::DEBUG)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.empty(GlobalError::FATAL)); + e.Discard(); - equals(_error->empty(), true); - equals(_error->PendingError(), false); - equals(_error->Notice("%s Notice", "A"), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - equals(_error->empty(GlobalError::NOTICE), false); - _error->PushToStack(); - equals(_error->empty(GlobalError::NOTICE), true); - equals(_error->PendingError(), false); - equals(_error->Warning("%s Warning", "A"), false); - equals(_error->empty(GlobalError::ERROR), true); - equals(_error->PendingError(), false); - _error->RevertToStack(); - equals(_error->empty(GlobalError::ERROR), false); - equals(_error->PendingError(), true); - equals(_error->PopMessage(text), false); - equals(_error->PendingError(), true); - equals(text, "A Notice"); - equals(_error->PopMessage(text), true); - equals(text, "Something horrible happened 2 times"); - equals(_error->PendingError(), false); - equals(_error->empty(), true); - - equals(_error->Notice("%s Notice", "A"), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - equals(_error->empty(GlobalError::NOTICE), false); - _error->PushToStack(); - equals(_error->empty(GlobalError::NOTICE), true); - equals(_error->PendingError(), false); - equals(_error->Warning("%s Warning", "A"), false); - equals(_error->empty(GlobalError::ERROR), true); - equals(_error->PendingError(), false); - _error->MergeWithStack(); - equals(_error->empty(GlobalError::ERROR), false); - equals(_error->PendingError(), true); - equals(_error->PopMessage(text), false); - equals(_error->PendingError(), true); - equals(text, "A Notice"); - equals(_error->PopMessage(text), true); - equals(text, "Something horrible happened 2 times"); - equals(_error->PendingError(), false); - equals(_error->empty(), false); - equals(_error->PopMessage(text), false); - equals(text, "A Warning"); - equals(_error->empty(), true); - - errno = 0; - equals(_error->Errno("errno", "%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->empty(), false); - equals(_error->PendingError(), true); - equals(_error->PopMessage(text), true); - equals(_error->PendingError(), false); - equals(text, std::string("Something horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")")); - equals(_error->empty(), true); + EXPECT_TRUE(e.empty()); + EXPECT_FALSE(e.PendingError()); +} +TEST(GlobalErrorTest,StackPushing) +{ + GlobalError e; + EXPECT_FALSE(e.Notice("%s Notice", "A")); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.empty(GlobalError::NOTICE)); + e.PushToStack(); + EXPECT_TRUE(e.empty(GlobalError::NOTICE)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Warning("%s Warning", "A")); + EXPECT_TRUE(e.empty(GlobalError::ERROR)); + EXPECT_FALSE(e.PendingError()); + e.RevertToStack(); + EXPECT_FALSE(e.empty(GlobalError::ERROR)); + EXPECT_TRUE(e.PendingError()); - std::string longText; - for (size_t i = 0; i < 500; ++i) - longText.append("a"); - equals(_error->Error("%s horrible %s %d times", longText.c_str(), "happened", 2), false); - equals(_error->PopMessage(text), true); - equals(text, std::string(longText).append(" horrible happened 2 times")); + std::string text; + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_TRUE(e.PendingError()); + EXPECT_EQ("A Notice", text); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ("Something horrible happened 2 times", text); + EXPECT_FALSE(e.PendingError()); + EXPECT_TRUE(e.empty()); - equals(_error->Errno("errno", "%s horrible %s %d times", longText.c_str(), "happened", 2), false); - equals(_error->PopMessage(text), true); - equals(text, std::string(longText).append(" horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")")); + EXPECT_FALSE(e.Notice("%s Notice", "A")); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.empty(GlobalError::NOTICE)); + e.PushToStack(); + EXPECT_TRUE(e.empty(GlobalError::NOTICE)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Warning("%s Warning", "A")); + EXPECT_TRUE(e.empty(GlobalError::ERROR)); + EXPECT_FALSE(e.PendingError()); + e.MergeWithStack(); + EXPECT_FALSE(e.empty(GlobalError::ERROR)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_TRUE(e.PendingError()); + EXPECT_EQ("A Notice", text); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ("Something horrible happened 2 times", text); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.empty()); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_EQ("A Warning", text); + EXPECT_TRUE(e.empty()); +} +TEST(GlobalErrorTest,Errno) +{ + GlobalError e; + std::string const textOfErrnoZero(strerror(0)); + errno = 0; + EXPECT_FALSE(e.Errno("errno", "%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_FALSE(e.empty()); + EXPECT_TRUE(e.PendingError()); + std::string text; + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_FALSE(e.PendingError()); + EXPECT_EQ(std::string("Something horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")"), text); + EXPECT_TRUE(e.empty()); +} +TEST(GlobalErrorTest,LongMessage) +{ + GlobalError e; + std::string const textOfErrnoZero(strerror(0)); + errno = 0; + std::string text, longText; + for (size_t i = 0; i < 500; ++i) + longText.append("a"); + EXPECT_FALSE(e.Error("%s horrible %s %d times", longText.c_str(), "happened", 2)); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ(std::string(longText).append(" horrible happened 2 times"), text); - equals(_error->Warning("Репозиторий не обновлён и будут %d %s", 4, "test"), false); - equals(_error->PopMessage(text), false); - equals(text, "Репозиторий не обновлён и будут 4 test"); + EXPECT_FALSE(e.Errno("errno", "%s horrible %s %d times", longText.c_str(), "happened", 2)); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ(std::string(longText).append(" horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")"), text); +} +TEST(GlobalErrorTest,UTF8Message) +{ + GlobalError e; + std::string text; - longText.clear(); - for (size_t i = 0; i < 50; ++i) - longText.append("РезийбёбAZ"); - equals(_error->Warning("%s", longText.c_str()), false); - equals(_error->PopMessage(text), false); - equals(text, longText); + EXPECT_FALSE(e.Warning("Репозиторий не обновлён и будут %d %s", 4, "test")); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_EQ("Репозиторий не обновлён и будут 4 test", text); - return 0; + std::string longText; + for (size_t i = 0; i < 50; ++i) + longText.append("РезийбёбAZ"); + EXPECT_FALSE(e.Warning("%s", longText.c_str())); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_EQ(longText, text); } diff --git a/test/libapt/gtest_runner.cc b/test/libapt/gtest_runner.cc new file mode 100644 index 000000000..5823c55de --- /dev/null +++ b/test/libapt/gtest_runner.cc @@ -0,0 +1,19 @@ +#include +#include +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + int result = RUN_ALL_TESTS(); + if (_error->empty() == false) + { + std::cerr << "The test generated the following global messages:" << std::endl; + _error->DumpErrors(std::cerr); + // messages on the stack can't be right, error out + // even if we have no idea where this message came from + if (result == 0) + { + std::cerr << "All tests successful, but messages were generated, so still a failure!" << std::endl; + return 29; + } + } + return result; +} diff --git a/test/libapt/hashsums_test.cc b/test/libapt/hashsums_test.cc index d743faec6..c06d85e03 100644 --- a/test/libapt/hashsums_test.cc +++ b/test/libapt/hashsums_test.cc @@ -11,7 +11,9 @@ #include #include -#include "assert.h" +#include + +#include "file-helpers.h" template void Test(const char *In,const char *Out) { @@ -20,167 +22,201 @@ template void Test(const char *In,const char *Out) equals(Sum.Result().Value(), Out); } -template void TestMill(const char *Out) + + +TEST(HashSumsTest,SummationStrings) { - T Sum; +#define EXPECT_SUM(Summation, In, Out) \ + { \ + Summation Sum; \ + Sum.Add(In); \ + EXPECT_EQ(Sum.Result().Value(), Out) << #Summation << " for '" << In << "'"; \ + } + + // From FIPS PUB 180-1 + EXPECT_SUM(SHA1Summation, "","da39a3ee5e6b4b0d3255bfef95601890afd80709"); + EXPECT_SUM(SHA1Summation, "abc","a9993e364706816aba3e25717850c26c9cd0d89d"); + EXPECT_SUM(SHA1Summation, "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + "84983e441c3bd26ebaae4aa1f95129e5e54670f1"); + + // MD5 tests from RFC 1321 + EXPECT_SUM(MD5Summation, "","d41d8cd98f00b204e9800998ecf8427e"); + EXPECT_SUM(MD5Summation, "a","0cc175b9c0f1b6a831c399e269772661"); + EXPECT_SUM(MD5Summation, "abc","900150983cd24fb0d6963f7d28e17f72"); + EXPECT_SUM(MD5Summation, "message digest","f96b697d7cb7938d525a2f31aaf161d0"); + EXPECT_SUM(MD5Summation, "abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b"); + EXPECT_SUM(MD5Summation, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + "d174ab98d277d9f5a5611c2c9f419d9f"); + EXPECT_SUM(MD5Summation, "12345678901234567890123456789012345678901234567890123456789012345678901234567890", + "57edf4a22be3c955ac49da2e2107b67a"); - const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - unsigned Count = 1000000; - for (; Count != 0;) + // SHA-256, From FIPS 180-2 + EXPECT_SUM(SHA256Summation, "", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); + EXPECT_SUM(SHA256Summation, "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"); + + // SHA-512 + EXPECT_SUM(SHA512Summation, "", + "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce" + "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); + EXPECT_SUM(SHA512Summation, "abc", + "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" + "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); + + + EXPECT_SUM(MD5Summation, "The quick brown fox jumps over the lazy dog", "9e107d9d372bb6826bd81d3542a419d6"); + EXPECT_SUM(MD5Summation, "The quick brown fox jumps over the lazy dog.", "e4d909c290d0fb1ca068ffaddf22cbd0"); + EXPECT_SUM(SHA1Summation, "The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"); + EXPECT_SUM(SHA1Summation, "The quick brown fox jumps over the lazy cog", "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3"); + EXPECT_SUM(SHA256Summation, "The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"); + EXPECT_SUM(SHA256Summation, "The quick brown fox jumps over the lazy dog.", "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c"); + EXPECT_SUM(SHA512Summation, "The quick brown fox jumps over the lazy dog", "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb64" + "2e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6"); + EXPECT_SUM(SHA512Summation, "The quick brown fox jumps over the lazy dog.", "91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bb" + "c6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed"); + +#undef EXPECT_SUM +} +TEST(HashSumsTest, Mill) +{ + SHA1Summation Sum1; + + const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + size_t const AsCount = sizeof(As)/sizeof(As[0]) - 1; + size_t Count = 1000000; + while (Count != 0) { - if (Count >= 64) + if (Count >= AsCount) { - Sum.Add(As,64); - Count -= 64; + Sum1.Add(As, AsCount); + Count -= AsCount; } else { - Sum.Add(As,Count); + Sum1.Add(As,Count); Count = 0; } } - if (stringcasecmp(Sum.Result().Value(), Out) != 0) - abort(); + EXPECT_EQ("34aa973cd4c4daa4f61eeb2bdbad27316534016f", Sum1.Result().Value()); } -int main(int argc, char** argv) +static void getSummationString(char const * const type, std::string &sum) { - if (argc != 6) { - std::cout << "Five parameter expected - given " << argc << std::endl; - return 100; - } + /* to compare our result with an independent source we call the specific binaries + and read their result back. We do this with a little trick by claiming that the + summation is a compressor – and open the 'compressed' file later on directly to + read out the summation sum calculated by it */ + APT::Configuration::Compressor compress(type, ".ext", type, NULL, NULL, 99); + std::string name("apt-test-"); + name.append("hashsums").append(".XXXXXX"); + char * tempfile = strdup(name.c_str()); + int tempfile_fd = mkstemp(tempfile); + close(tempfile_fd); + ASSERT_NE(-1, tempfile_fd); + + FileFd fd; + ASSERT_TRUE(fd.Open(tempfile, FileFd::WriteOnly | FileFd::Empty, compress)); + ASSERT_TRUE(fd.IsOpen()); + FileFd input(__FILE__, FileFd::ReadOnly); + ASSERT_TRUE(input.IsOpen()); + ASSERT_NE(0, input.FileSize()); + ASSERT_TRUE(CopyFile(input, fd)); + ASSERT_TRUE(input.IsOpen()); + ASSERT_TRUE(fd.IsOpen()); + ASSERT_FALSE(fd.Failed()); + input.Close(); + fd.Close(); + ASSERT_TRUE(fd.Open(tempfile, FileFd::ReadOnly, FileFd::None)); + ASSERT_TRUE(fd.IsOpen()); + ASSERT_NE(0, fd.FileSize()); + ASSERT_FALSE(fd.Failed()); + unlink(tempfile); + free(tempfile); + char readback[2000]; + unsigned long long actual; + ASSERT_TRUE(fd.Read(readback, sizeof(readback)/sizeof(readback[0]), &actual)); + actual -= 4; + readback[actual] = '\0'; + sum = readback; +} +TEST(HashSumsTest, FileBased) +{ + std::string summation; - // test HashSumValue which doesn't calculate but just stores sums - { - std::string md5sum = argv[2]; - MD5SumValue md5(md5sum); - equals(md5.Value(), md5sum); - } - { - std::string sha1sum = argv[3]; - SHA1SumValue sha1(sha1sum); - equals(sha1.Value(), sha1sum); - } - { - std::string sha2sum = argv[4]; - SHA256SumValue sha2(sha2sum); - equals(sha2.Value(), sha2sum); - } - { - std::string sha2sum = argv[5]; - SHA512SumValue sha2(sha2sum); - equals(sha2.Value(), sha2sum); - } + getSummationString("md5sum", summation); + MD5SumValue md5(summation); + EXPECT_EQ(md5.Value(), summation); - // From FIPS PUB 180-1 - Test("","da39a3ee5e6b4b0d3255bfef95601890afd80709"); - Test("abc","a9993e364706816aba3e25717850c26c9cd0d89d"); - Test("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "84983e441c3bd26ebaae4aa1f95129e5e54670f1"); - TestMill("34aa973cd4c4daa4f61eeb2bdbad27316534016f"); + getSummationString("sha1sum", summation); + SHA1SumValue sha1(summation); + EXPECT_EQ(sha1.Value(), summation); - // MD5 tests from RFC 1321 - Test("","d41d8cd98f00b204e9800998ecf8427e"); - Test("a","0cc175b9c0f1b6a831c399e269772661"); - Test("abc","900150983cd24fb0d6963f7d28e17f72"); - Test("message digest","f96b697d7cb7938d525a2f31aaf161d0"); - Test("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b"); - Test("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "d174ab98d277d9f5a5611c2c9f419d9f"); - Test("12345678901234567890123456789012345678901234567890123456789012345678901234567890", - "57edf4a22be3c955ac49da2e2107b67a"); + getSummationString("sha256sum", summation); + SHA256SumValue sha256(summation); + EXPECT_EQ(sha256.Value(), summation); - // SHA-256, From FIPS 180-2 - Test("", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); - Test("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"); + getSummationString("sha512sum", summation); + SHA512SumValue sha512(summation); + EXPECT_EQ(sha512.Value(), summation); + + FileFd fd(__FILE__, FileFd::ReadOnly); + EXPECT_TRUE(fd.IsOpen()); - // SHA-512 - Test("", - "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce" - "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); - Test( - "abc", - "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" - "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); - - - Test("The quick brown fox jumps over the lazy dog", "9e107d9d372bb6826bd81d3542a419d6"); - Test("The quick brown fox jumps over the lazy dog.", "e4d909c290d0fb1ca068ffaddf22cbd0"); - Test("The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"); - Test("The quick brown fox jumps over the lazy cog", "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3"); - Test("The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"); - Test("The quick brown fox jumps over the lazy dog.", "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c"); - Test("The quick brown fox jumps over the lazy dog", "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb64" - "2e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6"); - Test("The quick brown fox jumps over the lazy dog.", "91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bb" - "c6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed"); - - FileFd fd(argv[1], FileFd::ReadOnly); - if (fd.IsOpen() == false) { - std::cerr << "Can't open file for 1. testing: " << argv[1] << std::endl; - return 1; - } { - Hashes hashes; - hashes.AddFD(fd.Fd()); - equals(argv[2], hashes.MD5.Result().Value()); - equals(argv[3], hashes.SHA1.Result().Value()); - equals(argv[4], hashes.SHA256.Result().Value()); - equals(argv[5], hashes.SHA512.Result().Value()); + Hashes hashes; + hashes.AddFD(fd.Fd()); + EXPECT_EQ(md5.Value(), hashes.MD5.Result().Value()); + EXPECT_EQ(sha1.Value(), hashes.SHA1.Result().Value()); + EXPECT_EQ(sha256.Value(), hashes.SHA256.Result().Value()); + EXPECT_EQ(sha512.Value(), hashes.SHA512.Result().Value()); } unsigned long sz = fd.FileSize(); fd.Seek(0); { - Hashes hashes; - hashes.AddFD(fd.Fd(), sz); - equals(argv[2], hashes.MD5.Result().Value()); - equals(argv[3], hashes.SHA1.Result().Value()); - equals(argv[4], hashes.SHA256.Result().Value()); - equals(argv[5], hashes.SHA512.Result().Value()); + Hashes hashes; + hashes.AddFD(fd.Fd(), sz); + EXPECT_EQ(md5.Value(), hashes.MD5.Result().Value()); + EXPECT_EQ(sha1.Value(), hashes.SHA1.Result().Value()); + EXPECT_EQ(sha256.Value(), hashes.SHA256.Result().Value()); + EXPECT_EQ(sha512.Value(), hashes.SHA512.Result().Value()); } fd.Seek(0); { - MD5Summation md5; - md5.AddFD(fd.Fd()); - equals(argv[2], md5.Result().Value()); + MD5Summation MD5; + MD5.AddFD(fd.Fd()); + EXPECT_EQ(md5.Value(), MD5.Result().Value()); } fd.Seek(0); { - SHA1Summation sha1; - sha1.AddFD(fd.Fd()); - equals(argv[3], sha1.Result().Value()); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd()); + EXPECT_EQ(sha1.Value(), SHA1.Result().Value()); } fd.Seek(0); { - SHA256Summation sha2; - sha2.AddFD(fd.Fd()); - equals(argv[4], sha2.Result().Value()); + SHA256Summation SHA2; + SHA2.AddFD(fd.Fd()); + EXPECT_EQ(sha256.Value(), SHA2.Result().Value()); } fd.Seek(0); { - SHA512Summation sha2; - sha2.AddFD(fd.Fd()); - equals(argv[5], sha2.Result().Value()); + SHA512Summation SHA2; + SHA2.AddFD(fd.Fd()); + EXPECT_EQ(sha512.Value(), SHA2.Result().Value()); } fd.Close(); - // test HashString code { - HashString sha2("SHA256", argv[4]); - equals(sha2.VerifyFile(argv[1]), true); + HashString sha2("SHA256", sha256.Value()); + EXPECT_TRUE(sha2.VerifyFile(__FILE__)); } { - HashString sha2("SHA512", argv[5]); - equals(sha2.VerifyFile(argv[1]), true); + HashString sha2("SHA512", sha512.Value()); + EXPECT_TRUE(sha2.VerifyFile(__FILE__)); } { - HashString sha2("SHA256:" + std::string(argv[4])); - equals(sha2.VerifyFile(argv[1]), true); + HashString sha2("SHA256:" + sha256.Value()); + EXPECT_TRUE(sha2.VerifyFile(__FILE__)); } - - return 0; } - - diff --git a/test/libapt/indexcopytosourcelist_test.cc b/test/libapt/indexcopytosourcelist_test.cc index e04ab261b..bec87601f 100644 --- a/test/libapt/indexcopytosourcelist_test.cc +++ b/test/libapt/indexcopytosourcelist_test.cc @@ -7,30 +7,35 @@ #include #include -#include "assert.h" +#include class NoCopy : public IndexCopy { -public: - std::string ConvertToSourceList(std::string CD,std::string Path) { - IndexCopy::ConvertToSourceList(CD, Path); - return Path; - } - bool GetFile(std::string &/*Filename*/, unsigned long long &/*Size*/) { return false; } - bool RewriteEntry(FILE * /*Target*/, std::string /*File*/) { return false; } - const char *GetFileName() { return NULL; } - const char *Type() { return NULL; } + public: + std::string ConvertToSourceList(std::string CD,std::string Path) { + IndexCopy::ConvertToSourceList(CD, Path); + return Path; + } + bool GetFile(std::string &/*Filename*/, unsigned long long &/*Size*/) { return false; } + bool RewriteEntry(FILE * /*Target*/, std::string /*File*/) { return false; } + const char *GetFileName() { return NULL; } + const char *Type() { return NULL; } }; -int main() { +TEST(IndexCopyTest, ConvertToSourceList) +{ NoCopy ic; std::string const CD("/media/cdrom/"); char const * Releases[] = { "unstable", "wheezy-updates", NULL }; char const * Components[] = { "main", "non-free", NULL }; - for (char const ** Release = Releases; *Release != NULL; ++Release) { - for (char const ** Component = Components; *Component != NULL; ++Component) { + for (char const ** Release = Releases; *Release != NULL; ++Release) + { + SCOPED_TRACE(std::string("Release ") + *Release); + for (char const ** Component = Components; *Component != NULL; ++Component) + { + SCOPED_TRACE(std::string("Component ") + *Component); std::string const Path = std::string("dists/") + *Release + "/" + *Component + "/"; std::string const Binary = Path + "binary-"; std::string const A = Binary + "armel/"; @@ -41,49 +46,47 @@ int main() { _config->Clear("APT"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "mips"); _config->Set("APT::Architectures::", "mips"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "kfreebsd-mips"); _config->Set("APT::Architectures::", "kfreebsd-mips"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "armel"); _config->Set("APT::Architectures::", "armel"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "armel"); _config->Set("APT::Architectures::", "armel"); _config->Set("APT::Architectures::", "mips"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); } } - - return 0; } diff --git a/test/libapt/install_progress_test.cc b/test/libapt/install_progress_test.cc index be1a3411e..a70fc9261 100644 --- a/test/libapt/install_progress_test.cc +++ b/test/libapt/install_progress_test.cc @@ -4,27 +4,17 @@ #include -#include "assert.h" +#include -int main() { +TEST(InstallProgressTest, FancyGetTextProgressStr) +{ APT::Progress::PackageManagerFancy p; - std::string s; - s= p.GetTextProgressStr(0.5, 60); - equals(s.size(), 60); - - s= p.GetTextProgressStr(0.5, 4); - equals(s, "[#.]"); - - s= p.GetTextProgressStr(0.1, 12); - equals(s, "[#.........]"); - - s= p.GetTextProgressStr(0.9, 12); - equals(s, "[#########.]"); + EXPECT_EQ(60, p.GetTextProgressStr(0.5, 60).size()); + EXPECT_EQ("[#.]", p.GetTextProgressStr(0.5, 4)); + EXPECT_EQ("[#.........]", p.GetTextProgressStr(0.1, 12)); + EXPECT_EQ("[#########.]", p.GetTextProgressStr(0.9, 12)); // deal with incorrect inputs gracefully (or should we die instead?) - s= p.GetTextProgressStr(-999, 12); - equals(s, ""); - - return 0; + EXPECT_EQ("", p.GetTextProgressStr(-999, 12)); } diff --git a/test/libapt/makefile b/test/libapt/makefile index e03b5e6aa..69a13fd92 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -8,124 +8,66 @@ APT_DOMAIN=none include ../../buildlib/defaults.mak .PHONY: test -test: - ./run-tests - -# Program for testing getLanguageCode -PROGRAM = getLanguages${BASENAME} -SLIBS = -lapt-pkg -SOURCE = getlanguages_test.cc -include $(PROGRAM_H) - -PROGRAM = getArchitectures${BASENAME} -SLIBS = -lapt-pkg -SOURCE = getarchitectures_test.cc -include $(PROGRAM_H) - -# Program for testing ParseDepends -PROGRAM = ParseDepends${BASENAME} -SLIBS = -lapt-pkg -SOURCE = parsedepends_test.cc -include $(PROGRAM_H) - -# Program for testing GetListOfFilesInDir -PROGRAM = GetListOfFilesInDir${BASENAME} -SLIBS = -lapt-pkg -SOURCE = getlistoffilesindir_test.cc -include $(PROGRAM_H) - -# Program for testing CommandLine reconstruction -PROGRAM = Commandline${BASENAME} -SLIBS = -lapt-pkg -SOURCE = commandline_test.cc -include $(PROGRAM_H) - -# Program for testing CommandLine reconstruction -PROGRAM = CommandlineAsString${BASENAME} -SLIBS = -lapt-pkg -SOURCE = commandlineasstring_test.cc -include $(PROGRAM_H) - -# Program for testing debians version comparing -PROGRAM = CompareVersion${BASENAME} -SLIBS = -lapt-pkg -SOURCE = compareversion_test.cc -include $(PROGRAM_H) - -# test the GlobalError stack class -PROGRAM = GlobalError${BASENAME} -SLIBS = -lapt-pkg -SOURCE = globalerror_test.cc -include $(PROGRAM_H) - -# test the different Hashsum classes -PROGRAM = HashSums${BASENAME} -SLIBS = -lapt-pkg -SOURCE = hashsums_test.cc -include $(PROGRAM_H) - -# test the strutils stuff -PROGRAM = StrUtil${BASENAME} -SLIBS = -lapt-pkg -SOURCE = strutil_test.cc -include $(PROGRAM_H) - -# test the URI parsing stuff -PROGRAM = URI${BASENAME} -SLIBS = -lapt-pkg -SOURCE = uri_test.cc -include $(PROGRAM_H) - -# test the Configuration class -PROGRAM = Configuration${BASENAME} -SLIBS = -lapt-pkg -SOURCE = configuration_test.cc -include $(PROGRAM_H) - -# test cdroms core FindPackages -PROGRAM = CdromFindPackages${BASENAME} -SLIBS = -lapt-pkg -SOURCE = cdromfindpackages_test.cc -include $(PROGRAM_H) - -# test cdroms index reduction for source.list -PROGRAM = CdromReduceSourceList${BASENAME} -SLIBS = -lapt-pkg -SOURCE = cdromreducesourcelist_test.cc -include $(PROGRAM_H) - -# test cdroms FindMountPointForDevice for udev autodetection -PROGRAM = CdromFindMountPointForDevice${BASENAME} -SLIBS = -lapt-pkg -SOURCE = cdromfindmountpointfordevice_test.cc -include $(PROGRAM_H) - -# test IndexCopy::ConvertToSourceList -PROGRAM = IndexCopyToSourceList${BASENAME} -SLIBS = -lapt-pkg -SOURCE = indexcopytosourcelist_test.cc - -# test fileutls -PROGRAM = FileUtl${BASENAME} -SLIBS = -lapt-pkg -SOURCE = fileutl_test.cc -include $(PROGRAM_H) - -# test tagfile -PROGRAM = PkgTagFile${BASENAME} -SLIBS = -lapt-pkg -SOURCE = tagfile_test.cc -include $(PROGRAM_H) - -# test sourcelist -PROGRAM = SourceList${BASENAME} -SLIBS = -lapt-pkg -SOURCE = sourcelist_test.cc -include $(PROGRAM_H) - -# test install-progress -PROGRAM = InstallProgress${BASENAME} -SLIBS = -lapt-pkg -SOURCE = install_progress_test.cc -include $(PROGRAM_H) - +test: $(BIN)/gtest$(BASENAME) + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=$(LIB) $(BIN)/gtest$(BASENAME) + +$(BIN)/gtest$(BASENAME): $(LIB)/gtest.a + +PROGRAM = gtest${BASENAME} +SLIBS = -lapt-pkg -pthread $(LIB)/gtest.a +LIB_MAKES = apt-pkg/makefile +SOURCE = gtest_runner.cc $(wildcard *-helpers.cc *_test.cc) +include $(PROGRAM_H) + + +MKDIRS += $(OBJ) $(LIB) +LOCAL=gtest +SOURCE=gtest-all +gtest-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(SOURCE))) + +# The rest of the file is based on the example found in +# /usr/share/doc/libgtest-dev/examples/make/Makefile +GTEST_DIR = /usr/src/gtest + +# Flags passed to the preprocessor. +# Set Google Test's header directory as a system directory, such that +# the compiler doesn't generate warnings in Google Test headers. +CPPFLAGS += -isystem $(GTEST_DIR)/include + +# Flags passed to the C++ compiler. +CXXFLAGS += -pthread +# disable some flags for gtest again +CXXFLAGS+= -Wno-missing-declarations +CXXFLAGS+= -Wno-missing-field-initializers +CXXFLAGS+= -Wno-suggest-attribute=pure -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn + +# All Google Test headers. Usually you shouldn't change this definition. +GTEST_HEADERS = /usr/include/gtest/*.h \ + /usr/include/gtest/internal/*.h + +# House-keeping build targets. +.PHONY: clean/gtest veryclean/gtest +clean: clean/gtest +clean/gtest: + rm -f $(gtest-OBJS) +veryclean: veryclean/gtest +veryclean/gtest: clean/gtest + rm -f $(LIB)/gtest.a + +# Usually you shouldn't tweak such internal variables, indicated by a +# trailing _. +GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) + +# Builds gtest.a +# For simplicity and to avoid depending on Google Test's +# implementation details, the dependencies specified below are +# conservative and not optimized. This is fine as Google Test +# compiles fast and for ordinary users its source rarely changes. +$(gtest-OBJS): $(GTEST_SRCS_) + echo Compiling $@ + $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c -o $@ $(GTEST_DIR)/src/$(notdir $(basename $@)).cc + +$(LIB)/gtest.a: $(OBJ)/gtest-all.o + echo Building static library $@ + -rm -f $@ + $(AR) $(ARFLAGS) $@ $^ diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index 5564e2bc0..1e0afb66c 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -7,230 +7,238 @@ #include #include -#include "assert.h" - -int main() { - std::string Package; - std::string Version; - unsigned int Op = 5; - unsigned int Null = 0; - bool StripMultiArch = true; - bool ParseArchFlags = false; - bool ParseRestrictionsList = false; - _config->Set("APT::Architecture","amd64"); - _config->Set("APT::Build-Profiles","stage1"); - - const char* Depends = - "debhelper:any (>= 5.0), " - "libdb-dev:any, " - "gettext:native (<= 0.12), " - "libcurl4-gnutls-dev:native | libcurl3-gnutls-dev (>> 7.15.5), " - "debiandoc-sgml, " - "apt (>= 0.7.25), " - "not-for-me [ !amd64 ], " - "only-for-me [ amd64 ], " - "any-for-me [ any ], " - "not-for-darwin [ !darwin-any ], " - "cpu-for-me [ any-amd64 ], " - "os-for-me [ linux-any ], " - "cpu-not-for-me [ any-armel ], " - "os-not-for-me [ kfreebsd-any ], " - "not-in-stage1 , " - "not-in-stage1-or-nodoc , " - "only-in-stage1 , " - "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), " - ; - - unsigned short runner = 0; +#include + +static void parseDependency(bool const StripMultiArch, bool const ParseArchFlags, bool const ParseRestrictionsList) +{ + std::string Package; + std::string Version; + unsigned int Op = 5; + unsigned int Null = 0; + _config->Set("APT::Architecture","amd64"); + _config->Set("APT::Build-Profiles","stage1"); + + const char* Depends = + "debhelper:any (>= 5.0), " + "libdb-dev:any, " + "gettext:native (<= 0.12), " + "libcurl4-gnutls-dev:native | libcurl3-gnutls-dev (>> 7.15.5), " + "debiandoc-sgml, " + "apt (>= 0.7.25), " + "not-for-me [ !amd64 ], " + "only-for-me [ amd64 ], " + "any-for-me [ any ], " + "not-for-darwin [ !darwin-any ], " + "cpu-for-me [ any-amd64 ], " + "os-for-me [ linux-any ], " + "cpu-not-for-me [ any-armel ], " + "os-not-for-me [ kfreebsd-any ], " + "not-in-stage1 , " + "not-in-stage1-or-nodoc , " + "only-in-stage1 , " + "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), " + ; + + // Stripping MultiArch is currently the default setting to not confuse + // non-MultiArch capable users of the library with "strange" extensions. + const char* Start = Depends; + const char* End = Depends + strlen(Depends); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("debhelper", Package); + else + EXPECT_EQ("debhelper:any", Package); + EXPECT_EQ("5.0", Version); + EXPECT_EQ(Null | pkgCache::Dep::GreaterEq, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("libdb-dev", Package); + else + EXPECT_EQ("libdb-dev:any", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("gettext", Package); + else + EXPECT_EQ("gettext:native", Package); + EXPECT_EQ("0.12", Version); + EXPECT_EQ(Null | pkgCache::Dep::LessEq, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("libcurl4-gnutls-dev", Package); + else + EXPECT_EQ("libcurl4-gnutls-dev:native", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::Or, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("libcurl3-gnutls-dev", Package); + EXPECT_EQ("7.15.5", Version); + EXPECT_EQ(Null | pkgCache::Dep::Greater, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("debiandoc-sgml", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("apt", Package); + EXPECT_EQ("0.7.25", Version); + EXPECT_EQ(Null | pkgCache::Dep::GreaterEq, Op); + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // not-for-me + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("only-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("any-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("not-for-darwin", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("cpu-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("os-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // cpu-not-for-me + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // os-not-for-me + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // not-in-stage1 + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // not-in-stage1-or-in-nodoc + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("only-in-stage1", Package); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("overlord-dev", Package); + else + EXPECT_EQ("overlord-dev:any", Package); + EXPECT_EQ("7.15.3~", Version); + EXPECT_EQ(Null | pkgCache::Dep::Equals | pkgCache::Dep::Or, Op); + + debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("overlord-dev", Package); + else + EXPECT_EQ("overlord-dev:native", Package); + EXPECT_EQ("7.15.5", Version); + EXPECT_EQ(Null | pkgCache::Dep::Greater, Op); +} + +// FIXME: This testcase is too big/complex +TEST(ParseDependsTest, Everything) +{ + bool StripMultiArch = true; + bool ParseArchFlags = false; + bool ParseRestrictionsList = false; + unsigned short runner = 0; + test: -// std::clog << (StripMultiArch ? "NO-Multi" : "Multi") << " " << (ParseArchFlags ? "Flags" : "NO-Flags") << std::endl; - - // Stripping MultiArch is currently the default setting to not confuse - // non-MultiArch capable users of the library with "strange" extensions. - const char* Start = Depends; - const char* End = Depends + strlen(Depends); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("debhelper", Package); - else - equals("debhelper:any", Package); - equals("5.0", Version); - equals(Null | pkgCache::Dep::GreaterEq, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("libdb-dev", Package); - else - equals("libdb-dev:any", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("gettext", Package); - else - equals("gettext:native", Package); - equals("0.12", Version); - equals(Null | pkgCache::Dep::LessEq, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("libcurl4-gnutls-dev", Package); - else - equals("libcurl4-gnutls-dev:native", Package); - equals("", Version); - equals(Null | pkgCache::Dep::Or, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("libcurl3-gnutls-dev", Package); - equals("7.15.5", Version); - equals(Null | pkgCache::Dep::Greater, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("debiandoc-sgml", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("apt", Package); - equals("0.7.25", Version); - equals(Null | pkgCache::Dep::GreaterEq, Op); - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // not-for-me - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("only-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("any-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("not-for-darwin", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("cpu-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("os-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // cpu-not-for-me - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // os-not-for-me - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseRestrictionsList == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // not-in-stage1 - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseRestrictionsList == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // not-in-stage1-or-in-nodoc - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseRestrictionsList == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("only-in-stage1", Package); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("overlord-dev", Package); - else - equals("overlord-dev:any", Package); - equals("7.15.3~", Version); - equals(Null | pkgCache::Dep::Equals | pkgCache::Dep::Or, Op); - - debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("overlord-dev", Package); - else - equals("overlord-dev:native", Package); - equals("7.15.5", Version); - equals(Null | pkgCache::Dep::Greater, Op); - - if (StripMultiArch == false) - if (ParseArchFlags == false) - ParseRestrictionsList = !ParseRestrictionsList; - ParseArchFlags = !ParseArchFlags; - StripMultiArch = !StripMultiArch; - - runner++; - if (runner < 8) - goto test; // this is the prove: tests are really evil ;) - - return 0; + { + SCOPED_TRACE(std::string("StripMultiArch: ") + (StripMultiArch ? "true" : "false")); + SCOPED_TRACE(std::string("ParseArchFlags: ") + (ParseArchFlags ? "true" : "false")); + SCOPED_TRACE(std::string("ParseRestrictionsList: ") + (ParseRestrictionsList ? "true" : "false")); + parseDependency(StripMultiArch, ParseArchFlags, ParseRestrictionsList); + } + if (StripMultiArch == false) + if (ParseArchFlags == false) + ParseRestrictionsList = !ParseRestrictionsList; + ParseArchFlags = !ParseArchFlags; + StripMultiArch = !StripMultiArch; + + runner++; + if (runner < 8) + goto test; // this is the prove: tests are really evil ;) } diff --git a/test/libapt/run-tests b/test/libapt/run-tests deleted file mode 100755 index 574e51e90..000000000 --- a/test/libapt/run-tests +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/sh -set -e - -DIR=$(readlink -f $(dirname $0)) -if [ -z "$MAKELEVEL" ]; then - echo 'Compiling the tests …' - (cd $DIR && make) - echo 'Running all testcases …' -fi -LDPATH="$DIR/../../build/bin" -EXT="_libapt_test" -EXIT_CODE=0 - -# detect if output is on a terminal (colorful) or better not -if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then - COLHIGH='\033[1;35m' - COLRESET='\033[0m' - TESTOKAY='\033[1;32mOKAY\033[0m' - TESTFAIL='\033[1;31mFAILED\033[0m' -else - COLHIGH='' - COLRESET='' - TESTOKAY='OK' - TESTFAIL='###FAILED###' -fi - -for testapp in $(ls ${LDPATH}/*$EXT) -do - name=$(basename ${testapp}) - NAME="${COLHIGH}${name}${COLRESET}" - tmppath="" - - if [ $name = "GetListOfFilesInDir${EXT}" ]; then - # TODO: very-low: move env creation to the actual test-app - tmppath=$(mktemp -d) - touch "${tmppath}/anormalfile" \ - "${tmppath}/01yet-anothernormalfile" \ - "${tmppath}/anormalapt.conf" \ - "${tmppath}/01yet-anotherapt.conf" \ - "${tmppath}/anormalapt.list" \ - "${tmppath}/01yet-anotherapt.list" \ - "${tmppath}/wrongextension.wron" \ - "${tmppath}/wrong-extension.wron" \ - "${tmppath}/strangefile." \ - "${tmppath}/s.t.r.a.n.g.e.f.i.l.e" \ - "${tmppath}/.hiddenfile" \ - "${tmppath}/.hiddenfile.conf" \ - "${tmppath}/.hiddenfile.list" \ - "${tmppath}/multi..dot" \ - "${tmppath}/multi.dot.conf" \ - "${tmppath}/multi.dot.list" \ - "${tmppath}/disabledfile.disabled" \ - "${tmppath}/disabledfile.conf.disabled" \ - "${tmppath}/disabledfile.list.disabled" \ - "${tmppath}/invälid.conf" \ - "${tmppath}/invalíd" \ - "${tmppath}/01invalíd" - mkdir "${tmppath}/invaliddir" \ - "${tmppath}/directory.conf" \ - "${tmppath}/directory.list" \ - "${tmppath}/directory.wron" \ - "${tmppath}/directory.list.disabled" - ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list" - ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list" - elif [ $name = "getLanguages${EXT}" ]; then - tmppath=$(mktemp -d) - touch "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tr" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tlh%5fDE" - elif [ $name = "HashSums${EXT}" ]; then - TMP="$(readlink -f "./${0}")" - tmppath="$TMP" - tmppath="${tmppath} $(md5sum $TMP | cut -d' ' -f 1)" - tmppath="${tmppath} $(sha1sum $TMP | cut -d' ' -f 1)" - tmppath="${tmppath} $(sha256sum $TMP | cut -d' ' -f 1)" - tmppath="${tmppath} $(sha512sum $TMP | cut -d' ' -f 1)" - elif [ $name = "CompareVersion${EXT}" ]; then - tmppath="${DIR}/versions.lst" - elif [ $name = "CdromFindPackages${EXT}" ]; then - tmppath=$(mktemp -d) - mkdir -p "${tmppath}/.disk" "${tmppath}/pool" \ - "${tmppath}/dists/stable/main/binary-i386" \ - "${tmppath}/dists/stable/main/source" \ - "${tmppath}/dists/stable/contrib/binary-amd64" \ - "${tmppath}/dists/stable/contrib/binary-all" \ - "${tmppath}/dists/unstable/main/binary-i386" \ - "${tmppath}/dists/unstable/main/i18n" \ - "${tmppath}/dists/unstable/main/source" \ - "${tmppath}/dists/broken/non-free/source" - touch "${tmppath}/dists/broken/.aptignr" \ - "${tmppath}/dists/stable/main/binary-i386/Packages" \ - "${tmppath}/dists/stable/main/binary-i386/Packages.bz2" \ - "${tmppath}/dists/stable/main/source/Sources.xz" \ - "${tmppath}/dists/stable/contrib/binary-amd64/Packages" \ - "${tmppath}/dists/stable/contrib/binary-amd64/Packages.gz" \ - "${tmppath}/dists/stable/contrib/binary-all/Packages" \ - "${tmppath}/dists/unstable/main/binary-i386/Packages.xz" \ - "${tmppath}/dists/unstable/main/binary-i386/Packages.lzma" \ - "${tmppath}/dists/unstable/main/i18n/Translation-en" \ - "${tmppath}/dists/unstable/main/i18n/Translation-de.bz2" \ - "${tmppath}/dists/unstable/main/source/Sources.xz" \ - "${tmppath}/dists/broken/non-free/source/Sources.gz" \ - "${tmppath}/dists/stable/Release.gpg" \ - "${tmppath}/dists/stable/Release" \ - "${tmppath}/dists/unstable/InRelease" \ - "${tmppath}/dists/broken/Release.gpg" - ln -s "${tmppath}/dists/unstable" "${tmppath}/dists/sid" - elif [ $name = "CdromFindMountPointForDevice${EXT}" ]; then - tmppath=$(mktemp) - echo 'rootfs / rootfs rw 0 0 -sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 -sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0 -/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0 -/dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0 -tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0' > $tmppath - elif [ $name = "FileUtl${EXT}" ]; then - tmppath="$(mktemp -d)" - fi - - echo -n "Testing with ${NAME} " - if MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} ; then - echo "$TESTOKAY" - else - echo "$TESTFAIL" - EXIT_CODE=1 - fi - - if [ -n "$tmppath" -a -d "$tmppath" ]; then - rm -rf "$tmppath" - fi -done -exit $EXIT_CODE diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc index 71aa54f1e..eb2d76c43 100644 --- a/test/libapt/sourcelist_test.cc +++ b/test/libapt/sourcelist_test.cc @@ -1,6 +1,5 @@ #include -#include #include #include @@ -9,26 +8,20 @@ #include #include -#include "assert.h" +#include -char *tempfile = NULL; -int tempfile_fd = -1; +#include "file-helpers.h" -static void remove_tmpfile(void) -{ - if (tempfile_fd > 0) - close(tempfile_fd); - if (tempfile != NULL) { - unlink(tempfile); - free(tempfile); - } -} +class SourceList : public pkgSourceList { + public: + using pkgSourceList::ParseFileDeb822; +}; -int main() +TEST(SourceListTest,ParseFileDeb822) { - _config->Set("APT::Sources::Use-Deb822", true); - - const char contents[] = "" + FileFd fd; + char * tempfile; + createTemporaryFile("parsefiledeb822", fd, &tempfile, "Types: deb\n" "URIs: http://ftp.debian.org/debian\n" "Suites: stable\n" @@ -39,22 +32,12 @@ int main() "Types: deb\n" "URIs: http://ftp.debian.org/debian\n" "Suites: unstable\n" - "Sections: main non-free\n" - ; - - FileFd fd; - atexit(remove_tmpfile); - tempfile = strdup("apt-test.XXXXXXXX"); - tempfile_fd = mkstemp(tempfile); - - /* (Re-)Open (as FileFd), write and seek to start of the temp file */ - equals(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite), true); - equals(fd.Write(contents, strlen(contents)), true); - equals(fd.Seek(0), true); + "Sections: main non-free\n"); + fd.Close(); - pkgSourceList sources(tempfile); - equals(sources.size(), 2); + SourceList sources; + EXPECT_EQ(2, sources.ParseFileDeb822(tempfile)); + EXPECT_EQ(2, sources.size()); - /* clean up handled by atexit handler, so just return here */ - return 0; + unlink(tempfile); } diff --git a/test/libapt/strutil_test.cc b/test/libapt/strutil_test.cc index 618f4daba..bc004fd66 100644 --- a/test/libapt/strutil_test.cc +++ b/test/libapt/strutil_test.cc @@ -1,96 +1,72 @@ #include - #include - #include #include -#include "assert.h" +#include -int main() +TEST(StrUtilTest,DeEscapeString) { - std::string input, output, expected; - - // no input - input = "foobar"; - expected = "foobar"; - output = DeEscapeString(input); - equals(output, expected); - + // nothing special + EXPECT_EQ("", DeEscapeString("")); + EXPECT_EQ("foobar", DeEscapeString("foobar")); // hex and octal - input = "foo\\040bar\\x0abaz"; - expected = "foo bar\nbaz"; - output = DeEscapeString(input); - equals(output, expected); - - // at the end - input = "foo\\040"; - expected = "foo "; - output = DeEscapeString(input); - equals(output, expected); - - // double escape - input = "foo\\\\ x"; - expected = "foo\\ x"; - output = DeEscapeString(input); - equals(output, expected); - - // double escape at the end - input = "\\\\foo\\\\"; - expected = "\\foo\\"; - output = DeEscapeString(input); - equals(output, expected); - - // the string that we actually need it for - input = "/media/Ubuntu\\04011.04\\040amd64"; - expected = "/media/Ubuntu 11.04 amd64"; - output = DeEscapeString(input); - equals(output, expected); + EXPECT_EQ("foo bar\nbaz", DeEscapeString("foo\\040bar\\x0abaz")); + EXPECT_EQ("foo ", DeEscapeString("foo\\040")); + EXPECT_EQ("\nbaz", DeEscapeString("\\x0abaz")); + EXPECT_EQ("/media/Ubuntu 11.04 amd64", DeEscapeString("/media/Ubuntu\\04011.04\\040amd64")); + // double slashes + EXPECT_EQ("foo\\ x", DeEscapeString("foo\\\\ x")); + EXPECT_EQ("\\foo\\", DeEscapeString("\\\\foo\\\\")); +} +TEST(StrUtilTest,StringSplitBasic) +{ + std::vector result = StringSplit("", ""); + EXPECT_EQ(result.size(), 0); - // Split - input = "status: libnet1:amd64: unpacked"; - std::vector result = StringSplit(input, ": "); - equals(result[0], "status"); - equals(result[1], "libnet1:amd64"); - equals(result[2], "unpacked"); - equals(result.size(), 3); + result = StringSplit("abc", ""); + EXPECT_EQ(result.size(), 0); - input = "status: libnet1:amd64: unpacked"; - result = StringSplit(input, "xxx"); - equals(result[0], input); - equals(result.size(), 1); + result = StringSplit("", "abc"); + EXPECT_EQ(result.size(), 1); - input = "status: libnet1:amd64: unpacked"; - result = StringSplit(input, ""); - equals(result.size(), 0); + result = StringSplit("abc", "b"); + ASSERT_EQ(result.size(), 2); + EXPECT_EQ(result[0], "a"); + EXPECT_EQ(result[1], "c"); - input = "x:y:z"; - result = StringSplit(input, ":", 2); - equals(result.size(), 2); - equals(result[0], "x"); - equals(result[1], "y:z"); + result = StringSplit("abc", "abc"); + ASSERT_EQ(result.size(), 2); + EXPECT_EQ(result[0], ""); + EXPECT_EQ(result[1], ""); +} +TEST(StrUtilTest,StringSplitDpkgStatus) +{ + std::string const input = "status: libnet1:amd64: unpacked"; + std::vector result = StringSplit(input, "xxx"); + ASSERT_EQ(result.size(), 1); + EXPECT_EQ(result[0], input); - input = "abc"; result = StringSplit(input, ""); - equals(result.size(), 0); - - // endswith - bool b; - input = "abcd"; - b = APT::String::Endswith(input, "d"); - equals(b, true); - - b = APT::String::Endswith(input, "cd"); - equals(b, true); - - b = APT::String::Endswith(input, "abcd"); - equals(b, true); - - b = APT::String::Endswith(input, "x"); - equals(b, false); - - b = APT::String::Endswith(input, "abcndefg"); - equals(b, false); - - return 0; + EXPECT_EQ(result.size(), 0); + + result = StringSplit(input, ": "); + ASSERT_EQ(result.size(), 3); + EXPECT_EQ(result[0], "status"); + EXPECT_EQ(result[1], "libnet1:amd64"); + EXPECT_EQ(result[2], "unpacked"); + + result = StringSplit("x:y:z", ":", 2); + ASSERT_EQ(result.size(), 2); + EXPECT_EQ(result[0], "x"); + EXPECT_EQ(result[1], "y:z"); +} +TEST(StrUtilTest,EndsWith) +{ + using APT::String::Endswith; + EXPECT_TRUE(Endswith("abcd", "d")); + EXPECT_TRUE(Endswith("abcd", "cd")); + EXPECT_TRUE(Endswith("abcd", "abcd")); + EXPECT_FALSE(Endswith("abcd", "x")); + EXPECT_FALSE(Endswith("abcd", "abcndefg")); } diff --git a/test/libapt/tagfile_test.cc b/test/libapt/tagfile_test.cc index aaf46e3e9..1bac75b55 100644 --- a/test/libapt/tagfile_test.cc +++ b/test/libapt/tagfile_test.cc @@ -8,55 +8,29 @@ #include #include -#include "assert.h" +#include -char *tempfile = NULL; -int tempfile_fd = -1; +#include "file-helpers.h" -static void remove_tmpfile(void) -{ - if (tempfile_fd > 0) - close(tempfile_fd); - if (tempfile != NULL) { - unlink(tempfile); - free(tempfile); - } -} - -int main() +TEST(TagFileTest,SingleField) { FileFd fd; - const char contents[] = "FieldA-12345678: the value of the field"; - atexit(remove_tmpfile); - tempfile = strdup("apt-test.XXXXXXXX"); - tempfile_fd = mkstemp(tempfile); - - /* (Re-)Open (as FileFd), write and seek to start of the temp file */ - equals(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite), true); - equals(fd.Write(contents, strlen(contents)), true); - equals(fd.Seek(0), true); + createTemporaryFile("singlefield", fd, NULL, "FieldA-12345678: the value of the field"); pkgTagFile tfile(&fd); pkgTagSection section; - equals(tfile.Step(section), true); - - /* It has one field */ - equals(section.Count(), 1); - - /* ... and it is called FieldA-12345678 */ - equals(section.Exists("FieldA-12345678"), true); - - /* its value is correct */ - equals(section.FindS("FieldA-12345678"), std::string("the value of the field")); - /* A non-existent field has an empty string as value */ - equals(section.FindS("FieldB-12345678"), std::string()); - - /* ... and Exists does not lie about missing fields... */ - equalsNot(section.Exists("FieldB-12345678"), true); - - /* There is only one section in this tag file */ - equals(tfile.Step(section), false); - - /* clean up handled by atexit handler, so just return here */ - return 0; + ASSERT_TRUE(tfile.Step(section)); + + // It has one field + EXPECT_EQ(1, section.Count()); + // ... and it is called FieldA-12345678 + EXPECT_TRUE(section.Exists("FieldA-12345678")); + // its value is correct + EXPECT_EQ("the value of the field", section.FindS("FieldA-12345678")); + // A non-existent field has an empty string as value + EXPECT_EQ("", section.FindS("FieldB-12345678")); + // ... and Exists does not lie about missing fields... + EXPECT_FALSE(section.Exists("FieldB-12345678")); + // There is only one section in this tag file + EXPECT_FALSE(tfile.Step(section)); } diff --git a/test/libapt/uri_test.cc b/test/libapt/uri_test.cc index 6559f1390..1662f51f0 100644 --- a/test/libapt/uri_test.cc +++ b/test/libapt/uri_test.cc @@ -1,124 +1,119 @@ #include - #include - #include +#include -#include "assert.h" - -int main() { - // Basic stuff - { - URI U("http://www.debian.org:90/temp/test"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(90, U.Port); - equals("www.debian.org", U.Host); - equals("/temp/test", U.Path); - } { - URI U("http://jgg:foo@ualberta.ca/blah"); - equals("http", U.Access); - equals("jgg", U.User); - equals("foo", U.Password); - equals(0, U.Port); - equals("ualberta.ca", U.Host); - equals("/blah", U.Path); - } { - URI U("file:/usr/bin/foo"); - equals("file", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("", U.Host); - equals("/usr/bin/foo", U.Path); - } { - URI U("cdrom:Moo Cow Rom:/debian"); - equals("cdrom", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("Moo Cow Rom", U.Host); - equals("/debian", U.Path); - } { - URI U("gzip:./bar/cow"); - equals("gzip", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals(".", U.Host); - equals("/bar/cow", U.Path); - } { - URI U("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb"); - equals("ftp", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("ftp.fr.debian.org", U.Host); - equals("/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb", U.Path); - } - - // RFC 2732 stuff - { - URI U("http://[1080::8:800:200C:417A]/foo"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("1080::8:800:200C:417A", U.Host); - equals("/foo", U.Path); - } { - URI U("http://[::FFFF:129.144.52.38]:80/index.html"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(80, U.Port); - equals("::FFFF:129.144.52.38", U.Host); - equals("/index.html", U.Path); - } { - URI U("http://[::FFFF:129.144.52.38:]:80/index.html"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(80, U.Port); - equals("::FFFF:129.144.52.38:", U.Host); - equals("/index.html", U.Path); - } { - URI U("http://[::FFFF:129.144.52.38:]/index.html"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("::FFFF:129.144.52.38:", U.Host); - equals("/index.html", U.Path); - } - /* My Evil Corruption of RFC 2732 to handle CDROM names! Fun for - the whole family! */ - { - URI U("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/"); - equals("cdrom", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("The Debian 1.2 disk, 1/2 R1:6", U.Host); - equals("/debian/", U.Path); - } { - URI U("cdrom:Foo Bar Cow/debian/"); - equals("cdrom", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("Foo Bar Cow", U.Host); - equals("/debian/", U.Path); - } - - // Percent-encoding. - { - URI U("ftp://foo:b%40r@example.org"); - equals("foo", U.User); - equals("b@r", U.Password); - equals("ftp://foo:b%40r@example.org/", (std::string) U); - } - - return 0; +TEST(URITest, BasicHTTP) +{ + URI U("http://www.debian.org:90/temp/test"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(90, U.Port); + EXPECT_EQ("www.debian.org", U.Host); + EXPECT_EQ("/temp/test", U.Path); + // Login data + U = URI("http://jgg:foo@ualberta.ca/blah"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("jgg", U.User); + EXPECT_EQ("foo", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("ualberta.ca", U.Host); + EXPECT_EQ("/blah", U.Path); +} +TEST(URITest, SingeSlashFile) +{ + URI U("file:/usr/bin/foo"); + EXPECT_EQ("file", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("", U.Host); + EXPECT_EQ("/usr/bin/foo", U.Path); +} +TEST(URITest, BasicCDROM) +{ + URI U("cdrom:Moo Cow Rom:/debian"); + EXPECT_EQ("cdrom", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("Moo Cow Rom", U.Host); + EXPECT_EQ("/debian", U.Path); +} +TEST(URITest, RelativeGzip) +{ + URI U("gzip:./bar/cow"); + EXPECT_EQ("gzip", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ(".", U.Host); + EXPECT_EQ("/bar/cow", U.Path); +} +TEST(URITest, NoSlashFTP) +{ + URI U("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb"); + EXPECT_EQ("ftp", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("ftp.fr.debian.org", U.Host); + EXPECT_EQ("/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb", U.Path); +} +TEST(URITest, RFC2732) +{ + URI U("http://[1080::8:800:200C:417A]/foo"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("1080::8:800:200C:417A", U.Host); + EXPECT_EQ("/foo", U.Path); + // with port + U = URI("http://[::FFFF:129.144.52.38]:80/index.html"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(80, U.Port); + EXPECT_EQ("::FFFF:129.144.52.38", U.Host); + EXPECT_EQ("/index.html", U.Path); + // extra colon + U = URI("http://[::FFFF:129.144.52.38:]:80/index.html"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(80, U.Port); + EXPECT_EQ("::FFFF:129.144.52.38:", U.Host); + EXPECT_EQ("/index.html", U.Path); + // extra colon port + U = URI("http://[::FFFF:129.144.52.38:]/index.html"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("::FFFF:129.144.52.38:", U.Host); + EXPECT_EQ("/index.html", U.Path); + // My Evil Corruption of RFC 2732 to handle CDROM names! + // Fun for the whole family! */ + U = URI("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/"); + EXPECT_EQ("cdrom", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("The Debian 1.2 disk, 1/2 R1:6", U.Host); + EXPECT_EQ("/debian/", U.Path); + // no brackets + U = URI("cdrom:Foo Bar Cow/debian/"); + EXPECT_EQ("cdrom", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("Foo Bar Cow", U.Host); + EXPECT_EQ("/debian/", U.Path); + // percent encoded + U = URI("ftp://foo:b%40r@example.org"); + EXPECT_EQ("foo", U.User); + EXPECT_EQ("b@r", U.Password); + EXPECT_EQ("ftp://foo:b%40r@example.org/", (std::string) U); } diff --git a/test/libapt/versions.lst b/test/libapt/versions.lst deleted file mode 100644 index 8dd8ebdc9..000000000 --- a/test/libapt/versions.lst +++ /dev/null @@ -1,106 +0,0 @@ -# List of -# ver1 ver2 ret -# Of versions worth testing -# 1 means that ver1 > ver2 -# -1 means that ver1 < ver2 -# 0 means that ver1 = ver2 -7.6p2-4 7.6-0 1 -1.0.3-3 1.0-1 1 -1.3 1.2.2-2 1 -1.3 1.2.2 1 - -# Important attributes -# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number) -#- . -1 -#p - -1 -#a - -1 -#z - -1 -#a . -1 -#z . -1 - -# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number) -#III-alpha9.8 III-alpha9.8-1.5 -1 - -# Epochs -1:0.4 10.3 1 -1:1.25-4 1:1.25-8 -1 -0:1.18.36 1.18.36 0 - -# native version -1.18.36 1.18.35 1 -0:1.18.36 1.18.35 1 - -# Funky, but allowed, characters in upstream version -9:1.18.36:5.4-20 10:0.5.1-22 -1 -9:1.18.36:5.4-20 9:1.18.36:5.5-1 -1 -9:1.18.36:5.4-20 9:1.18.37:4.3-22 -1 -1.18.36-0.17.35-18 1.18.36-19 1 - -# Junk -1:1.2.13-3 1:1.2.13-3.1 -1 -2.0.7pre1-4 2.0.7r-1 -1 - -# Test some properties of text strings -0-pre 0-pre 0 -0-pre 0-pree -1 - -1.1.6r2-2 1.1.6r-1 1 -2.6b2-1 2.6b-2 1 - -98.1p5-1 98.1-pre2-b6-2 -1 -0.4a6-2 0.4-1 1 - -1:3.0.5-2 1:3.0.5.1 -1 - -# #205960 -3.0~rc1-1 3.0-1 -1 - -# #573592 - debian policy 5.6.12 -1.0 1.0-0 0 -0.2 1.0-0 -1 -1.0 1.0-0+b1 -1 -1.0 1.0-0~ 1 - -# if a version includes a dash -# it should be the debrev dash - policy says so… -0:0-0-0 0-0 1 - -# do we like strange versions? Yes we like strange versions… -0 0 0 -0 00 0 - -# "steal" the testcases from cupt -1.2.3 1.2.3 0 # identical -4.4.3-2 4.4.3-2 0 # identical -1:2ab:5 1:2ab:5 0 # this is correct... -7:1-a:b-5 7:1-a:b-5 0 # and this -57:1.2.3abYZ+~-4-5 57:1.2.3abYZ+~-4-5 0 # and those too -1.2.3 0:1.2.3 0 # zero epoch -1.2.3 1.2.3-0 0 # zero revision -009 9 0 # zeroes... -009ab5 9ab5 0 # there as well -1.2.3 1.2.3-1 -1 # added non-zero revision -1.2.3 1.2.4 -1 # just bigger -1.2.4 1.2.3 1 # order doesn't matter -1.2.24 1.2.3 1 # bigger, eh? -0.10.0 0.8.7 1 # bigger, eh? -3.2 2.3 1 # major number rocks -1.3.2a 1.3.2 1 # letters rock -0.5.0~git 0.5.0~git2 -1 # numbers rock -2a 21 -1 # but not in all places -1.3.2a 1.3.2b -1 # but there is another letter -1:1.2.3 1.2.4 1 # epoch rocks -1:1.2.3 1:1.2.4 -1 # bigger anyway -1.2a+~bCd3 1.2a++ -1 # tilde doesn't rock -1.2a+~bCd3 1.2a+~ 1 # but first is longer! -5:2 304-2 1 # epoch rocks -5:2 304:2 -1 # so big epoch? -25:2 3:2 1 # 25 > 3, obviously -1:2:123 1:12:3 -1 # 12 > 2 -1.2-5 1.2-3-5 -1 # 1.2 < 1.2-3 -5.10.0 5.005 1 # preceding zeroes don't matters -3a9.8 3.10.2 -1 # letters are before all letter symbols -3a9.8 3~10 1 # but after the tilde -1.4+OOo3.0.0~ 1.4+OOo3.0.0-4 -1 # another tilde check -2.4.7-1 2.4.7-z -1 # revision comparing -1.002-1+b2 1.00 1 # whatever... -- cgit v1.2.3 From d382a0e48d36fe29f0bf8f33f78bad592a792619 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 16 Apr 2014 22:06:22 +0200 Subject: extract travis installs from build-depends automatically I forgot to add libgtest-dev to the list of packages to install on travis, so this slightly hacky oneliner might prevent us from having the same problem again if we happen to change dependencies again. Git-Dch: Ignore --- .travis.yml | 3 ++- prepare-release | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2d9194c28..b413134c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: cpp before_install: - sudo apt-get update -q - - sudo apt-get install -q --no-install-recommends dpkg-dev debhelper libdb-dev gettext libcurl4-gnutls-dev zlib1g-dev libbz2-dev xsltproc docbook-xsl docbook-xml po4a autotools-dev autoconf automake doxygen debiandoc-sgml stunnel4 + - sudo ./prepare-release travis-ci + - sudo apt-get install -q --no-install-recommends stunnel4 script: make && make test && test/integration/run-tests diff --git a/prepare-release b/prepare-release index 7b7fd1224..3c81a21cb 100755 --- a/prepare-release +++ b/prepare-release @@ -2,7 +2,6 @@ set -e cd "$(readlink -f $(dirname $0))" -dpkg-checkbuilddeps -d 'libxml2-utils' if [ -n "${GBP_BUILD_DIR}" ]; then cd "$GBP_BUILD_DIR" @@ -68,6 +67,8 @@ elif [ "$1" = 'post-build' ]; then echo >&2 'REMEMBER: Change to a valid distribution before release' fi + dpkg-checkbuilddeps -d 'libxml2-utils' + # check the manpages with each vendor for vendor-specific errors… find vendor -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do ln -sf ../vendor/${DISTRO}/apt-vendor.ent doc @@ -102,6 +103,8 @@ elif [ "$1" = 'buildlog' ]; then librarysymbolsfromfile "$2" shift done +elif [ "$1" = 'travis-ci' ]; then + apt-get install -q --no-install-recommends $(sed -n -e '/^Build-Depends: /,/^Build-Depends-Indep: / {p}' debian/control | sed -e 's#([^)]*)##g' -e 's#^Build-Depends\(-Indep\)\?: ##' | tr -d ',') else echo >&1 "Usage:\t$0 pre-export \t$0 post-build -- cgit v1.2.3 From ebe24b7ad56550f21f467b86ceab7f7209a876f6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 16 Apr 2014 22:47:25 +0200 Subject: support dist-upgrade options in full-upgrade dist-upgrade is supposed to be an alias for full-upgrade in apt, but dist-upgrade was the only command recognized of the two in the option and flags recognition code. --- apt-private/private-cmndline.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index 682be0a19..a21a9dc8c 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -116,7 +116,7 @@ static bool addArgumentsAPTConfig(std::vector &Args, char con static bool addArgumentsAPTGet(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("install", "remove", "purge", "upgrade", "dist-upgrade", - "dselect-upgrade", "autoremove")) + "dselect-upgrade", "autoremove", "full-upgrade")) { addArg(0, "show-progress", "DpkgPM::Progress", 0); addArg('f', "fix-broken", "APT::Get::Fix-Broken", 0); @@ -163,7 +163,7 @@ static bool addArgumentsAPTGet(std::vector &Args, char const if (CmdMatches("install", "remove", "purge", "upgrade", "dist-upgrade", "deselect-upgrade", "autoremove", "clean", "autoclean", "check", - "build-dep")) + "build-dep", "full-upgrade")) { addArg('s', "simulate", "APT::Get::Simulate", 0); addArg('s', "just-print", "APT::Get::Simulate", 0); -- cgit v1.2.3 From a3f63bc4acdc8d3914af34698c823c3b873a9beb Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 22 Apr 2014 15:10:19 +0200 Subject: apt-private/acqprogress.cc: fix output when ctrl-c is hit during apt update (LP: #1310548, closes: #744297) --- apt-private/acqprogress.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apt-private/acqprogress.cc b/apt-private/acqprogress.cc index fe7a45e12..0f5b53e50 100644 --- a/apt-private/acqprogress.cc +++ b/apt-private/acqprogress.cc @@ -267,7 +267,7 @@ bool AcqTextStatus::Pulse(pkgAcquire *Owner) else cout << '\r' << BlankLine << '\r' << Buffer << flush; if (_config->FindB("Apt::Color", false) == true) - cout << _config->Find("APT::Color::Neutral"); + cout << _config->Find("APT::Color::Neutral") << flush; memset(BlankLine,' ',strlen(Buffer)); BlankLine[strlen(Buffer)] = 0; -- cgit v1.2.3 From c6e00b107318e32284437f02285197154bee59bf Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 22 Apr 2014 15:14:03 +0200 Subject: Fix option name DPkg::Progress-Fancy in apt.8 manpage (LP: #1310506) --- doc/apt.8.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/apt.8.xml b/doc/apt.8.xml index 85e7276bf..bcad5ee7f 100644 --- a/doc/apt.8.xml +++ b/doc/apt.8.xml @@ -148,7 +148,7 @@ - The option DPkgPM::Progress-Fancy is enabled. + The option DPkg::Progress-Fancy is enabled. -- cgit v1.2.3 From 8535f9a04b9aa004a619c5ed5c92939c5ac65a74 Mon Sep 17 00:00:00 2001 From: Theppitak Karoonboonyanan Date: Tue, 22 Apr 2014 15:21:38 +0200 Subject: Updated Thai program translation (closes: #745120) --- po/th.po | 1983 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1010 insertions(+), 973 deletions(-) diff --git a/po/th.po b/po/th.po index d36c706cc..c3e2cefbc 100644 --- a/po/th.po +++ b/po/th.po @@ -1,16 +1,16 @@ # Thai translation of apt. -# Copyright (C) 2007-2012 Free Software Foundation, Inc. +# Copyright (C) 2007-2014 Free Software Foundation, Inc. # This file is distributed under the same license as the apt package. -# Theppiak Karoonboonyanan , 2007-2008, 2012. +# Theppiak Karoonboonyanan , 2007-2008, 2012, 2014. # Arthit Suriyawongkul , 2008. # msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team \n" -"POT-Creation-Date: 2014-04-10 10:18+0200\n" -"PO-Revision-Date: 2012-10-27 22:44+0700\n" -"Last-Translator: Theppitak Karoonboonyanan \n" +"POT-Creation-Date: 2014-04-18 16:21+0200\n" +"PO-Revision-Date: 2014-04-20 09:38+0700\n" +"Last-Translator: Theppitak Karoonboonyanan \n" "Language-Team: Thai \n" "Language: th\n" "MIME-Version: 1.0\n" @@ -254,6 +254,9 @@ msgid "" "See 'man apt-cdrom' for more information about the CD-ROM auto-detection and " "mount point." msgstr "" +"การตรวจซีดีรอมอัตโนมัติไม่พบซีดีรอมใดที่จุดเมานท์ปริยาย\n" +"คุณอาจลองใช้ตัวเลือก --cdrom เพื่อกำหนดจุดเมานท์ของซีดีรอมได้\n" +"อ่านข้อมูลเพิ่มเติมเกี่ยวกับการตรวจซีดีรอมอัตโนมัติและจุดเมานท์ได้จาก 'man apt-cdrom'" #: cmdline/apt-cdrom.cc:182 msgid "Repeat this process for the rest of the CDs in your set." @@ -292,19 +295,19 @@ msgstr "" " -o=? กำหนดตัวเลือกค่าตั้งเป็นรายตัว เช่น -o dir::cache=/tmp\n" #: cmdline/apt-get.cc:245 -#, fuzzy, c-format +#, c-format msgid "Can not find a package for architecture '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" +msgstr "ไม่พบแพกเกจสำหรับสถาปัตยกรรม '%s'" #: cmdline/apt-get.cc:327 -#, fuzzy, c-format +#, c-format msgid "Can not find a package '%s' with version '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" +msgstr "ไม่พบแพกเกจ '%s' ที่มีรุ่นเป็น '%s'" #: cmdline/apt-get.cc:330 -#, fuzzy, c-format +#, c-format msgid "Can not find a package '%s' with release '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" +msgstr "ไม่พบแพกเกจ '%s' ที่มีชุดจัดแจกเป็น '%s'" #: cmdline/apt-get.cc:367 #, c-format @@ -312,9 +315,9 @@ msgid "Picking '%s' as source package instead of '%s'\n" msgstr "จะเลือก '%s' เป็นแพกเกจซอร์สแทน '%s'\n" #: cmdline/apt-get.cc:423 -#, fuzzy, c-format +#, c-format msgid "Can not find version '%s' of package '%s'" -msgstr "จะละเลยรุ่น '%s' ที่ไม่มีอยู่ของแพกเกจ '%s'" +msgstr "ไม่พบรุ่น '%s' ของแพกเกจ '%s'" #: cmdline/apt-get.cc:454 #, c-format @@ -610,13 +613,12 @@ msgstr "" " APT นี้มีพลังของ Super Cow\n" #: cmdline/apt-helper.cc:35 -#, fuzzy msgid "Must specify at least one pair url/filename" -msgstr "ต้องระบุแพกเกจอย่างน้อยหนึ่งแพกเกจที่จะดาวน์โหลดซอร์สโค้ด" +msgstr "ต้องระบุคู่ URL, ชื่อแฟ้ม อย่างน้อยหนึ่งคู่" #: cmdline/apt-helper.cc:52 msgid "Download Failed" -msgstr "" +msgstr "ดาวน์โหลดไม่สำเร็จ" #: cmdline/apt-helper.cc:65 msgid "" @@ -630,6 +632,15 @@ msgid "" "\n" " This APT helper has Super Meep Powers.\n" msgstr "" +"วิธีใช้: apt-helper [ตัวเลือก] คำสั่ง\n" +" apt-helper [ตัวเลือก] download-file URI พาธปลายทาง\n" +"\n" +"apt-helper เป็นโปรแกรมช่วยเหลือภายในของ apt\n" +"\n" +"คำสั่ง:\n" +" download-file - ดาวน์โหลด URI ที่กำหนดลงในพาธปลายทาง\n" +"\n" +" โปรแกรมช่วยเหลือของ APT นี้มีพลัง Super Meep\n" #: cmdline/apt-mark.cc:68 #, c-format @@ -678,7 +689,6 @@ msgid "Executing dpkg failed. Are you root?" msgstr "เรียกทำงาน dpkg ไม่สำเร็จ คุณเป็น root หรือเปล่า?" #: cmdline/apt-mark.cc:392 -#, fuzzy msgid "" "Usage: apt-mark [options] {auto|manual} pkg1 [pkg2 ...]\n" "\n" @@ -712,6 +722,12 @@ msgstr "" "คำสั่ง:\n" " auto - ทำเครื่องหมายแพกเกจที่กำหนดให้เป็นการติดตั้งแบบอัตโนมัติ\n" " manual - ทำเครื่องหมายแพกเกจที่กำหนดให้เป็นการติดตั้งแบบเลือกเอง\n" +" hold - ทำเครื่องหมายแพกเกจที่กำหนดให้เป็นการคงรุ่น\n" +" unhold - ลบการทำเครื่องหมายการคงรุ่นจากแพกเกจที่กำหนด\n" +" showauto - แสดงรายชื่อของแพกเกจที่ติดตั้งแบบอัตโนมัติ\n" +" showmanual - แสดงรายชื่อของแพกเกจที่ติดตั้งแบบเลือกเอง\n" +" showhold - แสดงรายชื่อของแพกเกจที่คงรุ่นอยู่\n" +"\n" "ตัวเลือก:\n" " -h แสดงข้อความช่วยเหลือนี้\n" " -q แสดงผลลัพธ์แบบบันทึกลงแฟ้มได้ - ไม่ต้องแสดงความคืบหน้า\n" @@ -743,6 +759,23 @@ msgid "" "\n" " edit-sources - edit the source information file\n" msgstr "" +"วิธีใช้: apt [ตัวเลือก] คำสั่ง\n" +"\n" +"บรรทัดคำสั่งสำหรับ apt\n" +"คำสั่งพื้นฐาน:\n" +" list - แสดงรายชื่อแพกเกจที่มีชื่อตรงกับรูปแบบที่กำหนด\n" +" search - ค้นหาในคำบรรยายแพกเกจ\n" +" show - แสดงรายละเอียดของแพกเกจ\n" +"\n" +" update - ปรับข้อมูลรายชื่อของแพกเกจที่มี\n" +"\n" +" install - ติดตั้งแพกเกจ\n" +" remove - ถอดถอนแพกเกจ\n" +"\n" +" upgrade - ปรับรุ่นระบบโดยติดตั้ง/ปรับรุ่นแพกเกจต่างๆ\n" +" full-upgrade - ปรับรุ่นระบบโดยถอดถอน/ติดตั้ง/ปรับรุ่นแพกเกจต่างๆ\n" +"\n" +" edit-sources - แก้ไขแฟ้มข้อมูลแหล่งแพกเกจ\n" #: methods/cdrom.cc:203 #, c-format @@ -838,9 +871,9 @@ msgstr "หมดเวลารอเชื่อมต่อ" msgid "Server closed the connection" msgstr "เซิร์ฟเวอร์ปิดการเชื่อมต่อ" -#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1475 -#: apt-pkg/contrib/fileutl.cc:1484 apt-pkg/contrib/fileutl.cc:1489 -#: apt-pkg/contrib/fileutl.cc:1491 +#: methods/ftp.cc:353 methods/rsh.cc:202 apt-pkg/contrib/fileutl.cc:1478 +#: apt-pkg/contrib/fileutl.cc:1487 apt-pkg/contrib/fileutl.cc:1492 +#: apt-pkg/contrib/fileutl.cc:1494 msgid "Read error" msgstr "การอ่านข้อมูลผิดพลาด" @@ -853,9 +886,9 @@ msgid "Protocol corruption" msgstr "มีความเสียหายของโพรโทคอล" #: methods/ftp.cc:462 methods/rsh.cc:246 apt-pkg/contrib/fileutl.cc:875 -#: apt-pkg/contrib/fileutl.cc:1597 apt-pkg/contrib/fileutl.cc:1606 -#: apt-pkg/contrib/fileutl.cc:1611 apt-pkg/contrib/fileutl.cc:1613 -#: apt-pkg/contrib/fileutl.cc:1638 +#: apt-pkg/contrib/fileutl.cc:1600 apt-pkg/contrib/fileutl.cc:1609 +#: apt-pkg/contrib/fileutl.cc:1614 apt-pkg/contrib/fileutl.cc:1616 +#: apt-pkg/contrib/fileutl.cc:1641 msgid "Write error" msgstr "การเขียนข้อมูลผิดพลาด" @@ -985,12 +1018,12 @@ msgstr "ไม่สามารถเปิดหาที่อยู่ '%s'" #: methods/connect.cc:205 #, c-format msgid "Temporary failure resolving '%s'" -msgstr "เกิดข้อผิดพลาดชั่วคราวขณะเปิดหาที่อยู่ '%s'" +msgstr "เกิดความล้มเหลวชั่วคราวขณะเปิดหาที่อยู่ '%s'" #: methods/connect.cc:209 -#, fuzzy, c-format +#, c-format msgid "System error resolving '%s:%s'" -msgstr "เกิดปัญหาร้ายแรงบางอย่างขณะเปิดหาที่อยู่ '%s:%s' (%i - %s)" +msgstr "เกิดข้อผิดพลาดในระบบขณะเปิดหาที่อยู่ '%s:%s'" #: methods/connect.cc:211 #, c-format @@ -1022,6 +1055,8 @@ msgid "" "Clearsigned file isn't valid, got '%s' (does the network require " "authentication?)" msgstr "" +"แฟ้มที่เซ็นกำกับครอบข้อความมีเนื้อหาไม่ถูกต้อง ได้รับผลลัพธ์ " +"'%s' (เครือข่ายต้องยืนยันตัวบุคคลหรือไม่?)" #: methods/gpgv.cc:184 msgid "Unknown error executing gpgv" @@ -1109,9 +1144,99 @@ msgstr "เชื่อมต่อไม่สำเร็จ" msgid "Internal error" msgstr "ข้อผิดพลาดภายใน" -#: apt-private/private-list.cc:131 -msgid "Listing" +#: apt-private/acqprogress.cc:66 +msgid "Hit " +msgstr "เจอ " + +#: apt-private/acqprogress.cc:90 +msgid "Get:" +msgstr "ดึง:" + +#: apt-private/acqprogress.cc:121 +msgid "Ign " +msgstr "ข้าม " + +#: apt-private/acqprogress.cc:125 +msgid "Err " +msgstr "ปัญหา " + +#: apt-private/acqprogress.cc:146 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "ดาวน์โหลด %sB ใน %s (%sB/s)\n" + +#: apt-private/acqprogress.cc:236 +#, c-format +msgid " [Working]" +msgstr " [กำลังทำงาน]" + +#: apt-private/acqprogress.cc:297 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" msgstr "" +"เปลี่ยนแผ่น: กรุณาใส่แผ่นชื่อ\n" +" '%s'\n" +"ลงในไดรว์ %s แล้วกด enter\n" + +#: apt-private/private-cachefile.cc:93 +msgid "Correcting dependencies..." +msgstr "กำลังแก้ปัญหาความขึ้นต่อกันระหว่างแพกเกจ..." + +#: apt-private/private-cachefile.cc:96 +msgid " failed." +msgstr " ล้มเหลว" + +#: apt-private/private-cachefile.cc:99 +msgid "Unable to correct dependencies" +msgstr "ไม่สามารถแก้ปัญหาความขึ้นต่อกันระหว่างแพกเกจได้" + +#: apt-private/private-cachefile.cc:102 +msgid "Unable to minimize the upgrade set" +msgstr "ไม่สามารถจำกัดรายการปรับรุ่นให้น้อยที่สุดได้" + +#: apt-private/private-cachefile.cc:104 +msgid " Done" +msgstr " เสร็จแล้ว" + +#: apt-private/private-cachefile.cc:108 +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "คุณอาจต้องเรียก 'apt-get -f install' เพื่อแก้ปัญหาเหล่านี้" + +#: apt-private/private-cachefile.cc:111 +msgid "Unmet dependencies. Try using -f." +msgstr "รายการแพกเกจที่ต้องใช้ไม่ครบ กรุณาลองใช้ตัวเลือก -f" + +#: apt-private/private-cacheset.cc:35 apt-private/private-search.cc:47 +msgid "Sorting" +msgstr "กำลังเรียงลำดับ" + +#: apt-private/private-download.cc:31 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "*คำเตือน*: แพกเกจต่อไปนี้ไม่สามารถยืนยันแหล่งต้นตอได้!" + +#: apt-private/private-download.cc:35 +msgid "Authentication warning overridden.\n" +msgstr "จะข้ามการเตือนเกี่ยวกับการยืนยันแหล่งต้นตอ\n" + +#: apt-private/private-download.cc:40 apt-private/private-download.cc:47 +msgid "Some packages could not be authenticated" +msgstr "มีบางแพกเกจไม่สามารถยืนยันแหล่งต้นตอได้" + +#: apt-private/private-download.cc:45 +msgid "Install these packages without verification?" +msgstr "จะติดตั้งแพกเกจเหล่านี้โดยไม่ตรวจสอบหรือไม่?" + +#: apt-private/private-download.cc:54 apt-private/private-install.cc:209 +msgid "There are problems and -y was used without --force-yes" +msgstr "มีปัญหาบางประการ และมีการใช้ -y โดยไม่ระบุ --force-yes" + +#: apt-private/private-download.cc:86 apt-pkg/update.cc:77 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "ไม่สามารถดาวน์โหลด %s %s\n" #: apt-private/private-install.cc:81 msgid "Internal error, InstallPackages was called with broken packages!" @@ -1162,10 +1287,6 @@ msgstr "หลังจากการกระทำนี้ เนื้อ msgid "You don't have enough free space in %s." msgstr "คุณมีพื้นที่ว่างเหลือไม่พอใน %s" -#: apt-private/private-install.cc:209 apt-private/private-download.cc:54 -msgid "There are problems and -y was used without --force-yes" -msgstr "มีปัญหาบางประการ และมีการใช้ -y โดยไม่ระบุ --force-yes" - #: apt-private/private-install.cc:215 apt-private/private-install.cc:237 msgid "Trivial Only specified but this is not a trivial operation." msgstr "Trivial Only ถูกกำหนดไว้ แต่คำสั่งนี้ไม่ใช่คำสั่งเล็กน้อย" @@ -1323,129 +1444,128 @@ msgstr "แพกเกจที่แนะนำ:" msgid "Recommended packages:" msgstr "แพกเกจที่ควรใช้ร่วมกัน:" -#: apt-private/private-download.cc:31 -msgid "WARNING: The following packages cannot be authenticated!" -msgstr "*คำเตือน*: แพกเกจต่อไปนี้ไม่สามารถยืนยันแหล่งต้นตอได้!" - -#: apt-private/private-download.cc:35 -msgid "Authentication warning overridden.\n" -msgstr "จะข้ามการเตือนเกี่ยวกับการยืนยันแหล่งต้นตอ\n" - -#: apt-private/private-download.cc:40 apt-private/private-download.cc:47 -msgid "Some packages could not be authenticated" -msgstr "มีบางแพกเกจไม่สามารถยืนยันแหล่งต้นตอได้" - -#: apt-private/private-download.cc:45 -msgid "Install these packages without verification?" -msgstr "จะติดตั้งแพกเกจเหล่านี้โดยไม่ตรวจสอบหรือไม่?" +#: apt-private/private-list.cc:131 +msgid "Listing" +msgstr "กำลังแสดงรายชื่อ" -#: apt-private/private-download.cc:86 apt-pkg/update.cc:77 +#: apt-private/private-list.cc:164 #, c-format -msgid "Failed to fetch %s %s\n" -msgstr "ไม่สามารถดาวน์โหลด %s %s\n" +msgid "There is %i additional version. Please use the '-a' switch to see it" +msgid_plural "" +"There are %i additional versions. Please use the '-a' switch to see them." +msgstr[0] "มีอีก %i รุ่น กรุณาใช้ตัวเลือก '-a' หากต้องการดูเพิ่ม" + +#: apt-private/private-main.cc:23 +msgid "" +"NOTE: This is only a simulation!\n" +" apt-get needs root privileges for real execution.\n" +" Keep also in mind that locking is deactivated,\n" +" so don't depend on the relevance to the real current situation!" +msgstr "" +"หมายเหตุ: นี่เป็นเพียงการจำลองการทำงานเท่านั้น!\n" +" การทำงานจริงของ apt-get ต้องอาศัยสิทธิ์ผู้ดูแลระบบ\n" +" อย่าลืมด้วยว่าการล็อคก็ไม่ทำงานเช่นกัน\n" +" ดังนั้น อย่าถือผลลัพธ์นี้ว่าตรงกับสภาพความเป็นจริงของระบบ!" #: apt-private/private-output.cc:81 apt-private/private-show.cc:84 #: apt-private/private-show.cc:89 msgid "unknown" -msgstr "" +msgstr "ไม่ทราบ" -#: apt-private/private-output.cc:207 -#, fuzzy, c-format +#: apt-private/private-output.cc:211 +#, c-format msgid "[installed,upgradable to: %s]" -msgstr " [ติดตั้งอยู่]" +msgstr "[ติดตั้งอยู่,สามารถปรับรุ่นเป็น: %s]" -#: apt-private/private-output.cc:211 -#, fuzzy +#: apt-private/private-output.cc:215 msgid "[installed,local]" -msgstr " [ติดตั้งอยู่]" +msgstr "[ติดตั้งอยู่,ในเครื่อง]" -#: apt-private/private-output.cc:214 +#: apt-private/private-output.cc:218 msgid "[installed,auto-removable]" -msgstr "" +msgstr "[ติดตั้งอยู่,ถอดถอนอัตโนมัติได้]" -#: apt-private/private-output.cc:216 -#, fuzzy +#: apt-private/private-output.cc:220 msgid "[installed,automatic]" -msgstr " [ติดตั้งอยู่]" +msgstr "[ติดตั้งอยู่,อัตโนมัติ]" -#: apt-private/private-output.cc:218 -#, fuzzy +#: apt-private/private-output.cc:222 msgid "[installed]" -msgstr " [ติดตั้งอยู่]" +msgstr "[ติดตั้งอยู่]" -#: apt-private/private-output.cc:222 +#: apt-private/private-output.cc:226 #, c-format msgid "[upgradable from: %s]" -msgstr "" +msgstr "[สามารถปรับรุ่นจาก: %s]" -#: apt-private/private-output.cc:226 +#: apt-private/private-output.cc:230 msgid "[residual-config]" -msgstr "" +msgstr "[ค่าตั้งตกค้าง]" -#: apt-private/private-output.cc:326 +#: apt-private/private-output.cc:330 msgid "The following packages have unmet dependencies:" msgstr "แพกเกจต่อไปนี้ขาดแพกเกจที่ต้องใช้:" -#: apt-private/private-output.cc:416 +#: apt-private/private-output.cc:420 #, c-format msgid "but %s is installed" msgstr "แต่รุ่นที่ติดตั้งไว้คือ %s" -#: apt-private/private-output.cc:418 +#: apt-private/private-output.cc:422 #, c-format msgid "but %s is to be installed" msgstr "แต่รุ่นที่จะติดตั้งคือ %s" -#: apt-private/private-output.cc:425 +#: apt-private/private-output.cc:429 msgid "but it is not installable" msgstr "แต่ไม่สามารถติดตั้งได้" -#: apt-private/private-output.cc:427 +#: apt-private/private-output.cc:431 msgid "but it is a virtual package" msgstr "แต่แพกเกจนี้เป็นแพกเกจเสมือน" -#: apt-private/private-output.cc:430 +#: apt-private/private-output.cc:434 msgid "but it is not installed" msgstr "แต่ได้ติดตั้งไว้" -#: apt-private/private-output.cc:430 +#: apt-private/private-output.cc:434 msgid "but it is not going to be installed" msgstr "แต่แพกเกจนี้จะไม่ถูกติดตั้ง" -#: apt-private/private-output.cc:435 +#: apt-private/private-output.cc:439 msgid " or" msgstr " หรือ" -#: apt-private/private-output.cc:464 +#: apt-private/private-output.cc:468 msgid "The following NEW packages will be installed:" msgstr "จะติดตั้งแพกเกจ *ใหม่* ต่อไปนี้:" -#: apt-private/private-output.cc:490 +#: apt-private/private-output.cc:494 msgid "The following packages will be REMOVED:" msgstr "จะ *ลบ* แพกเกจต่อไปนี้:" -#: apt-private/private-output.cc:512 +#: apt-private/private-output.cc:516 msgid "The following packages have been kept back:" msgstr "จะคงรุ่นแพกเกจต่อไปนี้:" -#: apt-private/private-output.cc:533 +#: apt-private/private-output.cc:537 msgid "The following packages will be upgraded:" msgstr "จะปรับรุ่นแพกเกจต่อไปนี้ขึ้น:" -#: apt-private/private-output.cc:554 +#: apt-private/private-output.cc:558 msgid "The following packages will be DOWNGRADED:" msgstr "จะปรับรุ่นแพกเกจต่อไปนี้ *ลง*:" -#: apt-private/private-output.cc:574 +#: apt-private/private-output.cc:578 msgid "The following held packages will be changed:" msgstr "จะเปลี่ยนแปลงรายการคงรุ่นแพกเกจต่อไปนี้:" -#: apt-private/private-output.cc:629 +#: apt-private/private-output.cc:633 #, c-format msgid "%s (due to %s) " msgstr "%s (เนื่องจาก %s) " -#: apt-private/private-output.cc:637 +#: apt-private/private-output.cc:641 msgid "" "WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" @@ -1453,27 +1573,27 @@ msgstr "" "*คำเตือน*: แพกเกจที่จำเป็นต่อไปนี้จะถูกถอดถอน\n" "คุณ *ไม่ควร* ทำเช่นนี้ นอกจากคุณเข้าใจสิ่งที่จะทำ!" -#: apt-private/private-output.cc:668 +#: apt-private/private-output.cc:672 #, c-format msgid "%lu upgraded, %lu newly installed, " msgstr "ปรับรุ่นขึ้น %lu, ติดตั้งใหม่ %lu, " -#: apt-private/private-output.cc:672 +#: apt-private/private-output.cc:676 #, c-format msgid "%lu reinstalled, " msgstr "ติดตั้งซ้ำ %lu, " -#: apt-private/private-output.cc:674 +#: apt-private/private-output.cc:678 #, c-format msgid "%lu downgraded, " msgstr "ปรับรุ่นลง %lu, " -#: apt-private/private-output.cc:676 +#: apt-private/private-output.cc:680 #, c-format msgid "%lu to remove and %lu not upgraded.\n" msgstr "ถอดถอน %lu และไม่ปรับรุ่น %lu\n" -#: apt-private/private-output.cc:680 +#: apt-private/private-output.cc:684 #, c-format msgid "%lu not fully installed or removed.\n" msgstr "ติดตั้งหรือถอดถอนไม่ครบ %lu\n" @@ -1482,64 +1602,57 @@ msgstr "ติดตั้งหรือถอดถอนไม่ครบ %l #. e.g. "Do you want to continue? [Y/n] " #. The user has to answer with an input matching the #. YESEXPR/NOEXPR defined in your l10n. -#: apt-private/private-output.cc:702 +#: apt-private/private-output.cc:706 msgid "[Y/n]" -msgstr "" +msgstr "[Y/n]" #. TRANSLATOR: Yes/No question help-text: defaulting to N[o] #. e.g. "Should this file be removed? [y/N] " #. The user has to answer with an input matching the #. YESEXPR/NOEXPR defined in your l10n. -#: apt-private/private-output.cc:708 +#: apt-private/private-output.cc:712 msgid "[y/N]" -msgstr "" +msgstr "[y/N]" #. TRANSLATOR: "Yes" answer printed for a yes/no question if --assume-yes is set -#: apt-private/private-output.cc:719 +#: apt-private/private-output.cc:723 msgid "Y" -msgstr "" +msgstr "Y" #. TRANSLATOR: "No" answer printed for a yes/no question if --assume-no is set -#: apt-private/private-output.cc:725 +#: apt-private/private-output.cc:729 msgid "N" -msgstr "" +msgstr "N" -#: apt-private/private-output.cc:747 apt-pkg/cachefilter.cc:35 +#: apt-private/private-output.cc:751 apt-pkg/cachefilter.cc:35 #, c-format msgid "Regex compilation error - %s" msgstr "คอมไพล์นิพจน์เรกิวลาร์ไม่สำเร็จ - %s" -#: apt-private/private-cachefile.cc:93 -msgid "Correcting dependencies..." -msgstr "กำลังแก้ปัญหาความขึ้นต่อกันระหว่างแพกเกจ..." - -#: apt-private/private-cachefile.cc:96 -msgid " failed." -msgstr " ล้มเหลว" - -#: apt-private/private-cachefile.cc:99 -msgid "Unable to correct dependencies" -msgstr "ไม่สามารถแก้ปัญหาความขึ้นต่อกันระหว่างแพกเกจได้" - -#: apt-private/private-cachefile.cc:102 -msgid "Unable to minimize the upgrade set" -msgstr "ไม่สามารถจำกัดรายการปรับรุ่นให้น้อยที่สุดได้" +#: apt-private/private-search.cc:51 +msgid "Full Text Search" +msgstr "ค้นทั่วทั้งเนื้อความ" -#: apt-private/private-cachefile.cc:104 -msgid " Done" -msgstr " เสร็จแล้ว" +#: apt-private/private-show.cc:156 +#, c-format +msgid "There is %i additional record. Please use the '-a' switch to see it" +msgid_plural "" +"There are %i additional records. Please use the '-a' switch to see them." +msgstr[0] "มีอีก %i ระเบียน กรุณาใช้ตัวเลือก '-a' หากต้องการดูเพิ่ม" -#: apt-private/private-cachefile.cc:108 -msgid "You might want to run 'apt-get -f install' to correct these." -msgstr "คุณอาจต้องเรียก 'apt-get -f install' เพื่อแก้ปัญหาเหล่านี้" +#: apt-private/private-show.cc:163 +msgid "not a real package (virtual)" +msgstr "ไม่ใช่แพกเกจจริง (เสมือน)" -#: apt-private/private-cachefile.cc:111 -msgid "Unmet dependencies. Try using -f." -msgstr "รายการแพกเกจที่ต้องใช้ไม่ครบ กรุณาลองใช้ตัวเลือก -f" +#: apt-private/private-sources.cc:58 +#, c-format +msgid "Failed to parse %s. Edit again? " +msgstr "แจง %s ไม่สำเร็จ จะแก้ไขอีกครั้งหรือไม่? " -#: apt-private/private-cacheset.cc:35 apt-private/private-search.cc:47 -msgid "Sorting" -msgstr "" +#: apt-private/private-sources.cc:70 +#, c-format +msgid "Your '%s' file changed, please run 'apt-get update'." +msgstr "แฟ้ม '%s' ของคุณมีการเปลี่ยนแปลง กรุณาเรียก 'apt-get update'" #: apt-private/private-update.cc:31 msgid "The update command takes no arguments" @@ -1550,106 +1663,31 @@ msgid "Calculating upgrade... " msgstr "กำลังคำนวณการปรับรุ่น... " #: apt-private/private-upgrade.cc:30 -#, fuzzy msgid "Internal error, Upgrade broke stuff" -msgstr "เกิดข้อผิดพลาดภายใน: AllUpgrade ทำความเสียหาย" +msgstr "เกิดข้อผิดพลาดภายใน: การปรับรุ่นทำความเสียหาย" #: apt-private/private-upgrade.cc:32 msgid "Done" msgstr "เสร็จแล้ว" -#: apt-private/private-search.cc:51 -msgid "Full Text Search" -msgstr "" - -#: apt-private/private-show.cc:156 +#. Only warn if there are no sources.list.d. +#. Only warn if there is no sources.list file. +#: methods/mirror.cc:95 apt-inst/extract.cc:471 apt-pkg/acquire.cc:491 +#: apt-pkg/clean.cc:40 apt-pkg/init.cc:102 apt-pkg/init.cc:110 +#: apt-pkg/policy.cc:381 apt-pkg/sourcelist.cc:280 apt-pkg/sourcelist.cc:286 +#: apt-pkg/contrib/cdromutl.cc:205 apt-pkg/contrib/fileutl.cc:371 +#: apt-pkg/contrib/fileutl.cc:484 #, c-format -msgid "There is %i additional record. Please use the '-a' switch to see it" -msgid_plural "" -"There are %i additional records. Please use the '-a' switch to see them." -msgstr[0] "" - -#: apt-private/private-show.cc:163 -msgid "not a real package (virtual)" -msgstr "" - -#: apt-private/private-main.cc:23 -msgid "" -"NOTE: This is only a simulation!\n" -" apt-get needs root privileges for real execution.\n" -" Keep also in mind that locking is deactivated,\n" -" so don't depend on the relevance to the real current situation!" -msgstr "" -"หมายเหตุ: นี่เป็นเพียงการจำลองการทำงานเท่านั้น!\n" -" การทำงานจริงของ apt-get ต้องอาศัยสิทธิ์ผู้ดูแลระบบ\n" -" อย่าลืมด้วยว่าการล็อคก็ไม่ทำงานเช่นกัน\n" -" ดังนั้น อย่าถือผลลัพธ์นี้ว่าตรงกับสภาพความเป็นจริงของระบบ!" - -#: apt-private/private-sources.cc:58 -#, fuzzy, c-format -msgid "Failed to parse %s. Edit again? " -msgstr "ไม่สามารถเปลี่ยนชื่อ %s ไปเป็น %s" +msgid "Unable to read %s" +msgstr "ไม่สามารถอ่าน %s" -#: apt-private/private-sources.cc:70 +#: methods/mirror.cc:101 methods/mirror.cc:130 apt-pkg/acquire.cc:497 +#: apt-pkg/acquire.cc:522 apt-pkg/clean.cc:46 apt-pkg/clean.cc:64 +#: apt-pkg/clean.cc:127 apt-pkg/contrib/cdromutl.cc:201 +#: apt-pkg/contrib/cdromutl.cc:235 #, c-format -msgid "Your '%s' file changed, please run 'apt-get update'." -msgstr "" - -#: apt-private/acqprogress.cc:66 -msgid "Hit " -msgstr "เจอ " - -#: apt-private/acqprogress.cc:90 -msgid "Get:" -msgstr "ดึง:" - -#: apt-private/acqprogress.cc:121 -msgid "Ign " -msgstr "ข้าม " - -#: apt-private/acqprogress.cc:125 -msgid "Err " -msgstr "ปัญหา " - -#: apt-private/acqprogress.cc:146 -#, c-format -msgid "Fetched %sB in %s (%sB/s)\n" -msgstr "ดาวน์โหลด %sB ใน %s (%sB/s)\n" - -#: apt-private/acqprogress.cc:236 -#, c-format -msgid " [Working]" -msgstr " [กำลังทำงาน]" - -#: apt-private/acqprogress.cc:297 -#, c-format -msgid "" -"Media change: please insert the disc labeled\n" -" '%s'\n" -"in the drive '%s' and press enter\n" -msgstr "" -"เปลี่ยนแผ่น: กรุณาใส่แผ่นชื่อ\n" -" '%s'\n" -"ลงในไดรว์ %s แล้วกด enter\n" - -#. Only warn if there are no sources.list.d. -#. Only warn if there is no sources.list file. -#: methods/mirror.cc:95 apt-inst/extract.cc:471 -#: apt-pkg/contrib/cdromutl.cc:205 apt-pkg/contrib/fileutl.cc:371 -#: apt-pkg/contrib/fileutl.cc:484 apt-pkg/sourcelist.cc:280 -#: apt-pkg/sourcelist.cc:286 apt-pkg/acquire.cc:491 apt-pkg/init.cc:102 -#: apt-pkg/init.cc:110 apt-pkg/clean.cc:40 apt-pkg/policy.cc:381 -#, c-format -msgid "Unable to read %s" -msgstr "ไม่สามารถอ่าน %s" - -#: methods/mirror.cc:101 methods/mirror.cc:130 apt-pkg/contrib/cdromutl.cc:201 -#: apt-pkg/contrib/cdromutl.cc:235 apt-pkg/acquire.cc:497 -#: apt-pkg/acquire.cc:522 apt-pkg/clean.cc:46 apt-pkg/clean.cc:64 -#: apt-pkg/clean.cc:127 -#, c-format -msgid "Unable to change to %s" -msgstr "ไม่สามารถเปลี่ยนไดเรกทอรีไปยัง %s" +msgid "Unable to change to %s" +msgstr "ไม่สามารถเปลี่ยนไดเรกทอรีไปยัง %s" #. FIXME: fallback to a default mirror here instead #. and provide a config option to define that default @@ -1666,9 +1704,9 @@ msgid "Can not read mirror file '%s'" msgstr "ไม่สามารถอ่านแฟ้มแหล่งสำเนา '%s'" #: methods/mirror.cc:315 -#, fuzzy, c-format +#, c-format msgid "No entry found in mirror file '%s'" -msgstr "ไม่สามารถอ่านแฟ้มแหล่งสำเนา '%s'" +msgstr "ไม่พบรายการในแฟ้มแหล่งสำเนา '%s'" #: methods/mirror.cc:445 #, c-format @@ -1742,9 +1780,9 @@ msgstr "" " -o=? กำหนดตัวเลือกค่าตั้งเป็นรายตัว เช่น -o dir::cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:254 -#, fuzzy, c-format +#, c-format msgid "Unable to mkstemp %s" -msgstr "ไม่สามารถ stat %s" +msgstr "ไม่สามารถ mkstemp %s" #: cmdline/apt-extracttemplates.cc:259 apt-pkg/pkgcachegen.cc:1400 #, c-format @@ -1997,9 +2035,9 @@ msgstr "ไม่สามารถเปิด %s" #. skip spaces #. find end of word #: ftparchive/override.cc:68 -#, fuzzy, c-format +#, c-format msgid "Malformed override %s line %llu (%s)" -msgstr "แฟ้ม override %s ผิดรูปแบบที่บรรทัด %llu #1" +msgstr "แฟ้ม override %s ผิดรูปแบบที่บรรทัด %llu (%s)" #: ftparchive/override.cc:127 ftparchive/override.cc:201 #, c-format @@ -2119,83 +2157,6 @@ msgstr "" " -c=? อ่านแฟ้มค่าตั้งนี้\n" " -o=? กำหนดตัวเลือกค่าตั้งเป็นรายตัว เช่น -o dir::cache=/tmp\n" -#: apt-inst/contrib/extracttar.cc:124 -msgid "Failed to create pipes" -msgstr "สร้างไปป์ไม่สำเร็จ" - -#: apt-inst/contrib/extracttar.cc:151 -msgid "Failed to exec gzip " -msgstr "เรียก gzip ไม่สำเร็จ" - -#: apt-inst/contrib/extracttar.cc:188 apt-inst/contrib/extracttar.cc:218 -msgid "Corrupted archive" -msgstr "แฟ้มจัดเก็บเสียหาย" - -#: apt-inst/contrib/extracttar.cc:203 -msgid "Tar checksum failed, archive corrupted" -msgstr "checksum ของแฟ้ม tar ผิดพลาด แฟ้มจัดเก็บเสียหาย" - -#: apt-inst/contrib/extracttar.cc:308 -#, c-format -msgid "Unknown TAR header type %u, member %s" -msgstr "พบชนิด %u ของข้อมูลส่วนหัว TAR ที่ไม่รู้จัก ที่สมาชิก %s" - -#: apt-inst/contrib/arfile.cc:76 -msgid "Invalid archive signature" -msgstr "เอกลักษณ์ของแฟ้มจัดเก็บไม่ถูกต้อง" - -#: apt-inst/contrib/arfile.cc:84 -msgid "Error reading archive member header" -msgstr "เกิดข้อผิดพลาดขณะอ่านข้อมูลส่วนหัวของสมาชิกแฟ้มจัดเก็บ" - -#: apt-inst/contrib/arfile.cc:96 -#, c-format -msgid "Invalid archive member header %s" -msgstr "ข้อมูลส่วนหัว %s ของสมาชิกแฟ้มจัดเก็บไม่ถูกต้อง" - -#: apt-inst/contrib/arfile.cc:108 -msgid "Invalid archive member header" -msgstr "ข้อมูลส่วนหัวของสมาชิกแฟ้มจัดเก็บไม่ถูกต้อง" - -#: apt-inst/contrib/arfile.cc:137 -msgid "Archive is too short" -msgstr "แฟ้มจัดเก็บสั้นเกินไป" - -#: apt-inst/contrib/arfile.cc:141 -msgid "Failed to read the archive headers" -msgstr "อ่านข้อมูลส่วนหัวของแฟ้มจัดเก็บไม่สำเร็จ" - -#: apt-inst/filelist.cc:380 -msgid "DropNode called on still linked node" -msgstr "DropNode ถูกเรียกใช้กับโหนดที่ยังลิงก์อยู่" - -#: apt-inst/filelist.cc:412 -msgid "Failed to locate the hash element!" -msgstr "หาสมาชิกในตารางแฮชไม่สำเร็จ!" - -#: apt-inst/filelist.cc:459 -msgid "Failed to allocate diversion" -msgstr "จองเนื้อที่สำหรับ diversion ไม่สำเร็จ" - -#: apt-inst/filelist.cc:464 -msgid "Internal error in AddDiversion" -msgstr "ข้อผิดพลาดภายในที่ AddDiversion" - -#: apt-inst/filelist.cc:477 -#, c-format -msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" -msgstr "พยายามเขียนทับ diversion: %s -> %s กับ %s/%s" - -#: apt-inst/filelist.cc:506 -#, c-format -msgid "Double add of diversion %s -> %s" -msgstr "เพิ่ม diversion %s -> %s ซ้ำสอง" - -#: apt-inst/filelist.cc:549 -#, c-format -msgid "Duplicate conf file %s/%s" -msgstr "แฟ้มค่าตั้ง %s/%s ซ้ำ" - #: apt-inst/dirstream.cc:42 apt-inst/dirstream.cc:49 apt-inst/dirstream.cc:54 #, c-format msgid "Failed to write file %s" @@ -2224,11 +2185,11 @@ msgstr "ไดเรกทอรี %s ถูก divert" #: apt-inst/extract.cc:152 #, c-format msgid "The package is trying to write to the diversion target %s/%s" -msgstr "แพกเกจนี้พยายามเขียนลงปลายทางของ diversion %s/%s" +msgstr "แพกเกจนี้พยายามเขียนลงปลายทางของการเบนแฟ้ม %s/%s" #: apt-inst/extract.cc:162 apt-inst/extract.cc:306 msgid "The diversion path is too long" -msgstr "พาธของ diversion ยาวเกินไป" +msgstr "พาธของการเบนแฟ้มยาวเกินไป" #: apt-inst/extract.cc:249 #, c-format @@ -2258,6 +2219,83 @@ msgstr "แฟ้ม %s/%s เขียนทับแฟ้มในแพก msgid "Unable to stat %s" msgstr "ไม่สามารถ stat %s" +#: apt-inst/filelist.cc:380 +msgid "DropNode called on still linked node" +msgstr "DropNode ถูกเรียกใช้กับโหนดที่ยังลิงก์อยู่" + +#: apt-inst/filelist.cc:412 +msgid "Failed to locate the hash element!" +msgstr "หาสมาชิกในตารางแฮชไม่สำเร็จ!" + +#: apt-inst/filelist.cc:459 +msgid "Failed to allocate diversion" +msgstr "จองเนื้อที่สำหรับการเบนแฟ้มไม่สำเร็จ" + +#: apt-inst/filelist.cc:464 +msgid "Internal error in AddDiversion" +msgstr "ข้อผิดพลาดภายในที่ AddDiversion" + +#: apt-inst/filelist.cc:477 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "พยายามเขียนทับการเบนแฟ้ม: %s -> %s กับ %s/%s" + +#: apt-inst/filelist.cc:506 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "เพิ่มการเบนแฟ้ม %s -> %s ซ้ำสอง" + +#: apt-inst/filelist.cc:549 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "แฟ้มค่าตั้ง %s/%s ซ้ำ" + +#: apt-inst/contrib/arfile.cc:76 +msgid "Invalid archive signature" +msgstr "เอกลักษณ์ของแฟ้มจัดเก็บไม่ถูกต้อง" + +#: apt-inst/contrib/arfile.cc:84 +msgid "Error reading archive member header" +msgstr "เกิดข้อผิดพลาดขณะอ่านข้อมูลส่วนหัวของสมาชิกแฟ้มจัดเก็บ" + +#: apt-inst/contrib/arfile.cc:96 +#, c-format +msgid "Invalid archive member header %s" +msgstr "ข้อมูลส่วนหัว %s ของสมาชิกแฟ้มจัดเก็บไม่ถูกต้อง" + +#: apt-inst/contrib/arfile.cc:108 +msgid "Invalid archive member header" +msgstr "ข้อมูลส่วนหัวของสมาชิกแฟ้มจัดเก็บไม่ถูกต้อง" + +#: apt-inst/contrib/arfile.cc:137 +msgid "Archive is too short" +msgstr "แฟ้มจัดเก็บสั้นเกินไป" + +#: apt-inst/contrib/arfile.cc:141 +msgid "Failed to read the archive headers" +msgstr "อ่านข้อมูลส่วนหัวของแฟ้มจัดเก็บไม่สำเร็จ" + +#: apt-inst/contrib/extracttar.cc:124 +msgid "Failed to create pipes" +msgstr "สร้างไปป์ไม่สำเร็จ" + +#: apt-inst/contrib/extracttar.cc:151 +msgid "Failed to exec gzip " +msgstr "เรียก gzip ไม่สำเร็จ" + +#: apt-inst/contrib/extracttar.cc:188 apt-inst/contrib/extracttar.cc:218 +msgid "Corrupted archive" +msgstr "แฟ้มจัดเก็บเสียหาย" + +#: apt-inst/contrib/extracttar.cc:203 +msgid "Tar checksum failed, archive corrupted" +msgstr "checksum ของแฟ้ม tar ผิดพลาด แฟ้มจัดเก็บเสียหาย" + +#: apt-inst/contrib/extracttar.cc:308 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "พบชนิด %u ของข้อมูลส่วนหัว TAR ที่ไม่รู้จัก ที่สมาชิก %s" + #: apt-inst/deb/debfile.cc:47 apt-inst/deb/debfile.cc:54 #: apt-inst/deb/debfile.cc:63 #, c-format @@ -2273,340 +2311,447 @@ msgstr "ข้อผิดพลาดภายใน: ไม่พบสมา msgid "Unparsable control file" msgstr "ไม่สามารถแจงแฟ้มควบคุมได้" -#: apt-pkg/contrib/mmap.cc:79 -msgid "Can't mmap an empty file" -msgstr "ไม่สามารถ mmap แฟ้มเปล่า" +#: apt-pkg/acquire.cc:87 apt-pkg/cdrom.cc:816 +#, c-format +msgid "List directory %spartial is missing." +msgstr "ไม่มีไดเรกทอรีรายชื่อแพกเกจ %spartial" -#: apt-pkg/contrib/mmap.cc:111 +#: apt-pkg/acquire.cc:91 #, c-format -msgid "Couldn't duplicate file descriptor %i" -msgstr "ไม่สามารถทำซ้ำ file descriptor %i" +msgid "Archives directory %spartial is missing." +msgstr "ไม่มีไดเรกทอรีแพกเกจ %spartial" -#: apt-pkg/contrib/mmap.cc:119 +#: apt-pkg/acquire.cc:99 #, c-format -msgid "Couldn't make mmap of %llu bytes" -msgstr "ไม่สามารถสร้าง mmap ขนาด %llu ไบต์" +msgid "Unable to lock directory %s" +msgstr "ไม่สามารถล็อคไดเรกทอรี %s" -#: apt-pkg/contrib/mmap.cc:146 -msgid "Unable to close mmap" -msgstr "ไม่สามารถปิด mmap" +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:899 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "กำลังดาวน์โหลดแฟ้มที่ %li จาก %li (เหลืออีก %s)" -#: apt-pkg/contrib/mmap.cc:174 apt-pkg/contrib/mmap.cc:202 -msgid "Unable to synchronize mmap" -msgstr "ไม่สามารถปรับ mmap ให้ตรงกัน" +#: apt-pkg/acquire.cc:901 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "กำลังดาวน์โหลดแฟ้มที่ %li จาก %li" -#: apt-pkg/contrib/mmap.cc:290 +#: apt-pkg/acquire-item.cc:148 apt-pkg/contrib/fileutl.cc:2054 #, c-format -msgid "Couldn't make mmap of %lu bytes" -msgstr "ไม่สามารถสร้าง mmap ขนาด %lu ไบต์" +msgid "rename failed, %s (%s -> %s)." +msgstr "เปลี่ยนชื่อไม่สำเร็จ: %s (%s -> %s)" -#: apt-pkg/contrib/mmap.cc:322 -msgid "Failed to truncate file" -msgstr "ไม่สามารถตัดท้ายแฟ้ม" +#: apt-pkg/acquire-item.cc:163 +msgid "Hash Sum mismatch" +msgstr "ผลรวมแฮชไม่ตรงกัน" -#: apt-pkg/contrib/mmap.cc:341 +#: apt-pkg/acquire-item.cc:168 +msgid "Size mismatch" +msgstr "ขนาดไม่ตรงกัน" + +#: apt-pkg/acquire-item.cc:173 +msgid "Invalid file format" +msgstr "รูปแบบของแฟ้มไม่ถูกต้อง" + +#: apt-pkg/acquire-item.cc:1579 #, c-format msgid "" -"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Start. " -"Current value: %lu. (man 5 apt.conf)" +"Unable to find expected entry '%s' in Release file (Wrong sources.list entry " +"or malformed file)" msgstr "" -"MMap แบบพลวัตมีเนื้อที่ไม่พอ กรุณาเพิ่มขนาดของ APT::Cache-Start ค่าปัจจุบัน: %lu (man 5 " -"apt.conf)" +"ไม่พบรายการ '%s' ที่ต้องการในแฟ้ม Release (รายการ sources.list ไม่ถูกต้อง " +"หรือแฟ้มผิดรูปแบบ)" -#: apt-pkg/contrib/mmap.cc:446 +#: apt-pkg/acquire-item.cc:1595 #, c-format -msgid "" -"Unable to increase the size of the MMap as the limit of %lu bytes is already " -"reached." -msgstr "ไม่สามารถเพิ่มขนาดของ MMap เนื่องจากถึงขีดจำกัด %lu ไบต์แล้ว" +msgid "Unable to find hash sum for '%s' in Release file" +msgstr "ไม่พบผลรวมแฮชสำหรับ '%s' ในแฟ้ม Release" -#: apt-pkg/contrib/mmap.cc:449 -msgid "" -"Unable to increase size of the MMap as automatic growing is disabled by user." -msgstr "ไม่สามารถเพิ่มขนาดของ MMap เนื่องจากผู้ใช้ปิดการขยายขนาดอัตโนมัติ" +#: apt-pkg/acquire-item.cc:1637 +msgid "There is no public key available for the following key IDs:\n" +msgstr "ไม่มีกุญแจสาธารณะสำหรับกุญแจหมายเลขต่อไปนี้:\n" -#. d means days, h means hours, min means minutes, s means seconds -#: apt-pkg/contrib/strutl.cc:406 +#: apt-pkg/acquire-item.cc:1675 #, c-format -msgid "%lid %lih %limin %lis" -msgstr "%liวัน %liชม. %liนาที %liวิ" +msgid "" +"Release file for %s is expired (invalid since %s). Updates for this " +"repository will not be applied." +msgstr "" +"แฟ้ม Release สำหรับ %s หมดอายุแล้ว (ตั้งแต่ %s ที่แล้ว) จะไม่ใช้รายการปรับรุ่นต่างๆ " +"ของคลังแพกเกจนี้" -#. h means hours, min means minutes, s means seconds -#: apt-pkg/contrib/strutl.cc:413 +#: apt-pkg/acquire-item.cc:1697 #, c-format -msgid "%lih %limin %lis" -msgstr "%liชม. %liนาที %liวิ" +msgid "Conflicting distribution: %s (expected %s but got %s)" +msgstr "ชุดจัดแจกขัดแย้งกัน: %s (ต้องการ %s แต่พบ %s)" -#. min means minutes, s means seconds -#: apt-pkg/contrib/strutl.cc:420 +#: apt-pkg/acquire-item.cc:1727 #, c-format -msgid "%limin %lis" -msgstr "%liนาที %liวิ" +msgid "" +"An error occurred during the signature verification. The repository is not " +"updated and the previous index files will be used. GPG error: %s: %s\n" +msgstr "" +"เกิดข้อผิดพลาดขณะตรวจสอบลายเซ็น จะไม่ปรับข้อมูลคลังแพกเกจนี้ และจะใช้แฟ้มดัชนีเก่า " +"ข้อผิดพลาดจาก GPG: %s: %s\n" -#. s means seconds -#: apt-pkg/contrib/strutl.cc:425 +#. Invalid signature file, reject (LP: #346386) (Closes: #627642) +#: apt-pkg/acquire-item.cc:1737 apt-pkg/acquire-item.cc:1742 #, c-format -msgid "%lis" -msgstr "%liวิ" +msgid "GPG error: %s: %s" +msgstr "ข้อผิดพลาดจาก GPG: %s: %s" -#: apt-pkg/contrib/strutl.cc:1236 +#: apt-pkg/acquire-item.cc:1865 #, c-format -msgid "Selection %s not found" -msgstr "ไม่พบรายการเลือก %s" +msgid "" +"I wasn't able to locate a file for the %s package. This might mean you need " +"to manually fix this package. (due to missing arch)" +msgstr "ไม่พบแฟ้มสำหรับแพกเกจ %s คุณอาจต้องแก้ปัญหาแพกเกจนี้เอง (ไม่มี arch)" -#: apt-pkg/contrib/configuration.cc:519 +#: apt-pkg/acquire-item.cc:1931 #, c-format -msgid "Unrecognized type abbreviation: '%c'" -msgstr "พบตัวย่อของชนิดที่ข้อมูลไม่รู้จัก: '%c'" +msgid "Can't find a source to download version '%s' of '%s'" +msgstr "ไม่พบแหล่งที่จะดาวน์โหลดรุ่น '%s' ของ '%s' ได้" -#: apt-pkg/contrib/configuration.cc:633 +#: apt-pkg/acquire-item.cc:1989 #, c-format -msgid "Opening configuration file %s" -msgstr "ขณะเปิดแฟ้มค่าตั้ง %s" +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "แฟ้มดัชนีแพกเกจเสียหาย ไม่มีข้อมูล Filename: (ชื่อแฟ้ม) สำหรับแพกเกจ %s" -#: apt-pkg/contrib/configuration.cc:801 +#: apt-pkg/acquire-worker.cc:116 #, c-format -msgid "Syntax error %s:%u: Block starts with no name." -msgstr "ไวยากรณ์ผิดพลาด %s:%u: เริ่มบล็อคโดยไม่มีชื่อ" +msgid "The method driver %s could not be found." +msgstr "ไม่พบไดรเวอร์สำหรับวิธีการ %s" -#: apt-pkg/contrib/configuration.cc:820 +#: apt-pkg/acquire-worker.cc:118 #, c-format -msgid "Syntax error %s:%u: Malformed tag" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: แท็กผิดรูปแบบ" +msgid "Is the package %s installed?" +msgstr "ได้ติดตั้งแพกเกจ %s ไว้หรือไม่?" -#: apt-pkg/contrib/configuration.cc:837 +#: apt-pkg/acquire-worker.cc:169 #, c-format -msgid "Syntax error %s:%u: Extra junk after value" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังค่า" +msgid "Method %s did not start correctly" +msgstr "ไม่สามารถเรียกทำงานวิธีการ %s" -#: apt-pkg/contrib/configuration.cc:877 +#: apt-pkg/acquire-worker.cc:455 #, c-format -msgid "Syntax error %s:%u: Directives can only be done at the top level" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: สามารถใช้ directive ที่ระดับบนสุดได้เท่านั้น" +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "กรุณาใส่แผ่นชื่อ: '%s' ลงในไดรว์ '%s' แล้วกด enter" -#: apt-pkg/contrib/configuration.cc:884 +#: apt-pkg/algorithms.cc:265 #, c-format -msgid "Syntax error %s:%u: Too many nested includes" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: ใช้ include ซ้อนกันมากเกินไป" +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "จำเป็นต้องติดตั้งแพกเกจ %s ซ้ำ แต่หาตัวแพกเกจไม่พบ" -#: apt-pkg/contrib/configuration.cc:888 apt-pkg/contrib/configuration.cc:893 -#, c-format -msgid "Syntax error %s:%u: Included from here" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: include จากที่นี่" +#: apt-pkg/algorithms.cc:1086 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"ข้อผิดพลาด: pkgProblemResolver::Resolve สร้างคำตอบที่ทำให้เกิดแพกเกจเสีย " +"อาจเกิดจากแพกเกจที่ถูกกำหนดให้คงรุ่นไว้" -#: apt-pkg/contrib/configuration.cc:897 -#, c-format -msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: พบ directive '%s' ที่ไม่รองรับ" +#: apt-pkg/algorithms.cc:1088 +msgid "Unable to correct problems, you have held broken packages." +msgstr "ไม่สามารถแก้ปัญหาได้ คุณได้คงรุ่นแพกเกจที่เสียอยู่ไว้" -#: apt-pkg/contrib/configuration.cc:900 -#, c-format -msgid "Syntax error %s:%u: clear directive requires an option tree as argument" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: directive 'clear' ต้องมีอาร์กิวเมนต์เป็นลำดับชั้นตัวเลือก" +#: apt-pkg/cachefile.cc:94 +msgid "The package lists or status file could not be parsed or opened." +msgstr "ไม่สามารถแจงหรือเปิดรายชื่อแพกเกจหรือสถานะแพกเกจได้" -#: apt-pkg/contrib/configuration.cc:950 -#, c-format -msgid "Syntax error %s:%u: Extra junk at end of file" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังจบแฟ้ม" +#: apt-pkg/cachefile.cc:98 +msgid "You may want to run apt-get update to correct these problems" +msgstr "คุณอาจเรียก `apt-get update' เพื่อแก้ปัญหาเหล่านี้ได้" -#: apt-pkg/contrib/progress.cc:148 -#, c-format -msgid "%c%s... Error!" -msgstr "%c%s... ผิดพลาด!" +#: apt-pkg/cachefile.cc:116 +msgid "The list of sources could not be read." +msgstr "ไม่สามารถอ่านรายชื่อแหล่งแพกเกจได้" -#: apt-pkg/contrib/progress.cc:150 +#: apt-pkg/cacheset.cc:487 #, c-format -msgid "%c%s... Done" -msgstr "%c%s... เสร็จแล้ว" - -#: apt-pkg/contrib/progress.cc:181 -msgid "..." -msgstr "" - -#. Print the spinner -#: apt-pkg/contrib/progress.cc:197 -#, fuzzy, c-format -msgid "%c%s... %u%%" -msgstr "%c%s... เสร็จแล้ว" +msgid "Release '%s' for '%s' was not found" +msgstr "ไม่พบรุ่นย่อย '%s' ของ '%s'" -#: apt-pkg/contrib/cmndline.cc:121 +#: apt-pkg/cacheset.cc:490 #, c-format -msgid "Command line option '%c' [from %s] is not known." -msgstr "ไม่รู้จักตัวเลือกบรรทัดคำสั่ง '%c' [จาก %s]" +msgid "Version '%s' for '%s' was not found" +msgstr "ไม่พบรุ่น '%s' ของ '%s'" -#: apt-pkg/contrib/cmndline.cc:146 apt-pkg/contrib/cmndline.cc:155 -#: apt-pkg/contrib/cmndline.cc:163 +#: apt-pkg/cacheset.cc:601 #, c-format -msgid "Command line option %s is not understood" -msgstr "ไม่เข้าใจตัวเลือกบรรทัดคำสั่ง %s" +msgid "Couldn't find task '%s'" +msgstr "ไม่พบงานติดตั้ง '%s'" -#: apt-pkg/contrib/cmndline.cc:168 +#: apt-pkg/cacheset.cc:607 #, c-format -msgid "Command line option %s is not boolean" -msgstr "ตัวเลือกบรรทัดคำสั่ง %s ไม่ได้เป็นค่าบูลีน" +msgid "Couldn't find any package by regex '%s'" +msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" -#: apt-pkg/contrib/cmndline.cc:209 apt-pkg/contrib/cmndline.cc:230 +#: apt-pkg/cacheset.cc:613 #, c-format -msgid "Option %s requires an argument." -msgstr "ตัวเลือก %s ต้องมีอาร์กิวเมนต์" +msgid "Couldn't find any package by glob '%s'" +msgstr "ไม่พบแพกเกจที่ตรงกับ glob '%s'" -#: apt-pkg/contrib/cmndline.cc:243 apt-pkg/contrib/cmndline.cc:249 +#: apt-pkg/cacheset.cc:624 #, c-format -msgid "Option %s: Configuration item specification must have an =." -msgstr "ตัวเลือก %s: การกำหนดรายการค่าตั้งต้องมี =" +msgid "Can't select versions from package '%s' as it is purely virtual" +msgstr "ไม่สามารถเลือกรุ่นต่างๆ ของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" -#: apt-pkg/contrib/cmndline.cc:278 +#: apt-pkg/cacheset.cc:631 apt-pkg/cacheset.cc:638 #, c-format -msgid "Option %s requires an integer argument, not '%s'" -msgstr "ตัวเลือก %s ต้องการอาร์กิวเมนต์จำนวนเต็ม ไม่ใช่ '%s'" +msgid "" +"Can't select installed nor candidate version from package '%s' as it has " +"neither of them" +msgstr "" +"ไม่สามารถเลือกรุ่นที่ติดตั้งไว้หรือรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีทั้งสองอย่าง" -#: apt-pkg/contrib/cmndline.cc:309 +#: apt-pkg/cacheset.cc:645 #, c-format -msgid "Option '%s' is too long" -msgstr "ตัวเลือก '%s' ยาวเกินไป" +msgid "Can't select newest version from package '%s' as it is purely virtual" +msgstr "ไม่สามารถเลือกรุ่นใหม่ที่สุดของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" -#: apt-pkg/contrib/cmndline.cc:341 +#: apt-pkg/cacheset.cc:653 #, c-format -msgid "Sense %s is not understood, try true or false." -msgstr "ไม่เข้าใจค่าบูลีน %s กรุณาลองใช้ true หรือ false" +msgid "Can't select candidate version from package %s as it has no candidate" +msgstr "ไม่สามารถเลือกรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีรุ่นสำหรับติดตั้ง" -#: apt-pkg/contrib/cmndline.cc:391 +#: apt-pkg/cacheset.cc:661 #, c-format -msgid "Invalid operation %s" -msgstr "ไม่รู้จักคำสั่ง %s" +msgid "Can't select installed version from package %s as it is not installed" +msgstr "ไม่สามารถเลือกรุ่นที่ติดตั้งไว้ของแพกเกจ '%s' ได้ เนื่องจากแพกเกจไม่ได้ติดตั้งไว้" -#: apt-pkg/contrib/cdromutl.cc:65 +#: apt-pkg/cdrom.cc:497 apt-pkg/sourcelist.cc:347 #, c-format -msgid "Unable to stat the mount point %s" -msgstr "ไม่สามารถ stat จุดเมานท์ %s" - -#: apt-pkg/contrib/cdromutl.cc:246 -msgid "Failed to stat the cdrom" -msgstr "ไม่สามารถ stat ซีดีรอม" +msgid "Line %u too long in source list %s." +msgstr "บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s ยาวเกินไป" -#: apt-pkg/contrib/fileutl.cc:193 +#: apt-pkg/cdrom.cc:577 #, c-format -msgid "Not using locking for read only lock file %s" -msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่อ่านได้อย่างเดียว" +msgid "Using CD-ROM mount point %s\n" +msgstr "กำลังใช้จุดเมานท์ซีดีรอม %s\n" -#: apt-pkg/contrib/fileutl.cc:198 -#, c-format -msgid "Could not open lock file %s" -msgstr "ไม่สามารถเปิดแฟ้มล็อค %s" +#: apt-pkg/cdrom.cc:587 apt-pkg/cdrom.cc:657 apt-pkg/cdrom.cc:893 +msgid "Unmounting CD-ROM...\n" +msgstr "กำลังเลิกเมานท์ซีดีรอม...\n" -#: apt-pkg/contrib/fileutl.cc:221 -#, c-format -msgid "Not using locking for nfs mounted lock file %s" -msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่เมานท์ผ่าน nfs" +#: apt-pkg/cdrom.cc:592 +msgid "Waiting for disc...\n" +msgstr "กำลังรอแผ่น...\n" -#: apt-pkg/contrib/fileutl.cc:226 -#, c-format -msgid "Could not get lock %s" -msgstr "ไม่สามารถล็อค %s" +#: apt-pkg/cdrom.cc:602 +msgid "Mounting CD-ROM...\n" +msgstr "กำลังเมานท์ซีดีรอม...\n" -#: apt-pkg/contrib/fileutl.cc:363 apt-pkg/contrib/fileutl.cc:477 +#: apt-pkg/cdrom.cc:610 +msgid "Identifying... " +msgstr "กำลังตรวจสอบชื่อแผ่น... " + +#: apt-pkg/cdrom.cc:648 #, c-format -msgid "List of files can't be created as '%s' is not a directory" -msgstr "ไม่สามารถสร้างรายชื่อแฟ้มได้ เนื่องจาก '%s' ไม่ใช่ไดเรกทอรี" +msgid "Stored label: %s\n" +msgstr "ชื่อที่เก็บไว้: %s\n" -#: apt-pkg/contrib/fileutl.cc:397 +#: apt-pkg/cdrom.cc:672 +msgid "Scanning disc for index files...\n" +msgstr "กำลังสำรวจข้อมูลในแผ่นเพื่อหาแฟ้มดัชนี...\n" + +#: apt-pkg/cdrom.cc:722 #, c-format -msgid "Ignoring '%s' in directory '%s' as it is not a regular file" -msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่ใช่แฟ้มธรรมดา" +msgid "" +"Found %zu package indexes, %zu source indexes, %zu translation indexes and " +"%zu signatures\n" +msgstr "" +"พบดัชนีแพกเกจ %zu รายการ, ดัชนีซอร์ส %zu รายการ, ดัชนีคำแปล %zu รายการ และลายเซ็น " +"%zu รายการ\n" -#: apt-pkg/contrib/fileutl.cc:415 +#: apt-pkg/cdrom.cc:733 +msgid "" +"Unable to locate any package files, perhaps this is not a Debian Disc or the " +"wrong architecture?" +msgstr "ไม่พบแฟ้มแพกเกจใดๆ บางทีแผ่นนี้อาจจะไม่ใช่แผ่นเดเบียน หรือสถาปัตยกรรมอาจไม่ถูกต้อง" + +#: apt-pkg/cdrom.cc:760 #, c-format -msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" -msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่มีส่วนขยายในชื่อแฟ้ม" +msgid "Found label '%s'\n" +msgstr "พบชื่อแผ่น '%s'\n" -#: apt-pkg/contrib/fileutl.cc:424 +#: apt-pkg/cdrom.cc:789 +msgid "That is not a valid name, try again.\n" +msgstr "ไม่ใช่ชื่อที่ใช้ได้ กรุณาลองใหม่\n" + +#: apt-pkg/cdrom.cc:806 #, c-format msgid "" -"Ignoring file '%s' in directory '%s' as it has an invalid filename extension" -msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากส่วนขยายในชื่อแฟ้มไม่สามารถใช้การได้" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"แผ่นนี้เรียกชื่อว่า:\n" +"'%s'\n" -#: apt-pkg/contrib/fileutl.cc:827 +#: apt-pkg/cdrom.cc:808 +msgid "Copying package lists..." +msgstr "กำลังคัดลอกรายชื่อแพกเกจ..." + +#: apt-pkg/cdrom.cc:843 +msgid "Writing new source list\n" +msgstr "กำลังเขียนรายชื่อแหล่งแพกเกจแหล่งใหม่\n" + +#: apt-pkg/cdrom.cc:851 +msgid "Source list entries for this disc are:\n" +msgstr "บรรทัดรายชื่อแหล่งแพกเกจสำหรับแผ่นนี้คือ:\n" + +#: apt-pkg/clean.cc:61 #, c-format -msgid "Sub-process %s received a segmentation fault." -msgstr "โพรเซสย่อย %s เกิดข้อผิดพลาดของการใช้ย่านหน่วยความจำ (segmentation fault)" +msgid "Unable to stat %s." +msgstr "ไม่สามารถ stat %s" -#: apt-pkg/contrib/fileutl.cc:829 +#: apt-pkg/depcache.cc:138 apt-pkg/depcache.cc:167 +msgid "Building dependency tree" +msgstr "กำลังสร้างโครงสร้างลำดับความสัมพันธ์" + +#: apt-pkg/depcache.cc:139 +msgid "Candidate versions" +msgstr "รุ่นแพกเกจที่มี" + +#: apt-pkg/depcache.cc:168 +msgid "Dependency generation" +msgstr "สร้างลำดับความสัมพันธ์" + +#: apt-pkg/depcache.cc:188 apt-pkg/depcache.cc:221 apt-pkg/depcache.cc:225 +msgid "Reading state information" +msgstr "กำลังอ่านข้อมูลสถานะ" + +#: apt-pkg/depcache.cc:250 #, c-format -msgid "Sub-process %s received signal %u." -msgstr "โพรเซสย่อย %s ได้รับสัญญาณ %u" +msgid "Failed to open StateFile %s" +msgstr "ไม่สามารถเปิดแฟ้มสถานะ %s" -#: apt-pkg/contrib/fileutl.cc:833 apt-pkg/contrib/gpgv.cc:239 +#: apt-pkg/depcache.cc:256 #, c-format -msgid "Sub-process %s returned an error code (%u)" -msgstr "โพรเซสย่อย %s คืนค่าข้อผิดพลาด (%u)" +msgid "Failed to write temporary StateFile %s" +msgstr "ไม่สามารถเขียนแฟ้มสถานะชั่วคราว %s" -#: apt-pkg/contrib/fileutl.cc:835 apt-pkg/contrib/gpgv.cc:232 +#: apt-pkg/edsp.cc:50 apt-pkg/edsp.cc:70 +msgid "Send scenario to solver" +msgstr "ส่งสภาวการณ์ไปยังกลไกการแก้ปัญหา" + +#: apt-pkg/edsp.cc:216 +msgid "Send request to solver" +msgstr "ส่งคำสั่งไปยังกลไกการแก้ปัญหา" + +#: apt-pkg/edsp.cc:286 +msgid "Prepare for receiving solution" +msgstr "เตรียมรับคำตอบ" + +#: apt-pkg/edsp.cc:293 +msgid "External solver failed without a proper error message" +msgstr "กลไกการแก้ปัญหาภายนอกทำงานล้มเหลวโดยไม่มีข้อความข้อผิดพลาดที่เหมาะสม" + +#: apt-pkg/edsp.cc:563 apt-pkg/edsp.cc:566 apt-pkg/edsp.cc:571 +msgid "Execute external solver" +msgstr "เรียกกลไกการแก้ปัญหาภายนอก" + +#: apt-pkg/indexcopy.cc:236 apt-pkg/indexcopy.cc:773 #, c-format -msgid "Sub-process %s exited unexpectedly" -msgstr "โพรเซสย่อย %s จบการทำงานกะทันหัน" +msgid "Wrote %i records.\n" +msgstr "เขียนแล้ว %i ระเบียน\n" -#: apt-pkg/contrib/fileutl.cc:916 +#: apt-pkg/indexcopy.cc:238 apt-pkg/indexcopy.cc:775 #, c-format -msgid "Problem closing the gzip file %s" -msgstr "เกิดปัญหาขณะปิดแฟ้ม gzip %s" +msgid "Wrote %i records with %i missing files.\n" +msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม\n" -#: apt-pkg/contrib/fileutl.cc:1104 +#: apt-pkg/indexcopy.cc:241 apt-pkg/indexcopy.cc:778 #, c-format -msgid "Could not open file %s" -msgstr "ไม่สามารถเปิดแฟ้ม %s" +msgid "Wrote %i records with %i mismatched files\n" +msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มผิดขนาด %i แฟ้ม\n" -#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 +#: apt-pkg/indexcopy.cc:244 apt-pkg/indexcopy.cc:781 #, c-format -msgid "Could not open file descriptor %d" -msgstr "ไม่สามารถเปิด file destriptor %d" +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม และแฟ้มผิดขนาด %i แฟ้ม\n" -#: apt-pkg/contrib/fileutl.cc:1317 -msgid "Failed to create subprocess IPC" -msgstr "สร้าง IPC ของโพรเซสย่อยไม่สำเร็จ" +#: apt-pkg/indexcopy.cc:515 +#, c-format +msgid "Can't find authentication record for: %s" +msgstr "ไม่พบระเบียนยืนยันความแท้สำหรับ: %s" -#: apt-pkg/contrib/fileutl.cc:1372 -msgid "Failed to exec compressor " -msgstr "เรียกทำงานตัวบีบอัดไม่สำเร็จ" +#: apt-pkg/indexcopy.cc:521 +#, c-format +msgid "Hash mismatch for: %s" +msgstr "แฮชไม่ตรงกันสำหรับ: %s" -#: apt-pkg/contrib/fileutl.cc:1513 +#: apt-pkg/indexrecords.cc:78 #, c-format -msgid "read, still have %llu to read but none left" -msgstr "read: ยังเหลือ %llu ที่ยังไม่ได้อ่าน แต่ข้อมูลหมดแล้ว" +msgid "Unable to parse Release file %s" +msgstr "ไม่สามารถแจงแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1626 apt-pkg/contrib/fileutl.cc:1648 +#: apt-pkg/indexrecords.cc:86 #, c-format -msgid "write, still have %llu to write but couldn't" -msgstr "write: ยังเหลือ %llu ที่ยังไม่ได้เขียน แต่ไม่สามารถเขียนได้" +msgid "No sections in Release file %s" +msgstr "ไม่มีหัวข้อย่อยในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1918 +#: apt-pkg/indexrecords.cc:117 #, c-format -msgid "Problem closing the file %s" -msgstr "เกิดปัญหาขณะปิดแฟ้ม %s" +msgid "No Hash entry in Release file %s" +msgstr "ไม่มีรายการแฮชในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1930 +#: apt-pkg/indexrecords.cc:130 #, c-format -msgid "Problem renaming the file %s to %s" -msgstr "เกิดปัญหาขณะเปลี่ยนชื่อแฟ้ม %s ไปเป็น %s" +msgid "Invalid 'Valid-Until' entry in Release file %s" +msgstr "รายการ 'Valid-Until' ไม่ถูกต้องในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1941 +#: apt-pkg/indexrecords.cc:149 #, c-format -msgid "Problem unlinking the file %s" -msgstr "เกิดปัญหาขณะลบแฟ้ม %s" +msgid "Invalid 'Date' entry in Release file %s" +msgstr "รายการ 'Date' ไม่ถูกต้องในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1954 -msgid "Problem syncing the file" -msgstr "เกิดปัญหาขณะ sync แฟ้ม" +#: apt-pkg/init.cc:145 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "ไม่รองรับระบบแพกเกจ '%s'" + +#: apt-pkg/init.cc:161 +msgid "Unable to determine a suitable packaging system type" +msgstr "ไม่สามารถระบุชนิดของระบบแพกเกจที่เหมาะสมได้" -#: apt-pkg/contrib/fileutl.cc:2050 apt-pkg/acquire-item.cc:148 +#: apt-pkg/install-progress.cc:57 #, c-format -msgid "rename failed, %s (%s -> %s)." -msgstr "เปลี่ยนชื่อไม่สำเร็จ: %s (%s -> %s)" +msgid "Progress: [%3i%%]" +msgstr "ความคืบหน้า: [%3i%%]" -#. TRANSLATOR: %s is the trusted keyring parts directory -#: apt-pkg/contrib/gpgv.cc:72 +#: apt-pkg/install-progress.cc:91 apt-pkg/install-progress.cc:174 +msgid "Running dpkg" +msgstr "กำลังเรียก dpkg" + +#: apt-pkg/packagemanager.cc:303 apt-pkg/packagemanager.cc:932 #, c-format -msgid "No keyring installed in %s." -msgstr "ไม่มีพวงกุญแจติดตั้งไว้ใน %s" +msgid "" +"Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " +"under APT::Immediate-Configure for details. (%d)" +msgstr "" +"ไม่สามารถตั้งค่า '%s' แบบทันทีได้ กรุณาอ่านรายละเอียดเพิ่มเติมจาก man 5 apt.conf ที่หัวข้อ " +"APT::Immediate-Configure (%d)" + +#: apt-pkg/packagemanager.cc:504 apt-pkg/packagemanager.cc:535 +#, c-format +msgid "Could not configure '%s'. " +msgstr "ไม่สามารถตั้งค่า '%s'" + +#: apt-pkg/packagemanager.cc:577 +#, c-format +msgid "" +"This installation run will require temporarily removing the essential " +"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " +"you really want to do it, activate the APT::Force-LoopBreak option." +msgstr "" +"การติดตั้งครั้งนี้จำเป็นต้องลบแพกเกจ %s ชั่วคราว " +"อันเนื่องมาจากความขัดแย้งหรือความขึ้นต่อกันระหว่างติดตั้งที่เป็นวงรอบ " +"ซึ่งแพกเกจดังกล่าวเป็นแพกเกจที่จำเป็นสำหรับระบบ การลบดังกล่าวมักเป็นอันตราย " +"แต่ถ้าคุณต้องการทำเช่นนั้นจริงๆ ก็ให้เปิดตัวเลือก APT::Force-LoopBreak" #: apt-pkg/pkgcache.cc:155 msgid "Empty package cache" @@ -2689,46 +2834,94 @@ msgstr "ตัวเลือก" msgid "extra" msgstr "ส่วนเสริม" -#: apt-pkg/depcache.cc:138 apt-pkg/depcache.cc:167 -msgid "Building dependency tree" -msgstr "กำลังสร้างโครงสร้างลำดับความสัมพันธ์" - -#: apt-pkg/depcache.cc:139 -msgid "Candidate versions" -msgstr "รุ่นแพกเกจที่มี" +#: apt-pkg/pkgcachegen.cc:93 +msgid "Cache has an incompatible versioning system" +msgstr "แคชมีระบบนับรุ่นที่ไม่ตรงกัน" -#: apt-pkg/depcache.cc:168 -msgid "Dependency generation" -msgstr "สร้างลำดับความสัมพันธ์" +#. TRANSLATOR: The first placeholder is a package name, +#. the other two should be copied verbatim as they include debug info +#: apt-pkg/pkgcachegen.cc:224 apt-pkg/pkgcachegen.cc:234 +#: apt-pkg/pkgcachegen.cc:300 apt-pkg/pkgcachegen.cc:327 +#: apt-pkg/pkgcachegen.cc:340 apt-pkg/pkgcachegen.cc:382 +#: apt-pkg/pkgcachegen.cc:386 apt-pkg/pkgcachegen.cc:403 +#: apt-pkg/pkgcachegen.cc:411 apt-pkg/pkgcachegen.cc:415 +#: apt-pkg/pkgcachegen.cc:419 apt-pkg/pkgcachegen.cc:440 +#: apt-pkg/pkgcachegen.cc:479 apt-pkg/pkgcachegen.cc:517 +#: apt-pkg/pkgcachegen.cc:524 apt-pkg/pkgcachegen.cc:555 +#: apt-pkg/pkgcachegen.cc:569 +#, c-format +msgid "Error occurred while processing %s (%s%d)" +msgstr "เกิดข้อผิดพลาดขณะประมวลผล %s (%s%d)" -#: apt-pkg/depcache.cc:188 apt-pkg/depcache.cc:221 apt-pkg/depcache.cc:225 -msgid "Reading state information" -msgstr "กำลังอ่านข้อมูลสถานะ" +#: apt-pkg/pkgcachegen.cc:257 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนชื่อแพกเกจที่ APT สามารถรองรับได้แล้ว" -#: apt-pkg/depcache.cc:250 +#: apt-pkg/pkgcachegen.cc:260 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนรุ่นแพกเกจที่ APT สามารถรองรับได้แล้ว" + +#: apt-pkg/pkgcachegen.cc:263 +msgid "Wow, you exceeded the number of descriptions this APT is capable of." +msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนคำบรรยายแพกเกจที่ APT สามารถรองรับได้แล้ว" + +#: apt-pkg/pkgcachegen.cc:266 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนความสัมพันธ์ระหว่างแพกเกจที่ APT สามารถรองรับได้แล้ว" + +#: apt-pkg/pkgcachegen.cc:576 #, c-format -msgid "Failed to open StateFile %s" -msgstr "ไม่สามารถเปิดแฟ้มสถานะ %s" +msgid "Package %s %s was not found while processing file dependencies" +msgstr "ไม่พบแพกเกจ %s %s ขณะประมวลผลความขึ้นต่อแฟ้ม" -#: apt-pkg/depcache.cc:256 +#: apt-pkg/pkgcachegen.cc:1211 #, c-format -msgid "Failed to write temporary StateFile %s" -msgstr "ไม่สามารถเขียนแฟ้มสถานะชั่วคราว %s" +msgid "Couldn't stat source package list %s" +msgstr "ไม่สามารถ stat รายการแพกเกจซอร์ส %s" -#: apt-pkg/tagfile.cc:140 +#: apt-pkg/pkgcachegen.cc:1299 apt-pkg/pkgcachegen.cc:1403 +#: apt-pkg/pkgcachegen.cc:1409 apt-pkg/pkgcachegen.cc:1566 +msgid "Reading package lists" +msgstr "กำลังอ่านรายชื่อแพกเกจ" + +#: apt-pkg/pkgcachegen.cc:1316 +msgid "Collecting File Provides" +msgstr "กำลังเก็บข้อมูลแฟ้มที่ตระเตรียมให้" + +#: apt-pkg/pkgcachegen.cc:1508 apt-pkg/pkgcachegen.cc:1515 +msgid "IO Error saving source cache" +msgstr "เกิดข้อผิดพลาด IO ขณะบันทึกแคชของซอร์ส" + +#: apt-pkg/pkgrecords.cc:38 #, c-format -msgid "Unable to parse package file %s (1)" -msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (1)" +msgid "Index file type '%s' is not supported" +msgstr "ไม่รองรับแฟ้มดัชนีชนิด '%s'" -#: apt-pkg/tagfile.cc:237 +#: apt-pkg/policy.cc:83 #, c-format -msgid "Unable to parse package file %s (2)" -msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (2)" +msgid "" +"The value '%s' is invalid for APT::Default-Release as such a release is not " +"available in the sources" +msgstr "ค่า '%s' ไม่สามารถใช้กับ APT::Default-Release ได้ เนื่องจากรุ่นดังกล่าวไม่มีในแหล่ง" + +#: apt-pkg/policy.cc:422 +#, c-format +msgid "Invalid record in the preferences file %s, no Package header" +msgstr "ระเบียนผิดรูปแบบในแฟ้มค่าปรับแต่ง %s: ไม่มีข้อมูลส่วนหัว 'Package'" + +#: apt-pkg/policy.cc:444 +#, c-format +msgid "Did not understand pin type %s" +msgstr "ไม่เข้าใจชนิดการตรึง %s" + +#: apt-pkg/policy.cc:452 +msgid "No priority (or zero) specified for pin" +msgstr "ไม่ได้ระบุลำดับความสำคัญ (หรือค่าศูนย์) สำหรับการตรึง" #: apt-pkg/sourcelist.cc:127 -#, fuzzy, c-format +#, c-format msgid "Malformed stanza %u in source list %s (URI parse)" -msgstr "บรรทัด %lu ในแฟ้มรายชื่อแหล่งแพกเกจ %s ผิดรูปแบบ (ขณะแจง URI)" +msgstr "วรรคที่ %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s ผิดรูปแบบ (ขณะแจง URI)" #: apt-pkg/sourcelist.cc:170 #, c-format @@ -2785,11 +2978,6 @@ msgstr "บรรทัด %lu ในแฟ้มรายชื่อแหล msgid "Opening %s" msgstr "กำลังเปิด %s" -#: apt-pkg/sourcelist.cc:347 apt-pkg/cdrom.cc:497 -#, c-format -msgid "Line %u too long in source list %s." -msgstr "บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s ยาวเกินไป" - #: apt-pkg/sourcelist.cc:371 #, c-format msgid "Malformed line %u in source list %s (type)" @@ -2801,515 +2989,388 @@ msgid "Type '%s' is not known on line %u in source list %s" msgstr "ไม่รู้จักชนิด '%s' ที่บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s" #: apt-pkg/sourcelist.cc:416 -#, fuzzy, c-format -msgid "Type '%s' is not known on stanza %u in source list %s" -msgstr "ไม่รู้จักชนิด '%s' ที่บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s" - -#: apt-pkg/packagemanager.cc:303 apt-pkg/packagemanager.cc:932 #, c-format -msgid "" -"Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " -"under APT::Immediate-Configure for details. (%d)" -msgstr "" -"ไม่สามารถตั้งค่า '%s' แบบทันทีได้ กรุณาอ่านรายละเอียดเพิ่มเติมจาก man 5 apt.conf ที่หัวข้อ " -"APT::Immediate-Configure (%d)" - -#: apt-pkg/packagemanager.cc:504 apt-pkg/packagemanager.cc:535 -#, c-format -msgid "Could not configure '%s'. " -msgstr "ไม่สามารถตั้งค่า '%s'" +msgid "Type '%s' is not known on stanza %u in source list %s" +msgstr "ไม่รู้จักชนิด '%s' ที่วรรคที่ %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s" -#: apt-pkg/packagemanager.cc:577 -#, c-format -msgid "" -"This installation run will require temporarily removing the essential " -"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " -"you really want to do it, activate the APT::Force-LoopBreak option." -msgstr "" -"การติดตั้งครั้งนี้จำเป็นต้องลบแพกเกจ %s ชั่วคราว " -"อันเนื่องมาจากความขัดแย้งหรือความขึ้นต่อกันระหว่างติดตั้งที่เป็นวงรอบ " -"ซึ่งแพกเกจดังกล่าวเป็นแพกเกจที่จำเป็นสำหรับระบบ การลบดังกล่าวมักเป็นอันตราย " -"แต่ถ้าคุณต้องการทำเช่นนั้นจริงๆ ก็ให้เปิดตัวเลือก APT::Force-LoopBreak" +#: apt-pkg/srcrecords.cc:52 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "คุณต้องเพิ่ม URI ชนิด 'source' ใน sources.list ของคุณด้วย" -#: apt-pkg/pkgrecords.cc:38 +#: apt-pkg/tagfile.cc:140 #, c-format -msgid "Index file type '%s' is not supported" -msgstr "ไม่รองรับแฟ้มดัชนีชนิด '%s'" +msgid "Unable to parse package file %s (1)" +msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (1)" -#: apt-pkg/algorithms.cc:265 +#: apt-pkg/tagfile.cc:237 #, c-format -msgid "" -"The package %s needs to be reinstalled, but I can't find an archive for it." -msgstr "จำเป็นต้องติดตั้งแพกเกจ %s ซ้ำ แต่หาตัวแพกเกจไม่พบ" +msgid "Unable to parse package file %s (2)" +msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (2)" -#: apt-pkg/algorithms.cc:1083 +#: apt-pkg/update.cc:103 apt-pkg/update.cc:105 msgid "" -"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " -"held packages." -msgstr "" -"ข้อผิดพลาด: pkgProblemResolver::Resolve สร้างคำตอบที่ทำให้เกิดแพกเกจเสีย " -"อาจเกิดจากแพกเกจที่ถูกกำหนดให้คงรุ่นไว้" - -#: apt-pkg/algorithms.cc:1085 -msgid "Unable to correct problems, you have held broken packages." -msgstr "ไม่สามารถแก้ปัญหาได้ คุณได้คงรุ่นแพกเกจที่เสียอยู่ไว้" +"Some index files failed to download. They have been ignored, or old ones " +"used instead." +msgstr "ดาวน์โหลดแฟ้มดัชนีบางแฟ้มไม่สำเร็จ จะข้ามรายการดังกล่าวไป หรือใช้ข้อมูลเก่าแทน" -#: apt-pkg/acquire.cc:87 apt-pkg/cdrom.cc:816 +#: apt-pkg/vendorlist.cc:85 #, c-format -msgid "List directory %spartial is missing." -msgstr "ไม่มีไดเรกทอรีรายชื่อแพกเกจ %spartial" +msgid "Vendor block %s contains no fingerprint" +msgstr "บล็อคผู้ผลิต %s ไม่มีลายนิ้วมือ" -#: apt-pkg/acquire.cc:91 +#: apt-pkg/contrib/cdromutl.cc:65 #, c-format -msgid "Archives directory %spartial is missing." -msgstr "ไม่มีไดเรกทอรีแพกเกจ %spartial" +msgid "Unable to stat the mount point %s" +msgstr "ไม่สามารถ stat จุดเมานท์ %s" -#: apt-pkg/acquire.cc:99 -#, c-format -msgid "Unable to lock directory %s" -msgstr "ไม่สามารถล็อคไดเรกทอรี %s" +#: apt-pkg/contrib/cdromutl.cc:246 +msgid "Failed to stat the cdrom" +msgstr "ไม่สามารถ stat ซีดีรอม" -#. only show the ETA if it makes sense -#. two days -#: apt-pkg/acquire.cc:899 +#: apt-pkg/contrib/cmndline.cc:121 #, c-format -msgid "Retrieving file %li of %li (%s remaining)" -msgstr "กำลังดาวน์โหลดแฟ้มที่ %li จาก %li (เหลืออีก %s)" +msgid "Command line option '%c' [from %s] is not known." +msgstr "ไม่รู้จักตัวเลือกบรรทัดคำสั่ง '%c' [จาก %s]" -#: apt-pkg/acquire.cc:901 +#: apt-pkg/contrib/cmndline.cc:146 apt-pkg/contrib/cmndline.cc:155 +#: apt-pkg/contrib/cmndline.cc:163 #, c-format -msgid "Retrieving file %li of %li" -msgstr "กำลังดาวน์โหลดแฟ้มที่ %li จาก %li" +msgid "Command line option %s is not understood" +msgstr "ไม่เข้าใจตัวเลือกบรรทัดคำสั่ง %s" -#: apt-pkg/acquire-worker.cc:116 +#: apt-pkg/contrib/cmndline.cc:168 #, c-format -msgid "The method driver %s could not be found." -msgstr "ไม่พบไดรเวอร์สำหรับวิธีการ %s" - -#: apt-pkg/acquire-worker.cc:118 -#, fuzzy, c-format -msgid "Is the package %s installed?" -msgstr "กรุณาตรวจสอบว่าได้ติดตั้งแพกเกจ 'dpkg-dev' แล้ว\n" +msgid "Command line option %s is not boolean" +msgstr "ตัวเลือกบรรทัดคำสั่ง %s ไม่ได้เป็นค่าบูลีน" -#: apt-pkg/acquire-worker.cc:169 +#: apt-pkg/contrib/cmndline.cc:209 apt-pkg/contrib/cmndline.cc:230 #, c-format -msgid "Method %s did not start correctly" -msgstr "ไม่สามารถเรียกทำงานวิธีการ %s" +msgid "Option %s requires an argument." +msgstr "ตัวเลือก %s ต้องมีอาร์กิวเมนต์" -#: apt-pkg/acquire-worker.cc:455 +#: apt-pkg/contrib/cmndline.cc:243 apt-pkg/contrib/cmndline.cc:249 #, c-format -msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "กรุณาใส่แผ่นชื่อ: '%s' ลงในไดรว์ '%s' แล้วกด enter" +msgid "Option %s: Configuration item specification must have an =." +msgstr "ตัวเลือก %s: การกำหนดรายการค่าตั้งต้องมี =" -#: apt-pkg/init.cc:145 +#: apt-pkg/contrib/cmndline.cc:278 #, c-format -msgid "Packaging system '%s' is not supported" -msgstr "ไม่รองรับระบบแพกเกจ '%s'" - -#: apt-pkg/init.cc:161 -msgid "Unable to determine a suitable packaging system type" -msgstr "ไม่สามารถระบุชนิดของระบบแพกเกจที่เหมาะสมได้" +msgid "Option %s requires an integer argument, not '%s'" +msgstr "ตัวเลือก %s ต้องการอาร์กิวเมนต์จำนวนเต็ม ไม่ใช่ '%s'" -#: apt-pkg/clean.cc:61 +#: apt-pkg/contrib/cmndline.cc:309 #, c-format -msgid "Unable to stat %s." -msgstr "ไม่สามารถ stat %s" - -#: apt-pkg/srcrecords.cc:52 -msgid "You must put some 'source' URIs in your sources.list" -msgstr "คุณต้องเพิ่ม URI ชนิด 'source' ใน sources.list ของคุณด้วย" - -#: apt-pkg/cachefile.cc:94 -msgid "The package lists or status file could not be parsed or opened." -msgstr "ไม่สามารถแจงหรือเปิดรายชื่อแพกเกจหรือสถานะแพกเกจได้" - -#: apt-pkg/cachefile.cc:98 -msgid "You may want to run apt-get update to correct these problems" -msgstr "คุณอาจเรียก `apt-get update' เพื่อแก้ปัญหาเหล่านี้ได้" - -#: apt-pkg/cachefile.cc:116 -msgid "The list of sources could not be read." -msgstr "ไม่สามารถอ่านรายชื่อแหล่งแพกเกจได้" +msgid "Option '%s' is too long" +msgstr "ตัวเลือก '%s' ยาวเกินไป" -#: apt-pkg/policy.cc:83 +#: apt-pkg/contrib/cmndline.cc:341 #, c-format -msgid "" -"The value '%s' is invalid for APT::Default-Release as such a release is not " -"available in the sources" -msgstr "ค่า '%s' ไม่สามารถใช้กับ APT::Default-Release ได้ เนื่องจากรุ่นดังกล่าวไม่มีในแหล่ง" +msgid "Sense %s is not understood, try true or false." +msgstr "ไม่เข้าใจค่าบูลีน %s กรุณาลองใช้ true หรือ false" -#: apt-pkg/policy.cc:422 +#: apt-pkg/contrib/cmndline.cc:391 #, c-format -msgid "Invalid record in the preferences file %s, no Package header" -msgstr "ระเบียนผิดรูปแบบในแฟ้มค่าปรับแต่ง %s: ไม่มีข้อมูลส่วนหัว 'Package'" +msgid "Invalid operation %s" +msgstr "ไม่รู้จักคำสั่ง %s" -#: apt-pkg/policy.cc:444 +#: apt-pkg/contrib/configuration.cc:519 #, c-format -msgid "Did not understand pin type %s" -msgstr "ไม่เข้าใจชนิดการตรึง %s" - -#: apt-pkg/policy.cc:452 -msgid "No priority (or zero) specified for pin" -msgstr "ไม่ได้ระบุลำดับความสำคัญ (หรือค่าศูนย์) สำหรับการตรึง" - -#: apt-pkg/pkgcachegen.cc:93 -msgid "Cache has an incompatible versioning system" -msgstr "แคชมีระบบนับรุ่นที่ไม่ตรงกัน" +msgid "Unrecognized type abbreviation: '%c'" +msgstr "พบตัวย่อของชนิดที่ข้อมูลไม่รู้จัก: '%c'" -#. TRANSLATOR: The first placeholder is a package name, -#. the other two should be copied verbatim as they include debug info -#: apt-pkg/pkgcachegen.cc:224 apt-pkg/pkgcachegen.cc:234 -#: apt-pkg/pkgcachegen.cc:300 apt-pkg/pkgcachegen.cc:327 -#: apt-pkg/pkgcachegen.cc:340 apt-pkg/pkgcachegen.cc:382 -#: apt-pkg/pkgcachegen.cc:386 apt-pkg/pkgcachegen.cc:403 -#: apt-pkg/pkgcachegen.cc:411 apt-pkg/pkgcachegen.cc:415 -#: apt-pkg/pkgcachegen.cc:419 apt-pkg/pkgcachegen.cc:440 -#: apt-pkg/pkgcachegen.cc:479 apt-pkg/pkgcachegen.cc:517 -#: apt-pkg/pkgcachegen.cc:524 apt-pkg/pkgcachegen.cc:555 -#: apt-pkg/pkgcachegen.cc:569 +#: apt-pkg/contrib/configuration.cc:633 #, c-format -msgid "Error occurred while processing %s (%s%d)" -msgstr "เกิดข้อผิดพลาดขณะประมวลผล %s (%s%d)" - -#: apt-pkg/pkgcachegen.cc:257 -msgid "Wow, you exceeded the number of package names this APT is capable of." -msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนชื่อแพกเกจที่ APT สามารถรองรับได้แล้ว" - -#: apt-pkg/pkgcachegen.cc:260 -msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนรุ่นแพกเกจที่ APT สามารถรองรับได้แล้ว" - -#: apt-pkg/pkgcachegen.cc:263 -msgid "Wow, you exceeded the number of descriptions this APT is capable of." -msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนคำบรรยายแพกเกจที่ APT สามารถรองรับได้แล้ว" - -#: apt-pkg/pkgcachegen.cc:266 -msgid "Wow, you exceeded the number of dependencies this APT is capable of." -msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนความสัมพันธ์ระหว่างแพกเกจที่ APT สามารถรองรับได้แล้ว" +msgid "Opening configuration file %s" +msgstr "ขณะเปิดแฟ้มค่าตั้ง %s" -#: apt-pkg/pkgcachegen.cc:576 +#: apt-pkg/contrib/configuration.cc:801 #, c-format -msgid "Package %s %s was not found while processing file dependencies" -msgstr "ไม่พบแพกเกจ %s %s ขณะประมวลผลความขึ้นต่อแฟ้ม" +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "ไวยากรณ์ผิดพลาด %s:%u: เริ่มบล็อคโดยไม่มีชื่อ" -#: apt-pkg/pkgcachegen.cc:1211 +#: apt-pkg/contrib/configuration.cc:820 #, c-format -msgid "Couldn't stat source package list %s" -msgstr "ไม่สามารถ stat รายการแพกเกจซอร์ส %s" - -#: apt-pkg/pkgcachegen.cc:1299 apt-pkg/pkgcachegen.cc:1403 -#: apt-pkg/pkgcachegen.cc:1409 apt-pkg/pkgcachegen.cc:1566 -msgid "Reading package lists" -msgstr "กำลังอ่านรายชื่อแพกเกจ" - -#: apt-pkg/pkgcachegen.cc:1316 -msgid "Collecting File Provides" -msgstr "กำลังเก็บข้อมูลแฟ้มที่ตระเตรียมให้" - -#: apt-pkg/pkgcachegen.cc:1508 apt-pkg/pkgcachegen.cc:1515 -msgid "IO Error saving source cache" -msgstr "เกิดข้อผิดพลาด IO ขณะบันทึกแคชของซอร์ส" - -#: apt-pkg/acquire-item.cc:163 -msgid "Hash Sum mismatch" -msgstr "ผลรวมแฮชไม่ตรงกัน" - -#: apt-pkg/acquire-item.cc:168 -msgid "Size mismatch" -msgstr "ขนาดไม่ตรงกัน" - -#: apt-pkg/acquire-item.cc:173 -#, fuzzy -msgid "Invalid file format" -msgstr "ไม่รู้จักคำสั่ง %s" +msgid "Syntax error %s:%u: Malformed tag" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: แท็กผิดรูปแบบ" -#: apt-pkg/acquire-item.cc:1579 +#: apt-pkg/contrib/configuration.cc:837 #, c-format -msgid "" -"Unable to find expected entry '%s' in Release file (Wrong sources.list entry " -"or malformed file)" -msgstr "" -"ไม่พบรายการ '%s' ที่ต้องการในแฟ้ม Release (รายการ sources.list ไม่ถูกต้อง " -"หรือแฟ้มผิดรูปแบบ)" +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังค่า" -#: apt-pkg/acquire-item.cc:1595 +#: apt-pkg/contrib/configuration.cc:877 #, c-format -msgid "Unable to find hash sum for '%s' in Release file" -msgstr "ไม่พบผลรวมแฮชสำหรับ '%s' ในแฟ้ม Release" - -#: apt-pkg/acquire-item.cc:1637 -msgid "There is no public key available for the following key IDs:\n" -msgstr "ไม่มีกุญแจสาธารณะสำหรับกุญแจหมายเลขต่อไปนี้:\n" +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: สามารถใช้ directive ที่ระดับบนสุดได้เท่านั้น" -#: apt-pkg/acquire-item.cc:1675 +#: apt-pkg/contrib/configuration.cc:884 #, c-format -msgid "" -"Release file for %s is expired (invalid since %s). Updates for this " -"repository will not be applied." -msgstr "" -"แฟ้ม Release สำหรับ %s หมดอายุแล้ว (ตั้งแต่ %s ที่แล้ว) จะไม่ใช้รายการปรับรุ่นต่างๆ " -"ของคลังแพกเกจนี้" +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: ใช้ include ซ้อนกันมากเกินไป" -#: apt-pkg/acquire-item.cc:1697 +#: apt-pkg/contrib/configuration.cc:888 apt-pkg/contrib/configuration.cc:893 #, c-format -msgid "Conflicting distribution: %s (expected %s but got %s)" -msgstr "ชุดจัดแจกขัดแย้งกัน: %s (ต้องการ %s แต่พบ %s)" +msgid "Syntax error %s:%u: Included from here" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: include จากที่นี่" -#: apt-pkg/acquire-item.cc:1727 +#: apt-pkg/contrib/configuration.cc:897 #, c-format -msgid "" -"An error occurred during the signature verification. The repository is not " -"updated and the previous index files will be used. GPG error: %s: %s\n" -msgstr "" -"เกิดข้อผิดพลาดขณะตรวจสอบลายเซ็น จะไม่ปรับข้อมูลคลังแพกเกจนี้ และจะใช้แฟ้มดัชนีเก่า " -"ข้อผิดพลาดจาก GPG: %s: %s\n" +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: พบ directive '%s' ที่ไม่รองรับ" -#. Invalid signature file, reject (LP: #346386) (Closes: #627642) -#: apt-pkg/acquire-item.cc:1737 apt-pkg/acquire-item.cc:1742 +#: apt-pkg/contrib/configuration.cc:900 #, c-format -msgid "GPG error: %s: %s" -msgstr "ข้อผิดพลาดจาก GPG: %s: %s" +msgid "Syntax error %s:%u: clear directive requires an option tree as argument" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: directive 'clear' ต้องมีอาร์กิวเมนต์เป็นลำดับชั้นตัวเลือก" -#: apt-pkg/acquire-item.cc:1865 +#: apt-pkg/contrib/configuration.cc:950 #, c-format -msgid "" -"I wasn't able to locate a file for the %s package. This might mean you need " -"to manually fix this package. (due to missing arch)" -msgstr "ไม่พบแฟ้มสำหรับแพกเกจ %s คุณอาจต้องแก้ปัญหาแพกเกจนี้เอง (ไม่มี arch)" +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังจบแฟ้ม" -#: apt-pkg/acquire-item.cc:1931 +#: apt-pkg/contrib/fileutl.cc:193 #, c-format -msgid "Can't find a source to download version '%s' of '%s'" -msgstr "ไม่พบแหล่งที่จะดาวน์โหลดรุ่น '%s' ของ '%s' ได้" +msgid "Not using locking for read only lock file %s" +msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่อ่านได้อย่างเดียว" -#: apt-pkg/acquire-item.cc:1989 +#: apt-pkg/contrib/fileutl.cc:198 #, c-format -msgid "" -"The package index files are corrupted. No Filename: field for package %s." -msgstr "แฟ้มดัชนีแพกเกจเสียหาย ไม่มีข้อมูล Filename: (ชื่อแฟ้ม) สำหรับแพกเกจ %s" +msgid "Could not open lock file %s" +msgstr "ไม่สามารถเปิดแฟ้มล็อค %s" -#: apt-pkg/indexrecords.cc:78 +#: apt-pkg/contrib/fileutl.cc:221 #, c-format -msgid "Unable to parse Release file %s" -msgstr "ไม่สามารถแจงแฟ้ม Release %s" +msgid "Not using locking for nfs mounted lock file %s" +msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่เมานท์ผ่าน nfs" -#: apt-pkg/indexrecords.cc:86 +#: apt-pkg/contrib/fileutl.cc:226 #, c-format -msgid "No sections in Release file %s" -msgstr "ไม่มีหัวข้อย่อยในแฟ้ม Release %s" +msgid "Could not get lock %s" +msgstr "ไม่สามารถล็อค %s" -#: apt-pkg/indexrecords.cc:117 +#: apt-pkg/contrib/fileutl.cc:363 apt-pkg/contrib/fileutl.cc:477 #, c-format -msgid "No Hash entry in Release file %s" -msgstr "ไม่มีรายการแฮชในแฟ้ม Release %s" +msgid "List of files can't be created as '%s' is not a directory" +msgstr "ไม่สามารถสร้างรายชื่อแฟ้มได้ เนื่องจาก '%s' ไม่ใช่ไดเรกทอรี" -#: apt-pkg/indexrecords.cc:130 +#: apt-pkg/contrib/fileutl.cc:397 #, c-format -msgid "Invalid 'Valid-Until' entry in Release file %s" -msgstr "รายการ 'Valid-Until' ไม่ถูกต้องในแฟ้ม Release %s" +msgid "Ignoring '%s' in directory '%s' as it is not a regular file" +msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่ใช่แฟ้มธรรมดา" -#: apt-pkg/indexrecords.cc:149 +#: apt-pkg/contrib/fileutl.cc:415 #, c-format -msgid "Invalid 'Date' entry in Release file %s" -msgstr "รายการ 'Date' ไม่ถูกต้องในแฟ้ม Release %s" +msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" +msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่มีส่วนขยายในชื่อแฟ้ม" -#: apt-pkg/vendorlist.cc:85 +#: apt-pkg/contrib/fileutl.cc:424 #, c-format -msgid "Vendor block %s contains no fingerprint" -msgstr "บล็อคผู้ผลิต %s ไม่มีลายนิ้วมือ" +msgid "" +"Ignoring file '%s' in directory '%s' as it has an invalid filename extension" +msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากส่วนขยายในชื่อแฟ้มไม่สามารถใช้การได้" -#: apt-pkg/cdrom.cc:577 +#: apt-pkg/contrib/fileutl.cc:827 #, c-format -msgid "Using CD-ROM mount point %s\n" -msgstr "กำลังใช้จุดเมานท์ซีดีรอม %s\n" - -#: apt-pkg/cdrom.cc:587 apt-pkg/cdrom.cc:657 apt-pkg/cdrom.cc:893 -msgid "Unmounting CD-ROM...\n" -msgstr "กำลังเลิกเมานท์ซีดีรอม...\n" - -#: apt-pkg/cdrom.cc:592 -msgid "Waiting for disc...\n" -msgstr "กำลังรอแผ่น...\n" - -#: apt-pkg/cdrom.cc:602 -msgid "Mounting CD-ROM...\n" -msgstr "กำลังเมานท์ซีดีรอม...\n" - -#: apt-pkg/cdrom.cc:610 -msgid "Identifying... " -msgstr "กำลังตรวจสอบชื่อแผ่น... " +msgid "Sub-process %s received a segmentation fault." +msgstr "โพรเซสย่อย %s เกิดข้อผิดพลาดของการใช้ย่านหน่วยความจำ (segmentation fault)" -#: apt-pkg/cdrom.cc:648 +#: apt-pkg/contrib/fileutl.cc:829 #, c-format -msgid "Stored label: %s\n" -msgstr "ชื่อที่เก็บไว้: %s\n" - -#: apt-pkg/cdrom.cc:672 -msgid "Scanning disc for index files...\n" -msgstr "กำลังสำรวจข้อมูลในแผ่นเพื่อหาแฟ้มดัชนี...\n" +msgid "Sub-process %s received signal %u." +msgstr "โพรเซสย่อย %s ได้รับสัญญาณ %u" -#: apt-pkg/cdrom.cc:722 +#: apt-pkg/contrib/fileutl.cc:833 apt-pkg/contrib/gpgv.cc:239 #, c-format -msgid "" -"Found %zu package indexes, %zu source indexes, %zu translation indexes and " -"%zu signatures\n" -msgstr "" -"พบดัชนีแพกเกจ %zu รายการ, ดัชนีซอร์ส %zu รายการ, ดัชนีคำแปล %zu รายการ และลายเซ็น " -"%zu รายการ\n" +msgid "Sub-process %s returned an error code (%u)" +msgstr "โพรเซสย่อย %s คืนค่าข้อผิดพลาด (%u)" -#: apt-pkg/cdrom.cc:733 -msgid "" -"Unable to locate any package files, perhaps this is not a Debian Disc or the " -"wrong architecture?" -msgstr "ไม่พบแฟ้มแพกเกจใดๆ บางทีแผ่นนี้อาจจะไม่ใช่แผ่นเดเบียน หรือสถาปัตยกรรมอาจไม่ถูกต้อง" +#: apt-pkg/contrib/fileutl.cc:835 apt-pkg/contrib/gpgv.cc:232 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "โพรเซสย่อย %s จบการทำงานกะทันหัน" -#: apt-pkg/cdrom.cc:760 +#: apt-pkg/contrib/fileutl.cc:916 #, c-format -msgid "Found label '%s'\n" -msgstr "พบชื่อแผ่น '%s'\n" - -#: apt-pkg/cdrom.cc:789 -msgid "That is not a valid name, try again.\n" -msgstr "ไม่ใช่ชื่อที่ใช้ได้ กรุณาลองใหม่\n" +msgid "Problem closing the gzip file %s" +msgstr "เกิดปัญหาขณะปิดแฟ้ม gzip %s" -#: apt-pkg/cdrom.cc:806 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format -msgid "" -"This disc is called: \n" -"'%s'\n" -msgstr "" -"แผ่นนี้เรียกชื่อว่า:\n" -"'%s'\n" +msgid "Could not open file %s" +msgstr "ไม่สามารถเปิดแฟ้ม %s" -#: apt-pkg/cdrom.cc:808 -msgid "Copying package lists..." -msgstr "กำลังคัดลอกรายชื่อแพกเกจ..." +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 +#, c-format +msgid "Could not open file descriptor %d" +msgstr "ไม่สามารถเปิด file destriptor %d" -#: apt-pkg/cdrom.cc:843 -msgid "Writing new source list\n" -msgstr "กำลังเขียนรายชื่อแหล่งแพกเกจแหล่งใหม่\n" +#: apt-pkg/contrib/fileutl.cc:1317 +msgid "Failed to create subprocess IPC" +msgstr "สร้าง IPC ของโพรเซสย่อยไม่สำเร็จ" -#: apt-pkg/cdrom.cc:851 -msgid "Source list entries for this disc are:\n" -msgstr "บรรทัดรายชื่อแหล่งแพกเกจสำหรับแผ่นนี้คือ:\n" +#: apt-pkg/contrib/fileutl.cc:1375 +msgid "Failed to exec compressor " +msgstr "เรียกทำงานตัวบีบอัดไม่สำเร็จ" -#: apt-pkg/indexcopy.cc:236 apt-pkg/indexcopy.cc:773 +#: apt-pkg/contrib/fileutl.cc:1516 #, c-format -msgid "Wrote %i records.\n" -msgstr "เขียนแล้ว %i ระเบียน\n" +msgid "read, still have %llu to read but none left" +msgstr "read: ยังเหลือ %llu ที่ยังไม่ได้อ่าน แต่ข้อมูลหมดแล้ว" -#: apt-pkg/indexcopy.cc:238 apt-pkg/indexcopy.cc:775 +#: apt-pkg/contrib/fileutl.cc:1629 apt-pkg/contrib/fileutl.cc:1651 #, c-format -msgid "Wrote %i records with %i missing files.\n" -msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม\n" +msgid "write, still have %llu to write but couldn't" +msgstr "write: ยังเหลือ %llu ที่ยังไม่ได้เขียน แต่ไม่สามารถเขียนได้" -#: apt-pkg/indexcopy.cc:241 apt-pkg/indexcopy.cc:778 +#: apt-pkg/contrib/fileutl.cc:1922 #, c-format -msgid "Wrote %i records with %i mismatched files\n" -msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มผิดขนาด %i แฟ้ม\n" +msgid "Problem closing the file %s" +msgstr "เกิดปัญหาขณะปิดแฟ้ม %s" -#: apt-pkg/indexcopy.cc:244 apt-pkg/indexcopy.cc:781 +#: apt-pkg/contrib/fileutl.cc:1934 #, c-format -msgid "Wrote %i records with %i missing files and %i mismatched files\n" -msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม และแฟ้มผิดขนาด %i แฟ้ม\n" +msgid "Problem renaming the file %s to %s" +msgstr "เกิดปัญหาขณะเปลี่ยนชื่อแฟ้ม %s ไปเป็น %s" -#: apt-pkg/indexcopy.cc:515 +#: apt-pkg/contrib/fileutl.cc:1945 #, c-format -msgid "Can't find authentication record for: %s" -msgstr "ไม่พบระเบียนยืนยันความแท้สำหรับ: %s" +msgid "Problem unlinking the file %s" +msgstr "เกิดปัญหาขณะลบแฟ้ม %s" -#: apt-pkg/indexcopy.cc:521 -#, c-format -msgid "Hash mismatch for: %s" -msgstr "แฮชไม่ตรงกันสำหรับ: %s" +#: apt-pkg/contrib/fileutl.cc:1958 +msgid "Problem syncing the file" +msgstr "เกิดปัญหาขณะ sync แฟ้ม" -#: apt-pkg/cacheset.cc:487 +#. TRANSLATOR: %s is the trusted keyring parts directory +#: apt-pkg/contrib/gpgv.cc:72 #, c-format -msgid "Release '%s' for '%s' was not found" -msgstr "ไม่พบรุ่นย่อย '%s' ของ '%s'" +msgid "No keyring installed in %s." +msgstr "ไม่มีพวงกุญแจติดตั้งไว้ใน %s" -#: apt-pkg/cacheset.cc:490 -#, c-format -msgid "Version '%s' for '%s' was not found" -msgstr "ไม่พบรุ่น '%s' ของ '%s'" +#: apt-pkg/contrib/mmap.cc:79 +msgid "Can't mmap an empty file" +msgstr "ไม่สามารถ mmap แฟ้มเปล่า" -#: apt-pkg/cacheset.cc:601 +#: apt-pkg/contrib/mmap.cc:111 #, c-format -msgid "Couldn't find task '%s'" -msgstr "ไม่พบงานติดตั้ง '%s'" +msgid "Couldn't duplicate file descriptor %i" +msgstr "ไม่สามารถทำซ้ำ file descriptor %i" -#: apt-pkg/cacheset.cc:607 +#: apt-pkg/contrib/mmap.cc:119 #, c-format -msgid "Couldn't find any package by regex '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" +msgid "Couldn't make mmap of %llu bytes" +msgstr "ไม่สามารถสร้าง mmap ขนาด %llu ไบต์" -#: apt-pkg/cacheset.cc:613 -#, fuzzy, c-format -msgid "Couldn't find any package by glob '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" +#: apt-pkg/contrib/mmap.cc:146 +msgid "Unable to close mmap" +msgstr "ไม่สามารถปิด mmap" -#: apt-pkg/cacheset.cc:624 +#: apt-pkg/contrib/mmap.cc:174 apt-pkg/contrib/mmap.cc:202 +msgid "Unable to synchronize mmap" +msgstr "ไม่สามารถปรับ mmap ให้ตรงกัน" + +#: apt-pkg/contrib/mmap.cc:290 #, c-format -msgid "Can't select versions from package '%s' as it is purely virtual" -msgstr "ไม่สามารถเลือกรุ่นต่างๆ ของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" +msgid "Couldn't make mmap of %lu bytes" +msgstr "ไม่สามารถสร้าง mmap ขนาด %lu ไบต์" -#: apt-pkg/cacheset.cc:631 apt-pkg/cacheset.cc:638 +#: apt-pkg/contrib/mmap.cc:322 +msgid "Failed to truncate file" +msgstr "ไม่สามารถตัดท้ายแฟ้ม" + +#: apt-pkg/contrib/mmap.cc:341 #, c-format msgid "" -"Can't select installed nor candidate version from package '%s' as it has " -"neither of them" +"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Start. " +"Current value: %lu. (man 5 apt.conf)" msgstr "" -"ไม่สามารถเลือกรุ่นที่ติดตั้งไว้หรือรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีทั้งสองอย่าง" +"MMap แบบพลวัตมีเนื้อที่ไม่พอ กรุณาเพิ่มขนาดของ APT::Cache-Start ค่าปัจจุบัน: %lu (man 5 " +"apt.conf)" -#: apt-pkg/cacheset.cc:645 +#: apt-pkg/contrib/mmap.cc:446 #, c-format -msgid "Can't select newest version from package '%s' as it is purely virtual" -msgstr "ไม่สามารถเลือกรุ่นใหม่ที่สุดของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" +msgid "" +"Unable to increase the size of the MMap as the limit of %lu bytes is already " +"reached." +msgstr "ไม่สามารถเพิ่มขนาดของ MMap เนื่องจากถึงขีดจำกัด %lu ไบต์แล้ว" -#: apt-pkg/cacheset.cc:653 +#: apt-pkg/contrib/mmap.cc:449 +msgid "" +"Unable to increase size of the MMap as automatic growing is disabled by user." +msgstr "ไม่สามารถเพิ่มขนาดของ MMap เนื่องจากผู้ใช้ปิดการขยายขนาดอัตโนมัติ" + +#: apt-pkg/contrib/progress.cc:148 #, c-format -msgid "Can't select candidate version from package %s as it has no candidate" -msgstr "ไม่สามารถเลือกรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีรุ่นสำหรับติดตั้ง" +msgid "%c%s... Error!" +msgstr "%c%s... ผิดพลาด!" -#: apt-pkg/cacheset.cc:661 +#: apt-pkg/contrib/progress.cc:150 #, c-format -msgid "Can't select installed version from package %s as it is not installed" -msgstr "ไม่สามารถเลือกรุ่นที่ติดตั้งไว้ของแพกเกจ '%s' ได้ เนื่องจากแพกเกจไม่ได้ติดตั้งไว้" +msgid "%c%s... Done" +msgstr "%c%s... เสร็จแล้ว" -#: apt-pkg/edsp.cc:50 apt-pkg/edsp.cc:70 -msgid "Send scenario to solver" -msgstr "ส่งสภาวการณ์ไปยังกลไกการแก้ปัญหา" +#: apt-pkg/contrib/progress.cc:181 +msgid "..." +msgstr "..." -#: apt-pkg/edsp.cc:216 -msgid "Send request to solver" -msgstr "ส่งคำสั่งไปยังกลไกการแก้ปัญหา" +#. Print the spinner +#: apt-pkg/contrib/progress.cc:197 +#, c-format +msgid "%c%s... %u%%" +msgstr "%c%s... %u%%" -#: apt-pkg/edsp.cc:286 -msgid "Prepare for receiving solution" -msgstr "เตรียมรับคำตอบ" +#. d means days, h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:406 +#, c-format +msgid "%lid %lih %limin %lis" +msgstr "%liวัน %liชม. %liนาที %liวิ" -#: apt-pkg/edsp.cc:293 -msgid "External solver failed without a proper error message" -msgstr "กลไกการแก้ปัญหาภายนอกทำงานล้มเหลวโดยไม่มีข้อความข้อผิดพลาดที่เหมาะสม" +#. h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:413 +#, c-format +msgid "%lih %limin %lis" +msgstr "%liชม. %liนาที %liวิ" -#: apt-pkg/edsp.cc:563 apt-pkg/edsp.cc:566 apt-pkg/edsp.cc:571 -msgid "Execute external solver" -msgstr "เรียกกลไกการแก้ปัญหาภายนอก" +#. min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:420 +#, c-format +msgid "%limin %lis" +msgstr "%liนาที %liวิ" -#: apt-pkg/install-progress.cc:57 +#. s means seconds +#: apt-pkg/contrib/strutl.cc:425 #, c-format -msgid "Progress: [%3i%%]" -msgstr "" +msgid "%lis" +msgstr "%liวิ" -#: apt-pkg/install-progress.cc:91 apt-pkg/install-progress.cc:174 -msgid "Running dpkg" -msgstr "กำลังเรียก dpkg" +#: apt-pkg/contrib/strutl.cc:1236 +#, c-format +msgid "Selection %s not found" +msgstr "ไม่พบรายการเลือก %s" -#: apt-pkg/update.cc:103 apt-pkg/update.cc:105 +#: apt-pkg/deb/debsystem.cc:91 +#, c-format msgid "" -"Some index files failed to download. They have been ignored, or old ones " -"used instead." -msgstr "ดาวน์โหลดแฟ้มดัชนีบางแฟ้มไม่สำเร็จ จะข้ามรายการดังกล่าวไป หรือใช้ข้อมูลเก่าแทน" +"Unable to lock the administration directory (%s), is another process using " +"it?" +msgstr "ไม่สามารถล็อคไดเรกทอรีดูแลระบบ (%s) มีโพรเซสอื่นใช้งานอยู่หรือเปล่า?" + +#: apt-pkg/deb/debsystem.cc:94 +#, c-format +msgid "Unable to lock the administration directory (%s), are you root?" +msgstr "ไม่สามารถล็อคไดเรกทอรีดูแลระบบ (%s) คุณเป็น root หรือเปล่า?" + +#. TRANSLATORS: the %s contains the recovery command, usually +#. dpkg --configure -a +#: apt-pkg/deb/debsystem.cc:110 +#, c-format +msgid "" +"dpkg was interrupted, you must manually run '%s' to correct the problem. " +msgstr "dpkg ถูกขัดจังหวะ คุณต้องเรียก '%s' เองเพื่อแก้ปัญหา" + +#: apt-pkg/deb/debsystem.cc:128 +msgid "Not locked" +msgstr "ไม่ได้ล็อคอยู่" #: apt-pkg/deb/dpkgpm.cc:95 #, c-format @@ -3394,20 +3455,20 @@ msgstr "ถอดถอน %s อย่างสมบูรณ์แล้ว" #: apt-pkg/deb/dpkgpm.cc:1065 msgid "ioctl(TIOCGWINSZ) failed" -msgstr "" +msgstr "ioctl(TIOCGWINSZ) ล้มเหลว" #: apt-pkg/deb/dpkgpm.cc:1068 apt-pkg/deb/dpkgpm.cc:1089 -#, fuzzy, c-format +#, c-format msgid "Can not write log (%s)" -msgstr "ไม่สามารถเขียนลงแฟ้ม %s" +msgstr "ไม่สามารถเขียนปูม (%s)" #: apt-pkg/deb/dpkgpm.cc:1068 msgid "Is /dev/pts mounted?" -msgstr "" +msgstr "ได้เมานท์ /dev/pts ไว้หรือไม่?" #: apt-pkg/deb/dpkgpm.cc:1089 msgid "Is stdout a terminal?" -msgstr "" +msgstr "stdout เป็นเทอร์มินัลหรือไม่?" #: apt-pkg/deb/dpkgpm.cc:1567 msgid "Operation was interrupted before it could finish" @@ -3442,11 +3503,11 @@ msgid "" msgstr "ไม่มีการเขียนรายงาน apport เพราะข้อความข้อผิดพลาดระบุว่าเกิดจากหน่วยความจำเต็ม" #: apt-pkg/deb/dpkgpm.cc:1656 apt-pkg/deb/dpkgpm.cc:1662 -#, fuzzy msgid "" "No apport report written because the error message indicates an issue on the " "local system" -msgstr "ไม่มีการเขียนรายงาน apport เพราะข้อความข้อผิดพลาดระบุว่าเกิดจากดิสก์เต็ม" +msgstr "" +"ไม่มีการเขียนรายงาน apport เพราะข้อความข้อผิดพลาดระบุว่าเกิดจากปัญหาของระบบในเครื่อง" #: apt-pkg/deb/dpkgpm.cc:1683 msgid "" @@ -3454,30 +3515,6 @@ msgid "" msgstr "" "ไม่มีการเขียนรายงาน apport เพราะข้อความข้อผิดพลาดระบุว่าเกิดจากปัญหาการอ่าน/เขียนของ dpkg" -#: apt-pkg/deb/debsystem.cc:91 -#, c-format -msgid "" -"Unable to lock the administration directory (%s), is another process using " -"it?" -msgstr "ไม่สามารถล็อคไดเรกทอรีดูแลระบบ (%s) มีโพรเซสอื่นใช้งานอยู่หรือเปล่า?" - -#: apt-pkg/deb/debsystem.cc:94 -#, c-format -msgid "Unable to lock the administration directory (%s), are you root?" -msgstr "ไม่สามารถล็อคไดเรกทอรีดูแลระบบ (%s) คุณเป็น root หรือเปล่า?" - -#. TRANSLATORS: the %s contains the recovery command, usually -#. dpkg --configure -a -#: apt-pkg/deb/debsystem.cc:110 -#, c-format -msgid "" -"dpkg was interrupted, you must manually run '%s' to correct the problem. " -msgstr "dpkg ถูกขัดจังหวะ คุณต้องเรียก '%s' เองเพื่อแก้ปัญหา" - -#: apt-pkg/deb/debsystem.cc:128 -msgid "Not locked" -msgstr "ไม่ได้ล็อคอยู่" - #~ msgid "%s not a valid DEB package." #~ msgstr "%s ไม่ใช่แพกเกจ DEB ที่ใช้การได้" @@ -3629,7 +3666,7 @@ msgstr "ไม่ได้ล็อคอยู่" #~ msgstr "ข้อมูลผิดพลาดในแฟ้ม diversion: %s" #~ msgid "Internal error adding a diversion" -#~ msgstr "เกิดข้อผิดพลาดภายในขณะเพิ่ม diversion" +#~ msgstr "เกิดข้อผิดพลาดภายในขณะเพิ่มการเบนแฟ้ม" #~ msgid "The pkg cache must be initialized first" #~ msgstr "ต้องกำหนดค่าตั้งต้นแคชของแพกเกจก่อน" -- cgit v1.2.3 From a268c98635f96a5ebb432c14f3c5ba6bbd605281 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Mon, 21 Apr 2014 16:35:28 -0400 Subject: Consistently use Dpkg::Progress* in documentation Closes: 745452 --- doc/apt-get.8.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index 1ed08904e..a3bfc331c 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -536,7 +536,7 @@ terminal window when packages are installed, upgraded or removed. For a machine parsable version of this data see README.progress-reporting in the apt doc directory. - Configuration Item: DpkgPM::Progress and Dpkg::Progress-Fancy. + Configuration Item: Dpkg::Progress and Dpkg::Progress-Fancy. -- cgit v1.2.3