diff options
110 files changed, 4020 insertions, 3866 deletions
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/.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/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) 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/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/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<std::string> const comp = _config->FindVector("APT::Compressor"); for (std::vector<std::string>::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)); } diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 188bb87ee..de73a7fd8 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; @@ -1080,11 +1080,18 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co TemporaryFileName = string(name); free(name); - if(Perms != 600 && fchmod(iFd, Perms) == -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, Perms); + iFd = open(FileName.c_str(), fileflags, AccessMode); this->FileName = FileName; if (iFd == -1 || OpenInternDescriptor(Mode, compressor) == false) @@ -1353,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 @@ -1646,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 @@ -1705,7 +1717,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) { 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) 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 <apt-pkg/macros.h> + #include <string> #include <unistd.h> #include <signal.h> @@ -120,6 +122,7 @@ namespace Progress { private: static void staticSIGWINCH(int); static std::vector<PackageManagerFancy*> instances; + APT_HIDDEN bool DrawStatusLine(); protected: void SetupTerminalScrollArea(int nr_rows); 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) 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-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<CommandLine::Args> &Args, char con static bool addArgumentsAPTGet(std::vector<CommandLine::Args> &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<CommandLine::Args> &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); 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<std::string, std::string>( @@ -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/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/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 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 <deity@lists.debian.org>" 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 <mvo@debian.org> 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/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/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: <literal>DpkgPM::Progress</literal> and <literal>Dpkg::Progress-Fancy</literal>.</para></listitem> + Configuration Item: <literal>Dpkg::Progress</literal> and <literal>Dpkg::Progress-Fancy</literal>.</para></listitem> </varlistentry> 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 @@ "> <!-- this will be updated by 'prepare-release' --> -<!ENTITY apt-product-version "1.0"> +<!ENTITY apt-product-version "1.0.1"> <!-- (Code)names for various things used all over the place --> <!ENTITY oldstable-codename "squeeze"> diff --git a/doc/apt.8.xml b/doc/apt.8.xml index 8d3b00fb3..bcad5ee7f 100644 --- a/doc/apt.8.xml +++ b/doc/apt.8.xml @@ -143,12 +143,12 @@ <refsect1><title>Differences to &apt-get;</title> <para>The <command>apt</command> 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: <itemizedlist> <listitem> - <para>The option <literal>DPkgPM::Progress-Fancy</literal> is enabled. + <para>The option <literal>DPkg::Progress-Fancy</literal> is enabled. </para> </listitem> <listitem> 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 <deity@lists.debian.org>\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 <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -636,7 +636,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <c.leick@vollbio.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" @@ -790,7 +790,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <ocampagne@gmail.com>\n" "Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n" @@ -874,7 +874,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <bubulle@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" @@ -785,7 +785,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <beatricet@libero.it>\n" "Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n" @@ -837,7 +837,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <nabetaro@debian.or.jp>\n" "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\n" @@ -830,7 +830,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <robert@debian.org>\n" "Language-Team: Polish <manpages-pl-list@lists.sourceforge.net>\n" @@ -833,7 +833,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <a_monteiro@netcabo.pt>\n" "Language-Team: Portuguese <l10n@debianpt.org>\n" @@ -834,7 +834,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 <deity@lists.debian.org>\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 <andrelop@debian.org>\n" "Language-Team: <debian-l10n-portuguese@lists.debian.org>\n" @@ -632,7 +632,7 @@ msgstr "" #: apt.8.xml:145 msgid "" "The <command>apt</command> 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 "" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <okhayat@yahoo.com>\n" "Language-Team: Arabic <support@arabeyes.org>\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)." @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.18\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <ivarela@softastur.org>\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)." @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.21\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <dmn@debian.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\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)." @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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ć <sapphire@linux.org.ba>\n" "Language-Team: Bosnian <lokal@lugbih.org>\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 "" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.6\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <jordi@debian.org>\n" "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\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)." @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <kurem@debian.cz>\n" "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\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)." @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: APT\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <daf@muse.19inch.net>\n" "Language-Team: Welsh <cy@pengwyn.linux.org.uk>\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)." @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <joedalton2@yahoo.dk>\n" "Language-Team: Danish <debian-l10n-danish@lists.debian.org>\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)." @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.2\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <linux@wansing-online.de>\n" "Language-Team: Debian German <debian-l10n-german@lists.debian.org>\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)." @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po.pot\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <gasepkuenden2k3@hotmail.com>\n" "Language-Team: Dzongkha <pgeyleg@dit.gov.bt>\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)བསྐྱར་མིང་བཏགས་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།" @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_el\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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: Θανάσης Νάτσης <natsisthanasis@gmail.com>\n" "Language-Team: Greek <debian-l10n-greek@lists.debian.org>\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)." @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.10\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <jfs@debian.org>\n" "Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\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)." @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_eu\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <pi@beobide.net>\n" "Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\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)." @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <tale@debian.org>\n" "Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\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)." @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <bubulle@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\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)." @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_gl\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <mbouzada@gmail.com>\n" "Language-Team: galician <proxecto@trasno.net>\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)." @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt trunk\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <kelemeng at gnome dot hu>\n" "Language-Team: Hungarian <gnome-hu-list at gnome dot org>\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)." @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <milo@ubuntu.com>\n" "Language-Team: Italian <tp@lists.linux.it>\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)." @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.16.1\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <kmuto@debian.org>\n" "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\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)" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_km\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <khoemsokhem@khmeros.info>\n" "Language-Team: Khmer <support@khmeros.info>\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) ។" @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <cwryu@debian.org>\n" "Language-Team: Korean <debian-l10n-korean@lists.debian.org>\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)." @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-ku\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <erdal dot ronahi at gmail dot com>\n" "Language-Team: ku <ubuntu-l10n-kur@lists.ubuntu.com>\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)" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <gintas@akl.lt>\n" "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\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 "" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <sampadanakhare@gmail.com>\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)." @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <hans@nordhaug.priv.no>\n" "Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\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)." @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <pokharelshiva@hotmail.com>\n" "Language-Team: Nepali <info@mpp.org.np>\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) ।" @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.15.9\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <schot@a-eskwadraat.nl>\n" "Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\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)." @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_nn\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <korsvoll@skulelinux.no>\n" "Language-Team: Norwegian nynorsk <i18n-nn@lister.ping.uio.no>\n" @@ -831,9 +831,9 @@ msgstr "Tidsavbrot p samband" 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)." @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.3\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <michal.kulach@gmail.com>\n" "Language-Team: Polish <debian-l10n-polish@lists.debian.org>\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)" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <elmig@debianpt.org>\n" "Language-Team: Portuguese <traduz@debianpt.org>\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 <deity@lists.debian.org>\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) <faw@debian.org>\n" "Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian." @@ -839,9 +839,9 @@ msgstr "Conexão expirou" msgid "Server closed the connection" msgstr "Servidor fechou a conexã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" @@ -854,9 +854,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" @@ -1117,7 +1117,7 @@ msgstr "Conexão falhou" msgid "Internal error" msgstr "Erro interno" -#: apt-private/private-list.cc:132 +#: apt-private/private-list.cc:131 msgid "Listing" msgstr "" @@ -2594,54 +2594,54 @@ msgstr "Sub-processo %s finalizou inesperadamente" msgid "Problem closing the gzip file %s" msgstr "Problema fechando o arquivo" -#: 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 arquivo %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 "Não foi possível abrir \"pipe\" para %s" -#: apt-pkg/contrib/fileutl.cc:1310 +#: apt-pkg/contrib/fileutl.cc:1317 msgid "Failed to create subprocess IPC" msgstr "Falhou ao criar sub-processo IPC" -#: apt-pkg/contrib/fileutl.cc:1365 +#: apt-pkg/contrib/fileutl.cc:1372 msgid "Failed to exec compressor " msgstr "Falhou ao executar compactador " -#: 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 "leitura, ainda restam %lu para serem lidos mas nenhum deixado" -#: 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 "escrita, ainda restam %lu para gravar mas não foi possível" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/contrib/fileutl.cc:1918 #, fuzzy, c-format msgid "Problem closing the file %s" msgstr "Problema fechando o arquivo" -#: 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 sincronizando o arquivo" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/contrib/fileutl.cc:1941 #, fuzzy, c-format msgid "Problem unlinking the file %s" msgstr "Problema removendo o arquivo" -#: apt-pkg/contrib/fileutl.cc:1947 +#: apt-pkg/contrib/fileutl.cc:1954 msgid "Problem syncing the file" msgstr "Problema sincronizando o arquivo" -#: 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 "renomeação falhou, %s (%s -> %s)." @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ro\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <eddy.petrisor@gmail.com>\n" "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\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)." @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt rev2227.1.3\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <yuray@komyakino.ru>\n" "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\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)." @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <helix84@centrum.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\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)." @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <andrej.znidarsic@gmail.com>\n" "Language-Team: Slovenian <sl@li.org>\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)." @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <po@danielnylander.se>\n" "Language-Team: Swedish <debian-l10n-swedish@debian.org>\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)." @@ -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 <thep@linux.thai.net>, 2007-2008, 2012. +# Theppiak Karoonboonyanan <thep@debian.org>, 2007-2008, 2012, 2014. # Arthit Suriyawongkul <arthit@gmail.com>, 2008. # msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" -"PO-Revision-Date: 2012-10-27 22:44+0700\n" -"Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\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 <thep@debian.org>\n" "Language-Team: Thai <thai-l10n@googlegroups.com>\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: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: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: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: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:132 -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,171 +1602,89 @@ 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-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-update.cc:31 -msgid "The update command takes no arguments" -msgstr "คำสั่ง update ไม่รับอาร์กิวเมนต์เพิ่ม" - -#: apt-private/private-upgrade.cc:25 -msgid "Calculating upgrade... " -msgstr "กำลังคำนวณการปรับรุ่น... " - -#: apt-private/private-upgrade.cc:30 -#, fuzzy -msgid "Internal error, Upgrade broke stuff" -msgstr "เกิดข้อผิดพลาดภายใน: AllUpgrade ทำความเสียหาย" - -#: apt-private/private-upgrade.cc:32 -msgid "Done" -msgstr "เสร็จแล้ว" - #: apt-private/private-search.cc:51 msgid "Full Text Search" -msgstr "" +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] "" +msgstr[0] "มีอีก %i ระเบียน กรุณาใช้ตัวเลือก '-a' หากต้องการดูเพิ่ม" #: 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" -" ดังนั้น อย่าถือผลลัพธ์นี้ว่าตรงกับสภาพความเป็นจริงของระบบ!" +msgstr "ไม่ใช่แพกเกจจริง (เสมือน)" #: apt-private/private-sources.cc:58 -#, fuzzy, c-format +#, c-format msgid "Failed to parse %s. Edit again? " -msgstr "ไม่สามารถเปลี่ยนชื่อ %s ไปเป็น %s" +msgstr "แจง %s ไม่สำเร็จ จะแก้ไขอีกครั้งหรือไม่? " #: apt-private/private-sources.cc:70 #, 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 "ดึง:" +msgstr "แฟ้ม '%s' ของคุณมีการเปลี่ยนแปลง กรุณาเรียก 'apt-get update'" -#: apt-private/acqprogress.cc:121 -msgid "Ign " -msgstr "ข้าม " - -#: apt-private/acqprogress.cc:125 -msgid "Err " -msgstr "ปัญหา " +#: apt-private/private-update.cc:31 +msgid "The update command takes no arguments" +msgstr "คำสั่ง update ไม่รับอาร์กิวเมนต์เพิ่ม" -#: apt-private/acqprogress.cc:146 -#, c-format -msgid "Fetched %sB in %s (%sB/s)\n" -msgstr "ดาวน์โหลด %sB ใน %s (%sB/s)\n" +#: apt-private/private-upgrade.cc:25 +msgid "Calculating upgrade... " +msgstr "กำลังคำนวณการปรับรุ่น... " -#: apt-private/acqprogress.cc:236 -#, c-format -msgid " [Working]" -msgstr " [กำลังทำงาน]" +#: apt-private/private-upgrade.cc:30 +msgid "Internal error, Upgrade broke stuff" +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-upgrade.cc:32 +msgid "Done" +msgstr "เสร็จแล้ว" #. 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 +#: 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 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 +#: apt-pkg/contrib/fileutl.cc:484 #, 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 +#: 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/clean.cc:127 apt-pkg/contrib/cdromutl.cc:201 +#: apt-pkg/contrib/cdromutl.cc:235 #, c-format msgid "Unable to change to %s" msgstr "ไม่สามารถเปลี่ยนไดเรกทอรีไปยัง %s" @@ -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 +#: apt-pkg/algorithms.cc:1086 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" +"ข้อผิดพลาด: pkgProblemResolver::Resolve สร้างคำตอบที่ทำให้เกิดแพกเกจเสีย " +"อาจเกิดจากแพกเกจที่ถูกกำหนดให้คงรุ่นไว้" + +#: apt-pkg/algorithms.cc:1088 +msgid "Unable to correct problems, you have held broken packages." +msgstr "ไม่สามารถแก้ปัญหาได้ คุณได้คงรุ่นแพกเกจที่เสียอยู่ไว้" + +#: 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 "ไม่สามารถอ่านรายชื่อแหล่งแพกเกจได้" + +#: apt-pkg/cacheset.cc:487 #, c-format -msgid "Syntax error %s:%u: Included from here" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: include จากที่นี่" +msgid "Release '%s' for '%s' was not found" +msgstr "ไม่พบรุ่นย่อย '%s' ของ '%s'" -#: apt-pkg/contrib/configuration.cc:897 +#: apt-pkg/cacheset.cc:490 #, c-format -msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: พบ directive '%s' ที่ไม่รองรับ" +msgid "Version '%s' for '%s' was not found" +msgstr "ไม่พบรุ่น '%s' ของ '%s'" -#: apt-pkg/contrib/configuration.cc:900 +#: apt-pkg/cacheset.cc:601 #, c-format -msgid "Syntax error %s:%u: clear directive requires an option tree as argument" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: directive 'clear' ต้องมีอาร์กิวเมนต์เป็นลำดับชั้นตัวเลือก" +msgid "Couldn't find task '%s'" +msgstr "ไม่พบงานติดตั้ง '%s'" -#: apt-pkg/contrib/configuration.cc:950 +#: apt-pkg/cacheset.cc:607 #, c-format -msgid "Syntax error %s:%u: Extra junk at end of file" -msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังจบแฟ้ม" +msgid "Couldn't find any package by regex '%s'" +msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" -#: apt-pkg/contrib/progress.cc:148 +#: apt-pkg/cacheset.cc:613 #, c-format -msgid "%c%s... Error!" -msgstr "%c%s... ผิดพลาด!" +msgid "Couldn't find any package by glob '%s'" +msgstr "ไม่พบแพกเกจที่ตรงกับ glob '%s'" -#: apt-pkg/contrib/progress.cc:150 +#: apt-pkg/cacheset.cc:624 #, c-format -msgid "%c%s... Done" -msgstr "%c%s... เสร็จแล้ว" +msgid "Can't select versions from package '%s' as it is purely virtual" +msgstr "ไม่สามารถเลือกรุ่นต่างๆ ของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" -#: apt-pkg/contrib/progress.cc:181 -msgid "..." +#: apt-pkg/cacheset.cc:631 apt-pkg/cacheset.cc:638 +#, c-format +msgid "" +"Can't select installed nor candidate version from package '%s' as it has " +"neither of them" msgstr "" +"ไม่สามารถเลือกรุ่นที่ติดตั้งไว้หรือรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีทั้งสองอย่าง" -#. Print the spinner -#: apt-pkg/contrib/progress.cc:197 -#, fuzzy, c-format -msgid "%c%s... %u%%" -msgstr "%c%s... เสร็จแล้ว" - -#: apt-pkg/contrib/cmndline.cc:121 +#: apt-pkg/cacheset.cc:645 #, c-format -msgid "Command line option '%c' [from %s] is not known." -msgstr "ไม่รู้จักตัวเลือกบรรทัดคำสั่ง '%c' [จาก %s]" +msgid "Can't select newest version from package '%s' as it is purely virtual" +msgstr "ไม่สามารถเลือกรุ่นใหม่ที่สุดของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" -#: apt-pkg/contrib/cmndline.cc:146 apt-pkg/contrib/cmndline.cc:155 -#: apt-pkg/contrib/cmndline.cc:163 +#: apt-pkg/cacheset.cc:653 #, c-format -msgid "Command line option %s is not understood" -msgstr "ไม่เข้าใจตัวเลือกบรรทัดคำสั่ง %s" +msgid "Can't select candidate version from package %s as it has no candidate" +msgstr "ไม่สามารถเลือกรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีรุ่นสำหรับติดตั้ง" -#: apt-pkg/contrib/cmndline.cc:168 +#: apt-pkg/cacheset.cc:661 #, c-format -msgid "Command line option %s is not boolean" -msgstr "ตัวเลือกบรรทัดคำสั่ง %s ไม่ได้เป็นค่าบูลีน" +msgid "Can't select installed version from package %s as it is not installed" +msgstr "ไม่สามารถเลือกรุ่นที่ติดตั้งไว้ของแพกเกจ '%s' ได้ เนื่องจากแพกเกจไม่ได้ติดตั้งไว้" -#: apt-pkg/contrib/cmndline.cc:209 apt-pkg/contrib/cmndline.cc:230 +#: apt-pkg/cdrom.cc:497 apt-pkg/sourcelist.cc:347 #, c-format -msgid "Option %s requires an argument." -msgstr "ตัวเลือก %s ต้องมีอาร์กิวเมนต์" +msgid "Line %u too long in source list %s." +msgstr "บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s ยาวเกินไป" -#: apt-pkg/contrib/cmndline.cc:243 apt-pkg/contrib/cmndline.cc:249 +#: apt-pkg/cdrom.cc:577 #, c-format -msgid "Option %s: Configuration item specification must have an =<val>." -msgstr "ตัวเลือก %s: การกำหนดรายการค่าตั้งต้องมี =<val>" +msgid "Using CD-ROM mount point %s\n" +msgstr "กำลังใช้จุดเมานท์ซีดีรอม %s\n" -#: apt-pkg/contrib/cmndline.cc:278 -#, c-format -msgid "Option %s requires an integer argument, not '%s'" -msgstr "ตัวเลือก %s ต้องการอาร์กิวเมนต์จำนวนเต็ม ไม่ใช่ '%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/cmndline.cc:309 -#, c-format -msgid "Option '%s' is too long" -msgstr "ตัวเลือก '%s' ยาวเกินไป" +#: apt-pkg/cdrom.cc:592 +msgid "Waiting for disc...\n" +msgstr "กำลังรอแผ่น...\n" -#: apt-pkg/contrib/cmndline.cc:341 -#, c-format -msgid "Sense %s is not understood, try true or false." -msgstr "ไม่เข้าใจค่าบูลีน %s กรุณาลองใช้ true หรือ false" +#: apt-pkg/cdrom.cc:602 +msgid "Mounting CD-ROM...\n" +msgstr "กำลังเมานท์ซีดีรอม...\n" -#: apt-pkg/contrib/cmndline.cc:391 -#, c-format -msgid "Invalid operation %s" -msgstr "ไม่รู้จักคำสั่ง %s" +#: apt-pkg/cdrom.cc:610 +msgid "Identifying... " +msgstr "กำลังตรวจสอบชื่อแผ่น... " -#: apt-pkg/contrib/cdromutl.cc:65 +#: apt-pkg/cdrom.cc:648 #, c-format -msgid "Unable to stat the mount point %s" -msgstr "ไม่สามารถ stat จุดเมานท์ %s" +msgid "Stored label: %s\n" +msgstr "ชื่อที่เก็บไว้: %s\n" -#: apt-pkg/contrib/cdromutl.cc:246 -msgid "Failed to stat the cdrom" -msgstr "ไม่สามารถ stat ซีดีรอม" +#: apt-pkg/cdrom.cc:672 +msgid "Scanning disc for index files...\n" +msgstr "กำลังสำรวจข้อมูลในแผ่นเพื่อหาแฟ้มดัชนี...\n" -#: apt-pkg/contrib/fileutl.cc:193 +#: apt-pkg/cdrom.cc:722 #, c-format -msgid "Not using locking for read only lock file %s" -msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %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:198 -#, c-format -msgid "Could not open lock file %s" -msgstr "ไม่สามารถเปิดแฟ้มล็อค %s" +#: 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:221 +#: apt-pkg/cdrom.cc:760 #, c-format -msgid "Not using locking for nfs mounted lock file %s" -msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่เมานท์ผ่าน nfs" +msgid "Found label '%s'\n" +msgstr "พบชื่อแผ่น '%s'\n" -#: apt-pkg/contrib/fileutl.cc:226 -#, c-format -msgid "Could not get lock %s" -msgstr "ไม่สามารถล็อค %s" +#: apt-pkg/cdrom.cc:789 +msgid "That is not a valid name, try again.\n" +msgstr "ไม่ใช่ชื่อที่ใช้ได้ กรุณาลองใหม่\n" -#: apt-pkg/contrib/fileutl.cc:363 apt-pkg/contrib/fileutl.cc:477 +#: apt-pkg/cdrom.cc:806 #, c-format -msgid "List of files can't be created as '%s' is not a directory" -msgstr "ไม่สามารถสร้างรายชื่อแฟ้มได้ เนื่องจาก '%s' ไม่ใช่ไดเรกทอรี" +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" +"แผ่นนี้เรียกชื่อว่า:\n" +"'%s'\n" -#: apt-pkg/contrib/fileutl.cc:397 -#, c-format -msgid "Ignoring '%s' in directory '%s' as it is not a regular file" -msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่ใช่แฟ้มธรรมดา" +#: apt-pkg/cdrom.cc:808 +msgid "Copying package lists..." +msgstr "กำลังคัดลอกรายชื่อแพกเกจ..." -#: apt-pkg/contrib/fileutl.cc:415 +#: 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 "Ignoring file '%s' in directory '%s' as it has no filename extension" -msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่มีส่วนขยายในชื่อแฟ้ม" +msgid "Unable to stat %s." +msgstr "ไม่สามารถ stat %s" -#: apt-pkg/contrib/fileutl.cc:424 +#: 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 "" -"Ignoring file '%s' in directory '%s' as it has an invalid filename extension" -msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากส่วนขยายในชื่อแฟ้มไม่สามารถใช้การได้" +msgid "Failed to open StateFile %s" +msgstr "ไม่สามารถเปิดแฟ้มสถานะ %s" -#: apt-pkg/contrib/fileutl.cc:827 +#: apt-pkg/depcache.cc:256 #, c-format -msgid "Sub-process %s received a segmentation fault." -msgstr "โพรเซสย่อย %s เกิดข้อผิดพลาดของการใช้ย่านหน่วยความจำ (segmentation fault)" +msgid "Failed to write temporary StateFile %s" +msgstr "ไม่สามารถเขียนแฟ้มสถานะชั่วคราว %s" -#: apt-pkg/contrib/fileutl.cc:829 +#: 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 received signal %u." -msgstr "โพรเซสย่อย %s ได้รับสัญญาณ %u" +msgid "Wrote %i records.\n" +msgstr "เขียนแล้ว %i ระเบียน\n" -#: apt-pkg/contrib/fileutl.cc:833 apt-pkg/contrib/gpgv.cc:239 +#: apt-pkg/indexcopy.cc:238 apt-pkg/indexcopy.cc:775 #, c-format -msgid "Sub-process %s returned an error code (%u)" -msgstr "โพรเซสย่อย %s คืนค่าข้อผิดพลาด (%u)" +msgid "Wrote %i records with %i missing files.\n" +msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม\n" -#: apt-pkg/contrib/fileutl.cc:835 apt-pkg/contrib/gpgv.cc:232 +#: apt-pkg/indexcopy.cc:241 apt-pkg/indexcopy.cc:778 #, c-format -msgid "Sub-process %s exited unexpectedly" -msgstr "โพรเซสย่อย %s จบการทำงานกะทันหัน" +msgid "Wrote %i records with %i mismatched files\n" +msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มผิดขนาด %i แฟ้ม\n" -#: apt-pkg/contrib/fileutl.cc:916 +#: apt-pkg/indexcopy.cc:244 apt-pkg/indexcopy.cc:781 #, c-format -msgid "Problem closing the gzip file %s" -msgstr "เกิดปัญหาขณะปิดแฟ้ม gzip %s" +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม และแฟ้มผิดขนาด %i แฟ้ม\n" -#: apt-pkg/contrib/fileutl.cc:1097 +#: apt-pkg/indexcopy.cc:515 #, c-format -msgid "Could not open file %s" -msgstr "ไม่สามารถเปิดแฟ้ม %s" +msgid "Can't find authentication record for: %s" +msgstr "ไม่พบระเบียนยืนยันความแท้สำหรับ: %s" -#: apt-pkg/contrib/fileutl.cc:1156 apt-pkg/contrib/fileutl.cc:1203 +#: apt-pkg/indexcopy.cc:521 #, c-format -msgid "Could not open file descriptor %d" -msgstr "ไม่สามารถเปิด file destriptor %d" +msgid "Hash mismatch for: %s" +msgstr "แฮชไม่ตรงกันสำหรับ: %s" -#: apt-pkg/contrib/fileutl.cc:1310 -msgid "Failed to create subprocess IPC" -msgstr "สร้าง IPC ของโพรเซสย่อยไม่สำเร็จ" +#: apt-pkg/indexrecords.cc:78 +#, c-format +msgid "Unable to parse Release file %s" +msgstr "ไม่สามารถแจงแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1365 -msgid "Failed to exec compressor " -msgstr "เรียกทำงานตัวบีบอัดไม่สำเร็จ" +#: apt-pkg/indexrecords.cc:86 +#, c-format +msgid "No sections in Release file %s" +msgstr "ไม่มีหัวข้อย่อยในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1506 +#: apt-pkg/indexrecords.cc:117 #, c-format -msgid "read, still have %llu to read but none left" -msgstr "read: ยังเหลือ %llu ที่ยังไม่ได้อ่าน แต่ข้อมูลหมดแล้ว" +msgid "No Hash entry in Release file %s" +msgstr "ไม่มีรายการแฮชในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1619 apt-pkg/contrib/fileutl.cc:1641 +#: apt-pkg/indexrecords.cc:130 #, c-format -msgid "write, still have %llu to write but couldn't" -msgstr "write: ยังเหลือ %llu ที่ยังไม่ได้เขียน แต่ไม่สามารถเขียนได้" +msgid "Invalid 'Valid-Until' entry in Release file %s" +msgstr "รายการ 'Valid-Until' ไม่ถูกต้องในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1911 +#: apt-pkg/indexrecords.cc:149 #, c-format -msgid "Problem closing the file %s" -msgstr "เกิดปัญหาขณะปิดแฟ้ม %s" +msgid "Invalid 'Date' entry in Release file %s" +msgstr "รายการ 'Date' ไม่ถูกต้องในแฟ้ม Release %s" -#: apt-pkg/contrib/fileutl.cc:1923 +#: apt-pkg/init.cc:145 #, c-format -msgid "Problem renaming the file %s to %s" -msgstr "เกิดปัญหาขณะเปลี่ยนชื่อแฟ้ม %s ไปเป็น %s" +msgid "Packaging system '%s' is not supported" +msgstr "ไม่รองรับระบบแพกเกจ '%s'" -#: apt-pkg/contrib/fileutl.cc:1934 +#: apt-pkg/init.cc:161 +msgid "Unable to determine a suitable packaging system type" +msgstr "ไม่สามารถระบุชนิดของระบบแพกเกจที่เหมาะสมได้" + +#: apt-pkg/install-progress.cc:57 #, c-format -msgid "Problem unlinking the file %s" -msgstr "เกิดปัญหาขณะลบแฟ้ม %s" +msgid "Progress: [%3i%%]" +msgstr "ความคืบหน้า: [%3i%%]" -#: apt-pkg/contrib/fileutl.cc:1947 -msgid "Problem syncing the file" -msgstr "เกิดปัญหาขณะ sync แฟ้ม" +#: apt-pkg/install-progress.cc:91 apt-pkg/install-progress.cc:174 +msgid "Running dpkg" +msgstr "กำลังเรียก dpkg" -#: apt-pkg/contrib/fileutl.cc:2043 apt-pkg/acquire-item.cc:148 +#: apt-pkg/packagemanager.cc:303 apt-pkg/packagemanager.cc:932 #, c-format -msgid "rename failed, %s (%s -> %s)." -msgstr "เปลี่ยนชื่อไม่สำเร็จ: %s (%s -> %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)" -#. TRANSLATOR: %s is the trusted keyring parts directory -#: apt-pkg/contrib/gpgv.cc:72 +#: apt-pkg/packagemanager.cc:504 apt-pkg/packagemanager.cc:535 #, c-format -msgid "No keyring installed in %s." -msgstr "ไม่มีพวงกุญแจติดตั้งไว้ใน %s" +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/pkgcachegen.cc:93 +msgid "Cache has an incompatible versioning system" +msgstr "แคชมีระบบนับรุ่นที่ไม่ตรงกัน" -#: apt-pkg/depcache.cc:139 -msgid "Candidate versions" -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:168 -msgid "Dependency generation" -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:188 apt-pkg/depcache.cc:221 apt-pkg/depcache.cc:225 -msgid "Reading state information" -msgstr "กำลังอ่านข้อมูลสถานะ" +#: apt-pkg/pkgcachegen.cc:260 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "โอ้ คุณมาถึงขีดจำกัดจำนวนรุ่นแพกเกจที่ APT สามารถรองรับได้แล้ว" -#: apt-pkg/depcache.cc:250 +#: 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 +#, c-format msgid "Type '%s' is not known on stanza %u in source list %s" -msgstr "ไม่รู้จักชนิด '%s' ที่บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %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/srcrecords.cc:52 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "คุณต้องเพิ่ม URI ชนิด 'source' ใน sources.list ของคุณด้วย" -#: apt-pkg/packagemanager.cc:504 apt-pkg/packagemanager.cc:535 +#: apt-pkg/tagfile.cc:140 #, c-format -msgid "Could not configure '%s'. " -msgstr "ไม่สามารถตั้งค่า '%s'" +msgid "Unable to parse package file %s (1)" +msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (1)" -#: apt-pkg/packagemanager.cc:577 +#: apt-pkg/tagfile.cc:237 #, c-format +msgid "Unable to parse package file %s (2)" +msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (2)" + +#: apt-pkg/update.cc:103 apt-pkg/update.cc:105 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" +"Some index files failed to download. They have been ignored, or old ones " +"used instead." +msgstr "ดาวน์โหลดแฟ้มดัชนีบางแฟ้มไม่สำเร็จ จะข้ามรายการดังกล่าวไป หรือใช้ข้อมูลเก่าแทน" -#: apt-pkg/pkgrecords.cc:38 +#: apt-pkg/vendorlist.cc:85 #, c-format -msgid "Index file type '%s' is not supported" -msgstr "ไม่รองรับแฟ้มดัชนีชนิด '%s'" +msgid "Vendor block %s contains no fingerprint" +msgstr "บล็อคผู้ผลิต %s ไม่มีลายนิ้วมือ" -#: apt-pkg/algorithms.cc:265 +#: apt-pkg/contrib/cdromutl.cc:65 #, c-format -msgid "" -"The package %s needs to be reinstalled, but I can't find an archive for it." -msgstr "จำเป็นต้องติดตั้งแพกเกจ %s ซ้ำ แต่หาตัวแพกเกจไม่พบ" - -#: apt-pkg/algorithms.cc:1083 -msgid "" -"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " -"held packages." -msgstr "" -"ข้อผิดพลาด: pkgProblemResolver::Resolve สร้างคำตอบที่ทำให้เกิดแพกเกจเสีย " -"อาจเกิดจากแพกเกจที่ถูกกำหนดให้คงรุ่นไว้" +msgid "Unable to stat the mount point %s" +msgstr "ไม่สามารถ stat จุดเมานท์ %s" -#: apt-pkg/algorithms.cc:1085 -msgid "Unable to correct problems, you have held broken packages." -msgstr "ไม่สามารถแก้ปัญหาได้ คุณได้คงรุ่นแพกเกจที่เสียอยู่ไว้" +#: apt-pkg/contrib/cdromutl.cc:246 +msgid "Failed to stat the cdrom" +msgstr "ไม่สามารถ stat ซีดีรอม" -#: apt-pkg/acquire.cc:87 apt-pkg/cdrom.cc:816 +#: apt-pkg/contrib/cmndline.cc:121 #, c-format -msgid "List directory %spartial is missing." -msgstr "ไม่มีไดเรกทอรีรายชื่อแพกเกจ %spartial" +msgid "Command line option '%c' [from %s] is not known." +msgstr "ไม่รู้จักตัวเลือกบรรทัดคำสั่ง '%c' [จาก %s]" -#: apt-pkg/acquire.cc:91 +#: apt-pkg/contrib/cmndline.cc:146 apt-pkg/contrib/cmndline.cc:155 +#: apt-pkg/contrib/cmndline.cc:163 #, c-format -msgid "Archives directory %spartial is missing." -msgstr "ไม่มีไดเรกทอรีแพกเกจ %spartial" +msgid "Command line option %s is not understood" +msgstr "ไม่เข้าใจตัวเลือกบรรทัดคำสั่ง %s" -#: apt-pkg/acquire.cc:99 +#: apt-pkg/contrib/cmndline.cc:168 #, c-format -msgid "Unable to lock directory %s" -msgstr "ไม่สามารถล็อคไดเรกทอรี %s" +msgid "Command line option %s is not boolean" +msgstr "ตัวเลือกบรรทัดคำสั่ง %s ไม่ได้เป็นค่าบูลีน" -#. only show the ETA if it makes sense -#. two days -#: apt-pkg/acquire.cc:899 +#: apt-pkg/contrib/cmndline.cc:209 apt-pkg/contrib/cmndline.cc:230 #, c-format -msgid "Retrieving file %li of %li (%s remaining)" -msgstr "กำลังดาวน์โหลดแฟ้มที่ %li จาก %li (เหลืออีก %s)" +msgid "Option %s requires an argument." +msgstr "ตัวเลือก %s ต้องมีอาร์กิวเมนต์" -#: apt-pkg/acquire.cc:901 +#: apt-pkg/contrib/cmndline.cc:243 apt-pkg/contrib/cmndline.cc:249 #, c-format -msgid "Retrieving file %li of %li" -msgstr "กำลังดาวน์โหลดแฟ้มที่ %li จาก %li" +msgid "Option %s: Configuration item specification must have an =<val>." +msgstr "ตัวเลือก %s: การกำหนดรายการค่าตั้งต้องมี =<val>" -#: apt-pkg/acquire-worker.cc:116 +#: apt-pkg/contrib/cmndline.cc:278 #, 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 "Option %s requires an integer argument, not '%s'" +msgstr "ตัวเลือก %s ต้องการอาร์กิวเมนต์จำนวนเต็ม ไม่ใช่ '%s'" -#: apt-pkg/acquire-worker.cc:169 +#: apt-pkg/contrib/cmndline.cc:309 #, c-format -msgid "Method %s did not start correctly" -msgstr "ไม่สามารถเรียกทำงานวิธีการ %s" +msgid "Option '%s' is too long" +msgstr "ตัวเลือก '%s' ยาวเกินไป" -#: apt-pkg/acquire-worker.cc:455 +#: apt-pkg/contrib/cmndline.cc:341 #, c-format -msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "กรุณาใส่แผ่นชื่อ: '%s' ลงในไดรว์ '%s' แล้วกด enter" +msgid "Sense %s is not understood, try true or false." +msgstr "ไม่เข้าใจค่าบูลีน %s กรุณาลองใช้ true หรือ false" -#: apt-pkg/init.cc:145 +#: apt-pkg/contrib/cmndline.cc:391 #, 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 "Invalid operation %s" +msgstr "ไม่รู้จักคำสั่ง %s" -#: apt-pkg/clean.cc:61 +#: apt-pkg/contrib/configuration.cc:519 #, 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 "Unrecognized type abbreviation: '%c'" +msgstr "พบตัวย่อของชนิดที่ข้อมูลไม่รู้จัก: '%c'" -#: apt-pkg/policy.cc:83 +#: apt-pkg/contrib/configuration.cc:633 #, 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 "Opening configuration file %s" +msgstr "ขณะเปิดแฟ้มค่าตั้ง %s" -#: apt-pkg/policy.cc:422 +#: apt-pkg/contrib/configuration.cc:801 #, c-format -msgid "Invalid record in the preferences file %s, no Package header" -msgstr "ระเบียนผิดรูปแบบในแฟ้มค่าปรับแต่ง %s: ไม่มีข้อมูลส่วนหัว 'Package'" +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "ไวยากรณ์ผิดพลาด %s:%u: เริ่มบล็อคโดยไม่มีชื่อ" -#: apt-pkg/policy.cc:444 +#: apt-pkg/contrib/configuration.cc:820 #, 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 "Syntax error %s:%u: Malformed tag" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: แท็กผิดรูปแบบ" -#. 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:837 #, 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 "Syntax error %s:%u: Extra junk after value" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังค่า" -#: apt-pkg/pkgcachegen.cc:576 +#: apt-pkg/contrib/configuration.cc:877 #, c-format -msgid "Package %s %s was not found while processing file dependencies" -msgstr "ไม่พบแพกเกจ %s %s ขณะประมวลผลความขึ้นต่อแฟ้ม" +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: สามารถใช้ directive ที่ระดับบนสุดได้เท่านั้น" -#: apt-pkg/pkgcachegen.cc:1211 +#: apt-pkg/contrib/configuration.cc:884 #, 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 "ผลรวมแฮชไม่ตรงกัน" +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: ใช้ include ซ้อนกันมากเกินไป" -#: apt-pkg/acquire-item.cc:168 -msgid "Size mismatch" -msgstr "ขนาดไม่ตรงกัน" +#: 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/acquire-item.cc:173 -#, fuzzy -msgid "Invalid file format" -msgstr "ไม่รู้จักคำสั่ง %s" +#: apt-pkg/contrib/configuration.cc:897 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: พบ directive '%s' ที่ไม่รองรับ" -#: apt-pkg/acquire-item.cc:1579 +#: apt-pkg/contrib/configuration.cc:900 #, 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: clear directive requires an option tree as argument" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: directive 'clear' ต้องมีอาร์กิวเมนต์เป็นลำดับชั้นตัวเลือก" -#: apt-pkg/acquire-item.cc:1595 +#: apt-pkg/contrib/configuration.cc:950 #, c-format -msgid "Unable to find hash sum for '%s' in Release file" -msgstr "ไม่พบผลรวมแฮชสำหรับ '%s' ในแฟ้ม Release" +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังจบแฟ้ม" -#: apt-pkg/acquire-item.cc:1637 -msgid "There is no public key available for the following key IDs:\n" -msgstr "ไม่มีกุญแจสาธารณะสำหรับกุญแจหมายเลขต่อไปนี้:\n" +#: apt-pkg/contrib/fileutl.cc:193 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่อ่านได้อย่างเดียว" -#: apt-pkg/acquire-item.cc:1675 +#: apt-pkg/contrib/fileutl.cc:198 #, 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 "Could not open lock file %s" +msgstr "ไม่สามารถเปิดแฟ้มล็อค %s" -#: apt-pkg/acquire-item.cc:1697 +#: apt-pkg/contrib/fileutl.cc:221 #, c-format -msgid "Conflicting distribution: %s (expected %s but got %s)" -msgstr "ชุดจัดแจกขัดแย้งกัน: %s (ต้องการ %s แต่พบ %s)" +msgid "Not using locking for nfs mounted lock file %s" +msgstr "จะไม่ใช้การล็อคกับแฟ้มล็อค %s ที่เมานท์ผ่าน nfs" -#: apt-pkg/acquire-item.cc:1727 +#: apt-pkg/contrib/fileutl.cc:226 #, 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 "Could not get lock %s" +msgstr "ไม่สามารถล็อค %s" -#. Invalid signature file, reject (LP: #346386) (Closes: #627642) -#: apt-pkg/acquire-item.cc:1737 apt-pkg/acquire-item.cc:1742 +#: apt-pkg/contrib/fileutl.cc:363 apt-pkg/contrib/fileutl.cc:477 #, c-format -msgid "GPG error: %s: %s" -msgstr "ข้อผิดพลาดจาก GPG: %s: %s" +msgid "List of files can't be created as '%s' is not a directory" +msgstr "ไม่สามารถสร้างรายชื่อแฟ้มได้ เนื่องจาก '%s' ไม่ใช่ไดเรกทอรี" -#: apt-pkg/acquire-item.cc:1865 +#: apt-pkg/contrib/fileutl.cc:397 #, 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 "Ignoring '%s' in directory '%s' as it is not a regular file" +msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่ใช่แฟ้มธรรมดา" -#: apt-pkg/acquire-item.cc:1931 +#: apt-pkg/contrib/fileutl.cc:415 #, c-format -msgid "Can't find a source to download version '%s' of '%s'" -msgstr "ไม่พบแหล่งที่จะดาวน์โหลดรุ่น '%s' ของ '%s' ได้" +msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" +msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากไม่มีส่วนขยายในชื่อแฟ้ม" -#: apt-pkg/acquire-item.cc:1989 +#: apt-pkg/contrib/fileutl.cc:424 #, c-format msgid "" -"The package index files are corrupted. No Filename: field for package %s." -msgstr "แฟ้มดัชนีแพกเกจเสียหาย ไม่มีข้อมูล Filename: (ชื่อแฟ้ม) สำหรับแพกเกจ %s" +"Ignoring file '%s' in directory '%s' as it has an invalid filename extension" +msgstr "จะละเลย '%s' ในไดเรกทอรี '%s' เนื่องจากส่วนขยายในชื่อแฟ้มไม่สามารถใช้การได้" -#: apt-pkg/indexrecords.cc:78 +#: apt-pkg/contrib/fileutl.cc:827 #, c-format -msgid "Unable to parse Release file %s" -msgstr "ไม่สามารถแจงแฟ้ม Release %s" +msgid "Sub-process %s received a segmentation fault." +msgstr "โพรเซสย่อย %s เกิดข้อผิดพลาดของการใช้ย่านหน่วยความจำ (segmentation fault)" -#: apt-pkg/indexrecords.cc:86 +#: apt-pkg/contrib/fileutl.cc:829 #, c-format -msgid "No sections in Release file %s" -msgstr "ไม่มีหัวข้อย่อยในแฟ้ม Release %s" +msgid "Sub-process %s received signal %u." +msgstr "โพรเซสย่อย %s ได้รับสัญญาณ %u" -#: apt-pkg/indexrecords.cc:117 +#: apt-pkg/contrib/fileutl.cc:833 apt-pkg/contrib/gpgv.cc:239 #, c-format -msgid "No Hash entry in Release file %s" -msgstr "ไม่มีรายการแฮชในแฟ้ม Release %s" +msgid "Sub-process %s returned an error code (%u)" +msgstr "โพรเซสย่อย %s คืนค่าข้อผิดพลาด (%u)" -#: apt-pkg/indexrecords.cc:130 +#: apt-pkg/contrib/fileutl.cc:835 apt-pkg/contrib/gpgv.cc:232 #, c-format -msgid "Invalid 'Valid-Until' entry in Release file %s" -msgstr "รายการ 'Valid-Until' ไม่ถูกต้องในแฟ้ม Release %s" +msgid "Sub-process %s exited unexpectedly" +msgstr "โพรเซสย่อย %s จบการทำงานกะทันหัน" -#: apt-pkg/indexrecords.cc:149 +#: apt-pkg/contrib/fileutl.cc:916 #, c-format -msgid "Invalid 'Date' entry in Release file %s" -msgstr "รายการ 'Date' ไม่ถูกต้องในแฟ้ม Release %s" +msgid "Problem closing the gzip file %s" +msgstr "เกิดปัญหาขณะปิดแฟ้ม gzip %s" -#: apt-pkg/vendorlist.cc:85 +#: apt-pkg/contrib/fileutl.cc:1104 #, c-format -msgid "Vendor block %s contains no fingerprint" -msgstr "บล็อคผู้ผลิต %s ไม่มีลายนิ้วมือ" +msgid "Could not open file %s" +msgstr "ไม่สามารถเปิดแฟ้ม %s" -#: apt-pkg/cdrom.cc:577 +#: apt-pkg/contrib/fileutl.cc:1163 apt-pkg/contrib/fileutl.cc:1210 #, c-format -msgid "Using CD-ROM mount point %s\n" -msgstr "กำลังใช้จุดเมานท์ซีดีรอม %s\n" +msgid "Could not open file descriptor %d" +msgstr "ไม่สามารถเปิด file destriptor %d" -#: 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:1317 +msgid "Failed to create subprocess IPC" +msgstr "สร้าง IPC ของโพรเซสย่อยไม่สำเร็จ" -#: apt-pkg/cdrom.cc:592 -msgid "Waiting for disc...\n" -msgstr "กำลังรอแผ่น...\n" +#: apt-pkg/contrib/fileutl.cc:1375 +msgid "Failed to exec compressor " +msgstr "เรียกทำงานตัวบีบอัดไม่สำเร็จ" -#: apt-pkg/cdrom.cc:602 -msgid "Mounting CD-ROM...\n" -msgstr "กำลังเมานท์ซีดีรอม...\n" +#: apt-pkg/contrib/fileutl.cc:1516 +#, c-format +msgid "read, still have %llu to read but none left" +msgstr "read: ยังเหลือ %llu ที่ยังไม่ได้อ่าน แต่ข้อมูลหมดแล้ว" -#: apt-pkg/cdrom.cc:610 -msgid "Identifying... " -msgstr "กำลังตรวจสอบชื่อแผ่น... " +#: apt-pkg/contrib/fileutl.cc:1629 apt-pkg/contrib/fileutl.cc:1651 +#, c-format +msgid "write, still have %llu to write but couldn't" +msgstr "write: ยังเหลือ %llu ที่ยังไม่ได้เขียน แต่ไม่สามารถเขียนได้" -#: apt-pkg/cdrom.cc:648 +#: apt-pkg/contrib/fileutl.cc:1922 #, c-format -msgid "Stored label: %s\n" -msgstr "ชื่อที่เก็บไว้: %s\n" +msgid "Problem closing the file %s" +msgstr "เกิดปัญหาขณะปิดแฟ้ม %s" -#: apt-pkg/cdrom.cc:672 -msgid "Scanning disc for index files...\n" -msgstr "กำลังสำรวจข้อมูลในแผ่นเพื่อหาแฟ้มดัชนี...\n" +#: apt-pkg/contrib/fileutl.cc:1934 +#, c-format +msgid "Problem renaming the file %s to %s" +msgstr "เกิดปัญหาขณะเปลี่ยนชื่อแฟ้ม %s ไปเป็น %s" -#: apt-pkg/cdrom.cc:722 +#: apt-pkg/contrib/fileutl.cc:1945 #, c-format -msgid "" -"Found %zu package indexes, %zu source indexes, %zu translation indexes and " -"%zu signatures\n" -msgstr "" -"พบดัชนีแพกเกจ %zu รายการ, ดัชนีซอร์ส %zu รายการ, ดัชนีคำแปล %zu รายการ และลายเซ็น " -"%zu รายการ\n" +msgid "Problem unlinking the file %s" +msgstr "เกิดปัญหาขณะลบแฟ้ม %s" -#: 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:1958 +msgid "Problem syncing the file" +msgstr "เกิดปัญหาขณะ sync แฟ้ม" -#: apt-pkg/cdrom.cc:760 +#. TRANSLATOR: %s is the trusted keyring parts directory +#: apt-pkg/contrib/gpgv.cc:72 #, c-format -msgid "Found label '%s'\n" -msgstr "พบชื่อแผ่น '%s'\n" +msgid "No keyring installed in %s." +msgstr "ไม่มีพวงกุญแจติดตั้งไว้ใน %s" -#: apt-pkg/cdrom.cc:789 -msgid "That is not a valid name, try again.\n" -msgstr "ไม่ใช่ชื่อที่ใช้ได้ กรุณาลองใหม่\n" +#: apt-pkg/contrib/mmap.cc:79 +msgid "Can't mmap an empty file" +msgstr "ไม่สามารถ mmap แฟ้มเปล่า" -#: apt-pkg/cdrom.cc:806 +#: apt-pkg/contrib/mmap.cc:111 #, c-format -msgid "" -"This disc is called: \n" -"'%s'\n" -msgstr "" -"แผ่นนี้เรียกชื่อว่า:\n" -"'%s'\n" +msgid "Couldn't duplicate file descriptor %i" +msgstr "ไม่สามารถทำซ้ำ file descriptor %i" -#: apt-pkg/cdrom.cc:808 -msgid "Copying package lists..." -msgstr "กำลังคัดลอกรายชื่อแพกเกจ..." +#: apt-pkg/contrib/mmap.cc:119 +#, c-format +msgid "Couldn't make mmap of %llu bytes" +msgstr "ไม่สามารถสร้าง mmap ขนาด %llu ไบต์" -#: apt-pkg/cdrom.cc:843 -msgid "Writing new source list\n" -msgstr "กำลังเขียนรายชื่อแหล่งแพกเกจแหล่งใหม่\n" +#: apt-pkg/contrib/mmap.cc:146 +msgid "Unable to close mmap" +msgstr "ไม่สามารถปิด mmap" -#: apt-pkg/cdrom.cc:851 -msgid "Source list entries for this disc are:\n" -msgstr "บรรทัดรายชื่อแหล่งแพกเกจสำหรับแผ่นนี้คือ:\n" +#: apt-pkg/contrib/mmap.cc:174 apt-pkg/contrib/mmap.cc:202 +msgid "Unable to synchronize mmap" +msgstr "ไม่สามารถปรับ mmap ให้ตรงกัน" -#: apt-pkg/indexcopy.cc:236 apt-pkg/indexcopy.cc:773 +#: apt-pkg/contrib/mmap.cc:290 #, c-format -msgid "Wrote %i records.\n" -msgstr "เขียนแล้ว %i ระเบียน\n" +msgid "Couldn't make mmap of %lu bytes" +msgstr "ไม่สามารถสร้าง mmap ขนาด %lu ไบต์" -#: apt-pkg/indexcopy.cc:238 apt-pkg/indexcopy.cc:775 -#, c-format -msgid "Wrote %i records with %i missing files.\n" -msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม\n" +#: apt-pkg/contrib/mmap.cc:322 +msgid "Failed to truncate file" +msgstr "ไม่สามารถตัดท้ายแฟ้ม" -#: apt-pkg/indexcopy.cc:241 apt-pkg/indexcopy.cc:778 +#: apt-pkg/contrib/mmap.cc:341 #, c-format -msgid "Wrote %i records with %i mismatched files\n" -msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มผิดขนาด %i แฟ้ม\n" +msgid "" +"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Start. " +"Current value: %lu. (man 5 apt.conf)" +msgstr "" +"MMap แบบพลวัตมีเนื้อที่ไม่พอ กรุณาเพิ่มขนาดของ APT::Cache-Start ค่าปัจจุบัน: %lu (man 5 " +"apt.conf)" -#: apt-pkg/indexcopy.cc:244 apt-pkg/indexcopy.cc:781 +#: apt-pkg/contrib/mmap.cc:446 #, c-format -msgid "Wrote %i records with %i missing files and %i mismatched files\n" -msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม และแฟ้มผิดขนาด %i แฟ้ม\n" +msgid "" +"Unable to increase the size of the MMap as the limit of %lu bytes is already " +"reached." +msgstr "ไม่สามารถเพิ่มขนาดของ MMap เนื่องจากถึงขีดจำกัด %lu ไบต์แล้ว" -#: apt-pkg/indexcopy.cc:515 -#, c-format -msgid "Can't find authentication record for: %s" -msgstr "ไม่พบระเบียนยืนยันความแท้สำหรับ: %s" +#: 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/indexcopy.cc:521 +#: apt-pkg/contrib/progress.cc:148 #, c-format -msgid "Hash mismatch for: %s" -msgstr "แฮชไม่ตรงกันสำหรับ: %s" +msgid "%c%s... Error!" +msgstr "%c%s... ผิดพลาด!" -#: apt-pkg/cacheset.cc:487 +#: apt-pkg/contrib/progress.cc:150 #, c-format -msgid "Release '%s' for '%s' was not found" -msgstr "ไม่พบรุ่นย่อย '%s' ของ '%s'" +msgid "%c%s... Done" +msgstr "%c%s... เสร็จแล้ว" -#: apt-pkg/cacheset.cc:490 -#, c-format -msgid "Version '%s' for '%s' was not found" -msgstr "ไม่พบรุ่น '%s' ของ '%s'" +#: apt-pkg/contrib/progress.cc:181 +msgid "..." +msgstr "..." -#: apt-pkg/cacheset.cc:601 +#. Print the spinner +#: apt-pkg/contrib/progress.cc:197 #, c-format -msgid "Couldn't find task '%s'" -msgstr "ไม่พบงานติดตั้ง '%s'" +msgid "%c%s... %u%%" +msgstr "%c%s... %u%%" -#: apt-pkg/cacheset.cc:607 +#. d means days, h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:406 #, c-format -msgid "Couldn't find any package by regex '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" - -#: apt-pkg/cacheset.cc:613 -#, fuzzy, c-format -msgid "Couldn't find any package by glob '%s'" -msgstr "ไม่พบแพกเกจที่ตรงกับนิพจน์เรกิวลาร์ '%s'" +msgid "%lid %lih %limin %lis" +msgstr "%liวัน %liชม. %liนาที %liวิ" -#: apt-pkg/cacheset.cc:624 +#. h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:413 #, c-format -msgid "Can't select versions from package '%s' as it is purely virtual" -msgstr "ไม่สามารถเลือกรุ่นต่างๆ ของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" +msgid "%lih %limin %lis" +msgstr "%liชม. %liนาที %liวิ" -#: apt-pkg/cacheset.cc:631 apt-pkg/cacheset.cc:638 +#. min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:420 #, c-format -msgid "" -"Can't select installed nor candidate version from package '%s' as it has " -"neither of them" -msgstr "" -"ไม่สามารถเลือกรุ่นที่ติดตั้งไว้หรือรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีทั้งสองอย่าง" +msgid "%limin %lis" +msgstr "%liนาที %liวิ" -#: apt-pkg/cacheset.cc:645 +#. s means seconds +#: apt-pkg/contrib/strutl.cc:425 #, c-format -msgid "Can't select newest version from package '%s' as it is purely virtual" -msgstr "ไม่สามารถเลือกรุ่นใหม่ที่สุดของแพกเกจ '%s' ได้ เนื่องจากเป็นแพกเกจเสมือนอย่างแท้จริง" +msgid "%lis" +msgstr "%liวิ" -#: apt-pkg/cacheset.cc:653 +#: apt-pkg/contrib/strutl.cc:1236 #, c-format -msgid "Can't select candidate version from package %s as it has no candidate" -msgstr "ไม่สามารถเลือกรุ่นสำหรับติดตั้งของแพกเกจ '%s' ได้ เนื่องจากไม่มีรุ่นสำหรับติดตั้ง" +msgid "Selection %s not found" +msgstr "ไม่พบรายการเลือก %s" -#: apt-pkg/cacheset.cc:661 +#: apt-pkg/deb/debsystem.cc:91 #, c-format -msgid "Can't select installed version from package %s as it is not installed" -msgstr "ไม่สามารถเลือกรุ่นที่ติดตั้งไว้ของแพกเกจ '%s' ได้ เนื่องจากแพกเกจไม่ได้ติดตั้งไว้" - -#: 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 "เรียกกลไกการแก้ปัญหาภายนอก" +msgid "" +"Unable to lock the administration directory (%s), is another process using " +"it?" +msgstr "ไม่สามารถล็อคไดเรกทอรีดูแลระบบ (%s) มีโพรเซสอื่นใช้งานอยู่หรือเปล่า?" -#: apt-pkg/install-progress.cc:57 +#: apt-pkg/deb/debsystem.cc:94 #, c-format -msgid "Progress: [%3i%%]" -msgstr "" - -#: apt-pkg/install-progress.cc:91 apt-pkg/install-progress.cc:174 -msgid "Running dpkg" -msgstr "กำลังเรียก dpkg" +msgid "Unable to lock the administration directory (%s), are you root?" +msgstr "ไม่สามารถล็อคไดเรกทอรีดูแลระบบ (%s) คุณเป็น root หรือเปล่า?" -#: apt-pkg/update.cc:103 apt-pkg/update.cc:105 +#. TRANSLATORS: the %s contains the recovery command, usually +#. dpkg --configure -a +#: apt-pkg/deb/debsystem.cc:110 +#, c-format msgid "" -"Some index files failed to download. They have been ignored, or old ones " -"used instead." -msgstr "ดาวน์โหลดแฟ้มดัชนีบางแฟ้มไม่สำเร็จ จะข้ามรายการดังกล่าวไป หรือใช้ข้อมูลเก่าแทน" +"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 "ต้องกำหนดค่าตั้งต้นแคชของแพกเกจก่อน" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <xenos@upm.edu.ph>\n" "Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\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)." @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <mertdirik@gmail.com>\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)." @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-all\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\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 <artem.brz@gmail.com>\n" "Language-Team: Українська <uk@li.org>\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)." @@ -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 <deity@lists.debian.org>\n" -"POT-Creation-Date: 2014-04-01 15:51+0200\n" -"PO-Revision-Date: 2014-03-28 14:49+0700\n" +"POT-Creation-Date: 2014-04-10 10:18+0200\n" +"PO-Revision-Date: 2014-04-11 09:08+0700\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\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" @@ -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" @@ -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" @@ -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ê" @@ -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 @@ -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 <deity@lists.debian.org>\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 <happyaron.xu@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\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 <deity@lists.debian.org>\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 <tetralet@gmail.com>\n" "Language-Team: Debian-user in Chinese [Big5] <debian-chinese-big5@lists." @@ -818,9 +818,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 "讀取錯誤" @@ -833,9 +833,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 "寫入錯誤" @@ -1090,7 +1090,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 "在關閉檔案時發生問題" -#: 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/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 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 diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 47cfb624a..40bf81a39 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,14 @@ 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 + +# 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 + + 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 diff --git a/test/libapt/assert.h b/test/libapt/assert.h deleted file mode 100644 index 357801592..000000000 --- a/test/libapt/assert.h +++ /dev/null @@ -1,124 +0,0 @@ -#include <iostream> -#include <cstdlib> - -#include <apt-pkg/macros.h> - -#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; - 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<unsigned int const&, unsigned int const&>(expect, get, line); -} - -void assertEquals(int const &expect, unsigned int const &get, unsigned long const &line) { - if (expect < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals<unsigned int const&, unsigned int const&>(expect, get, line); -} - -void assertEquals(unsigned long const &expect, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals<unsigned long const&, unsigned long const&>(expect, get, line); -} - -void assertEquals(int const &expect, unsigned long const &get, unsigned long const &line) { - if (expect < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals<unsigned long const&, unsigned long const&>(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<unsigned int const&, unsigned int const&>(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<unsigned int const&, unsigned int const&>(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 <config.h> + +#include <apt-pkg/configuration.h> +#include <apt-pkg/cdrom.h> +#include <apt-pkg/cdromutl.h> +#include <apt-pkg/fileutl.h> + +#include <string> +#include <string.h> +#include <vector> + +#include <gtest/gtest.h> + +#include "file-helpers.h" + +class Cdrom : public pkgCdrom { +public: + std::vector<std::string> ReduceSourcelist(std::string CD,std::vector<std::string> List) { + pkgCdrom::ReduceSourcelist(CD, List); + return List; + } +}; + +TEST(CDROMTest,ReduceSourcelist) +{ + Cdrom cd; + std::vector<std::string> List; + std::string CD("/media/cdrom/"); + + std::vector<std::string> 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 <config.h> - -#include <apt-pkg/cdromutl.h> -#include <apt-pkg/configuration.h> - -#include <string> -#include <vector> - -#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 <apt-pkg/cdrom.h> #include <apt-pkg/error.h> +#include <apt-pkg/fileutl.h> #include <algorithm> #include <string> @@ -9,82 +10,112 @@ #include <stddef.h> #include <iostream> -#include "assert.h" +#include <gtest/gtest.h> + +#include "file-helpers.h" class Cdrom : public pkgCdrom { - public: - bool FindPackages(std::string const &CD, - std::vector<std::string> &List, - std::vector<std::string> &SList, - std::vector<std::string> &SigList, - std::vector<std::string> &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<std::string> &List, + std::vector<std::string> &SList, + std::vector<std::string> &SigList, + std::vector<std::string> &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<std::string> &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<std::string> 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<std::string> 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 <config.h> - -#include <apt-pkg/cdrom.h> - -#include <string> -#include <vector> - -#include "assert.h" - -class Cdrom : public pkgCdrom { -public: - std::vector<std::string> ReduceSourcelist(std::string CD,std::vector<std::string> List) { - pkgCdrom::ReduceSourcelist(CD, List); - return List; - } -}; - -int main() { - Cdrom cd; - std::vector<std::string> List; - std::string CD("/media/cdrom/"); - - std::vector<std::string> 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 <apt-pkg/cmndline.h> #include <apt-pkg/configuration.h> -#include "assert.h" - -int main() +#include <gtest/gtest.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 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 <config.h> - -#include <apt-pkg/cmndline.h> -#include <apt-pkg/configuration.h> - -#include <string> - -#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 <unistd.h> #include <sys/wait.h> +#include <gtest/gtest.h> + 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 <string> #include <vector> -#include "assert.h" +#include <gtest/gtest.h> -int main() { +//FIXME: Test for configuration file parsing; +// currently only integration/ tests test them implicitly + +TEST(ConfigurationTest,Lists) +{ Configuration Cnf; - std::vector<std::string> 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<std::string> 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<std::string> 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 <apt-pkg/fileutl.h> + +#include <string> + +#include <unistd.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <fcntl.h> + +#include <gtest/gtest.h> + +#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 <string> + +#include <gtest/gtest.h> + +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 8da832ba9..643c02297 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -2,53 +2,225 @@ #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> +#include <apt-pkg/strutl.h> +#include <apt-pkg/aptconfiguration.h> #include <string> #include <vector> #include <stdlib.h> +#include <string.h> -#include "assert.h" +#include <gtest/gtest.h> -int main() +#include "file-helpers.h" + +static void TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, + unsigned int const filemode, APT::Configuration::Compressor const &compressor) { - std::vector<std::string> files; + 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) + EXPECT_EQ(0, unlink(fname)); + + FileFd f; + 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"; + EXPECT_TRUE(f.Write(test.c_str(), test.size())); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + + f.Close(); + 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 \ + 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))); - // normal match - files = Glob("*.lst"); - if (files.size() != 1) { - _error->DumpErrors(); - return 1; + APT_INIT_READBACK + char const * const expect = "This"; + 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"; + 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 + 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 + 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 + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + unsigned long long actual; + 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 + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + f.ReadLine(readback, 20); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_EQ(test, readback); + EXPECT_EQ(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + char const * const expect = "This"; + f.ReadLine(readback, strlen(expect) + 1); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(strlen(expect), f.Tell()); + } +#undef APT_INIT_READBACK - // not there - files = Glob("xxxyyyzzz"); - if (files.size() != 0 || _error->PendingError()) + f.Close(); + EXPECT_FALSE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + + // regression test for permission bug LP: #1304657 + struct stat buf; + EXPECT_EQ(0, stat(fname, &buf)); + EXPECT_EQ(0, unlink(fname)); + EXPECT_EQ(ExpectedFilePermission, buf.st_mode & 0777); +} + +static void TestFileFd(unsigned int const filemode) +{ + std::vector<APT::Configuration::Compressor> 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<APT::Configuration::Compressor>::const_iterator c = compressors.begin(); c != compressors.end(); ++c) { - _error->DumpErrors(); - return 1; + if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && + (c->Name.empty() != true && c->Binary.empty() != true)) + continue; + TestFileFd(0002, 0664, filemode, *c); + TestFileFd(0022, 0644, filemode, *c); + TestFileFd(0077, 0600, filemode, *c); + TestFileFd(0026, 0640, filemode, *c); } +} + +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::vector<std::string> files; + // normal match + files = Glob("*akefile"); + EXPECT_EQ(1, files.size()); + + // not there + files = Glob("xxxyyyzzz"); + 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 <string> #include <vector> -#include "assert.h" +#include <gtest/gtest.h> -int main() +TEST(ArchitecturesTest,SimpleLists) { - std::vector<std::string> 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<std::string> 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<std::string> 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 <apt-pkg/aptconfiguration.h> #include <apt-pkg/configuration.h> +#include <apt-pkg/fileutl.h> -#include "assert.h" +#include <algorithm> +#include <iostream> #include <string> #include <vector> -#include <iostream> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +#include <gtest/gtest.h> + +#include "file-helpers.h" + +TEST(LanguagesTest,Environment) +{ + _config->Clear(); + + char const* env[2]; + env[0] = "de_DE.UTF-8"; + env[1] = ""; + + std::vector<std::string> 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<std::string> 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<std::string> 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 <vector> #include <iostream> -#include "assert.h" +#include <gtest/gtest.h> -#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<std::string> 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<std::string> 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 <errno.h> #include <string.h> -#include "assert.h" +#include <gtest/gtest.h> -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 <gtest/gtest.h> +#include <apt-pkg/error.h> +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 <stdlib.h> #include <string> -#include "assert.h" +#include <gtest/gtest.h> + +#include "file-helpers.h" template <class T> void Test(const char *In,const char *Out) { @@ -20,167 +22,201 @@ template <class T> void Test(const char *In,const char *Out) equals(Sum.Result().Value(), Out); } -template <class T> 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<SHA1Summation>("","da39a3ee5e6b4b0d3255bfef95601890afd80709"); - Test<SHA1Summation>("abc","a9993e364706816aba3e25717850c26c9cd0d89d"); - Test<SHA1Summation>("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "84983e441c3bd26ebaae4aa1f95129e5e54670f1"); - TestMill<SHA1Summation>("34aa973cd4c4daa4f61eeb2bdbad27316534016f"); + getSummationString("sha1sum", summation); + SHA1SumValue sha1(summation); + EXPECT_EQ(sha1.Value(), summation); - // MD5 tests from RFC 1321 - Test<MD5Summation>("","d41d8cd98f00b204e9800998ecf8427e"); - Test<MD5Summation>("a","0cc175b9c0f1b6a831c399e269772661"); - Test<MD5Summation>("abc","900150983cd24fb0d6963f7d28e17f72"); - Test<MD5Summation>("message digest","f96b697d7cb7938d525a2f31aaf161d0"); - Test<MD5Summation>("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b"); - Test<MD5Summation>("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "d174ab98d277d9f5a5611c2c9f419d9f"); - Test<MD5Summation>("12345678901234567890123456789012345678901234567890123456789012345678901234567890", - "57edf4a22be3c955ac49da2e2107b67a"); + getSummationString("sha256sum", summation); + SHA256SumValue sha256(summation); + EXPECT_EQ(sha256.Value(), summation); - // SHA-256, From FIPS 180-2 - Test<SHA256Summation>("", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); - Test<SHA256Summation>("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<SHA512Summation>("", - "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce" - "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); - Test<SHA512Summation>( - "abc", - "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" - "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); - - - Test<MD5Summation>("The quick brown fox jumps over the lazy dog", "9e107d9d372bb6826bd81d3542a419d6"); - Test<MD5Summation>("The quick brown fox jumps over the lazy dog.", "e4d909c290d0fb1ca068ffaddf22cbd0"); - Test<SHA1Summation>("The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"); - Test<SHA1Summation>("The quick brown fox jumps over the lazy cog", "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3"); - Test<SHA256Summation>("The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"); - Test<SHA256Summation>("The quick brown fox jumps over the lazy dog.", "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c"); - Test<SHA512Summation>("The quick brown fox jumps over the lazy dog", "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb64" - "2e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6"); - Test<SHA512Summation>("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 <string> #include <stdio.h> -#include "assert.h" +#include <gtest/gtest.h> 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 <string> -#include "assert.h" +#include <gtest/gtest.h> -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 <string.h> #include <string> -#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 <!profile.stage1>, " - "not-in-stage1-or-nodoc <!profile.nodoc !profile.stage1>, " - "only-in-stage1 <unknown.unknown profile.stage1>, " - "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), " - ; - - unsigned short runner = 0; +#include <gtest/gtest.h> + +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 <!profile.stage1>, " + "not-in-stage1-or-nodoc <!profile.nodoc !profile.stage1>, " + "only-in-stage1 <unknown.unknown profile.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 0baedcf9e..000000000 --- a/test/libapt/run-tests +++ /dev/null @@ -1,133 +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 - 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 <config.h> -#include <apt-pkg/configuration.h> #include <apt-pkg/sourcelist.h> #include <apt-pkg/fileutl.h> @@ -9,26 +8,20 @@ #include <string.h> #include <unistd.h> -#include "assert.h" +#include <gtest/gtest.h> -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 <config.h> - #include <apt-pkg/strutl.h> - #include <string> #include <vector> -#include "assert.h" +#include <gtest/gtest.h> -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<std::string> result = StringSplit("", ""); + EXPECT_EQ(result.size(), 0); - // Split - input = "status: libnet1:amd64: unpacked"; - std::vector<std::string> 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<std::string> 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 <string.h> #include <unistd.h> -#include "assert.h" +#include <gtest/gtest.h> -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 <config.h> - #include <apt-pkg/strutl.h> - #include <string> +#include <gtest/gtest.h> -#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... |