diff options
92 files changed, 10004 insertions, 2112 deletions
@@ -0,0 +1,9 @@ + +DDTP problems: +-------------- +- apt-get update clean the /var/lib/apt/lists dir + from all Translation-$index that are not in the current + enviroment or Translations apt variable +- there needs to be a list of locales (pt, sv, en) that need + both language and country code to get the right file + (is in the code in indexfile::LanguageCode(), just a bit ugly @@ -26,7 +26,7 @@ maintainer-clean dist-clean distclean pristine sanity: veryclean # The startup target builds the necessary configure scripts. It should # be used after a CVS checkout. -CONVERTED=environment.mak include/config.h include/apti18n.h makefile +CONVERTED=environment.mak include/config.h include/apti18n.h build/doc/Doxyfile makefile include buildlib/configure.mak $(BUILDDIR)/include/config.h: buildlib/config.h.in $(BUILDDIR)/include/apti18n.h: buildlib/apti18n.h.in diff --git a/README.ddtp b/README.ddtp new file mode 100644 index 000000000..98f6109aa --- /dev/null +++ b/README.ddtp @@ -0,0 +1,74 @@ +TODO: +- URL-Remap for the translation files (to hack around the problem that + they are not on any ftp server yet but only on http://ddtp.debian.org/) + +Here is the original announcement of the ddtp support: + +* To: debian-devel-announce@lists.debian.org +* Subject: Translate files +* From: Michael Bramer <grisu@debian.org> +* Date: Sun, 6 Oct 2002 21:56:06 +0200 +* Mail-followup-to: debian-devel@lists.debian.org +* Message-id: <20021006195605.GA30516@home.debsupport.de> +* Old-return-path: <michael@home.debsupport.de> +* User-agent: Mutt/1.3.28i + +Hello all + +After some discussion between Anthony Towns (a ftpmaster), Jason +Gunthorpe (APT Developer) and some DDTP Coordinators we find a way to +transfer the translated package descriptions from the archive to the +user. + +The translated descriptions need to be downloadable befor any +installation process, like the other package meta information. We +choose a new file per languages with all translated package +descriptions. The package system can download one or more of this +files at 'apt-get update' time and know the translations. + +The new files are names 'Translate-$lang' and the file have this +rfc822-format: + Package: <package-name> + Description-md5: <the md5 checksum of the english description> + Description-$lang.$encoding: <translated headline> + <translated section> + +The encoding of the Description is 'UTF-8' in all languages normal. +The files will be located at 'debian/dists/sid/main/i18n/' on the ftp +server (for all architecture). In addition of the plain +'Translate-$lang' file, there will be a 'gz' and a 'bz2' version and +in future also the new incremental format version. + +The <the md5 checksum of the english description> is the md5 checksum +of the full english description, without the 'Description: '-tag and +with all spaces and newlines. Look at this example: + Description: XXX + YYY + . + ZZZ +is md5("XXX\n YYY\n .\n ZZZ\n") (perl-syntax). + + +A future APT version will download one or some 'Translate-$lang' +file(s) at 'update'-time. After this download it show a translated +description instead of the english form, if it found a translated +description of the package with the right md5 chechsum. The enviroment +of the user will controlled this process (LANG, LANGUAGE, LC_MESSAGES, +etc). With this the package system will never show a outdated +translation. + +The translations come all from the DDTP. A daily process on +ddtp.debian.org make new 'Translated-$lang' files and a script on +ftp-master request this files and move this to the debian archive. +Now the first files are accessable at + <a href="http://ddtp.debian.org/pdesc/translatefiles/">http://ddtp.debian.org/pdesc/translatefiles/</a> + +If you found wrong translations, please read the guides on +ddtp.debian.org, make a better translation and send this per mail to +the DDTP server. Don't bug the package maintainer! + +Thanks +Grisu +-- +Michael Bramer - a Debian Linux Developer <a href="http://www.debsupport.de">http://www.debsupport.de</a> +PGP: finger grisu@db.debian.org -- Linux Sysadmin -- Use Debian Linux diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 421288007..9e9f5c2a6 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -24,6 +24,8 @@ #include <apt-pkg/strutl.h> #include <apt-pkg/fileutl.h> #include <apt-pkg/md5.h> +#include <apt-pkg/sha1.h> +#include <apt-pkg/tagfile.h> #include <apti18n.h> @@ -31,6 +33,7 @@ #include <unistd.h> #include <errno.h> #include <string> +#include <sstream> #include <stdio.h> /*}}}*/ @@ -100,7 +103,8 @@ void pkgAcquire::Item::Done(string Message,unsigned long Size,string, { // We just downloaded something.. string FileName = LookupTag(Message,"Filename"); - if (Complete == false && FileName == DestFile) + // we only inform the Log class if it was actually not a local thing + if (Complete == false && !Local && FileName == DestFile) { if (Owner->Log != 0) Owner->Log->Fetched(Size,atoi(LookupTag(Message,"Resume-Point","0").c_str())); @@ -131,14 +135,432 @@ void pkgAcquire::Item::Rename(string From,string To) } /*}}}*/ + +// AcqDiffIndex::AcqDiffIndex - Constructor +// --------------------------------------------------------------------- +/* Get the DiffIndex file first and see if there are patches availabe + * If so, create a pkgAcqIndexDiffs fetcher that will get and apply the + * patches. If anything goes wrong in that process, it will fall back to + * the original packages file + */ +pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string ExpectedMD5) + : Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5), Description(URIDesc) +{ + + Debug = _config->FindB("Debug::pkgAcquire::Diffs",false); + + Desc.Description = URIDesc + "/DiffIndex"; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + Desc.URI = URI + ".diff/Index"; + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI) + string(".DiffIndex"); + + if(Debug) + std::clog << "pkgAcqDiffIndex: " << Desc.URI << std::endl; + + // look for the current package file + CurrentPackagesFile = _config->FindDir("Dir::State::lists"); + CurrentPackagesFile += URItoFileName(RealURI); + + // FIXME: this file:/ check is a hack to prevent fetching + // from local sources. this is really silly, and + // should be fixed cleanly as soon as possible + if(!FileExists(CurrentPackagesFile) || + Desc.URI.substr(0,strlen("file:/")) == "file:/") + { + // we don't have a pkg file or we don't want to queue + if(Debug) + std::clog << "No index file, local or canceld by user" << std::endl; + Failed("", NULL); + return; + } + + if(Debug) + std::clog << "pkgAcqIndexDiffs::pkgAcqIndexDiffs(): " + << CurrentPackagesFile << std::endl; + + QueueURI(Desc); + +} + +// AcqIndex::Custom600Headers - Insert custom request headers /*{{{*/ +// --------------------------------------------------------------------- +/* The only header we use is the last-modified header. */ +string pkgAcqDiffIndex::Custom600Headers() +{ + string Final = _config->FindDir("Dir::State::lists"); + Final += URItoFileName(RealURI) + string(".IndexDiff"); + + if(Debug) + std::clog << "Custom600Header-IMS: " << Final << std::endl; + + struct stat Buf; + if (stat(Final.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +} + + +bool pkgAcqDiffIndex::ParseDiffIndex(string IndexDiffFile) +{ + if(Debug) + std::clog << "pkgAcqIndexDiffs::ParseIndexDiff() " << IndexDiffFile + << std::endl; + + pkgTagSection Tags; + string ServerSha1; + vector<DiffInfo> available_patches; + + FileFd Fd(IndexDiffFile,FileFd::ReadOnly); + pkgTagFile TF(&Fd); + if (_error->PendingError() == true) + return false; + + if(TF.Step(Tags) == true) + { + string local_sha1; + bool found = false; + DiffInfo d; + string size; + + string tmp = Tags.FindS("SHA1-Current"); + std::stringstream ss(tmp); + ss >> ServerSha1; + + FileFd fd(CurrentPackagesFile, FileFd::ReadOnly); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd(), fd.Size()); + local_sha1 = string(SHA1.Result()); + + if(local_sha1 == ServerSha1) + { + // we have the same sha1 as the server + if(Debug) + std::clog << "Package file is up-to-date" << std::endl; + // set found to true, this will queue a pkgAcqIndexDiffs with + // a empty availabe_patches + found = true; + } + else + { + if(Debug) + std::clog << "SHA1-Current: " << ServerSha1 << std::endl; + + // check the historie and see what patches we need + string history = Tags.FindS("SHA1-History"); + std::stringstream hist(history); + while(hist >> d.sha1 >> size >> d.file) + { + d.size = atoi(size.c_str()); + // read until the first match is found + if(d.sha1 == local_sha1) + found=true; + // from that point on, we probably need all diffs + if(found) + { + if(Debug) + std::clog << "Need to get diff: " << d.file << std::endl; + available_patches.push_back(d); + } + } + } + + // no information how to get the patches, bail out + if(!found) + { + if(Debug) + std::clog << "Can't find a patch in the index file" << std::endl; + // Failed will queue a big package file + Failed("", NULL); + } + else + { + // queue the diffs + new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, + ExpectedMD5, available_patches); + Complete = false; + Status = StatDone; + Dequeue(); + return true; + } + } + + return false; +} + +void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << std::endl + << "Falling back to normal index file aquire" << std::endl; + + new pkgAcqIndex(Owner, RealURI, Description, Desc.ShortDesc, + ExpectedMD5); + + Complete = false; + Status = StatDone; + Dequeue(); +} + +void pkgAcqDiffIndex::Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqDiffIndex::Done(): " << Desc.URI << std::endl; + + Item::Done(Message,Size,Md5Hash,Cnf); + + string FinalFile; + FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI); + + // sucess in downloading the index + // rename the index + FinalFile += string(".IndexDiff"); + if(Debug) + std::clog << "Renaming: " << DestFile << " -> " << FinalFile + << std::endl; + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + DestFile = FinalFile; + + if(!ParseDiffIndex(DestFile)) + return Failed("", NULL); + + Complete = true; + Status = StatDone; + Dequeue(); + return; +} + + + +// AcqIndexDiffs::AcqIndexDiffs - Constructor +// --------------------------------------------------------------------- +/* The package diff is added to the queue. one object is constructed + * for each diff and the index + */ +pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc, + string ExpectedMD5, vector<DiffInfo> diffs) + : Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5), + available_patches(diffs) +{ + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI); + + Debug = _config->FindB("Debug::pkgAcquire::Diffs",false); + + Desc.Description = URIDesc; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + + if(available_patches.size() == 0) + { + // we are done (yeah!) + Finish(true); + } + else + { + // get the next diff + State = StateFetchDiff; + QueueNextDiff(); + } +} + + +void pkgAcqIndexDiffs::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << std::endl + << "Falling back to normal index file aquire" << std::endl; + new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc, + ExpectedMD5); + Finish(); +} + + +// helper that cleans the item out of the fetcher queue +void pkgAcqIndexDiffs::Finish(bool allDone) +{ + // we restore the original name, this is required, otherwise + // the file will be cleaned + if(allDone) + { + DestFile = _config->FindDir("Dir::State::lists"); + DestFile += URItoFileName(RealURI); + + // do the final md5sum checking + MD5Summation sum; + FileFd Fd(DestFile, FileFd::ReadOnly); + sum.AddFD(Fd.Fd(), Fd.Size()); + Fd.Close(); + string MD5 = (string)sum.Result(); + + if (!ExpectedMD5.empty() && MD5 != ExpectedMD5) + { + Status = StatAuthError; + ErrorText = _("MD5Sum mismatch"); + Rename(DestFile,DestFile + ".FAILED"); + Dequeue(); + return; + } + + // this is for the "real" finish + Complete = true; + Status = StatDone; + Dequeue(); + if(Debug) + std::clog << "\n\nallDone: " << DestFile << "\n" << std::endl; + return; + } + + if(Debug) + std::clog << "Finishing: " << Desc.URI << std::endl; + Complete = false; + Status = StatDone; + Dequeue(); + return; +} + + + +bool pkgAcqIndexDiffs::QueueNextDiff() +{ + + // calc sha1 of the just patched file + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(RealURI); + + FileFd fd(FinalFile, FileFd::ReadOnly); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd(), fd.Size()); + string local_sha1 = string(SHA1.Result()); + if(Debug) + std::clog << "QueueNextDiff: " + << FinalFile << " (" << local_sha1 << ")"<<std::endl; + + // remove all patches until the next matching patch is found + // this requires the Index file to be ordered + for(vector<DiffInfo>::iterator I=available_patches.begin(); + available_patches.size() > 0 && + I != available_patches.end() && + (*I).sha1 != local_sha1; + I++) + { + available_patches.erase(I); + } + + // error checking and falling back if no patch was found + if(available_patches.size() == 0) + { + Failed("", NULL); + return false; + } + + // queue the right diff + Desc.URI = string(RealURI) + ".diff/" + available_patches[0].file + ".gz"; + Desc.Description = available_patches[0].file + string(".pdiff"); + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(RealURI + ".diff/" + available_patches[0].file); + + if(Debug) + std::clog << "pkgAcqIndexDiffs::QueueNextDiff(): " << Desc.URI << std::endl; + + QueueURI(Desc); + + return true; +} + + + +void pkgAcqIndexDiffs::Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqIndexDiffs::Done(): " << Desc.URI << std::endl; + + Item::Done(Message,Size,Md5Hash,Cnf); + + string FinalFile; + FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI); + + // sucess in downloading a diff, enter ApplyDiff state + if(State == StateFetchDiff) + { + + if(Debug) + std::clog << "Sending to gzip method: " << FinalFile << std::endl; + + string FileName = LookupTag(Message,"Filename"); + State = StateUnzipDiff; + Local = true; + Desc.URI = "gzip:" + FileName; + DestFile += ".decomp"; + QueueURI(Desc); + Mode = "gzip"; + return; + } + + // sucess in downloading a diff, enter ApplyDiff state + if(State == StateUnzipDiff) + { + + // rred excepts the patch as $FinalFile.ed + Rename(DestFile,FinalFile+".ed"); + + if(Debug) + std::clog << "Sending to rred method: " << FinalFile << std::endl; + + State = StateApplyDiff; + Local = true; + Desc.URI = "rred:" + FinalFile; + QueueURI(Desc); + Mode = "rred"; + return; + } + + + // success in download/apply a diff, queue next (if needed) + if(State == StateApplyDiff) + { + // remove the just applied patch + available_patches.erase(available_patches.begin()); + + // move into place + if(Debug) + { + std::clog << "Moving patched file in place: " << std::endl + << DestFile << " -> " << FinalFile << std::endl; + } + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + + // see if there is more to download + if(available_patches.size() > 0) { + new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, + ExpectedMD5, available_patches); + return Finish(); + } else + return Finish(true); + } +} + + // AcqIndex::AcqIndex - Constructor /*{{{*/ // --------------------------------------------------------------------- /* The package file is added to the queue and a second class is instantiated to fetch the revision file */ pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner, string URI,string URIDesc,string ShortDesc, - string ExpectedMD5, string comprExt) : - Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5) + string ExpectedMD5, string comprExt) + : Item(Owner), RealURI(URI), ExpectedMD5(ExpectedMD5) { Decompression = false; Erase = false; @@ -308,6 +730,35 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string MD5, Mode = decompProg; } +// AcqIndexTrans::pkgAcqIndexTrans - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* The Translation file is added to the queue */ +pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire *Owner, + string URI,string URIDesc,string ShortDesc) : + pkgAcqIndex(Owner, URI, URIDesc, ShortDesc, "", "") +{ +} + + /*}}}*/ +// AcqIndexTrans::Failed - Silence failure messages for missing files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgAcqIndexTrans::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +{ + if (Cnf->LocalOnly == true || + StringToBool(LookupTag(Message,"Transient-Failure"),false) == false) + { + // Ignore this + Status = StatDone; + Complete = false; + Dequeue(); + return; + } + + Item::Failed(Message,Cnf); +} + /*}}}*/ + pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner, string URI,string URIDesc,string ShortDesc, string MetaIndexURI, string MetaIndexURIDesc, @@ -532,6 +983,7 @@ void pkgAcqMetaIndex::RetrievalDone(string Message) // Move it into position Rename(DestFile,FinalFile); } + chmod(FinalFile.c_str(),0644); DestFile = FinalFile; } @@ -601,9 +1053,14 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify) } } - // Queue Packages file - new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, - (*Target)->ShortDesc, ExpectedIndexMD5); + // Queue Packages file (either diff or full packages files, depending + // on the users option) + if(_config->FindB("Acquire::PDiffs",true) == true) + new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description, + (*Target)->ShortDesc, ExpectedIndexMD5); + else + new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, + (*Target)->ShortDesc, ExpectedIndexMD5); } } diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index da1bea801..217ddb3ef 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -9,8 +9,8 @@ the Owner Acquire class. Derived classes will then call QueueURI to register all the URI's they wish to fetch at the initial moment. - Two item classes are provided to provide functionality for downloading - of Index files and downloading of Packages. + Three item classes are provided to provide functionality for + downloading of Index, Translation and Packages files. A Archive class is provided for downloading .deb files. It does Md5 checking and source location as well as a retry algorithm. @@ -31,67 +31,486 @@ #pragma interface "apt-pkg/acquire-item.h" #endif -// Item to acquire +/** \addtogroup acquire + * @{ + * + * \file acquire-item.h + */ + +/** \brief Represents the process by which a pkgAcquire object should + * retrieve a file or a collection of files. + * + * By convention, Item subclasses should insert themselves into the + * acquire queue when they are created by calling QueueURI(), and + * remove themselves by calling Dequeue() when either Done() or + * Failed() is invoked. Item objects are also responsible for + * notifying the download progress indicator (accessible via + * #Owner->Log) of their status. + * + * \see pkgAcquire + */ class pkgAcquire::Item { protected: - // Some private helper methods for registering URIs + /** \brief The acquire object with which this item is associated. */ pkgAcquire *Owner; + + /** \brief Insert this item into its owner's queue. + * + * \param ItemDesc Metadata about this item (its URI and + * description). + */ inline void QueueURI(ItemDesc &Item) {Owner->Enqueue(Item);}; + + /** \brief Remove this item from its owner's queue. */ inline void Dequeue() {Owner->Dequeue(this);}; - // Safe rename function with timestamp preservation + /** \brief Rename a file without modifying its timestamp. + * + * Many item methods call this as their final action. + * + * \param From The file to be renamed. + * + * \param To The new name of #From. If #To exists it will be + * overwritten. + */ void Rename(string From,string To); public: - // State of the item - enum {StatIdle, StatFetching, StatDone, StatError, StatAuthError} Status; + /** \brief The current status of this item. */ + enum ItemState + { + /** \brief The item is waiting to be downloaded. */ + StatIdle, + + /** \brief The item is currently being downloaded. */ + StatFetching, + + /** \brief The item has been successfully downloaded. */ + StatDone, + + /** \brief An error was encountered while downloading this + * item. + */ + StatError, + + /** \brief The item was downloaded but its authenticity could + * not be verified. + */ + StatAuthError + } Status; + + /** \brief Contains a textual description of the error encountered + * if #Status is #StatError or #StatAuthError. + */ string ErrorText; + + /** \brief The size of the object to fetch. */ unsigned long FileSize; - unsigned long PartialSize; + + /** \brief How much of the object was already fetched. */ + unsigned long PartialSize; + + /** \brief If not \b NULL, contains the name of a subprocess that + * is operating on this object (for instance, "gzip" or "gpgv"). + */ const char *Mode; + + /** \brief A client-supplied unique identifier. + * + * This field is initalized to 0; it is meant to be filled in by + * clients that wish to use it to uniquely identify items. + * + * \todo it's unused in apt itself + */ unsigned long ID; + + /** \brief If \b true, the entire object has been successfully fetched. + * + * Subclasses should set this to \b true when appropriate. + */ bool Complete; + + /** \brief If \b true, the URI of this object is "local". + * + * The only effect of this field is to exclude the object from the + * download progress indicator's overall statistics. + */ bool Local; - // Number of queues we are inserted into + /** \brief The number of fetch queues into which this item has been + * inserted. + * + * There is one queue for each source from which an item could be + * downloaded. + * + * \sa pkgAcquire + */ unsigned int QueueCounter; - // File to write the fetch into + /** \brief The name of the file into which the retrieved object + * will be written. + */ string DestFile; - // Action members invoked by the worker + /** \brief Invoked by the acquire worker when the object couldn't + * be fetched. + * + * This is a branch of the continuation of the fetch process. + * + * \param Message An RFC822-formatted message from the acquire + * method describing what went wrong. Use LookupTag() to parse + * it. + * + * \param Cnf The method via which the worker tried to fetch this object. + * + * \sa pkgAcqMethod + */ virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + + /** \brief Invoked by the acquire worker when the object was + * fetched successfully. + * + * Note that the object might \e not have been written to + * DestFile; check for the presence of an Alt-Filename entry in + * Message to find the file to which it was really written. + * + * Done is often used to switch from one stage of the processing + * to the next (e.g. fetching, unpacking, copying). It is one + * branch of the continuation of the fetch process. + * + * \param Message Data from the acquire method. Use LookupTag() + * to parse it. + * \param Size The size of the object that was fetched. + * \param Md5Hash The MD5Sum of the object that was fetched. + * \param Cnf The method via which the object was fetched. + * + * \sa pkgAcqMethod + */ virtual void Done(string Message,unsigned long Size,string Md5Hash, pkgAcquire::MethodConfig *Cnf); + + /** \brief Invoked when the worker starts to fetch this object. + * + * \param Message RFC822-formatted data from the worker process. + * Use LookupTag() to parse it. + * + * \param Size The size of the object being fetched. + * + * \sa pkgAcqMethod + */ virtual void Start(string Message,unsigned long Size); + + /** \brief Custom headers to be sent to the fetch process. + * + * \return a string containing RFC822-style headers that are to be + * inserted into the 600 URI Acquire message sent to the fetch + * subprocess. The headers are inserted after a newline-less + * line, so they should (if nonempty) have a leading newline and + * no trailing newline. + */ virtual string Custom600Headers() {return string();}; + + /** \brief A "descriptive" URI-like string. + * + * \return a URI that should be used to describe what is being fetched. + */ virtual string DescURI() = 0; + /** \brief Short item description. + * + * \return a brief description of the object being fetched. + */ virtual string ShortDesc() {return DescURI();} + + /** \brief Invoked by the worker when the download is completely done. */ virtual void Finished() {}; - // Inquire functions + /** \brief MD5Sum. + * + * \return the MD5Sum of this object, if applicable; otherwise, an + * empty string. + */ virtual string MD5Sum() {return string();}; + + /** \return the acquire process with which this item is associated. */ pkgAcquire *GetOwner() {return Owner;}; + + /** \return \b true if this object is being fetched from a trusted source. */ virtual bool IsTrusted() {return false;}; - + + /** \brief Initialize an item. + * + * Adds the item to the list of items known to the acquire + * process, but does not place it into any fetch queues (you must + * manually invoke QueueURI() to do so). + * + * Initializes all fields of the item other than Owner to 0, + * false, or the empty string. + * + * \param Owner The new owner of this item. + */ Item(pkgAcquire *Owner); + + /** \brief Remove this item from its owner's queue by invoking + * pkgAcquire::Remove. + */ virtual ~Item(); }; -// Item class for index files -class pkgAcqIndex : public pkgAcquire::Item +/** \brief Information about an index patch (aka diff). */ +struct DiffInfo { + /** The filename of the diff. */ + string file; + + /** The sha1 hash of the diff. */ + string sha1; + + /** The size of the diff. */ + unsigned long size; +}; + +/** \brief An item that is responsible for fetching an index file of + * package list diffs and starting the package list's download. + * + * This item downloads the Index file and parses it, then enqueues + * additional downloads of either the individual patches (using + * pkgAcqIndexDiffs) or the entire Packages file (using pkgAcqIndex). + * + * \sa pkgAcqIndexDiffs, pkgAcqIndex + */ +class pkgAcqDiffIndex : public pkgAcquire::Item { + protected: + /** \brief If \b true, debugging information will be written to std::clog. */ + bool Debug; + + /** \brief The item that is currently being downloaded. */ + pkgAcquire::ItemDesc Desc; + + /** \brief The URI of the index file to recreate at our end (either + * by downloading it or by applying partial patches). + */ + string RealURI; + + /** \brief The MD5Sum that the real index file should have after + * all patches have been applied. + */ + string ExpectedMD5; + + /** \brief The index file which will be patched to generate the new + * file. + */ + string CurrentPackagesFile; + + /** \brief A description of the Packages file (stored in + * pkgAcquire::ItemDesc::Description). + */ + string Description; + + public: + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string DescURI() {return RealURI + "Index";}; + virtual string Custom600Headers(); + + /** \brief Parse the Index file for a set of Packages diffs. + * + * Parses the Index file and creates additional download items as + * necessary. + * + * \param IndexDiffFile The name of the Index file. + * + * \return \b true if the Index file was successfully parsed, \b + * false otherwise. + */ + bool ParseDiffIndex(string IndexDiffFile); + + + /** \brief Create a new pkgAcqDiffIndex. + * + * \param Owner The Acquire object that owns this item. + * + * \param URI The URI of the list file to download. + * + * \param URIDesc A long description of the list file to download. + * + * \param ShortDesc A short description of the list file to download. + * + * \param ExpectedMD5 The list file's MD5 signature. + */ + pkgAcqDiffIndex(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesc, string ExpectedMD5); +}; + +/** \brief An item that is responsible for fetching all the patches + * that need to be applied to a given package index file. + * + * After downloading and applying a single patch, this item will + * enqueue a new pkgAcqIndexDiffs to download and apply the remaining + * patches. If no patch can be found that applies to an intermediate + * file or if one of the patches cannot be downloaded, falls back to + * downloading the entire package index file using pkgAcqIndex. + * + * \sa pkgAcqDiffIndex, pkgAcqIndex + */ +class pkgAcqIndexDiffs : public pkgAcquire::Item +{ + private: + + /** \brief Queue up the next diff download. + * + * Search for the next available diff that applies to the file + * that currently exists on disk, and enqueue it by calling + * QueueURI(). + * + * \return \b true if an applicable diff was found, \b false + * otherwise. + */ + bool QueueNextDiff(); + + /** \brief Handle tasks that must be performed after the item + * finishes downloading. + * + * Dequeues the item and checks the resulting file's md5sum + * against ExpectedMD5 after the last patch was applied. + * There is no need to check the md5/sha1 after a "normal" + * patch because QueueNextDiff() will check the sha1 later. + * + * \param allDone If \b true, the file was entirely reconstructed, + * and its md5sum is verified. + */ + void Finish(bool allDone=false); + protected: + + /** \brief If \b true, debugging output will be written to + * std::clog. + */ + bool Debug; + + /** \brief A description of the item that is currently being + * downloaded. + */ + pkgAcquire::ItemDesc Desc; + + /** \brief The URI of the package index file that is being + * reconstructed. + */ + string RealURI; + + /** \brief The MD5Sum of the package index file that is being + * reconstructed. + */ + string ExpectedMD5; + + /** A description of the file being downloaded. */ + string Description; + + /** The patches that remain to be downloaded, including the patch + * being downloaded right now. This list should be ordered so + * that each diff appears before any diff that depends on it. + * + * \todo These are indexed by sha1sum; why not use some sort of + * dictionary instead of relying on ordering and stripping them + * off the front? + */ + vector<DiffInfo> available_patches; + /** The current status of this patch. */ + enum DiffState + { + /** \brief The diff is in an unknown state. */ + StateFetchUnkown, + + /** \brief The diff is currently being fetched. */ + StateFetchDiff, + + /** \brief The diff is currently being uncompressed. */ + StateUnzipDiff, + + /** \brief The diff is currently being applied. */ + StateApplyDiff + } State; + + public: + /** \brief Called when the patch file failed to be downloaded. + * + * This method will fall back to downloading the whole index file + * outright; its arguments are ignored. + */ + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string DescURI() {return RealURI + "Index";}; + + /** \brief Create an index diff item. + * + * After filling in its basic fields, this invokes Finish(true) if + * #diffs is empty, or QueueNextDiff() otherwise. + * + * \param Owner The pkgAcquire object that owns this item. + * + * \param URI The URI of the package index file being + * reconstructed. + * + * \param URIDesc A long description of this item. + * + * \param ShortDesc A brief description of this item. + * + * \param ExpectedMD5 The expected md5sum of the completely + * reconstructed package index file; the index file will be tested + * against this value when it is entirely reconstructed. + * + * \param diffs The remaining diffs from the index of diffs. They + * should be ordered so that each diff appears before any diff + * that depends on it. + */ + pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesc, string ExpectedMD5, + vector<DiffInfo> diffs=vector<DiffInfo>()); +}; + +/** \brief An acquire item that is responsible for fetching an index + * file (e.g., Packages or Sources). + * + * \sa pkgAcqDiffIndex, pkgAcqIndexDiffs, pkgAcqIndexTrans + * + * \todo Why does pkgAcqIndex have protected members? + */ +class pkgAcqIndex : public pkgAcquire::Item +{ + protected: + + /** \brief If \b true, the index file has been decompressed. */ bool Decompression; + + /** \brief If \b true, the partially downloaded file will be + * removed when the download completes. + */ bool Erase; + + /** \brief The download request that is currently being + * processed. + */ pkgAcquire::ItemDesc Desc; + + /** \brief The object that is actually being fetched (minus any + * compression-related extensions). + */ string RealURI; + + /** \brief The expected md5sum of the decompressed index file. */ string ExpectedMD5; + + /** \brief The compression-related file extension that is being + * added to the downloaded file (e.g., ".gz" or ".bz2"). + */ string CompressionExtension; public: @@ -103,26 +522,120 @@ class pkgAcqIndex : public pkgAcquire::Item virtual string Custom600Headers(); virtual string DescURI() {return RealURI + CompressionExtension;}; + /** \brief Create a pkgAcqIndex. + * + * \param Owner The pkgAcquire object with which this item is + * associated. + * + * \param URI The URI of the index file that is to be downloaded. + * + * \param URIDesc A "URI-style" description of this index file. + * + * \param ShortDesc A brief description of this index file. + * + * \param ExpectedMD5 The expected md5sum of this index file. + * + * \param compressExt The compression-related extension with which + * this index file should be downloaded, or "" to autodetect + * (".bz2" is used if bzip2 is installed, ".gz" otherwise). + */ pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc, - string ShortDesct, string ExpectedMD5, string compressExt=""); + string ShortDesc, string ExpectedMD5, string compressExt=""); }; +/** \brief An acquire item that is responsible for fetching a + * translated index file. + * + * The only difference from pkgAcqIndex is that transient failures + * are suppressed: no error occurs if the translated index file is + * missing. + */ +class pkgAcqIndexTrans : public pkgAcqIndex +{ + public: + + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + + /** \brief Create a pkgAcqIndexTrans. + * + * \param Owner The pkgAcquire object with which this item is + * associated. + * + * \param URI The URI of the index file that is to be downloaded. + * + * \param URIDesc A "URI-style" description of this index file. + * + * \param ShortDesc A brief description of this index file. + * + * \param ExpectedMD5 The expected md5sum of this index file. + * + * \param compressExt The compression-related extension with which + * this index file should be downloaded, or "" to autodetect + * (".bz2" is used if bzip2 is installed, ".gz" otherwise). + */ + pkgAcqIndexTrans(pkgAcquire *Owner,string URI,string URIDesc, + string ShortDesc); +}; + +/** \brief Information about an index file. */ struct IndexTarget { + /** \brief A URI from which the index file can be downloaded. */ string URI; + + /** \brief A description of the index file. */ string Description; + + /** \brief A shorter description of the index file. */ string ShortDesc; + + /** \brief The key by which this index file should be + * looked up within the meta signature file. + */ string MetaKey; }; -// Item class for index signatures +/** \brief An acquire item that downloads the detached signature + * of a meta-index (Release) file, then queues up the release + * file itself. + * + * \todo Why protected members? + * + * \sa pkgAcqMetaIndex + */ class pkgAcqMetaSig : public pkgAcquire::Item { protected: - + /** \brief The fetch request that is currently being processed. */ pkgAcquire::ItemDesc Desc; - string RealURI,MetaIndexURI,MetaIndexURIDesc,MetaIndexShortDesc; + + /** \brief The URI of the signature file. Unlike Desc.URI, this is + * never modified; it is used to determine the file that is being + * downloaded. + */ + string RealURI; + + /** \brief The URI of the meta-index file to be fetched after the signature. */ + string MetaIndexURI; + + /** \brief A "URI-style" description of the meta-index file to be + * fetched after the signature. + */ + string MetaIndexURIDesc; + + /** \brief A brief description of the meta-index file to be fetched + * after the signature. + */ + string MetaIndexShortDesc; + + /** \brief A package-system-specific parser for the meta-index file. */ indexRecords* MetaIndexParser; + + /** \brief The index files which should be looked up in the meta-index + * and then downloaded. + * + * \todo Why a list of pointers instead of a list of structs? + */ const vector<struct IndexTarget*>* IndexTargets; public: @@ -134,29 +647,90 @@ class pkgAcqMetaSig : public pkgAcquire::Item virtual string Custom600Headers(); virtual string DescURI() {return RealURI; }; + /** \brief Create a new pkgAcqMetaSig. */ pkgAcqMetaSig(pkgAcquire *Owner,string URI,string URIDesc, string ShortDesc, string MetaIndexURI, string MetaIndexURIDesc, string MetaIndexShortDesc, const vector<struct IndexTarget*>* IndexTargets, indexRecords* MetaIndexParser); }; -// Item class for index signatures +/** \brief An item that is responsible for downloading the meta-index + * file (i.e., Release) itself and verifying its signature. + * + * Once the download and verification are complete, the downloads of + * the individual index files are queued up using pkgAcqDiffIndex. + * If the meta-index file had a valid signature, the expected md5sums + * of the index files will be the md5sums listed in the meta-index; + * otherwise, the expected md5sums will be "" (causing the + * authentication of the index files to be bypassed). + */ class pkgAcqMetaIndex : public pkgAcquire::Item { protected: - + /** \brief The fetch command that is currently being processed. */ pkgAcquire::ItemDesc Desc; - string RealURI; // FIXME: is this redundant w/ Desc.URI? + + /** \brief The URI that is actually being downloaded; never + * modified by pkgAcqMetaIndex. + */ + string RealURI; + + /** \brief The file in which the signature for this index was stored. + * + * If empty, the signature and the md5sums of the individual + * indices will not be checked. + */ string SigFile; + + /** \brief The index files to download. */ const vector<struct IndexTarget*>* IndexTargets; + + /** \brief The parser for the meta-index file. */ indexRecords* MetaIndexParser; + + /** \brief If \b true, the index's signature is currently being verified. + */ bool AuthPass; // required to deal gracefully with problems caused by incorrect ims hits bool IMSHit; + /** \brief Check that the release file is a release file for the + * correct distribution. + * + * \return \b true if no fatal errors were encountered. + */ bool VerifyVendor(string Message); + + /** \brief Called when a file is finished being retrieved. + * + * If the file was not downloaded to DestFile, a copy process is + * set up to copy it to DestFile; otherwise, Complete is set to \b + * true and the file is moved to its final location. + * + * \param Message The message block received from the fetch + * subprocess. + */ void RetrievalDone(string Message); + + /** \brief Called when authentication succeeded. + * + * Sanity-checks the authenticated file, queues up the individual + * index files for download, and saves the signature in the lists + * directory next to the authenticated list file. + * + * \param Message The message block received from the fetch + * subprocess. + */ void AuthDone(string Message); + + /** \brief Starts downloading the individual index files. + * + * \param verify If \b true, only indices whose expected md5sum + * can be determined from the meta-index will be downloaded, and + * the md5sums of indices will be checked (reporting + * #StatAuthError if there is a mismatch). If verify is \b false, + * no md5sum checking will be performed. + */ void QueueIndexes(bool verify); public: @@ -168,6 +742,7 @@ class pkgAcqMetaIndex : public pkgAcquire::Item virtual string Custom600Headers(); virtual string DescURI() {return RealURI; }; + /** \brief Create a new pkgAcqMetaIndex. */ pkgAcqMetaIndex(pkgAcquire *Owner, string URI,string URIDesc, string ShortDesc, string SigFile, @@ -175,28 +750,58 @@ class pkgAcqMetaIndex : public pkgAcquire::Item indexRecords* MetaIndexParser); }; -// Item class for archive files +/** \brief An item that is responsible for fetching a package file. + * + * If the package file already exists in the cache, nothing will be + * done. + */ class pkgAcqArchive : public pkgAcquire::Item { protected: - - // State information for the retry mechanism + /** \brief The package version being fetched. */ pkgCache::VerIterator Version; + + /** \brief The fetch command that is currently being processed. */ pkgAcquire::ItemDesc Desc; + + /** \brief The list of sources from which to pick archives to + * download this package from. + */ pkgSourceList *Sources; + + /** \brief A package records object, used to look up the file + * corresponding to each version of the package. + */ pkgRecords *Recs; + + /** \brief The md5sum of this package. */ string MD5; + + /** \brief A location in which the actual filename of the package + * should be stored. + */ string &StoreFilename; + + /** \brief The next file for this version to try to download. */ pkgCache::VerFileIterator Vf; + + /** \brief How many (more) times to try to find a new source from + * which to download this package version if it fails. + * + * Set from Acquire::Retries. + */ unsigned int Retries; + + /** \brief \b true if this version file is being downloaded from a + * trusted source. + */ bool Trusted; - // Queue the next available file for download. + /** \brief Queue up the next available file for this version. */ bool QueueNext(); public: - // Specialized action members virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); virtual void Done(string Message,unsigned long Size,string Md5Hash, pkgAcquire::MethodConfig *Cnf); @@ -204,18 +809,49 @@ class pkgAcqArchive : public pkgAcquire::Item virtual string DescURI() {return Desc.URI;}; virtual string ShortDesc() {return Desc.ShortDesc;}; virtual void Finished(); + virtual bool IsTrusted(); + /** \brief Create a new pkgAcqArchive. + * + * \param Owner The pkgAcquire object with which this item is + * associated. + * + * \param Sources The sources from which to download version + * files. + * + * \param Recs A package records object, used to look up the file + * corresponding to each version of the package. + * + * \param Version The package version to download. + * + * \param StoreFilename A location in which the actual filename of + * the package should be stored. It will be set to a guessed + * basename in the constructor, and filled in with a fully + * qualified filename once the download finishes. + */ pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources, pkgRecords *Recs,pkgCache::VerIterator const &Version, string &StoreFilename); }; -// Fetch a generic file to the current directory +/** \brief Retrieve an arbitrary file to the current directory. + * + * The file is retrieved even if it is accessed via a URL type that + * normally is a NOP, such as "file". If the download fails, the + * partial file is renamed to get a ".FAILED" extension. + */ class pkgAcqFile : public pkgAcquire::Item { + /** \brief The currently active download process. */ pkgAcquire::ItemDesc Desc; + + /** \brief The md5sum of the file to download, if it is known. */ string Md5Hash; + + /** \brief How many times to retry the download, set from + * Acquire::Retries. + */ unsigned int Retries; public: @@ -227,13 +863,40 @@ class pkgAcqFile : public pkgAcquire::Item virtual string MD5Sum() {return Md5Hash;}; virtual string DescURI() {return Desc.URI;}; - // If DestFilename is empty, download to DestDir/<basename> if - // DestDir is non-empty, $CWD/<basename> otherwise. If - // DestFilename is NOT empty, DestDir is ignored and DestFilename - // is the absolute name to which the file should be downloaded. + /** \brief Create a new pkgAcqFile object. + * + * \param Owner The pkgAcquire object with which this object is + * associated. + * + * \param URI The URI to download. + * + * \param MD5 The md5sum of the file to download, if it is known; + * otherwise "". + * + * \param Size The size of the file to download, if it is known; + * otherwise 0. + * + * \param Desc A description of the file being downloaded. + * + * \param ShortDesc A brief description of the file being + * downloaded. + * + * \param DestDir The directory the file should be downloaded into. + * + * \param DestFilename The filename+path the file is downloaded to. + * + * + * If DestFilename is empty, download to DestDir/<basename> if + * DestDir is non-empty, $CWD/<basename> otherwise. If + * DestFilename is NOT empty, DestDir is ignored and DestFilename + * is the absolute name to which the file should be downloaded. + */ + pkgAcqFile(pkgAcquire *Owner, string URI, string MD5, unsigned long Size, string Desc, string ShortDesc, const string &DestDir="", const string &DestFilename=""); }; +/** @} */ + #endif diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h index f46209d12..4f08a43ae 100644 --- a/apt-pkg/acquire-method.h +++ b/apt-pkg/acquire-method.h @@ -10,6 +10,13 @@ ##################################################################### */ /*}}}*/ + +/** \addtogroup acquire + * @{ + * + * \file acquire-method.h + */ + #ifndef PKGLIB_ACQUIRE_METHOD_H #define PKGLIB_ACQUIRE_METHOD_H @@ -86,4 +93,6 @@ class pkgAcqMethod virtual ~pkgAcqMethod() {}; }; +/** @} */ + #endif diff --git a/apt-pkg/acquire-worker.h b/apt-pkg/acquire-worker.h index 6e1952202..1f6bcc05f 100644 --- a/apt-pkg/acquire-worker.h +++ b/apt-pkg/acquire-worker.h @@ -9,6 +9,13 @@ ##################################################################### */ /*}}}*/ + +/** \addtogroup acquire + * @{ + * + * \file acquire-worker.h + */ + #ifndef PKGLIB_ACQUIRE_WORKER_H #define PKGLIB_ACQUIRE_WORKER_H @@ -18,7 +25,25 @@ #pragma interface "apt-pkg/acquire-worker.h" #endif -// Interfacing to the method process +/** \brief A fetch subprocess. + * + * A worker process is responsible for one stage of the fetch. This + * class encapsulates the communications protocol between the master + * process and the worker, from the master end. + * + * Each worker is intrinsically placed on two linked lists. The + * Queue list (maintained in the #NextQueue variable) is maintained + * by the pkgAcquire::Queue class; it represents the set of workers + * assigned to a particular queue. The Acquire list (maintained in + * the #NextAcquire variable) is maintained by the pkgAcquire class; + * it represents the set of active workers for a particular + * pkgAcquire object. + * + * \todo Like everything else in the Acquire system, this has way too + * many protected items. + * + * \sa pkgAcqMethod, pkgAcquire::Item, pkgAcquire + */ class pkgAcquire::Worker { friend class pkgAcquire; @@ -26,64 +51,274 @@ class pkgAcquire::Worker protected: friend class Queue; - /* Linked list starting at a Queue and a linked list starting - at Acquire */ + /** \brief The next link on the Queue list. + * + * \todo This is always NULL; is it just for future use? + */ Worker *NextQueue; + + /** \brief The next link on the Acquire list. */ Worker *NextAcquire; - // The access association + /** \brief The Queue with which this worker is associated. */ Queue *OwnerQ; + + /** \brief The download progress indicator to which progress + * messages should be sent. + */ pkgAcquireStatus *Log; + + /** \brief The configuration of this method. On startup, the + * target of this pointer is filled in with basic data about the + * method, as reported by the worker. + */ MethodConfig *Config; + + /** \brief The access method to be used by this worker. + * + * \todo Doesn't this duplicate Config->Access? + */ string Access; - // This is the subprocess IPC setup + /** \brief The PID of the subprocess. */ pid_t Process; + + /** \brief A file descriptor connected to the standard output of + * the subprocess. + * + * Used to read messages and data from the subprocess. + */ int InFd; + + /** \brief A file descriptor connected to the standard input of the + * subprocess. + * + * Used to send commands and configuration data to the subprocess. + */ int OutFd; + + /** \brief Set to \b true if the worker is in a state in which it + * might generate data or command responses. + * + * \todo Is this right? It's a guess. + */ bool InReady; + + /** \brief Set to \b true if the worker is in a state in which it + * is legal to send commands to it. + * + * \todo Is this right? + */ bool OutReady; - // Various internal things + /** If \b true, debugging output will be sent to std::clog. */ bool Debug; + + /** \brief The raw text values of messages received from the + * worker, in sequence. + */ vector<string> MessageQueue; + + /** \brief Buffers pending writes to the subprocess. + * + * \todo Wouldn't a std::dequeue be more appropriate? + */ string OutQueue; - // Private constructor helper + /** \brief Common code for the constructor. + * + * Initializes NextQueue and NextAcquire to NULL; Process, InFd, + * and OutFd to -1, OutReady and InReady to \b false, and Debug + * from _config. + */ void Construct(); - // Message handling things + /** \brief Retrieve any available messages from the subprocess. + * + * The messages are retrieved as in ::ReadMessages(), and + * MessageFailure() is invoked if an error occurs; in particular, + * if the pipe to the subprocess dies unexpectedly while a message + * is being read. + * + * \return \b true if the messages were successfully read, \b + * false otherwise. + */ bool ReadMessages(); + + /** \brief Parse and dispatch pending messages. + * + * This dispatches the message in a manner appropriate for its + * type. + * + * \todo Several message types lack separate handlers. + * + * \sa Capabilities(), SendConfiguration(), MediaChange() + */ bool RunMessages(); + + /** \brief Read and dispatch any pending messages from the + * subprocess. + * + * \return \b false if the subprocess died unexpectedly while a + * message was being transmitted. + */ bool InFdReady(); + + /** \brief Send any pending commands to the subprocess. + * + * This method will fail if there is no pending output. + * + * \return \b true if all commands were succeeded, \b false if an + * error occurred (in which case MethodFailure() will be invoked). + */ bool OutFdReady(); - // The message handlers + /** \brief Handle a 100 Capabilities response from the subprocess. + * + * \param Message the raw text of the message from the subprocess. + * + * The message will be parsed and its contents used to fill + * #Config. If #Config is NULL, this routine is a NOP. + * + * \return \b true. + */ bool Capabilities(string Message); + + /** \brief Send a 601 Configuration message (containing the APT + * configuration) to the subprocess. + * + * The APT configuration will be send to the subprocess in a + * message of the following form: + * + * <pre> + * 601 Configuration + * Config-Item: Fully-Qualified-Item=Val + * Config-Item: Fully-Qualified-Item=Val + * ... + * </pre> + * + * \return \b true if the command was successfully sent, \b false + * otherwise. + */ bool SendConfiguration(); + + /** \brief Handle a 403 Media Change message. + * + * \param Message the raw text of the message; the Media field + * indicates what type of media should be changed, and the Drive + * field indicates where the media is located. + * + * Invokes pkgAcquireStatus::MediaChange(Media, Drive) to ask the + * user to swap disks; informs the subprocess of the result (via + * 603 Media Changed, with the Failed field set to \b true if the + * user cancelled the media change). + */ bool MediaChange(string Message); + /** \brief Invoked when the worked process dies unexpectedly. + * + * Waits for the subprocess to terminate and generates an error if + * it terminated abnormally, then closes and blanks out all file + * descriptors. Discards all pending messages from the + * subprocess. + * + * \return \b false. + */ bool MethodFailure(); + + /** \brief Invoked when a fetch job is completed, either + * successfully or unsuccessfully. + * + * Resets the status information for the worker process. + */ void ItemDone(); public: - // The curent method state + /** \brief The queue entry that is currently being downloaded. */ pkgAcquire::Queue::QItem *CurrentItem; + + /** \brief The most recent status string received from the + * subprocess. + */ string Status; + + /** \brief How many bytes of the file have been downloaded. Zero + * if the current progress of the file cannot be determined. + */ unsigned long CurrentSize; + + /** \brief The total number of bytes to be downloaded. Zero if the + * total size of the final is unknown. + */ unsigned long TotalSize; + + /** \brief How much of the file was already downloaded prior to + * starting this worker. + */ unsigned long ResumePoint; - // Load the method and do the startup + /** \brief Tell the subprocess to download the given item. + * + * \param Item the item to queue up. + * \return \b true if the item was successfully enqueued. + * + * Queues up a 600 URI Acquire message for the given item to be + * sent at the next possible moment. Does \e not flush the output + * queue. + */ bool QueueItem(pkgAcquire::Queue::QItem *Item); + + /** \brief Start up the worker and fill in #Config. + * + * Reads the first message from the worker, which is assumed to be + * a 100 Capabilities message. + * + * \return \b true if all operations completed successfully. + */ bool Start(); + + /** \brief Update the worker statistics (CurrentSize, TotalSize, + * etc). + */ void Pulse(); + + /** \return The fetch method configuration. */ inline const MethodConfig *GetConf() const {return Config;}; - + + /** \brief Create a new Worker to download files. + * + * \param OwnerQ The queue into which this worker should be + * placed. + * + * \param Config A location in which to store information about + * the fetch method. + * + * \param Log The download progress indicator that should be used + * to report the progress of this worker. + */ Worker(Queue *OwnerQ,MethodConfig *Config,pkgAcquireStatus *Log); + + /** \brief Create a new Worker that should just retrieve + * information about the fetch method. + * + * Nothing in particular forces you to refrain from actually + * downloading stuff, but the various status callbacks won't be + * invoked. + * + * \param Config A location in which to store information about + * the fetch method. + */ Worker(MethodConfig *Config); + + /** \brief Clean up this worker. + * + * Closes the file descriptors; if MethodConfig::NeedsCleanup is + * \b false, also rudely interrupts the worker with a SIGINT. + */ ~Worker(); }; +/** @} */ + #endif diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index 27bb3d363..64dafdc9d 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -29,6 +29,40 @@ ##################################################################### */ /*}}}*/ + +/** \defgroup acquire Acquire system + * + * \brief The Acquire system is responsible for retrieving files from + * local or remote URIs and postprocessing them (for instance, + * verifying their authenticity). The core class in this system is + * pkgAcquire, which is responsible for managing the download queues + * during the download. There is at least one download queue for + * each supported protocol; protocols such as http may provide one + * queue per host. + * + * Each file to download is represented by a subclass of + * pkgAcquire::Item. The files add themselves to the download + * queue(s) by providing their URI information to + * pkgAcquire::Item::QueueURI, which calls pkgAcquire::Enqueue. + * + * Once the system is set up, the Run method will spawn subprocesses + * to handle the enqueued URIs; the scheduler will then take items + * from the queues and feed them into the handlers until the queues + * are empty. + * + * \todo Acquire supports inserting an object into several queues at + * once, but it is not clear what its behavior in this case is, and + * no subclass of pkgAcquire::Item seems to actually use this + * capability. + */ + +/** \addtogroup acquire + * + * @{ + * + * \file acquire.h + */ + #ifndef PKGLIB_ACQUIRE_H #define PKGLIB_ACQUIRE_H @@ -46,6 +80,15 @@ using std::string; #include <unistd.h> class pkgAcquireStatus; + +/** \brief The core download scheduler. + * + * This class represents an ongoing download. It manages the lists + * of active and pending downloads and handles setting up and tearing + * down download-related structures. + * + * \todo Why all the protected data items and methods? + */ class pkgAcquire { public: @@ -60,97 +103,299 @@ class pkgAcquire typedef vector<Item *>::iterator ItemIterator; typedef vector<Item *>::const_iterator ItemCIterator; - + protected: - // List of items to fetch + /** \brief A list of items to download. + * + * This is built monotonically as items are created and only + * emptied when the download shuts down. + */ vector<Item *> Items; - // List of active queues and fetched method configuration parameters + /** \brief The head of the list of active queues. + * + * \todo why a hand-managed list of queues instead of std::list or + * std::set? + */ Queue *Queues; + + /** \brief The head of the list of active workers. + * + * \todo why a hand-managed list of workers instead of std::list + * or std::set? + */ Worker *Workers; + + /** \brief The head of the list of acquire method configurations. + * + * Each protocol (http, ftp, gzip, etc) via which files can be + * fetched can have a representation in this list. The + * configuration data is filled in by parsing the 100 Capabilities + * string output by a method on startup (see + * pkgAcqMethod::pkgAcqMethod and pkgAcquire::GetConfig). + * + * \todo why a hand-managed config dictionary instead of std::map? + */ MethodConfig *Configs; + + /** \brief The progress indicator for this download. */ pkgAcquireStatus *Log; + + /** \brief The total size of the files which are to be fetched. + * + * This is not necessarily the total number of bytes to download + * when, e.g., download resumption and list updates via patches + * are taken into account. + */ unsigned long ToFetch; - // Configurable parameters for the schedular - enum {QueueHost,QueueAccess} QueueMode; + // Configurable parameters for the scheduler + + /** \brief Represents the queuing strategy for remote URIs. */ + enum QueueStrategy { + /** \brief Generate one queue for each protocol/host combination; downloads from + * multiple hosts can proceed in parallel. + */ + QueueHost, + /** \brief Generate a single queue for each protocol; serialize + * downloads from multiple hosts. + */ + QueueAccess} QueueMode; + + /** \brief If \b true, debugging information will be dumped to std::clog. */ bool Debug; + /** \brief If \b true, a download is currently in progress. */ bool Running; - + + /** \brief Add the given item to the list of items. */ void Add(Item *Item); + + /** \brief Remove the given item from the list of items. */ void Remove(Item *Item); + + /** \brief Add the given worker to the list of workers. */ void Add(Worker *Work); + + /** \brief Remove the given worker from the list of workers. */ void Remove(Worker *Work); + /** \brief Insert the given fetch request into the appropriate queue. + * + * \param Item The URI to download and the item to download it + * for. Copied by value into the queue; no reference to Item is + * retained. + */ void Enqueue(ItemDesc &Item); + + /** \brief Remove all fetch requests for this item from all queues. */ void Dequeue(Item *Item); + + /** \brief Determine the fetch method and queue of a URI. + * + * \param URI The URI to fetch. + * + * \param[out] Config A location in which to place the method via + * which the URI is to be fetched. + * + * \return the string-name of the queue in which a fetch request + * for the given URI should be placed. + */ string QueueName(string URI,MethodConfig const *&Config); - // FDSET managers for derived classes + /** \brief Build up the set of file descriptors upon which select() should + * block. + * + * The default implementation inserts the file descriptors + * corresponding to active downloads. + * + * \param[out] Fd The largest file descriptor in the generated sets. + * + * \param[out] RSet The set of file descriptors that should be + * watched for input. + * + * \param[out] WSet The set of file descriptors that should be + * watched for output. + */ virtual void SetFds(int &Fd,fd_set *RSet,fd_set *WSet); + + /** Handle input from and output to file descriptors which select() + * has determined are ready. The default implementation + * dispatches to all active downloads. + * + * \param RSet The set of file descriptors that are ready for + * input. + * + * \param WSet The set of file descriptors that are ready for + * output. + */ virtual void RunFds(fd_set *RSet,fd_set *WSet); - // A queue calls this when it dequeues an item + /** \brief Check for idle queues with ready-to-fetch items. + * + * Called by pkgAcquire::Queue::Done each time an item is dequeued + * but remains on some queues; i.e., another queue should start + * fetching it. + */ void Bump(); public: + /** \brief Retrieve information about a fetch method by name. + * + * \param Access The name of the method to look up. + * + * \return the method whose name is Access, or \b NULL if no such method exists. + */ MethodConfig *GetConfig(string Access); - enum RunResult {Continue,Failed,Cancelled}; + /** \brief Provides information on how a download terminated. */ + enum RunResult { + /** \brief All files were fetched successfully. */ + Continue, + + /** \brief Some files failed to download. */ + Failed, + + /** \brief The download was cancelled by the user (i.e., #Log's + * pkgAcquireStatus::Pulse() method returned \b false). + */ + Cancelled}; - RunResult Run(int PulseIntervall=500000); + /** \brief Download all the items that have been Add()ed to this + * download process. + * + * This method will block until the download completes, invoking + * methods on #Log to report on the progress of the download. + * + * \param PulseInterval The method pkgAcquireStatus::Pulse will be + * invoked on #Log at intervals of PulseInterval milliseconds. + * + * \return the result of the download. + */ + RunResult Run(int PulseInterval=500000); + + /** \brief Remove all items from this download process, terminate + * all download workers, and empty all queues. + */ void Shutdown(); - // Simple iteration mechanism + /** \brief Get the first #Worker object. + * + * \return the first active worker in this download process. + */ inline Worker *WorkersBegin() {return Workers;}; + + /** \brief Advance to the next #Worker object. + * + * \return the worker immediately following I, or \b NULL if none + * exists. + */ Worker *WorkerStep(Worker *I); + + /** \brief Get the head of the list of items. */ inline ItemIterator ItemsBegin() {return Items.begin();}; + + /** \brief Get the end iterator of the list of items. */ inline ItemIterator ItemsEnd() {return Items.end();}; // Iterate over queued Item URIs class UriIterator; + /** \brief Get the head of the list of enqueued item URIs. + * + * This iterator will step over every element of every active + * queue. + */ UriIterator UriBegin(); + /** \brief Get the end iterator of the list of enqueued item URIs. */ UriIterator UriEnd(); - // Cleans out the download dir + /** Deletes each entry in the given directory that is not being + * downloaded by this object. For instance, when downloading new + * list files, calling Clean() will delete the old ones. + * + * \param Dir The directory to be cleaned out. + * + * \return \b true if the directory exists and is readable. + */ bool Clean(string Dir); - // Returns the size of the total download set + /** \return the total size in bytes of all the items included in + * this download. + */ double TotalNeeded(); + + /** \return the size in bytes of all non-local items included in + * this download. + */ double FetchNeeded(); + + /** \return the amount of data to be fetched that is already + * present on the filesystem. + */ double PartialPresent(); + /** \brief Construct a new pkgAcquire. + * + * \param Log The progress indicator associated with this + * download, or \b NULL for none. This object is not owned by the + * download process and will not be deleted when the pkgAcquire + * object is destroyed. Naturally, it should live for at least as + * long as the pkgAcquire object does. + */ pkgAcquire(pkgAcquireStatus *Log = 0); + + /** \brief Destroy this pkgAcquire object. + * + * Destroys all queue, method, and item objects associated with + * this download. + */ virtual ~pkgAcquire(); }; -// Description of an Item+URI +/** \brief Represents a single download source from which an item + * should be downloaded. + * + * An item may have several assocated ItemDescs over its lifetime. + */ struct pkgAcquire::ItemDesc { + /** \brief The URI from which to download this item. */ string URI; + /** brief A description of this item. */ string Description; + /** brief A shorter description of this item. */ string ShortDesc; + /** brief The underlying item which is to be downloaded. */ Item *Owner; }; -// List of possible items queued for download. +/** \brief A single download queue in a pkgAcquire object. + * + * \todo Why so many protected values? + */ class pkgAcquire::Queue { friend class pkgAcquire; friend class pkgAcquire::UriIterator; friend class pkgAcquire::Worker; + + /** \brief The next queue in the pkgAcquire object's list of queues. */ Queue *Next; protected: - // Queued item + /** \brief A single item placed in this queue. */ struct QItem : pkgAcquire::ItemDesc { - QItem *Next; + /** \brief The next item in the queue. */ + QItem *Next; + /** \brief The worker associated with this item, if any. */ pkgAcquire::Worker *Worker; - + + /** \brief Assign the ItemDesc portion of this QItem from + * another ItemDesc + */ void operator =(pkgAcquire::ItemDesc const &I) { URI = I.URI; @@ -160,45 +405,141 @@ class pkgAcquire::Queue }; }; - // Name of the queue + /** \brief The name of this queue. */ string Name; - // Items queued into this queue + /** \brief The head of the list of items contained in this queue. + * + * \todo why a by-hand list instead of an STL structure? + */ QItem *Items; + + /** \brief The head of the list of workers associated with this queue. + * + * \todo This is plural because support exists in Queue for + * multiple workers. However, it does not appear that there is + * any way to actually associate more than one worker with a + * queue. + * + * \todo Why not just use a std::set? + */ pkgAcquire::Worker *Workers; + + /** \brief the download scheduler with which this queue is associated. */ pkgAcquire *Owner; + + /** \brief The number of entries in this queue that are currently + * being downloaded. + */ signed long PipeDepth; + + /** \brief The maximum number of entries that this queue will + * attempt to download at once. + */ unsigned long MaxPipeDepth; public: - // Put an item into this queue + /** \brief Insert the given fetch request into this queue. */ void Enqueue(ItemDesc &Item); + + /** \brief Remove all fetch requests for the given item from this queue. + * + * \return \b true if at least one request was removed from the queue. + */ bool Dequeue(Item *Owner); - // Find a Queued item + /** \brief Locate an item in this queue. + * + * \param URI A URI to match against. + * \param Owner A pkgAcquire::Worker to match against. + * + * \return the first item in the queue whose URI is #URI and that + * is being downloaded by #Owner. + */ QItem *FindItem(string URI,pkgAcquire::Worker *Owner); + + /** Presumably this should start downloading an item? + * + * \todo Unimplemented. Implement it or remove? + */ bool ItemStart(QItem *Itm,unsigned long Size); + + /** \brief Remove the given item from this queue and set its state + * to pkgAcquire::Item::StatDone. + * + * If this is the only queue containing the item, the item is also + * removed from the main queue by calling pkgAcquire::Dequeue. + * + * \param Itm The item to remove. + * + * \return \b true if no errors are encountered. + */ bool ItemDone(QItem *Itm); + /** \brief Start the worker process associated with this queue. + * + * If a worker process is already associated with this queue, + * this is equivalent to calling Cycle(). + * + * \return \b true if the startup was successful. + */ bool Startup(); + + /** \brief Shut down the worker process associated with this queue. + * + * \param Final If \b true, then the process is stopped unconditionally. + * Otherwise, it is only stopped if it does not need cleanup + * as indicated by the pkgAcqMethod::NeedsCleanup member of + * its configuration. + * + * \return \b true. + */ bool Shutdown(bool Final); + + /** \brief Send idle items to the worker process. + * + * Fills up the pipeline by inserting idle items into the worker's queue. + */ bool Cycle(); + + /** \brief Check for items that could be enqueued. + * + * Call this after an item placed in multiple queues has gone from + * the pkgAcquire::Item::StatFetching state to the + * pkgAcquire::Item::StatIdle state, to possibly refill an empty queue. + * This is an alias for Cycle(). + * + * \todo Why both this and Cycle()? Are they expected to be + * different someday? + */ void Bump(); + /** \brief Create a new Queue. + * + * \param Name The name of the new queue. + * \param Owner The download process that owns the new queue. + */ Queue(string Name,pkgAcquire *Owner); + + /** Shut down all the worker processes associated with this queue + * and empty the queue. + */ ~Queue(); }; +/** \brief Iterates over all the URIs being fetched by a pkgAcquire object. */ class pkgAcquire::UriIterator { + /** The next queue to iterate over. */ pkgAcquire::Queue *CurQ; + /** The item that we currently point at. */ pkgAcquire::Queue::QItem *CurItem; public: - // Advance to the next item inline void operator ++() {operator ++();}; + void operator ++(int) { CurItem = CurItem->Next; @@ -209,11 +550,14 @@ class pkgAcquire::UriIterator } }; - // Accessors inline pkgAcquire::ItemDesc const *operator ->() const {return CurItem;}; inline bool operator !=(UriIterator const &rhs) const {return rhs.CurQ != CurQ || rhs.CurItem != CurItem;}; inline bool operator ==(UriIterator const &rhs) const {return rhs.CurQ == CurQ && rhs.CurItem == CurItem;}; + /** \brief Create a new UriIterator. + * + * \param Q The queue over which this UriIterator should iterate. + */ UriIterator(pkgAcquire::Queue *Q) : CurQ(Q), CurItem(0) { while (CurItem == 0 && CurQ != 0) @@ -224,61 +568,200 @@ class pkgAcquire::UriIterator } }; -// Configuration information from each method +/** \brief Information about the properties of a single acquire method. */ struct pkgAcquire::MethodConfig { + /** \brief The next link on the acquire method list. + * + * \todo Why not an STL container? + */ MethodConfig *Next; + /** \brief The name of this acquire method (e.g., http). */ string Access; + /** \brief The implementation version of this acquire method. */ string Version; + + /** \brief If \b true, only one download queue should be created for this + * method. + */ bool SingleInstance; + + /** \brief If \b true, this method supports pipelined downloading. */ bool Pipeline; + + /** \brief If \b true, the worker process should send the entire + * APT configuration tree to the fetch subprocess when it starts + * up. + */ bool SendConfig; + + /** \brief If \b true, this fetch method does not require network access; + * all files are to be acquired from the local disk. + */ bool LocalOnly; + + /** \brief If \b true, the subprocess has to carry out some cleanup + * actions before shutting down. + * + * For instance, the cdrom method needs to unmount the CD after it + * finishes. + */ bool NeedsCleanup; + + /** \brief If \b true, this fetch method acquires files from removable media. */ bool Removable; + /** \brief Set up the default method parameters. + * + * All fields are initialized to NULL, "", or \b false as + * appropriate. + */ MethodConfig(); }; +/** \brief A monitor object for downloads controlled by the pkgAcquire class. + * + * \todo Why protected members? + * + * \todo Should the double members be uint64_t? + */ class pkgAcquireStatus { protected: + /** \brief The last time at which this monitor object was updated. */ struct timeval Time; + + /** \brief The time at which the download started. */ struct timeval StartTime; + + /** \brief The number of bytes fetched as of the previous call to + * pkgAcquireStatus::Pulse, including local items. + */ double LastBytes; + + /** \brief The current rate of download as of the most recent call + * to pkgAcquireStatus::Pulse, in bytes per second. + */ double CurrentCPS; + + /** \brief The number of bytes fetched as of the most recent call + * to pkgAcquireStatus::Pulse, including local items. + */ double CurrentBytes; + + /** \brief The total number of bytes that need to be fetched. + * + * \warning This member is inaccurate, as new items might be + * enqueued while the download is in progress! + */ double TotalBytes; + + /** \brief The total number of bytes accounted for by items that + * were successfully fetched. + */ double FetchedBytes; + + /** \brief The amount of time that has elapsed since the download + * started. + */ unsigned long ElapsedTime; + + /** \brief The total number of items that need to be fetched. + * + * \warning This member is inaccurate, as new items might be + * enqueued while the download is in progress! + */ unsigned long TotalItems; + + /** \brief The number of items that have been successfully downloaded. */ unsigned long CurrentItems; public: + /** \brief If \b true, the download scheduler should call Pulse() + * at the next available opportunity. + */ bool Update; + + /** \brief If \b true, extra Pulse() invocations will be performed. + * + * With this option set, Pulse() will be called every time that a + * download item starts downloading, finishes downloading, or + * terminates with an error. + */ bool MorePulses; - // Called by items when they have finished a real download + /** \brief Invoked when a local or remote file has been completely fetched. + * + * \param Size The size of the file fetched. + * + * \param ResumePoint How much of the file was already fetched. + */ virtual void Fetched(unsigned long Size,unsigned long ResumePoint); - // Called to change media + /** \brief Invoked when the user should be prompted to change the + * inserted removable media. + * + * This method should not return until the user has confirmed to + * the user interface that the media change is complete. + * + * \param Media The name of the media type that should be changed. + * + * \param Drive The identifying name of the drive whose media + * should be changed. + * + * \return \b true if the user confirms the media change, \b + * false if it is cancelled. + * + * \todo This is a horrible blocking monster; it should be CPSed + * with prejudice. + */ virtual bool MediaChange(string Media,string Drive) = 0; - // Each of these is called by the workers when an event occures + /** \brief Invoked when an item is confirmed to be up-to-date. + + * For instance, when an HTTP download is informed that the file on + * the server was not modified. + */ virtual void IMSHit(pkgAcquire::ItemDesc &/*Itm*/) {}; + + /** \brief Invoked when some of an item's data is fetched. */ virtual void Fetch(pkgAcquire::ItemDesc &/*Itm*/) {}; + + /** \brief Invoked when an item is successfully and completely fetched. */ virtual void Done(pkgAcquire::ItemDesc &/*Itm*/) {}; + + /** \brief Invoked when the process of fetching an item encounters + * a fatal error. + */ virtual void Fail(pkgAcquire::ItemDesc &/*Itm*/) {}; - virtual bool Pulse(pkgAcquire *Owner); // returns false on user cancel + + /** \brief Periodically invoked while the Acquire process is underway. + * + * Subclasses should first call pkgAcquireStatus::Pulse(), then + * update their status output. The download process is blocked + * while Pulse() is being called. + * + * \return \b false if the user asked to cancel the whole Acquire process. + * + * \see pkgAcquire::Run + */ + virtual bool Pulse(pkgAcquire *Owner); + + /** \brief Invoked when the Acquire process starts running. */ virtual void Start(); + + /** \brief Invoked when the Acquire process stops running. */ virtual void Stop(); + /** \brief Initialize all counters to 0 and the time to the current time. */ pkgAcquireStatus(); virtual ~pkgAcquireStatus() {}; }; +/** @} */ + #endif diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 2b326bd65..d5a9c7b0d 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -99,7 +99,7 @@ class pkgCache::VerIterator { Version *Ver; pkgCache *Owner; - + void _dummy(); public: @@ -128,6 +128,8 @@ class pkgCache::VerIterator inline const char *Section() const {return Ver->Section == 0?0:Owner->StrP + Ver->Section;}; inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;}; inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);}; + inline DescIterator DescriptionList() const; + DescIterator TranslatedDescription() const; inline DepIterator DependsList() const; inline PrvIterator ProvidesList() const; inline VerFileIterator FileList() const; @@ -148,6 +150,50 @@ class pkgCache::VerIterator }; }; +// Description Iterator +class pkgCache::DescIterator +{ + Description *Desc; + pkgCache *Owner; + + void _dummy(); + + public: + + // Iteration + void operator ++(int) {if (Desc != Owner->DescP) Desc = Owner->DescP + Desc->NextDesc;}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return Desc == Owner->DescP?true:false;}; + inline void operator =(const DescIterator &B) {Desc = B.Desc; Owner = B.Owner;}; + + // Comparison + inline bool operator ==(const DescIterator &B) const {return Desc == B.Desc;}; + inline bool operator !=(const DescIterator &B) const {return Desc != B.Desc;}; + int CompareDesc(const DescIterator &B) const; + + // Accessors + inline Description *operator ->() {return Desc;}; + inline Description const *operator ->() const {return Desc;}; + inline Description &operator *() {return *Desc;}; + inline Description const &operator *() const {return *Desc;}; + inline operator Description *() {return Desc == Owner->DescP?0:Desc;}; + inline operator Description const *() const {return Desc == Owner->DescP?0:Desc;}; + inline pkgCache *Cache() {return Owner;}; + + inline const char *LanguageCode() const {return Owner->StrP + Desc->language_code;}; + inline const char *md5() const {return Owner->StrP + Desc->md5sum;}; + inline DescFileIterator FileList() const; + inline unsigned long Index() const {return Desc - Owner->DescP;}; + + inline DescIterator() : Desc(0), Owner(0) {}; + inline DescIterator(pkgCache &Owner,Description *Trg = 0) : Desc(Trg), + Owner(&Owner) + { + if (Desc == 0) + Desc = Owner.DescP; + }; +}; + // Dependency iterator class pkgCache::DepIterator { @@ -338,6 +384,38 @@ class pkgCache::VerFileIterator inline VerFileIterator(pkgCache &Owner,VerFile *Trg) : Owner(&Owner), FileP(Trg) {}; }; +// Description File +class pkgCache::DescFileIterator +{ + pkgCache *Owner; + DescFile *FileP; + + public: + + // Iteration + void operator ++(int) {if (FileP != Owner->DescFileP) FileP = Owner->DescFileP + FileP->NextFile;}; + inline void operator ++() {operator ++(0);}; + inline bool end() const {return FileP == Owner->DescFileP?true:false;}; + + // Comparison + inline bool operator ==(const DescFileIterator &B) const {return FileP == B.FileP;}; + inline bool operator !=(const DescFileIterator &B) const {return FileP != B.FileP;}; + + // Accessors + inline DescFile *operator ->() {return FileP;}; + inline DescFile const *operator ->() const {return FileP;}; + inline DescFile const &operator *() const {return *FileP;}; + inline operator DescFile *() {return FileP == Owner->DescFileP?0:FileP;}; + inline operator DescFile const *() const {return FileP == Owner->DescFileP?0:FileP;}; + inline pkgCache *Cache() {return Owner;}; + + inline PkgFileIterator File() const {return PkgFileIterator(*Owner,FileP->File + Owner->PkgFileP);}; + inline unsigned long Index() const {return FileP - Owner->DescFileP;}; + + inline DescFileIterator() : Owner(0), FileP(0) {}; + inline DescFileIterator(pkgCache &Owner,DescFile *Trg) : Owner(&Owner), FileP(Trg) {}; +}; + // Inlined Begin functions cant be in the class because of order problems inline pkgCache::VerIterator pkgCache::PkgIterator::VersionList() const {return VerIterator(*Owner,Owner->VerP + Pkg->VersionList);}; @@ -347,11 +425,15 @@ inline pkgCache::DepIterator pkgCache::PkgIterator::RevDependsList() const {return DepIterator(*Owner,Owner->DepP + Pkg->RevDepends,Pkg);}; inline pkgCache::PrvIterator pkgCache::PkgIterator::ProvidesList() const {return PrvIterator(*Owner,Owner->ProvideP + Pkg->ProvidesList,Pkg);}; +inline pkgCache::DescIterator pkgCache::VerIterator::DescriptionList() const + {return DescIterator(*Owner,Owner->DescP + Ver->DescriptionList);}; inline pkgCache::PrvIterator pkgCache::VerIterator::ProvidesList() const {return PrvIterator(*Owner,Owner->ProvideP + Ver->ProvidesList,Ver);}; inline pkgCache::DepIterator pkgCache::VerIterator::DependsList() const {return DepIterator(*Owner,Owner->DepP + Ver->DependsList,Ver);}; inline pkgCache::VerFileIterator pkgCache::VerIterator::FileList() const {return VerFileIterator(*Owner,Owner->VerFileP + Ver->FileList);}; +inline pkgCache::DescFileIterator pkgCache::DescIterator::FileList() const + {return DescFileIterator(*Owner,Owner->DescFileP + Desc->FileList);}; #endif diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index ce1beb39b..b42c82dd0 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -30,12 +30,16 @@ using namespace std; search that short circuits when it his a package file in the dir. This speeds it up greatly as the majority of the size is in the binary-* sub dirs. */ -bool pkgCdrom::FindPackages(string CD,vector<string> &List, - vector<string> &SList, vector<string> &SigList, +bool pkgCdrom::FindPackages(string CD, + vector<string> &List, + vector<string> &SList, + vector<string> &SigList, + vector<string> &TransList, string &InfoDir, pkgCdromStatus *log, unsigned int Depth) { static ino_t Inodes[9]; + DIR *D; // if we have a look we "pulse" now if(log) @@ -90,8 +94,28 @@ bool pkgCdrom::FindPackages(string CD,vector<string> &List, if (_config->FindB("APT::CDROM::Thorough",false) == false) return true; } + + // see if we find translatin indexes + if (stat("i18n",&Buf) == 0) + { + D = opendir("i18n"); + for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D)) + { + if(strstr(Dir->d_name,"Translation") != NULL) + { + if (_config->FindB("Debug::aptcdrom",false) == true) + std::clog << "found translations: " << Dir->d_name << "\n"; + string file = Dir->d_name; + if(file.substr(file.size()-3,file.size()) == ".gz") + file = file.substr(0,file.size()-3); + TransList.push_back(CD+"i18n/"+ file); + } + } + closedir(D); + } + - DIR *D = opendir("."); + D = opendir("."); if (D == 0) return _error->Errno("opendir","Unable to read %s",CD.c_str()); @@ -127,7 +151,7 @@ bool pkgCdrom::FindPackages(string CD,vector<string> &List, Inodes[Depth] = Buf.st_ino; // Descend - if (FindPackages(CD + Dir->d_name,List,SList,SigList,InfoDir,log,Depth+1) == false) + if (FindPackages(CD + Dir->d_name,List,SList,SigList,TransList,InfoDir,log,Depth+1) == false) break; if (chdir(CD.c_str()) != 0) @@ -612,9 +636,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log) vector<string> List; vector<string> SourceList; vector<string> SigList; + vector<string> TransList; string StartDir = SafeGetCWD(); string InfoDir; - if (FindPackages(CDROM,List,SourceList, SigList,InfoDir,log) == false) + if (FindPackages(CDROM,List,SourceList, SigList,TransList,InfoDir,log) == false) { log->Update("\n"); return false; @@ -642,11 +667,13 @@ bool pkgCdrom::Add(pkgCdromStatus *log) DropRepeats(List,"Packages"); DropRepeats(SourceList,"Sources"); DropRepeats(SigList,"Release.gpg"); + DropRepeats(TransList,""); if(log) { msg.str(""); - ioprintf(msg, _("Found %i package indexes, %i source indexes and " - "%i signatures\n"), - List.size(), SourceList.size(), SigList.size()); + ioprintf(msg, _("Found %i package indexes, %i source indexes, " + "%i translation indexes and %i signatures\n"), + List.size(), SourceList.size(), TransList.size(), + SigList.size()); log->Update(msg.str(), STEP_SCAN); } @@ -736,8 +763,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log) // Copy the package files to the state directory PackageCopy Copy; SourceCopy SrcCopy; + TranslationsCopy TransCopy; if (Copy.CopyPackages(CDROM,Name,List, log) == false || - SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false) + SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false || + TransCopy.CopyTranslations(CDROM,Name,TransList, log) == false) return false; // reduce the List so that it takes less space in sources.list diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index 085eb64e2..e18aaff3e 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -50,8 +50,11 @@ class pkgCdrom }; - bool FindPackages(string CD,vector<string> &List, - vector<string> &SList, vector<string> &SigList, + bool FindPackages(string CD, + vector<string> &List, + vector<string> &SList, + vector<string> &SigList, + vector<string> &TransList, string &InfoDir, pkgCdromStatus *log, unsigned int Depth = 0); bool DropBinaryArch(vector<string> &List); diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index d96155917..37d263794 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -32,12 +32,55 @@ #include <regex.h> #include <errno.h> #include <stdarg.h> +#include <iconv.h> #include "config.h" using namespace std; /*}}}*/ +// UTF8ToCodeset - Convert some UTF-8 string for some codeset /*{{{*/ +// --------------------------------------------------------------------- +/* This is handy to use before display some information for enduser */ +bool UTF8ToCodeset(const char *codeset, const string &orig, string *dest) +{ + iconv_t cd; + const char *inbuf; + char *inptr, *outbuf, *outptr; + size_t insize, outsize; + + cd = iconv_open(codeset, "UTF-8"); + if (cd == (iconv_t)(-1)) { + // Something went wrong + if (errno == EINVAL) + _error->Error("conversion from 'UTF-8' to '%s' not available", + codeset); + else + perror("iconv_open"); + + // Clean the destination string + *dest = ""; + + return false; + } + + insize = outsize = orig.size(); + inbuf = orig.data(); + inptr = (char *)inbuf; + outbuf = new char[insize+1]; + outptr = outbuf; + + iconv(cd, &inptr, &insize, &outptr, &outsize); + *outptr = '\0'; + + *dest = outbuf; + delete[] outbuf; + + iconv_close(cd); + + return true; +} + /*}}}*/ // strstrip - Remove white space from the front and back of a string /*{{{*/ // --------------------------------------------------------------------- /* This is handy to use when parsing a file. It also removes \n's left diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index 6ec2b7811..254087267 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -38,7 +38,8 @@ using std::ostream; #define APT_FORMAT2 #define APT_FORMAT3 #endif - + +bool UTF8ToCodeset(const char *codeset, const string &orig, string *dest); char *_strstrip(char *String); char *_strtabexpand(char *String,size_t Len); bool ParseQuoteWord(const char *&String,string &Res); diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index ff8bce85d..38ecdd16a 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -320,6 +320,170 @@ pkgCache::PkgFileIterator debPackagesIndex::FindInCache(pkgCache &Cache) const } /*}}}*/ +// TranslationsIndex::debTranslationsIndex - Contructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +debTranslationsIndex::debTranslationsIndex(string URI,string Dist,string Section) : + pkgIndexFile(true), URI(URI), Dist(Dist), Section(Section) +{ +} + /*}}}*/ +// TranslationIndex::Trans* - Return the URI to the translation files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +inline string debTranslationsIndex::IndexFile(const char *Type) const +{ + return _config->FindDir("Dir::State::lists") + URItoFileName(IndexURI(Type)); +} +string debTranslationsIndex::IndexURI(const char *Type) const +{ + string Res; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res = URI + Dist; + else + Res = URI; + } + else + Res = URI + "dists/" + Dist + '/' + Section + + "/i18n/Translation-"; + + Res += Type; + return Res; +} + /*}}}*/ +// TranslationsIndex::GetIndexes - Fetch the index files /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debTranslationsIndex::GetIndexes(pkgAcquire *Owner) const +{ + if (TranslationsAvailable()) { + string TranslationFile = "Translation-" + LanguageCode(); + new pkgAcqIndexTrans(Owner, IndexURI(LanguageCode().c_str()), + Info(TranslationFile.c_str()), + TranslationFile); + } + + return true; +} + /*}}}*/ +// TranslationsIndex::Describe - Give a descriptive path to the index /*{{{*/ +// --------------------------------------------------------------------- +/* This should help the user find the index in the sources.list and + in the filesystem for problem solving */ +string debTranslationsIndex::Describe(bool Short) const +{ + char S[300]; + if (Short == true) + snprintf(S,sizeof(S),"%s",Info(TranslationFile().c_str()).c_str()); + else + snprintf(S,sizeof(S),"%s (%s)",Info(TranslationFile().c_str()).c_str(), + IndexFile(LanguageCode().c_str()).c_str()); + return S; +} + /*}}}*/ +// TranslationsIndex::Info - One liner describing the index URI /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debTranslationsIndex::Info(const char *Type) const +{ + string Info = ::URI::SiteOnly(URI) + ' '; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Info += Dist; + } + else + Info += Dist + '/' + Section; + Info += " "; + Info += Type; + return Info; +} + /*}}}*/ +bool debTranslationsIndex::HasPackages() const +{ + if(!TranslationsAvailable()) + return false; + + return FileExists(IndexFile(LanguageCode().c_str())); +} + +// TranslationsIndex::Exists - Check if the index is available /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debTranslationsIndex::Exists() const +{ + return FileExists(IndexFile(LanguageCode().c_str())); +} + /*}}}*/ +// TranslationsIndex::Size - Return the size of the index /*{{{*/ +// --------------------------------------------------------------------- +/* This is really only used for progress reporting. */ +unsigned long debTranslationsIndex::Size() const +{ + struct stat S; + if (stat(IndexFile(LanguageCode().c_str()).c_str(),&S) != 0) + return 0; + return S.st_size; +} + /*}}}*/ +// TranslationsIndex::Merge - Load the index file into a cache /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool debTranslationsIndex::Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const +{ + // Check the translation file, if in use + string TranslationFile = IndexFile(LanguageCode().c_str()); + if (TranslationsAvailable() && FileExists(TranslationFile)) + { + FileFd Trans(TranslationFile,FileFd::ReadOnly); + debListParser TransParser(&Trans); + if (_error->PendingError() == true) + return false; + + Prog.SubProgress(0, Info(TranslationFile.c_str())); + if (Gen.SelectFile(TranslationFile,string(),*this) == false) + return _error->Error("Problem with SelectFile %s",TranslationFile.c_str()); + + // Store the IMS information + pkgCache::PkgFileIterator TransFile = Gen.GetCurFile(); + struct stat TransSt; + if (fstat(Trans.Fd(),&TransSt) != 0) + return _error->Errno("fstat","Failed to stat"); + TransFile->Size = TransSt.st_size; + TransFile->mtime = TransSt.st_mtime; + + if (Gen.MergeList(TransParser) == false) + return _error->Error("Problem with MergeList %s",TranslationFile.c_str()); + } + + return true; +} + /*}}}*/ +// TranslationsIndex::FindInCache - Find this index /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgCache::PkgFileIterator debTranslationsIndex::FindInCache(pkgCache &Cache) const +{ + string FileName = IndexFile(LanguageCode().c_str()); + + pkgCache::PkgFileIterator File = Cache.FileBegin(); + for (; File.end() == false; File++) + { + if (FileName != File.FileName()) + continue; + + struct stat St; + if (stat(File.FileName(),&St) != 0) + return pkgCache::PkgFileIterator(Cache); + if ((unsigned)St.st_size != File->Size || St.st_mtime != File->mtime) + return pkgCache::PkgFileIterator(Cache); + return File; + } + return File; +} + /*}}}*/ // StatusIndex::debStatusIndex - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -416,6 +580,11 @@ class debIFTypePkg : public pkgIndexFile::Type }; debIFTypePkg() {Label = "Debian Package Index";}; }; +class debIFTypeTrans : public debIFTypePkg +{ + public: + debIFTypeTrans() {Label = "Debian Translation Index";}; +}; class debIFTypeStatus : public pkgIndexFile::Type { public: @@ -428,6 +597,7 @@ class debIFTypeStatus : public pkgIndexFile::Type }; static debIFTypeSrc _apt_Src; static debIFTypePkg _apt_Pkg; +static debIFTypeTrans _apt_Trans; static debIFTypeStatus _apt_Status; const pkgIndexFile::Type *debSourcesIndex::GetType() const @@ -438,6 +608,10 @@ const pkgIndexFile::Type *debPackagesIndex::GetType() const { return &_apt_Pkg; } +const pkgIndexFile::Type *debTranslationsIndex::GetType() const +{ + return &_apt_Trans; +} const pkgIndexFile::Type *debStatusIndex::GetType() const { return &_apt_Status; diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index a1b9583a4..57005222f 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -74,6 +74,36 @@ class debPackagesIndex : public pkgIndexFile debPackagesIndex(string URI,string Dist,string Section,bool Trusted); }; +class debTranslationsIndex : public pkgIndexFile +{ + string URI; + string Dist; + string Section; + + string Info(const char *Type) const; + string IndexFile(const char *Type) const; + string IndexURI(const char *Type) const; + + inline string TranslationFile() const {return "Translation-" + LanguageCode();}; + + public: + + virtual const Type *GetType() const; + + // Interface for acquire + virtual string Describe(bool Short) const; + virtual bool GetIndexes(pkgAcquire *Owner) const; + + // Interface for the Cache Generator + virtual bool Exists() const; + virtual bool HasPackages() const; + virtual unsigned long Size() const; + virtual bool Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const; + virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; + + debTranslationsIndex(string URI,string Dist,string Section); +}; + class debSourcesIndex : public pkgIndexFile { string URI; diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index d0dc7a260..c2b26b5eb 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -15,6 +15,7 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/strutl.h> #include <apt-pkg/crc-16.h> +#include <apt-pkg/md5.h> #include <ctype.h> @@ -117,6 +118,48 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver) return true; } /*}}}*/ +// ListParser::Description - Return the description string /*{{{*/ +// --------------------------------------------------------------------- +/* This is to return the string describing the package in debian + form. If this returns the blank string then the entry is assumed to + only describe package properties */ +string debListParser::Description() +{ + if (DescriptionLanguage().empty()) + return Section.FindS("Description"); + else + return Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()); +} + /*}}}*/ +// ListParser::DescriptionLanguage - Return the description lang string /*{{{*/ +// --------------------------------------------------------------------- +/* This is to return the string describing the language of + description. If this returns the blank string then the entry is + assumed to describe original description. */ +string debListParser::DescriptionLanguage() +{ + return Section.FindS("Description").empty() ? pkgIndexFile::LanguageCode() : ""; +} + /*}}}*/ +// ListParser::Description - Return the description_md5 MD5SumValue /*{{{*/ +// --------------------------------------------------------------------- +/* This is to return the md5 string to allow the check if it is the right + description. If no Description-md5 is found in the section it will be + calculated. + */ +MD5SumValue debListParser::Description_md5() +{ + string value = Section.FindS("Description-md5"); + + if (value.empty()) + { + MD5Summation md5; + md5.Add((Description() + "\n").c_str()); + return md5.Result(); + } else + return MD5SumValue(value); +} + /*}}}*/ // ListParser::UsePackage - Update a package structure /*{{{*/ // --------------------------------------------------------------------- /* This is called to update the package with any new information diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h index 3a0e0421b..34bb29c72 100644 --- a/apt-pkg/deb/deblistparser.h +++ b/apt-pkg/deb/deblistparser.h @@ -12,6 +12,7 @@ #define PKGLIB_DEBLISTPARSER_H #include <apt-pkg/pkgcachegen.h> +#include <apt-pkg/indexfile.h> #include <apt-pkg/tagfile.h> class debListParser : public pkgCacheGenerator::ListParser @@ -47,6 +48,9 @@ class debListParser : public pkgCacheGenerator::ListParser virtual string Package(); virtual string Version(); virtual bool NewVersion(pkgCache::VerIterator Ver); + virtual string Description(); + virtual string DescriptionLanguage(); + virtual MD5SumValue Description_md5(); virtual unsigned short VersionHash(); virtual bool UsePackage(pkgCache::PkgIterator Pkg, pkgCache::VerIterator Ver); diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 85e5b16b3..8cf31b326 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -157,6 +157,16 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool GetAll) const ComputeIndexTargets(), new indexRecords (Dist)); + // Queue the translations + for (vector<const debSectionEntry *>::const_iterator I = SectionEntries.begin(); + I != SectionEntries.end(); I++) { + + if((*I)->IsSrc) + continue; + debTranslationsIndex i = debTranslationsIndex(URI,Dist,(*I)->Section); + i.GetIndexes(Owner); + } + return true; } @@ -181,11 +191,16 @@ vector <pkgIndexFile *> *debReleaseIndex::GetIndexFiles() Indexes = new vector <pkgIndexFile*>; for (vector<const debSectionEntry *>::const_iterator I = SectionEntries.begin(); - I != SectionEntries.end(); I++) + I != SectionEntries.end(); I++) { if ((*I)->IsSrc) Indexes->push_back(new debSourcesIndex (URI, Dist, (*I)->Section, IsTrusted())); else + { Indexes->push_back(new debPackagesIndex (URI, Dist, (*I)->Section, IsTrusted())); + Indexes->push_back(new debTranslationsIndex(URI, Dist, (*I)->Section)); + } + } + return Indexes; } diff --git a/apt-pkg/deb/debrecords.cc b/apt-pkg/deb/debrecords.cc index 6652a6ad9..518988bb6 100644 --- a/apt-pkg/deb/debrecords.cc +++ b/apt-pkg/deb/debrecords.cc @@ -12,7 +12,9 @@ #pragma implementation "apt-pkg/debrecords.h" #endif #include <apt-pkg/debrecords.h> +#include <apt-pkg/strutl.h> #include <apt-pkg/error.h> +#include <langinfo.h> /*}}}*/ // RecordParser::debRecordParser - Constructor /*{{{*/ @@ -31,6 +33,10 @@ bool debRecordParser::Jump(pkgCache::VerFileIterator const &Ver) { return Tags.Jump(Section,Ver->Offset); } +bool debRecordParser::Jump(pkgCache::DescFileIterator const &Desc) +{ + return Tags.Jump(Section,Desc->Offset); +} /*}}}*/ // RecordParser::FileName - Return the archive filename on the site /*{{{*/ // --------------------------------------------------------------------- @@ -77,7 +83,7 @@ string debRecordParser::Maintainer() /* */ string debRecordParser::ShortDesc() { - string Res = Section.FindS("Description"); + string Res = LongDesc(); string::size_type Pos = Res.find('\n'); if (Pos == string::npos) return Res; @@ -89,7 +95,20 @@ string debRecordParser::ShortDesc() /* */ string debRecordParser::LongDesc() { - return Section.FindS("Description"); + string orig, dest; + char *codeset = nl_langinfo(CODESET); + + if (!Section.FindS("Description").empty()) + orig = Section.FindS("Description").c_str(); + else + orig = Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str()).c_str(); + + if (strcmp(codeset,"UTF-8") != 0) { + UTF8ToCodeset(codeset, orig, &dest); + orig = dest; + } + + return orig; } /*}}}*/ // RecordParser::SourcePkg - Return the source package name if any /*{{{*/ diff --git a/apt-pkg/deb/debrecords.h b/apt-pkg/deb/debrecords.h index efef2e588..24e5aab88 100644 --- a/apt-pkg/deb/debrecords.h +++ b/apt-pkg/deb/debrecords.h @@ -19,6 +19,7 @@ #endif #include <apt-pkg/pkgrecords.h> +#include <apt-pkg/indexfile.h> #include <apt-pkg/tagfile.h> class debRecordParser : public pkgRecords::Parser @@ -30,6 +31,7 @@ class debRecordParser : public pkgRecords::Parser protected: virtual bool Jump(pkgCache::VerFileIterator const &Ver); + virtual bool Jump(pkgCache::DescFileIterator const &Desc); public: diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index bf0434ccc..2b167dbf6 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -355,28 +355,28 @@ bool pkgDPkgPM::Go(int OutStatusFd) static const struct DpkgState DpkgStatesOpMap[][5] = { // Install operation { - {"half-installed", _("Preparing %s")}, - {"unpacked", _("Unpacking %s") }, + {"half-installed", N_("Preparing %s")}, + {"unpacked", N_("Unpacking %s") }, {NULL, NULL} }, // Configure operation { - {"unpacked",_("Preparing to configure %s") }, - {"half-configured", _("Configuring %s") }, - { "installed", _("Installed %s")}, + {"unpacked",N_("Preparing to configure %s") }, + {"half-configured", N_("Configuring %s") }, + { "installed", N_("Installed %s")}, {NULL, NULL} }, // Remove operation { - {"half-configured", _("Preparing for removal of %s")}, - {"half-installed", _("Removing %s")}, - {"config-files", _("Removed %s")}, + {"half-configured", N_("Preparing for removal of %s")}, + {"half-installed", N_("Removing %s")}, + {"config-files", N_("Removed %s")}, {NULL, NULL} }, // Purge operation { - {"config-files", _("Preparing to completely remove %s")}, - {"not-installed", _("Completely removed %s")}, + {"config-files", N_("Preparing to completely remove %s")}, + {"not-installed", N_("Completely removed %s")}, {NULL, NULL} }, }; @@ -670,7 +670,7 @@ bool pkgDPkgPM::Go(int OutStatusFd) { // only read the translation if there is actually a next // action - const char *translation = states[PackageOpsDone[pkg]].str; + const char *translation = _(states[PackageOpsDone[pkg]].str); char s[200]; snprintf(s, sizeof(s), translation, pkg); diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 2bae94026..0a364f6ca 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -399,9 +399,11 @@ void pkgDepCache::AddStates(const PkgIterator &Pkg,int Add) { StateCache &State = PkgState[Pkg->ID]; - // The Package is broken + // The Package is broken (either minimal dep or policy dep) if ((State.DepState & DepInstMin) != DepInstMin) iBrokenCount += Add; + if ((State.DepState & DepInstPolicy) != DepInstPolicy) + iPolicyBrokenCount += Add; // Bad state if (Pkg.State() != PkgIterator::NeedsNothing) @@ -701,7 +703,6 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) // We dont even try to keep virtual packages.. if (Pkg->VersionList == 0) return; - #if 0 // reseting the autoflag here means we lose the // auto-mark information if a user selects a package for removal // but changes his mind then and sets it for keep again @@ -772,7 +773,8 @@ void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge) // --------------------------------------------------------------------- /* */ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, - unsigned long Depth, bool FromUser) + unsigned long Depth, bool FromUser, + bool ForceImportantDeps) { if (Depth > 100) return; @@ -787,7 +789,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, installed */ StateCache &P = PkgState[Pkg->ID]; P.iFlags &= ~AutoKept; - if (P.InstBroken() == false && (P.Mode == ModeInstall || + if ((P.InstPolicyBroken() == false && P.InstBroken() == false) && + (P.Mode == ModeInstall || P.CandidateVer == (Version *)Pkg.CurrentVer())) { if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0) @@ -798,11 +801,9 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, // See if there is even any possible instalation candidate if (P.CandidateVer == 0) return; - // We dont even try to install virtual packages.. if (Pkg->VersionList == 0) return; - /* Target the candidate version and remove the autoflag. We reset the autoflag below if this was called recursively. Otherwise the user should have the ability to de-auto a package by changing its state */ @@ -856,10 +857,43 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, /* Check if this dep should be consider for install. If it is a user defined important dep and we are installed a new package then - it will be installed. Otherwise we only worry about critical deps */ + it will be installed. Otherwise we only check for important + deps that have changed from the installed version + */ if (IsImportantDep(Start) == false) continue; - if (Pkg->CurrentVer != 0 && Start.IsCritical() == false) + + /* check if any ImportantDep() (but not Critial) where added + * since we installed the package + */ + bool isNewImportantDep = false; + if(!ForceImportantDeps && !Start.IsCritical()) + { + bool found=false; + VerIterator instVer = Pkg.CurrentVer(); + if(!instVer.end()) + { + for (DepIterator D = instVer.DependsList(); D.end() != true; D++) + { + //FIXME: deal better with or-groups(?) + DepIterator LocalStart = D; + + if(IsImportantDep(D) && Start.TargetPkg() == D.TargetPkg()) + found=true; + } + // this is a new dep if it was not found to be already + // a important dep of the installed pacakge + isNewImportantDep = !found; + } + } + if(isNewImportantDep) + if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) + std::clog << "new important dependency: " + << Start.TargetPkg().Name() << std::endl; + + // skip important deps if the package is already installed + if (Pkg->CurrentVer != 0 && Start.IsCritical() == false + && !isNewImportantDep && !ForceImportantDeps) continue; /* If we are in an or group locate the first or that can @@ -907,7 +941,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, std::clog << "Installing " << InstPkg.Name() << " as dep of " << Pkg.Name() << std::endl; - MarkInstall(InstPkg, true, Depth + 1, false); + MarkInstall(InstPkg, true, Depth + 1, false, ForceImportantDeps); } continue; } @@ -1069,7 +1103,28 @@ pkgCache::VerIterator pkgDepCache::Policy::GetCandidateVer(PkgIterator Pkg) /* */ bool pkgDepCache::Policy::IsImportantDep(DepIterator Dep) { - return Dep.IsCritical(); + if(Dep.IsCritical()) + return true; + else if(Dep->Type == pkgCache::Dep::Recommends) + { + if ( _config->FindB("APT::Install-Recommends", false)) + return true; + // we suport a special mode to only install-recommends for certain + // sections + // FIXME: this is a meant as a temporarly solution until the + // recommends are cleaned up + string s = _config->Find("APT::Install-Recommends-Section",""); + if(s.size() > 0) + { + const char *sec = Dep.TargetPkg().Section(); + if (sec && strcmp(sec, s.c_str()) == 0) + return true; + } + } + else if(Dep->Type == pkgCache::Dep::Suggests) + return _config->FindB("APT::Install-Suggests", false); + + return false; } /*}}}*/ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index fd935c268..5cd5ea354 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -248,7 +248,9 @@ class pkgDepCache : protected pkgCache::Namespace inline bool Downgrade() const {return Status < 0 && Mode == ModeInstall;}; inline bool Held() const {return Status != 0 && Keep();}; inline bool NowBroken() const {return (DepState & DepNowMin) != DepNowMin;}; + inline bool NowPolicyBroken() const {return (DepState & DepNowPolicy) != DepNowPolicy;}; inline bool InstBroken() const {return (DepState & DepInstMin) != DepInstMin;}; + inline bool InstPolicyBroken() const {return (DepState & DepInstPolicy) != DepInstPolicy;}; inline bool Install() const {return Mode == ModeInstall;}; inline VerIterator InstVerIter(pkgCache &Cache) {return VerIterator(Cache,InstallVer);}; @@ -292,6 +294,7 @@ class pkgDepCache : protected pkgCache::Namespace unsigned long iDelCount; unsigned long iKeepCount; unsigned long iBrokenCount; + unsigned long iPolicyBrokenCount; unsigned long iBadCount; Policy *delLocalPolicy; // For memory clean up.. @@ -389,7 +392,8 @@ class pkgDepCache : protected pkgCache::Namespace bool FromUser = true); void MarkDelete(PkgIterator const &Pkg,bool Purge = false); void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, - unsigned long Depth = 0, bool FromUser = true); + unsigned long Depth = 0, bool FromUser = true, + bool ForceImportantDeps = false); void SetReInstall(PkgIterator const &Pkg,bool To); void SetCandidateVersion(VerIterator TargetVer); @@ -411,6 +415,7 @@ class pkgDepCache : protected pkgCache::Namespace inline unsigned long KeepCount() {return iKeepCount;}; inline unsigned long InstCount() {return iInstCount;}; inline unsigned long BrokenCount() {return iBrokenCount;}; + inline unsigned long PolicyBrokenCount() {return iPolicyBrokenCount;}; inline unsigned long BadCount() {return iBadCount;}; bool Init(OpProgress *Prog); diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc index 1f65062f7..c9dded134 100644 --- a/apt-pkg/indexcopy.cc +++ b/apt-pkg/indexcopy.cc @@ -32,6 +32,8 @@ using namespace std; + + // IndexCopy::CopyPackages - Copy the package files from the CD /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -512,10 +514,10 @@ bool SourceCopy::RewriteEntry(FILE *Target,string File) fputc('\n',Target); return true; } - - /*}}}*/ - +// SigVerify::Verify - Verify a files md5sum against its metaindex /*{{{*/ +// --------------------------------------------------------------------- +/* */ bool SigVerify::Verify(string prefix, string file, indexRecords *MetaIndex) { const indexRecords::checkSum *Record = MetaIndex->Lookup(file); @@ -670,3 +672,178 @@ bool SigVerify::CopyAndVerify(string CDROM,string Name,vector<string> &SigList, return true; } + + +bool TranslationsCopy::CopyTranslations(string CDROM,string Name,vector<string> &List, + pkgCdromStatus *log) +{ + OpProgress *Progress = NULL; + if (List.size() == 0) + return true; + + if(log) + Progress = log->GetOpProgress(); + + bool Debug = _config->FindB("Debug::aptcdrom",false); + + // Prepare the progress indicator + unsigned long TotalSize = 0; + for (vector<string>::iterator I = List.begin(); I != List.end(); I++) + { + struct stat Buf; + if (stat(string(*I).c_str(),&Buf) != 0 && + stat(string(*I + ".gz").c_str(),&Buf) != 0) + return _error->Errno("stat","Stat failed for %s", + string(*I).c_str()); + TotalSize += Buf.st_size; + } + + unsigned long CurrentSize = 0; + unsigned int NotFound = 0; + unsigned int WrongSize = 0; + unsigned int Packages = 0; + for (vector<string>::iterator I = List.begin(); I != List.end(); I++) + { + string OrigPath = string(*I,CDROM.length()); + unsigned long FileSize = 0; + + // Open the package file + FileFd Pkg; + if (FileExists(*I) == true) + { + Pkg.Open(*I,FileFd::ReadOnly); + FileSize = Pkg.Size(); + } + else + { + FileFd From(*I + ".gz",FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + FileSize = From.Size(); + + // Get a temp file + FILE *tmp = tmpfile(); + if (tmp == 0) + return _error->Errno("tmpfile","Unable to create a tmp file"); + Pkg.Fd(dup(fileno(tmp))); + fclose(tmp); + + // Fork gzip + pid_t Process = fork(); + if (Process < 0) + return _error->Errno("fork","Couldn't fork gzip"); + + // The child + if (Process == 0) + { + dup2(From.Fd(),STDIN_FILENO); + dup2(Pkg.Fd(),STDOUT_FILENO); + SetCloseExec(STDIN_FILENO,false); + SetCloseExec(STDOUT_FILENO,false); + + const char *Args[3]; + string Tmp = _config->Find("Dir::bin::gzip","gzip"); + Args[0] = Tmp.c_str(); + Args[1] = "-d"; + Args[2] = 0; + execvp(Args[0],(char **)Args); + exit(100); + } + + // Wait for gzip to finish + if (ExecWait(Process,_config->Find("Dir::bin::gzip","gzip").c_str(),false) == false) + return _error->Error("gzip failed, perhaps the disk is full."); + + Pkg.Seek(0); + } + pkgTagFile Parser(&Pkg); + if (_error->PendingError() == true) + return false; + + // Open the output file + char S[400]; + snprintf(S,sizeof(S),"cdrom:[%s]/%s",Name.c_str(), + (*I).c_str() + CDROM.length()); + string TargetF = _config->FindDir("Dir::State::lists") + "partial/"; + TargetF += URItoFileName(S); + if (_config->FindB("APT::CDROM::NoAct",false) == true) + TargetF = "/dev/null"; + FileFd Target(TargetF,FileFd::WriteEmpty); + FILE *TargetFl = fdopen(dup(Target.Fd()),"w"); + if (_error->PendingError() == true) + return false; + if (TargetFl == 0) + return _error->Errno("fdopen","Failed to reopen fd"); + + // Setup the progress meter + if(Progress) + Progress->OverallProgress(CurrentSize,TotalSize,FileSize, + string("Reading Translation Indexes")); + + // Parse + if(Progress) + Progress->SubProgress(Pkg.Size()); + pkgTagSection Section; + this->Section = &Section; + string Prefix; + unsigned long Hits = 0; + unsigned long Chop = 0; + while (Parser.Step(Section) == true) + { + if(Progress) + Progress->Progress(Parser.Offset()); + + const char *Start; + const char *Stop; + Section.GetSection(Start,Stop); + fwrite(Start,Stop-Start, 1, TargetFl); + fputc('\n',TargetFl); + + Packages++; + Hits++; + } + fclose(TargetFl); + + if (Debug == true) + cout << " Processed by using Prefix '" << Prefix << "' and chop " << Chop << endl; + + if (_config->FindB("APT::CDROM::NoAct",false) == false) + { + // Move out of the partial directory + Target.Close(); + string FinalF = _config->FindDir("Dir::State::lists"); + FinalF += URItoFileName(S); + if (rename(TargetF.c_str(),FinalF.c_str()) != 0) + return _error->Errno("rename","Failed to rename"); + } + + + CurrentSize += FileSize; + } + if(Progress) + Progress->Done(); + + // Some stats + if(log) { + stringstream msg; + if(NotFound == 0 && WrongSize == 0) + ioprintf(msg, _("Wrote %i records.\n"), Packages); + else if (NotFound != 0 && WrongSize == 0) + ioprintf(msg, _("Wrote %i records with %i missing files.\n"), + Packages, NotFound); + else if (NotFound == 0 && WrongSize != 0) + ioprintf(msg, _("Wrote %i records with %i mismatched files\n"), + Packages, WrongSize); + if (NotFound != 0 && WrongSize != 0) + ioprintf(msg, _("Wrote %i records with %i missing files and %i mismatched files\n"), Packages, NotFound, WrongSize); + } + + if (Packages == 0) + _error->Warning("No valid records were found."); + + if (NotFound + WrongSize > 10) + _error->Warning("Alot of entries were discarded, something may be wrong.\n"); + + + return true; +} diff --git a/apt-pkg/indexcopy.h b/apt-pkg/indexcopy.h index 4dcb2b46d..7778ae595 100644 --- a/apt-pkg/indexcopy.h +++ b/apt-pkg/indexcopy.h @@ -70,6 +70,17 @@ class SourceCopy : public IndexCopy public: }; +class TranslationsCopy +{ + protected: + pkgTagSection *Section; + + public: + bool CopyTranslations(string CDROM,string Name,vector<string> &List, + pkgCdromStatus *log); +}; + + class SigVerify { bool Verify(string prefix,string file, indexRecords *records); @@ -81,4 +92,6 @@ class SigVerify vector<string> PkgList,vector<string> SrcList); }; + + #endif diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index 49665161d..bb2210bf6 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -12,8 +12,11 @@ #pragma implementation "apt-pkg/indexfile.h" #endif +#include <apt-pkg/configuration.h> #include <apt-pkg/indexfile.h> #include <apt-pkg/error.h> + +#include <clocale> /*}}}*/ // Global list of Item supported @@ -67,3 +70,63 @@ string pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const &Record, return string(); } /*}}}*/ +// IndexFile::TranslationsAvailable - Check if will use Translation /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgIndexFile::TranslationsAvailable() +{ + const string Translation = _config->Find("APT::Acquire::Translation"); + + if (Translation.compare("none") != 0) + return CheckLanguageCode(LanguageCode().c_str()); + else + return false; +} + /*}}}*/ +// IndexFile::CheckLanguageCode - Check the Language Code /*{{{*/ +// --------------------------------------------------------------------- +/* */ +/* common cases: de_DE, de_DE@euro, de_DE.UTF-8, de_DE.UTF-8@euro, + de_DE.ISO8859-1, tig_ER + more in /etc/gdm/locale.conf +*/ + +bool pkgIndexFile::CheckLanguageCode(const char *Lang) +{ + if (strlen(Lang) == 2 || (strlen(Lang) == 5 && Lang[2] == '_')) + return true; + + if (strcmp(Lang,"C") != 0) + _error->Warning("Wrong language code %s", Lang); + + return false; +} + /*}}}*/ +// IndexFile::LanguageCode - Return the Language Code /*{{{*/ +// --------------------------------------------------------------------- +/* return the language code */ +string pkgIndexFile::LanguageCode() +{ + const string Translation = _config->Find("APT::Acquire::Translation"); + + if (Translation.compare("environment") == 0) + { + string lang = std::setlocale(LC_MESSAGES,NULL); + + // we have a mapping of the language codes that contains all the language + // codes that need the country code as well + // (like pt_BR, pt_PT, sv_SE, zh_*, en_*) + char *need_full_langcode[] = { "pt","sv","zh","en", NULL }; + for(char **s = need_full_langcode;*s != NULL; s++) + if(lang.find(*s) == 0) + return lang.substr(0,5); + + if(lang.size() > 2) + return lang.substr(0,2); + else + return lang; + } + else + return Translation; +} + /*}}}*/ diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h index 61049f4bd..d5d1cf57a 100644 --- a/apt-pkg/indexfile.h +++ b/apt-pkg/indexfile.h @@ -5,10 +5,11 @@ Index File - Abstraction for an index of archive/source file. - There are 3 primary sorts of index files, all represented by this + There are 4 primary sorts of index files, all represented by this class: Binary index files + Binary translation files Bianry index files decribing the local system Source index files @@ -80,6 +81,10 @@ class pkgIndexFile virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress &/*Prog*/) const {return true;}; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; + static bool TranslationsAvailable(); + static bool CheckLanguageCode(const char *Lang); + static string LanguageCode(); + bool IsTrusted() const { return Trusted; }; pkgIndexFile(bool Trusted): Trusted(Trusted) {}; diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index b47378d4a..579a19ab9 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -40,6 +40,8 @@ bool pkgInitConfig(Configuration &Cnf) else Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU); Cnf.Set("APT::Build-Essential::", "build-essential"); + Cnf.Set("APT::Install-Recommends", false); + Cnf.Set("APT::Install-Suggests", false); Cnf.Set("Dir","/"); // State @@ -102,6 +104,9 @@ bool pkgInitConfig(Configuration &Cnf) bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str()); } #endif + + // Translation + Cnf.Set("APT::Acquire::Translation", "environment"); return true; } diff --git a/apt-pkg/init.h b/apt-pkg/init.h index 6a832bddf..c6457cbca 100644 --- a/apt-pkg/init.h +++ b/apt-pkg/init.h @@ -17,8 +17,8 @@ #include <apt-pkg/pkgsystem.h> // See the makefile -#define APT_PKG_MAJOR 3 -#define APT_PKG_MINOR 13 +#define APT_PKG_MAJOR 4 +#define APT_PKG_MINOR 2 #define APT_PKG_RELEASE 0 extern const char *pkgVersion; diff --git a/apt-pkg/makefile b/apt-pkg/makefile index bd871e9e7..59df6c0ef 100644 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@ -13,7 +13,7 @@ include ../buildlib/defaults.mak # methods/makefile - FIXME LIBRARY=apt-pkg LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER) -MAJOR=3.13 +MAJOR=4.2 MINOR=0 SLIBS=$(PTHREADLIB) $(INTLLIBS) APT_DOMAIN:=libapt-pkg$(MAJOR) diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 9926befe9..162ab4f27 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -26,6 +26,7 @@ #endif #include <apt-pkg/pkgcache.h> +#include <apt-pkg/indexfile.h> #include <apt-pkg/version.h> #include <apt-pkg/error.h> #include <apt-pkg/strutl.h> @@ -43,6 +44,7 @@ using std::string; + // Cache::Header::Header - Constructor /*{{{*/ // --------------------------------------------------------------------- /* Simply initialize the header */ @@ -52,7 +54,7 @@ pkgCache::Header::Header() /* Whenever the structures change the major version should be bumped, whenever the generator changes the minor version should be bumped. */ - MajorVersion = 4; + MajorVersion = 5; MinorVersion = 0; Dirty = false; @@ -60,17 +62,22 @@ pkgCache::Header::Header() PackageSz = sizeof(pkgCache::Package); PackageFileSz = sizeof(pkgCache::PackageFile); VersionSz = sizeof(pkgCache::Version); + DescriptionSz = sizeof(pkgCache::Description); DependencySz = sizeof(pkgCache::Dependency); ProvidesSz = sizeof(pkgCache::Provides); VerFileSz = sizeof(pkgCache::VerFile); + DescFileSz = sizeof(pkgCache::DescFile); PackageCount = 0; VersionCount = 0; + DescriptionCount = 0; DependsCount = 0; PackageFileCount = 0; VerFileCount = 0; + DescFileCount = 0; ProvidesCount = 0; MaxVerFileSize = 0; + MaxDescFileSize = 0; FileList = 0; StringList = 0; @@ -89,8 +96,10 @@ bool pkgCache::Header::CheckSizes(Header &Against) const PackageSz == Against.PackageSz && PackageFileSz == Against.PackageFileSz && VersionSz == Against.VersionSz && + DescriptionSz == Against.DescriptionSz && DependencySz == Against.DependencySz && VerFileSz == Against.VerFileSz && + DescFileSz == Against.DescFileSz && ProvidesSz == Against.ProvidesSz) return true; return false; @@ -115,8 +124,10 @@ bool pkgCache::ReMap() HeaderP = (Header *)Map.Data(); PkgP = (Package *)Map.Data(); VerFileP = (VerFile *)Map.Data(); + DescFileP = (DescFile *)Map.Data(); PkgFileP = (PackageFile *)Map.Data(); VerP = (Version *)Map.Data(); + DescP = (Description *)Map.Data(); ProvideP = (Provides *)Map.Data(); DepP = (Dependency *)Map.Data(); StringItemP = (StringItem *)Map.Data(); @@ -235,11 +246,11 @@ const char *pkgCache::Priority(unsigned char Prio) return 0; } /*}}}*/ - // Bases for iterator classes /*{{{*/ void pkgCache::VerIterator::_dummy() {} void pkgCache::DepIterator::_dummy() {} void pkgCache::PrvIterator::_dummy() {} +void pkgCache::DescIterator::_dummy() {} /*}}}*/ // PkgIterator::operator ++ - Postfix incr /*{{{*/ // --------------------------------------------------------------------- @@ -599,3 +610,20 @@ string pkgCache::PkgFileIterator::RelStr() return Res; } /*}}}*/ +// VerIterator::TranslatedDescription - Return the a DescIter for locale/*{{{*/ +// --------------------------------------------------------------------- +/* return a DescIter for the current locale or the default if none is + * found + */ +pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const +{ + pkgCache::DescIterator DescDefault = DescriptionList(); + pkgCache::DescIterator Desc = DescDefault; + for (; Desc.end() == false; Desc++) + if (pkgIndexFile::LanguageCode() == Desc.LanguageCode()) + break; + if (Desc.end() == true) Desc = DescDefault; + return Desc; +}; + + /*}}}*/ diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index 587d97534..c7a3172cc 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -38,24 +38,30 @@ class pkgCache struct Package; struct PackageFile; struct Version; + struct Description; struct Provides; struct Dependency; struct StringItem; struct VerFile; + struct DescFile; // Iterators class PkgIterator; class VerIterator; + class DescIterator; class DepIterator; class PrvIterator; class PkgFileIterator; class VerFileIterator; + class DescFileIterator; friend class PkgIterator; friend class VerIterator; + friend class DescInterator; friend class DepIterator; friend class PrvIterator; friend class PkgFileIterator; friend class VerFileIterator; + friend class DescFileIterator; class Namespace; @@ -98,8 +104,10 @@ class pkgCache Header *HeaderP; Package *PkgP; VerFile *VerFileP; + DescFile *DescFileP; PackageFile *PkgFileP; Version *VerP; + Description *DescP; Provides *ProvideP; Dependency *DepP; StringItem *StringItemP; @@ -151,16 +159,20 @@ struct pkgCache::Header unsigned short PackageSz; unsigned short PackageFileSz; unsigned short VersionSz; + unsigned short DescriptionSz; unsigned short DependencySz; unsigned short ProvidesSz; unsigned short VerFileSz; + unsigned short DescFileSz; // Structure counts unsigned long PackageCount; unsigned long VersionCount; + unsigned long DescriptionCount; unsigned long DependsCount; unsigned long PackageFileCount; unsigned long VerFileCount; + unsigned long DescFileCount; unsigned long ProvidesCount; // Offsets @@ -169,10 +181,11 @@ struct pkgCache::Header map_ptrloc VerSysName; // StringTable map_ptrloc Architecture; // StringTable unsigned long MaxVerFileSize; + unsigned long MaxDescFileSize; /* Allocation pools, there should be one of these for each structure excluding the header */ - DynamicMMap::Pool Pools[7]; + DynamicMMap::Pool Pools[8]; // Rapid package name lookup map_ptrloc HashTable[2*1048]; @@ -193,7 +206,7 @@ struct pkgCache::Package map_ptrloc NextPackage; // Package map_ptrloc RevDepends; // Dependency map_ptrloc ProvidesList; // Provides - + // Install/Remove/Purge etc unsigned char SelectedState; // What unsigned char InstState; // Flags @@ -232,6 +245,14 @@ struct pkgCache::VerFile unsigned short Size; }; +struct pkgCache::DescFile +{ + map_ptrloc File; // PackageFile + map_ptrloc NextFile; // PkgVerFile + map_ptrloc Offset; // File offset + unsigned short Size; +}; + struct pkgCache::Version { map_ptrloc VerStr; // Stringtable @@ -241,6 +262,7 @@ struct pkgCache::Version // Lists map_ptrloc FileList; // VerFile map_ptrloc NextVer; // Version + map_ptrloc DescriptionList; // Description map_ptrloc DependsList; // Dependency map_ptrloc ParentPkg; // Package map_ptrloc ProvidesList; // Provides @@ -252,6 +274,22 @@ struct pkgCache::Version unsigned char Priority; }; +struct pkgCache::Description +{ + // Language Code store the description translation language code. If + // the value has a 0 lenght then this is readed using the Package + // file else the Translation-CODE are used. + map_ptrloc language_code; // StringTable + map_ptrloc md5sum; // StringTable + + // Linked list + map_ptrloc FileList; // DescFile + map_ptrloc NextDesc; // Description + map_ptrloc ParentPkg; // Package + + unsigned short ID; +}; + struct pkgCache::Dependency { map_ptrloc Version; // Stringtable @@ -299,11 +337,13 @@ class pkgCache::Namespace typedef pkgCache::PkgIterator PkgIterator; typedef pkgCache::VerIterator VerIterator; + typedef pkgCache::DescIterator DescIterator; typedef pkgCache::DepIterator DepIterator; typedef pkgCache::PrvIterator PrvIterator; typedef pkgCache::PkgFileIterator PkgFileIterator; typedef pkgCache::VerFileIterator VerFileIterator; typedef pkgCache::Version Version; + typedef pkgCache::Description Description; typedef pkgCache::Package Package; typedef pkgCache::Header Header; typedef pkgCache::Dep Dep; diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index e9985e1cb..3f02725c1 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -127,16 +127,46 @@ bool pkgCacheGenerator::MergeList(ListParser &List, string Version = List.Version(); if (Version.empty() == true) { + // we first process the package, then the descriptions + // (this has the bonus that we get MMap error when we run out + // of MMap space) if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false) return _error->Error(_("Error occurred while processing %s (UsePackage1)"), PackageName.c_str()); + + // Find the right version to write the description + MD5SumValue CurMd5 = List.Description_md5(); + pkgCache::VerIterator Ver = Pkg.VersionList(); + map_ptrloc *LastVer = &Pkg->VersionList; + + for (; Ver.end() == false; LastVer = &Ver->NextVer, Ver++) + { + pkgCache::DescIterator Desc = Ver.DescriptionList(); + map_ptrloc *LastDesc = &Ver->DescriptionList; + + for (; Desc.end() == false; LastDesc = &Desc->NextDesc, Desc++) + { + + if (MD5SumValue(Desc.md5()) == CurMd5) + { + // Add new description + *LastDesc = NewDescription(Desc, List.DescriptionLanguage(), CurMd5, *LastDesc); + Desc->ParentPkg = Pkg.Index(); + + if (NewFileDesc(Desc,List) == false) + return _error->Error(_("Error occured while processing %s (NewFileDesc1)"),PackageName.c_str()); + break; + } + } + } + continue; } pkgCache::VerIterator Ver = Pkg.VersionList(); - map_ptrloc *Last = &Pkg->VersionList; + map_ptrloc *LastVer = &Pkg->VersionList; int Res = 1; - for (; Ver.end() == false; Last = &Ver->NextVer, Ver++) + for (; Ver.end() == false; LastVer = &Ver->NextVer, Ver++) { Res = Cache.VS->CmpVersion(Version,Ver.VerStr()); if (Res >= 0) @@ -170,7 +200,7 @@ bool pkgCacheGenerator::MergeList(ListParser &List, // Skip to the end of the same version set. if (Res == 0) { - for (; Ver.end() == false; Last = &Ver->NextVer, Ver++) + for (; Ver.end() == false; LastVer = &Ver->NextVer, Ver++) { Res = Cache.VS->CmpVersion(Version,Ver.VerStr()); if (Res != 0) @@ -179,9 +209,10 @@ bool pkgCacheGenerator::MergeList(ListParser &List, } // Add a new version - *Last = NewVersion(Ver,Version,*Last); + *LastVer = NewVersion(Ver,Version,*LastVer); Ver->ParentPkg = Pkg.Index(); Ver->Hash = Hash; + if (List.NewVersion(Ver) == false) return _error->Error(_("Error occurred while processing %s (NewVersion1)"), PackageName.c_str()); @@ -201,6 +232,21 @@ bool pkgCacheGenerator::MergeList(ListParser &List, FoundFileDeps |= List.HasFileDeps(); return true; } + + /* Record the Description data. Description data always exist in + Packages and Translation-* files. */ + pkgCache::DescIterator Desc = Ver.DescriptionList(); + map_ptrloc *LastDesc = &Ver->DescriptionList; + + // Skip to the end of description set + for (; Desc.end() == false; LastDesc = &Desc->NextDesc, Desc++); + + // Add new description + *LastDesc = NewDescription(Desc, List.DescriptionLanguage(), List.Description_md5(), *LastDesc); + Desc->ParentPkg = Pkg.Index(); + + if (NewFileDesc(Desc,List) == false) + return _error->Error(_("Error occured while processing %s (NewFileDesc2)"),PackageName.c_str()); } FoundFileDeps |= List.HasFileDeps(); @@ -211,6 +257,9 @@ bool pkgCacheGenerator::MergeList(ListParser &List, if (Cache.HeaderP->VersionCount >= (1ULL<<(sizeof(Cache.VerP->ID)*8))-1) return _error->Error(_("Wow, you exceeded the number of versions " "this APT is capable of.")); + if (Cache.HeaderP->DescriptionCount >= (1ULL<<(sizeof(Cache.DescP->ID)*8))-1) + return _error->Error(_("Wow, you exceeded the number of descriptions " + "this APT is capable of.")); if (Cache.HeaderP->DependsCount >= (1ULL<<(sizeof(Cache.DepP->ID)*8))-1ULL) return _error->Error(_("Wow, you exceeded the number of dependencies " "this APT is capable of.")); @@ -273,7 +322,7 @@ bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const string &Name Pkg = Cache.FindPkg(Name); if (Pkg.end() == false) return true; - + // Get a structure unsigned long Package = Map.Allocate(sizeof(pkgCache::Package)); if (Package == 0) @@ -351,6 +400,62 @@ unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver, return Version; } /*}}}*/ +// CacheGenerator::NewFileDesc - Create a new File<->Desc association /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgCacheGenerator::NewFileDesc(pkgCache::DescIterator &Desc, + ListParser &List) +{ + if (CurrentFile == 0) + return true; + + // Get a structure + unsigned long DescFile = Map.Allocate(sizeof(pkgCache::DescFile)); + if (DescFile == 0) + return 0; + + pkgCache::DescFileIterator DF(Cache,Cache.DescFileP + DescFile); + DF->File = CurrentFile - Cache.PkgFileP; + + // Link it to the end of the list + map_ptrloc *Last = &Desc->FileList; + for (pkgCache::DescFileIterator D = Desc.FileList(); D.end() == false; D++) + Last = &D->NextFile; + + DF->NextFile = *Last; + *Last = DF.Index(); + + DF->Offset = List.Offset(); + DF->Size = List.Size(); + if (Cache.HeaderP->MaxDescFileSize < DF->Size) + Cache.HeaderP->MaxDescFileSize = DF->Size; + Cache.HeaderP->DescFileCount++; + + return true; +} + /*}}}*/ +// CacheGenerator::NewDescription - Create a new Description /*{{{*/ +// --------------------------------------------------------------------- +/* This puts a description structure in the linked list */ +map_ptrloc pkgCacheGenerator::NewDescription(pkgCache::DescIterator &Desc, + const string &Lang, const MD5SumValue &md5sum, + map_ptrloc Next) +{ + // Get a structure + map_ptrloc Description = Map.Allocate(sizeof(pkgCache::Description)); + if (Description == 0) + return 0; + + // Fill it in + Desc = pkgCache::DescIterator(Cache,Cache.DescP + Description); + Desc->NextDesc = Next; + Desc->ID = Cache.HeaderP->DescriptionCount++; + Desc->language_code = Map.WriteString(Lang); + Desc->md5sum = Map.WriteString(md5sum.Value()); + + return Description; +} + /*}}}*/ // ListParser::NewDepends - Create a dependency element /*{{{*/ // --------------------------------------------------------------------- /* This creates a dependency element in the tree. It is linked to the @@ -582,7 +687,7 @@ static bool CheckValidity(const string &CacheFile, FileIterator Start, pkgCache::PkgFileIterator File = (*Start)->FindInCache(Cache); if (File.end() == true) return false; - + Visited[File->ID] = true; } diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index 9a729eea4..fae1a60a6 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -24,6 +24,7 @@ #endif #include <apt-pkg/pkgcache.h> +#include <apt-pkg/md5.h> class pkgSourceList; class OpProgress; @@ -55,7 +56,9 @@ class pkgCacheGenerator bool NewPackage(pkgCache::PkgIterator &Pkg,const string &Pkg); bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List); + bool NewFileDesc(pkgCache::DescIterator &Desc,ListParser &List); unsigned long NewVersion(pkgCache::VerIterator &Ver,const string &VerStr,unsigned long Next); + map_ptrloc NewDescription(pkgCache::DescIterator &Desc,const string &Lang,const MD5SumValue &md5sum,map_ptrloc Next); public: @@ -108,6 +111,9 @@ class pkgCacheGenerator::ListParser virtual string Package() = 0; virtual string Version() = 0; virtual bool NewVersion(pkgCache::VerIterator Ver) = 0; + virtual string Description() = 0; + virtual string DescriptionLanguage() = 0; + virtual MD5SumValue Description_md5() = 0; virtual unsigned short VersionHash() = 0; virtual bool UsePackage(pkgCache::PkgIterator Pkg, pkgCache::VerIterator Ver) = 0; diff --git a/apt-pkg/pkgrecords.cc b/apt-pkg/pkgrecords.cc index 9c2655d6a..b22f3e73f 100644 --- a/apt-pkg/pkgrecords.cc +++ b/apt-pkg/pkgrecords.cc @@ -63,3 +63,12 @@ pkgRecords::Parser &pkgRecords::Lookup(pkgCache::VerFileIterator const &Ver) return *Files[Ver.File()->ID]; } /*}}}*/ +// Records::Lookup - Get a parser for the package description file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgRecords::Parser &pkgRecords::Lookup(pkgCache::DescFileIterator const &Desc) +{ + Files[Desc.File()->ID]->Jump(Desc); + return *Files[Desc.File()->ID]; +} + /*}}}*/ diff --git a/apt-pkg/pkgrecords.h b/apt-pkg/pkgrecords.h index 08f004414..31c444dbf 100644 --- a/apt-pkg/pkgrecords.h +++ b/apt-pkg/pkgrecords.h @@ -38,6 +38,7 @@ class pkgRecords // Lookup function Parser &Lookup(pkgCache::VerFileIterator const &Ver); + Parser &Lookup(pkgCache::DescFileIterator const &Desc); // Construct destruct pkgRecords(pkgCache &Cache); @@ -49,6 +50,7 @@ class pkgRecords::Parser protected: virtual bool Jump(pkgCache::VerFileIterator const &Ver) = 0; + virtual bool Jump(pkgCache::DescFileIterator const &Desc) = 0; public: friend class pkgRecords; diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 8fcbeb23b..223618cd1 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -33,33 +33,22 @@ using std::string; /* */ pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) : Fd(*pFd), - Size(Size), - Map(NULL), - Buffer(0) + Size(Size) { if (Fd.IsOpen() == false) { + Buffer = 0; Start = End = Buffer = 0; Done = true; iOffset = 0; - Map = NULL; return; } - // check if we can MMap it - if(Fd.Size() == 0) - { - Buffer = new char[Size]; - Start = End = Buffer; - Done = false; - Fill(); - } else { - Map = new MMap (Fd, MMap::Public | MMap::ReadOnly); - Buffer = (char *) Map->Data (); - Start = Buffer; - End = Buffer + Map->Size (); - } + Buffer = new char[Size]; + Start = End = Buffer; + Done = false; iOffset = 0; + Fill(); } /*}}}*/ // TagFile::~pkgTagFile - Destructor /*{{{*/ @@ -67,30 +56,55 @@ pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) : /* */ pkgTagFile::~pkgTagFile() { - if(!Map) delete [] Buffer; - delete Map; + delete [] Buffer; } /*}}}*/ -// TagFile::Step - Advance to the next section /*{{{*/ +// TagFile::Resize - Resize the internal buffer /*{{{*/ // --------------------------------------------------------------------- -/* If the Section Scanner fails we refill the buffer and try again. */ -bool pkgTagFile::Step(pkgTagSection &Tag) +/* Resize the internal buffer (double it in size). Fail if a maximum size + * size is reached. + */ +bool pkgTagFile::Resize() { - if ((Map != NULL) && (Start == End)) + char *tmp; + unsigned long EndSize = End - Start; + + // fail is the buffer grows too big + if(Size > 1024*1024+1) return false; - if (Tag.Scan(Start,End - Start) == false) - { - if (Map != NULL) - return _error->Error(_("Unable to parse package file %s (1)"), - Fd.Name().c_str()); + // get new buffer and use it + tmp = new char[2*Size]; + memcpy(tmp, Buffer, Size); + Size = Size*2; + delete [] Buffer; + Buffer = tmp; + // update the start/end pointers to the new buffer + Start = Buffer; + End = Start + EndSize; + return true; +} + +// TagFile::Step - Advance to the next section /*{{{*/ +// --------------------------------------------------------------------- +/* If the Section Scanner fails we refill the buffer and try again. + * If that fails too, double the buffer size and try again until a + * maximum buffer is reached. + */ +bool pkgTagFile::Step(pkgTagSection &Tag) +{ + while (Tag.Scan(Start,End - Start) == false) + { if (Fill() == false) return false; - if (Tag.Scan(Start,End - Start) == false) + if(Tag.Scan(Start,End - Start)) + break; + + if (Resize() == false) return _error->Error(_("Unable to parse package file %s (1)"), - Fd.Name().c_str()); + Fd.Name().c_str()); } Start += Tag.size(); iOffset += Tag.size(); @@ -158,30 +172,23 @@ bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long Offset) return Step(Tag); } + // Reposition and reload.. iOffset = Offset; - if (Map != NULL) - { - Start = Buffer + iOffset; - } - else - { - // Reposition and reload.. - Done = false; - if (Fd.Seek(Offset) == false) - return false; - End = Start = Buffer; + Done = false; + if (Fd.Seek(Offset) == false) + return false; + End = Start = Buffer; - if (Fill() == false) - return false; + if (Fill() == false) + return false; - if (Tag.Scan(Start,End - Start) == true) - return true; + if (Tag.Scan(Start,End - Start) == true) + return true; + + // This appends a double new line (for the real eof handling) + if (Fill() == false) + return false; - // This appends a double new line (for the real eof handling) - if (Fill() == false) - return false; - } - if (Tag.Scan(Start,End - Start) == false) return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str()); @@ -192,12 +199,12 @@ bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long Offset) // --------------------------------------------------------------------- /* This looks for the first double new line in the data stream. It also indexes the tags in the section. This very simple hash function for the - first 3 letters gives very good performance on the debian package files */ + last 8 letters gives very good performance on the debian package files */ inline static unsigned long AlphaHash(const char *Text, const char *End = 0) { unsigned long Res = 0; for (; Text != End && *Text != ':' && *Text != 0; Text++) - Res = (unsigned long)(*Text) ^ (Res << 2); + Res = ((unsigned long)(*Text) & 0xDF) ^ (Res << 1); return Res & 0xFF; } @@ -207,7 +214,7 @@ bool pkgTagSection::Scan(const char *Start,unsigned long MaxLength) Stop = Section = Start; memset(AlphaIndexes,0,sizeof(AlphaIndexes)); - if (Stop == 0 || MaxLength == 0) + if (Stop == 0) return false; TagCount = 0; @@ -238,12 +245,6 @@ bool pkgTagSection::Scan(const char *Start,unsigned long MaxLength) Stop++; } - if ((Stop+1 >= End) && (End[-1] == '\n' || End[-1] == '\r')) - { - Indexes[TagCount] = (End - 1) - Section; - return true; - } - return false; } /*}}}*/ diff --git a/apt-pkg/tagfile.h b/apt-pkg/tagfile.h index dd481ba51..70381ad13 100644 --- a/apt-pkg/tagfile.h +++ b/apt-pkg/tagfile.h @@ -25,7 +25,6 @@ #endif #include <apt-pkg/fileutl.h> -#include <apt-pkg/mmap.h> #include <stdio.h> class pkgTagSection @@ -70,23 +69,23 @@ class pkgTagSection class pkgTagFile { FileFd &Fd; - MMap *Map; char *Buffer; char *Start; char *End; bool Done; unsigned long iOffset; unsigned long Size; - + bool Fill(); - + bool Resize(); + public: bool Step(pkgTagSection &Section); inline unsigned long Offset() {return iOffset;}; bool Jump(pkgTagSection &Tag,unsigned long Offset); - pkgTagFile(FileFd *F,unsigned long Size = 64*1024); + pkgTagFile(FileFd *F,unsigned long Size = 32*1024); ~pkgTagFile(); }; diff --git a/buildlib/apti18n.h.in b/buildlib/apti18n.h.in index 812457643..a5b91b1ee 100644 --- a/buildlib/apti18n.h.in +++ b/buildlib/apti18n.h.in @@ -14,8 +14,10 @@ # else # define _(x) gettext(x) # endif +# define N_(x) x #else // apt will not use any gettext # define setlocale(a, b) # define _(x) x +# define N_(x) x #endif diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in index f5ee539ac..2d28e1c67 100644 --- a/buildlib/environment.mak.in +++ b/buildlib/environment.mak.in @@ -28,6 +28,8 @@ INLINEDEPFLAG = -MD DEBIANDOC_HTML = @DEBIANDOC_HTML@ DEBIANDOC_TEXT = @DEBIANDOC_TEXT@ +DOXYGEN = @DOXYGEN@ + # SGML for the man pages DOCBOOK2MAN := @DOCBOOK2MAN@ diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index aea9ebeba..74fa71cba 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -71,6 +71,12 @@ void LocalitySort(pkgCache::VerFile **begin, { qsort(begin,Count,Size,LocalityCompare); } + +void LocalitySort(pkgCache::DescFile **begin, + unsigned long Count,size_t Size) +{ + qsort(begin,Count,Size,LocalityCompare); +} /*}}}*/ // UnMet - Show unmet dependencies /*{{{*/ // --------------------------------------------------------------------- @@ -182,7 +188,14 @@ bool DumpPackage(CommandLine &CmdL) { cout << Cur.VerStr(); for (pkgCache::VerFileIterator Vf = Cur.FileList(); Vf.end() == false; Vf++) - cout << "(" << Vf.File().FileName() << ")"; + cout << " (" << Vf.File().FileName() << ")"; + cout << endl; + for (pkgCache::DescIterator D = Cur.DescriptionList(); D.end() == false; D++) + { + cout << " Description Language: " << D.LanguageCode() << endl + << " File: " << D.FileList().File().FileName() << endl + << " MD5: " << D.md5() << endl; + } cout << endl; } @@ -277,11 +290,15 @@ bool Stats(CommandLine &Cmd) cout << _("Total distinct versions: ") << Cache.Head().VersionCount << " (" << SizeToStr(Cache.Head().VersionCount*Cache.Head().VersionSz) << ')' << endl; + cout << _("Total Distinct Descriptions: ") << Cache.Head().DescriptionCount << " (" << + SizeToStr(Cache.Head().DescriptionCount*Cache.Head().DescriptionSz) << ')' << endl; cout << _("Total dependencies: ") << Cache.Head().DependsCount << " (" << SizeToStr(Cache.Head().DependsCount*Cache.Head().DependencySz) << ')' << endl; cout << _("Total ver/file relations: ") << Cache.Head().VerFileCount << " (" << SizeToStr(Cache.Head().VerFileCount*Cache.Head().VerFileSz) << ')' << endl; + cout << _("Total Desc/File relations: ") << Cache.Head().DescFileCount << " (" << + SizeToStr(Cache.Head().DescFileCount*Cache.Head().DescFileSz) << ')' << endl; cout << _("Total Provides mappings: ") << Cache.Head().ProvidesCount << " (" << SizeToStr(Cache.Head().ProvidesCount*Cache.Head().ProvidesSz) << ')' << endl; @@ -344,6 +361,12 @@ bool Dump(CommandLine &Cmd) for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; D++) cout << " Depends: " << D.TargetPkg().Name() << ' ' << DeNull(D.TargetVer()) << endl; + for (pkgCache::DescIterator D = V.DescriptionList(); D.end() == false; D++) + { + cout << " Description Language: " << D.LanguageCode() << endl + << " File: " << D.FileList().File().FileName() << endl + << " MD5: " << D.md5() << endl; + } } } @@ -1192,17 +1215,50 @@ bool DisplayRecord(pkgCache::VerIterator V) if (_error->PendingError() == true) return false; - // Read the record and then write it out again. + // Read the record unsigned char *Buffer = new unsigned char[GCache->HeaderP->MaxVerFileSize+1]; Buffer[V.FileList()->Size] = '\n'; if (PkgF.Seek(V.FileList()->Offset) == false || - PkgF.Read(Buffer,V.FileList()->Size) == false || - fwrite(Buffer,1,V.FileList()->Size+1,stdout) < (size_t)(V.FileList()->Size+1)) + PkgF.Read(Buffer,V.FileList()->Size) == false) { delete [] Buffer; return false; } - + + // Get a pointer to start of Description field + const unsigned char *DescP = (unsigned char*)strstr((char*)Buffer, "Description:"); + + // Write all but Description + if (fwrite(Buffer,1,DescP - Buffer,stdout) < (size_t)(DescP - Buffer)) + { + delete [] Buffer; + return false; + } + + // Show the right description + pkgRecords Recs(*GCache); + pkgCache::DescIterator Desc = V.TranslatedDescription(); + pkgRecords::Parser &P = Recs.Lookup(Desc.FileList()); + cout << "Description" << ( (strcmp(Desc.LanguageCode(),"") != 0) ? "-" : "" ) << Desc.LanguageCode() << ": " << P.LongDesc(); + + // Find the first field after the description (if there is any) + for(DescP++;DescP != &Buffer[V.FileList()->Size];DescP++) + { + if(*DescP == '\n' && *(DescP+1) != ' ') + { + // write the rest of the buffer + const unsigned char *end=&Buffer[V.FileList()->Size]; + if (fwrite(DescP,1,end-DescP,stdout) < (size_t)(end-DescP)) + { + delete [] Buffer; + return false; + } + + break; + } + } + // write a final newline (after the description) + cout<<endl; delete [] Buffer; return true; @@ -1211,9 +1267,9 @@ bool DisplayRecord(pkgCache::VerIterator V) // Search - Perform a search /*{{{*/ // --------------------------------------------------------------------- /* This searches the package names and pacakge descriptions for a pattern */ -struct ExVerFile +struct ExDescFile { - pkgCache::VerFile *Vf; + pkgCache::DescFile *Df; bool NameMatch; }; @@ -1253,35 +1309,35 @@ bool Search(CommandLine &CmdL) return false; } - ExVerFile *VFList = new ExVerFile[Cache.HeaderP->PackageCount+1]; - memset(VFList,0,sizeof(*VFList)*Cache.HeaderP->PackageCount+1); + ExDescFile *DFList = new ExDescFile[Cache.HeaderP->PackageCount+1]; + memset(DFList,0,sizeof(*DFList)*Cache.HeaderP->PackageCount+1); // Map versions that we want to write out onto the VerList array. for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) { - VFList[P->ID].NameMatch = NumPatterns != 0; + DFList[P->ID].NameMatch = NumPatterns != 0; for (unsigned I = 0; I != NumPatterns; I++) { if (regexec(&Patterns[I],P.Name(),0,0,0) == 0) - VFList[P->ID].NameMatch &= true; + DFList[P->ID].NameMatch &= true; else - VFList[P->ID].NameMatch = false; + DFList[P->ID].NameMatch = false; } // Doing names only, drop any that dont match.. - if (NamesOnly == true && VFList[P->ID].NameMatch == false) + if (NamesOnly == true && DFList[P->ID].NameMatch == false) continue; // Find the proper version to use. pkgCache::VerIterator V = Plcy.GetCandidateVer(P); if (V.end() == false) - VFList[P->ID].Vf = V.FileList(); + DFList[P->ID].Df = V.DescriptionList().FileList(); } // Include all the packages that provide matching names too for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++) { - if (VFList[P->ID].NameMatch == false) + if (DFList[P->ID].NameMatch == false) continue; for (pkgCache::PrvIterator Prv = P.ProvidesList() ; Prv.end() == false; Prv++) @@ -1289,18 +1345,18 @@ bool Search(CommandLine &CmdL) pkgCache::VerIterator V = Plcy.GetCandidateVer(Prv.OwnerPkg()); if (V.end() == false) { - VFList[Prv.OwnerPkg()->ID].Vf = V.FileList(); - VFList[Prv.OwnerPkg()->ID].NameMatch = true; + DFList[Prv.OwnerPkg()->ID].Df = V.DescriptionList().FileList(); + DFList[Prv.OwnerPkg()->ID].NameMatch = true; } } } - - LocalitySort(&VFList->Vf,Cache.HeaderP->PackageCount,sizeof(*VFList)); + + LocalitySort(&DFList->Df,Cache.HeaderP->PackageCount,sizeof(*DFList)); // Iterate over all the version records and check them - for (ExVerFile *J = VFList; J->Vf != 0; J++) + for (ExDescFile *J = DFList; J->Df != 0; J++) { - pkgRecords::Parser &P = Recs.Lookup(pkgCache::VerFileIterator(Cache,J->Vf)); + pkgRecords::Parser &P = Recs.Lookup(pkgCache::DescFileIterator(Cache,J->Df)); bool Match = true; if (J->NameMatch == false) @@ -1331,7 +1387,7 @@ bool Search(CommandLine &CmdL) } } - delete [] VFList; + delete [] DFList; for (unsigned I = 0; I != NumPatterns; I++) regfree(&Patterns[I]); if (ferror(stdout)) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 570e1016c..be4b46857 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -629,6 +629,8 @@ void CacheFile::Sort() and verifies that the system is OK. */ bool CacheFile::CheckDeps(bool AllowBroken) { + bool FixBroken = _config->FindB("APT::Get::Fix-Broken",false); + if (_error->PendingError() == true) return false; @@ -640,12 +642,24 @@ bool CacheFile::CheckDeps(bool AllowBroken) if (pkgApplyStatus(*DCache) == false) return false; + if (_config->FindB("APT::Get::Fix-Policy-Broken",false) == true) + { + FixBroken = true; + if ((DCache->PolicyBrokenCount() > 0)) + { + // upgrade all policy-broken packages with ForceImportantDeps=True + for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); I++) + if ((*DCache)[I].NowPolicyBroken() == true) + DCache->MarkInstall(I,true,0, false, true); + } + } + // Nothing is broken if (DCache->BrokenCount() == 0 || AllowBroken == true) return true; // Attempt to fix broken things - if (_config->FindB("APT::Get::Fix-Broken",false) == true) + if (FixBroken == true) { c1out << _("Correcting dependencies...") << flush; if (pkgFixBroken(*DCache) == false || DCache->BrokenCount() != 0) @@ -1146,9 +1160,11 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, else ExpectedInst++; - // Install it with autoinstalling enabled. - if (State.InstBroken() == true && BrokenFix == false) + // Install it with autoinstalling enabled (if we not respect the minial + // required deps or the policy) + if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false) Cache.MarkInstall(Pkg,true); + return true; } /*}}}*/ @@ -1469,6 +1485,51 @@ bool DoUpgrade(CommandLine &CmdL) return InstallPackages(Cache,true); } /*}}}*/ +// DoInstallTask - Install task from the command line /*{{{*/ +// --------------------------------------------------------------------- +/* Install named task */ +bool TryInstallTask(pkgDepCache &Cache, pkgProblemResolver &Fix, + bool BrokenFix, + unsigned int& ExpectedInst, + const char *taskname) +{ + const char *start, *end; + pkgCache::PkgIterator Pkg; + char buf[64*1024]; + regex_t Pattern; + + // get the records + pkgRecords Recs(Cache); + + // build regexp for the task + char S[300]; + snprintf(S, sizeof(S), "^Task:.*[^a-z]%s[^a-z].*\n", taskname); + regcomp(&Pattern,S, REG_EXTENDED | REG_NOSUB | REG_NEWLINE); + + bool found = false; + bool res = true; + for (Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++) + { + pkgCache::VerIterator ver = Cache[Pkg].CandidateVerIter(Cache); + if(ver.end()) + continue; + pkgRecords::Parser &parser = Recs.Lookup(ver.FileList()); + parser.GetRec(start,end); + strncpy(buf, start, end-start); + buf[end-start] = 0x0; + if (regexec(&Pattern,buf,0,0,0) != 0) + continue; + res &= TryToInstall(Pkg,Cache,Fix,false,BrokenFix,ExpectedInst); + found = true; + } + + if(!found) + _error->Error(_("Couldn't find task %s"),taskname); + + regfree(&Pattern); + return res; +} + // DoInstall - Install packages from the command line /*{{{*/ // --------------------------------------------------------------------- /* Install named packages */ @@ -2618,6 +2679,8 @@ int main(int argc,const char *argv[]) {0,"arch-only","APT::Get::Arch-Only",0}, {0,"auto-remove","APT::Get::AutomaticRemove",0}, {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0}, + {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean}, + {0,"fix-policy","APT::Get::Fix-Policy-Broken",0}, {'c',"config-file",0,CommandLine::ConfigFile}, {'o',"option",0,CommandLine::ArbItem}, {0,0,0,0}}; diff --git a/configure.in b/configure.in index f0b0d6703..19828cc85 100644 --- a/configure.in +++ b/configure.in @@ -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) dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.6.45.1") +AC_DEFINE_UNQUOTED(VERSION,"0.6.46.1exp1") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) @@ -175,12 +175,21 @@ dnl Check for debiandoc AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html) AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text) +dnl Check for doxygen +AC_PATH_PROG(DOXYGEN, doxygen) + dnl Check for the SGML tools needed to build man pages AC_PATH_PROG(DOCBOOK2MAN,docbook2man) dnl Check for the XML tools needed to build man pages AC_PATH_PROG(XMLTO,xmlto) +dnl Check for graphviz +AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO]) +AC_PATH_PROG([DOT], [dot], []) +DOTDIR=$(dirname $DOT) +AC_SUBST(DOTDIR) + dnl Check for YODL dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","") @@ -192,7 +201,7 @@ ah_GCC3DEP dnl It used to be that the user could select translations and that could get dnl passed to the makefiles, but now that can only work if you use special dnl gettext approved makefiles, so this feature is unsupported by this. -ALL_LINGUAS="bg bs ca cs cy da de dz el en_GB es eu fi fr gl hu it ja ko nb nl nn pl pt_BR pt ro ru sk sl sv tl vi zn_CN zh_TW" +ALL_LINGUAS="bg bs ca cs cy da de dz el en_GB es eu fi fr gl hu it ja ko ku nb nl nn pl pt_BR pt ro ru sk sl sv tl vi zn_CN zh_TW" AM_GNU_GETTEXT(external) if test x"$USE_NLS" = "xyes"; then AC_DEFINE(USE_NLS) @@ -200,4 +209,4 @@ fi AC_SUBST(USE_NLS) AC_PATH_PROG(BASH, bash) -AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make -s dirs) +AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile,make -s dirs) diff --git a/debian/NEWS.Debian b/debian/NEWS.Debian index db04b1e91..f44d1966b 100644 --- a/debian/NEWS.Debian +++ b/debian/NEWS.Debian @@ -1,3 +1,11 @@ +apt (0.6.44) unstable; urgency=low + + * apt-ftparchive --db now uses Berkeley DB_BTREE instead of DB_HASH. + If you use a database created by an older version of apt, delete + it and allow it to be recreated the next time. + + -- Michael Vogt <mvo@debian.org> Wed, 26 Apr 2006 12:57:53 +0200 + apt (0.5.25) unstable; urgency=low * apt-ftparchive --db now uses Berkeley DB version 4.2. If used with a diff --git a/debian/changelog b/debian/changelog index d0719db91..7768234f5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,32 @@ -apt (0.6.45.1) unstable; urgency=low +apt (0.6.46.1exp1) experimental; urgency=low + + * merged "install-recommends" branch (ABI break): + - new "--install-recommends" + - install new recommends on "upgrade" if --install-recommends is + given + - new "--fix-policy" option to install all packages with unmet + important dependencies (usefull with --install-recommends to + see what not-installed recommends are on the system) + - fix of recommended packages display (only show CandidateVersion + fix or-group handling) + * merged "install-task" branch (use with "apt-get install taskname^") + * methods/gzip.cc: + - deal with empty files + * Applied patch from Daniel Schepler to make apt bin-NMU able. + * rebuild against current g++ because of: + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289 + * fix broken i18n in the dpkg progress reporting, thanks to + Frans Pop and Steinar Gunderson. (closes: #389261) + * Merged from Christian Perrier bzr branch: + * fi.po: Updated to 514t. Closes: #390149 + * eu.po: Updated to 514t. Closes: #389725 + * vi.po: Updated to 514t. Closes: #388555 + * make the internal buffer in pkgTagFile grow dynamically + (closes: #388708) + + -- + +apt (0.6.46) unstable; urgency=low * debian/control: - switched to libdb4.4 for building (closes: #381019) @@ -9,15 +37,37 @@ apt (0.6.45.1) unstable; urgency=low suggested/recommends packages (closes: #311619) * methods/http.cc: - check more careful for incorrect proxy settings (closes: #378868) - - -- + * methods/gzip.cc: + - don't hang when /var is full (closes: #341537), thanks to + Luis Rodrigo Gallardo Cruz for the patch + * doc/examples/sources.list: + - removed non-us.debian.org from the example (closes: #380030,#316196) + * Merged from Christian Perrier bzr branch: + * ro.po: Updated to 514t. Closes: #388402 + * dz.po: Updated to 514t. Closes: #388184 + * it.po: Fixed typos. Closes: #387812 + * ku.po: New kurdish translation. Closes: #387766 + * sk.po: Updated to 514t. Closes: #386851 + * ja.po: Updated to 514t. Closes: #386537 + * gl.po: Updated to 514t. Closes: #386397 + * fr.po: Updated to 516t. + * fi.po: Updated to 512t. Closes: #382702 + * share/archive-archive.gpg: + - removed the outdated amd64 and debian-2004 keys + * apt-pkg/tagfile.cc: + - applied patch from Jeroen van Wolffelaar to make the tags + caseinsensitive (closes: #384182) + - reverted MMap use in the tagfile because it does not work + across pipes (closes: #383487) + + -- Michael Vogt <mvo@debian.org> Thu, 21 Sep 2006 10:25:03 +0200 apt (0.6.45) unstable; urgency=low * apt-pkg/contrib/sha256.cc: - fixed the sha256 generation (closes: #378183) * ftparchive/cachedb.cc: - - applied patch from Anthony Towns to fix Clean() function + - applied patch from ajt to fix Clean() function (closes: #379576) * doc/apt-get.8.xml: - fix path to the apt user build (Closes: #375640) @@ -35,9 +85,6 @@ apt (0.6.45) unstable; urgency=low - fix for string mangling, closes: #373864 * apt-pkg/acquire-item.cc: - check for bzip2 in /bin (closes: #377391) - * apt-pkg/tagfile.cc: - - make it work on non-mapable files again, thanks - to James Troup for confirming the fix (closes: #376777) * Merged from Christian Perrier bzr branch: * ko.po: Updated to 512t. Closes: #378901 * hu.po: Updated to 512t. Closes: #376330 @@ -48,26 +95,42 @@ apt (0.6.45) unstable; urgency=low * dz.po: New Dzongkha translation: 512t * ro.po: Updated to 512t * eu.po: Updated + * eu.po: Updated + * fix apt-get dist-upgrade + * fix warning if no /var/lib/apt/extended_states is present + * don't download Translations for deb-src sources.list lines + * apt-pkg/tagfile.cc: + - support not-mmapable files again - -- Michael Vogt <mvo@debian.org> Thu, 27 Jul 2006 00:52:05 +0200 + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 25 Jul 2006 11:55:22 +0200 -apt (0.6.44.2) unstable; urgency=low - - * apt-pkg/depcache.cc: - - added Debug::pkgDepCache::AutoInstall (thanks to infinity) - * apt-pkg/acquire-item.cc: - - fix missing chmod() in the new aquire code - (thanks to Bastian Blank, Closes: #367425) - * merged from - http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: - * sk.po: Completed to 512t - * eu.po: Completed to 512t - * fr.po: Completed to 512t - * sv.po: Completed to 512t - * Update all PO and the POT. Gives 506t6f for formerly - complete translations - - -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200 +apt (0.6.44.2exp1) experimental; urgency=low + + * added support for i18n of the package descriptions + * added support for aptitude like auto-install tracking (a HUGE + HUGE thanks to Daniel Burrows who made this possible) + * synced with the http://people.debian.org/~mvo/bzr/apt/debian-sid branch + * build from http://people.debian.org/~mvo/bzr/apt/debian-experimental + + -- Michael Vogt <mvo@debian.org> Mon, 3 Jul 2006 21:50:31 +0200 + +apt (0.6.44.2) unstable; urgency=low + + * apt-pkg/depcache.cc: + - added Debug::pkgDepCache::AutoInstall (thanks to infinity) + * apt-pkg/acquire-item.cc: + - fix missing chmod() in the new aquire code + (thanks to Bastian Blank, Closes: #367425) + * merged from + http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: + * sk.po: Completed to 512t + * eu.po: Completed to 512t + * fr.po: Completed to 512t + * sv.po: Completed to 512t + * Update all PO and the POT. Gives 506t6f for formerly + complete translations + + -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200 apt (0.6.44.1-0.1) unstable; urgency=low @@ -79,22 +142,32 @@ apt (0.6.44.1-0.1) unstable; urgency=low apt (0.6.44.1) unstable; urgency=low + * apt-pkg/acquire-item.cc: + - fix reversed logic of the "Acquire::PDiffs" option * merged from http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: - po/LINGUAS: added "bg" Closes: #360262 - po/gl.po: Galician translation update. Closes: #366849 - po/hu.po: Hungarian translation update. Closes: #365448 - po/cs.po: Czech translation updated. Closes: #367244 + * apt-pkg/contrib/sha256.cc: + - applied patch to fix unaligned access problem. Closes: #367417 + (thanks to David Mosberger) -- Michael Vogt <mvo@debian.org> Tue, 16 May 2006 21:51:16 +0200 apt (0.6.44) unstable; urgency=low * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large + * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 + (thanks to Anthony Towns) + * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations + (thanks to Anthony Towns) + * apt pdiff support from experimental merged + * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman) * apt-pkg/deb/dpkgpm.cc: - wording fixes (thanks to Matt Zimmerman) - - fix error in dpkg interaction (closes: #364513, - thanks to Martin Dickopp) + - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp) * apt-pkg/tagfile.{cc,h}: - use MMap to read the entries (thanks to Zephaniah E. Hull for the patch) Closes: #350025 @@ -289,7 +362,7 @@ apt (0.6.42) unstable; urgency=low * cmdline/apt-cdrom.cc: - fix some missing gettext() calls (closes: #334539) * doc/apt-cache.8.xml: fix typo (closes: #334714) - + -- Michael Vogt <mvo@debian.org> Wed, 19 Oct 2005 22:02:09 +0200 apt (0.6.41) unstable; urgency=low diff --git a/debian/rules b/debian/rules index 6a142e759..0413310a7 100755 --- a/debian/rules +++ b/debian/rules @@ -38,7 +38,7 @@ build: PKG=apt DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS) -APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p') +APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' -e 's/\+.*$$//') APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in) APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g') diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in new file mode 100644 index 000000000..f19ff93f6 --- /dev/null +++ b/doc/Doxyfile.in @@ -0,0 +1,1238 @@ +# Doxyfile 1.4.5 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = ../build/doc/doxygen + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is YES. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../apt-pkg + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.cc \ + *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = @HAVE_DOT@ + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = @DOTDIR@ + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 1911d091b..831e276c7 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -94,6 +94,10 @@ APT Cache-Limit "4194304"; Default-Release ""; + // consider Recommends, Suggests as important dependencies that should + // be installed by default + APT::Install-Recommends "false"; + APT::Install-Suggests "false"; // Write progress messages on this fd (for stuff like base-config) Status-Fd "-1"; @@ -108,6 +112,8 @@ Acquire Queue-Mode "host"; // host|access Retries "0"; Source-Symlinks "true"; + + PDiffs "true"; // try to get the IndexFile diffs // HTTP method configuration http @@ -256,7 +262,7 @@ Debug pkgDPkgProgressReporting "false"; pkgOrderList "false"; pkgAutoRemove "false"; // show information about automatic removes - + BuildDeps "false"; pkgInitialize "false"; // This one will dump the configuration space NoLocking "false"; Acquire::Ftp "false"; // Show ftp command traffic diff --git a/doc/examples/sources.list b/doc/examples/sources.list index 9f2343277..9af1c3c4c 100644 --- a/doc/examples/sources.list +++ b/doc/examples/sources.list @@ -2,7 +2,6 @@ # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. deb http://http.us.debian.org/debian stable main contrib non-free -deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org stable/updates main contrib non-free # Uncomment if you want the apt-get source function to work diff --git a/doc/makefile b/doc/makefile index 31ee061fb..5f774b825 100644 --- a/doc/makefile +++ b/doc/makefile @@ -42,3 +42,24 @@ doc.ja: %.ja: doc.pl: %.pl: $(MAKE) -C pl $* + +ifdef DOXYGEN +DOXYGEN_SOURCES = $(shell find $(BASE)/apt-pkg -not -name .\\\#* -and \( -name \*.cc -or -name \*.h \) ) + +clean: doxygen-clean + +doxygen-clean: + rm -fr $(BUILD)/doc/doxygen + rm -f $(BUILD)/doc/doxygen-stamp + +$(BUILD)/doc/Doxyfile: Doxyfile.in + (cd $(BUILD) && ./config.status doc/Doxyfile) + +$(BUILD)/doc/doxygen-stamp: $(DOXYGEN_SOURCES) $(BUILD)/doc/Doxyfile + rm -fr $(BUILD)/doc/doxygen + $(DOXYGEN) $(BUILD)/doc/Doxyfile + touch $(BUILD)/doc/doxygen-stamp + +doc: $(BUILD)/doc/doxygen-stamp + +endif diff --git a/methods/gzip.cc b/methods/gzip.cc index 809afc0fc..f732c0b86 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -52,6 +52,13 @@ bool GzipMethod::Fetch(FetchItem *Itm) // Open the source and destination files FileFd From(Path,FileFd::ReadOnly); + // if the file is empty, just rename it and return + if(From.Size() == 0) + { + rename(Path.c_str(), Itm->DestFile.c_str()); + return true; + } + int GzOut[2]; if (pipe(GzOut) < 0) return _error->Errno("pipe",_("Couldn't open pipe for %s"),Prog); @@ -111,6 +118,7 @@ bool GzipMethod::Fetch(FetchItem *Itm) if (To.Write(Buffer,Count) == false) { Failed = true; + FromGz.Close(); break; } } diff --git a/methods/http.cc b/methods/http.cc index c6623c46f..1f3b038bc 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -58,7 +58,6 @@ unsigned long PipelineDepth = 10; unsigned long TimeOut = 120; bool Debug = false; - unsigned long CircleBuf::BwReadLimit=0; unsigned long CircleBuf::BwTickReadData=0; struct timeval CircleBuf::BwReadTick={0,0}; diff --git a/methods/makefile b/methods/makefile index 7af5d38d1..5bd05eae1 100644 --- a/methods/makefile +++ b/methods/makefile @@ -7,7 +7,7 @@ include ../buildlib/defaults.mak BIN := $(BIN)/methods # FIXME.. -LIB_APT_PKG_MAJOR = 3.13 +LIB_APT_PKG_MAJOR = 4.2 APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR) # The file method @@ -59,6 +59,13 @@ LIB_MAKES = apt-pkg/makefile SOURCE = ftp.cc rfc2553emu.cc connect.cc include $(PROGRAM_H) +# The rred method +PROGRAM=rred +SLIBS = -lapt-pkg $(SOCKETLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = rred.cc +include $(PROGRAM_H) + # The rsh method PROGRAM=rsh SLIBS = -lapt-pkg diff --git a/methods/rred.cc b/methods/rred.cc new file mode 100644 index 000000000..6fa57f3a6 --- /dev/null +++ b/methods/rred.cc @@ -0,0 +1,262 @@ +#include <apt-pkg/fileutl.h> +#include <apt-pkg/error.h> +#include <apt-pkg/acquire-method.h> +#include <apt-pkg/strutl.h> +#include <apt-pkg/hashes.h> + +#include <sys/stat.h> +#include <unistd.h> +#include <utime.h> +#include <stdio.h> +#include <errno.h> +#include <apti18n.h> + +/* this method implements a patch functionality similar to "patch --ed" that is + * used by the "tiffany" incremental packages download stuff. it differs from + * "ed" insofar that it is way more restricted (and therefore secure). in the + * moment only the "c", "a" and "d" commands of ed are implemented (diff + * doesn't output any other). additionally the records must be reverse sorted + * by line number and may not overlap (diff *seems* to produce this kind of + * output). + * */ + +const char *Prog; + +class RredMethod : public pkgAcqMethod +{ + bool Debug; + // the size of this doesn't really matter (except for performance) + const static int BUF_SIZE = 1024; + // the ed commands + enum Mode {MODE_CHANGED, MODE_DELETED, MODE_ADDED}; + // return values + enum State {ED_OK, ED_ORDERING, ED_PARSER, ED_FAILURE}; + // this applies a single hunk, it uses a tail recursion to + // reverse the hunks in the file + int ed_rec(FILE *ed_cmds, FILE *in_file, FILE *out_file, int line, + char *buffer, unsigned int bufsize, Hashes *hash); + // apply a patch file + int ed_file(FILE *ed_cmds, FILE *in_file, FILE *out_file, Hashes *hash); + // the methods main method + virtual bool Fetch(FetchItem *Itm); + + public: + + RredMethod() : pkgAcqMethod("1.1",SingleInstance | SendConfig) {}; +}; + +int RredMethod::ed_rec(FILE *ed_cmds, FILE *in_file, FILE *out_file, int line, + char *buffer, unsigned int bufsize, Hashes *hash) { + int pos; + int startline; + int stopline; + int mode; + int written; + char *idx; + + /* get the current command and parse it*/ + if (fgets(buffer, bufsize, ed_cmds) == NULL) { + return line; + } + startline = strtol(buffer, &idx, 10); + if (startline < line) { + return ED_ORDERING; + } + if (*idx == ',') { + idx++; + stopline = strtol(idx, &idx, 10); + } + else { + stopline = startline; + } + if (*idx == 'c') { + mode = MODE_CHANGED; + if (Debug == true) { + std::clog << "changing from line " << startline + << " to " << stopline << std::endl; + } + } + else if (*idx == 'a') { + mode = MODE_ADDED; + if (Debug == true) { + std::clog << "adding after line " << startline << std::endl; + } + } + else if (*idx == 'd') { + mode = MODE_DELETED; + if (Debug == true) { + std::clog << "deleting from line " << startline + << " to " << stopline << std::endl; + } + } + else { + return ED_PARSER; + } + /* get the current position */ + pos = ftell(ed_cmds); + /* if this is add or change then go to the next full stop */ + if ((mode == MODE_CHANGED) || (mode == MODE_ADDED)) { + do { + fgets(buffer, bufsize, ed_cmds); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, ed_cmds); + buffer[0] = ' '; + } + } while (strncmp(buffer, ".", 1) != 0); + } + /* do the recursive call */ + line = ed_rec(ed_cmds, in_file, out_file, line, buffer, bufsize, + hash); + /* pass on errors */ + if (line < 0) { + return line; + } + /* apply our hunk */ + fseek(ed_cmds, pos, SEEK_SET); + /* first wind to the current position */ + if (mode != MODE_ADDED) { + startline -= 1; + } + while (line < startline) { + fgets(buffer, bufsize, in_file); + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, in_file); + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + } + line++; + } + /* include from ed script */ + if ((mode == MODE_ADDED) || (mode == MODE_CHANGED)) { + do { + fgets(buffer, bufsize, ed_cmds); + if (strncmp(buffer, ".", 1) != 0) { + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, ed_cmds); + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + } + } + else { + break; + } + } while (1); + } + /* ignore the corresponding number of lines from input */ + if ((mode == MODE_DELETED) || (mode == MODE_CHANGED)) { + while (line < stopline) { + fgets(buffer, bufsize, in_file); + while ((strlen(buffer) == (bufsize - 1)) + && (buffer[bufsize - 2] != '\n')) { + fgets(buffer, bufsize, in_file); + } + line++; + } + } + return line; +} + +int RredMethod::ed_file(FILE *ed_cmds, FILE *in_file, FILE *out_file, + Hashes *hash) { + char buffer[BUF_SIZE]; + int result; + int written; + + /* we do a tail recursion to read the commands in the right order */ + result = ed_rec(ed_cmds, in_file, out_file, 0, buffer, BUF_SIZE, + hash); + + /* read the rest from infile */ + if (result > 0) { + while (fgets(buffer, BUF_SIZE, in_file) != NULL) { + written = fwrite(buffer, 1, strlen(buffer), out_file); + hash->Add((unsigned char*)buffer, written); + } + } + else { + return ED_FAILURE; + } + return ED_OK; +} + + +bool RredMethod::Fetch(FetchItem *Itm) +{ + Debug = _config->FindB("Debug::pkgAcquire::RRed",false); + URI Get = Itm->Uri; + string Path = Get.Host + Get.Path; // To account for relative paths + // Path contains the filename to patch + FetchResult Res; + Res.Filename = Itm->DestFile; + URIStart(Res); + // Res.Filename the destination filename + + if (Debug == true) + std::clog << "Patching " << Path << " with " << Path + << ".ed and putting result into " << Itm->DestFile << std::endl; + // Open the source and destination files (the d'tor of FileFd will do + // the cleanup/closing of the fds) + FileFd From(Path,FileFd::ReadOnly); + FileFd Patch(Path+".ed",FileFd::ReadOnly); + FileFd To(Itm->DestFile,FileFd::WriteEmpty); + To.EraseOnFailure(); + if (_error->PendingError() == true) + return false; + + Hashes Hash; + FILE* fFrom = fdopen(From.Fd(), "r"); + FILE* fPatch = fdopen(Patch.Fd(), "r"); + FILE* fTo = fdopen(To.Fd(), "w"); + // now do the actual patching + if (ed_file(fPatch, fFrom, fTo, &Hash) != ED_OK) { + _error->Errno("rred", _("Could not patch file")); + return false; + } + + // write out the result + fflush(fFrom); + fflush(fPatch); + fflush(fTo); + From.Close(); + Patch.Close(); + To.Close(); + + // Transfer the modification times + struct stat Buf; + if (stat(Path.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + struct utimbuf TimeBuf; + TimeBuf.actime = Buf.st_atime; + TimeBuf.modtime = Buf.st_mtime; + if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) + return _error->Errno("utime",_("Failed to set modification time")); + + if (stat(Itm->DestFile.c_str(),&Buf) != 0) + return _error->Errno("stat",_("Failed to stat")); + + // return done + Res.LastModified = Buf.st_mtime; + Res.Size = Buf.st_size; + Res.TakeHashes(Hash); + URIDone(Res); + + return true; +} + +int main(int argc, char *argv[]) +{ + RredMethod Mth; + + Prog = strrchr(argv[0],'/'); + Prog++; + + return Mth.Run(); +} diff --git a/po/ChangeLog b/po/ChangeLog index 545fe3e75..4377ad29f 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,65 @@ +2006-09-29 Tapio Lehtonen <tale@debian.org> + + * fi.po: Updated to 514t. Closes: #390149 + +2006-09-27 Piarres Beobide <pi@beobide.net> + + * eu.po: Updated to 514t. Closes: #389725 + +2006-09-21 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated to 514t. Closes: #388555 + +2006-09-20 Sorin Batariuc <sorin@bonbon.net> + + * ro.po: Updated to 514t. Closes: #388402 + +2006-09-18 Kinley Tshering <gasepkuenden2k3@hotmail.com> + + * dz.po: Updated to 514t. Closes: #388184 + +2006-09-17 Davide Viti <zinosat@tiscali.it> + + * it.po: Fixed typos. Closes: #387812 + +2006-09-17 Erdal Ronahi <erdal.ronahi@gmail.com> + + * ku.po: New kurdish translation. Closes: #387766 + 71t40f403u + +2006-09-10 Peter Mann <Peter.Mann@tuke.sk> + + * sk.po: Updated to 514t. Closes: #386851 + +2006-09-08 Christian Perrier <bubulle@debian.org> + + * LINGUAS: re-enabled Hebrew translation on translator's request. + +2006-09-08 Kenshi Muto <kmuto@debian.org> + + * ja.po: Updated to 514t. Closes: #386537 + +2006-09-06 Jacobo Tarrio <jtarrio@debian.org> + + * gl.po: Updated to 514t. Closes: #386397 + +2006-09-02 Christian Perrier <bubulle@debian.org> + + * fr.po: Updated to 516t. + +2006-09-02 Christian Perrier <bubulle@debian.org> + + * fr.po: Updated to 516t. + +2006-08-20 Christian Perrier <bubulle@debian.org> + + * Update all PO and the POT. Gives 512t3f1uf for formerly + complete translations + +2006-08-13 Tapio Lehtonen <tale@debian.org> + + * fi.po: Updated to 512t. Closes: #382702 + 2006-07-19 Sunjae Park <darehanl@gmail.com> * ko.po: Updated to 512t. Closes: #378901 diff --git a/po/LINGUAS b/po/LINGUAS index aec84e943..eaf179bd7 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ -bg bs ca cs cy da de el en_GB es eu fi fr gl hu it ja ko nb nl nn pl pt pt_BR ro ru sk sl sv tl vi zh_CN zh_TW +bg bs ca cs cy da de el en_GB es eu fi fr gl he hu it ja ko nb nl nn pl pt pt_BR ro ru sk sl sv tl vi zh_CN zh_TW diff --git a/po/apt-all.pot b/po/apt-all.pot index 0a7a30629..90da19119 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-09-06 18:58+0200\n" +"POT-Creation-Date: 2006-08-15 15:55+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" @@ -15,145 +15,153 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: cmdline/apt-cache.cc:135 +#: cmdline/apt-cache.cc:141 #, c-format msgid "Package %s version %s has an unmet dep:\n" msgstr "" -#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 -#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 -#: cmdline/apt-cache.cc:1508 +#: cmdline/apt-cache.cc:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:638 +#: cmdline/apt-cache.cc:794 cmdline/apt-cache.cc:1012 +#: cmdline/apt-cache.cc:1413 cmdline/apt-cache.cc:1564 #, c-format msgid "Unable to locate package %s" msgstr "" -#: cmdline/apt-cache.cc:232 +#: cmdline/apt-cache.cc:245 msgid "Total package names : " msgstr "" -#: cmdline/apt-cache.cc:272 +#: cmdline/apt-cache.cc:285 msgid " Normal packages: " msgstr "" -#: cmdline/apt-cache.cc:273 +#: cmdline/apt-cache.cc:286 msgid " Pure virtual packages: " msgstr "" -#: cmdline/apt-cache.cc:274 +#: cmdline/apt-cache.cc:287 msgid " Single virtual packages: " msgstr "" -#: cmdline/apt-cache.cc:275 +#: cmdline/apt-cache.cc:288 msgid " Mixed virtual packages: " msgstr "" -#: cmdline/apt-cache.cc:276 +#: cmdline/apt-cache.cc:289 msgid " Missing: " msgstr "" -#: cmdline/apt-cache.cc:278 +#: cmdline/apt-cache.cc:291 msgid "Total distinct versions: " msgstr "" -#: cmdline/apt-cache.cc:280 +#: cmdline/apt-cache.cc:293 +msgid "Total Distinct Descriptions: " +msgstr "" + +#: cmdline/apt-cache.cc:295 msgid "Total dependencies: " msgstr "" -#: cmdline/apt-cache.cc:283 +#: cmdline/apt-cache.cc:298 msgid "Total ver/file relations: " msgstr "" -#: cmdline/apt-cache.cc:285 +#: cmdline/apt-cache.cc:300 +msgid "Total Desc/File relations: " +msgstr "" + +#: cmdline/apt-cache.cc:302 msgid "Total Provides mappings: " msgstr "" -#: cmdline/apt-cache.cc:297 +#: cmdline/apt-cache.cc:314 msgid "Total globbed strings: " msgstr "" -#: cmdline/apt-cache.cc:311 +#: cmdline/apt-cache.cc:328 msgid "Total dependency version space: " msgstr "" -#: cmdline/apt-cache.cc:316 +#: cmdline/apt-cache.cc:333 msgid "Total slack space: " msgstr "" -#: cmdline/apt-cache.cc:324 +#: cmdline/apt-cache.cc:341 msgid "Total space accounted for: " msgstr "" -#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1212 #, c-format msgid "Package file %s is out of sync." msgstr "" -#: cmdline/apt-cache.cc:1231 +#: cmdline/apt-cache.cc:1287 msgid "You must give exactly one pattern" msgstr "" -#: cmdline/apt-cache.cc:1385 +#: cmdline/apt-cache.cc:1441 msgid "No packages found" msgstr "" -#: cmdline/apt-cache.cc:1462 +#: cmdline/apt-cache.cc:1518 msgid "Package files:" msgstr "" -#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +#: cmdline/apt-cache.cc:1525 cmdline/apt-cache.cc:1611 msgid "Cache is out of sync, can't x-ref a package file" msgstr "" -#: cmdline/apt-cache.cc:1470 +#: cmdline/apt-cache.cc:1526 #, c-format msgid "%4i %s\n" msgstr "" #. Show any packages have explicit pins -#: cmdline/apt-cache.cc:1482 +#: cmdline/apt-cache.cc:1538 msgid "Pinned packages:" msgstr "" -#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +#: cmdline/apt-cache.cc:1550 cmdline/apt-cache.cc:1591 msgid "(not found)" msgstr "" #. Installed version -#: cmdline/apt-cache.cc:1515 +#: cmdline/apt-cache.cc:1571 msgid " Installed: " msgstr "" -#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +#: cmdline/apt-cache.cc:1573 cmdline/apt-cache.cc:1581 msgid "(none)" msgstr "" #. Candidate Version -#: cmdline/apt-cache.cc:1522 +#: cmdline/apt-cache.cc:1578 msgid " Candidate: " msgstr "" -#: cmdline/apt-cache.cc:1532 +#: cmdline/apt-cache.cc:1588 msgid " Package pin: " msgstr "" #. Show the priority tables -#: cmdline/apt-cache.cc:1541 +#: cmdline/apt-cache.cc:1597 msgid " Version table:" msgstr "" -#: cmdline/apt-cache.cc:1556 +#: cmdline/apt-cache.cc:1612 #, c-format msgid " %4i %s\n" msgstr "" -#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-cache.cc:1708 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2455 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2462 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "" -#: cmdline/apt-cache.cc:1659 +#: cmdline/apt-cache.cc:1715 msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@ -243,7 +251,7 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" msgstr "" -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:712 +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:817 #, c-format msgid "Unable to write to %s" msgstr "" @@ -546,7 +554,7 @@ msgstr "" msgid "Y" msgstr "" -#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1569 +#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1574 #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -645,118 +653,118 @@ msgstr "" msgid "%lu not fully installed or removed.\n" msgstr "" -#: cmdline/apt-get.cc:650 +#: cmdline/apt-get.cc:664 msgid "Correcting dependencies..." msgstr "" -#: cmdline/apt-get.cc:653 +#: cmdline/apt-get.cc:667 msgid " failed." msgstr "" -#: cmdline/apt-get.cc:656 +#: cmdline/apt-get.cc:670 msgid "Unable to correct dependencies" msgstr "" -#: cmdline/apt-get.cc:659 +#: cmdline/apt-get.cc:673 msgid "Unable to minimize the upgrade set" msgstr "" -#: cmdline/apt-get.cc:661 +#: cmdline/apt-get.cc:675 msgid " Done" msgstr "" -#: cmdline/apt-get.cc:665 +#: cmdline/apt-get.cc:679 msgid "You might want to run `apt-get -f install' to correct these." msgstr "" -#: cmdline/apt-get.cc:668 +#: cmdline/apt-get.cc:682 msgid "Unmet dependencies. Try using -f." msgstr "" -#: cmdline/apt-get.cc:690 +#: cmdline/apt-get.cc:704 msgid "WARNING: The following packages cannot be authenticated!" msgstr "" -#: cmdline/apt-get.cc:694 +#: cmdline/apt-get.cc:708 msgid "Authentication warning overridden.\n" msgstr "" -#: cmdline/apt-get.cc:701 +#: cmdline/apt-get.cc:715 msgid "Install these packages without verification [y/N]? " msgstr "" -#: cmdline/apt-get.cc:703 +#: cmdline/apt-get.cc:717 msgid "Some packages could not be authenticated" msgstr "" -#: cmdline/apt-get.cc:712 cmdline/apt-get.cc:859 +#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873 msgid "There are problems and -y was used without --force-yes" msgstr "" -#: cmdline/apt-get.cc:756 +#: cmdline/apt-get.cc:770 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "" -#: cmdline/apt-get.cc:765 +#: cmdline/apt-get.cc:779 msgid "Packages need to be removed but remove is disabled." msgstr "" -#: cmdline/apt-get.cc:776 +#: cmdline/apt-get.cc:790 msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1886 cmdline/apt-get.cc:1919 +#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1893 cmdline/apt-get.cc:1926 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1967 cmdline/apt-get.cc:2203 +#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:1974 cmdline/apt-get.cc:2210 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "" -#: cmdline/apt-get.cc:817 +#: cmdline/apt-get.cc:831 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -#: cmdline/apt-get.cc:822 +#: cmdline/apt-get.cc:836 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "" -#: cmdline/apt-get.cc:825 +#: cmdline/apt-get.cc:839 #, c-format msgid "Need to get %sB of archives.\n" msgstr "" -#: cmdline/apt-get.cc:830 +#: cmdline/apt-get.cc:844 #, c-format msgid "After unpacking %sB of additional disk space will be used.\n" msgstr "" -#: cmdline/apt-get.cc:833 +#: cmdline/apt-get.cc:847 #, c-format msgid "After unpacking %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2057 +#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2064 #, c-format msgid "Couldn't determine free space in %s" msgstr "" -#: cmdline/apt-get.cc:850 +#: cmdline/apt-get.cc:864 #, c-format msgid "You don't have enough free space in %s." msgstr "" -#: cmdline/apt-get.cc:865 cmdline/apt-get.cc:885 +#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" -#: cmdline/apt-get.cc:867 +#: cmdline/apt-get.cc:881 msgid "Yes, do as I say!" msgstr "" -#: cmdline/apt-get.cc:869 +#: cmdline/apt-get.cc:883 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -764,74 +772,74 @@ msgid "" " ?] " msgstr "" -#: cmdline/apt-get.cc:875 cmdline/apt-get.cc:894 +#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908 msgid "Abort." msgstr "" -#: cmdline/apt-get.cc:890 +#: cmdline/apt-get.cc:904 msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1366 cmdline/apt-get.cc:2100 +#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1382 cmdline/apt-get.cc:2107 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" -#: cmdline/apt-get.cc:980 +#: cmdline/apt-get.cc:994 msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2109 +#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2116 msgid "Download complete and in download only mode" msgstr "" -#: cmdline/apt-get.cc:987 +#: cmdline/apt-get.cc:1001 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -#: cmdline/apt-get.cc:991 +#: cmdline/apt-get.cc:1005 msgid "--fix-missing and media swapping is not currently supported" msgstr "" -#: cmdline/apt-get.cc:996 +#: cmdline/apt-get.cc:1010 msgid "Unable to correct missing packages." msgstr "" -#: cmdline/apt-get.cc:997 +#: cmdline/apt-get.cc:1011 msgid "Aborting install." msgstr "" -#: cmdline/apt-get.cc:1031 +#: cmdline/apt-get.cc:1045 #, c-format msgid "Note, selecting %s instead of %s\n" msgstr "" -#: cmdline/apt-get.cc:1041 +#: cmdline/apt-get.cc:1055 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "" -#: cmdline/apt-get.cc:1059 +#: cmdline/apt-get.cc:1073 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "" -#: cmdline/apt-get.cc:1070 +#: cmdline/apt-get.cc:1084 #, c-format msgid "Package %s is a virtual package provided by:\n" msgstr "" -#: cmdline/apt-get.cc:1082 +#: cmdline/apt-get.cc:1096 msgid " [Installed]" msgstr "" -#: cmdline/apt-get.cc:1087 +#: cmdline/apt-get.cc:1101 msgid "You should explicitly select one to install." msgstr "" -#: cmdline/apt-get.cc:1092 +#: cmdline/apt-get.cc:1106 #, c-format msgid "" "Package %s is not available, but is referred to by another package.\n" @@ -839,103 +847,97 @@ msgid "" "is only available from another source\n" msgstr "" -#: cmdline/apt-get.cc:1111 +#: cmdline/apt-get.cc:1125 msgid "However the following packages replace it:" msgstr "" -#: cmdline/apt-get.cc:1114 +#: cmdline/apt-get.cc:1128 #, c-format msgid "Package %s has no installation candidate" msgstr "" -#: cmdline/apt-get.cc:1134 +#: cmdline/apt-get.cc:1148 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" msgstr "" -#: cmdline/apt-get.cc:1142 +#: cmdline/apt-get.cc:1156 #, c-format msgid "%s is already the newest version.\n" msgstr "" -#: cmdline/apt-get.cc:1169 +#: cmdline/apt-get.cc:1185 #, c-format msgid "Release '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1171 +#: cmdline/apt-get.cc:1187 #, c-format msgid "Version '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1177 +#: cmdline/apt-get.cc:1193 #, c-format msgid "Selected version %s (%s) for %s\n" msgstr "" -#: cmdline/apt-get.cc:1314 +#: cmdline/apt-get.cc:1330 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1327 +#: cmdline/apt-get.cc:1343 msgid "Unable to lock the list directory" msgstr "" -#: cmdline/apt-get.cc:1385 +#: cmdline/apt-get.cc:1401 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -#: cmdline/apt-get.cc:1402 +#: cmdline/apt-get.cc:1415 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1427 -msgid "" -"The following packages where automatically installed and are no longer " -"required:" -msgstr "" - -#: cmdline/apt-get.cc:1432 +#: cmdline/apt-get.cc:1440 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." msgstr "" -#: cmdline/apt-get.cc:1435 cmdline/apt-get.cc:1637 +#: cmdline/apt-get.cc:1443 cmdline/apt-get.cc:1642 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1439 +#: cmdline/apt-get.cc:1447 msgid "Internal Error, AutoRemover broke stuff" msgstr "" -#: cmdline/apt-get.cc:1458 +#: cmdline/apt-get.cc:1466 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1556 cmdline/apt-get.cc:1592 +#: cmdline/apt-get.cc:1561 cmdline/apt-get.cc:1597 #, c-format msgid "Couldn't find package %s" msgstr "" -#: cmdline/apt-get.cc:1579 +#: cmdline/apt-get.cc:1584 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1609 +#: cmdline/apt-get.cc:1614 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1612 +#: cmdline/apt-get.cc:1617 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1624 +#: cmdline/apt-get.cc:1629 msgid "" "Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" @@ -943,159 +945,159 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1632 +#: cmdline/apt-get.cc:1637 msgid "" "Since you only requested a single operation it is extremely likely that\n" "the package is simply not installable and a bug report against\n" "that package should be filed." msgstr "" -#: cmdline/apt-get.cc:1640 +#: cmdline/apt-get.cc:1645 msgid "Broken packages" msgstr "" -#: cmdline/apt-get.cc:1669 +#: cmdline/apt-get.cc:1676 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1758 +#: cmdline/apt-get.cc:1765 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1759 +#: cmdline/apt-get.cc:1766 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1779 +#: cmdline/apt-get.cc:1786 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1782 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1789 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1787 +#: cmdline/apt-get.cc:1794 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1854 cmdline/apt-get.cc:1862 +#: cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1869 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:1962 +#: cmdline/apt-get.cc:1969 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:1992 cmdline/apt-get.cc:2221 +#: cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2228 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:2036 +#: cmdline/apt-get.cc:2043 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2067 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:2065 +#: cmdline/apt-get.cc:2072 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2068 +#: cmdline/apt-get.cc:2075 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2074 +#: cmdline/apt-get.cc:2081 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2105 +#: cmdline/apt-get.cc:2112 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2133 +#: cmdline/apt-get.cc:2140 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2145 +#: cmdline/apt-get.cc:2152 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2146 +#: cmdline/apt-get.cc:2153 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2163 +#: cmdline/apt-get.cc:2170 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2182 +#: cmdline/apt-get.cc:2189 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2198 +#: cmdline/apt-get.cc:2205 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2226 +#: cmdline/apt-get.cc:2233 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2246 +#: cmdline/apt-get.cc:2253 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2298 +#: cmdline/apt-get.cc:2305 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2350 +#: cmdline/apt-get.cc:2357 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -#: cmdline/apt-get.cc:2385 +#: cmdline/apt-get.cc:2392 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2410 +#: cmdline/apt-get.cc:2417 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2424 +#: cmdline/apt-get.cc:2431 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2428 +#: cmdline/apt-get.cc:2435 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2460 +#: cmdline/apt-get.cc:2467 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2501 +#: cmdline/apt-get.cc:2508 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1380,9 +1382,9 @@ msgid "The info and temp directories need to be on the same filesystem" msgstr "" #. Build the status cache -#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:645 -#: apt-pkg/pkgcachegen.cc:714 apt-pkg/pkgcachegen.cc:719 -#: apt-pkg/pkgcachegen.cc:842 +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:750 +#: apt-pkg/pkgcachegen.cc:819 apt-pkg/pkgcachegen.cc:824 +#: apt-pkg/pkgcachegen.cc:947 msgid "Reading package lists" msgstr "" @@ -1511,11 +1513,12 @@ msgid "File not found" msgstr "" #: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/gzip.cc:142 methods/rred.cc:234 methods/rred.cc:243 msgid "Failed to stat" msgstr "" #: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 +#: methods/rred.cc:240 msgid "Failed to set modification time" msgstr "" @@ -1641,7 +1644,7 @@ msgstr "" msgid "Unable to accept connection" msgstr "" -#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "" @@ -1772,76 +1775,76 @@ msgstr "" msgid "Read error from %s process" msgstr "" -#: methods/http.cc:376 +#: methods/http.cc:375 msgid "Waiting for headers" msgstr "" -#: methods/http.cc:522 +#: methods/http.cc:521 #, c-format msgid "Got a single header line over %u chars" msgstr "" -#: methods/http.cc:530 +#: methods/http.cc:529 msgid "Bad header line" msgstr "" -#: methods/http.cc:549 methods/http.cc:556 +#: methods/http.cc:548 methods/http.cc:555 msgid "The HTTP server sent an invalid reply header" msgstr "" -#: methods/http.cc:585 +#: methods/http.cc:584 msgid "The HTTP server sent an invalid Content-Length header" msgstr "" -#: methods/http.cc:600 +#: methods/http.cc:599 msgid "The HTTP server sent an invalid Content-Range header" msgstr "" -#: methods/http.cc:602 +#: methods/http.cc:601 msgid "This HTTP server has broken range support" msgstr "" -#: methods/http.cc:626 +#: methods/http.cc:625 msgid "Unknown date format" msgstr "" -#: methods/http.cc:773 +#: methods/http.cc:772 msgid "Select failed" msgstr "" -#: methods/http.cc:778 +#: methods/http.cc:777 msgid "Connection timed out" msgstr "" -#: methods/http.cc:801 +#: methods/http.cc:800 msgid "Error writing to output file" msgstr "" -#: methods/http.cc:832 +#: methods/http.cc:831 msgid "Error writing to file" msgstr "" -#: methods/http.cc:860 +#: methods/http.cc:859 msgid "Error writing to the file" msgstr "" -#: methods/http.cc:874 +#: methods/http.cc:873 msgid "Error reading from server. Remote end closed connection" msgstr "" -#: methods/http.cc:876 +#: methods/http.cc:875 msgid "Error reading from server" msgstr "" -#: methods/http.cc:1107 +#: methods/http.cc:1106 msgid "Bad header data" msgstr "" -#: methods/http.cc:1124 +#: methods/http.cc:1123 msgid "Connection failed" msgstr "" -#: methods/http.cc:1215 +#: methods/http.cc:1214 msgid "Internal error" msgstr "" @@ -1854,7 +1857,7 @@ msgstr "" msgid "Couldn't make mmap of %lu bytes" msgstr "" -#: apt-pkg/contrib/strutl.cc:938 +#: apt-pkg/contrib/strutl.cc:981 #, c-format msgid "Selection %s not found" msgstr "" @@ -2051,72 +2054,72 @@ msgstr "" msgid "Problem syncing the file" msgstr "" -#: apt-pkg/pkgcache.cc:126 +#: apt-pkg/pkgcache.cc:137 msgid "Empty package cache" msgstr "" -#: apt-pkg/pkgcache.cc:132 +#: apt-pkg/pkgcache.cc:143 msgid "The package cache file is corrupted" msgstr "" -#: apt-pkg/pkgcache.cc:137 +#: apt-pkg/pkgcache.cc:148 msgid "The package cache file is an incompatible version" msgstr "" -#: apt-pkg/pkgcache.cc:142 +#: apt-pkg/pkgcache.cc:153 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "" -#: apt-pkg/pkgcache.cc:147 +#: apt-pkg/pkgcache.cc:158 msgid "The package cache was built for a different architecture" msgstr "" -#: apt-pkg/pkgcache.cc:218 +#: apt-pkg/pkgcache.cc:229 msgid "Depends" msgstr "" -#: apt-pkg/pkgcache.cc:218 +#: apt-pkg/pkgcache.cc:229 msgid "PreDepends" msgstr "" -#: apt-pkg/pkgcache.cc:218 +#: apt-pkg/pkgcache.cc:229 msgid "Suggests" msgstr "" -#: apt-pkg/pkgcache.cc:219 +#: apt-pkg/pkgcache.cc:230 msgid "Recommends" msgstr "" -#: apt-pkg/pkgcache.cc:219 +#: apt-pkg/pkgcache.cc:230 msgid "Conflicts" msgstr "" -#: apt-pkg/pkgcache.cc:219 +#: apt-pkg/pkgcache.cc:230 msgid "Replaces" msgstr "" -#: apt-pkg/pkgcache.cc:220 +#: apt-pkg/pkgcache.cc:231 msgid "Obsoletes" msgstr "" -#: apt-pkg/pkgcache.cc:231 +#: apt-pkg/pkgcache.cc:242 msgid "important" msgstr "" -#: apt-pkg/pkgcache.cc:231 +#: apt-pkg/pkgcache.cc:242 msgid "required" msgstr "" -#: apt-pkg/pkgcache.cc:231 +#: apt-pkg/pkgcache.cc:242 msgid "standard" msgstr "" -#: apt-pkg/pkgcache.cc:232 +#: apt-pkg/pkgcache.cc:243 msgid "optional" msgstr "" -#: apt-pkg/pkgcache.cc:232 +#: apt-pkg/pkgcache.cc:243 msgid "extra" msgstr "" @@ -2186,7 +2189,7 @@ msgstr "" msgid "Opening %s" msgstr "" -#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450 #, c-format msgid "Line %u too long in source list %s." msgstr "" @@ -2272,12 +2275,12 @@ msgstr "" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" -#: apt-pkg/init.cc:120 +#: apt-pkg/init.cc:125 #, c-format msgid "Packaging system '%s' is not supported" msgstr "" -#: apt-pkg/init.cc:136 +#: apt-pkg/init.cc:141 msgid "Unable to determine a suitable packaging system type" msgstr "" @@ -2320,110 +2323,125 @@ msgstr "" msgid "Error occurred while processing %s (NewPackage)" msgstr "" -#: apt-pkg/pkgcachegen.cc:131 +#: apt-pkg/pkgcachegen.cc:134 #, c-format msgid "Error occurred while processing %s (UsePackage1)" msgstr "" -#: apt-pkg/pkgcachegen.cc:152 +#: apt-pkg/pkgcachegen.cc:157 +#, c-format +msgid "Error occured while processing %s (NewFileDesc1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:182 #, c-format msgid "Error occurred while processing %s (UsePackage2)" msgstr "" -#: apt-pkg/pkgcachegen.cc:156 +#: apt-pkg/pkgcachegen.cc:186 #, c-format msgid "Error occurred while processing %s (NewFileVer1)" msgstr "" -#: apt-pkg/pkgcachegen.cc:186 +#: apt-pkg/pkgcachegen.cc:217 #, c-format msgid "Error occurred while processing %s (NewVersion1)" msgstr "" -#: apt-pkg/pkgcachegen.cc:190 +#: apt-pkg/pkgcachegen.cc:221 #, c-format msgid "Error occurred while processing %s (UsePackage3)" msgstr "" -#: apt-pkg/pkgcachegen.cc:194 +#: apt-pkg/pkgcachegen.cc:225 #, c-format msgid "Error occurred while processing %s (NewVersion2)" msgstr "" -#: apt-pkg/pkgcachegen.cc:209 +#: apt-pkg/pkgcachegen.cc:249 +#, c-format +msgid "Error occured while processing %s (NewFileDesc2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:255 msgid "Wow, you exceeded the number of package names this APT is capable of." msgstr "" -#: apt-pkg/pkgcachegen.cc:212 +#: apt-pkg/pkgcachegen.cc:258 msgid "Wow, you exceeded the number of versions this APT is capable of." msgstr "" -#: apt-pkg/pkgcachegen.cc:215 +#: apt-pkg/pkgcachegen.cc:261 +msgid "Wow, you exceeded the number of descriptions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:264 msgid "Wow, you exceeded the number of dependencies this APT is capable of." msgstr "" -#: apt-pkg/pkgcachegen.cc:243 +#: apt-pkg/pkgcachegen.cc:292 #, c-format msgid "Error occurred while processing %s (FindPkg)" msgstr "" -#: apt-pkg/pkgcachegen.cc:256 +#: apt-pkg/pkgcachegen.cc:305 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" msgstr "" -#: apt-pkg/pkgcachegen.cc:262 +#: apt-pkg/pkgcachegen.cc:311 #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "" -#: apt-pkg/pkgcachegen.cc:576 +#: apt-pkg/pkgcachegen.cc:681 #, c-format msgid "Couldn't stat source package list %s" msgstr "" -#: apt-pkg/pkgcachegen.cc:660 +#: apt-pkg/pkgcachegen.cc:765 msgid "Collecting File Provides" msgstr "" -#: apt-pkg/pkgcachegen.cc:787 apt-pkg/pkgcachegen.cc:794 +#: apt-pkg/pkgcachegen.cc:892 apt-pkg/pkgcachegen.cc:899 msgid "IO Error saving source cache" msgstr "" -#: apt-pkg/acquire-item.cc:126 +#: apt-pkg/acquire-item.cc:130 #, c-format msgid "rename failed, %s (%s -> %s)." msgstr "" -#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +#: apt-pkg/acquire-item.cc:408 apt-pkg/acquire-item.cc:658 +#: apt-pkg/acquire-item.cc:1402 msgid "MD5Sum mismatch" msgstr "" -#: apt-pkg/acquire-item.cc:640 +#: apt-pkg/acquire-item.cc:1097 msgid "There are no public key available for the following key IDs:\n" msgstr "" -#: apt-pkg/acquire-item.cc:753 +#: apt-pkg/acquire-item.cc:1210 #, 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 "" -#: apt-pkg/acquire-item.cc:812 +#: apt-pkg/acquire-item.cc:1269 #, c-format msgid "" "I wasn't able to locate file for the %s package. This might mean you need to " "manually fix this package." msgstr "" -#: apt-pkg/acquire-item.cc:848 +#: apt-pkg/acquire-item.cc:1305 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." msgstr "" -#: apt-pkg/acquire-item.cc:935 +#: apt-pkg/acquire-item.cc:1392 msgid "Size mismatch" msgstr "" @@ -2432,92 +2450,94 @@ msgstr "" msgid "Vendor block %s contains no fingerprint" msgstr "" -#: apt-pkg/cdrom.cc:507 +#: apt-pkg/cdrom.cc:531 #, c-format msgid "" "Using CD-ROM mount point %s\n" "Mounting CD-ROM\n" msgstr "" -#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +#: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622 msgid "Identifying.. " msgstr "" -#: apt-pkg/cdrom.cc:541 +#: apt-pkg/cdrom.cc:565 #, c-format msgid "Stored label: %s \n" msgstr "" -#: apt-pkg/cdrom.cc:561 +#: apt-pkg/cdrom.cc:585 #, c-format msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:579 +#: apt-pkg/cdrom.cc:603 msgid "Unmounting CD-ROM\n" msgstr "" -#: apt-pkg/cdrom.cc:583 +#: apt-pkg/cdrom.cc:607 msgid "Waiting for disc...\n" msgstr "" #. Mount the new CDROM -#: apt-pkg/cdrom.cc:591 +#: apt-pkg/cdrom.cc:615 msgid "Mounting CD-ROM...\n" msgstr "" -#: apt-pkg/cdrom.cc:609 +#: apt-pkg/cdrom.cc:633 msgid "Scanning disc for index files..\n" msgstr "" -#: apt-pkg/cdrom.cc:647 +#: apt-pkg/cdrom.cc:673 #, c-format -msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgid "" +"Found %i package indexes, %i source indexes, %i translation indexes and %i " +"signatures\n" msgstr "" -#: apt-pkg/cdrom.cc:710 +#: apt-pkg/cdrom.cc:737 msgid "That is not a valid name, try again.\n" msgstr "" -#: apt-pkg/cdrom.cc:726 +#: apt-pkg/cdrom.cc:753 #, c-format msgid "" "This disc is called: \n" "'%s'\n" msgstr "" -#: apt-pkg/cdrom.cc:730 +#: apt-pkg/cdrom.cc:757 msgid "Copying package lists..." msgstr "" -#: apt-pkg/cdrom.cc:754 +#: apt-pkg/cdrom.cc:783 msgid "Writing new source list\n" msgstr "" -#: apt-pkg/cdrom.cc:763 +#: apt-pkg/cdrom.cc:792 msgid "Source list entries for this disc are:\n" msgstr "" -#: apt-pkg/cdrom.cc:803 +#: apt-pkg/cdrom.cc:832 msgid "Unmounting CD-ROM..." msgstr "" -#: apt-pkg/indexcopy.cc:261 +#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830 #, c-format msgid "Wrote %i records.\n" msgstr "" -#: apt-pkg/indexcopy.cc:263 +#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "" -#: apt-pkg/indexcopy.cc:266 +#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "" -#: apt-pkg/indexcopy.cc:269 +#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" @@ -2572,6 +2592,10 @@ msgstr "" msgid "Completely removed %s" msgstr "" +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "" + #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "" @@ -2779,6 +2779,27 @@ msgstr "Неуспех при премахването на %s" msgid "Connection closed prematurely" msgstr "Връзката прекъсна преждевременно" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s няма запис „override“\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s няма запис „override“\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Неуспех при отварянето на файла %s" + #~ msgid "Reading file list" #~ msgstr "Четене на списъка с файлове" @@ -2552,3 +2552,23 @@ msgstr "Ne mogu ukloniti %s" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "" @@ -2768,6 +2768,27 @@ msgstr "No es pot eliminar %s" msgid "Connection closed prematurely" msgstr "La connexió s'ha tancat prematurament" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s no té una entrada dominant\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s no té una entrada dominant\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "No s'ha pogut obrir el fitxer %s" + #~ msgid "Reading file list" #~ msgstr "S'està llegint la llista de fitxers" @@ -2729,6 +2729,27 @@ msgstr "Kompletně odstraněn %s" msgid "Connection closed prematurely" msgstr "Spojení bylo předčasně ukončeno" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s nemá žádnou položku pro override\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nemá žádnou položku pro override\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Nemohu otevřít soubor %s" + #~ msgid "Reading file list" #~ msgstr "Čtu seznam souborů" @@ -2837,6 +2837,27 @@ msgstr "Methwyd dileu %s" msgid "Connection closed prematurely" msgstr "Caewyd y cysylltiad yn gynnar" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " Does dim cofnod gwrthwneud gan %s\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " Does dim cofnod gwrthwneud gan %s\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Methwyd agor ffeil %s" + #, fuzzy #~ msgid "Reading file list" #~ msgstr "Yn Darllen Rhestr Ffeiliau" @@ -2744,6 +2744,27 @@ msgstr "Kunne ikke slette %s" msgid "Connection closed prematurely" msgstr "Forbindelsen lukkedes for hurtigt" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s har ingen tvangs-post\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s har ingen tvangs-post\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Kunne ikke bne filen %s" + #~ msgid "Reading file list" #~ msgstr "Indlser fillisten" @@ -2798,6 +2798,27 @@ msgstr "Konnte %s nicht entfernen" msgid "Connection closed prematurely" msgstr "Verbindung zu früh beendet" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s hat keinen Eintrag in der Override-Liste.\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s hat keinen Eintrag in der Override-Liste.\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Konnte Datei %s nicht öffnen" + #~ msgid "Reading file list" #~ msgstr "Paketlisten werden gelesen" @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: apt_po.pot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-06-20 12:50+0530\n" +"POT-Creation-Date: 2006-09-12 11: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" "MIME-Version: 1.0\n" @@ -152,7 +152,7 @@ msgstr "%4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s་གི་དོན་ལུ་%s %sགུར་ཕྱོགས་སྒྲིག་འབད་ཡོད་པའི་%s %s\n" @@ -432,115 +432,128 @@ msgstr "སེལ་འཐུ་ཚུ་མཐུན་སྒྲིག་མི msgid "Some files are missing in the package file group `%s'" msgstr "ཡིག་སྣོད་ལ་ལུ་ཅིག་ཐུམ་སྒྲིལ་ཡིག་སྣོད་སྡེ་ཚན་`%s'ནང་བརླག་སྟོར་ཞུགས་ནུག" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "ཌི་བི་ངན་ཅན་བྱུང་ནུག་ %s.རྒསཔ་ལུ་ཡིག་སྣོད་འདི་བསྐྱར་མིང་བཏགས་ཡི།" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "ཌི་བི་འདི་རྙིངམ་ཨིན་པས་ %s་ཡར་བསྐྱེད་འབད་ནིའི་དོན་ལུ་དཔའ་བཅམ་དོ།" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"ཌི་བི་རྩ་སྒྲིག་འདི་ ནུས་མེད་ཨིན་པས། ཁྱོད་ཀྱི་ apt་ གྱི་འཐོན་རིམ་རྙིངམ་ཅིག་ནང་ལས་ ཡར་བསྐྱེད་འབད་ཡོད་" +"པ་ཅིན་ རྩ་བསྐྲད་གཏང་ཞིནམ་ལས་ གནད་སྡུད་གཞི་རྟེན་འདི་ ལོག་དེ་གསར་བསྐྲུན་འབད། " + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "%s: %s་ཌི་བི་ཡིག་སྣོད་འདི་ཁ་ཕྱེ་མ་ཚུགས།" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "ཡིག་སྣོད་ཚེས་གྲངས་འདི་གིས་%sདེ་བསྒྱུར་བཅོས་འབད་ནུག" +msgid "Failed to stat %s" +msgstr "%s་སིཊེཊི་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "ཡིག་མཛོད་འདི་ལུ་ཚད་འཛིན་དྲན་ཐོ་མིན་འདུག" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "འོད་རྟགས་ལེན་མ་ཚུགས།" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "ཌབ་ལུ:%sསྣོད་ཐོ་འདི་ལྷག་མ་ཚུགས།\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "ཌབ་ལུ་ %s སིཊེཊི་འབད་མ་ཚུགས།\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "ཨི:" -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "ཌབ་ལུ:" -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "ཨི:འཛོལ་བ་ཚུ་ཡིག་སྣོད་ལུ་འཇུག་སྤྱོད་འབད།" -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "%s་མོས་མཐུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "རྩ་འབྲེལ་ཕྱིར་བགྲོད་འབད་ནི་ལུ་འཐུ་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "%s་ག་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " DeLink %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "%s་འབྲེལ་ལམ་ལྷག་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "%s་འབྲེལ་ལམ་མེད་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** %s་ལས་%sལུ་འབྲེལ་འཐུད་འབད་ནི་འཐུས་ཤོར་བྱུང་ཡོདཔ།" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr "%sB་ཧེང་བཀལ་བཀྲམ་ནིའི་འབྲེལ་མེད་བཅད་མཚམས།\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "%s་སིཊེཊི་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ།" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "ཡིག་མཛོད་ལུ་ཐུམ་སྒྲིལ་ཅི་ཡང་འཐུས་ཤོར་མ་བྱུང་།" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %sལུ་ཟུར་བཞག་ཐོ་བཀོད་མེད།\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " %s ་རྒྱུན་སྐྱོང་པ་འདི་ %s ཨིན་ %s མེན།\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s ལུ་འབྱུང་ཁུངས་མེདཔ་གཏང་ནིའི་ཐོ་བཀོད་འདི་མེད།\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %sལུ་ཟུང་ལྡན་མེདཔ་གཏང་ནིའི་་ཐོ་བཀོད་གང་རུང་ཡང་མིན་འདུག།\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -803,11 +816,11 @@ msgstr "ཐུམ་སྒྲིལ་ཚུ་རྩ་བསྐྲད་བཏ msgid "Internal error, Ordering didn't finish" msgstr "ནང་འཁོད་འཛོལ་བ་ གོ་རིམ་བཟོ་ནི་ཚུ་མཇུག་མ་བསྡུ་བས།" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 msgid "Unable to lock the download directory" msgstr "ཕབ་ལེན་འབད་ནིའི་སྣོད་ཡིག་འདི་ལྡེ་མིག་རྐྱབས་མ་ཚུགས་པས།" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "འབྱུང་ཁུངས་ཚུ་ཀྱི་ཐོ་ཡིག་དེ་ལྷག་མི་ཚུགས་པས།" @@ -838,7 +851,7 @@ msgstr "ཁ་སྐོང་གི་%sB་འདི་བཤུབ་པའི msgid "After unpacking %sB disk space will be freed.\n" msgstr "%sB་འདི་ཤུབ་པའི་ཤུལ་ལས་ཀྱི་བར་སྟོང་དེ་དལཝ་སྦེ་ལུས་འོང་།\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 #, c-format msgid "Couldn't determine free space in %s" msgstr "%s་ནང་བར་སྟོང་" @@ -875,7 +888,7 @@ msgstr "བར་བཤོལ་འབད།" msgid "Do you want to continue [Y/n]? " msgstr "ཁྱོན་ཀྱི་འཕྲོ་མཐུད་ནི་འབད་ནི་ཨིན་ན་[Y/n]?" -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 #, c-format msgid "Failed to fetch %s %s\n" msgstr "%s %s་ ལེན་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།\n" @@ -884,7 +897,7 @@ msgstr "%s %s་ ལེན་ནི་ལུ་འཐུས་ཤོར་བ msgid "Some files failed to download" msgstr "ཡིག་སྣོད་ལ་ལུ་ཅིག་ཕབ་ལེན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 msgid "Download complete and in download only mode" msgstr "ཕབ་ལེན་ཐབས་ལམ་རྐྱངམ་གཅིག་ནང་མཇུག་བསྡུཝ་སྦེ་རང་ཕབ་ལེན་འབད།" @@ -1057,114 +1070,114 @@ msgstr "ཆད་པ་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚ msgid "The following extra packages will be installed:" msgstr "འོག་གི་ཐུམ་སྒྲིལ་ཐེབས་ཚུ་གཞི་བཙུགས་འབད་འོང་:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1692 msgid "Suggested packages:" msgstr "བསམ་འཆར་བཀོད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1693 msgid "Recommended packages:" msgstr "འོས་སྦྱོར་འབད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1713 msgid "Calculating upgrade... " msgstr "ཡར་བསྐྱེད་རྩིས་བཏོན་དོ་... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "འཐུས་ཤོར་བྱུང་ཡོད།" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1721 msgid "Done" msgstr "འབད་ཚར་ཡི།" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 msgid "Internal error, problem resolver broke stuff" msgstr "ནང་འཁོད་འཛོལ་བ་ དཀའ་ངལ་མོས་མཐུན་འབད་མི་ཅ་ཆས་ཚུ་མེདཔ་ཐལ་ཡོད།" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1894 msgid "Must specify at least one package to fetch source for" msgstr "གི་དོན་ལུ་འབྱུང་ཁུངས་ལེན་ནི་ལུ་ཉུང་མཐའ་རང་ཐུམ་སྒྲིལ་གཅིག་ལེན་དགོ" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 #, c-format msgid "Unable to find a source package for %s" msgstr "%s་གི་དོན་ལུ་འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་ཅིག་འཚོལ་མ་འཐོབ" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1968 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "གོམ་འགྱོ་གིས་ཧེ་མ་ལས་རང་'%s'་ཡིག་སྣོད་དེ་ཕབ་ལེན་འབད་ནུག\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1992 #, c-format msgid "You don't have enough free space in %s" msgstr " %s་ནང་ཁྱོད་ལུ་བར་སྟོང་ཚུ་ལངམ་སྦེ་མིན་འདུག་" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1997 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "%sB་ལེན་དགོཔ་འདུག་ འབྱུང་ཁུངས་ཡིག་མཛོད་ཀྱི་%sB།\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:2000 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "འབྱུང་ཁུངས་ཡིག་མཛོད་ཚུ་ཀྱི་%sB་ལེན་དགོ་པསས།\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:2006 #, c-format msgid "Fetch source %s\n" msgstr "%s་འབྱུང་ཁུངས་ལེན།\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2037 msgid "Failed to fetch some archives." msgstr "ཡིག་མཛོད་ལ་ལུ་ཅིག་ལེན་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2065 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "%s་ནང་ཧེ་མ་ལས་སྦུང་ཚན་བཟོ་བཤོལ་ཨིན་མའི་སྦུང་ཚན་བཟོ་བཤོལ་གོམ་འགྱོ་འབད་དོ།\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2077 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "'%s'སྦུང་ཚན་བཟོ་བཤོལ་འཐུས་ཤོར་བྱུང་ཡོད།\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2078 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "'dpkg-dev'་ཐུམ་སྒྲིལ་དེ་གཞི་བཙུགས་འབད་ཡོད་པ་ཅིན་ཨེབ་གཏང་འབད།\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Build command '%s' failed.\n" msgstr "'%s'་བཟོ་བརྩིགས་བརྡ་བཀོད་འཐུས་ཤོར་བྱུང་ཡོད།\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2114 msgid "Child process failed" msgstr "ཆ་ལག་ལས་སྦྱོར་དེ་འཐུས་ཤོར་བྱུང་ནུག" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2130 msgid "Must specify at least one package to check builddeps for" msgstr "builddeps ཞིབ་དཔྱད་འབད་ནིའི་དོན་ལུ་ཉུང་མཐའ་རང་ཐུམ་སྒྲིལ་གཅིག་གསལ་བཀོད་འབད་དགོ" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2158 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "%s་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་བརྡ་དོན་དེ་ལེན་མ་ཚུགས།" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2178 #, c-format msgid "%s has no build depends.\n" msgstr "%s ལུ་བཟོ་བརྩིགས་རྟེན་འབྲེལ་མིན་འདུག\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2230 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "%sཐུམ་སྒྲིལ་འདི་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་ %sགི་དོན་ལུ་%s རྟེན་འབྲེལ་དེ་ངལ་རང་མ་ཚུགས་པས།" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2282 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1173,32 +1186,32 @@ msgstr "" "%s གི་དོན་ལུ་%s་རྟེན་འབྲེལ་འདི་གི་རེ་བ་སྐོང་མི་ཚུགས་ནུག་ག་ཅི་འབད་ཟེར་བ་ཅིན་ཐུམ་སྒརིལ་%s་གི་འཐོན་རིམ་" "ཚུ་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་འཐོན་རིམ་དགོས་མཁོ་ཚུ་གི་རེ་བ་དོ་སྐོང་མ་ཚུགས་པས།" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2317 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "%s:གི་དོན་ལུ་%s་རྟེན་འབྲེལ་དེ་གི་རེ་བ་སྐོང་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན་ གཞི་བཙུགས་འབད་ཡོད་པའི་ཐུམ་" "སྒྲིལ་%s་དེ་གནམ་མེད་ས་མེད་གསརཔ་ཨིན་པས།" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2342 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "%s: %s་གི་དོན་ལུ་་%s་རྟེན་འབྲེལ་འདི་ངལ་རངས་འབད་ནི་འཐུས་ཤོར་བྱུང་ནུག" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2356 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr " %s་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་འདི་ངལ་རངས་མ་ཚུགས་པས།" -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2360 msgid "Failed to process build dependencies" msgstr "བཟོ་བརྩིགས་རྟེན་འབྲེལ་འདི་ལས་སྦྱོར་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2392 msgid "Supported modules:" msgstr "རྒྱབ་སྐྱོར་འབད་ཡོད་པའི་ཚད་གཞི་ཚུ:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2433 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1387,19 +1400,19 @@ msgstr "འཐོབ་ཚུགས་པའི་བརྡ་དོན་མཉ msgid "Failed to create pipes" msgstr "རྒྱུད་དུང་ཚུ་གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "ཇི་ཛིཔ་འདི་ལག་ལེན་འཐབ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "ངན་ཅན་གྱི་ཡིག་མཛོད།" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "ཊར་ཅེག་སམ་དེ་འཐུས་ཤོར་བྱུང་ཡོད་ ཡིག་མཛོད་ངན་ཅན་བྱུང་ནུག" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "མ་ཤེས་པའི་ ཊཱར་་མགོ་ཡིག་་དབྱེ་བ་ %u་ འཐུས་མི་ %s།" @@ -1679,12 +1692,12 @@ msgstr "ཌིཀསི་དེ་འཚོལ་མ་ཐོབ།" msgid "File not found" msgstr "ཡིག་སྣོད་འཚོལ་མ་ཐོབ།" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 msgid "Failed to stat" msgstr "ངོ་བཤུས་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 msgid "Failed to set modification time" msgstr "ཆུ་ཚོད་ལེགས་བཅོས་གཞི་སྒྲིག་འབཐ་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།" @@ -1896,44 +1909,44 @@ msgstr "'%s:%s' (%i)་མོས་མཐུན་འབདཝ་ད་ངན་ msgid "Unable to connect to %s %s:" msgstr "%s %s:ལུ་མཐུད་མ་ཚུགས།" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "'%s'ལྡེ་འཁོར་འདི་འཛུལ་སྤྱོད་འབད་མ་ཚུགས།" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" "E: Acquire::gpgv::Options་ནང་ལས་ཀྱི་སྒྲུབ་རྟགས་ཀྱི་ཐོ་ཡིག་དེ་གནམ་མེད་ས་མེད་རིངམ་འདུག ཕྱིར་" "འཐོན་དོ།" -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" "ནང་འཁོད་འཛོལ་བ: མིང་རྟགས་འདི་ལེགས་ཤོམ་ཅིག་འདུག་ འདི་འབདཝ་ད་མཛུབ་རྗེས་ལྡེ་མིག་དེ་གཏན་འབེབས་བཟོ་" "མ་ཚུགས?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "ཉུང་མཐའ་རང་ནུས་མེད་ཀྱི་མིང་རྟགས་ཅིག་གདོང་ཐུག་བྱུང་སྟེ་ཡོདཔ་ཨིན།" -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "" "མིང་རྟགས་བདེན་སྦྱོར་འབད་ནི་ལུ་'%s'འདི་ལག་ལེན་འཐབ་མ་ཚུགས། (gnupg་དེ་ཁཞི་བཙུགས་འབད་ཡོདཔ་ཨིན་" "ན།?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "gpgv་ལག་ལེན་འཐབ་ནི་ལུ་མ་ཤེས་པའི་འཛོལ་བ་།" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "འོག་གི་མིང་རྟགས་ཚུ་ནུས་མེད་ཨིན་པས།:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2311,12 +2324,12 @@ msgstr "མི་ངོ་འཐོན་རིམཚུ།" msgid "Dependency generation" msgstr "བརྟེན་པའི་བཟོ་བཏོན།" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "%s (༡་)་ཐུམ་སྒྲིལ་ཡིག་སྣོད་འདི་མིང་དཔྱད་འབད་མ་ཚུགས།" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "%s (༢་)་ཐུམ་སྒྲིལ་ཡིག་སྣོད་འདི་མིང་དཔྱད་འབད་མ་ཚུགས།" @@ -2760,3 +2773,7 @@ msgstr "%s མཇུག་བསྡུཝ་སྦེ་རང་རྩ་བས #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "དུས་སུ་མ་འབབ་པ་རང་མཐུད་ལམ་འདི་ག་བསྡམས་ཡོད།" + +#~ msgid "File date has changed %s" +#~ msgstr "ཡིག་སྣོད་ཚེས་གྲངས་འདི་གིས་%sདེ་བསྒྱུར་བཅོས་འབད་ནུག" + @@ -2788,6 +2788,27 @@ msgstr "Αποτυχία διαγραφής του %s" msgid "Connection closed prematurely" msgstr "Η σύνδεση έκλεισε πρόωρα" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s δεν περιέχει εγγραφή παράκαμψης\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s δεν περιέχει εγγραφή παράκαμψης\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Αδύνατο το άνοιγμα του αρχείου %s" + #~ msgid "Reading file list" #~ msgstr "Ανάγνωση Λιστών Αρχείων" diff --git a/po/en_GB.po b/po/en_GB.po index 34d1bdecb..4ff5bba65 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -2730,6 +2730,27 @@ msgstr "Failed to remove %s" msgid "Connection closed prematurely" msgstr "Connection closed prematurely" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s has no override entry\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s has no override entry\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Could not open file %s" + #~ msgid "Reading file list" #~ msgstr "Reading file list" @@ -2779,6 +2779,27 @@ msgstr "No pude borrar %s" msgid "Connection closed prematurely" msgstr "La conexin se cerr prematuramente" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s no tiene entrada de predominio\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s no tiene entrada de predominio\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "No pude abrir el fichero %s" + #~ msgid "Reading file list" #~ msgstr "Leyendo Lista de Archivos" @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_eu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-06-17 00:10+0200\n" +"POT-Creation-Date: 2006-09-12 11:18+0200\n" +"PO-Revision-Date: 2006-09-27 13:59+0200\n" "Last-Translator: Piarres Beobide <pi@beobide.net>\n" "Language-Team: librezale <librezale@librezale.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.2\n" +"X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "\n" @@ -153,7 +153,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s (%s %s) konpilatua: %s %s\n" @@ -233,8 +233,7 @@ msgstr "" #: cmdline/apt-cdrom.cc:78 msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" -msgstr "" -"Mesedez idatzi izen bat diska honentzat, 'Debian 2.1r1 1 Diska' antzerakoan" +msgstr "Mesedez idatzi izen bat diska honentzat, 'Debian 2.1r1 1 Diska' antzerakoan" #: cmdline/apt-cdrom.cc:93 msgid "Please insert a Disc in the drive and press enter" @@ -426,115 +425,128 @@ msgstr "Ez dago bat datorren hautapenik" msgid "Some files are missing in the package file group `%s'" msgstr "Fitxategi batzuk falta dira `%s' pakete-fitxategien taldean" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "Datu-basea hondatuta dago; fitxategiari %s.old izena jarri zaio" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "Datu-basea zaharra da; %s bertsio-berritzen saiatzen ari da" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"DB formatu baliogabe da. Apt bertsio zaharrago batetik eguneratu baduzu, " +"mesedez datubasea ezabatu eta birsortu." + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Ezin da ireki %s datu-base fitxategia: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Fitxategi-data aldatu egin da: %s" +msgid "Failed to stat %s" +msgstr "Huts egin du %s(e)tik datuak lortzean" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "Artxiboak ez du kontrol-erregistrorik" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Ezin da kurtsorerik eskuratu" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "A: Ezin da %s direktorioa irakurri\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "A: Ezin da %s atzitu\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "A: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Erroreak fitxategiari dagozkio " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Huts egin du %s ebaztean" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "Huts egin dute zuhaitz-urratsek" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Huts egin du %s irekitzean" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " DeLink %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Huts egin du %s esteka irakurtzean" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "Huts egin du %s desestekatzean" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Ezin izan da %s %s(r)ekin estekatu" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " DeLink-en mugara (%sB) heldu da.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Huts egin du %s(e)tik datuak lortzean" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "Artxiboak ez du pakete-eremurik" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s: ez du override sarrerarik\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " %s mantentzailea %s da, eta ez %s\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s: ez du jatorri gainidazketa sarrerarik\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s: ez du bitar gainidazketa sarrerarik\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -795,11 +807,11 @@ msgstr "Paketeak ezabatu beharra dute bain Ezabatzea ezgaiturik dago." msgid "Internal error, Ordering didn't finish" msgstr "Barne errorea, ez da ordenatzeaz amaitu" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 msgid "Unable to lock the download directory" msgstr "Ezin da deskarga-direktorioa blokeatu" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Ezin izan da iturburu-zerrenda irakurri." @@ -830,7 +842,7 @@ msgstr "Deskonprimitu ondoren, %sB gehiago erabiliko dira diskoan.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Deskonprimitu ondoren, %sB libratuko dira diskoan.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 #, c-format msgid "Couldn't determine free space in %s" msgstr "Ezin da %s(e)n duzun leku librea atzeman." @@ -867,7 +879,7 @@ msgstr "Abortatu." msgid "Do you want to continue [Y/n]? " msgstr "Aurrera jarraitu nahi al duzu [B/e]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Ezin da lortu %s %s\n" @@ -876,7 +888,7 @@ msgstr "Ezin da lortu %s %s\n" msgid "Some files failed to download" msgstr "Fitxategi batzuk ezin izan dira deskargatu" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 msgid "Download complete and in download only mode" msgstr "Deskarga amaituta eta deskarga soileko moduan" @@ -1048,117 +1060,114 @@ msgstr "Hautsitako paketeak" msgid "The following extra packages will be installed:" msgstr "Ondorengo pakete gehigarriak instalatuko dira:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1692 msgid "Suggested packages:" msgstr "Iradokitako paketeak:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1693 msgid "Recommended packages:" msgstr "Gomendatutako paketeak:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1713 msgid "Calculating upgrade... " msgstr "Berriketak kalkulatzen... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Huts egin du" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1721 msgid "Done" msgstr "Eginda" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 msgid "Internal error, problem resolver broke stuff" msgstr "Barne Errorea, arazo konpontzaileak zerbait apurtu du" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1894 msgid "Must specify at least one package to fetch source for" msgstr "Gutxienez pakete bat zehaztu behar duzu iturburua lortzeko" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 #, c-format msgid "Unable to find a source package for %s" msgstr "Ezin da iturburu-paketerik aurkitu %s(r)entzat" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1968 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Dagoeneko deskargaturiko '%s' fitxategia saltatzen\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1992 #, c-format msgid "You don't have enough free space in %s" msgstr "Ez daukazu nahikoa leku libre %s(e)n." -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1997 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Iturburu-artxiboetako %sB/%sB eskuratu behar dira.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:2000 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Iturburu-artxiboetako %sB eskuratu behar dira.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:2006 #, c-format msgid "Fetch source %s\n" msgstr "Eskuratu %s iturubura\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2037 msgid "Failed to fetch some archives." msgstr "Huts egin du zenbat artxibo lortzean." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2065 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" -msgstr "" -"%s(e)n dagoeneko deskonprimitutako iturburua deskonprimitzea saltatzen\n" +msgstr "%s(e)n dagoeneko deskonprimitutako iturburua deskonprimitzea saltatzen\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2077 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Deskonprimitzeko '%s' komandoak huts egin du.\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2078 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Egiaztattu 'dpkg-dev' paketea instalaturik dagoen.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Build command '%s' failed.\n" msgstr "Eraikitzeko '%s' komandoak huts egin du.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2114 msgid "Child process failed" msgstr "Prozesu umeak huts egin du" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2130 msgid "Must specify at least one package to check builddeps for" -msgstr "" -"Gutxienez pakete bat zehaztu behar duzu eraikitze-mendekotasunak egiaztatzeko" +msgstr "Gutxienez pakete bat zehaztu behar duzu eraikitze-mendekotasunak egiaztatzeko" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2158 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Ezin izan da %s(r)en eraikitze-mendekotasunen informazioa eskuratu" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2178 #, c-format msgid "%s has no build depends.\n" msgstr "%s: ez du eraikitze-mendekotasunik.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2230 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" -msgstr "" -"%2$s(r)en %1$s mendekotasuna ezin da bete, %3$s paketea ezin delako aurkitu" +msgstr "%2$s(r)en %1$s mendekotasuna ezin da bete, %3$s paketea ezin delako aurkitu" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2282 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1167,32 +1176,32 @@ msgstr "" "%2$s(r)en %1$s mendekotasuna ezin da bete, ez baitago bertsio-eskakizunak " "betetzen dituen %3$s paketearen bertsio erabilgarririk" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2317 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: instalatutako %3$s " "paketea berriegia da" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2342 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: %3$s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2356 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "%s(r)en eraikitze-mendekotasunak ezin izan dira bete." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2360 msgid "Failed to process build dependencies" msgstr "Huts egin du eraikitze-mendekotasunak prozesatzean" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2392 msgid "Supported modules:" msgstr "Onartutako Moduluak:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2433 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1359,8 +1368,7 @@ msgid "or errors caused by missing dependencies. This is OK, only the errors" msgstr "edo falta diren mendekotasunen erroreak. Hori ondo dago; mezu honen" #: dselect/install:103 -msgid "" -"above this message are important. Please fix them and run [I]nstall again" +msgid "above this message are important. Please fix them and run [I]nstall again" msgstr "" "aurreko erroreak dira garrantzitsuak. Konpondu eta exekutatu [I]nstall " "berriro" @@ -1373,19 +1381,19 @@ msgstr "Eskuragarrien datuak biltzen" msgid "Failed to create pipes" msgstr "Huts egin du kanalizazioak sortzean" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Huts egin du gzip exekutatzean " -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Hondatutako artxiboa" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Tar egiaztapenak huts egin, hondatutakofitxategia" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "%u TAR goiburu-mota ezezaguna, %s kidea" @@ -1616,8 +1624,7 @@ msgstr "Ez da baliozko DEB artxiboa; '%s' kidea falta da" #: apt-inst/deb/debfile.cc:52 #, c-format msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" -msgstr "" -"Hau ez da balioz DEB fitxategi bat, ez du ez '%s' ez '%s' atalik falta du" +msgstr "Hau ez da balioz DEB fitxategi bat, ez du ez '%s' ez '%s' atalik falta du" #: apt-inst/deb/debfile.cc:112 #, c-format @@ -1656,8 +1663,7 @@ msgstr "CD okerra" #: methods/cdrom.cc:164 #, c-format msgid "Unable to unmount the CD-ROM in %s, it may still be in use." -msgstr "" -"Ezin izan da %s(e)ko CD-ROMa desmuntatu; beharbada erabiltzen ariko da." +msgstr "Ezin izan da %s(e)ko CD-ROMa desmuntatu; beharbada erabiltzen ariko da." #: methods/cdrom.cc:169 msgid "Disk not found." @@ -1667,12 +1673,12 @@ msgstr "Ez da diska aurkitu" msgid "File not found" msgstr "Ez da fitxategia aurkitu" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 msgid "Failed to stat" msgstr "Huts egin du atzitzean" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 msgid "Failed to set modification time" msgstr "Huts egin du aldaketa-ordua ezartzean" @@ -1758,8 +1764,7 @@ msgstr "Ezin izan da socket-a sortu" #: methods/ftp.cc:698 msgid "Could not connect data socket, connection timed out" -msgstr "" -"Ezin izan da datu-socketa konektatu; konexioak denbora-muga gainditu du" +msgstr "Ezin izan da datu-socketa konektatu; konexioak denbora-muga gainditu du" #: methods/ftp.cc:704 msgid "Could not connect passive socket." @@ -1853,8 +1858,7 @@ msgstr "Ezin izan da konexioa hasi -> %s:%s (%s)." #: methods/connect.cc:93 #, c-format msgid "Could not connect to %s:%s (%s), connection timed out" -msgstr "" -"Ezin izan da konektatu -> %s:%s (%s). Konexioak denbora-muga gainditu du" +msgstr "Ezin izan da konektatu -> %s:%s (%s). Konexioak denbora-muga gainditu du" #: methods/connect.cc:108 #, c-format @@ -1888,39 +1892,37 @@ msgstr "Zerbait arraroa pasatu da '%s:%s' (%i) ebaztean" msgid "Unable to connect to %s %s:" msgstr "Ezin da konektatu -> %s %s:" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "Ezin da eraztuna ebatzi: '%s'" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "E: Acquire::gpgv::Options arguimentu zerrenda luzeegia. Uzten." -#: methods/gpgv.cc:198 -msgid "" -"Internal error: Good signature, but could not determine key fingerprint?!" +#: methods/gpgv.cc:204 +msgid "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "Barne errorea: Sinadura zuzena, baina ezin da egiaztapen marka zehaztu" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "Beintza sinadura baliogabe bat aurkitu da." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" -msgstr "" -"Ezin da %s abiarazi sinadura egiaztatzeko (gnupg instalaturik al dago?)" +msgstr "Ezin da %s abiarazi sinadura egiaztatzeko (gnupg instalaturik al dago?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Errore ezezaguna gpgv exekutatzean" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "Ondorengo sinadurak baliogabeak dira:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2114,8 +2116,7 @@ msgstr "%s aukerak argumentu bat behar du." #: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 #, c-format msgid "Option %s: Configuration item specification must have an =<val>." -msgstr "" -"%s aukera: konfigurazio-elementuaren zehaztapenak =<val> eduki behar du." +msgstr "%s aukera: konfigurazio-elementuaren zehaztapenak =<val> eduki behar du." #: apt-pkg/contrib/cmndline.cc:237 #, c-format @@ -2166,8 +2167,7 @@ msgstr "Ezin izan da %s blokeo-fitxategia ireki" #: apt-pkg/contrib/fileutl.cc:105 #, c-format msgid "Not using locking for nfs mounted lock file %s" -msgstr "" -"Ez da blokeorik erabiltzen ari nfs %s muntatutako blokeo-fitxategiarentzat" +msgstr "Ez da blokeorik erabiltzen ari nfs %s muntatutako blokeo-fitxategiarentzat" #: apt-pkg/contrib/fileutl.cc:109 #, c-format @@ -2302,12 +2302,12 @@ msgstr "Hautagaien bertsioak" msgid "Dependency generation" msgstr "Dependentzi Sormena" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Ezin da %s pakete-fitxategia analizatu (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Ezin da %s pakete-fitxategia analizatu (2)" @@ -2381,10 +2381,8 @@ msgstr "'%s' motako indize-fitxategirik ez da onartzen" #: apt-pkg/algorithms.cc:241 #, c-format -msgid "" -"The package %s needs to be reinstalled, but I can't find an archive for it." -msgstr "" -"%s paketea berriro instalatu behar da, baina ezin dut artxiborik aurkitu." +msgid "The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "%s paketea berriro instalatu behar da, baina ezin dut artxiborik aurkitu." #: apt-pkg/algorithms.cc:1059 msgid "" @@ -2586,8 +2584,7 @@ msgstr "" #: apt-pkg/acquire-item.cc:848 #, c-format -msgid "" -"The package index files are corrupted. No Filename: field for package %s." +msgid "The package index files are corrupted. No Filename: field for package %s." msgstr "" "Paketearen indize-fitxategiak hondatuta daude. 'Filename:' eremurik ez %s " "paketearentzat." @@ -2693,8 +2690,7 @@ msgstr "%i erregistro eta %i okerreko fitxategi grabaturik.\n" #: apt-pkg/indexcopy.cc:269 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" -msgstr "" -"%i erregistro, %i galdutako fitxategi eta %i okerreko fitxategi grabaturik.\n" +msgstr "%i erregistro, %i galdutako fitxategi eta %i okerreko fitxategi grabaturik.\n" #: apt-pkg/deb/dpkgpm.cc:358 #, c-format @@ -2749,3 +2745,4 @@ msgstr "%s guztiz ezabatu da" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Konexioa behar baino lehenago itxi da" + @@ -1,15 +1,15 @@ # translation of fi.po to Finnish # Finnish translation of apt. # This file is put in the public domain. -# Tapio Lehtonen <tale@debian.org>, 2004. -# -# +# Tapio Lehtonen <tale@debian.org>, 2004-2006. +# +# msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2005-02-15 14:09+0200\n" +"POT-Creation-Date: 2006-09-12 11:18+0200\n" +"PO-Revision-Date: 2006-09-29 16:06+0300\n" "Last-Translator: Tapio Lehtonen <tale@debian.org>\n" "Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n" "MIME-Version: 1.0\n" @@ -150,7 +150,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s laitealustalle %s %s käännöksen päiväys %s %s\n" @@ -230,19 +230,15 @@ msgstr "" #: cmdline/apt-cdrom.cc:78 msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" -msgstr "" +msgstr "Kirjoita levylle nimi, kuten \"Debian 2.1r1 Levy 1\"" #: cmdline/apt-cdrom.cc:93 -#, fuzzy msgid "Please insert a Disc in the drive and press enter" -msgstr "" -"Taltion vaihto: Pistä levy \n" -"\"%s\"\n" -"asemaan \"%s\" ja paina Enter\n" +msgstr "Aseta levy asemaan ja paina Enter" #: cmdline/apt-cdrom.cc:117 msgid "Repeat this process for the rest of the CDs in your set." -msgstr "" +msgstr "Toista tämä lopuille rompuille kasassasi." #: cmdline/apt-config.cc:41 msgid "Arguments not in pairs" @@ -340,7 +336,6 @@ msgid "Error processing contents %s" msgstr "Tapahtui virhe käsiteltäessä sisällysluetteloa %s" #: ftparchive/apt-ftparchive.cc:556 -#, fuzzy msgid "" "Usage: apt-ftparchive [options] command\n" "Commands: packages binarypath [overridefile [pathprefix]]\n" @@ -389,31 +384,31 @@ msgstr "" " generate asetukset [ryhmät]\n" " clean asetukset\n" "\n" -"apt-ftparchive tuottaa hakemiston Debianin arkistoista. Monta " +"apt-ftparchive tuottaa hakemistoja Debianin arkistoista. Monta " "tuottamistapaa\n" "on tuettu alkaen täysin automaattisista toiminnallisesti samoihin kuin\n" "dpkg-scanpackages ja dpkg-scansources.\n" "\n" -"apt-ftparchive tuottaa pakettitiedostoja deb-tiedostojen puusta.\n" +"apt-ftparchive tuottaa pakettitiedostoja .deb-tiedostojen puusta.\n" "Pakettitiedostossa on kunkin paketin kaikkien ohjauskenttien\n" -"sisältö sekä MD5 hajautustunnus ja tiedoston koko. Poikkeus-\n" +"sisältö sekä MD5 tiiviste ja tiedoston koko. Poikkeus-\n" "tiedostolla voidaan arvot Priority ja Section pakottaa halutuiksi.\n" "\n" "Samaan tapaan apt-ftparchive tuottaa lähdetiedostoja\n" -"dscs-tiedostojen puusta. Valitsimella --source-overrride voidaan\n" +".dscs-tiedostojen puusta. Valitsimella --source-overrride voidaan\n" "määrittää lähteiden poikkeustiedosto.\n" "\n" "Komennot \"packages\" ja \"sources\" olisi suoritettava puun juuressa.\n" -"Binääripolun olisi osoitettava rekursiivisen haun alkukohtaan ja \n" +"Binääripolun olisi osoitettava rekursiivisen haun alkukohtaan ja\n" "poikkeustiedostossa olisi oltava poikkeusilmaisimet. Polun alku\n" -"yhdistetään tiedoston nimen jos se on annettu. Esimerkki \n" +"yhdistetään tiedoston nimeen jos se on annettu. Esimerkki\n" "käytöstä Debianin arkiston kanssa:\n" " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" " dists/potato/main/binary-i386/Packages\n" "\n" "Valitsimet:\n" " -h Tämä ohje\n" -" --md5 Ohjauskentän MD5\n" +" --md5 MD5 luonti\n" " -s=? Lähteiden poikkeustdosto\n" " -q Ei tulostusta\n" " -d=? Valinnainen välimuistitietokanta\n" @@ -431,115 +426,126 @@ msgstr "Mitkään valinnat eivät täsmänneet" msgid "Some files are missing in the package file group `%s'" msgstr "Pakettitiedostojen ryhmästä \"%s\" puuttuu joitain tiedostoja" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "Tietokanta on turmeltunut, tiedosto nimetty %s.old" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "Tietokanta on vanha, yritetään päivittää %s" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "Tietokannan muoto ei kelpaa. Jos tehtiin päivitys vanhasta apt:n versiosta, on tietokanta poistettava ja luotava uudelleen." + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Tietokantatiedostoa %s ei saatu avattua: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Tiedoston uusi päiväys %s" +msgid "Failed to stat %s" +msgstr "Tiedostolle %s ei toimi stat" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "Arkistolla ei ole ohjaustietuetta" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Kohdistinta ei saada" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "W: Kansiota %s ei voi lukea\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "W: Tdstolle %s ei toimi stat\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "W: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Tiedostossa virheitä " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Osoitteen %s selvitys ei onnistunut" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "Puun läpikäynti ei onnistunut" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Tiedoston %s avaaminen ei onnistunut" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " DeLink %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "readlink %s ei onnistunut" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "unlink %s ei onnistunut" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Linkin %s -> %s luonti ei onnistunut" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " DeLinkin yläraja %st saavutettu.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Tiedostolle %s ei toimi stat" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "Arkistossa ei ollut pakettikenttää" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" -msgstr " %s: ei poikkeustietuetta\n" +msgstr " %s:llä ei ole poikkeustietuetta\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " %s ylläpitäjä on %s eikä %s\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s:llä ei ole poikkeustietuetta\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s:llä ei ole binääristäkään poikkeustietuetta\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -708,12 +714,11 @@ msgid "%s (due to %s) " msgstr "%s (syynä %s) " #: cmdline/apt-get.cc:546 -#, fuzzy msgid "" "WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" msgstr "" -"VAROITUS: Seuraavat välttämättömät paketit on merkitty poistettaviksi\n" +"VAROITUS: Seuraavat välttämättömät paketit poistetaan.\n" "Näin EI PITÄISI tehdä jos ei aivan tarkkaan tiedä mitä tekee!" #: cmdline/apt-get.cc:577 @@ -775,7 +780,7 @@ msgstr "VAROITUS: Seuraavian pakettien alkuperää ei voi varmistaa!" #: cmdline/apt-get.cc:693 msgid "Authentication warning overridden.\n" -msgstr "" +msgstr "Varoitus varmistamisesta on ohitettu.\n" #: cmdline/apt-get.cc:700 msgid "Install these packages without verification [y/N]? " @@ -791,22 +796,21 @@ msgstr "Oli pulmia ja -y käytettiin ilman valitsinta --force-yes" #: cmdline/apt-get.cc:755 msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "" +msgstr "Sisäinen virhe, InstallPackages kutsuttiin rikkinäisille paketeille!" #: cmdline/apt-get.cc:764 msgid "Packages need to be removed but remove is disabled." msgstr "Paketteja pitäisi poistaa mutta Remove ei ole käytössä." #: cmdline/apt-get.cc:775 -#, fuzzy msgid "Internal error, Ordering didn't finish" -msgstr "Tapahtui sisäinen virhe lisättäessä korvautusta" +msgstr "Tapahtui sisäinen virhe, järjestäminen keskeytyi" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 msgid "Unable to lock the download directory" msgstr "Noutokansiota ei saatu lukittua" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Lähteiden luetteloa ei pystynyt lukemaan." @@ -814,6 +818,7 @@ msgstr "Lähteiden luetteloa ei pystynyt lukemaan." #: cmdline/apt-get.cc:816 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" +"No jo on... Koot eivät täsmää, sähköpostita email apt@packages.debian.org" #: cmdline/apt-get.cc:821 #, c-format @@ -835,10 +840,10 @@ msgstr "Purkamisen jälkeen käytetään %st lisää levytilaa.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Purkamisen jälkeen vapautuu %st levytilaa.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 -#, fuzzy, c-format +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 +#, c-format msgid "Couldn't determine free space in %s" -msgstr "Kansiossa %s ei ole riittävästi vapaata tilaa" +msgstr "Kansion %s vapaan tilan määrä ei selvinnyt" #: cmdline/apt-get.cc:849 #, c-format @@ -855,13 +860,13 @@ msgid "Yes, do as I say!" msgstr "Kyllä, tee kuten käsketään!" #: cmdline/apt-get.cc:868 -#, fuzzy, c-format +#, c-format msgid "" "You are about to do something potentially harmful.\n" "To continue type in the phrase '%s'\n" " ?] " msgstr "" -"Olet aikeissa tehdä mahdollisesti vahingollisen toimenpiteen\n" +"Olet aikeissa tehdä mahdollisesti vahingollisen toimenpiteen.\n" "Jatka kirjoittamalla \"%s\"\n" " ?] " @@ -873,7 +878,7 @@ msgstr "Keskeytä." msgid "Do you want to continue [Y/n]? " msgstr "Haluatko jatkaa [K/e]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Tiedoston %s nouto ei onnistunut %s\n" @@ -882,7 +887,7 @@ msgstr "Tiedoston %s nouto ei onnistunut %s\n" msgid "Some files failed to download" msgstr "Joidenkin tiedostojen nouto ei onnistunut" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 msgid "Download complete and in download only mode" msgstr "Nouto on valmis ja määrätty vain nouto" @@ -891,7 +896,7 @@ msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -"Joidenkin arkistojen nouto ei onnistunut, ehkä \"apt-get update\"auttaa tai " +"Joidenkin arkistojen nouto ei onnistunut, ehkä \"apt-get update\" auttaa tai " "kokeile --fix-missing?" #: cmdline/apt-get.cc:990 @@ -1054,109 +1059,108 @@ msgstr "Rikkinäiset paketit" msgid "The following extra packages will be installed:" msgstr "Seuraavat ylimääräiset paketit on merkitty asennettaviksi:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1692 msgid "Suggested packages:" msgstr "Ehdotetut paketit:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1693 msgid "Recommended packages:" msgstr "Suositellut paketit:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1713 msgid "Calculating upgrade... " msgstr "Käsitellään päivitystä ... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Ei onnistunut" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1721 msgid "Done" msgstr "Valmis" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 -#, fuzzy +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 msgid "Internal error, problem resolver broke stuff" -msgstr "Sisäinen virhe, AllUpgrade rikkoi jotain" +msgstr "Sisäinen virhe, resolver rikkoi jotain" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1894 msgid "Must specify at least one package to fetch source for" msgstr "On annettava ainakin yksi paketti jonka lähdekoodi noudetaan" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 #, c-format msgid "Unable to find a source package for %s" msgstr "Paketin %s lähdekoodipakettia ei löytynyt" -#: cmdline/apt-get.cc:1950 -#, fuzzy, c-format +#: cmdline/apt-get.cc:1968 +#, c-format msgid "Skipping already downloaded file '%s'\n" -msgstr "Ohitetaan purku jo puretun lähdekoodin %s kohdalla\n" +msgstr "Ohitetaan jo noudettu tiedosto \"%s\"\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1992 #, c-format msgid "You don't have enough free space in %s" msgstr "Kansiossa %s ei ole riittävästi vapaata tilaa" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1997 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "On noudettava %st/%st lähdekoodiarkistoja.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:2000 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "On noudettava %st lähdekoodiarkistoja.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:2006 #, c-format msgid "Fetch source %s\n" msgstr "Nouda lähdekoodi %s\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2037 msgid "Failed to fetch some archives." msgstr "Joidenkin arkistojen noutaminen ei onnistunut." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2065 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Ohitetaan purku jo puretun lähdekoodin %s kohdalla\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2077 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Purkukomento \"%s\" ei onnistunut.\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2078 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "" +msgstr "Tarkista onko paketti \"dpkg-dev\" asennettu.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Build command '%s' failed.\n" msgstr "Paketointikomento \"%s\" ei onnistunut.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2114 msgid "Child process failed" msgstr "Lapsiprosessi kaatui" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2130 msgid "Must specify at least one package to check builddeps for" msgstr "" "On annettava ainakin yksi paketti jonka paketointiriippuvuudet tarkistetaan" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2158 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Paketille %s ei ole saatavilla riippuvuustietoja" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2178 #, c-format msgid "%s has no build depends.\n" msgstr "Paketille %s ei ole määritetty paketointiriippuvuuksia.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2230 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1164,7 +1168,7 @@ msgid "" msgstr "" "riippuvuutta %s paketille %s ei voi tyydyttää koska pakettia %s ei löydy" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2282 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1173,32 +1177,32 @@ msgstr "" "%s riippuvuutta paketille %s ei voi tyydyttää koska mikään paketin %s versio " "ei vastaa versioriippuvuuksia" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2317 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Riippuvutta %s paketille %s ei voi tyydyttää: Asennettu paketti %s on liian " "uusi" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2342 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Riippuvuutta %s paketille %s ei voi tyydyttää: %s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2356 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Paketointiriippuvuuksia paketille %s ei voi tyydyttää." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2360 msgid "Failed to process build dependencies" msgstr "Paketointiriippuvuuksien käsittely ei onnistunut" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2392 msgid "Supported modules:" msgstr "Tuetut moduulit:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2433 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1379,19 +1383,19 @@ msgstr "Yhdistetään saatavuustiedot" msgid "Failed to create pipes" msgstr "Putkien luonti ei onnistunut" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "exec gzip ei onnistunut" -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Arkisto on turmeltunut" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Tar-ohjelman laskema tarkistussumma ei täsmää, arkisto on turmeltunut" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Tuntematon TAR-otsikon tyyppi %u, tiedosto %s" @@ -1448,7 +1452,7 @@ msgid "Duplicate conf file %s/%s" msgstr "Asetustiedoston kaksoiskappale %s/%s" #: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 -#, fuzzy, c-format +#, c-format msgid "Failed to write file %s" msgstr "Tiedoston %s kirjoittaminen ei onnistunut" @@ -1664,20 +1668,19 @@ msgid "Unable to unmount the CD-ROM in %s, it may still be in use." msgstr "Rompun %s irrottaminen ei onnistu, se on ehkä käytössä." #: methods/cdrom.cc:169 -#, fuzzy msgid "Disk not found." -msgstr "Tiedostoa ei löydy" +msgstr "Levyä ei löydy" #: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 msgid "File not found" msgstr "Tiedostoa ei löydy" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 msgid "Failed to stat" msgstr "Komento stat ei toiminut" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 msgid "Failed to set modification time" msgstr "Tiedoston muutospäivämäärää ei saatu vaihdettua" @@ -1889,43 +1892,47 @@ msgstr "Jotain kenkkua tapahtui selvitettäessä \"%s: %s\" (%i)" msgid "Unable to connect to %s %s:" msgstr "Ei ole mahdollista muodostaa yhteyttä %s %s:" -#: methods/gpgv.cc:64 -#, fuzzy, c-format +#: methods/gpgv.cc:65 +#, c-format msgid "Couldn't access keyring: '%s'" -msgstr "Nimeä \"%s\" ei voitu selvittää" +msgstr "Avainrengasta \"%s\" ei saatavilla" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" +"E: Parametrien luettelo Acquire::gpgv::Options liian pitkä. Lopetetaan." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" +"Sisäinen virhe: Allekirjoitus kelpaa, mutta avaimen sormenjälki tuntematon?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." -msgstr "" +msgstr "LÖytyi ainakin yksi kelvoton allekirjoitus." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "" +"Ei käynnistynyt \"%s\" allekirjoitusta tarkistamaan (onko gnupg asennettu?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" -msgstr "" +msgstr "Tapahtui tuntematon virhe suoritettaessa gpgv" -#: methods/gpgv.cc:243 -#, fuzzy +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" -msgstr "Seuraavat ylimääräiset paketit on merkitty asennettaviksi:" +msgstr "Seuraavat allekirjoitukset eivät olleet kelvollisia:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" msgstr "" +"Seuraavia allekirjoituksia ei voinut varmentaa koska julkista avainta ei ole " +"saatavilla:\n" #: methods/gzip.cc:57 #, c-format @@ -2297,12 +2304,12 @@ msgstr "Mahdolliset versiot" msgid "Dependency generation" msgstr "Luodaan riippuvuudet" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Pakettitiedostoa %s (1) ei voi jäsentää" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Pakettitiedostoa %s (2) ei voi jäsentää" @@ -2348,7 +2355,7 @@ msgid "Malformed line %u in source list %s (type)" msgstr "Rivi %u on väärän muotoinen lähdeluettelossa %s (tyyppi)" #: apt-pkg/sourcelist.cc:244 -#, fuzzy, c-format +#, c-format msgid "Type '%s' is not known on line %u in source list %s" msgstr "Tyyppi \"%s\" on tuntematon rivillä %u lähdeluettelossa %s" @@ -2406,12 +2413,12 @@ msgstr "Arkistokansio %spartial puuttuu." #: apt-pkg/acquire.cc:823 #, c-format msgid "Retrieving file %li of %li (%s remaining)" -msgstr "" +msgstr "Noudetaan tiedosto %li / %li (jäljellä %s)" #: apt-pkg/acquire.cc:825 -#, fuzzy, c-format +#, c-format msgid "Retrieving file %li of %li" -msgstr "Luetaan tiedostoluetteloa" +msgstr "Noudetaan tiedosto %li / %li" #: apt-pkg/acquire-worker.cc:113 #, c-format @@ -2424,12 +2431,9 @@ msgid "Method %s did not start correctly" msgstr "Menetelmä %s ei käynnistynyt oikein" #: apt-pkg/acquire-worker.cc:377 -#, fuzzy, c-format +#, c-format msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "" -"Taltion vaihto: Pistä levy \n" -"\"%s\"\n" -"asemaan \"%s\" ja paina Enter\n" +msgstr "Pistä levy nimeltään: \"%s\" asemaan \"%s\" ja paina Enter." #: apt-pkg/init.cc:120 #, c-format @@ -2562,7 +2566,7 @@ msgstr "MD5Sum ei täsmää" #: apt-pkg/acquire-item.cc:640 msgid "There are no public key available for the following key IDs:\n" -msgstr "" +msgstr "Julkisia avaimia ei ole saatavilla, avainten ID:t ovat:\n" #: apt-pkg/acquire-item.cc:753 #, c-format @@ -2698,59 +2702,66 @@ msgstr "" "tiedostoa\n" #: apt-pkg/deb/dpkgpm.cc:358 -#, fuzzy, c-format +#, c-format msgid "Preparing %s" -msgstr "Avataan %s" +msgstr "Valmistellaan %s" #: apt-pkg/deb/dpkgpm.cc:359 -#, fuzzy, c-format +#, c-format msgid "Unpacking %s" -msgstr "Avataan %s" +msgstr "Puretaan %s" #: apt-pkg/deb/dpkgpm.cc:364 -#, fuzzy, c-format +#, c-format msgid "Preparing to configure %s" -msgstr "Avataan asetustiedosto %s" +msgstr "Valmistaudutaan tekemään asetukset: %s" #: apt-pkg/deb/dpkgpm.cc:365 -#, fuzzy, c-format +#, c-format msgid "Configuring %s" -msgstr "Avataan yhteys %s" +msgstr "Tehdään asetukset: %s" #: apt-pkg/deb/dpkgpm.cc:366 -#, fuzzy, c-format +#, c-format msgid "Installed %s" -msgstr " Asennettu: " +msgstr "%s asennettu" #: apt-pkg/deb/dpkgpm.cc:371 #, c-format msgid "Preparing for removal of %s" -msgstr "" +msgstr "Valmistaudutaan poistamaan %s" #: apt-pkg/deb/dpkgpm.cc:372 -#, fuzzy, c-format +#, c-format msgid "Removing %s" -msgstr "Avataan %s" +msgstr "Poistetaan %s" #: apt-pkg/deb/dpkgpm.cc:373 -#, fuzzy, c-format +#, c-format msgid "Removed %s" -msgstr "Suosittelut" +msgstr "%s poistettu" #: apt-pkg/deb/dpkgpm.cc:378 -#, fuzzy, c-format +#, c-format msgid "Preparing to completely remove %s" -msgstr "Avataan asetustiedosto %s" +msgstr "Valmistaudutaan poistamaan %s kokonaan" #: apt-pkg/deb/dpkgpm.cc:379 -#, fuzzy, c-format +#, c-format msgid "Completely removed %s" -msgstr "Tiedoston %s poistaminen ei onnistunut" +msgstr "%s poistettiin kokonaan" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Yhteys katkesi ennenaikaisesti" +#~ msgid "File date has changed %s" +#~ msgstr "Tiedoston uusi päiväys %s" + +#, fuzzy +#~ msgid "Could not patch file" +#~ msgstr "Tiedostoa %s ei voitu avata" + #~ msgid "Reading file list" #~ msgstr "Luetaan tiedostoluetteloa" @@ -9,13 +9,13 @@ msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-05-18 09:31-0500\n" +"PO-Revision-Date: 2006-09-02 09:59+0200\n" "Last-Translator: Christian Perrier <bubulle@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.2\n" +"X-Generator: KBabel 1.11.4\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n" #: cmdline/apt-cache.cc:135 @@ -235,13 +235,11 @@ msgstr "" #: cmdline/apt-cdrom.cc:78 msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" -msgstr "" -"Veuillez indiquer le nom de ce disque, par exemple Debian 2.1r1 Disk 1" +msgstr "Veuillez indiquer le nom de ce disque, par exemple Debian 2.1r1 Disk 1" #: cmdline/apt-cdrom.cc:93 msgid "Please insert a Disc in the drive and press enter" -msgstr "" -"Veuillez insrer un disque dans le lecteur et appuyez sur la touche Entre" +msgstr "Veuillez insrer un disque dans le lecteur et appuyez sur la touche Entre" #: cmdline/apt-cdrom.cc:117 msgid "Repeat this process for the rest of the CDs in your set." @@ -317,8 +315,7 @@ msgstr "Impossible d'crire sur %s" #: cmdline/apt-extracttemplates.cc:310 msgid "Cannot get debconf version. Is debconf installed?" -msgstr "" -"Impossible d'obtenir la version de debconf. Est-ce que debconf est install?" +msgstr "Impossible d'obtenir la version de debconf. Est-ce que debconf est install?" #: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 msgid "Package extension list is too long" @@ -434,8 +431,7 @@ msgstr "Aucune slection ne correspond" #: ftparchive/apt-ftparchive.cc:835 #, c-format msgid "Some files are missing in the package file group `%s'" -msgstr "" -"Quelques fichiers sont manquants dans le groupe de fichiers de paquets %s" +msgstr "Quelques fichiers sont manquants dans le groupe de fichiers de paquets %s" #: ftparchive/cachedb.cc:45 #, c-format @@ -801,8 +797,7 @@ msgstr "Erreur interne, InstallPackages appel avec des paquets casss." #: cmdline/apt-get.cc:764 msgid "Packages need to be removed but remove is disabled." -msgstr "" -"Les paquets doivent tre enlevs mais la dsinstallation est dsactive." +msgstr "Les paquets doivent tre enlevs mais la dsinstallation est dsactive." #: cmdline/apt-get.cc:775 msgid "Internal error, Ordering didn't finish" @@ -836,8 +831,7 @@ msgstr "Il est ncessaire de prendre %so dans les archives.\n" #: cmdline/apt-get.cc:829 #, c-format msgid "After unpacking %sB of additional disk space will be used.\n" -msgstr "" -"Aprs dpaquetage, %so d'espace disque supplmentaires seront utiliss.\n" +msgstr "Aprs dpaquetage, %so d'espace disque supplmentaires seront utiliss.\n" #: cmdline/apt-get.cc:832 #, c-format @@ -908,8 +902,7 @@ msgstr "" #: cmdline/apt-get.cc:990 msgid "--fix-missing and media swapping is not currently supported" -msgstr "" -"l'option --fix-missing et l'change de support ne sont pas encore reconnus." +msgstr "l'option --fix-missing et l'change de support ne sont pas encore reconnus." #: cmdline/apt-get.cc:995 msgid "Unable to correct missing packages." @@ -971,8 +964,7 @@ msgstr "Aucun paquet ne correspond au paquet %s" #: cmdline/apt-get.cc:1133 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" -msgstr "" -"La rinstallation de %s est impossible, il ne peut pas tre tlcharg.\n" +msgstr "La rinstallation de %s est impossible, il ne peut pas tre tlcharg.\n" #: cmdline/apt-get.cc:1141 #, c-format @@ -1026,8 +1018,7 @@ msgstr "Note, slectionne %s pour l'expression rationnelle %s\n" #: cmdline/apt-get.cc:1546 msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "" -"Vous pouvez lancer apt-get -f install pour corriger ces problmes:" +msgstr "Vous pouvez lancer apt-get -f install pour corriger ces problmes:" #: cmdline/apt-get.cc:1549 msgid "" @@ -1207,8 +1198,7 @@ msgstr "Impossible de satisfaire les dpendances %s pour %s: %s" #: cmdline/apt-get.cc:2338 #, c-format msgid "Build-dependencies for %s could not be satisfied." -msgstr "" -"Les dpendances de compilation pour %s ne peuvent pas tre satisfaites." +msgstr "Les dpendances de compilation pour %s ne peuvent pas tre satisfaites." #: cmdline/apt-get.cc:2342 msgid "Failed to process build dependencies" @@ -1391,8 +1381,7 @@ msgstr "" "seules les erreurs" #: dselect/install:103 -msgid "" -"above this message are important. Please fix them and run [I]nstall again" +msgid "above this message are important. Please fix them and run [I]nstall again" msgstr "" "prcdant ce message sont importantes. Veuillez les corriger et\n" "dmarrer l'[I]nstallation une nouvelle fois." @@ -1650,8 +1639,7 @@ msgstr "Ce n'est pas une archive DEB valide, partie %s manquante" #: apt-inst/deb/debfile.cc:52 #, c-format msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" -msgstr "" -"Ce n'est pas une archive DEB valide, elle n'a pas de membre %s ou %s" +msgstr "Ce n'est pas une archive DEB valide, elle n'a pas de membre %s ou %s" #: apt-inst/deb/debfile.cc:112 #, c-format @@ -1754,8 +1742,7 @@ msgstr "" #: methods/ftp.cc:265 #, c-format msgid "Login script command '%s' failed, server said: %s" -msgstr "" -"La commande %s du script de connexion a chou, le serveur a rpondu: %s" +msgstr "La commande %s du script de connexion a chou, le serveur a rpondu: %s" #: methods/ftp.cc:291 #, c-format @@ -1792,8 +1779,7 @@ msgstr "Impossible de crer un connecteur" #: methods/ftp.cc:698 msgid "Could not connect data socket, connection timed out" -msgstr "" -"Impossible de se connecter sur le port de donnes, dlai de connexion dpass" +msgstr "Impossible de se connecter sur le port de donnes, dlai de connexion dpass" #: methods/ftp.cc:704 msgid "Could not connect passive socket." @@ -1930,12 +1916,10 @@ msgstr "Impossible d'accder au porte-cls:%s" #: methods/gpgv.cc:99 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." -msgstr "" -"E: liste de paramtres trop longue pour Acquire::gpgv::Options. Abandon." +msgstr "E: liste de paramtres trop longue pour Acquire::gpgv::Options. Abandon." #: methods/gpgv.cc:198 -msgid "" -"Internal error: Good signature, but could not determine key fingerprint?!" +msgid "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" "Erreur interne: signature correcte, mais il est impossible de dterminer " "l'empreinte de la cl." @@ -2367,14 +2351,12 @@ msgstr "Ligne %lu mal forme dans la liste des sources %s (analyse de l'URI)" #: apt-pkg/sourcelist.cc:105 #, c-format msgid "Malformed line %lu in source list %s (absolute dist)" -msgstr "" -"Ligne %lu mal forme dans la liste des sources %s (distribution absolue)" +msgstr "Ligne %lu mal forme dans la liste des sources %s (distribution absolue)" #: apt-pkg/sourcelist.cc:112 #, c-format msgid "Malformed line %lu in source list %s (dist parse)" -msgstr "" -"Ligne %lu mal forme dans la liste des sources %s (analyse de distribution)" +msgstr "Ligne %lu mal forme dans la liste des sources %s (analyse de distribution)" #: apt-pkg/sourcelist.cc:203 #, c-format @@ -2394,14 +2376,12 @@ msgstr "Ligne %u mal forme dans la liste des sources %s (type)" #: apt-pkg/sourcelist.cc:244 #, c-format msgid "Type '%s' is not known on line %u in source list %s" -msgstr "" -"Le type %s est inconnu sur la ligne %u dans la liste des sources %s" +msgstr "Le type %s est inconnu sur la ligne %u dans la liste des sources %s" #: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 #, c-format msgid "Malformed line %u in source list %s (vendor id)" -msgstr "" -"Ligne %u mal forme dans la liste des sources %s (identifiant du fournisseur)" +msgstr "Ligne %u mal forme dans la liste des sources %s (identifiant du fournisseur)" #: apt-pkg/packagemanager.cc:402 #, c-format @@ -2422,8 +2402,7 @@ msgstr "Le type de fichier d'index %s n'est pas accept" #: apt-pkg/algorithms.cc:241 #, c-format -msgid "" -"The package %s needs to be reinstalled, but I can't find an archive for it." +msgid "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" "Le paquet %s doit tre rinstall, mais je ne parviens pas trouver son " "archive." @@ -2497,8 +2476,7 @@ msgstr "Impossible de localiser %s." #: apt-pkg/srcrecords.cc:48 msgid "You must put some 'source' URIs in your sources.list" -msgstr "" -"Vous devez insrer quelques adresses sources dans votre sources.list" +msgstr "Vous devez insrer quelques adresses sources dans votre sources.list" #: apt-pkg/cachefile.cc:73 msgid "The package lists or status file could not be parsed or opened." @@ -2572,8 +2550,7 @@ msgstr "" #: apt-pkg/pkgcachegen.cc:210 msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "" -"Vous avez dpass le nombre de versions que cet APT est capable de traiter." +msgstr "Vous avez dpass le nombre de versions que cet APT est capable de traiter." #: apt-pkg/pkgcachegen.cc:213 msgid "Wow, you exceeded the number of dependencies this APT is capable of." @@ -2609,8 +2586,7 @@ msgstr "Assemblage des fichiers lists dans les champs Provides" #: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 msgid "IO Error saving source cache" -msgstr "" -"Erreur d'entre/sortie lors de la sauvegarde du fichier de cache des sources" +msgstr "Erreur d'entre/sortie lors de la sauvegarde du fichier de cache des sources" #: apt-pkg/acquire-item.cc:126 #, c-format @@ -2623,8 +2599,7 @@ msgstr "Somme de contrle MD5 incohrente" #: apt-pkg/acquire-item.cc:640 msgid "There are no public key available for the following key IDs:\n" -msgstr "" -"Aucune cl publique n'est disponible pour la/les cl(s) suivante(s):\n" +msgstr "Aucune cl publique n'est disponible pour la/les cl(s) suivante(s):\n" #: apt-pkg/acquire-item.cc:753 #, c-format @@ -2647,8 +2622,7 @@ msgstr "" #: apt-pkg/acquire-item.cc:848 #, c-format -msgid "" -"The package index files are corrupted. No Filename: field for package %s." +msgid "The package index files are corrupted. No Filename: field for package %s." msgstr "" "Les fichiers d'index des paquets sont corrompus. Aucun champ Filename: " "pour le paquet %s." @@ -2811,3 +2785,24 @@ msgstr "%s compltement supprim" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Connexion ferme prmaturment" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "Le format de la base de donnes n'est pas valable. Si vous mettez APT jour, veuillez supprimer puis recrer la base de donnes." + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s ne possde pas d'entre source override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s ne possde pas galement pas d'entre binary override\n" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Impossible de modifier (patch) %s" + @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-05-11 18:09+0200\n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" +"PO-Revision-Date: 2006-09-07 11:48+0200\n" "Last-Translator: Jacobo Tarrío <jtarrio@debian.org>\n" "Language-Team: Galician <trasno@ceu.fi.udc.es>\n" "MIME-Version: 1.0\n" @@ -149,7 +149,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s para %s %s compilado en %s %s\n" @@ -432,116 +432,129 @@ msgstr "Ningunha selección encaixou" msgid "Some files are missing in the package file group `%s'" msgstr "Fallan ficheiros no grupo de ficheiros de paquetes \"%s\"" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "" "A base de datos estaba corrompida, cambiouse o nome do ficheiro a %s.old" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "A base de datos é antiga, trátase de actualizar %s" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"O formato da base de datos non é válido. Se actualizou desde unha versión " +"antiga de apt, elimine e volva crear a base de datos." + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Non se puido abrir o ficheiro de base de datos %s: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "A data do ficheiro cambiou %s" +msgid "Failed to stat %s" +msgstr "Non se atopou %s" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "O arquivo non ten un rexistro de control" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Non se puido obter un cursor" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "A: Non se puido ler o directorio %s\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "A: Non se atopou %s\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "A: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Os erros aplícanse ao ficheiro " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Non se puido resolver %s" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "O percorrido da árbore fallou" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Non se puido abrir %s" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " DesLig %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Non se puido ler a ligazón %s" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "Non se puido borrar %s" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Non se puido ligar %s con %s" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " Alcanzouse o límite de desligado de %sB.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Non se atopou %s" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "O arquivo non tiña un campo Package" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s non ten unha entrada de \"override\"\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " O mantedor de %s é %s, non %s\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s non ten unha entrada de \"override\" de código fonte\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s tampouco ten unha entrada de \"override\" de binarios\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -802,11 +815,11 @@ msgstr "Hai que eliminar paquetes pero a eliminación está desactivada." msgid "Internal error, Ordering didn't finish" msgstr "Erro interno, a ordeación non rematou" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 msgid "Unable to lock the download directory" msgstr "Non se puido bloquear o directorio de descargas" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Non se puido ler a lista de orixes." @@ -836,7 +849,7 @@ msgstr "Despois de desempaquetar hanse ocupar %sB de disco adicionais.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Despois de desempaquetar hanse liberar %sB de disco.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 #, c-format msgid "Couldn't determine free space in %s" msgstr "Non se puido determinar o espazo libre en %s" @@ -873,7 +886,7 @@ msgstr "Abortar." msgid "Do you want to continue [Y/n]? " msgstr "¿Quere continuar [S/n]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Non se puido obter %s %s\n" @@ -882,7 +895,7 @@ msgstr "Non se puido obter %s %s\n" msgid "Some files failed to download" msgstr "Non se puido descargar algúns ficheiros" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 msgid "Download complete and in download only mode" msgstr "Completouse a descarga no modo de só descargas" @@ -1055,110 +1068,110 @@ msgstr "Paquetes rotos" msgid "The following extra packages will be installed:" msgstr "Hanse instalar os seguintes paquetes extra:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1685 msgid "Suggested packages:" msgstr "Paquetes suxiridos:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1686 msgid "Recommended packages:" msgstr "Paquetes recomendados:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1706 msgid "Calculating upgrade... " msgstr "A calcular a actualización... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Fallou" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1714 msgid "Done" msgstr "Rematado" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 msgid "Internal error, problem resolver broke stuff" msgstr "Erro interno, o resolvedor interno rompeu cousas" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1887 msgid "Must specify at least one package to fetch source for" msgstr "" "Ten que especificar alomenos un paquete para lle descargar o código fonte" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 #, c-format msgid "Unable to find a source package for %s" msgstr "Non se puido atopar un paquete fonte para %s" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1961 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Omítese o ficheiro xa descargado \"%s\"\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1985 #, c-format msgid "You don't have enough free space in %s" msgstr "Non hai espazo libre de abondo en %s" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1990 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Hai que recibir %sB/%sB de arquivos de fonte.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:1993 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Hai que recibir %sB de arquivos de fonte.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:1999 #, c-format msgid "Fetch source %s\n" msgstr "Obter fonte %s\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2030 msgid "Failed to fetch some archives." msgstr "Non se puido recibir algúns arquivos." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2058 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Omítese o desempaquetamento do código fonte xa desempaquetado en %s\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2070 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Fallou a orde de desempaquetamento \"%s\".\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2071 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Comprobe que o paquete \"dpkg-dev\" estea instalado.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2088 #, c-format msgid "Build command '%s' failed.\n" msgstr "Fallou a codificación de %s.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2107 msgid "Child process failed" msgstr "O proceso fillo fallou" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2123 msgid "Must specify at least one package to check builddeps for" msgstr "" "Ten que especificar alomenos un paquete para lle comprobar as dependencias " "de compilación" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2151 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Non se puido obter a información de dependencias de compilación de %s" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2171 #, c-format msgid "%s has no build depends.\n" msgstr "%s non ten dependencias de compilación.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2223 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1167,7 +1180,7 @@ msgstr "" "A dependencia \"%s\" de %s non se pode satisfacer porque non se pode atopar " "o paquete %s" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2275 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1176,32 +1189,32 @@ msgstr "" "A dependencia \"%s\" de %s non se pode satisfacer porque ningunha versión " "dispoñible do paquete %s satisfai os requirimentos de versión" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2310 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Non se puido satisfacer a dependencia \"%s\" de %s: O paquete instalado %s é " "novo de máis" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2335 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Non se puido satisfacer a dependencia \"%s\" de %s: %s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Non se puideron satisfacer as dependencias de compilación de %s." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2353 msgid "Failed to process build dependencies" msgstr "Non se puido procesar as dependencias de compilación" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2385 msgid "Supported modules:" msgstr "Módulos soportados:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2426 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1384,19 +1397,19 @@ msgstr "A mesturar a información sobre paquetes dispoñibles" msgid "Failed to create pipes" msgstr "Non se puido crear as canles" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Non se puido executar gzip" -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Arquivo corrompido" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "A suma de comprobación do arquivo tar non coincide, está corrompido" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Tipo de cabeceira TAR %u descoñecido, membro %s" @@ -1676,12 +1689,12 @@ msgstr "Non se atopou o disco" msgid "File not found" msgstr "Non se atopou o ficheiro" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 #: methods/gzip.cc:142 msgid "Failed to stat" msgstr "Non se atopou" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 msgid "Failed to set modification time" msgstr "Non se puido estabrecer a hora de modificación" @@ -1894,43 +1907,43 @@ msgstr "Algo estraño ocorreu ao resolver \"%s:%s\" (%i)" msgid "Unable to connect to %s %s:" msgstr "Non se pode conectar a %s %s:" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "Non se puido acceder ao chaveiro: \"%s\"" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" "E: A lista de argumentos de Acquire:gpgv::Options é longa de máis. Sáese." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" "Erro interno: Sinatura correcta, pero non se puido determinar a pegada " "dixital da chave" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "Atopouse alomenos unha sinatura non válida." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "" "Non se puido executar \"%s\" para verificar a sinatura (¿está gnupg " "instalado?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Erro descoñecido ao executar gpgv" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "As seguintes sinaturas non eran válidas:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2309,12 +2322,12 @@ msgstr "Versións candidatas" msgid "Dependency generation" msgstr "Xeración de dependencias" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Non se pode analizar o ficheiro de paquetes %s (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Non se pode analizar o ficheiro de paquetes %s (2)" @@ -2763,6 +2776,13 @@ msgstr "Eliminouse %s completamente" msgid "Connection closed prematurely" msgstr "A conexión pechouse prematuramente" +#~ msgid "File date has changed %s" +#~ msgstr "A data do ficheiro cambiou %s" + +#, fuzzy +#~ msgid "Could not patch file" +#~ msgstr "Non se puido abrir o ficheiro %s" + #~ msgid "Reading file list" #~ msgstr "A ler a lista de paquetes" @@ -2744,6 +2744,22 @@ msgstr "%s teljesen eltávolítva" msgid "Connection closed prematurely" msgstr "A kapcsolat idő előtt lezárult" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s nem rendelkezik felülbíráló bejegyzéssel\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nem rendelkezik felülbíráló bejegyzéssel\n" + #~ msgid "Total Distinct Descriptions: " #~ msgstr "Összes külső leírás: " @@ -203,7 +203,7 @@ msgstr "" " gencaches - Costruisce sia la cache dei pacchetti che dei sorgenti\n" " showpkg - Mostra informazioni generali per un singolo pacchetto\n" " showsrc - Mostra i campi dei sorgenti\n" -" stats - Mostra alcune statisitiche di base\n" +" stats - Mostra alcune statistiche di base\n" " dump - Mostra il file in forma compatta\n" " dumpavail - Stampa un file \"available\" in stdout\n" " unmet - Mostra le dipendenze non soddisfatte\n" @@ -533,7 +533,7 @@ msgstr " %s non ha un campo override\n" #: ftparchive/writer.cc:437 ftparchive/writer.cc:689 #, c-format msgid " %s maintainer is %s not %s\n" -msgstr " %s mantainer %s non %s\n" +msgstr " %s maintainer %s non %s\n" #: ftparchive/contents.cc:317 #, c-format @@ -841,7 +841,7 @@ msgstr "Impossibile determinare lo spazio libero su %s" #: cmdline/apt-get.cc:849 #, c-format msgid "You don't have enough free space in %s." -msgstr "Lo spazio libero in %s non sufficente." +msgstr "Lo spazio libero in %s non sufficiente." #: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 msgid "Trivial Only specified but this is not a trivial operation." @@ -1098,7 +1098,7 @@ msgstr "Si saltato il file gi scaricato '%s'\n" #: cmdline/apt-get.cc:1974 #, c-format msgid "You don't have enough free space in %s" -msgstr "Lo spazio libero in %s non sufficente" +msgstr "Lo spazio libero in %s non sufficiente" #: cmdline/apt-get.cc:1979 #, c-format @@ -1745,7 +1745,7 @@ msgstr "TYPE fallito, il server ha detto: %s" #: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 msgid "Connection timeout" -msgstr "Timeout della connesione" +msgstr "Timeout della connessione" #: methods/ftp.cc:335 msgid "Server closed the connection" @@ -1891,7 +1891,7 @@ msgstr "Impossibile risolvere '%s'" #: methods/connect.cc:173 #, c-format msgid "Temporary failure resolving '%s'" -msgstr "risoluzione di '%s' temporaneamete fallita" +msgstr "risoluzione di '%s' temporaneamente fallita" #: methods/connect.cc:176 #, c-format @@ -1927,7 +1927,7 @@ msgstr "Almeno una firma non valida stata trovata." #: methods/gpgv.cc:207 #, fuzzy, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" -msgstr " per verificare la firma (gnugp installato?)" +msgstr " per verificare la firma (gnupg installato?)" #: methods/gpgv.cc:212 msgid "Unknown error executing gpgv" @@ -1942,7 +1942,7 @@ msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" msgstr "" -"Le seguenti firme non sono state verificate perch la chiave pubblica non " +"Le seguenti firme non sono state verificate perch la chiave pubblica non " "disponibile:\n" #: methods/gzip.cc:57 @@ -2780,6 +2780,27 @@ msgstr "Impossibile rimuovere %s" msgid "Connection closed prematurely" msgstr "Connessione chiusa prematuramente" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s non ha un campo override\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s non ha un campo override\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Impossibile aprire il file %s" + #~ msgid "Reading file list" #~ msgstr "Lettura della lista dei file in corso" @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-01-25 20:55+0900\n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" +"PO-Revision-Date: 2006-09-08 19:57+0900\n" "Last-Translator: Kenshi Muto <kmuto@debian.org>\n" "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\n" "MIME-Version: 1.0\n" @@ -149,7 +149,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s for %s %s コンパイル日時: %s %s\n" @@ -426,115 +426,126 @@ msgstr "選択にマッチするものがありません" msgid "Some files are missing in the package file group `%s'" msgstr "パッケージファイルグループ `%s' に見当たらないファイルがあります" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "DB が壊れていたため、ファイル名を %s.old に変更しました" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "DB が古いため、%s のアップグレードを試みます" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "DB フォーマットが無効です。apt の古いバージョンから更新したのであれば、データベースを削除・再作成してください。" + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "DB ファイル %s を開くことができません: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "ファイル %s の日付が変更されています" +msgid "Failed to stat %s" +msgstr "%s の状態を取得するのに失敗しました" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "アーカイブにコントロールレコードがありません" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "カーソルを取得できません" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "警告: ディレクトリ %s が読めません\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "警告: %s の状態を取得できません\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "エラー: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "警告: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "エラー: エラーが適用されるファイルは " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "%s の解決に失敗しました" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "ツリー内での移動に失敗しました" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "%s のオープンに失敗しました" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " リンク %s [%s] を外します\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "%s のリンク読み取りに失敗しました" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "%s のリンク解除に失敗しました" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** %s を %s にリンクするのに失敗しました" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " リンクを外す制限の %sB に到達しました。\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "%s の状態を取得するのに失敗しました" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "アーカイブにパッケージフィールドがありませんでした" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s に override エントリがありません\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " %1$s メンテナは %3$s ではなく %2$s です\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s にソース override エントリがありません\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s にバイナリ override エントリがありません\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -797,11 +808,11 @@ msgstr "パッケージを削除しなければなりませんが、削除が無 msgid "Internal error, Ordering didn't finish" msgstr "内部エラー、調整が終わっていません" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 msgid "Unable to lock the download directory" msgstr "ダウンロードディレクトリをロックできません" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "ソースのリストを読むことができません。" @@ -831,7 +842,7 @@ msgstr "展開後に追加で %sB のディスク容量が消費されます。\ msgid "After unpacking %sB disk space will be freed.\n" msgstr "展開後に %sB のディスク容量が解放されます。\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 #, c-format msgid "Couldn't determine free space in %s" msgstr "%s の空き領域を測定できません" @@ -868,7 +879,7 @@ msgstr "中断しました。" msgid "Do you want to continue [Y/n]? " msgstr "続行しますか [Y/n]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 #, c-format msgid "Failed to fetch %s %s\n" msgstr "%s の取得に失敗しました %s\n" @@ -877,7 +888,7 @@ msgstr "%s の取得に失敗しました %s\n" msgid "Some files failed to download" msgstr "いくつかのファイルの取得に失敗しました" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 msgid "Download complete and in download only mode" msgstr "ダウンロードオンリーモードでパッケージのダウンロードが完了しました" @@ -1054,110 +1065,110 @@ msgstr "壊れたパッケージ" msgid "The following extra packages will be installed:" msgstr "以下の特別パッケージがインストールされます:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1685 msgid "Suggested packages:" msgstr "提案パッケージ:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1686 msgid "Recommended packages:" msgstr "推奨パッケージ:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1706 msgid "Calculating upgrade... " msgstr "アップグレードパッケージを検出しています ... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "失敗" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1714 msgid "Done" msgstr "完了" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 msgid "Internal error, problem resolver broke stuff" msgstr "内部エラー、問題リゾルバが何かを破壊しました" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1887 msgid "Must specify at least one package to fetch source for" msgstr "" "ソースを取得するには少なくともひとつのパッケージ名を指定する必要があります" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 #, c-format msgid "Unable to find a source package for %s" msgstr "%s のソースパッケージが見つかりません" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1961 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "すでにダウンロードされたファイル '%s' をスキップします\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1985 #, c-format msgid "You don't have enough free space in %s" msgstr "%s に充分な空きスペースがありません" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1990 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "%2$sB 中 %1$sB のソースアーカイブを取得する必要があります。\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:1993 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "%sB のソースアーカイブを取得する必要があります。\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:1999 #, c-format msgid "Fetch source %s\n" msgstr "ソース %s を取得\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2030 msgid "Failed to fetch some archives." msgstr "いくつかのアーカイブの取得に失敗しました。" -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2058 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "すでに %s に展開されたソースがあるため、展開をスキップします\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2070 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "展開コマンド '%s' が失敗しました。\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2071 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" "'dpkg-dev' パッケージがインストールされていることを確認してください。\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2088 #, c-format msgid "Build command '%s' failed.\n" msgstr "ビルドコマンド '%s' が失敗しました。\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2107 msgid "Child process failed" msgstr "子プロセスが失敗しました" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2123 msgid "Must specify at least one package to check builddeps for" msgstr "" "ビルド依存関係をチェックするパッケージを少なくとも 1 つ指定する必要があります" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2151 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "%s のビルド依存情報を取得できません" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2171 #, c-format msgid "%s has no build depends.\n" msgstr "%s にはビルド依存情報が指定されていません。\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2223 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1166,7 +1177,7 @@ msgstr "" "パッケージ %3$s が見つからないため、%2$s に対する %1$s の依存関係を満たすこと" "ができません" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2275 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1175,32 +1186,32 @@ msgstr "" "入手可能な %3$s はいずれもバージョンについての要求を満たせないため、%2$s に対" "する %1$s の依存関係を満たすことができません" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2310 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "%2$s の依存関係 %1$s を満たすことができません: インストールされた %3$s パッ" "ケージは新しすぎます" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2335 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "%2$s の依存関係 %1$s を満たすことができません: %3$s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "%s のビルド依存関係を満たすことができませんでした。" -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2353 msgid "Failed to process build dependencies" msgstr "ビルド依存関係の処理に失敗しました" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2385 msgid "Supported modules:" msgstr "サポートされているモジュール:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2426 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1382,19 +1393,19 @@ msgstr "入手可能情報をマージしています" msgid "Failed to create pipes" msgstr "パイプの生成に失敗しました" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "gzip の実行に失敗しました" -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "壊れたアーカイブ" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "tar チェックサムが失敗しました。アーカイブが壊れています" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "未知の TAR ヘッダタイプ %u、メンバー %s" @@ -1677,12 +1688,12 @@ msgstr "ディスクが見つかりません。" msgid "File not found" msgstr "ファイルが見つかりません" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 #: methods/gzip.cc:142 msgid "Failed to stat" msgstr "状態の取得に失敗しました" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 msgid "Failed to set modification time" msgstr "変更時刻の設定に失敗しました" @@ -1894,38 +1905,38 @@ msgstr "'%s:%s' (%i) の解決中に問題が起こりました" msgid "Unable to connect to %s %s:" msgstr "%s %s へ接続できません:" -#: methods/gpgv.cc:64 -#, fuzzy, c-format +#: methods/gpgv.cc:65 +#, c-format msgid "Couldn't access keyring: '%s'" -msgstr "'%s' を解決できませんでした" +msgstr "キーリングにアクセスできませんでした: '%s'" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "E: Acquire::gpgv::Options の引数リストが長すぎます。終了しています。" -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "内部エラー: 正しい署名ですが、鍵指紋を確定できません?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "少なくとも 1 つの不正な署名が発見されました。" -#: methods/gpgv.cc:207 -#, fuzzy, c-format +#: methods/gpgv.cc:213 +#, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" -msgstr " 署名の検証 (gnupg はインストールされていますか?)" +msgstr "署名を検証するための '%s' の実行ができませんでした (gnupg はインストールされていますか?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "gpgv の実行中に未知のエラーが発生" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "以下の署名が無効です:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2301,12 +2312,12 @@ msgstr "候補バージョン" msgid "Dependency generation" msgstr "依存関係の生成" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "パッケージファイル %s を解釈することができません (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "パッケージファイル %s を解釈することができません (2)" @@ -2410,14 +2421,14 @@ msgstr "アーカイブディレクトリ %spartial が見つかりません。" #. only show the ETA if it makes sense #. two days #: apt-pkg/acquire.cc:823 -#, fuzzy, c-format +#, c-format msgid "Retrieving file %li of %li (%s remaining)" -msgstr "ファイルをダウンロードしています %li/%li (残り %s)" +msgstr "ファイルを取得しています %li/%li (残り %s)" #: apt-pkg/acquire.cc:825 -#, fuzzy, c-format +#, c-format msgid "Retrieving file %li of %li" -msgstr "ファイルリストを読み込んでいます" +msgstr "ファイルを取得しています %li/%li" #: apt-pkg/acquire-worker.cc:113 #, c-format @@ -2747,19 +2758,25 @@ msgid "Removed %s" msgstr "%s を削除しました" #: apt-pkg/deb/dpkgpm.cc:378 -#, fuzzy, c-format +#, c-format msgid "Preparing to completely remove %s" -msgstr "%s の設定を準備しています" +msgstr "%s を完全に削除する準備をしています" #: apt-pkg/deb/dpkgpm.cc:379 -#, fuzzy, c-format +#, c-format msgid "Completely removed %s" -msgstr "%s の削除に失敗しました" +msgstr "%s を完全に削除しました" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "途中で接続がクローズされました" +#~ msgid "File date has changed %s" +#~ msgstr "ファイル %s の日付が変更されています" + +#~ msgid "Could not patch file" +#~ msgstr "ファイルにパッチできませんでした" + #~ msgid "Reading file list" #~ msgstr "ファイルリストを読み込んでいます" @@ -2734,9 +2734,31 @@ msgstr "%s을(를) 완전히 지웠습니다" msgid "Connection closed prematurely" msgstr "연결이 너무 빨리 끊어졌습니다" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s에는 override 항목이 없습니다\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s에는 override 항목이 없습니다\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "%s 파일을 열 수 없습니다" + #~ msgid "Reading file list" #~ msgstr "파일 목록을 읽는 중" #, fuzzy #~ msgid "Could not execute " #~ msgstr "%s 잠금 파일을 얻을 수 없습니다" + diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 000000000..a1ea37a53 --- /dev/null +++ b/po/ku.po @@ -0,0 +1,2574 @@ +# Kurdish translation for apt +# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 +# This file is distributed under the same license as the apt package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: apt\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" +"PO-Revision-Date: 2006-09-16 17:51+0100\n" +"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n" +"Language-Team: Kurdish <ku@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: cmdline/apt-cache.cc:135 +#, c-format +msgid "Package %s version %s has an unmet dep:\n" +msgstr "" + +#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 +#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 +#: cmdline/apt-cache.cc:1508 +#, c-format +msgid "Unable to locate package %s" +msgstr "Pakêt nehate dîtin %s" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Navên paketan bi giştî :" + +#: cmdline/apt-cache.cc:272 +msgid " Normal packages: " +msgstr " Pakêtên normal:" + +#: cmdline/apt-cache.cc:273 +msgid " Pure virtual packages: " +msgstr " Pakêtên farazî yên safî:" + +#: cmdline/apt-cache.cc:274 +msgid " Single virtual packages: " +msgstr " Pakêta tenê ya farazî:" + +#: cmdline/apt-cache.cc:275 +msgid " Mixed virtual packages: " +msgstr " Pakêtên hevbeş yên farazî:" + +#: cmdline/apt-cache.cc:276 +msgid " Missing: " +msgstr " Winda: " + +#: cmdline/apt-cache.cc:278 +msgid "Total distinct versions: " +msgstr "Guhertoyên vekirî yên giştî:" + +#: cmdline/apt-cache.cc:280 +msgid "Total dependencies: " +msgstr "Bindestên giştî:" + +#: cmdline/apt-cache.cc:283 +msgid "Total ver/file relations: " +msgstr "" + +#: cmdline/apt-cache.cc:285 +msgid "Total Provides mappings: " +msgstr "" + +#: cmdline/apt-cache.cc:297 +msgid "Total globbed strings: " +msgstr "" + +#: cmdline/apt-cache.cc:311 +msgid "Total dependency version space: " +msgstr "" + +#: cmdline/apt-cache.cc:316 +msgid "Total slack space: " +msgstr "Cihê giştî yê sist:" + +#: cmdline/apt-cache.cc:324 +msgid "Total space accounted for: " +msgstr "Cihê giştî yê veqetandî: " + +#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#, c-format +msgid "Package file %s is out of sync." +msgstr "Pakêta dosya %s li derveyî demê ye." + +#: cmdline/apt-cache.cc:1231 +msgid "You must give exactly one pattern" +msgstr "Pêwist e tu mînakekê bidî" + +#: cmdline/apt-cache.cc:1385 +msgid "No packages found" +msgstr "Pakêt nayên dîtin" + +#: cmdline/apt-cache.cc:1462 +msgid "Package files:" +msgstr "Pelgehên Pakêt:" + +#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +msgid "Cache is out of sync, can't x-ref a package file" +msgstr "" + +#: cmdline/apt-cache.cc:1470 +#, c-format +msgid "%4i %s\n" +msgstr "%4i %s\n" + +#. Show any packages have explicit pins +#: cmdline/apt-cache.cc:1482 +msgid "Pinned packages:" +msgstr "" + +#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +msgid "(not found)" +msgstr "(nehate dîtin)" + +#. Installed version +#: cmdline/apt-cache.cc:1515 +msgid " Installed: " +msgstr " Sazkirî: " + +#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +msgid "(none)" +msgstr "(ne tiştek)" + +#. Candidate Version +#: cmdline/apt-cache.cc:1522 +msgid " Candidate: " +msgstr " Berendam: " + +#: cmdline/apt-cache.cc:1532 +msgid " Package pin: " +msgstr " Destika pakêtê:" + +#. Show the priority tables +#: cmdline/apt-cache.cc:1541 +msgid " Version table:" +msgstr " Tabloya guhertoyan:" + +#: cmdline/apt-cache.cc:1556 +#, c-format +msgid " %4i %s\n" +msgstr " %4i %s\n" + +#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 +#, c-format +msgid "%s %s for %s %s compiled on %s %s\n" +msgstr "%s %s ji bo %s %s komkirî di %s %s de\n" + +#: cmdline/apt-cache.cc:1659 +msgid "" +"Usage: apt-cache [options] command\n" +" apt-cache [options] add file1 [file2 ...]\n" +" apt-cache [options] showpkg pkg1 [pkg2 ...]\n" +" apt-cache [options] showsrc pkg1 [pkg2 ...]\n" +"\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\n" +"\n" +"Commands:\n" +" add - Add a package file to the source cache\n" +" gencaches - Build both the package and source cache\n" +" showpkg - Show some general information for a single package\n" +" showsrc - Show source records\n" +" stats - Show some basic statistics\n" +" dump - Show the entire file in a terse form\n" +" dumpavail - Print an available file to stdout\n" +" unmet - Show unmet dependencies\n" +" search - Search the package list for a regex pattern\n" +" show - Show a readable record for the package\n" +" depends - Show raw dependency information for a package\n" +" rdepends - Show reverse dependency information for a package\n" +" pkgnames - List the names of all packages\n" +" dotty - Generate package graphs for GraphVis\n" +" xvcg - Generate package graphs for xvcg\n" +" policy - Show policy settings\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -p=? The package cache.\n" +" -s=? The source cache.\n" +" -q Disable progress indicator.\n" +" -i Show only important deps for the unmet command.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" +msgstr "" + +#: cmdline/apt-cdrom.cc:78 +msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" +msgstr "Ji kerema xwe re navekî li vî Dîsketî bike, wekî 'Debian 2.1r1 Disk 1'" + +#: cmdline/apt-cdrom.cc:93 +msgid "Please insert a Disc in the drive and press enter" +msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne" + +#: cmdline/apt-cdrom.cc:117 +msgid "Repeat this process for the rest of the CDs in your set." +msgstr "" + +#: cmdline/apt-config.cc:41 +msgid "Arguments not in pairs" +msgstr "" + +#: cmdline/apt-config.cc:76 +msgid "" +"Usage: apt-config [options] command\n" +"\n" +"apt-config is a simple tool to read the APT config file\n" +"\n" +"Commands:\n" +" shell - Shell mode\n" +" dump - Show the configuration\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" +"Bikaranîn: apt-config [vebijark] ferman\n" +"apt-config, amûra xwendina dosyeya mîhengên APTê ye\n" +"\n" +"Ferman\n" +" shell - moda shell\n" +" dump - Mîhengan nîşan dide\n" +"\n" +"Vebijark:\n" +" -h Ev dosyeya alîkariyê ye.\n" +" -c=? Dosyeya mîhengan nîşan dide\n" +" -o=? Rê li ber vedike ku tu karibe li gorî dilê xwe vebijarkan diyar bike. " +"mînak -o dir::cache=/tmp\n" + +#: cmdline/apt-extracttemplates.cc:98 +#, c-format +msgid "%s not a valid DEB package." +msgstr "%s ne paketeke DEB ya derbasdar e." + +#: cmdline/apt-extracttemplates.cc:232 +msgid "" +"Usage: apt-extracttemplates file1 [file2 ...]\n" +"\n" +"apt-extracttemplates is a tool to extract config and template info\n" +"from debian packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" -t Set the temp dir\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 +#, c-format +msgid "Unable to write to %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: cmdline/apt-extracttemplates.cc:310 +msgid "Cannot get debconf version. Is debconf installed?" +msgstr "Guhertoya debconf nehate stendin. debconf sazkirî ye?" + +#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 +msgid "Package extension list is too long" +msgstr "Lîsteya dirêjahiya pakêtê zêde dirêj e" + +#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 +#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 +#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 +#, c-format +msgid "Error processing directory %s" +msgstr "Di şixulandina pêrista %s de çewtî" + +#: ftparchive/apt-ftparchive.cc:254 +msgid "Source extension list is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: ftparchive/apt-ftparchive.cc:371 +msgid "Error writing header to contents file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: ftparchive/apt-ftparchive.cc:401 +#, c-format +msgid "Error processing contents %s" +msgstr "Dema şixulandina naveroka %s çewtî" + +#: ftparchive/apt-ftparchive.cc:556 +msgid "" +"Usage: apt-ftparchive [options] command\n" +"Commands: packages binarypath [overridefile [pathprefix]]\n" +" sources srcpath [overridefile [pathprefix]]\n" +" contents path\n" +" release path\n" +" generate config [groups]\n" +" clean config\n" +"\n" +"apt-ftparchive generates index files for Debian archives. It supports\n" +"many styles of generation from fully automated to functional replacements\n" +"for dpkg-scanpackages and dpkg-scansources\n" +"\n" +"apt-ftparchive generates Package files from a tree of .debs. The\n" +"Package file contains the contents of all the control fields from\n" +"each package as well as the MD5 hash and filesize. An override file\n" +"is supported to force the value of Priority and Section.\n" +"\n" +"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" +"The --source-override option can be used to specify a src override file\n" +"\n" +"The 'packages' and 'sources' command should be run in the root of the\n" +"tree. BinaryPath should point to the base of the recursive search and \n" +"override file should contain the override flags. Pathprefix is\n" +"appended to the filename fields if present. Example usage from the \n" +"Debian archive:\n" +" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" +" dists/potato/main/binary-i386/Packages\n" +"\n" +"Options:\n" +" -h This help text\n" +" --md5 Control MD5 generation\n" +" -s=? Source override file\n" +" -q Quiet\n" +" -d=? Select the optional caching database\n" +" --no-delink Enable delinking debug mode\n" +" --contents Control contents file generation\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:762 +msgid "No selections matched" +msgstr "" + +#: ftparchive/apt-ftparchive.cc:835 +#, c-format +msgid "Some files are missing in the package file group `%s'" +msgstr "Di koma pelgehên pakêta '%s' de hin pelgeh kêm in" + +#: ftparchive/cachedb.cc:47 +#, c-format +msgid "DB was corrupted, file renamed to %s.old" +msgstr "DB xerabe ye, navê dosyeyê weke %s.old hate guherandin" + +#: ftparchive/cachedb.cc:65 +#, c-format +msgid "DB is old, attempting to upgrade %s" +msgstr "Danegir kevn e, ji bo bilindkirina %s hewl dide" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 +#, c-format +msgid "Unable to open DB file %s: %s" +msgstr "Danegira %s nehate vekirin: %s" + +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: ftparchive/cachedb.cc:242 +msgid "Archive has no control record" +msgstr "Tomara kontrola arşîvê tuneye" + +#: ftparchive/cachedb.cc:448 +msgid "Unable to get a cursor" +msgstr "" + +#: ftparchive/writer.cc:79 +#, c-format +msgid "W: Unable to read directory %s\n" +msgstr "W: pelrêça %s nayê xwendin\n" + +#: ftparchive/writer.cc:84 +#, c-format +msgid "W: Unable to stat %s\n" +msgstr "" + +#: ftparchive/writer.cc:135 +msgid "E: " +msgstr "E: " + +#: ftparchive/writer.cc:137 +msgid "W: " +msgstr "W: " + +#: ftparchive/writer.cc:144 +msgid "E: Errors apply to file " +msgstr "" + +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 +#, c-format +msgid "Failed to resolve %s" +msgstr "%s ji hev nehate veçirandin" + +#: ftparchive/writer.cc:173 +msgid "Tree walking failed" +msgstr "" + +#: ftparchive/writer.cc:198 +#, c-format +msgid "Failed to open %s" +msgstr "%s venebû" + +#: ftparchive/writer.cc:257 +#, c-format +msgid " DeLink %s [%s]\n" +msgstr "" + +#: ftparchive/writer.cc:265 +#, c-format +msgid "Failed to readlink %s" +msgstr "" + +#: ftparchive/writer.cc:269 +#, c-format +msgid "Failed to unlink %s" +msgstr "" + +#: ftparchive/writer.cc:276 +#, c-format +msgid "*** Failed to link %s to %s" +msgstr "" + +#: ftparchive/writer.cc:286 +#, c-format +msgid " DeLink limit of %sB hit.\n" +msgstr "" + +#: ftparchive/writer.cc:390 +msgid "Archive had no package field" +msgstr "Di arşîvê de qada pakêtê tuneye" + +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 +#, c-format +msgid " %s has no override entry\n" +msgstr "" + +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 +#, c-format +msgid " %s maintainer is %s not %s\n" +msgstr "" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + +#: ftparchive/contents.cc:317 +#, c-format +msgid "Internal error, could not locate member %s" +msgstr "" + +#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 +msgid "realloc - Failed to allocate memory" +msgstr "" + +#: ftparchive/override.cc:38 ftparchive/override.cc:146 +#, c-format +msgid "Unable to open %s" +msgstr "%s venebû" + +#: ftparchive/override.cc:64 ftparchive/override.cc:170 +#, c-format +msgid "Malformed override %s line %lu #1" +msgstr "" + +#: ftparchive/override.cc:78 ftparchive/override.cc:182 +#, c-format +msgid "Malformed override %s line %lu #2" +msgstr "" + +#: ftparchive/override.cc:92 ftparchive/override.cc:195 +#, c-format +msgid "Malformed override %s line %lu #3" +msgstr "" + +#: ftparchive/override.cc:131 ftparchive/override.cc:205 +#, c-format +msgid "Failed to read the override file %s" +msgstr "" + +#: ftparchive/multicompress.cc:75 +#, c-format +msgid "Unknown compression algorithm '%s'" +msgstr "" + +#: ftparchive/multicompress.cc:105 +#, c-format +msgid "Compressed output %s needs a compression set" +msgstr "" + +#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" +msgstr "" + +#: ftparchive/multicompress.cc:198 +msgid "Failed to create FILE*" +msgstr "" + +#: ftparchive/multicompress.cc:201 +msgid "Failed to fork" +msgstr "" + +#: ftparchive/multicompress.cc:215 +msgid "Compress child" +msgstr "" + +#: ftparchive/multicompress.cc:238 +#, c-format +msgid "Internal error, failed to create %s" +msgstr "" + +#: ftparchive/multicompress.cc:289 +msgid "Failed to create subprocess IPC" +msgstr "" + +#: ftparchive/multicompress.cc:324 +msgid "Failed to exec compressor " +msgstr "" + +#: ftparchive/multicompress.cc:363 +msgid "decompressor" +msgstr "" + +#: ftparchive/multicompress.cc:406 +msgid "IO to subprocess/file failed" +msgstr "" + +#: ftparchive/multicompress.cc:458 +msgid "Failed to read while computing MD5" +msgstr "" + +#: ftparchive/multicompress.cc:475 +#, c-format +msgid "Problem unlinking %s" +msgstr "" + +#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "" + +#: cmdline/apt-get.cc:120 +msgid "Y" +msgstr "E" + +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#, c-format +msgid "Regex compilation error - %s" +msgstr "" + +#: cmdline/apt-get.cc:237 +msgid "The following packages have unmet dependencies:" +msgstr "" + +#: cmdline/apt-get.cc:327 +#, c-format +msgid "but %s is installed" +msgstr "lê %s sazkirî ye" + +#: cmdline/apt-get.cc:329 +#, c-format +msgid "but %s is to be installed" +msgstr "lê %s dê were sazkirin" + +#: cmdline/apt-get.cc:336 +msgid "but it is not installable" +msgstr "lê sazkirina wê ne gengaz e" + +#: cmdline/apt-get.cc:338 +msgid "but it is a virtual package" +msgstr "lê paketeke farazî ye" + +#: cmdline/apt-get.cc:341 +msgid "but it is not installed" +msgstr "lê ne sazkirî ye" + +#: cmdline/apt-get.cc:341 +msgid "but it is not going to be installed" +msgstr "lê dê neyê sazkirin" + +#: cmdline/apt-get.cc:346 +msgid " or" +msgstr " û" + +#: cmdline/apt-get.cc:375 +msgid "The following NEW packages will be installed:" +msgstr "Ev pakêtên NÛ dê werine sazkirin:" + +#: cmdline/apt-get.cc:401 +msgid "The following packages will be REMOVED:" +msgstr "Ev pakêt dê werine RAKIRIN:" + +#: cmdline/apt-get.cc:423 +msgid "The following packages have been kept back:" +msgstr "" + +#: cmdline/apt-get.cc:444 +msgid "The following packages will be upgraded:" +msgstr "Ev paket dê werine bilindkirin:" + +#: cmdline/apt-get.cc:465 +msgid "The following packages will be DOWNGRADED:" +msgstr "" + +#: cmdline/apt-get.cc:485 +msgid "The following held packages will be changed:" +msgstr "" + +#: cmdline/apt-get.cc:538 +#, c-format +msgid "%s (due to %s) " +msgstr "%s (ji ber %s)" + +#: cmdline/apt-get.cc:546 +msgid "" +"WARNING: The following essential packages will be removed.\n" +"This should NOT be done unless you know exactly what you are doing!" +msgstr "" + +#: cmdline/apt-get.cc:577 +#, c-format +msgid "%lu upgraded, %lu newly installed, " +msgstr "" + +#: cmdline/apt-get.cc:581 +#, c-format +msgid "%lu reinstalled, " +msgstr "%lu ji nû ve sazkirî" + +#: cmdline/apt-get.cc:583 +#, c-format +msgid "%lu downgraded, " +msgstr "" + +#: cmdline/apt-get.cc:585 +#, c-format +msgid "%lu to remove and %lu not upgraded.\n" +msgstr "" + +#: cmdline/apt-get.cc:589 +#, c-format +msgid "%lu not fully installed or removed.\n" +msgstr "" + +#: cmdline/apt-get.cc:649 +msgid "Correcting dependencies..." +msgstr "Bindestî tên serrastkirin..." + +#: cmdline/apt-get.cc:652 +msgid " failed." +msgstr " neserketî." + +#: cmdline/apt-get.cc:655 +msgid "Unable to correct dependencies" +msgstr "" + +#: cmdline/apt-get.cc:658 +msgid "Unable to minimize the upgrade set" +msgstr "" + +#: cmdline/apt-get.cc:660 +msgid " Done" +msgstr " Temam" + +#: cmdline/apt-get.cc:664 +msgid "You might want to run `apt-get -f install' to correct these." +msgstr "" + +#: cmdline/apt-get.cc:667 +msgid "Unmet dependencies. Try using -f." +msgstr "" + +#: cmdline/apt-get.cc:689 +msgid "WARNING: The following packages cannot be authenticated!" +msgstr "" + +#: cmdline/apt-get.cc:693 +msgid "Authentication warning overridden.\n" +msgstr "" + +#: cmdline/apt-get.cc:700 +msgid "Install these packages without verification [y/N]? " +msgstr "" + +#: cmdline/apt-get.cc:702 +msgid "Some packages could not be authenticated" +msgstr "" + +#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 +msgid "There are problems and -y was used without --force-yes" +msgstr "" + +#: cmdline/apt-get.cc:755 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "" + +#: cmdline/apt-get.cc:764 +msgid "Packages need to be removed but remove is disabled." +msgstr "" + +#: cmdline/apt-get.cc:775 +msgid "Internal error, Ordering didn't finish" +msgstr "" + +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 +msgid "Unable to lock the download directory" +msgstr "Pelrêça daxistinê nayê quflekirin" + +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 +#: apt-pkg/cachefile.cc:67 +msgid "The list of sources could not be read." +msgstr "" + +#: cmdline/apt-get.cc:816 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "" + +#: cmdline/apt-get.cc:821 +#, c-format +msgid "Need to get %sB/%sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:824 +#, c-format +msgid "Need to get %sB of archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:829 +#, c-format +msgid "After unpacking %sB of additional disk space will be used.\n" +msgstr "" + +#: cmdline/apt-get.cc:832 +#, c-format +msgid "After unpacking %sB disk space will be freed.\n" +msgstr "" + +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:849 +#, c-format +msgid "You don't have enough free space in %s." +msgstr "" + +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 +msgid "Trivial Only specified but this is not a trivial operation." +msgstr "" + +#: cmdline/apt-get.cc:866 +msgid "Yes, do as I say!" +msgstr "" + +#: cmdline/apt-get.cc:868 +#, c-format +msgid "" +"You are about to do something potentially harmful.\n" +"To continue type in the phrase '%s'\n" +" ?] " +msgstr "" + +#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 +msgid "Abort." +msgstr "" + +#: cmdline/apt-get.cc:889 +msgid "Do you want to continue [Y/n]? " +msgstr "" + +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 +#, c-format +msgid "Failed to fetch %s %s\n" +msgstr "" + +#: cmdline/apt-get.cc:979 +msgid "Some files failed to download" +msgstr "" + +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 +msgid "Download complete and in download only mode" +msgstr "" + +#: cmdline/apt-get.cc:986 +msgid "" +"Unable to fetch some archives, maybe run apt-get update or try with --fix-" +"missing?" +msgstr "" + +#: cmdline/apt-get.cc:990 +msgid "--fix-missing and media swapping is not currently supported" +msgstr "" + +#: cmdline/apt-get.cc:995 +msgid "Unable to correct missing packages." +msgstr "" + +#: cmdline/apt-get.cc:996 +msgid "Aborting install." +msgstr "" + +#: cmdline/apt-get.cc:1030 +#, c-format +msgid "Note, selecting %s instead of %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1040 +#, c-format +msgid "Skipping %s, it is already installed and upgrade is not set.\n" +msgstr "" + +#: cmdline/apt-get.cc:1058 +#, c-format +msgid "Package %s is not installed, so not removed\n" +msgstr "" + +#: cmdline/apt-get.cc:1069 +#, c-format +msgid "Package %s is a virtual package provided by:\n" +msgstr "" + +#: cmdline/apt-get.cc:1081 +msgid " [Installed]" +msgstr " [Sazkirî]" + +#: cmdline/apt-get.cc:1086 +msgid "You should explicitly select one to install." +msgstr "" + +#: cmdline/apt-get.cc:1091 +#, c-format +msgid "" +"Package %s is not available, but is referred to by another package.\n" +"This may mean that the package is missing, has been obsoleted, or\n" +"is only available from another source\n" +msgstr "" + +#: cmdline/apt-get.cc:1110 +msgid "However the following packages replace it:" +msgstr "" + +#: cmdline/apt-get.cc:1113 +#, c-format +msgid "Package %s has no installation candidate" +msgstr "" + +#: cmdline/apt-get.cc:1133 +#, c-format +msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" +msgstr "" + +#: cmdline/apt-get.cc:1141 +#, c-format +msgid "%s is already the newest version.\n" +msgstr "" + +#: cmdline/apt-get.cc:1168 +#, c-format +msgid "Release '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1170 +#, c-format +msgid "Version '%s' for '%s' was not found" +msgstr "" + +#: cmdline/apt-get.cc:1176 +#, c-format +msgid "Selected version %s (%s) for %s\n" +msgstr "" + +#: cmdline/apt-get.cc:1313 +msgid "The update command takes no arguments" +msgstr "" + +#: cmdline/apt-get.cc:1326 +msgid "Unable to lock the list directory" +msgstr "" + +#: cmdline/apt-get.cc:1384 +msgid "" +"Some index files failed to download, they have been ignored, or old ones " +"used instead." +msgstr "" + +#: cmdline/apt-get.cc:1403 +msgid "Internal error, AllUpgrade broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#, c-format +msgid "Couldn't find package %s" +msgstr "" + +#: cmdline/apt-get.cc:1516 +#, c-format +msgid "Note, selecting %s for regex '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1546 +msgid "You might want to run `apt-get -f install' to correct these:" +msgstr "" + +#: cmdline/apt-get.cc:1549 +msgid "" +"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " +"solution)." +msgstr "" + +#: cmdline/apt-get.cc:1561 +msgid "" +"Some packages could not be installed. This may mean that you have\n" +"requested an impossible situation or if you are using the unstable\n" +"distribution that some required packages have not yet been created\n" +"or been moved out of Incoming." +msgstr "" + +#: cmdline/apt-get.cc:1569 +msgid "" +"Since you only requested a single operation it is extremely likely that\n" +"the package is simply not installable and a bug report against\n" +"that package should be filed." +msgstr "" + +#: cmdline/apt-get.cc:1574 +msgid "The following information may help to resolve the situation:" +msgstr "" + +#: cmdline/apt-get.cc:1577 +msgid "Broken packages" +msgstr "Paketên şikestî" + +#: cmdline/apt-get.cc:1603 +msgid "The following extra packages will be installed:" +msgstr "" + +#: cmdline/apt-get.cc:1685 +msgid "Suggested packages:" +msgstr "Paketên tên pêşniyaz kirin:" + +#: cmdline/apt-get.cc:1686 +msgid "Recommended packages:" +msgstr "Paketên tên tawsiyê kirin:" + +#: cmdline/apt-get.cc:1706 +msgid "Calculating upgrade... " +msgstr "" + +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 +msgid "Failed" +msgstr "Serneket" + +#: cmdline/apt-get.cc:1714 +msgid "Done" +msgstr "Temam" + +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 +msgid "Internal error, problem resolver broke stuff" +msgstr "" + +#: cmdline/apt-get.cc:1887 +msgid "Must specify at least one package to fetch source for" +msgstr "" + +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 +#, c-format +msgid "Unable to find a source package for %s" +msgstr "" + +#: cmdline/apt-get.cc:1961 +#, c-format +msgid "Skipping already downloaded file '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:1985 +#, c-format +msgid "You don't have enough free space in %s" +msgstr "" + +#: cmdline/apt-get.cc:1990 +#, c-format +msgid "Need to get %sB/%sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:1993 +#, c-format +msgid "Need to get %sB of source archives.\n" +msgstr "" + +#: cmdline/apt-get.cc:1999 +#, c-format +msgid "Fetch source %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2030 +msgid "Failed to fetch some archives." +msgstr "" + +#: cmdline/apt-get.cc:2058 +#, c-format +msgid "Skipping unpack of already unpacked source in %s\n" +msgstr "" + +#: cmdline/apt-get.cc:2070 +#, c-format +msgid "Unpack command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2071 +#, c-format +msgid "Check if the 'dpkg-dev' package is installed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2088 +#, c-format +msgid "Build command '%s' failed.\n" +msgstr "" + +#: cmdline/apt-get.cc:2107 +msgid "Child process failed" +msgstr "" + +#: cmdline/apt-get.cc:2123 +msgid "Must specify at least one package to check builddeps for" +msgstr "" + +#: cmdline/apt-get.cc:2151 +#, c-format +msgid "Unable to get build-dependency information for %s" +msgstr "" + +#: cmdline/apt-get.cc:2171 +#, c-format +msgid "%s has no build depends.\n" +msgstr "" + +#: cmdline/apt-get.cc:2223 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because the package %s cannot be " +"found" +msgstr "" + +#: cmdline/apt-get.cc:2275 +#, c-format +msgid "" +"%s dependency for %s cannot be satisfied because no available versions of " +"package %s can satisfy version requirements" +msgstr "" + +#: cmdline/apt-get.cc:2310 +#, c-format +msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" +msgstr "" + +#: cmdline/apt-get.cc:2335 +#, c-format +msgid "Failed to satisfy %s dependency for %s: %s" +msgstr "" + +#: cmdline/apt-get.cc:2349 +#, c-format +msgid "Build-dependencies for %s could not be satisfied." +msgstr "" + +#: cmdline/apt-get.cc:2353 +msgid "Failed to process build dependencies" +msgstr "" + +#: cmdline/apt-get.cc:2385 +msgid "Supported modules:" +msgstr "" + +#: cmdline/apt-get.cc:2426 +msgid "" +"Usage: apt-get [options] command\n" +" apt-get [options] install|remove pkg1 [pkg2 ...]\n" +" apt-get [options] source pkg1 [pkg2 ...]\n" +"\n" +"apt-get is a simple command line interface for downloading and\n" +"installing packages. The most frequently used commands are update\n" +"and install.\n" +"\n" +"Commands:\n" +" update - Retrieve new lists of packages\n" +" upgrade - Perform an upgrade\n" +" install - Install new packages (pkg is libc6 not libc6.deb)\n" +" remove - Remove packages\n" +" source - Download source archives\n" +" build-dep - Configure build-dependencies for source packages\n" +" dist-upgrade - Distribution upgrade, see apt-get(8)\n" +" dselect-upgrade - Follow dselect selections\n" +" clean - Erase downloaded archive files\n" +" autoclean - Erase old downloaded archive files\n" +" check - Verify that there are no broken dependencies\n" +"\n" +"Options:\n" +" -h This help text.\n" +" -q Loggable output - no progress indicator\n" +" -qq No output except for errors\n" +" -d Download only - do NOT install or unpack archives\n" +" -s No-act. Perform ordering simulation\n" +" -y Assume Yes to all queries and do not prompt\n" +" -f Attempt to continue if the integrity check fails\n" +" -m Attempt to continue if archives are unlocatable\n" +" -u Show a list of upgraded packages as well\n" +" -b Build the source package after fetching it\n" +" -V Show verbose version numbers\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" +"pages for more information and options.\n" +" This APT has Super Cow Powers.\n" +msgstr "" + +#: cmdline/acqprogress.cc:55 +msgid "Hit " +msgstr "" + +#: cmdline/acqprogress.cc:79 +msgid "Get:" +msgstr "" + +#: cmdline/acqprogress.cc:110 +msgid "Ign " +msgstr "" + +#: cmdline/acqprogress.cc:114 +msgid "Err " +msgstr "" + +#: cmdline/acqprogress.cc:135 +#, c-format +msgid "Fetched %sB in %s (%sB/s)\n" +msgstr "" + +#: cmdline/acqprogress.cc:225 +#, c-format +msgid " [Working]" +msgstr " [Dixebite]" + +#: cmdline/acqprogress.cc:271 +#, c-format +msgid "" +"Media change: please insert the disc labeled\n" +" '%s'\n" +"in the drive '%s' and press enter\n" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:86 +msgid "Unknown package record!" +msgstr "" + +#: cmdline/apt-sortpkgs.cc:150 +msgid "" +"Usage: apt-sortpkgs [options] file1 [file2 ...]\n" +"\n" +"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n" +"to indicate what kind of file it is.\n" +"\n" +"Options:\n" +" -h This help text\n" +" -s Use source file sorting\n" +" -c=? Read this configuration file\n" +" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +msgstr "" + +#: dselect/install:32 +msgid "Bad default setting!" +msgstr "" + +#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 +#: dselect/install:104 dselect/update:45 +msgid "Press enter to continue." +msgstr "" + +#: dselect/install:100 +msgid "Some errors occurred while unpacking. I'm going to configure the" +msgstr "" + +#: dselect/install:101 +msgid "packages that were installed. This may result in duplicate errors" +msgstr "" + +#: dselect/install:102 +msgid "or errors caused by missing dependencies. This is OK, only the errors" +msgstr "" + +#: dselect/install:103 +msgid "" +"above this message are important. Please fix them and run [I]nstall again" +msgstr "" + +#: dselect/update:30 +msgid "Merging available information" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:117 +#, fuzzy +msgid "Failed to create pipes" +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/contrib/extracttar.cc:144 +#, fuzzy +msgid "Failed to exec gzip " +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 +msgid "Corrupted archive" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:196 +msgid "Tar checksum failed, archive corrupted" +msgstr "" + +#: apt-inst/contrib/extracttar.cc:299 +#, c-format +msgid "Unknown TAR header type %u, member %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:73 +msgid "Invalid archive signature" +msgstr "" + +#: apt-inst/contrib/arfile.cc:81 +msgid "Error reading archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 +msgid "Invalid archive member header" +msgstr "" + +#: apt-inst/contrib/arfile.cc:131 +#, fuzzy +msgid "Archive is too short" +msgstr "Tomara kontrola arşîvê tuneye" + +#: apt-inst/contrib/arfile.cc:135 +msgid "Failed to read the archive headers" +msgstr "" + +#: apt-inst/filelist.cc:384 +msgid "DropNode called on still linked node" +msgstr "" + +#: apt-inst/filelist.cc:416 +msgid "Failed to locate the hash element!" +msgstr "" + +#: apt-inst/filelist.cc:463 +#, fuzzy +msgid "Failed to allocate diversion" +msgstr "%s venebû" + +#: apt-inst/filelist.cc:468 +msgid "Internal error in AddDiversion" +msgstr "" + +#: apt-inst/filelist.cc:481 +#, c-format +msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" +msgstr "" + +#: apt-inst/filelist.cc:510 +#, c-format +msgid "Double add of diversion %s -> %s" +msgstr "" + +#: apt-inst/filelist.cc:553 +#, c-format +msgid "Duplicate conf file %s/%s" +msgstr "" + +#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 +#, fuzzy, c-format +msgid "Failed to write file %s" +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 +#, fuzzy, c-format +msgid "Failed to close file %s" +msgstr "%s venebû" + +#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 +#, fuzzy, c-format +msgid "The path %s is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: apt-inst/extract.cc:127 +#, c-format +msgid "Unpacking %s more than once" +msgstr "" + +#: apt-inst/extract.cc:137 +#, c-format +msgid "The directory %s is diverted" +msgstr "" + +#: apt-inst/extract.cc:147 +#, c-format +msgid "The package is trying to write to the diversion target %s/%s" +msgstr "" + +#: apt-inst/extract.cc:157 apt-inst/extract.cc:300 +#, fuzzy +msgid "The diversion path is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: apt-inst/extract.cc:243 +#, c-format +msgid "The directory %s is being replaced by a non-directory" +msgstr "" + +#: apt-inst/extract.cc:283 +msgid "Failed to locate node in its hash bucket" +msgstr "" + +#: apt-inst/extract.cc:287 +msgid "The path is too long" +msgstr "" + +#: apt-inst/extract.cc:417 +#, c-format +msgid "Overwrite package match with no version for %s" +msgstr "" + +#: apt-inst/extract.cc:434 +#, c-format +msgid "File %s/%s overwrites the one in the package %s" +msgstr "" + +#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750 +#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324 +#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 +#, fuzzy, c-format +msgid "Unable to read %s" +msgstr "%s venebû" + +#: apt-inst/extract.cc:494 +#, fuzzy, c-format +msgid "Unable to stat %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 +#, fuzzy, c-format +msgid "Failed to remove %s" +msgstr "%s ji hev nehate veçirandin" + +#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 +#, fuzzy, c-format +msgid "Unable to create %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-inst/deb/dpkgdb.cc:118 +#, fuzzy, c-format +msgid "Failed to stat %sinfo" +msgstr "%s venebû" + +#: apt-inst/deb/dpkgdb.cc:123 +msgid "The info and temp directories need to be on the same filesystem" +msgstr "" + +#. Build the status cache +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 +#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 +#: apt-pkg/pkgcachegen.cc:840 +#, fuzzy +msgid "Reading package lists" +msgstr "Paketên şikestî" + +#: apt-inst/deb/dpkgdb.cc:180 +#, c-format +msgid "Failed to change to the admin dir %sinfo" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 +#: apt-inst/deb/dpkgdb.cc:448 +msgid "Internal error getting a package name" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 +msgid "Reading file listing" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:216 +#, c-format +msgid "" +"Failed to open the list file '%sinfo/%s'. If you cannot restore this file " +"then make it empty and immediately re-install the same version of the " +"package!" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 +#, c-format +msgid "Failed reading the list file %sinfo/%s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:266 +msgid "Internal error getting a node" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:309 +#, c-format +msgid "Failed to open the diversions file %sdiversions" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:324 +msgid "The diversion file is corrupted" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 +#: apt-inst/deb/dpkgdb.cc:341 +#, c-format +msgid "Invalid line in the diversion file: %s" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:362 +msgid "Internal error adding a diversion" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:383 +msgid "The pkg cache must be initialized first" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:443 +#, c-format +msgid "Failed to find a Package: header, offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:465 +#, c-format +msgid "Bad ConfFile section in the status file. Offset %lu" +msgstr "" + +#: apt-inst/deb/dpkgdb.cc:470 +#, c-format +msgid "Error parsing MD5. Offset %lu" +msgstr "" + +#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 +#, c-format +msgid "This is not a valid DEB archive, missing '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:52 +#, c-format +msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" +msgstr "" + +#: apt-inst/deb/debfile.cc:112 +#, c-format +msgid "Couldn't change to %s" +msgstr "" + +#: apt-inst/deb/debfile.cc:138 +msgid "Internal error, could not locate member" +msgstr "" + +#: apt-inst/deb/debfile.cc:171 +msgid "Failed to locate a valid control file" +msgstr "" + +#: apt-inst/deb/debfile.cc:256 +msgid "Unparsable control file" +msgstr "" + +#: methods/cdrom.cc:114 +#, fuzzy, c-format +msgid "Unable to read the cdrom database %s" +msgstr "Pakêt nehate dîtin %s" + +#: methods/cdrom.cc:123 +msgid "" +"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " +"cannot be used to add new CD-ROMs" +msgstr "" + +#: methods/cdrom.cc:131 +msgid "Wrong CD-ROM" +msgstr "" + +#: methods/cdrom.cc:164 +#, c-format +msgid "Unable to unmount the CD-ROM in %s, it may still be in use." +msgstr "" + +#: methods/cdrom.cc:169 +#, fuzzy +msgid "Disk not found." +msgstr "(nehate dîtin)" + +#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 +#, fuzzy +msgid "File not found" +msgstr "(nehate dîtin)" + +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 +#: methods/gzip.cc:142 +#, fuzzy +msgid "Failed to stat" +msgstr "%s venebû" + +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 +msgid "Failed to set modification time" +msgstr "" + +#: methods/file.cc:44 +msgid "Invalid URI, local URIS must not start with //" +msgstr "" + +#. Login must be before getpeername otherwise dante won't work. +#: methods/ftp.cc:162 +msgid "Logging in" +msgstr "" + +#: methods/ftp.cc:168 +msgid "Unable to determine the peer name" +msgstr "" + +#: methods/ftp.cc:173 +#, fuzzy +msgid "Unable to determine the local name" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: methods/ftp.cc:204 methods/ftp.cc:232 +#, c-format +msgid "The server refused the connection and said: %s" +msgstr "" + +#: methods/ftp.cc:210 +#, c-format +msgid "USER failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:217 +#, c-format +msgid "PASS failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:237 +msgid "" +"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " +"is empty." +msgstr "" + +#: methods/ftp.cc:265 +#, c-format +msgid "Login script command '%s' failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:291 +#, c-format +msgid "TYPE failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +msgid "Connection timeout" +msgstr "" + +#: methods/ftp.cc:335 +msgid "Server closed the connection" +msgstr "" + +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 +msgid "Read error" +msgstr "" + +#: methods/ftp.cc:345 methods/rsh.cc:197 +msgid "A response overflowed the buffer." +msgstr "" + +#: methods/ftp.cc:362 methods/ftp.cc:374 +msgid "Protocol corruption" +msgstr "" + +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 +msgid "Write error" +msgstr "" + +#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +msgid "Could not create a socket" +msgstr "" + +#: methods/ftp.cc:698 +msgid "Could not connect data socket, connection timed out" +msgstr "" + +#: methods/ftp.cc:704 +msgid "Could not connect passive socket." +msgstr "" + +#: methods/ftp.cc:722 +msgid "getaddrinfo was unable to get a listening socket" +msgstr "" + +#: methods/ftp.cc:736 +msgid "Could not bind a socket" +msgstr "" + +#: methods/ftp.cc:740 +msgid "Could not listen on the socket" +msgstr "" + +#: methods/ftp.cc:747 +msgid "Could not determine the socket's name" +msgstr "" + +#: methods/ftp.cc:779 +msgid "Unable to send PORT command" +msgstr "" + +#: methods/ftp.cc:789 +#, c-format +msgid "Unknown address family %u (AF_*)" +msgstr "" + +#: methods/ftp.cc:798 +#, c-format +msgid "EPRT failed, server said: %s" +msgstr "" + +#: methods/ftp.cc:818 +msgid "Data socket connect timed out" +msgstr "" + +#: methods/ftp.cc:825 +msgid "Unable to accept connection" +msgstr "" + +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +msgid "Problem hashing file" +msgstr "" + +#: methods/ftp.cc:877 +#, fuzzy, c-format +msgid "Unable to fetch file, server said '%s'" +msgstr "Danegira %s nehate vekirin: %s" + +#: methods/ftp.cc:892 methods/rsh.cc:322 +msgid "Data socket timed out" +msgstr "" + +#: methods/ftp.cc:922 +#, c-format +msgid "Data transfer failed, server said '%s'" +msgstr "" + +#. Get the files information +#: methods/ftp.cc:997 +msgid "Query" +msgstr "" + +#: methods/ftp.cc:1109 +#, fuzzy +msgid "Unable to invoke " +msgstr "%s venebû" + +#: methods/connect.cc:64 +#, c-format +msgid "Connecting to %s (%s)" +msgstr "" + +#: methods/connect.cc:71 +#, c-format +msgid "[IP: %s %s]" +msgstr "" + +#: methods/connect.cc:80 +#, c-format +msgid "Could not create a socket for %s (f=%u t=%u p=%u)" +msgstr "" + +#: methods/connect.cc:86 +#, c-format +msgid "Cannot initiate the connection to %s:%s (%s)." +msgstr "" + +#: methods/connect.cc:93 +#, c-format +msgid "Could not connect to %s:%s (%s), connection timed out" +msgstr "" + +#: methods/connect.cc:108 +#, c-format +msgid "Could not connect to %s:%s (%s)." +msgstr "" + +#. We say this mainly because the pause here is for the +#. ssh connection that is still going +#: methods/connect.cc:136 methods/rsh.cc:425 +#, c-format +msgid "Connecting to %s" +msgstr "" + +#: methods/connect.cc:167 +#, fuzzy, c-format +msgid "Could not resolve '%s'" +msgstr "%s ji hev nehate veçirandin" + +#: methods/connect.cc:173 +#, c-format +msgid "Temporary failure resolving '%s'" +msgstr "" + +#: methods/connect.cc:176 +#, c-format +msgid "Something wicked happened resolving '%s:%s' (%i)" +msgstr "" + +#: methods/connect.cc:223 +#, fuzzy, c-format +msgid "Unable to connect to %s %s:" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: methods/gpgv.cc:65 +#, c-format +msgid "Couldn't access keyring: '%s'" +msgstr "" + +#: methods/gpgv.cc:100 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "" + +#: methods/gpgv.cc:204 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "" + +#: methods/gpgv.cc:209 +msgid "At least one invalid signature was encountered." +msgstr "" + +#: methods/gpgv.cc:213 +#, c-format +msgid "Could not execute '%s' to verify signature (is gnupg installed?)" +msgstr "" + +#: methods/gpgv.cc:218 +msgid "Unknown error executing gpgv" +msgstr "" + +#: methods/gpgv.cc:249 +#, fuzzy +msgid "The following signatures were invalid:\n" +msgstr "Ev pakêtên NÛ dê werine sazkirin:" + +#: methods/gpgv.cc:256 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "" + +#: methods/gzip.cc:57 +#, c-format +msgid "Couldn't open pipe for %s" +msgstr "" + +#: methods/gzip.cc:102 +#, c-format +msgid "Read error from %s process" +msgstr "" + +#: methods/http.cc:376 +msgid "Waiting for headers" +msgstr "" + +#: methods/http.cc:522 +#, c-format +msgid "Got a single header line over %u chars" +msgstr "" + +#: methods/http.cc:530 +msgid "Bad header line" +msgstr "" + +#: methods/http.cc:549 methods/http.cc:556 +msgid "The HTTP server sent an invalid reply header" +msgstr "" + +#: methods/http.cc:585 +msgid "The HTTP server sent an invalid Content-Length header" +msgstr "" + +#: methods/http.cc:600 +msgid "The HTTP server sent an invalid Content-Range header" +msgstr "" + +#: methods/http.cc:602 +msgid "This HTTP server has broken range support" +msgstr "" + +#: methods/http.cc:626 +msgid "Unknown date format" +msgstr "" + +#: methods/http.cc:773 +#, fuzzy +msgid "Select failed" +msgstr " neserketî." + +#: methods/http.cc:778 +msgid "Connection timed out" +msgstr "" + +#: methods/http.cc:801 +#, fuzzy +msgid "Error writing to output file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: methods/http.cc:832 +#, fuzzy +msgid "Error writing to file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: methods/http.cc:860 +#, fuzzy +msgid "Error writing to the file" +msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" + +#: methods/http.cc:874 +msgid "Error reading from server. Remote end closed connection" +msgstr "" + +#: methods/http.cc:876 +msgid "Error reading from server" +msgstr "" + +#: methods/http.cc:1107 +msgid "Bad header data" +msgstr "" + +#: methods/http.cc:1124 +msgid "Connection failed" +msgstr "" + +#: methods/http.cc:1215 +msgid "Internal error" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:82 +msgid "Can't mmap an empty file" +msgstr "" + +#: apt-pkg/contrib/mmap.cc:87 +#, c-format +msgid "Couldn't make mmap of %lu bytes" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:938 +#, c-format +msgid "Selection %s not found" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:436 +#, c-format +msgid "Unrecognized type abbreviation: '%c'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:494 +#, c-format +msgid "Opening configuration file %s" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:512 +#, c-format +msgid "Line %d too long (max %d)" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:608 +#, c-format +msgid "Syntax error %s:%u: Block starts with no name." +msgstr "" + +#: apt-pkg/contrib/configuration.cc:627 +#, c-format +msgid "Syntax error %s:%u: Malformed tag" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:644 +#, c-format +msgid "Syntax error %s:%u: Extra junk after value" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:684 +#, c-format +msgid "Syntax error %s:%u: Directives can only be done at the top level" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:691 +#, c-format +msgid "Syntax error %s:%u: Too many nested includes" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 +#, c-format +msgid "Syntax error %s:%u: Included from here" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:704 +#, c-format +msgid "Syntax error %s:%u: Unsupported directive '%s'" +msgstr "" + +#: apt-pkg/contrib/configuration.cc:738 +#, c-format +msgid "Syntax error %s:%u: Extra junk at end of file" +msgstr "" + +#: apt-pkg/contrib/progress.cc:154 +#, c-format +msgid "%c%s... Error!" +msgstr "" + +#: apt-pkg/contrib/progress.cc:156 +#, c-format +msgid "%c%s... Done" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:80 +#, c-format +msgid "Command line option '%c' [from %s] is not known." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 +#: apt-pkg/contrib/cmndline.cc:122 +#, c-format +msgid "Command line option %s is not understood" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:127 +#, c-format +msgid "Command line option %s is not boolean" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 +#, c-format +msgid "Option %s requires an argument." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 +#, c-format +msgid "Option %s: Configuration item specification must have an =<val>." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:237 +#, c-format +msgid "Option %s requires an integer argument, not '%s'" +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:268 +#, fuzzy, c-format +msgid "Option '%s' is too long" +msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" + +#: apt-pkg/contrib/cmndline.cc:301 +#, c-format +msgid "Sense %s is not understood, try true or false." +msgstr "" + +#: apt-pkg/contrib/cmndline.cc:351 +#, c-format +msgid "Invalid operation %s" +msgstr "" + +#: apt-pkg/contrib/cdromutl.cc:55 +#, fuzzy, c-format +msgid "Unable to stat the mount point %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 +#, fuzzy, c-format +msgid "Unable to change to %s" +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-pkg/contrib/cdromutl.cc:190 +msgid "Failed to stat the cdrom" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:82 +#, c-format +msgid "Not using locking for read only lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:87 +#, fuzzy, c-format +msgid "Could not open lock file %s" +msgstr "Danegira %s nehate vekirin: %s" + +#: apt-pkg/contrib/fileutl.cc:105 +#, c-format +msgid "Not using locking for nfs mounted lock file %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:109 +#, c-format +msgid "Could not get lock %s" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:377 +#, c-format +msgid "Waited for %s but it wasn't there" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:387 +#, c-format +msgid "Sub-process %s received a segmentation fault." +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:390 +#, c-format +msgid "Sub-process %s returned an error code (%u)" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:392 +#, c-format +msgid "Sub-process %s exited unexpectedly" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:436 +#, fuzzy, c-format +msgid "Could not open file %s" +msgstr "Danegira %s nehate vekirin: %s" + +#: apt-pkg/contrib/fileutl.cc:492 +#, c-format +msgid "read, still have %lu to read but none left" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:522 +#, c-format +msgid "write, still have %lu to write but couldn't" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:597 +msgid "Problem closing the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:603 +msgid "Problem unlinking the file" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:614 +msgid "Problem syncing the file" +msgstr "" + +#: apt-pkg/pkgcache.cc:126 +msgid "Empty package cache" +msgstr "" + +#: apt-pkg/pkgcache.cc:132 +msgid "The package cache file is corrupted" +msgstr "" + +#: apt-pkg/pkgcache.cc:137 +msgid "The package cache file is an incompatible version" +msgstr "" + +#: apt-pkg/pkgcache.cc:142 +#, c-format +msgid "This APT does not support the versioning system '%s'" +msgstr "" + +#: apt-pkg/pkgcache.cc:147 +msgid "The package cache was built for a different architecture" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Depends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "PreDepends" +msgstr "" + +#: apt-pkg/pkgcache.cc:218 +msgid "Suggests" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +#, fuzzy +msgid "Recommends" +msgstr "Paketên tên tawsiyê kirin:" + +#: apt-pkg/pkgcache.cc:219 +msgid "Conflicts" +msgstr "" + +#: apt-pkg/pkgcache.cc:219 +msgid "Replaces" +msgstr "" + +#: apt-pkg/pkgcache.cc:220 +msgid "Obsoletes" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "important" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "required" +msgstr "" + +#: apt-pkg/pkgcache.cc:231 +msgid "standard" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "optional" +msgstr "" + +#: apt-pkg/pkgcache.cc:232 +msgid "extra" +msgstr "" + +#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +msgid "Building dependency tree" +msgstr "" + +#: apt-pkg/depcache.cc:62 +#, fuzzy +msgid "Candidate versions" +msgstr " Berendam: " + +#: apt-pkg/depcache.cc:91 +msgid "Dependency generation" +msgstr "" + +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 +#, fuzzy, c-format +msgid "Unable to parse package file %s (1)" +msgstr "Pakêt nehate dîtin %s" + +#: apt-pkg/tagfile.cc:186 +#, fuzzy, c-format +msgid "Unable to parse package file %s (2)" +msgstr "Pakêt nehate dîtin %s" + +#: apt-pkg/sourcelist.cc:94 +#, c-format +msgid "Malformed line %lu in source list %s (URI)" +msgstr "" + +#: apt-pkg/sourcelist.cc:96 +#, c-format +msgid "Malformed line %lu in source list %s (dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:99 +#, c-format +msgid "Malformed line %lu in source list %s (URI parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:105 +#, c-format +msgid "Malformed line %lu in source list %s (absolute dist)" +msgstr "" + +#: apt-pkg/sourcelist.cc:112 +#, c-format +msgid "Malformed line %lu in source list %s (dist parse)" +msgstr "" + +#: apt-pkg/sourcelist.cc:203 +#, c-format +msgid "Opening %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 +#, c-format +msgid "Line %u too long in source list %s." +msgstr "" + +#: apt-pkg/sourcelist.cc:240 +#, c-format +msgid "Malformed line %u in source list %s (type)" +msgstr "" + +#: apt-pkg/sourcelist.cc:244 +#, c-format +msgid "Type '%s' is not known on line %u in source list %s" +msgstr "" + +#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#, c-format +msgid "Malformed line %u in source list %s (vendor id)" +msgstr "" + +#: apt-pkg/packagemanager.cc:402 +#, 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 "" + +#: apt-pkg/pkgrecords.cc:37 +#, c-format +msgid "Index file type '%s' is not supported" +msgstr "" + +#: apt-pkg/algorithms.cc:241 +#, c-format +msgid "" +"The package %s needs to be reinstalled, but I can't find an archive for it." +msgstr "" + +#: apt-pkg/algorithms.cc:1059 +msgid "" +"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " +"held packages." +msgstr "" + +#: apt-pkg/algorithms.cc:1061 +msgid "Unable to correct problems, you have held broken packages." +msgstr "" + +#: apt-pkg/acquire.cc:62 +#, c-format +msgid "Lists directory %spartial is missing." +msgstr "" + +#: apt-pkg/acquire.cc:66 +#, c-format +msgid "Archive directory %spartial is missing." +msgstr "" + +#. only show the ETA if it makes sense +#. two days +#: apt-pkg/acquire.cc:823 +#, c-format +msgid "Retrieving file %li of %li (%s remaining)" +msgstr "" + +#: apt-pkg/acquire.cc:825 +#, c-format +msgid "Retrieving file %li of %li" +msgstr "" + +#: apt-pkg/acquire-worker.cc:113 +#, c-format +msgid "The method driver %s could not be found." +msgstr "" + +#: apt-pkg/acquire-worker.cc:162 +#, c-format +msgid "Method %s did not start correctly" +msgstr "" + +#: apt-pkg/acquire-worker.cc:377 +#, fuzzy, c-format +msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." +msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne" + +#: apt-pkg/init.cc:120 +#, c-format +msgid "Packaging system '%s' is not supported" +msgstr "" + +#: apt-pkg/init.cc:136 +msgid "Unable to determine a suitable packaging system type" +msgstr "" + +#: apt-pkg/clean.cc:61 +#, fuzzy, c-format +msgid "Unable to stat %s." +msgstr "Nivîsandin ji bo %s ne pêkane" + +#: apt-pkg/srcrecords.cc:48 +msgid "You must put some 'source' URIs in your sources.list" +msgstr "" + +#: apt-pkg/cachefile.cc:73 +msgid "The package lists or status file could not be parsed or opened." +msgstr "" + +#: apt-pkg/cachefile.cc:77 +msgid "You may want to run apt-get update to correct these problems" +msgstr "" + +#: apt-pkg/policy.cc:269 +msgid "Invalid record in the preferences file, no Package header" +msgstr "" + +#: apt-pkg/policy.cc:291 +#, c-format +msgid "Did not understand pin type %s" +msgstr "" + +#: apt-pkg/policy.cc:299 +msgid "No priority (or zero) specified for pin" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:74 +msgid "Cache has an incompatible versioning system" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:117 +#, c-format +msgid "Error occurred while processing %s (NewPackage)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:129 +#, c-format +msgid "Error occurred while processing %s (UsePackage1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:150 +#, c-format +msgid "Error occurred while processing %s (UsePackage2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:154 +#, c-format +msgid "Error occurred while processing %s (NewFileVer1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:184 +#, c-format +msgid "Error occurred while processing %s (NewVersion1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:188 +#, c-format +msgid "Error occurred while processing %s (UsePackage3)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:192 +#, c-format +msgid "Error occurred while processing %s (NewVersion2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:207 +msgid "Wow, you exceeded the number of package names this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:210 +msgid "Wow, you exceeded the number of versions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:213 +msgid "Wow, you exceeded the number of dependencies this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:241 +#, c-format +msgid "Error occurred while processing %s (FindPkg)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:254 +#, c-format +msgid "Error occurred while processing %s (CollectFileProvides)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:260 +#, c-format +msgid "Package %s %s was not found while processing file dependencies" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:574 +#, c-format +msgid "Couldn't stat source package list %s" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:658 +msgid "Collecting File Provides" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 +msgid "IO Error saving source cache" +msgstr "" + +#: apt-pkg/acquire-item.cc:126 +#, c-format +msgid "rename failed, %s (%s -> %s)." +msgstr "" + +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +msgid "MD5Sum mismatch" +msgstr "" + +#: apt-pkg/acquire-item.cc:640 +msgid "There are no public key available for the following key IDs:\n" +msgstr "" + +#: apt-pkg/acquire-item.cc:753 +#, 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 "" + +#: apt-pkg/acquire-item.cc:812 +#, c-format +msgid "" +"I wasn't able to locate file for the %s package. This might mean you need to " +"manually fix this package." +msgstr "" + +#: apt-pkg/acquire-item.cc:848 +#, c-format +msgid "" +"The package index files are corrupted. No Filename: field for package %s." +msgstr "" + +#: apt-pkg/acquire-item.cc:935 +msgid "Size mismatch" +msgstr "" + +#: apt-pkg/vendorlist.cc:66 +#, c-format +msgid "Vendor block %s contains no fingerprint" +msgstr "" + +#: apt-pkg/cdrom.cc:507 +#, c-format +msgid "" +"Using CD-ROM mount point %s\n" +"Mounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 +msgid "Identifying.. " +msgstr "" + +#: apt-pkg/cdrom.cc:541 +#, c-format +msgid "Stored label: %s \n" +msgstr "" + +#: apt-pkg/cdrom.cc:561 +#, c-format +msgid "Using CD-ROM mount point %s\n" +msgstr "" + +#: apt-pkg/cdrom.cc:579 +msgid "Unmounting CD-ROM\n" +msgstr "" + +#: apt-pkg/cdrom.cc:583 +msgid "Waiting for disc...\n" +msgstr "" + +#. Mount the new CDROM +#: apt-pkg/cdrom.cc:591 +msgid "Mounting CD-ROM...\n" +msgstr "" + +#: apt-pkg/cdrom.cc:609 +msgid "Scanning disc for index files..\n" +msgstr "" + +#: apt-pkg/cdrom.cc:647 +#, c-format +msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgstr "" + +#: apt-pkg/cdrom.cc:710 +msgid "That is not a valid name, try again.\n" +msgstr "" + +#: apt-pkg/cdrom.cc:726 +#, c-format +msgid "" +"This disc is called: \n" +"'%s'\n" +msgstr "" + +#: apt-pkg/cdrom.cc:730 +msgid "Copying package lists..." +msgstr "" + +#: apt-pkg/cdrom.cc:754 +msgid "Writing new source list\n" +msgstr "" + +#: apt-pkg/cdrom.cc:763 +msgid "Source list entries for this disc are:\n" +msgstr "" + +#: apt-pkg/cdrom.cc:803 +msgid "Unmounting CD-ROM..." +msgstr "" + +#: apt-pkg/indexcopy.cc:261 +#, c-format +msgid "Wrote %i records.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:263 +#, c-format +msgid "Wrote %i records with %i missing files.\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:266 +#, c-format +msgid "Wrote %i records with %i mismatched files\n" +msgstr "" + +#: apt-pkg/indexcopy.cc:269 +#, c-format +msgid "Wrote %i records with %i missing files and %i mismatched files\n" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:358 +#, c-format +msgid "Preparing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:359 +#, c-format +msgid "Unpacking %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:364 +#, c-format +msgid "Preparing to configure %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:365 +#, c-format +msgid "Configuring %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:366 +#, fuzzy, c-format +msgid "Installed %s" +msgstr " Sazkirî: " + +#: apt-pkg/deb/dpkgpm.cc:371 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:372 +#, c-format +msgid "Removing %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:373 +#, c-format +msgid "Removed %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:378 +#, c-format +msgid "Preparing to completely remove %s" +msgstr "" + +#: apt-pkg/deb/dpkgpm.cc:379 +#, c-format +msgid "Completely removed %s" +msgstr "" + +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" +msgstr "" + @@ -2765,6 +2765,27 @@ msgstr "Klarte ikke fjerne %s" msgid "Connection closed prematurely" msgstr "Forbindelsen ble uventet stengt" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s har ingen overstyringsoppfring\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s har ingen overstyringsoppfring\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Kunne ikke pne fila %s" + #~ msgid "Reading file list" #~ msgstr "Leser filliste" @@ -2793,6 +2793,27 @@ msgstr "Verwijderen van %s is mislukt" msgid "Connection closed prematurely" msgstr "Verbinding werd voortijdig afgebroken" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s heeft geen voorrangsingang\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s heeft geen voorrangsingang\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Kon het bestand %s niet openen" + #~ msgid "Reading file list" #~ msgstr "Bestandslijst wordt ingelezen" @@ -2748,6 +2748,27 @@ msgstr "Klarte ikkje fjerna %s" msgid "Connection closed prematurely" msgstr "Sambandet vart uventa stengd" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s har inga overstyringsoppfring\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s har inga overstyringsoppfring\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Klarte ikkje opna fila %s" + #~ msgid "Reading file list" #~ msgstr "Les filliste" @@ -2767,6 +2767,27 @@ msgstr "Falha ao remover %s" msgid "Connection closed prematurely" msgstr "Conexão encerrada prematuramente" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s não possui entrada override\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s não possui entrada override\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Não foi possível abrir ficheiro o %s" + #~ msgid "Reading file list" #~ msgstr "Lendo Lista de Ficheiros" diff --git a/po/pt_BR.po b/po/pt_BR.po index 6a53d25e2..20c24a68c 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,51 +1,51 @@ -# Debian-BR translation for apt. +# Brazilian Portuguese translation for apt. # Copyright (C) 2002 Free Software Foundation, Inc. # Gustavo Noronha Silva <kov@debian.org>, 2002. -# Andr Lus Lopes <andrelop@debian.org>, 2002-2005. -# +# André Luís Lopes <andrelop@debian.org>, 2002-2005. +# Felipe Augusto van de Wiel (faw) <faw@cathedrallabs.org>, 2006. msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-02-11 17:57-0200\n" -"Last-Translator: Andr Lus Lopes <andrelop@debian.org>\n" -"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n" +"POT-Creation-Date: 2006-07-27 00:54+0200\n" +"PO-Revision-Date: 2006-08-21 00:40-0300\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) <faw@cathedrallabs.org>\n" +"Language-Team: l10n portuguese <debian-l10n-portuguese@lists.debian.org>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: cmdline/apt-cache.cc:135 #, c-format msgid "Package %s version %s has an unmet dep:\n" -msgstr "O pacote %s verso %s tem uma dependncia desencontrada:\n" +msgstr "O pacote %s versão %s tem uma dependência desencontrada:\n" #: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 #: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 #: cmdline/apt-cache.cc:1508 #, c-format msgid "Unable to locate package %s" -msgstr "Impossvel encontrar o pacote %s" +msgstr "Impossível encontrar o pacote %s" #: cmdline/apt-cache.cc:232 -msgid "Total package names : " -msgstr "Total de Nomes de Pacotes : " +msgid "Total package names: " +msgstr "Total de nomes de pacotes: " #: cmdline/apt-cache.cc:272 msgid " Normal packages: " -msgstr " Pacotes Normais: " +msgstr " Pacotes normais: " #: cmdline/apt-cache.cc:273 msgid " Pure virtual packages: " -msgstr " Pacotes Puramente Virtuais: " +msgstr " Pacotes puramente virtuais: " #: cmdline/apt-cache.cc:274 msgid " Single virtual packages: " -msgstr " Pacotes Virtuais nicos: " +msgstr " Pacotes virtuais únicos: " #: cmdline/apt-cache.cc:275 msgid " Mixed virtual packages: " -msgstr " Pacotes Virtuais Misturados: " +msgstr " Pacotes virtuais misturados: " #: cmdline/apt-cache.cc:276 msgid " Missing: " @@ -53,57 +53,56 @@ msgstr " Faltando: " #: cmdline/apt-cache.cc:278 msgid "Total distinct versions: " -msgstr "Total de Verses Distintas: " +msgstr "Total de versões distintas: " #: cmdline/apt-cache.cc:280 msgid "Total dependencies: " -msgstr "Total de Dependncias: " +msgstr "Total de dependências: " #: cmdline/apt-cache.cc:283 msgid "Total ver/file relations: " -msgstr "Total de relaes Ver/Arquivo: " +msgstr "Total de relações ver/arquivo: " #: cmdline/apt-cache.cc:285 msgid "Total Provides mappings: " -msgstr "Total de Mapeamentos Providos: " +msgstr "Total de mapeamentos Provides: " #: cmdline/apt-cache.cc:297 msgid "Total globbed strings: " -msgstr "Total de Strings Globbed: " +msgstr "Total de strings globbed: " #: cmdline/apt-cache.cc:311 msgid "Total dependency version space: " -msgstr "Total de espao de Dependncia de Verso: " +msgstr "Total de espaço de dependência de versão: " #: cmdline/apt-cache.cc:316 msgid "Total slack space: " -msgstr "Total de espao Frouxo: " +msgstr "Total de espaço frouxo: " #: cmdline/apt-cache.cc:324 msgid "Total space accounted for: " -msgstr "Total de Espao Contado: " +msgstr "Total de espaço contabilizado: " #: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 #, c-format msgid "Package file %s is out of sync." -msgstr "O arquivo de pacote %s est dessincronizado." +msgstr "O arquivo de pacote %s está dessincronizado." #: cmdline/apt-cache.cc:1231 msgid "You must give exactly one pattern" -msgstr "Voc deve passar exatamente um padro" +msgstr "Você deve passar exatamente um padrão" #: cmdline/apt-cache.cc:1385 msgid "No packages found" -msgstr "Nenhum pacote encotrado" +msgstr "Nenhum pacote encontrado" #: cmdline/apt-cache.cc:1462 msgid "Package files:" -msgstr "Arquivos de Pacotes :" +msgstr "Arquivos de pacote:" #: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 msgid "Cache is out of sync, can't x-ref a package file" -msgstr "" -"O cache est fora de sincronia, no posso x-refenciar um arquivo de pacote" +msgstr "O cache está fora de sincronia, não posso x-ref um arquivo de pacote" #: cmdline/apt-cache.cc:1470 #, c-format @@ -113,11 +112,11 @@ msgstr "%4i %s\n" #. Show any packages have explicit pins #: cmdline/apt-cache.cc:1482 msgid "Pinned packages:" -msgstr "Pacotes Pinados: " +msgstr "Pacotes pinados:" #: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 msgid "(not found)" -msgstr "(no encontrado)" +msgstr "(não encontrado)" #. Installed version #: cmdline/apt-cache.cc:1515 @@ -131,16 +130,16 @@ msgstr "(nenhum)" #. Candidate Version #: cmdline/apt-cache.cc:1522 msgid " Candidate: " -msgstr " Candidatos: " +msgstr " Candidato: " #: cmdline/apt-cache.cc:1532 msgid " Package pin: " -msgstr " Pin do Pacote: " +msgstr " Pin do pacote: " #. Show the priority tables #: cmdline/apt-cache.cc:1541 msgid " Version table:" -msgstr " Tabela de Verso:" +msgstr " Tabela de versão:" #: cmdline/apt-cache.cc:1556 #, c-format @@ -192,47 +191,48 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" -"Uso: apt-cache [opes] comando\n" -" apt-cache [opes] add arquivo1 [arquivo1 ...]\n" -" apt-cache [opes] showpkg pacote1 [pacote2 ...]\n" -" apt-cache [opes] showsrc pacote1 [pacote2 ...]\n" +"Uso: apt-cache [opções] comando\n" +" apt-cache [opções] add arquivo1 [arquivo1 ...]\n" +" apt-cache [opções] showpkg pacote1 [pacote2 ...]\n" +" apt-cache [opções] showsrc pacote1 [pacote2 ...]\n" "\n" -"O apt-cache uma ferramenta de baixo nvel usada para manipular\n" -"os arquivos de cache binrios do APT e para buscar informaes\n" +"O apt-cache é uma ferramenta de baixo nível usada para manipular\n" +"os arquivos de cache binários do APT e para buscar informações\n" "neles\n" "\n" "Comandos:\n" " add - Adiciona um arquivo de pacote ao cache de fontes\n" -" gencaches - Constri ambos os caches de pacotes e fontes\n" -" showpkg - Mostra informaes gerais sobre um pacote\n" +" gencaches - Constrói ambos os caches de pacotes e fontes\n" +" showpkg - Mostra informações gerais sobre um pacote\n" " showsrc - Mostra registros fontes\n" -" stats - Mostra estatsticas bsicas\n" +" stats - Mostra estatísticas básicas\n" " dump - Mostra o arquivo inteiro em uma forma concisa\n" -" dumpavail - Imprime um arquivo de disponveis para stdout\n" -" unmet - Mostra dependncias no satisfeitas (quebradas)\n" -" search - Procura a lista de pacotes por um padro regex\n" -" show - Mostra um registro legvel sobre o pacote\n" -" depends - Mostra informaes cruas de dependncias de um pacote\n" +" dumpavail - Imprime um arquivo \"available\" para stdout\n" +" unmet - Mostra dependências não satisfeitas (quebradas)\n" +" search - Procura a lista de pacotes por um padrão regex\n" +" show - Mostra um registro legível sobre o pacote\n" +" depends - Mostra informações cruas de dependências de um pacote\n" +" rdepends - Mostra informações de dependências reversas de um pacote\n" " pkgnames - Lista o nome de todos os pacotes\n" -" dotty - Gera grficos de pacotes para o GraphVis\n" -" xvcg - Gera grficos de pacotes para o xvcg\n" -" policy - Mostra as configuraes de polticas\n" +" dotty - Gera gráficos de pacotes para o GraphVis\n" +" xvcg - Gera gráficos de pacotes para o xvcg\n" +" policy - Mostra as configurações de políticas\n" "\n" -"Opes:\n" +"Opções:\n" " -h Esse texto de ajuda.\n" " -p=? O cache de pacotes.\n" " -s=? O cache de fontes.\n" " -q Desabilita o indicador de progresso.\n" -" -i Mostra apenas dependncias importantes para o comando unmet.\n" -" -c=? Ler arquivo de configurao especificado.\n" -" -o=? Define uma opo arbitrria de configurao, ex: -o dir::cache=/tmp\n" -"Veja as pginas de manual apt-cache(8) e apt.conf(5) para maiores " -"informaes.\n" +" -i Mostra apenas dependências importantes para o comando unmet.\n" +" -c=? Ler arquivo de configuração especificado.\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" +"Veja as páginas de manual apt-cache(8) e apt.conf(5) para maiores " +"informações.\n" #: cmdline/apt-cdrom.cc:78 msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" msgstr "" -"Por favor, fornea um nome para este Disco, como 'Debian 2.1r1 Disco 1'" +"Por favor, forneça um nome para este Disco, como 'Debian 2.1r1 Disco 1'" #: cmdline/apt-cdrom.cc:93 msgid "Please insert a Disc in the drive and press enter" @@ -240,11 +240,11 @@ msgstr "Por favor, insira um Disco no leitor e pressione enter" #: cmdline/apt-cdrom.cc:117 msgid "Repeat this process for the rest of the CDs in your set." -msgstr "Pepita este processo para o restante dos CDs em seu conjunto." +msgstr "Repita este processo para o restante dos CDs em seu conjunto." #: cmdline/apt-config.cc:41 msgid "Arguments not in pairs" -msgstr "Argumentos no esto em pares" +msgstr "Argumentos não estão em pares" #: cmdline/apt-config.cc:76 msgid "" @@ -261,24 +261,24 @@ msgid "" " -c=? Read this configuration file\n" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" msgstr "" -"Uso: apt-config [opes] comando\n" +"Uso: apt-config [opções] comando\n" "\n" -"O apt-config uma ferramenta simples para ler o arquivo de configurao\n" +"O apt-config é uma ferramenta simples para ler o arquivo de configuração\n" "do APT\n" "\n" "Comandos:\n" -" shell - Modo Shell\n" -" dump - Mostra a configurao\n" +" shell - Modo shell\n" +" dump - Mostra a configuração\n" "\n" -"Opes:\n" +"Opções:\n" " -h Esse texto de ajuda.\n" -" -c=? Ler esse arquivo de configurao\n" -" -o=? Define uma opo arbitrria de configurao, ex: -o dir::cache=/tmp\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:98 #, c-format msgid "%s not a valid DEB package." -msgstr "%s no um pacote DEB vlido." +msgstr "%s não é um pacote DEB válido." #: cmdline/apt-extracttemplates.cc:232 msgid "" @@ -295,47 +295,47 @@ msgid "" msgstr "" "Uso: apt-extracttemplates arquivo1 [arquivo2 ...]\n" "\n" -"O apt-extracttemplates uma ferramenta para extrair configurao\n" -"e informao de template de pacotes debian.\n" +"O apt-extracttemplates é uma ferramenta para extrair configuração\n" +"e informação de modelo (\"template\") de pacotes debian.\n" "\n" -"Opes:\n" +"Opções:\n" " -h Esse texto de ajuda\n" -" -t Define o diretrio temporrio\n" -" -c=? Ler esse arquivo de configurao\n" -" -o=? Define uma opo arbitrria de configurao, ex: -o dir::cache=/tmp\n" +" -t Define o diretório temporário\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710 #, c-format msgid "Unable to write to %s" -msgstr "Impossvel escrever para %s" +msgstr "Impossível escrever para %s" #: cmdline/apt-extracttemplates.cc:310 msgid "Cannot get debconf version. Is debconf installed?" -msgstr "No foi possvel conseguir a verso do debconf. Ele est instalado?" +msgstr "Não foi possível obter a versão do debconf. O debconf está instalado?" #: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 msgid "Package extension list is too long" -msgstr "Lista de extenso de pacotes muito extensa" +msgstr "Lista de extensão de pacotes é muito extensa" #: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 #: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 #: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 #, c-format msgid "Error processing directory %s" -msgstr "Erro processando o diretrio %s" +msgstr "Erro processando o diretório %s" #: ftparchive/apt-ftparchive.cc:254 msgid "Source extension list is too long" -msgstr "Lista de extenso de fontes muito extensa" +msgstr "Lista de extensão de fontes é muito extensa" #: ftparchive/apt-ftparchive.cc:371 msgid "Error writing header to contents file" -msgstr "Erro ao gravar cabealho no arquivo de contedo" +msgstr "Erro ao gravar cabeçalho no arquivo de conteúdo" #: ftparchive/apt-ftparchive.cc:401 #, c-format msgid "Error processing contents %s" -msgstr "Erro processando Contedo %s" +msgstr "Erro processando conteúdo %s" #: ftparchive/apt-ftparchive.cc:556 msgid "" @@ -378,177 +378,190 @@ msgid "" " -c=? Read this configuration file\n" " -o=? Set an arbitrary configuration option" msgstr "" -"Uso: apt-ftparchive [opes] comando\n" -"Comandos: packages caminho_binrio [arquivo_override [prefixo_caminho]]\n" +"Uso: apt-ftparchive [opções] comando\n" +"Comandos: packages caminho_binário [arquivo_override [prefixo_caminho]]\n" " sources caminho_fonte [arquivo_override [prefixo_caminho]]\n" " contents caminho\n" " release caminho\n" " generate config [grupos]\n" " clean config\n" "\n" -"O apt-ftparchive gera arquivos de ndice para repositrios Debian. Ele \n" -"suporta muitos estilos de gerao, desde totalmente automatizadas at \n" +"O apt-ftparchive gera arquivos de índice para repositórios Debian. Ele \n" +"suporta muitos estilos de geração, desde totalmente automatizadas até \n" "substitutos funcionais para o dpkg-scanpackages e dpkg-scansources\n" "\n" -"O apt-ftparchive gera arquivos Package a partir de uma rvore de .debs.\n" -" O arquivo Package contm o contedo de todos os campos control de \n" +"O apt-ftparchive gera arquivos Package a partir de uma árvore de .debs. \n" +"O arquivo Package contém o conteúdo de todos os campos control de \n" "cada pacote bem como o hash MD5 e tamanho de arquivo. Um arquivo \n" -"override suportado para forar o valor de Priority e Section.\n" +"override é suportado para forçar o valor de Priority e Section.\n" "\n" "Similarmente, o apt-ftparchive gera arquivos Sources a partir de uma \n" -"rvore de .dscs. A opo --source-override pode ser usada para \n" +"árvore de .dscs. A opção --source-override pode ser usada para \n" "especificar um arquivo override de fontes\n" "\n" -"Os comandos 'packages' e 'sources' devem ser executados na raz da \n" -"rvore. CaminhoBinrio deve apontar para a base de procura recursiva \n" -"e o arquivo override deve conter as flags override. CaminhoPrefixo \n" -"includo aos campos filename caso esteja presente. Exemplo de uso do \n" -"repositrio Debian :\n" +"Os comandos 'packages' e 'sources' devem ser executados na raiz da \n" +"árvore. CaminhoBinário deve apontar para a base de procura recursiva \n" +"e o arquivo override deve conter as flags override. CaminhoPrefixo é \n" +"incluído aos campos filename caso esteja presente. Exemplo de uso do \n" +"repositório Debian:\n" " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" " dists/potato/main/binary-i386/Packages\n" "\n" -"Opes:\n" +"Opções:\n" " -h Este texto de ajuda\n" -" --md5 Controla a gerao de MD5\n" +" --md5 Controla a geração de MD5\n" " -s=? Arquivo fonte (source) override\n" " -q Quieto\n" " -d=? Seleciona a base de dados de caching opcional\n" -" --no-delink Habilita o modo de depurao delinking\n" -" --contents Controla a gerao do arquivo de contedo\n" -" -c=? L este arquivo de configurao\n" -" -o=? Define uma opo de configurao arbitrria" +" --no-delink Habilita o modo de depuração delinking\n" +" --contents Controla a geração do arquivo de conteúdo\n" +" -c=? Lê este arquivo de configuração\n" +" -o=? Define uma opção de configuração arbitrária" #: ftparchive/apt-ftparchive.cc:762 msgid "No selections matched" -msgstr "Nenhuma seleo correspondente" +msgstr "Nenhuma seleção correspondente" #: ftparchive/apt-ftparchive.cc:835 #, c-format msgid "Some files are missing in the package file group `%s'" -msgstr "Alguns arquivos esto faltando no arquivo de grupo de pacotes `%s'" +msgstr "Alguns arquivos estão faltando no arquivo de grupo de pacotes `%s'" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" -msgstr "A base de dados estava corrompida, arquivo renomeado para %s.old" +msgstr "BD estava corrompido, arquivo renomeado para %s.old" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" -msgstr "DB antigo, tentando atualizar %s" +msgstr "BD é antigo, tentando atualizar %s" + +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formato do BD é inválido. Se você atualizou a partir de uma versão antiga do " +"apt, por favor remova e recrie o banco de dados." -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" -msgstr "Impossvel abrir arquivo DB %s : %s" +msgstr "Impossível abrir arquivo BD %s: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Data do arquivo mudou %s" +msgid "Failed to stat %s" +msgstr "Falha ao checar %s" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" -msgstr "Repositrio no possui registro de controle" +msgstr "Repositório não possui registro de controle" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" -msgstr "Impossvel obter um cursor" +msgstr "Impossível obter um cursor" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" -msgstr "W: Impossvel ler o diretrio %s\n" +msgstr "W: Impossível ler o diretório %s\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" -msgstr "W: Impossvel checar %s\n" +msgstr "W: Impossível checar %s\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "W: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Erros aplicam ao arquivo " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Falha ao resolver %s" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" -msgstr "Falha ao percorrer a rvore" +msgstr "Falha ao percorrer a árvore" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Falha ao abrir %s" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " DeLink %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Falha ao executar readlink %s" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "Falha ao executar unlink %s" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Falha ao ligar %s a %s" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " Limite DeLink de %sB atingido.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Falha ao checar %s" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" -msgstr "Repositrio no possua campo pacote" +msgstr "Repositório não possuía campo pacote" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" -msgstr " %s no possui entrada override\n" +msgstr " %s não possui entrada override\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" -msgstr " mantenedor de %s %s, no %s\n" +msgstr " mantenedor de %s é %s, não %s\n" + +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s não possui entrada source override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s também não possui entrada binary override\n" #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" -msgstr "Erro Interno, no foi possvel localizar membro %s" +msgstr "Erro interno, não foi possível localizar membro %s" #: ftparchive/contents.cc:353 ftparchive/contents.cc:384 msgid "realloc - Failed to allocate memory" -msgstr "realloc - Falha ao alocar memria" +msgstr "realloc - Falha ao alocar memória" #: ftparchive/override.cc:38 ftparchive/override.cc:146 #, c-format msgid "Unable to open %s" -msgstr "Impossvel abrir %s" +msgstr "Impossível abrir %s" #: ftparchive/override.cc:64 ftparchive/override.cc:170 #, c-format @@ -573,12 +586,12 @@ msgstr "Falha ao ler o arquivo override %s" #: ftparchive/multicompress.cc:75 #, c-format msgid "Unknown compression algorithm '%s'" -msgstr "Algoritmo de Compactao Desconhecido '%s'" +msgstr "Algoritmo de compactação desconhecido '%s'" #: ftparchive/multicompress.cc:105 #, c-format msgid "Compressed output %s needs a compression set" -msgstr "Sada compactada %s precisa de um conjunto de compresso" +msgstr "Saída compactada %s precisa de um conjunto de compactação" #: ftparchive/multicompress.cc:172 methods/rsh.cc:91 msgid "Failed to create IPC pipe to subprocess" @@ -594,12 +607,12 @@ msgstr "Falha oa executar fork" #: ftparchive/multicompress.cc:215 msgid "Compress child" -msgstr "Compactar Filho" +msgstr "Compactar filho" #: ftparchive/multicompress.cc:238 #, c-format msgid "Internal error, failed to create %s" -msgstr "Erro Interno, Falha ao criar %s" +msgstr "Erro interno, falha ao criar %s" #: ftparchive/multicompress.cc:289 msgid "Failed to create subprocess IPC" @@ -619,7 +632,7 @@ msgstr "IO para subprocesso/arquivo falhou" #: ftparchive/multicompress.cc:458 msgid "Failed to read while computing MD5" -msgstr "Falha ao ler durante o clculo MD5" +msgstr "Falha ao ler durante o cálculo MD5" #: ftparchive/multicompress.cc:475 #, c-format @@ -638,37 +651,37 @@ msgstr "S" #: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 #, c-format msgid "Regex compilation error - %s" -msgstr "Erro de compilao de regex - %s" +msgstr "Erro de compilação de regex - %s" #: cmdline/apt-get.cc:237 msgid "The following packages have unmet dependencies:" -msgstr "Os pacotes a seguir tm dependncias desencontradas:" +msgstr "Os pacotes a seguir têm dependências desencontradas:" #: cmdline/apt-get.cc:327 #, c-format msgid "but %s is installed" -msgstr "mas %s est instalado" +msgstr "mas %s está instalado" #: cmdline/apt-get.cc:329 #, c-format msgid "but %s is to be installed" -msgstr "mas %s est para ser instalado" +msgstr "mas %s está para ser instalado" #: cmdline/apt-get.cc:336 msgid "but it is not installable" -msgstr "mas no est instalvel" +msgstr "mas não está instalável" #: cmdline/apt-get.cc:338 msgid "but it is a virtual package" -msgstr "mas um pacote virtual" +msgstr "mas é um pacote virtual" #: cmdline/apt-get.cc:341 msgid "but it is not installed" -msgstr "mas no est instalado" +msgstr "mas não está instalado" #: cmdline/apt-get.cc:341 msgid "but it is not going to be installed" -msgstr "mas no vai ser instalado" +msgstr "mas não vai ser instalado" #: cmdline/apt-get.cc:346 msgid " or" @@ -676,27 +689,27 @@ msgstr " ou" #: cmdline/apt-get.cc:375 msgid "The following NEW packages will be installed:" -msgstr "Os NOVOS pacotes a seguir sero instalados:" +msgstr "Os NOVOS pacotes a seguir serão instalados:" #: cmdline/apt-get.cc:401 msgid "The following packages will be REMOVED:" -msgstr "Os pacotes a seguir sero REMOVIDOS:" +msgstr "Os pacotes a seguir serão REMOVIDOS:" #: cmdline/apt-get.cc:423 msgid "The following packages have been kept back:" -msgstr "Os pacotes a seguir sero mantidos em suas verses atuais :" +msgstr "Os pacotes a seguir serão mantidos em suas versões atuais:" #: cmdline/apt-get.cc:444 msgid "The following packages will be upgraded:" -msgstr "Os pacotes a seguir sero atualizados :" +msgstr "Os pacotes a seguir serão atualizados:" #: cmdline/apt-get.cc:465 msgid "The following packages will be DOWNGRADED:" -msgstr "Os pacotes a seguir sero REBAIXADOS de verso :" +msgstr "Os pacotes a seguir serão REVERTIDOS:" #: cmdline/apt-get.cc:485 msgid "The following held packages will be changed:" -msgstr "Os pacotes segurados a seguir sero mudados :" +msgstr "Os seguintes pacotes mantidos serão mudados:" #: cmdline/apt-get.cc:538 #, c-format @@ -708,9 +721,9 @@ msgid "" "WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" msgstr "" -"AVISO: Os pacotes essenciais a seguir sero removidos.\n" -"Isso NO deveria ser feito a menos que voc saiba exatamente o que voc est " -"fazendo !" +"AVISO: Os pacotes essenciais a seguir serão removidos.\n" +"Isso NÃO deveria ser feito a menos que você saiba exatamente o que você está " +"fazendo!" #: cmdline/apt-get.cc:577 #, c-format @@ -730,16 +743,16 @@ msgstr "%lu desatualizados, " #: cmdline/apt-get.cc:585 #, c-format msgid "%lu to remove and %lu not upgraded.\n" -msgstr "%lu a serem removidos e %lu no atualizados.\n" +msgstr "%lu a serem removidos e %lu não atualizados.\n" #: cmdline/apt-get.cc:589 #, c-format msgid "%lu not fully installed or removed.\n" -msgstr "%lu pacotes no totalmente instalados ou removidos.\n" +msgstr "%lu pacotes não totalmente instalados ou removidos.\n" #: cmdline/apt-get.cc:649 msgid "Correcting dependencies..." -msgstr "Corrigindo dependncias..." +msgstr "Corrigindo dependências..." #: cmdline/apt-get.cc:652 msgid " failed." @@ -747,11 +760,11 @@ msgstr " falhou." #: cmdline/apt-get.cc:655 msgid "Unable to correct dependencies" -msgstr "Impossvel corrigir dependncias" +msgstr "Impossível corrigir dependências" #: cmdline/apt-get.cc:658 msgid "Unable to minimize the upgrade set" -msgstr "Impossvel minimizar o conjunto de atualizaes" +msgstr "Impossível minimizar o conjunto de atualizações" #: cmdline/apt-get.cc:660 msgid " Done" @@ -759,95 +772,95 @@ msgstr " Pronto" #: cmdline/apt-get.cc:664 msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Voc pode querer rodar `apt-get -f install' para corrigir isso." +msgstr "Você pode querer rodar `apt-get -f install' para corrigir isso." #: cmdline/apt-get.cc:667 msgid "Unmet dependencies. Try using -f." -msgstr "Dependncias desencontradas. Tente usar -f." +msgstr "Dependências desencontradas. Tente usar -f." #: cmdline/apt-get.cc:689 msgid "WARNING: The following packages cannot be authenticated!" -msgstr "AVISO : Os pacotes a seguir no podem ser autenticados !" +msgstr "AVISO: Os pacotes a seguir não podem ser autenticados!" #: cmdline/apt-get.cc:693 msgid "Authentication warning overridden.\n" -msgstr "Aviso de autenticao sobrescrito.\n" +msgstr "Aviso de autenticação sobrescrito.\n" #: cmdline/apt-get.cc:700 msgid "Install these packages without verification [y/N]? " -msgstr "Instalar estes pacotes sem verificao [s/N] ? " +msgstr "Instalar estes pacotes sem verificação [s/N]? " #: cmdline/apt-get.cc:702 msgid "Some packages could not be authenticated" -msgstr "Alguns pacotes no puderam ser autenticados" +msgstr "Alguns pacotes não puderam ser autenticados" #: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858 msgid "There are problems and -y was used without --force-yes" -msgstr "H problemas e -y foi usado sem --force-yes" +msgstr "Há problemas e -y foi usado sem --force-yes" #: cmdline/apt-get.cc:755 msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "Erro Interno, Install Packages foi chamado com pacotes quebrados !" +msgstr "Erro interno, InstallPackages foi chamado com pacotes quebrados!" #: cmdline/apt-get.cc:764 msgid "Packages need to be removed but remove is disabled." -msgstr "Pacotes precisam ser removidos mas a remoo est desabilitada." +msgstr "Pacotes precisam ser removidos mas a remoção está desabilitada." #: cmdline/apt-get.cc:775 msgid "Internal error, Ordering didn't finish" -msgstr "Erro Interno, Ordenao no finalizou" +msgstr "Erro interno, Ordenação não finalizou" #: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 msgid "Unable to lock the download directory" -msgstr "Impossvel criar lock no diretrio de download" +msgstr "Impossível criar lock no diretório de download" #: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." -msgstr "A lista de fontes no pde ser lida." +msgstr "A lista de fontes não pôde ser lida." #: cmdline/apt-get.cc:816 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "Que estranho .. Os tamanhos no batem, informe apt@packages.debian.org" +msgstr "Que estranho.. Os tamanhos não batem, informe apt@packages.debian.org" #: cmdline/apt-get.cc:821 #, c-format msgid "Need to get %sB/%sB of archives.\n" -msgstr " preciso fazer o download de %sB/%sB de arquivos.\n" +msgstr "É preciso fazer o download de %sB/%sB de arquivos.\n" #: cmdline/apt-get.cc:824 #, c-format msgid "Need to get %sB of archives.\n" -msgstr " preciso fazer o download de %sB de arquivos.\n" +msgstr "É preciso fazer o download de %sB de arquivos.\n" #: cmdline/apt-get.cc:829 #, c-format msgid "After unpacking %sB of additional disk space will be used.\n" msgstr "" -"Depois de desempacotamento, %sB adicionais de espao em disco sero usados.\n" +"Depois de desempacotar, %sB adicionais de espaço em disco serão usados.\n" #: cmdline/apt-get.cc:832 #, c-format msgid "After unpacking %sB disk space will be freed.\n" -msgstr "Depois de desempacotar, %sB de espao em disco sero liberados.\n" +msgstr "Depois de desempacotar, %sB de espaço em disco serão liberados.\n" #: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 #, c-format msgid "Couldn't determine free space in %s" -msgstr "No foi possvel determinar o espao livre em %s" +msgstr "Não foi possível determinar o espaço livre em %s" #: cmdline/apt-get.cc:849 #, c-format msgid "You don't have enough free space in %s." -msgstr "Voc no possui espao suficiente em %s." +msgstr "Você não possui espaço suficiente em %s." #: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884 msgid "Trivial Only specified but this is not a trivial operation." -msgstr "Triviais Apenas especificado mas essa no uma operao trivial." +msgstr "Trivial Only especificado mas essa não é uma operação trivial." #: cmdline/apt-get.cc:866 msgid "Yes, do as I say!" -msgstr "Sim, faa o que eu digo!" +msgstr "Sim, faça o que eu digo!" #: cmdline/apt-get.cc:868 #, c-format @@ -856,22 +869,22 @@ msgid "" "To continue type in the phrase '%s'\n" " ?] " msgstr "" -"Voc est prestes a fazer algo potencialmente destruidor.\n" +"Você está prestes a fazer algo potencialmente destruidor.\n" "Para continuar digite a frase '%s'\n" " ?] " #: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893 msgid "Abort." -msgstr "Abortado." +msgstr "Abortar." #: cmdline/apt-get.cc:889 msgid "Do you want to continue [Y/n]? " -msgstr "Quer continuar [S/n] ? " +msgstr "Quer continuar [S/n]? " #: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 #, c-format msgid "Failed to fetch %s %s\n" -msgstr "Falha ao baixar %s %s\n" +msgstr "Falha ao buscar %s %s\n" #: cmdline/apt-get.cc:979 msgid "Some files failed to download" @@ -879,47 +892,48 @@ msgstr "Alguns arquivos falharam ao baixar" #: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 msgid "Download complete and in download only mode" -msgstr "Download completo e em modo de apenas download" +msgstr "Baixar completo e no modo somente baixar (\"download only\")" #: cmdline/apt-get.cc:986 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -"Impossvel pegar alguns arquivos, talvez rodar apt-get update ou tentar com " -"--fix-missing?" +"Impossível buscar alguns arquivos, talvez executar apt-get update ou tentar " +"com --fix-missing?" #: cmdline/apt-get.cc:990 msgid "--fix-missing and media swapping is not currently supported" -msgstr "--fix-missing e troca de mdia no so suportados atualmente" +msgstr "--fix-missing e troca de mídia não são suportados atualmente" #: cmdline/apt-get.cc:995 msgid "Unable to correct missing packages." -msgstr "Impossvel corrigir pacotes faltosos." +msgstr "Impossível corrigir pacotes faltosos." #: cmdline/apt-get.cc:996 msgid "Aborting install." -msgstr "Abortando Instalao." +msgstr "Abortando instalação." #: cmdline/apt-get.cc:1030 #, c-format msgid "Note, selecting %s instead of %s\n" -msgstr "Nota, selecionando %s ao invs de %s\n" +msgstr "Nota, selecionando %s ao invés de %s\n" #: cmdline/apt-get.cc:1040 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" -msgstr "Pulando %s, j est instalado e a atualizao no est configurada.\n" +msgstr "" +"Ignorando %s, já está instalado e a atualização não está configurada.\n" #: cmdline/apt-get.cc:1058 #, c-format msgid "Package %s is not installed, so not removed\n" -msgstr "O pacote %s no est instalado, ento no ser removido\n" +msgstr "O pacote %s não está instalado, então não será removido\n" #: cmdline/apt-get.cc:1069 #, c-format msgid "Package %s is a virtual package provided by:\n" -msgstr "O pacote %s um pacote virtual provido por:\n" +msgstr "O pacote %s é um pacote virtual provido por:\n" #: cmdline/apt-get.cc:1081 msgid " [Installed]" @@ -927,7 +941,7 @@ msgstr " [Instalado]" #: cmdline/apt-get.cc:1086 msgid "You should explicitly select one to install." -msgstr "Voc deve selecionar um explicitamente para instalar." +msgstr "Você deve selecionar um explicitamente para instalar." #: cmdline/apt-get.cc:1091 #, c-format @@ -936,9 +950,9 @@ msgid "" "This may mean that the package is missing, has been obsoleted, or\n" "is only available from another source\n" msgstr "" -"O pacote %s no est disponvel, mas referenciado por outro pacote.\n" -"Isso pode significar que o pacote est faltando, ficou obsoleto ou\n" -"est disponvel somente a partir de outra fonte\n" +"O pacote %s não está disponível, mas é referenciado por outro pacote.\n" +"Isso pode significar que o pacote está faltando, ficou obsoleto ou\n" +"está disponível somente a partir de outra fonte\n" #: cmdline/apt-get.cc:1110 msgid "However the following packages replace it:" @@ -947,76 +961,74 @@ msgstr "No entanto, os pacotes a seguir o substituem:" #: cmdline/apt-get.cc:1113 #, c-format msgid "Package %s has no installation candidate" -msgstr "O pacote %s no tem candidato para instalao" +msgstr "O pacote %s não tem candidato para instalação" #: cmdline/apt-get.cc:1133 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" -msgstr "" -"A reinstalao de %s no possvel, o download do mesmo no pode ser " -"feito.\n" +msgstr "A reinstalação de %s não é possível, não pode ser baixado.\n" #: cmdline/apt-get.cc:1141 #, c-format msgid "%s is already the newest version.\n" -msgstr "%s j a verso mais nova.\n" +msgstr "%s já é a versão mais nova.\n" #: cmdline/apt-get.cc:1168 #, c-format msgid "Release '%s' for '%s' was not found" -msgstr "Release '%s' para '%s' no foi encontrada" +msgstr "Release '%s' para '%s' não foi encontrada" #: cmdline/apt-get.cc:1170 #, c-format msgid "Version '%s' for '%s' was not found" -msgstr "Verso '%s' para '%s' no foi encontrada" +msgstr "Versão '%s' para '%s' não foi encontrada" #: cmdline/apt-get.cc:1176 #, c-format msgid "Selected version %s (%s) for %s\n" -msgstr "Verso selecionada %s (%s) para %s\n" +msgstr "Versão selecionada %s (%s) para %s\n" #: cmdline/apt-get.cc:1313 msgid "The update command takes no arguments" -msgstr "O comando update no leva argumentos" +msgstr "O comando update não leva argumentos" #: cmdline/apt-get.cc:1326 msgid "Unable to lock the list directory" -msgstr "Impossvel criar lock no diretrio de listas" +msgstr "Impossível criar lock no diretório de listas" #: cmdline/apt-get.cc:1384 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -"Alguns arquivos de ndice falharam no download, eles foram ignorados ou os " -"antigos foram usados em seu lugar." +"Alguns arquivos de índice falharam para baixar, eles foram ignorados ou os " +"antigos foram usados no lugar." #: cmdline/apt-get.cc:1403 msgid "Internal error, AllUpgrade broke stuff" -msgstr "Erro Interno, AllUpgrade quebrou as coisas" +msgstr "Erro interno, AllUpgrade quebrou as coisas" #: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 #, c-format msgid "Couldn't find package %s" -msgstr "Impossvel achar pacote %s" +msgstr "Impossível achar pacote %s" #: cmdline/apt-get.cc:1516 #, c-format msgid "Note, selecting %s for regex '%s'\n" -msgstr "Nota, selecionando %s para expresso regular '%s'\n" +msgstr "Nota, selecionando %s para expressão regular '%s'\n" #: cmdline/apt-get.cc:1546 msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Voc deve querer rodar `apt-get -f install' para corrigir isso:" +msgstr "Você deve querer executar `apt-get -f install' para corrigir isso:" #: cmdline/apt-get.cc:1549 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -"Dependncias desencontradas. Tente `apt-get -f install' sem nenhum pacote " -"(ou especifique uma soluo)." +"Dependências desencontradas. Tente `apt-get -f install' sem nenhum pacote " +"(ou especifique uma solução)." #: cmdline/apt-get.cc:1561 msgid "" @@ -1025,9 +1037,9 @@ msgid "" "distribution that some required packages have not yet been created\n" "or been moved out of Incoming." msgstr "" -"Alguns pacotes no puderam ser instalados. Isso pode significar que\n" -"voc solicitou uma situao impossvel ou se voc est usando a\n" -"distribuio instvel, que alguns pacotes requeridos no foram \n" +"Alguns pacotes não puderam ser instalados. Isso pode significar que\n" +"você solicitou uma situação impossível ou se você está usando a\n" +"distribuição instável, que alguns pacotes requeridos não foram\n" "criados ainda ou foram tirados do Incoming." #: cmdline/apt-get.cc:1569 @@ -1036,13 +1048,13 @@ msgid "" "the package is simply not installable and a bug report against\n" "that package should be filed." msgstr "" -"J que voc solicitou uma nica operao bem provvel que o pacote\n" -"esteja simplesmente no instalvel e um relato de erro sobre esse\n" +"Já que você solicitou uma única operação é bem provável que o pacote\n" +"esteja simplesmente não instalável e um relato de erro sobre esse\n" "pacotes deve ser enviado." #: cmdline/apt-get.cc:1574 msgid "The following information may help to resolve the situation:" -msgstr "A informao a seguir pode ajudar a resolver a situao:" +msgstr "A informação a seguir pode ajudar a resolver a situação:" #: cmdline/apt-get.cc:1577 msgid "Broken packages" @@ -1050,19 +1062,19 @@ msgstr "Pacotes quebrados" #: cmdline/apt-get.cc:1603 msgid "The following extra packages will be installed:" -msgstr "Os pacotes extra a seguir sero instalados:" +msgstr "Os pacotes extra a seguir serão instalados:" #: cmdline/apt-get.cc:1674 msgid "Suggested packages:" -msgstr "Pacotes sugeridos :" +msgstr "Pacotes sugeridos:" #: cmdline/apt-get.cc:1675 msgid "Recommended packages:" -msgstr "Pacotes recomendados :" +msgstr "Pacotes recomendados:" #: cmdline/apt-get.cc:1695 msgid "Calculating upgrade... " -msgstr "Calculando Atualizao... " +msgstr "Calculando atualização... " #: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" @@ -1074,31 +1086,31 @@ msgstr "Pronto" #: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 msgid "Internal error, problem resolver broke stuff" -msgstr "Erro Interno, o solucionador de problemas quebrou coisas" +msgstr "Erro interno, o solucionador de problemas quebrou coisas" #: cmdline/apt-get.cc:1876 msgid "Must specify at least one package to fetch source for" -msgstr "Deve-se especificar pelo menos um pacote para que se baixe o fonte" +msgstr "Deve-se especificar pelo menos um pacote para que se busque o fonte" #: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 #, c-format msgid "Unable to find a source package for %s" -msgstr "Impossvel encontrar um pacote fonte para %s" +msgstr "Impossível encontrar um pacote fonte para %s" #: cmdline/apt-get.cc:1950 #, c-format msgid "Skipping already downloaded file '%s'\n" -msgstr "Omitindo arquivo j obtido '%s'\n" +msgstr "Ignorando arquivo já obtido '%s'\n" #: cmdline/apt-get.cc:1974 #, c-format msgid "You don't have enough free space in %s" -msgstr "Voc no possui espao livre suficiente em %s" +msgstr "Você não possui espaço livre suficiente em %s" #: cmdline/apt-get.cc:1979 #, c-format msgid "Need to get %sB/%sB of source archives.\n" -msgstr "Preciso pegar %sB/%sB de arquivos fonte.\n" +msgstr "Preciso obter %sB/%sB de arquivos fonte.\n" #: cmdline/apt-get.cc:1982 #, c-format @@ -1108,16 +1120,16 @@ msgstr "Precisa obter %sB de arquivos fonte.\n" #: cmdline/apt-get.cc:1988 #, c-format msgid "Fetch source %s\n" -msgstr "Obter Fonte %s\n" +msgstr "Obter fonte %s\n" #: cmdline/apt-get.cc:2019 msgid "Failed to fetch some archives." -msgstr "Falha ao fazer o download de alguns arquivos." +msgstr "Falha ao buscar alguns arquivos." #: cmdline/apt-get.cc:2047 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" -msgstr "Pulando desempacotamento de pacote fonte j desempacotado em %s\n" +msgstr "Ignorando desempacotamento de fonte já desempacotado em %s\n" #: cmdline/apt-get.cc:2059 #, c-format @@ -1127,12 +1139,12 @@ msgstr "Comando de desempacotamento '%s' falhou.\n" #: cmdline/apt-get.cc:2060 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "Confira se o pacote dpkg-dev est instalado.\n" +msgstr "Confira se o pacote 'dpkg-dev' está instalado.\n" #: cmdline/apt-get.cc:2077 #, c-format msgid "Build command '%s' failed.\n" -msgstr "Comando de construo '%s' falhou.\n" +msgstr "Comando de construção '%s' falhou.\n" #: cmdline/apt-get.cc:2096 msgid "Child process failed" @@ -1141,18 +1153,18 @@ msgstr "Processo filho falhou" #: cmdline/apt-get.cc:2112 msgid "Must specify at least one package to check builddeps for" msgstr "" -"Deve-se especificar pelo menos um pacote para que se cheque as dependncias " -"de construo" +"Deve-se especificar pelo menos um pacote para que se cheque as dependências " +"de construção" #: cmdline/apt-get.cc:2140 #, c-format msgid "Unable to get build-dependency information for %s" -msgstr "Impossvel conseguir informaes de dependncia de construo para %s" +msgstr "Impossível conseguir informações de dependência de construção para %s" #: cmdline/apt-get.cc:2160 #, c-format msgid "%s has no build depends.\n" -msgstr "%s no tem dependncias de construo.\n" +msgstr "%s não tem dependências de construção.\n" #: cmdline/apt-get.cc:2212 #, c-format @@ -1160,8 +1172,8 @@ msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -"a dependncia de %s por %s no pde ser satisfeita porque o pacote %s no " -"pde ser encontrado" +"a dependência de %s por %s não pôde ser satisfeita porque o pacote %s não " +"pôde ser encontrado" #: cmdline/apt-get.cc:2264 #, c-format @@ -1169,33 +1181,33 @@ msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -"a dependncia de %s por %s no pode ser satisfeita porque nenhuma verso " -"disponvel do pacote %s pode satisfazer os requerimentos de verso" +"a dependência de %s por %s não pôde ser satisfeita porque nenhuma versão " +"disponível do pacote %s pôde satisfazer os requerimentos de versão" #: cmdline/apt-get.cc:2299 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -"Falha ao satisfazer a dependncia %s para %s: Pacote instalado %s muito " +"Falha ao satisfazer a dependência de %s por %s: Pacote instalado %s é muito " "novo" #: cmdline/apt-get.cc:2324 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" -msgstr "Falha ao satisfazer dependncia %s para %s: %s" +msgstr "Falha ao satisfazer dependência de %s por %s: %s" #: cmdline/apt-get.cc:2338 #, c-format msgid "Build-dependencies for %s could not be satisfied." -msgstr "No foi possvel satisfazer as dependncias de compilao para %s." +msgstr "Não foi possível satisfazer as dependências de compilação para %s." #: cmdline/apt-get.cc:2342 msgid "Failed to process build dependencies" -msgstr "Falha ao processar as dependncias de construo" +msgstr "Falha ao processar as dependências de construção" #: cmdline/apt-get.cc:2374 msgid "Supported modules:" -msgstr "Mdulos Suportados:" +msgstr "Módulos suportados:" #: cmdline/apt-get.cc:2415 msgid "" @@ -1238,43 +1250,43 @@ msgid "" "pages for more information and options.\n" " This APT has Super Cow Powers.\n" msgstr "" -"Uso: apt-get [opes] comando\n" -" apt-get [opes] install|remove pacote1 [pacote2 ...]\n" -" apt-get [opes] source pacote1 [pacote2 ...]\n" +"Uso: apt-get [opções] comando\n" +" apt-get [opções] install|remove pacote1 [pacote2 ...]\n" +" apt-get [opções] source pacote1 [pacote2 ...]\n" "\n" -"O apt-get uma interface simples de linha de comando para fazer o\n" -"download de pacotes e instal-los. Os comandos usados mais frequentemente\n" -"so update e install\n" +"O apt-get é uma interface simples de linha de comando para fazer o\n" +"download de pacotes e instalá-los. Os comandos usados mais frequentemente\n" +"são update e install.\n" "\n" "Comandos:\n" " update - Adquire novas listas de pacotes\n" -" upgrade - Faz uma atualizao\n" -" install - Instala novos pacotes (um pacote libc6 e no libc6.deb)\n" -" remove - Remove um pacote\n" -" source - Faz o download de arquivos fonte\n" -" build-dep - Configura as dependncias de compilao de pacotes fonte\n" -" dist-upgrade - Atualiza a distribuio, consulte apt-get(8)\n" -" dselect-upgrade - Segue as selees do dselect\n" -" clean - Apaga arquivos baixados para instalao\n" -" autoclean - Apaga arquivos antigos baixados para instalao\n" -" check - Verifica se no h dependncias quebradas\n" +" upgrade - Faz uma atualização\n" +" install - Instala novos pacotes (um pacote é libc6 e não libc6.deb)\n" +" remove - Remove pacotes\n" +" source - Baixa arquivos fonte\n" +" build-dep - Configura as dependências de compilação de pacotes fonte\n" +" dist-upgrade - Atualiza a distribuição, consulte apt-get(8)\n" +" dselect-upgrade - Segue as seleções do dselect\n" +" clean - Apaga arquivos baixados para instalação\n" +" autoclean - Apaga arquivos antigos baixados para instalação\n" +" check - Verifica se não há dependências quebradas\n" "\n" -"Opes:\n" +"Opções:\n" " -h Esse texto de ajuda\n" -" -q Sada logvel, exceto para erros\n" -" -qq Sem sada, exceto para erros\n" -" -d Fazer o download apenas - NO instalar ou desempacotar arquivos\n" -" -s No-agir. Executar simulao de ordenao\n" -" -y Assumir Sim para todas as perguntas, no pedir confirmao\n" +" -q Saída logável, exceto para erros\n" +" -qq Sem saída, exceto para erros\n" +" -d Fazer o download apenas - NÃO instalar ou desempacotar arquivos\n" +" -s Não-agir. Executar simulação de ordenação\n" +" -y Assumir Sim para todas as perguntas e não questionar\n" " -f Tenta continuar se a checagem de integridade falhar\n" -" -m Tenta continuar se os arquivos no podem ser localizados\n" -" -u Mostra uma lista de pacotes atualizados tambm\n" -" -b Constri o pacote fonte depois de baix-lo\n" -" -c=? Ler esse arquivo de configurao\n" -" -o=? Definir uma opo de configurao arbitrria, \n" -" ex -o dir::cache=/tmp\n" -"Veja as pginas de manual apt-get(8), sources.list(5) e apt.conf(5)\n" -"para maiores informaes e opes.\n" +" -m Tenta continuar se os arquivos não podem ser localizados\n" +" -u Mostra uma lista de pacotes atualizados também\n" +" -b Constrói o pacote fonte depois de baixá-lo\n" +" -V Exibe números de versões mais detalhados\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Definir uma opção de configuração arbitrária, ex -o dir::cache=/tmp\n" +"Veja as páginas de manual apt-get(8), sources.list(5) e apt.conf(5)\n" +"para maiores informações e opções.\n" " Este APT tem Poderes de Super Vaca.\n" #: cmdline/acqprogress.cc:55 @@ -1310,7 +1322,7 @@ msgid "" " '%s'\n" "in the drive '%s' and press enter\n" msgstr "" -"Troca de mdia: Por favor insira o disco nomeado\n" +"Troca de mídia: por favor insira o disco nomeado\n" " '%s'\n" "no drive '%s' e pressione enter\n" @@ -1331,20 +1343,20 @@ msgid "" " -c=? Read this configuration file\n" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" msgstr "" -"Uso: apt-sortpkgs [opes] arquivo1 [arquivo2 ...]\n" +"Uso: apt-sortpkgs [opções] arquivo1 [arquivo2 ...]\n" "\n" -"O apt-sortpkgs uma ferramenta simples para ordenar arquivos de pacote.\n" -"A opo -s usada para indicar que tipo de arquivo .\n" +"O apt-sortpkgs é uma ferramenta simples para ordenar arquivos de pacote.\n" +"A opção -s é usada para indicar que tipo de arquivo é.\n" "\n" -"Opes:\n" +"Opções:\n" " -h Esse texto de ajuda\n" -" -s Usar ordenao de arquivo fonte\n" -" -c=? Ler esse arquivo de configurao\n" -" -o=? Define uma opo arbitrria de configurao, ex: -o dir::cache=/tmp\n" +" -s Usar ordenação de arquivo fonte\n" +" -c=? Ler esse arquivo de configuração\n" +" -o=? Define uma opção arbitrária de configuração, ex: -o dir::cache=/tmp\n" #: dselect/install:32 msgid "Bad default setting!" -msgstr "Configurao padro ruim!" +msgstr "Configuração padrão ruim!" #: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93 #: dselect/install:104 dselect/update:45 @@ -1356,75 +1368,77 @@ msgstr "Pressione enter para continuar." # at only 80 characters per line, if possible. #: dselect/install:100 msgid "Some errors occurred while unpacking. I'm going to configure the" -msgstr "Alguns erros ocorreram ao desempacotar. Irei configurar os pacotes" +msgstr "" +"Alguns erros ocorreram ao desempacotar. Eu vou configurar os pacotes que " +"foram" #: dselect/install:101 msgid "packages that were installed. This may result in duplicate errors" -msgstr "que foram instalados. Isto pode resultar em erros duplicados ou erros" +msgstr "" +"instalados. Isto pode resultar em erros duplicados ou erros causados por" #: dselect/install:102 msgid "or errors caused by missing dependencies. This is OK, only the errors" -msgstr "causados por dependncias faltantes. Isto est OK, somente os erros" +msgstr "" +"dependências faltantes. Isto está OK, somente os erros acima desta mensagem" #: dselect/install:103 msgid "" "above this message are important. Please fix them and run [I]nstall again" -msgstr "" -"acima desta mensagem so importantes. Por favor conserte-os e execute [I]" -"nstalar novamente" +msgstr "são importantes. Por favor, conserte-os e execute [I]nstalar novamente" #: dselect/update:30 msgid "Merging available information" -msgstr "Mesclando informao Disponvel" +msgstr "Mesclando informação disponível" #: apt-inst/contrib/extracttar.cc:117 msgid "Failed to create pipes" msgstr "Falha ao criar pipes" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Falha ao executar gzip " -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Arquivo corrompido" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Checksum do arquivo tar falhou, arquivo corrompido" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" -msgstr "Tipo de cabealho TAR %u desconhecido, membro %s" +msgstr "Tipo de cabeçalho TAR %u desconhecido, membro %s" #: apt-inst/contrib/arfile.cc:73 msgid "Invalid archive signature" -msgstr "Assinatura de arquivo invlida" +msgstr "Assinatura de arquivo inválida" #: apt-inst/contrib/arfile.cc:81 msgid "Error reading archive member header" -msgstr "Erro na leitura de cabealho membro de arquivo" +msgstr "Erro na leitura de cabeçalho membro de arquivo" #: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 msgid "Invalid archive member header" -msgstr "Cabealho membro de arquivo invlido" +msgstr "Cabeçalho membro de arquivo inválido" #: apt-inst/contrib/arfile.cc:131 msgid "Archive is too short" -msgstr "Arquivo muito pequeno" +msgstr "Arquivo é muito pequeno" #: apt-inst/contrib/arfile.cc:135 msgid "Failed to read the archive headers" -msgstr "Falha ao ler os cabeahos do arquivo" +msgstr "Falha ao ler os cabeçalhos do arquivo" #: apt-inst/filelist.cc:384 msgid "DropNode called on still linked node" -msgstr "DropNode chamado em nodo ainda linkado" +msgstr "DropNode chamado em nodo ainda ligado (linked)" #: apt-inst/filelist.cc:416 msgid "Failed to locate the hash element!" -msgstr "Falha ao localizar o elemento hash !" +msgstr "Falha ao localizar o elemento hash!" #: apt-inst/filelist.cc:463 msgid "Failed to allocate diversion" @@ -1432,7 +1446,7 @@ msgstr "Falha ao alocar desvio (diversion)" #: apt-inst/filelist.cc:468 msgid "Internal error in AddDiversion" -msgstr "Erro Interno em AddDiversion" +msgstr "Erro interno em AddDiversion" #: apt-inst/filelist.cc:481 #, c-format @@ -1442,12 +1456,12 @@ msgstr "Tentando sobreescrever um desvio, %s -> %s e %s/%s" #: apt-inst/filelist.cc:510 #, c-format msgid "Double add of diversion %s -> %s" -msgstr "Adio dupla de desvio %s -> %s" +msgstr "Adição dupla de desvio %s -> %s" #: apt-inst/filelist.cc:553 #, c-format msgid "Duplicate conf file %s/%s" -msgstr "Arquivo de confgiurao duplicado %s/%s" +msgstr "Arquivo de configuração duplicado %s/%s" #: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 #, c-format @@ -1462,7 +1476,7 @@ msgstr "Falha ao fechar arquivo %s" #: apt-inst/extract.cc:96 apt-inst/extract.cc:167 #, c-format msgid "The path %s is too long" -msgstr "O caminho %s muito longo" +msgstr "O caminho %s é muito longo" #: apt-inst/extract.cc:127 #, c-format @@ -1472,21 +1486,21 @@ msgstr "Desempacotando %s mais de uma vez" #: apt-inst/extract.cc:137 #, c-format msgid "The directory %s is diverted" -msgstr "O diretrio %s desviado (diverted)" +msgstr "O diretório %s é desviado (diverted)" #: apt-inst/extract.cc:147 #, c-format msgid "The package is trying to write to the diversion target %s/%s" -msgstr "Opacote est tentando gravar no alvo de desvio %s/%s" +msgstr "O pacote está tentando gravar no alvo de desvio %s/%s" #: apt-inst/extract.cc:157 apt-inst/extract.cc:300 msgid "The diversion path is too long" -msgstr "O caminho de desvio muito longo" +msgstr "O caminho de desvio é muito longo" #: apt-inst/extract.cc:243 #, c-format msgid "The directory %s is being replaced by a non-directory" -msgstr "O diretrio %s est sendo substitudo por um no-diretrio" +msgstr "O diretório %s está sendo substituído por um não-diretório" #: apt-inst/extract.cc:283 msgid "Failed to locate node in its hash bucket" @@ -1494,12 +1508,12 @@ msgstr "Falha ao localizar nodo em seu hash bucket" #: apt-inst/extract.cc:287 msgid "The path is too long" -msgstr "O caminho muito longo" +msgstr "O caminho é muito longo" #: apt-inst/extract.cc:417 #, c-format msgid "Overwrite package match with no version for %s" -msgstr "Sobreescrita de pacote no casa com nenhuma verso para %s" +msgstr "Sobreescrita de pacote não casa com nenhuma versão para %s" #: apt-inst/extract.cc:434 #, c-format @@ -1511,12 +1525,12 @@ msgstr "Arquivo %s/%s sobreescreve arquivo no pacote %s" #: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 #, c-format msgid "Unable to read %s" -msgstr "Impossvel ler %s" +msgstr "Impossível ler %s" #: apt-inst/extract.cc:494 #, c-format msgid "Unable to stat %s" -msgstr "Impossvel checar %s" +msgstr "Impossível checar %s" #: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 #, c-format @@ -1526,37 +1540,37 @@ msgstr "Falha ao remover %s" #: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 #, c-format msgid "Unable to create %s" -msgstr "Impossvel criar %s" +msgstr "Impossível criar %s" #: apt-inst/deb/dpkgdb.cc:118 #, c-format msgid "Failed to stat %sinfo" -msgstr "Impossvel checar %sinfo." +msgstr "Falha ao checar %sinfo." #: apt-inst/deb/dpkgdb.cc:123 msgid "The info and temp directories need to be on the same filesystem" -msgstr "Os diretrios info e temp precisam estar no mesmo sistema de arquivos" +msgstr "Os diretórios info e temp precisam estar no mesmo sistema de arquivos" #. Build the status cache #: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643 #: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717 #: apt-pkg/pkgcachegen.cc:840 msgid "Reading package lists" -msgstr "Lendo Lista de Pacotes" +msgstr "Lendo lista de pacotes" #: apt-inst/deb/dpkgdb.cc:180 #, c-format msgid "Failed to change to the admin dir %sinfo" -msgstr "Falha ao mudar para o diretorio administrativo %sinfo" +msgstr "Falha ao mudar para o diretório administrativo %sinfo" #: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 #: apt-inst/deb/dpkgdb.cc:448 msgid "Internal error getting a package name" -msgstr "Erro Interno obtendo um Nome de Pacote" +msgstr "Erro interno obtendo um nome de pacote" #: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386 msgid "Reading file listing" -msgstr "Lendo Listagem de Pacotes" +msgstr "Lendo listagem de pacotes" #: apt-inst/deb/dpkgdb.cc:216 #, c-format @@ -1565,9 +1579,9 @@ msgid "" "then make it empty and immediately re-install the same version of the " "package!" msgstr "" -"Falha ao abrir o arquivo de lista '%sinfo/%s'. Caso voc no consiga " +"Falha ao abrir o arquivo de lista '%sinfo/%s'. Caso você não consiga " "restaurar esse arquivo, crie um outro arquivo vazio e reinstale a mesma " -"verso do pacote !" +"versão do pacote!" #: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 #, c-format @@ -1585,17 +1599,17 @@ msgstr "Falha ao abrir o arquivo de desvios %sdiversions" #: apt-inst/deb/dpkgdb.cc:324 msgid "The diversion file is corrupted" -msgstr "O arquivo de desvios est corrompido" +msgstr "O arquivo de desvios está corrompido" #: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336 #: apt-inst/deb/dpkgdb.cc:341 #, c-format msgid "Invalid line in the diversion file: %s" -msgstr "Linha invlida no arquivo de desvio: %s" +msgstr "Linha inválida no arquivo de desvio: %s" #: apt-inst/deb/dpkgdb.cc:362 msgid "Internal error adding a diversion" -msgstr "Erro Interno ao adicionar um desvio" +msgstr "Erro interno ao adicionar um desvio" #: apt-inst/deb/dpkgdb.cc:383 msgid "The pkg cache must be initialized first" @@ -1604,89 +1618,89 @@ msgstr "O cache de pacotes deve ser inicializado primeiro" #: apt-inst/deb/dpkgdb.cc:443 #, c-format msgid "Failed to find a Package: header, offset %lu" -msgstr "Falha ao encontrar um Pacote: Cabealho, posio %lu" +msgstr "Falha ao encontrar um Pacote: cabeçalho, posição %lu" #: apt-inst/deb/dpkgdb.cc:465 #, c-format msgid "Bad ConfFile section in the status file. Offset %lu" -msgstr "Seo ConfFile ruim no arquivo de estado. Posio %lu" +msgstr "Seção ConfFile ruim no arquivo de estado. Posição %lu" #: apt-inst/deb/dpkgdb.cc:470 #, c-format msgid "Error parsing MD5. Offset %lu" -msgstr "Erro interpretando MD5. Posio %lu" +msgstr "Erro interpretando MD5. Posição %lu" #: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 #, c-format msgid "This is not a valid DEB archive, missing '%s' member" -msgstr "Este no um arquivo DEB vlido, membro '%s' faltando" +msgstr "Este não é um arquivo DEB válido, membro '%s' faltando" #: apt-inst/deb/debfile.cc:52 #, c-format msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" msgstr "" -"Este no um repositrio DEB vlido, o mesmo no possui um membro '%s' ou '%" -"s'" +"Este não é um arquivo DEB válido, o mesmo não possui um membro '%s' ou '%s'" #: apt-inst/deb/debfile.cc:112 #, c-format msgid "Couldn't change to %s" -msgstr "No foi possvel mudar para %s" +msgstr "Não foi possível mudar para %s" #: apt-inst/deb/debfile.cc:138 msgid "Internal error, could not locate member" -msgstr "Erro Interno, no foi possvel localizar membro" +msgstr "Erro interno, não foi possível localizar membro" #: apt-inst/deb/debfile.cc:171 msgid "Failed to locate a valid control file" -msgstr "Falha em localizar um arquivo de controle vlido" +msgstr "Falha em localizar um arquivo de controle válido" #: apt-inst/deb/debfile.cc:256 msgid "Unparsable control file" -msgstr "Arquivo de controle no interpretvel" +msgstr "Arquivo de controle não interpretável" #: methods/cdrom.cc:114 #, c-format msgid "Unable to read the cdrom database %s" -msgstr "Impossvel ler a base de dados de cdrom %s" +msgstr "Impossível ler a base de dados de cdrom %s" #: methods/cdrom.cc:123 msgid "" "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " "cannot be used to add new CD-ROMs" msgstr "" -"Por favor use o apt-cdrom para fazer com que este CD seja reconhecido pelo " -"APT. apt-get update no pode ser usado para adicionar novos CDs" +"Por favor use o apt-cdrom para fazer com que este CD-ROM seja reconhecido " +"pelo APT. apt-get update não pode ser usado para adicionar novos CD-ROMs" #: methods/cdrom.cc:131 msgid "Wrong CD-ROM" -msgstr "CD errado" +msgstr "CD-ROM errado" #: methods/cdrom.cc:164 #, c-format msgid "Unable to unmount the CD-ROM in %s, it may still be in use." -msgstr "Impossvel desmontar o CD-ROM em %s, o mesmo ainda pode estar em uso." +msgstr "Impossível desmontar o CD-ROM em %s, o mesmo ainda pode estar em uso." #: methods/cdrom.cc:169 msgid "Disk not found." -msgstr "Disco no encontrado." +msgstr "Disco não encontrado." #: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 msgid "File not found" -msgstr "Arquivo no encontrado" +msgstr "Arquivo não encontrado" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 +#: methods/gzip.cc:142 methods/rred.cc:234 methods/rred.cc:243 msgid "Failed to stat" msgstr "Falha ao checar" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 +#: methods/rred.cc:240 msgid "Failed to set modification time" -msgstr "Falha ao definir hora de modificao" +msgstr "Falha ao definir hora de modificação" #: methods/file.cc:44 msgid "Invalid URI, local URIS must not start with //" -msgstr "URI invlida, URIs locais no devem iniciar com //" +msgstr "URI inválida, URIs locais não devem iniciar com //" #. Login must be before getpeername otherwise dante won't work. #: methods/ftp.cc:162 @@ -1695,16 +1709,16 @@ msgstr "Logando" #: methods/ftp.cc:168 msgid "Unable to determine the peer name" -msgstr "Impossvel determinar o nome do ponto" +msgstr "Impossível determinar o nome do ponto" #: methods/ftp.cc:173 msgid "Unable to determine the local name" -msgstr "Impossvel determinar o nome local" +msgstr "Impossível determinar o nome local" #: methods/ftp.cc:204 methods/ftp.cc:232 #, c-format msgid "The server refused the connection and said: %s" -msgstr "Servidor recusou nossa conexo e respondeu: %s" +msgstr "Servidor recusou a conexão e respondeu: %s" #: methods/ftp.cc:210 #, c-format @@ -1721,13 +1735,13 @@ msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." msgstr "" -"Um servidor proxy foi especificado mas no um script de login, Acquire::ftp::" -"ProxyLogin est vazio." +"Um servidor proxy foi especificado mas não um script de login, Acquire::ftp::" +"ProxyLogin está vazio." #: methods/ftp.cc:265 #, c-format msgid "Login script command '%s' failed, server said: %s" -msgstr "Comando de script de login '%s'falhou, servidor respondeu: %s" +msgstr "Comando de script de login '%s' falhou, servidor respondeu: %s" #: methods/ftp.cc:291 #, c-format @@ -1736,11 +1750,11 @@ msgstr "TYPE falhou, servidor respondeu: %s" #: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 msgid "Connection timeout" -msgstr "Tempo limite de conexo atingido" +msgstr "Conexão expirou" #: methods/ftp.cc:335 msgid "Server closed the connection" -msgstr "Servidor fechou a conexo" +msgstr "Servidor fechou a conexão" #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 msgid "Read error" @@ -1752,48 +1766,48 @@ msgstr "Uma resposta sobrecarregou o buffer" #: methods/ftp.cc:362 methods/ftp.cc:374 msgid "Protocol corruption" -msgstr "Corrupo de protocolo" +msgstr "Corrupção de protocolo" #: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232 msgid "Write error" -msgstr "Erro de gravao" +msgstr "Erro de gravação" #: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 msgid "Could not create a socket" -msgstr "No foi possvel criar um socket" +msgstr "Não foi possível criar um socket" #: methods/ftp.cc:698 msgid "Could not connect data socket, connection timed out" -msgstr "No foi possvel conectar socket de dados, conexo expirou" +msgstr "Não foi possível conectar socket de dados, conexão expirou" #: methods/ftp.cc:704 msgid "Could not connect passive socket." -msgstr "No foi possvel conectar socket passivo." +msgstr "Não foi possível conectar socket passivo." #: methods/ftp.cc:722 msgid "getaddrinfo was unable to get a listening socket" -msgstr "getaddrinfo no foi capaz de obter um socket de escuta" +msgstr "getaddrinfo não foi capaz de obter um socket de escuta" #: methods/ftp.cc:736 msgid "Could not bind a socket" -msgstr "No foi possvel fazer o bind de um socket" +msgstr "Não foi possível fazer o bind de um socket" #: methods/ftp.cc:740 msgid "Could not listen on the socket" -msgstr "No foi possvel ouvir no socket" +msgstr "Não foi possível ouvir no socket" #: methods/ftp.cc:747 msgid "Could not determine the socket's name" -msgstr "No foi possvel determinar o nome do scoket" +msgstr "Não foi possível determinar o nome do socket" #: methods/ftp.cc:779 msgid "Unable to send PORT command" -msgstr "Impossvel enviar o comando PORT" +msgstr "Impossível enviar o comando PORT" #: methods/ftp.cc:789 #, c-format msgid "Unknown address family %u (AF_*)" -msgstr "Famlia de endereos %u desconhecida (AF_*)" +msgstr "Família de endereços %u desconhecida (AF_*)" #: methods/ftp.cc:798 #, c-format @@ -1802,20 +1816,20 @@ msgstr "EPRT falhou, servidor respondeu: %s" #: methods/ftp.cc:818 msgid "Data socket connect timed out" -msgstr "Conexo do socket de dados expirou" +msgstr "Conexão do socket de dados expirou" #: methods/ftp.cc:825 msgid "Unable to accept connection" -msgstr "Impossvel aceitar conexo" +msgstr "Impossível aceitar conexão" -#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303 +#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "Problema fazendo o hash do arquivo" #: methods/ftp.cc:877 #, c-format msgid "Unable to fetch file, server said '%s'" -msgstr "Impossvel obter arquivo, servidor respondeu '%s'" +msgstr "Impossível obter arquivo, servidor respondeu '%s'" #: methods/ftp.cc:892 methods/rsh.cc:322 msgid "Data socket timed out" @@ -1824,7 +1838,7 @@ msgstr "Socket de dados expirou" #: methods/ftp.cc:922 #, c-format msgid "Data transfer failed, server said '%s'" -msgstr "Transferncia de dados falhou, servidor respondeu '%s'" +msgstr "Transferência de dados falhou, servidor respondeu '%s'" #. Get the files information #: methods/ftp.cc:997 @@ -1833,7 +1847,7 @@ msgstr "Pesquisa" #: methods/ftp.cc:1109 msgid "Unable to invoke " -msgstr "Impossvel invocar " +msgstr "Impossível invocar " #: methods/connect.cc:64 #, c-format @@ -1848,22 +1862,22 @@ msgstr "[IP: %s %s]" #: methods/connect.cc:80 #, c-format msgid "Could not create a socket for %s (f=%u t=%u p=%u)" -msgstr "No foi possvel criar um socket para %s (f=%u t=%u p=%u)" +msgstr "Não foi possível criar um socket para %s (f=%u t=%u p=%u)" #: methods/connect.cc:86 #, c-format msgid "Cannot initiate the connection to %s:%s (%s)." -msgstr "No posso iniciar a conexo para %s:%s (%s)." +msgstr "Não posso iniciar a conexão para %s:%s (%s)." #: methods/connect.cc:93 #, c-format msgid "Could not connect to %s:%s (%s), connection timed out" -msgstr "No foi possvel conectar em %s:%s (%s), conexo expirou" +msgstr "Não foi possível conectar em %s:%s (%s), conexão expirou" #: methods/connect.cc:108 #, c-format msgid "Could not connect to %s:%s (%s)." -msgstr "No foi possvel conectar em %s:%s (%s)." +msgstr "Não foi possível conectar em %s:%s (%s)." #. We say this mainly because the pause here is for the #. ssh connection that is still going @@ -1875,12 +1889,12 @@ msgstr "Conectando a %s" #: methods/connect.cc:167 #, c-format msgid "Could not resolve '%s'" -msgstr "No foi possvel resolver '%s'" +msgstr "Não foi possível resolver '%s'" #: methods/connect.cc:173 #, c-format msgid "Temporary failure resolving '%s'" -msgstr "Falaha temporria resolvendo '%s'" +msgstr "Falha temporária resolvendo '%s'" #: methods/connect.cc:176 #, c-format @@ -1890,161 +1904,163 @@ msgstr "Algo estranho aconteceu resolvendo '%s:%s' (%i)" #: methods/connect.cc:223 #, c-format msgid "Unable to connect to %s %s:" -msgstr "Impossvel conectar em %s %s:" +msgstr "Impossível conectar em %s %s:" -#: methods/gpgv.cc:64 -#, fuzzy, c-format +#: methods/gpgv.cc:65 +#, c-format msgid "Couldn't access keyring: '%s'" -msgstr "No foi possvel resolver '%s'" +msgstr "Não foi possível acessar o chaveiro: '%s'" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" -"E: Lista de argumentos de Acquire::gpgv::Options muito extensa. Sando." +"E: Lista de argumentos de Acquire::gpgv::Options muito extensa. Saindo." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -"Erro interno : Assintura boa, mas no foi possvel determinar a impresso " -"digital da chave ?!" +"Erro interno: Assinatura boa, mas não foi possível determinar a impressão " +"digital da chave?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." -msgstr "Ao menos uma assinatura invlida foi encontrada." +msgstr "Ao menos uma assinatura inválida foi encontrada." -#: methods/gpgv.cc:207 -#, fuzzy, c-format +#: methods/gpgv.cc:213 +#, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" -msgstr " ao verificar assinatura (o gnupg est instalado ?)" +msgstr "" +"Não foi possível executar '%s' para verificar a assinatura (o gnupg está " +"instalado?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Erro desconhecido executando gpgv" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" -msgstr "As seguintes assinaturas foram invlidas :\n" +msgstr "As seguintes assinaturas eram inválidas:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" msgstr "" -"As assinaturas a seguir no puderam ser verificadas devido a chave pblica " -"no estar disponvel :\n" +"As assinaturas a seguir não puderam ser verificadas devido a chave pública " +"não estar disponível:\n" #: methods/gzip.cc:57 #, c-format msgid "Couldn't open pipe for %s" -msgstr "No foi possvel abrir pipe para %s" +msgstr "Não foi possível abrir pipe para %s" #: methods/gzip.cc:102 #, c-format msgid "Read error from %s process" msgstr "Erro de leitura do processo %s" -#: methods/http.cc:376 +#: methods/http.cc:375 msgid "Waiting for headers" -msgstr "Aguardando por cabealhos" +msgstr "Aguardando por cabeçalhos" -#: methods/http.cc:522 +#: methods/http.cc:521 #, c-format msgid "Got a single header line over %u chars" -msgstr "Recebi uma nica linha de cabealho acima de %u caracteres" +msgstr "Recebi uma única linha de cabeçalho acima de %u caracteres" -#: methods/http.cc:530 +#: methods/http.cc:529 msgid "Bad header line" -msgstr "Linha de cabealho ruim" +msgstr "Linha de cabeçalho ruim" -#: methods/http.cc:549 methods/http.cc:556 +#: methods/http.cc:548 methods/http.cc:555 msgid "The HTTP server sent an invalid reply header" -msgstr "O servidor http enviou um cabealho de resposta invlido" +msgstr "O servidor HTTP enviou um cabeçalho de resposta inválido" -#: methods/http.cc:585 +#: methods/http.cc:584 msgid "The HTTP server sent an invalid Content-Length header" -msgstr "O servidor http enviou um cabealho Conten-Length invlido" +msgstr "O servidor HTTP enviou um cabeçalho Content-Length inválido" -#: methods/http.cc:600 +#: methods/http.cc:599 msgid "The HTTP server sent an invalid Content-Range header" -msgstr "O servidor http enviou um cabealho Conten-Range invlido" +msgstr "O servidor HTTP enviou um cabeçalho Content-Range inválido" -#: methods/http.cc:602 +#: methods/http.cc:601 msgid "This HTTP server has broken range support" -msgstr "Este servidor http possui suporte a range quebrado" +msgstr "Este servidor HTTP possui suporte a range quebrado" -#: methods/http.cc:626 +#: methods/http.cc:625 msgid "Unknown date format" msgstr "Formato de data desconhecido" -#: methods/http.cc:773 +#: methods/http.cc:772 msgid "Select failed" -msgstr "Seleo falhou." +msgstr "Seleção falhou" -#: methods/http.cc:778 +#: methods/http.cc:777 msgid "Connection timed out" -msgstr "Conexo expirou" +msgstr "Conexão expirou" -#: methods/http.cc:801 +#: methods/http.cc:800 msgid "Error writing to output file" -msgstr "Erro gravando para arquivo de sada" +msgstr "Erro gravando para arquivo de saída" -#: methods/http.cc:832 +#: methods/http.cc:831 msgid "Error writing to file" msgstr "Erro gravando para arquivo" -#: methods/http.cc:860 +#: methods/http.cc:859 msgid "Error writing to the file" msgstr "Erro gravando para o arquivo" -#: methods/http.cc:874 +#: methods/http.cc:873 msgid "Error reading from server. Remote end closed connection" -msgstr "Erro lendo do servidor Ponto remoto fechou a conexo" +msgstr "Erro lendo do servidor. Ponto remoto fechou a conexão" -#: methods/http.cc:876 +#: methods/http.cc:875 msgid "Error reading from server" msgstr "Erro lendo do servidor" -#: methods/http.cc:1107 +#: methods/http.cc:1106 msgid "Bad header data" -msgstr "Dados de cabealho ruins" +msgstr "Dados de cabeçalho ruins" -#: methods/http.cc:1124 +#: methods/http.cc:1123 msgid "Connection failed" -msgstr "Conexo falhou." +msgstr "Conexão falhou" -#: methods/http.cc:1215 +#: methods/http.cc:1214 msgid "Internal error" msgstr "Erro interno" #: apt-pkg/contrib/mmap.cc:82 msgid "Can't mmap an empty file" -msgstr "No foi possvel fazer mmap de arquivo vazio" +msgstr "Não foi possível fazer mmap de arquivo vazio" #: apt-pkg/contrib/mmap.cc:87 #, c-format msgid "Couldn't make mmap of %lu bytes" -msgstr "Impossvel fazer mmap de %lu bytes" +msgstr "Impossível fazer mmap de %lu bytes" #: apt-pkg/contrib/strutl.cc:938 #, c-format msgid "Selection %s not found" -msgstr "Seleo %s no encontrada" +msgstr "Seleção %s não encontrada" #: apt-pkg/contrib/configuration.cc:436 #, c-format msgid "Unrecognized type abbreviation: '%c'" -msgstr "Abreviao de tipo desconhecida: '%c'" +msgstr "Abreviação de tipo desconhecida: '%c'" #: apt-pkg/contrib/configuration.cc:494 #, c-format msgid "Opening configuration file %s" -msgstr "Abrindo arquivo de configurao %s" +msgstr "Abrindo arquivo de configuração %s" #: apt-pkg/contrib/configuration.cc:512 #, c-format msgid "Line %d too long (max %d)" -msgstr "Linha %d muito longa (mx. %d)" +msgstr "Linha %d muito longa (máx. %d)" #: apt-pkg/contrib/configuration.cc:608 #, c-format @@ -2054,7 +2070,7 @@ msgstr "Erro de sintaxe %s:%u: Bloco inicia sem nome." #: apt-pkg/contrib/configuration.cc:627 #, c-format msgid "Syntax error %s:%u: Malformed tag" -msgstr "Erro de sintaxe %s:%u: Tag Malformada" +msgstr "Erro de sintaxe %s:%u: Tag mal formada" #: apt-pkg/contrib/configuration.cc:644 #, c-format @@ -2065,7 +2081,7 @@ msgstr "Erro de sintaxe %s:%u: Lixo extra depois do valor" #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -"Erro de sintaxe %s:%u: Diretivas podem ser feitas somente no nvel mais alto" +"Erro de sintaxe %s:%u: Diretivas podem ser feitas somente no nível mais alto" #: apt-pkg/contrib/configuration.cc:691 #, c-format @@ -2075,12 +2091,12 @@ msgstr "Erro de sintaxe %s:%u: Muitos includes aninhados" #: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700 #, c-format msgid "Syntax error %s:%u: Included from here" -msgstr "Erro de sintaxe %s:%u: Includo a partir deste ponto" +msgstr "Erro de sintaxe %s:%u: Incluído a partir deste ponto" #: apt-pkg/contrib/configuration.cc:704 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "Erro de sintaxe %s:%u: Diretiva '%s' no suportada" +msgstr "Erro de sintaxe %s:%u: Diretiva '%s' não suportada" #: apt-pkg/contrib/configuration.cc:738 #, c-format @@ -2090,7 +2106,7 @@ msgstr "Erro de sintaxe %s:%u: Lixo extra no final do arquivo" #: apt-pkg/contrib/progress.cc:154 #, c-format msgid "%c%s... Error!" -msgstr "%c%s... Erro !" +msgstr "%c%s... Erro!" #: apt-pkg/contrib/progress.cc:156 #, c-format @@ -2100,98 +2116,98 @@ msgstr "%c%s... Pronto" #: apt-pkg/contrib/cmndline.cc:80 #, c-format msgid "Command line option '%c' [from %s] is not known." -msgstr "Opo de linha de comando '%c' [de %s] desconnhecida." +msgstr "Opção de linha de comando '%c' [de %s] é desconnhecida." #: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114 #: apt-pkg/contrib/cmndline.cc:122 #, c-format msgid "Command line option %s is not understood" -msgstr "Opo de linha de comando %s no compreendida" +msgstr "Opção de linha de comando %s não é compreendida" #: apt-pkg/contrib/cmndline.cc:127 #, c-format msgid "Command line option %s is not boolean" -msgstr "Opo de linha de comando %s no booleana" +msgstr "Opção de linha de comando %s não é booleana" #: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187 #, c-format msgid "Option %s requires an argument." -msgstr "Opo %s requer um argumento." +msgstr "Opção %s requer um argumento." #: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207 #, c-format msgid "Option %s: Configuration item specification must have an =<val>." msgstr "" -"Opo %s: Especificao de item de configurao deve possuir um =<val>." +"Opção %s: Especificação de item de configuração deve possuir um =<val>." #: apt-pkg/contrib/cmndline.cc:237 #, c-format msgid "Option %s requires an integer argument, not '%s'" -msgstr "Opo %s requer um argumento inteiro, no '%s'" +msgstr "Opção %s requer um argumento inteiro, não '%s'" #: apt-pkg/contrib/cmndline.cc:268 #, c-format msgid "Option '%s' is too long" -msgstr "Opo '%s' muito longa" +msgstr "Opção '%s' é muito longa" #: apt-pkg/contrib/cmndline.cc:301 #, c-format msgid "Sense %s is not understood, try true or false." -msgstr "Sentido %s no compreendido, tente verdadeiro ou falso." +msgstr "Sentido %s não é compreendido, tente verdadeiro ou falso." #: apt-pkg/contrib/cmndline.cc:351 #, c-format msgid "Invalid operation %s" -msgstr "Operao %s invlida" +msgstr "Operação %s inválida" #: apt-pkg/contrib/cdromutl.cc:55 #, c-format msgid "Unable to stat the mount point %s" -msgstr "Impossvel checar o ponto de montagem %s" +msgstr "Impossível checar o ponto de montagem %s" #: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44 #, c-format msgid "Unable to change to %s" -msgstr "Impossvel mudar para %s" +msgstr "Impossível mudar para %s" #: apt-pkg/contrib/cdromutl.cc:190 msgid "Failed to stat the cdrom" -msgstr "Impossvel checar o cdrom" +msgstr "Impossível checar o cdrom" #: apt-pkg/contrib/fileutl.cc:82 #, c-format msgid "Not using locking for read only lock file %s" -msgstr "No usando locking para arquivo de trava somente leitura %s" +msgstr "Não usando locking para arquivo de trava somente leitura %s" #: apt-pkg/contrib/fileutl.cc:87 #, c-format msgid "Could not open lock file %s" -msgstr "No foi possvel abri arquivo de trava %s" +msgstr "Não foi possível abrir arquivo de trava %s" #: apt-pkg/contrib/fileutl.cc:105 #, c-format msgid "Not using locking for nfs mounted lock file %s" -msgstr "No usando locking para arquivo de trava montado via nfs %s" +msgstr "Não usando locking para arquivo de trava montado via nfs %s" #: apt-pkg/contrib/fileutl.cc:109 #, c-format msgid "Could not get lock %s" -msgstr "No foi possvel obter trava %s" +msgstr "Não foi possível obter trava %s" #: apt-pkg/contrib/fileutl.cc:377 #, c-format msgid "Waited for %s but it wasn't there" -msgstr "Esperado %s mas este no estava l" +msgstr "Esperado %s mas este não estava lá" #: apt-pkg/contrib/fileutl.cc:387 #, c-format msgid "Sub-process %s received a segmentation fault." -msgstr "Sub-processo %s recebeu uma falha de segmentao." +msgstr "Sub-processo %s recebeu uma falha de segmentação." #: apt-pkg/contrib/fileutl.cc:390 #, c-format msgid "Sub-process %s returned an error code (%u)" -msgstr "Sub-processo %s retornou um cdigo de erro (%u)" +msgstr "Sub-processo %s retornou um código de erro (%u)" #: apt-pkg/contrib/fileutl.cc:392 #, c-format @@ -2201,7 +2217,7 @@ msgstr "Sub-processo %s finalizou inesperadamente" #: apt-pkg/contrib/fileutl.cc:436 #, c-format msgid "Could not open file %s" -msgstr "No foi possvel abrir arquivo %s" +msgstr "Não foi possível abrir arquivo %s" #: apt-pkg/contrib/fileutl.cc:492 #, c-format @@ -2211,7 +2227,7 @@ msgstr "leitura, ainda restam %lu para serem lidos mas nenhum deixado" #: apt-pkg/contrib/fileutl.cc:522 #, c-format msgid "write, still have %lu to write but couldn't" -msgstr "gravao, ainda restam %lu para gravar mas no foi possvel" +msgstr "gravação, ainda restam %lu para gravar mas não foi possível" #: apt-pkg/contrib/fileutl.cc:597 msgid "Problem closing the file" @@ -2231,16 +2247,16 @@ msgstr "Cache de pacotes vazio" #: apt-pkg/pkgcache.cc:132 msgid "The package cache file is corrupted" -msgstr "O arquivo de cache de pacotes est corrompido" +msgstr "O arquivo de cache de pacotes está corrompido" #: apt-pkg/pkgcache.cc:137 msgid "The package cache file is an incompatible version" -msgstr "O arquivo de cache de pacotes uma verso incompatvel" +msgstr "O arquivo de cache de pacotes é uma versão incompatível" #: apt-pkg/pkgcache.cc:142 #, c-format msgid "This APT does not support the versioning system '%s'" -msgstr "Este APT no suporta o Sistema de Verses '%s'" +msgstr "Este APT não suporta o sistema de versões '%s'" #: apt-pkg/pkgcache.cc:147 msgid "The package cache was built for a different architecture" @@ -2252,7 +2268,7 @@ msgstr "Depende" #: apt-pkg/pkgcache.cc:218 msgid "PreDepends" -msgstr "Pr-Depende" +msgstr "Pré-Depende" #: apt-pkg/pkgcache.cc:218 msgid "Suggests" @@ -2284,7 +2300,7 @@ msgstr "requerido" #: apt-pkg/pkgcache.cc:231 msgid "standard" -msgstr "padro" +msgstr "padrão" #: apt-pkg/pkgcache.cc:232 msgid "optional" @@ -2296,50 +2312,51 @@ msgstr "extra" #: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 msgid "Building dependency tree" -msgstr "Construindo rvore de Dependncias" +msgstr "Construindo árvore de dependências" #: apt-pkg/depcache.cc:62 msgid "Candidate versions" -msgstr "Verses Candidatas" +msgstr "Versões candidatas" #: apt-pkg/depcache.cc:91 msgid "Dependency generation" -msgstr "Gerao de Dependncia" +msgstr "Geração de dependência" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" -msgstr "Impossvel analizar arquivo de pacote %s (1)" +msgstr "Impossível analisar arquivo de pacote %s (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" -msgstr "Impossvel analizar arquivo de pacote %s (2)" +msgstr "Impossível analisar arquivo de pacote %s (2)" #: apt-pkg/sourcelist.cc:94 #, c-format msgid "Malformed line %lu in source list %s (URI)" -msgstr "Linha malformada %lu no arquivo de fontes %s (URI)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (URI)" #: apt-pkg/sourcelist.cc:96 #, c-format msgid "Malformed line %lu in source list %s (dist)" -msgstr "Linha malformada %lu no arquivo de fontes %s (distribuio)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (distribuição)" #: apt-pkg/sourcelist.cc:99 #, c-format msgid "Malformed line %lu in source list %s (URI parse)" -msgstr "Linha malformada %lu no arquivo de fontes %s (anlise de URI)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (análise de URI)" #: apt-pkg/sourcelist.cc:105 #, c-format msgid "Malformed line %lu in source list %s (absolute dist)" -msgstr "Linha malformada %lu no arquivo de fontes %s (Distribuio absoluta)" +msgstr "Linha mal formada %lu no arquivo de fontes %s (distribuição absoluta)" #: apt-pkg/sourcelist.cc:112 #, c-format msgid "Malformed line %lu in source list %s (dist parse)" -msgstr "Linha malformada %lu no arquivo de fontes %s (anlise de distribuio)" +msgstr "" +"Linha mal formada %lu no arquivo de fontes %s (análise de distribuição)" #: apt-pkg/sourcelist.cc:203 #, c-format @@ -2349,22 +2366,22 @@ msgstr "Abrindo %s" #: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 #, c-format msgid "Line %u too long in source list %s." -msgstr "Linha %u muito longa na sources.lits %s." +msgstr "Linha %u muito longa na lista de fontes %s." #: apt-pkg/sourcelist.cc:240 #, c-format msgid "Malformed line %u in source list %s (type)" -msgstr "Linha malformada %u no arquivo de fontes %s (tipo)" +msgstr "Linha mal formada %u no arquivo de fontes %s (tipo)" #: apt-pkg/sourcelist.cc:244 #, c-format msgid "Type '%s' is not known on line %u in source list %s" -msgstr "Tipo '%s' no conhecido na linha %u na lista de fontes %s" +msgstr "Tipo '%s' não é conhecido na linha %u na lista de fontes %s" #: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 #, c-format msgid "Malformed line %u in source list %s (vendor id)" -msgstr "Linha malformada %u na lista de fontes %s (id de fornecedor)" +msgstr "Linha mal formada %u na lista de fontes %s (id de fornecedor)" #: apt-pkg/packagemanager.cc:402 #, c-format @@ -2373,23 +2390,23 @@ msgid "" "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 "" -"Esta execuo de instalao ir requerer remover temporariamente o pacote " -"essencial %s devido a um loop de Conflitos/Pr-Dependncias. Isso geralmente " -" ruim, mas se voc realmente quer fazer isso, ative a opo APT::Force-" +"Esta execução de instalação irá requerer remover temporariamente o pacote " +"essencial %s devido a um loop de Conflitos/Pré-Dependências. Isso geralmente " +"é ruim, mas se você realmente quer fazer isso, ative a opção APT::Force-" "LoopBreak." #: apt-pkg/pkgrecords.cc:37 #, c-format msgid "Index file type '%s' is not supported" -msgstr "Tipo de arquivo de ndice '%s' no suportado" +msgstr "Tipo de arquivo de índice '%s' não é suportado" #: apt-pkg/algorithms.cc:241 #, c-format msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -"O pacote %s precisa ser reinstalado, mas no foi possvel encontrar um " -"repositrio para o mesmo." +"O pacote %s precisa ser reinstalado, mas não foi possível encontrar um " +"arquivo para o mesmo." #: apt-pkg/algorithms.cc:1059 msgid "" @@ -2401,92 +2418,91 @@ msgstr "" #: apt-pkg/algorithms.cc:1061 msgid "Unable to correct problems, you have held broken packages." -msgstr "Impossvel corrigir problemas, voc manteve (hold) pacotes quebrados." +msgstr "Impossível corrigir problemas, você manteve (hold) pacotes quebrados." #: apt-pkg/acquire.cc:62 #, c-format msgid "Lists directory %spartial is missing." -msgstr "Diretrio de listas %spartial est faltando." +msgstr "Diretório de listas %spartial está faltando." #: apt-pkg/acquire.cc:66 #, c-format msgid "Archive directory %spartial is missing." -msgstr "Diretrio de repositrio %spartial est faltando." +msgstr "Diretório de repositório %spartial está faltando." #. only show the ETA if it makes sense #. two days #: apt-pkg/acquire.cc:823 -#, fuzzy, c-format +#, c-format msgid "Retrieving file %li of %li (%s remaining)" -msgstr "Fazendo o download do arquivo %li de %li (%s restantes)" +msgstr "Obtendo o arquivo %li de %li (%s restantes)" #: apt-pkg/acquire.cc:825 -#, fuzzy, c-format +#, c-format msgid "Retrieving file %li of %li" -msgstr "Lendo Listagem de Pacotes" +msgstr "Obtendo arquivo %li de %li" #: apt-pkg/acquire-worker.cc:113 #, c-format msgid "The method driver %s could not be found." -msgstr "O driver do mtodo %s no pde ser encontrado." +msgstr "O driver do método %s não pôde ser encontrado." #: apt-pkg/acquire-worker.cc:162 #, c-format msgid "Method %s did not start correctly" -msgstr "Mtodo %s no iniciou corretamente" +msgstr "Método %s não iniciou corretamente" #: apt-pkg/acquire-worker.cc:377 #, c-format msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" -"Por favor, insira o disco nomeado : '%s' no leitor '%s' e pressione enter." +"Por favor, insira o disco nomeado: '%s' no leitor '%s' e pressione enter." #: apt-pkg/init.cc:120 #, c-format msgid "Packaging system '%s' is not supported" -msgstr "Sistema de empacotamento '%s' no suportado" +msgstr "Sistema de empacotamento '%s' não é suportado" #: apt-pkg/init.cc:136 msgid "Unable to determine a suitable packaging system type" msgstr "" -"No foi possvel determinar um tipo de sistema de empacotamento aplicvel." +"Não foi possível determinar um tipo de sistema de empacotamento aplicável." #: apt-pkg/clean.cc:61 #, c-format msgid "Unable to stat %s." -msgstr "Impossvel checar %s." +msgstr "Impossível checar %s." #: apt-pkg/srcrecords.cc:48 msgid "You must put some 'source' URIs in your sources.list" -msgstr "Voc deve colocar algumas URIs 'source' em seu sources.list" +msgstr "Você deve colocar algumas URIs 'source' em seu sources.list" #: apt-pkg/cachefile.cc:73 msgid "The package lists or status file could not be parsed or opened." msgstr "" -"As listas de pacotes ou o arquivos de status no pde ser analizado ou " -"aberto." +"As listas de pacotes ou os arquivos de status não puderam ser analisados ou " +"abertos." #: apt-pkg/cachefile.cc:77 msgid "You may want to run apt-get update to correct these problems" -msgstr "" -"Voc ter que executar apt-get update para corrigir esses arquivos faltosos" +msgstr "Você terá que executar apt-get update para corrigir esses problemas" #: apt-pkg/policy.cc:269 msgid "Invalid record in the preferences file, no Package header" -msgstr "Registro invlido no arquivo de preferncias, sem cabealho Pacote" +msgstr "Registro inválido no arquivo de preferências, sem cabeçalho Package" #: apt-pkg/policy.cc:291 #, c-format msgid "Did not understand pin type %s" -msgstr "Na foi possvel entender o tipo de pin %s" +msgstr "Não foi possível entender o tipo de pin %s" #: apt-pkg/policy.cc:299 msgid "No priority (or zero) specified for pin" -msgstr "Nenhuma prioridade (ou zero) especificada para pinagem" +msgstr "Nenhuma prioridade (ou zero) especificada para pin" #: apt-pkg/pkgcachegen.cc:74 msgid "Cache has an incompatible versioning system" -msgstr "O Cache possui um sistema de verses incompatvel" +msgstr "O cache possui um sistema de versões incompatível" #: apt-pkg/pkgcachegen.cc:117 #, c-format @@ -2511,7 +2527,7 @@ msgstr "Um erro ocorreu processando %s (NovoArquivoVer1)" #: apt-pkg/pkgcachegen.cc:184 #, c-format msgid "Error occurred while processing %s (NewVersion1)" -msgstr "Um erro ocorreu processando %s (NovaVerso1)" +msgstr "Um erro ocorreu processando %s (NovaVersão1)" #: apt-pkg/pkgcachegen.cc:188 #, c-format @@ -2521,23 +2537,23 @@ msgstr "Um erro ocorreu processando %s (UsePacote3)" #: apt-pkg/pkgcachegen.cc:192 #, c-format msgid "Error occurred while processing %s (NewVersion2)" -msgstr "Um erro ocorreu processando %s (NovaVerso2)" +msgstr "Um erro ocorreu processando %s (NovaVersão2)" #: apt-pkg/pkgcachegen.cc:207 msgid "Wow, you exceeded the number of package names this APT is capable of." msgstr "" -"Ops, voc excedeu o nmero de nomes de pacotes que este APT capaz de " +"Uau, você excedeu o número de nomes de pacotes que este APT é capaz de " "suportar." #: apt-pkg/pkgcachegen.cc:210 msgid "Wow, you exceeded the number of versions this APT is capable of." msgstr "" -"Ops, voc excedeu o nmero de verses que este APT capaz de suportar." +"Uau, você excedeu o número de versões que este APT é capaz de suportar." #: apt-pkg/pkgcachegen.cc:213 msgid "Wow, you exceeded the number of dependencies this APT is capable of." msgstr "" -"Ops, voc excedeu o nmero de dependncias que este APT capaz de suportar." +"Uau, você excedeu o número de dependências que este APT é capaz de suportar." #: apt-pkg/pkgcachegen.cc:241 #, c-format @@ -2547,74 +2563,76 @@ msgstr "Um erro ocorreu processando %s (EncontrarPacote)" #: apt-pkg/pkgcachegen.cc:254 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" -msgstr "Um erro ocorreu processando %s (ColetarArquivoFornece)" +msgstr "Um erro ocorreu processando %s (ColetarArquivoProvides)" #: apt-pkg/pkgcachegen.cc:260 #, c-format msgid "Package %s %s was not found while processing file dependencies" -msgstr "Pacote %s %s no foi encontrado processando dependncias de arquivo" +msgstr "" +"Pacote %s %s não foi encontrado enquanto processando dependências de arquivo" #: apt-pkg/pkgcachegen.cc:574 #, c-format msgid "Couldn't stat source package list %s" -msgstr "No foi possvel checar a lista de pacotes fonte %s" +msgstr "Não foi possível checar a lista de pacotes fonte %s" #: apt-pkg/pkgcachegen.cc:658 msgid "Collecting File Provides" -msgstr "Coletando File Provides" +msgstr "Coletando Arquivo Provides" #: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792 msgid "IO Error saving source cache" msgstr "Erro de I/O ao gravar cache fonte" -#: apt-pkg/acquire-item.cc:126 +#: apt-pkg/acquire-item.cc:130 #, c-format msgid "rename failed, %s (%s -> %s)." -msgstr "renomeao falhou, %s (%s -> %s)." +msgstr "renomeação falhou, %s (%s -> %s)." -#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 +#: apt-pkg/acquire-item.cc:408 apt-pkg/acquire-item.cc:658 +#: apt-pkg/acquire-item.cc:1373 msgid "MD5Sum mismatch" msgstr "MD5Sum incorreto" -#: apt-pkg/acquire-item.cc:640 +#: apt-pkg/acquire-item.cc:1068 msgid "There are no public key available for the following key IDs:\n" -msgstr "No existem chaves pblicas para os seguintes IDs de chaves :\n" +msgstr "Não existem chaves públicas para os seguintes IDs de chaves:\n" -#: apt-pkg/acquire-item.cc:753 +#: apt-pkg/acquire-item.cc:1181 #, 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 "" -"No foi possvel localizar um arquivo para o pacote %s. Isto pode significar " -"que voc precisa consertar manualmente este pacote. (devido a arquitetura " -"no especificada)." +"Não foi possível localizar um arquivo para o pacote %s. Isto pode significar " +"que você precisa consertar manualmente este pacote. (devido a arquitetura " +"não especificada)." -#: apt-pkg/acquire-item.cc:812 +#: apt-pkg/acquire-item.cc:1240 #, c-format msgid "" "I wasn't able to locate file for the %s package. This might mean you need to " "manually fix this package." msgstr "" -"No foi possvel localizar arquivo para o pacote %s. Isto pode significar " -"que voc precisa consertar manualmente este pacote." +"Não foi possível localizar arquivo para o pacote %s. Isto pode significar " +"que você precisa consertar manualmente este pacote." -#: apt-pkg/acquire-item.cc:848 +#: apt-pkg/acquire-item.cc:1276 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." msgstr "" -"Os arquivos de ndice de pacotes esto corrompidos. Nenhum campo Filename: " +"Os arquivos de índice de pacotes estão corrompidos. Nenhum campo Filename: " "para o pacote %s." -#: apt-pkg/acquire-item.cc:935 +#: apt-pkg/acquire-item.cc:1363 msgid "Size mismatch" msgstr "Tamanho incorreto" #: apt-pkg/vendorlist.cc:66 #, c-format msgid "Vendor block %s contains no fingerprint" -msgstr "Bloco Fornecedor %s no contm invlido" +msgstr "Bloco Fornecedor %s não contém impressão digital (\"fingerprint\"" #: apt-pkg/cdrom.cc:507 #, c-format @@ -2622,22 +2640,22 @@ msgid "" "Using CD-ROM mount point %s\n" "Mounting CD-ROM\n" msgstr "" -"Uando ponto de montagem de CD-ROM %s\n" +"Usando ponto de montagem de CD-ROM %s\n" "Montando CD-ROM\n" #: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 msgid "Identifying.. " -msgstr "Identificando .." +msgstr "Identificando.. " #: apt-pkg/cdrom.cc:541 #, c-format msgid "Stored label: %s \n" -msgstr "Rtulo Armazenado : %s \n" +msgstr "Rótulo armazenado: %s \n" #: apt-pkg/cdrom.cc:561 #, c-format msgid "Using CD-ROM mount point %s\n" -msgstr "Usando ponto de montagem de CD-ROm %s\n" +msgstr "Usando ponto de montagem de CD-ROM %s\n" #: apt-pkg/cdrom.cc:579 msgid "Unmounting CD-ROM\n" @@ -2645,27 +2663,27 @@ msgstr "Desmontando CD-ROM\n" #: apt-pkg/cdrom.cc:583 msgid "Waiting for disc...\n" -msgstr "Aguardando por disco ...\n" +msgstr "Aguardando por disco...\n" #. Mount the new CDROM #: apt-pkg/cdrom.cc:591 msgid "Mounting CD-ROM...\n" -msgstr "Montando CD-ROM ...\n" +msgstr "Montando CD-ROM...\n" #: apt-pkg/cdrom.cc:609 msgid "Scanning disc for index files..\n" -msgstr "Procurando por arquivos de ndice no disco ..\n" +msgstr "Procurando por arquivos de índice no disco..\n" #: apt-pkg/cdrom.cc:647 #, c-format msgid "Found %i package indexes, %i source indexes and %i signatures\n" msgstr "" -"Encontrado(s) %i ndice(s) de pacote(s), %i ndice(s) de fonte(s) e %i " +"Encontrado(s) %i índice(s) de pacote(s), %i índice(s) de fonte(s) e %i " "assinaturas\n" #: apt-pkg/cdrom.cc:710 msgid "That is not a valid name, try again.\n" -msgstr "Este no um nome vlido, tente novamente.\n" +msgstr "Este não é um nome válido, tente novamente.\n" #: apt-pkg/cdrom.cc:726 #, c-format @@ -2673,24 +2691,24 @@ msgid "" "This disc is called: \n" "'%s'\n" msgstr "" -"Esse disco chamado :\n" +"Esse disco é chamado: \n" "'%s'\n" #: apt-pkg/cdrom.cc:730 msgid "Copying package lists..." -msgstr "Copiando lista de pacotes ..." +msgstr "Copiando lista de pacotes..." #: apt-pkg/cdrom.cc:754 msgid "Writing new source list\n" -msgstr "Gravanco nova lista de fontes\n" +msgstr "Gravando nova lista de fontes\n" #: apt-pkg/cdrom.cc:763 msgid "Source list entries for this disc are:\n" -msgstr "Entradas na Lista de Fontes para este Disco so : \n" +msgstr "Entradas na lista de fontes para este disco são:\n" #: apt-pkg/cdrom.cc:803 msgid "Unmounting CD-ROM..." -msgstr "Desmontando CD-ROM ..." +msgstr "Desmontando CD-ROM..." #: apt-pkg/indexcopy.cc:261 #, c-format @@ -2705,13 +2723,13 @@ msgstr "Gravados %i registros com %i arquivos faltando.\n" #: apt-pkg/indexcopy.cc:266 #, c-format msgid "Wrote %i records with %i mismatched files\n" -msgstr "Gravados %i registros com %i arquivos que no combinam\n" +msgstr "Gravados %i registros com %i arquivos que não combinam\n" #: apt-pkg/indexcopy.cc:269 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" -"Gravados %i registros com %i arquivos faltando e %i arquivos que no " +"Gravados %i registros com %i arquivos faltando e %i arquivos que não " "combinam\n" #: apt-pkg/deb/dpkgpm.cc:358 @@ -2742,7 +2760,7 @@ msgstr "%s instalado" #: apt-pkg/deb/dpkgpm.cc:371 #, c-format msgid "Preparing for removal of %s" -msgstr "Preparando para a remoo de %s" +msgstr "Preparando para a remoção de %s" #: apt-pkg/deb/dpkgpm.cc:372 #, c-format @@ -2755,30 +2773,41 @@ msgid "Removed %s" msgstr "%s removido" #: apt-pkg/deb/dpkgpm.cc:378 -#, fuzzy, c-format +#, c-format msgid "Preparing to completely remove %s" -msgstr "Preparando para configurar %s" +msgstr "Preparando para remover completamente %s" #: apt-pkg/deb/dpkgpm.cc:379 -#, fuzzy, c-format +#, c-format msgid "Completely removed %s" -msgstr "Falha ao remover %s" +msgstr "%s completamente removido" + +#: methods/rred.cc:219 +msgid "Could not patch file" +msgstr "Não foi possível aplicar o patch" #: methods/rsh.cc:330 msgid "Connection closed prematurely" -msgstr "Conexo encerrada prematuramente" +msgstr "Conexão encerrada prematuramente" + +#: cmdline/apt-cache.cc:232 +msgid "Total package names : " +msgstr "Total de Nomes de Pacotes : " + +#~ msgid "File date has changed %s" +#~ msgstr "Data do arquivo mudou %s" #~ msgid "Reading file list" #~ msgstr "Lendo Listagem de Pacotes" #~ msgid "Could not execute " -#~ msgstr "No foi possvel executar " +#~ msgstr "Não foi possível executar " #~ msgid "Preparing for remove with config %s" -#~ msgstr "Preparando para remoo de %s e sua configurao" +#~ msgstr "Preparando para remoção de %s e sua configuração" #~ msgid "Removed with config %s" -#~ msgstr "%s e sua configurao removidos" +#~ msgstr "%s e sua configuração removidos" #~ msgid "Unknown vendor ID '%s' in line %u of source list %s" #~ msgstr "" @@ -2791,12 +2820,12 @@ msgstr "Conexo encerrada prematuramente" #~ msgstr "" #~ "Alguns pacotes quebrados foram encontrados enquanto se tentava " #~ "processar \n" -#~ "as dependncias de construo.\n" -#~ "Voc pode querer rodar `apt-get -f install' para corrig-los." +#~ "as dependências de construção.\n" +#~ "Você pode querer rodar `apt-get -f install' para corrigí-los." #~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." #~ msgstr "" -#~ "Desculpe, voc no tem espao livre o suficiente em %s para guardar os ." +#~ "Desculpe, você não tem espaço livre o suficiente em %s para guardar os ." #~ "debs." #, fuzzy @@ -2813,11 +2842,11 @@ msgstr "Conexo encerrada prematuramente" #, fuzzy #~ msgid "You must give at least one file name" -#~ msgstr "Voc deve passar exatamente um padro" +#~ msgstr "Você deve passar exatamente um padrão" #, fuzzy #~ msgid "Regex compilation error" -#~ msgstr "Erro de compilao de regex - %s" +#~ msgstr "Erro de compilação de regex - %s" #, fuzzy #~ msgid "Failed to stat %s%s" @@ -2833,7 +2862,7 @@ msgstr "Conexo encerrada prematuramente" #, fuzzy #~ msgid "Couldn't wait for subprocess" -#~ msgstr "No foi possvel checar a lista de pacotes fonte %s" +#~ msgstr "Não foi possível checar a lista de pacotes fonte %s" #, fuzzy #~ msgid " files " @@ -2845,8 +2874,9 @@ msgstr "Conexo encerrada prematuramente" #, fuzzy #~ msgid "Could not find a record in the DSC '%s'" -#~ msgstr "Impossvel achar pacote %s" +#~ msgstr "Impossível achar pacote %s" #, fuzzy #~ msgid "Failed too stat %s" -#~ msgstr "Impossvel checar %s." +#~ msgstr "Impossível checar %s." + @@ -1,19 +1,19 @@ -# translation of apt_ro.po to Romanian +# translation of apt_po_ro.po to Romanian # This file is put in the public domain. -# Sorin Batariuc <sorin@bonbon.net>, 2004, 2005, 2006. # +# Sorin Batariuc <sorin@bonbon.net>, 2004, 2005, 2006. msgid "" msgstr "" "Project-Id-Version: apt_po_ro\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-06-25 12:58+0300\n" +"POT-Creation-Date: 2006-09-12 11:18+0200\n" +"PO-Revision-Date: 2006-09-19 01:35+0300\n" "Last-Translator: Sorin Batariuc <sorin@bonbon.net>\n" "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.10.2\n" +"X-Generator: KBabel 1.11.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: cmdline/apt-cache.cc:135 @@ -149,7 +149,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s pentru %s %s compilat pe %s %s\n" @@ -433,115 +433,128 @@ msgstr "Nu s-a potrivit nici o selecţie" msgid "Some files are missing in the package file group `%s'" msgstr "Unele fişiere lipsesc din grupul fişierului pachet '%s'" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "DB a fost corupt, fişierul a fost redenumit %s.old" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "DB este vechi, se încearcă înnoirea %s" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formatul DB este nevalid. Dacă l-aţi înnoit pe apt de la o versiune mai " +"veche, ştergeţi şi recreaţi baza de date." + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Nu pot deschide fişierul DB %s: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Data fişierului a fost modificată %s" +msgid "Failed to stat %s" +msgstr "Eşuare în determinarea stării %s" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "Arhiva nu are înregistrare de control" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Nu pot obţine un cursor" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "A: Nu pot citi directorul %s\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "A: Nu pot determina starea %s\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "A: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Erori la fişierul " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Eşuare în a rezolva %s" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "Eşuare în parcurgerea arborelui" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Eşuare la deschiderea %s" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " Dezlegare %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Eşuare la citirea legăturii %s" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "Eşuare în desfacerea legăturii %s" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Eşuare în legarea %s de %s" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " Limita de %sB a dezlegării a fost atinsă.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Eşuare în determinarea stării %s" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "Arhiva nu are câmp de pachet" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s nu are intrare de înlocuire\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " %s responsabil este %s nu %s\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s nu are nici o intrare sursă de înlocuire\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nu are nici intrare binară de înlocuire\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -802,11 +815,11 @@ msgstr "Pachete trebuiesc şterse dar ştergerea este dezactivată." msgid "Internal error, Ordering didn't finish" msgstr "Eroare internă, Ordering nu s-a terminat" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 msgid "Unable to lock the download directory" msgstr "Nu pot încuia directorul de descărcare" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Lista surselor nu poate fi citită." @@ -836,7 +849,7 @@ msgstr "După despachetare va fi folosit %sB de spaţiu suplimentar pe disc.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "După despachetare va fi eliberat %sB din spaţiul de pe disc.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 #, c-format msgid "Couldn't determine free space in %s" msgstr "N-am putut determina spaţiul disponibil în %s" @@ -874,7 +887,7 @@ msgstr "Renunţare." msgid "Do you want to continue [Y/n]? " msgstr "Vreţi să continuaţi [Y/n]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Eşuare în aducerea %s %s\n" @@ -883,7 +896,7 @@ msgstr "Eşuare în aducerea %s %s\n" msgid "Some files failed to download" msgstr "Eşuare în descărcarea unor fişiere" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 msgid "Download complete and in download only mode" msgstr "Descărcare completă şi în modul doar descărcare" @@ -1057,110 +1070,110 @@ msgstr "Pachete deteriorate" msgid "The following extra packages will be installed:" msgstr "Următoarele extra pachete vor fi instalate:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1692 msgid "Suggested packages:" msgstr "Pachete sugerate:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1693 msgid "Recommended packages:" msgstr "Pachete recomandate:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1713 msgid "Calculating upgrade... " msgstr "Calculez înnoirea... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Eşuare" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1721 msgid "Done" msgstr "Terminat" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 msgid "Internal error, problem resolver broke stuff" msgstr "" "Eroare internă, rezolvatorul de probleme a deteriorat diverse chestiuni" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1894 msgid "Must specify at least one package to fetch source for" msgstr "Trebuie specificat cel puţin un pachet pentru a-i aduce sursa" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 #, c-format msgid "Unable to find a source package for %s" msgstr "Nu pot găsi o sursă pachet pentru %s" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1968 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Sar peste fişierul deja descărcat '%s'\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1992 #, c-format msgid "You don't have enough free space in %s" msgstr "Nu aveţi suficient spaţiu în %s" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1997 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Este nevoie să descărcaţi %sB/%sB din arhivele surselor.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:2000 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Este nevoie să descărcaţi %sB din arhivele surselor.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:2006 #, c-format msgid "Fetch source %s\n" msgstr "Aducere sursa %s\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2037 msgid "Failed to fetch some archives." msgstr "Eşuare în a aduce unele arhive." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2065 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Sar peste despachetarea sursei deja despachetate în %s\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2077 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Comanda de despachetare '%s' eşuată.\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2078 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Verificaţi dacă pachetul 'dpkg-dev' este instalat.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Build command '%s' failed.\n" msgstr "Comanda de construire '%s' eşuată.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2114 msgid "Child process failed" msgstr "Eşuare proces copil" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2130 msgid "Must specify at least one package to check builddeps for" msgstr "" "Trebuie specificat cel puţin un pachet pentru a-i verifica dependenţele " "înglobate" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2158 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Nu pot prelua informaţiile despre dependenţele înglobate ale lui %s" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2178 #, c-format msgid "%s has no build depends.\n" msgstr "%s nu are dependenţe înglobate.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2230 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1169,7 +1182,7 @@ msgstr "" "Dependenţa lui %s de %s nu poate fi satisfăcută deoarece pachetul %s nu " "poate fi găsit" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2282 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1178,32 +1191,32 @@ msgstr "" "Dependenţa lui %s de %s nu poate fi satisfăcută deoarece nici o versiune " "disponibilă a pachetului %s nu poate satisface versiunile cerute" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2317 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Eşuare în a satisface dependenţa lui %s de %s: Pachetul instalat %s este " "prea nou" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2342 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Eşuare în a satisface dependenţa lui %s de %s: %s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2356 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Dependenţele înglobate pentru %s nu pot fi satisfăcute." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2360 msgid "Failed to process build dependencies" msgstr "Eşuare în a prelucra dependenţele înglobate" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2392 msgid "Supported modules:" msgstr "Module suportate:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2433 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1389,19 +1402,19 @@ msgstr "Unirea informaţiilor disponibile" msgid "Failed to create pipes" msgstr "Eşuare în crearea conexiunilor" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Eşuare în executarea gzip" -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Arhivă deteriorată" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Eşuarea sumei de control în arhiva tar, arhivă deteriorată" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Tip antet TAR %u necunoscut, membru %s" @@ -1683,12 +1696,12 @@ msgstr "Disc negăsit." msgid "File not found" msgstr "Fişier negăsit" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 msgid "Failed to stat" msgstr "Eşuare de determinare a stării" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 msgid "Failed to set modification time" msgstr "Eşuare la ajustarea timpului" @@ -1900,41 +1913,41 @@ msgstr "S-a întâmplat ceva rău la rezolvarea '%s:%s' (%i)" msgid "Unable to connect to %s %s:" msgstr "Nu pot conecta la %s %s" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "Nu pot accesa keyring: '%s'" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "E: Listă de argumente din Acquire::gpgv::Options prea lungă. Ies." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" "Eroare internă: Semnătură corespunzătoare, dar n-am putut determina cheia " "amprentei digitale?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "Cel puţin o semnătură invalidă a fost întâlnită." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "" "Nu pot executa '%s' pentru verificarea semnăturii (este instalat gnupg?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Eroare necunoscută în timp ce se execută gpgv" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "Următoarele semnături au fost invalide:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2315,12 +2328,12 @@ msgstr "Versiuni candidat" msgid "Dependency generation" msgstr "Generare dependenţe" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Nu pot analiza fişierul pachet %s (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Nu pot analiza fişierul pachet %s (2)" @@ -2787,6 +2787,27 @@ msgstr "Не удалось удалить %s" msgid "Connection closed prematurely" msgstr "Соединение закрыто преждевременно" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " Нет записи о переназначении (override) для %s\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " Нет записи о переназначении (override) для %s\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Не могу открыть файл %s" + #~ msgid "Reading file list" #~ msgstr "Чтение списка файлов в пакете" @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-05-29 15:33+0200\n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" +"PO-Revision-Date: 2006-09-10 18:50+0200\n" "Last-Translator: Peter Mann <Peter.Mann@tuke.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" "MIME-Version: 1.0\n" @@ -148,7 +148,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s pre %s %s skompilovaný na %s %s\n" @@ -422,115 +422,128 @@ msgstr "Nevyhovel žiaden výber" msgid "Some files are missing in the package file group `%s'" msgstr "V balíkovom súbore skupiny `%s' chýbajú niektoré súbory" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "DB je narušená, súbor je premenovaný na %s.old" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "DB je neaktuálna, prebieha pokus o aktualizáciu %s" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Formát DB je neplatný. Ak ste aktualizovali staršiu verziu apt, musíte " +"odstrániť a znovu vytvoriť databázu." + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Nedá sa otvoriť DB súbor %s: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Dátum súboru sa zmenil %s" +msgid "Failed to stat %s" +msgstr "%s sa nedá vyhodnotiť" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "Archív nemá riadiaci záznam" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Nedá sa získať kurzor" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "W: Adresár %s sa nedá čítať\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "W: %s sa nedá vyhodnotiť\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "W: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Chyby sa týkajú súboru " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Chyba pri zisťovaní %s" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "Priechod stromom zlyhal" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "%s sa nedá otvoriť" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr "Odlinkovanie %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Linka %s sa nedá čítať" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "%s sa nedá odlinkovať" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Nepodarilo sa zlinkovať %s s %s" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " Bol dosiahnutý odlinkovací limit %sB.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "%s sa nedá vyhodnotiť" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "Archív neobsahuje pole package" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s nemá žiadnu položku pre override\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " správcom %s je %s, nie %s\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s nemá žiadnu source položku pre override\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nemá žiadnu binary položku pre override\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -791,11 +804,11 @@ msgstr "Je potrebné odstránenie balíka, ale funkcia Odstrániť je vypnutá." msgid "Internal error, Ordering didn't finish" msgstr "Vnútorná chyba, Triedenie sa neukončilo" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 msgid "Unable to lock the download directory" msgstr "Adresár pre sťahovanie sa nedá zamknúť" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Nedá sa načítať zoznam zdrojov." @@ -826,7 +839,7 @@ msgstr "Po rozbalení sa na disku použije ďalších %sB.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Po rozbalení sa na disku uvoľní %sB.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 #, c-format msgid "Couldn't determine free space in %s" msgstr "Na %s sa nedá zistiť veľkosť voľného miesta" @@ -863,7 +876,7 @@ msgstr "Prerušené." msgid "Do you want to continue [Y/n]? " msgstr "Chcete pokračovať [Y/n]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Zlyhalo stiahnutie %s %s\n" @@ -872,7 +885,7 @@ msgstr "Zlyhalo stiahnutie %s %s\n" msgid "Some files failed to download" msgstr "Niektoré súbory sa nedajú stiahnuť" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 msgid "Download complete and in download only mode" msgstr "Sťahovanie ukončené v režime \"iba stiahnuť\"" @@ -1044,116 +1057,116 @@ msgstr "Poškodené balíky" msgid "The following extra packages will be installed:" msgstr "Nainštalujú sa nasledovné extra balíky:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1685 msgid "Suggested packages:" msgstr "Navrhované balíky:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1686 msgid "Recommended packages:" msgstr "Odporúčané balíky:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1706 msgid "Calculating upgrade... " msgstr "Prepočítava sa aktualizácia... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Chyba" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1714 msgid "Done" msgstr "Hotovo" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 msgid "Internal error, problem resolver broke stuff" msgstr "Vnútorná chyba, problem resolver pokazil veci" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1887 msgid "Must specify at least one package to fetch source for" msgstr "Musíte zadať aspoň jeden balík, pre ktorý sa stiahnu zdrojové texty" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 #, c-format msgid "Unable to find a source package for %s" msgstr "Nedá sa nájsť zdrojový balík pre %s" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1961 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Preskakuje sa už stiahnutý súbor '%s'\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1985 #, c-format msgid "You don't have enough free space in %s" msgstr "Na %s nemáte dostatok voľného miesta" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1990 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Je potrebné stiahnuť %sB/%sB zdrojových archívov.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:1993 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Je potrebné stiahnuť %sB zdrojových archívov.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:1999 #, c-format msgid "Fetch source %s\n" msgstr "Stiahnuť zdroj %s\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2030 msgid "Failed to fetch some archives." msgstr "Zlyhalo stiahnutie niektorých archívov." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2058 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Preskakuje sa rozbalenie už rozbaleného zdroja v %s\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2070 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Príkaz pre rozbalenie '%s' zlyhal.\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2071 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Skontrolujte, či je nainštalovaný balík 'dpkg-dev'.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2088 #, c-format msgid "Build command '%s' failed.\n" msgstr "Príkaz pre zostavenie '%s' zlyhal.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2107 msgid "Child process failed" msgstr "Proces potomka zlyhal" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2123 msgid "Must specify at least one package to check builddeps for" msgstr "" "Musíte zadať aspoň jeden balík, pre ktorý sa budú overovať závislosti na " "zostavenie" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2151 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Nedajú sa získať závislosti pre zostavenie %s" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2171 #, c-format msgid "%s has no build depends.\n" msgstr "%s nemá žiadne závislosti pre zostavenie.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2223 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "%s závislosť pre %s sa nemôže splniť, pretože sa nedá nájsť balík %s" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2275 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1162,31 +1175,31 @@ msgstr "" "%s závislosť pre %s sa nedá splniť, protože sa nedá nájsť verzia balíku %s, " "ktorá zodpovedá požiadavke na verziu" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2310 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Zlyhalo splnenie %s závislosti pre %s: Inštalovaný balík %s je príliš nový" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2335 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Zlyhalo splnenie %s závislosti pre %s: %s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Závislosti pre zostavenie %s sa nedajú splniť." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2353 msgid "Failed to process build dependencies" msgstr "Spracovanie závislostí pre zostavenie zlyhalo" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2385 msgid "Supported modules:" msgstr "Podporované moduly:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2426 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1366,19 +1379,19 @@ msgstr "Zlučujú sa dostupné informácie" msgid "Failed to create pipes" msgstr "Vytvorenie rúry zlyhalo" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Spustenie gzip zlyhalo " -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Porušený archív" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Kontrolný súčet pre tar zlyhal, archív je poškodený" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Neznáma hlavička TARu typ %u, člen %s" @@ -1658,12 +1671,12 @@ msgstr "Disk sa nenašiel." msgid "File not found" msgstr "Súbor sa nenašiel" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 #: methods/gzip.cc:142 msgid "Failed to stat" msgstr "Vyhodnotenie zlyhalo" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 msgid "Failed to set modification time" msgstr "Zlyhalo nastavenie času zmeny" @@ -1875,40 +1888,40 @@ msgstr "Niečo veľmi zlé sa prihodilo pri zisťovaní '%s:%s' (%i)" msgid "Unable to connect to %s %s:" msgstr "Nedá sa pripojiť k %s %s:" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "Zväzok kľúčov '%s' je nedostupný." -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" "CHYBA: zoznam argumentov z Acquire::gpgv::Options je príliš dlhý. Ukončuje " "sa." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "Vnútorná chyba: Správna signatúra, ale sa nedá zistiť odtlačok kľúča?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "Bola zistená aspoň jedna nesprávna signatúra." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "Nedá sa spustiť '%s' na kontrolu signatúry (je nainštalované gnupg?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Neznáma chyba pri spustení gpgv" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "Nasledovné signatúry sú neplatné:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2287,12 +2300,12 @@ msgstr "Kandidátske verzie" msgid "Dependency generation" msgstr "Generovanie závislostí" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Súbor %s sa nedá spracovať (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Súbor %s sa nedá spracovať (2)" @@ -2732,3 +2745,10 @@ msgstr "Balík '%s' je úplne odstránený" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Spojenie bolo predčasne ukončené" + +#~ msgid "File date has changed %s" +#~ msgstr "Dátum súboru sa zmenil %s" + +#, fuzzy +#~ msgid "Could not patch file" +#~ msgstr "Súbor %s sa nedá otvoriť súbor" @@ -2741,6 +2741,27 @@ msgstr "Odstranitev %s ni uspela" msgid "Connection closed prematurely" msgstr "Povezava se je prezgodaj zaprla" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s nima prekrivnega vnosa\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s nima prekrivnega vnosa\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "Ne morem odpreti datoteke %s" + #~ msgid "Reading file list" #~ msgstr "Branje seznama datotek" @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-05-18 08:35+0100\n" +"PO-Revision-Date: 2006-08-18 15:45+0100\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "MIME-Version: 1.0\n" @@ -86,7 +86,7 @@ msgstr "Totalt utrymme som kan redogras fr: " #: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 #, c-format msgid "Package file %s is out of sync." -msgstr "Paketfilen %s r ur synk." +msgstr "Paketfilen %s r inte synkroniserad." #: cmdline/apt-cache.cc:1231 msgid "You must give exactly one pattern" @@ -94,7 +94,7 @@ msgstr "Du mste ange exakt ett mnster" #: cmdline/apt-cache.cc:1385 msgid "No packages found" -msgstr "Inga paket funna" +msgstr "Inga paket hittades" #: cmdline/apt-cache.cc:1462 msgid "Package files:" @@ -427,7 +427,7 @@ msgstr "Ngra filer saknas i paketfilsgruppen \"%s\"" #: ftparchive/cachedb.cc:45 #, c-format msgid "DB was corrupted, file renamed to %s.old" -msgstr "DB var trasig, filen omdpt till %s.old" +msgstr "DB var skadad, filen omdpt till %s.old" #: ftparchive/cachedb.cc:63 #, c-format @@ -439,12 +439,6 @@ msgstr "DB r fr gammal, frsker uppgradera %s" msgid "Unable to open DB file %s: %s" msgstr "Kunde inte ppna DB-filen %s: %s" -# Felmeddelande fr misslyckad chdir -#: ftparchive/cachedb.cc:114 -#, c-format -msgid "File date has changed %s" -msgstr "Fildatumet har ndrats %s" - #: ftparchive/cachedb.cc:155 msgid "Archive has no control record" msgstr "Arkivet har ingen styrpost" @@ -478,17 +472,17 @@ msgstr "F: Felen gller filen " #: ftparchive/writer.cc:151 ftparchive/writer.cc:181 #, c-format msgid "Failed to resolve %s" -msgstr "Misslyckades att sl upp %s" +msgstr "Misslyckades med att sl upp %s" # ??? #: ftparchive/writer.cc:163 msgid "Tree walking failed" -msgstr "Trvandring misslyckades" +msgstr "Trdvandring misslyckades" #: ftparchive/writer.cc:188 #, c-format msgid "Failed to open %s" -msgstr "Misslyckades att ppna %s" +msgstr "Misslyckades med att ppna %s" #: ftparchive/writer.cc:245 #, c-format @@ -498,17 +492,17 @@ msgstr " Avlnka %s [%s]\n" #: ftparchive/writer.cc:253 #, c-format msgid "Failed to readlink %s" -msgstr "Misslyckades att lsa lnk %s" +msgstr "Misslyckades med att lsa lnk %s" #: ftparchive/writer.cc:257 #, c-format msgid "Failed to unlink %s" -msgstr "Misslyckades att lnka ut %s" +msgstr "Misslyckades med att lnka ut %s" #: ftparchive/writer.cc:264 #, c-format msgid "*** Failed to link %s to %s" -msgstr "*** Misslyckades att lnka %s till %s" +msgstr "*** Misslyckades med att lnka %s till %s" #: ftparchive/writer.cc:274 #, c-format @@ -519,7 +513,7 @@ msgstr " Avlnkningsgrns p %sB ndd.\n" #: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 #, c-format msgid "Failed to stat %s" -msgstr "Misslyckades att ta status p %s" +msgstr "Misslyckades med att ta status p %s" # Flt vid namn "Package" #: ftparchive/writer.cc:386 @@ -544,7 +538,7 @@ msgstr "Internt fel, kunde inta hitta delen %s" #: ftparchive/contents.cc:353 ftparchive/contents.cc:384 msgid "realloc - Failed to allocate memory" -msgstr "realloc - Misslyckades att allokera minne" +msgstr "realloc - Misslyckades med att allokera minne" #: ftparchive/override.cc:38 ftparchive/override.cc:146 #, c-format @@ -570,7 +564,7 @@ msgstr "Felaktig override %s rad %lu #3" #: ftparchive/override.cc:131 ftparchive/override.cc:205 #, c-format msgid "Failed to read the override file %s" -msgstr "Misslyckades att lsa override-filen %s" +msgstr "Misslyckades med att lsa sidosttningsfilen %s" #: ftparchive/multicompress.cc:75 #, c-format @@ -585,15 +579,15 @@ msgstr "Komprimerad utdata %s behver en komprimeringsuppsttning" #: ftparchive/multicompress.cc:172 methods/rsh.cc:91 msgid "Failed to create IPC pipe to subprocess" -msgstr "Misslyckades att skapa IPC-rr till underprocess" +msgstr "Misslyckades med att skapa IPC-rr till underprocess" #: ftparchive/multicompress.cc:198 msgid "Failed to create FILE*" -msgstr "Misslyckades att skapa FILE*" +msgstr "Misslyckades med att skapa FILE*" #: ftparchive/multicompress.cc:201 msgid "Failed to fork" -msgstr "Misslyckades att grena" +msgstr "Misslyckades med att grena process" #: ftparchive/multicompress.cc:215 msgid "Compress child" @@ -602,15 +596,15 @@ msgstr "Barnprocess fr komprimering" #: ftparchive/multicompress.cc:238 #, c-format msgid "Internal error, failed to create %s" -msgstr "Internt fel, misslyckades att skapa %s" +msgstr "Internt fel, misslyckades med att skapa %s" #: ftparchive/multicompress.cc:289 msgid "Failed to create subprocess IPC" -msgstr "Misslyckades att skapa underprocess-IPC" +msgstr "Misslyckades med att skapa underprocess-IPC" #: ftparchive/multicompress.cc:324 msgid "Failed to exec compressor " -msgstr "Misslyckades att starta packare " +msgstr "Misslyckades med att starta packare " #: ftparchive/multicompress.cc:363 msgid "decompressor" @@ -622,7 +616,7 @@ msgstr "Barnprocessen misslyckades" #: ftparchive/multicompress.cc:458 msgid "Failed to read while computing MD5" -msgstr "Misslyckades att lsa vid berkning av MD5" +msgstr "Misslyckades med att lsa vid berkning av MD5" #: ftparchive/multicompress.cc:475 #, c-format @@ -632,7 +626,7 @@ msgstr "Problem med att lnka ut %s" #: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 #, c-format msgid "Failed to rename %s to %s" -msgstr "Misslyckades att byta namn p %s till %s" +msgstr "Misslyckades med att byta namn p %s till %s" #: cmdline/apt-get.cc:120 msgid "Y" @@ -655,7 +649,7 @@ msgstr "men %s r installerat" #: cmdline/apt-get.cc:329 #, c-format msgid "but %s is to be installed" -msgstr "men %s skall installeras" +msgstr "men %s kommer att installeras" #: cmdline/apt-get.cc:336 msgid "but it is not installable" @@ -741,7 +735,7 @@ msgstr "%lu ej helt installerade eller borttagna.\n" #: cmdline/apt-get.cc:649 msgid "Correcting dependencies..." -msgstr "Rttar beroenden...." +msgstr "Rttar till beroenden...." #: cmdline/apt-get.cc:652 msgid " failed." @@ -749,7 +743,7 @@ msgstr " misslyckades." #: cmdline/apt-get.cc:655 msgid "Unable to correct dependencies" -msgstr "Kunde inte rtta beroenden" +msgstr "Kunde inte rtta till beroenden" #: cmdline/apt-get.cc:658 msgid "Unable to minimize the upgrade set" @@ -761,7 +755,8 @@ msgstr " Frdig" #: cmdline/apt-get.cc:664 msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Du kan mjligen rtta dessa genom att kra \"apt-get -f install\"." +msgstr "" +"Du kan mjligen rtta till dessa genom att kra \"apt-get -f install\"." #: cmdline/apt-get.cc:667 msgid "Unmet dependencies. Try using -f." @@ -773,7 +768,7 @@ msgstr "VARNING: Fljande paket kunde inte autentiseras!" #: cmdline/apt-get.cc:693 msgid "Authentication warning overridden.\n" -msgstr "Authentiseringsvarning verkrd.\n" +msgstr "Autentiseringsvarning sidosatt.\n" #: cmdline/apt-get.cc:700 msgid "Install these packages without verification [y/N]? " @@ -811,8 +806,8 @@ msgstr "Listan ver kllor kunde inte lsas." #: cmdline/apt-get.cc:816 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Konstigt.. storlekarna stmde inte, skicka e-post till apt@packages.debian." -"org" +"Konstigt.. storlekarna stmde inte verens, skicka e-post till apt@packages." +"debian.org" #: cmdline/apt-get.cc:821 #, c-format @@ -827,7 +822,7 @@ msgstr "Behver hmta %sB arkiv.\n" #: cmdline/apt-get.cc:829 #, c-format msgid "After unpacking %sB of additional disk space will be used.\n" -msgstr "Efter uppackning kommer %sB ytterligare diskutrymme anvndas.\n" +msgstr "Efter uppackning kommer %sB ytterligare diskutrymme att anvndas.\n" #: cmdline/apt-get.cc:832 #, c-format @@ -875,11 +870,11 @@ msgstr "Vill du fortstta [J/n]? " #: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 #, c-format msgid "Failed to fetch %s %s\n" -msgstr "Misslyckades att hmta %s %s\n" +msgstr "Misslyckades med att hmta %s %s\n" #: cmdline/apt-get.cc:979 msgid "Some files failed to download" -msgstr "Misslyckades att hmta vissa filer" +msgstr "Misslyckades med att hmta vissa filer" #: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 msgid "Download complete and in download only mode" @@ -899,7 +894,7 @@ msgstr "--fix-missing och mediabyte stds inte nnu" #: cmdline/apt-get.cc:995 msgid "Unable to correct missing packages." -msgstr "Kunde inte rtta saknade paket." +msgstr "Kunde inte rtta till saknade paket." #: cmdline/apt-get.cc:996 msgid "Aborting install." @@ -1011,7 +1006,8 @@ msgstr "Observera, vljer %s fr regex \"%s\"\n" #: cmdline/apt-get.cc:1546 msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Du kan mjligen rtta detta genom att kra \"apt-get -f install\":" +msgstr "" +"Du kan mjligen rtta till detta genom att kra \"apt-get -f install\":" #: cmdline/apt-get.cc:1549 msgid "" @@ -1115,7 +1111,7 @@ msgstr "Hmtar kllkod %s\n" #: cmdline/apt-get.cc:2019 msgid "Failed to fetch some archives." -msgstr "Misslyckades att hmta vissa arkiv." +msgstr "Misslyckades med att hmta vissa arkiv." #: cmdline/apt-get.cc:2047 #, c-format @@ -1176,13 +1172,13 @@ msgstr "" #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -"Misslyckades att uppfylla %s-beroendet fr %s: Det installerade paketet %s " -"r fr nytt" +"Misslyckades med att uppfylla %s-beroendet fr %s: Det installerade paketet %" +"s r fr nytt" #: cmdline/apt-get.cc:2324 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" -msgstr "Misslyckades att uppfylla %s-beroendet fr %s: %s" +msgstr "Misslyckades med att uppfylla %s-beroendet fr %s: %s" #: cmdline/apt-get.cc:2338 #, c-format @@ -1373,7 +1369,7 @@ msgstr "saknade beroenden. Detta r okej, bara felen ovanfr detta" #: dselect/install:103 msgid "" "above this message are important. Please fix them and run [I]nstall again" -msgstr "meddelande r viktiga. Frsk rtta dem och [I]nstallera igen" +msgstr "meddelande r viktiga. Frsk rtta till dem och [I]nstallera igen" #: dselect/update:30 msgid "Merging available information" @@ -1381,11 +1377,11 @@ msgstr "Lgger in tillgnglighetsinformation" #: apt-inst/contrib/extracttar.cc:117 msgid "Failed to create pipes" -msgstr "Misslyckades att skapa rr" +msgstr "Misslyckades med att skapa rr" #: apt-inst/contrib/extracttar.cc:143 msgid "Failed to exec gzip " -msgstr "Misslyckades att kra gzip" +msgstr "Misslyckades med att kra gzip" #: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 msgid "Corrupted archive" @@ -1406,7 +1402,7 @@ msgstr "Ogiltig arkivsignatur" #: apt-inst/contrib/arfile.cc:81 msgid "Error reading archive member header" -msgstr "Misslyckades att lsa huvud fr arkivdel" +msgstr "Misslyckades med att lsa huvud fr arkivdel" #: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105 msgid "Invalid archive member header" @@ -1418,7 +1414,7 @@ msgstr "Arkivet r fr kort" #: apt-inst/contrib/arfile.cc:135 msgid "Failed to read the archive headers" -msgstr "Misslyckades att lsa arkivhuvuden" +msgstr "Misslyckades med att lsa arkivhuvuden" # noden har inte ngon lnk till nsta paket #: apt-inst/filelist.cc:384 @@ -1427,11 +1423,11 @@ msgstr "DropNode anropat p olnkad nod" #: apt-inst/filelist.cc:416 msgid "Failed to locate the hash element!" -msgstr "Misslyckades att hitta hash-element!" +msgstr "Misslyckades med att hitta hash-element!" #: apt-inst/filelist.cc:463 msgid "Failed to allocate diversion" -msgstr "Misslyckades att allokera omdirigering" +msgstr "Misslyckades med att allokera omdirigering" #: apt-inst/filelist.cc:468 msgid "Internal error in AddDiversion" @@ -1455,12 +1451,12 @@ msgstr "Duplicerad konfigurationsfil %s/%s" #: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 #, c-format msgid "Failed to write file %s" -msgstr "Misslyckades att skriva filen %s" +msgstr "Misslyckades med att skriva filen %s" #: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 #, c-format msgid "Failed to close file %s" -msgstr "Misslyckades att stnga filen %s" +msgstr "Misslyckades med att stnga filen %s" #: apt-inst/extract.cc:96 apt-inst/extract.cc:167 #, c-format @@ -1493,7 +1489,7 @@ msgstr "Katalogen %s erstts av en icke-katalog" #: apt-inst/extract.cc:283 msgid "Failed to locate node in its hash bucket" -msgstr "Misslyckades att hitta noden i sin hashkorg" +msgstr "Misslyckades med att hitta noden i sin hashkorg" #: apt-inst/extract.cc:287 msgid "The path is too long" @@ -1525,7 +1521,7 @@ msgstr "Kunde inte ta status p %s" #: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 #, c-format msgid "Failed to remove %s" -msgstr "Misslyckades att ta bort %s" +msgstr "Misslyckades med att ta bort %s" #: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 #, c-format @@ -1570,13 +1566,13 @@ msgid "" "then make it empty and immediately re-install the same version of the " "package!" msgstr "" -"Misslyckades att ppna listfilen \"%sinfo/%s\". Om du inte kan terskapa " +"Misslyckades med att ppna listfilen \"%sinfo/%s\". Om du inte kan terskapa " "filen, skapa en tom och installera omedelbart om samma version av paketet!" #: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 #, c-format msgid "Failed reading the list file %sinfo/%s" -msgstr "Misslyckades att lsa listfilen %sinfo/%s" +msgstr "Misslyckades med att lsa listfilen %sinfo/%s" #: apt-inst/deb/dpkgdb.cc:266 msgid "Internal error getting a node" @@ -1585,7 +1581,7 @@ msgstr "Internt fel nr en nod skulle hmtas" #: apt-inst/deb/dpkgdb.cc:309 #, c-format msgid "Failed to open the diversions file %sdiversions" -msgstr "Misslyckades att ppna omdirigeringsfilen %sdiversions" +msgstr "Misslyckades med att ppna omdirigeringsfilen %sdiversions" #: apt-inst/deb/dpkgdb.cc:324 msgid "The diversion file is corrupted" @@ -1608,12 +1604,12 @@ msgstr "Paketcachen mste ha initierats frst" #: apt-inst/deb/dpkgdb.cc:443 #, c-format msgid "Failed to find a Package: header, offset %lu" -msgstr "Misslyckades att hitta Package:-huvud, offset %lu" +msgstr "Misslyckades med att hitta Package:-huvud, position %lu" #: apt-inst/deb/dpkgdb.cc:465 #, c-format msgid "Bad ConfFile section in the status file. Offset %lu" -msgstr "Felaktiv ConfFile-sektion i statusfilen. Offset %lu" +msgstr "Felaktig ConfFile-sektion i statusfilen. Position %lu" #: apt-inst/deb/dpkgdb.cc:470 #, c-format @@ -1642,7 +1638,7 @@ msgstr "Internt fel, kunde inte hitta del" #: apt-inst/deb/debfile.cc:171 msgid "Failed to locate a valid control file" -msgstr "Misslyckades att hitta en giltig control-fil" +msgstr "Misslyckades med att hitta en giltig control-fil" #: apt-inst/deb/debfile.cc:256 msgid "Unparsable control file" @@ -1743,7 +1739,7 @@ msgstr "Inget svar p frbindelsen inom tidsgrnsen" #: methods/ftp.cc:335 msgid "Server closed the connection" -msgstr "Servern stngde frbindelsen" +msgstr "Servern stngde anslutningen" #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190 msgid "Read error" @@ -2473,7 +2469,7 @@ msgstr "Paketlistan eller statusfilen kunde inte tolkas eller ppnas." #: apt-pkg/cachefile.cc:77 msgid "You may want to run apt-get update to correct these problems" -msgstr "Du kan mjligen rtta problemet genom att kra \"apt-get update\"" +msgstr "Du kan mjligen rtta till problemet genom att kra \"apt-get update\"" # "Package" r en strng i instllningsfilen #: apt-pkg/policy.cc:269 @@ -2764,6 +2760,26 @@ msgstr "Tog bort hela %s" msgid "Connection closed prematurely" msgstr "Frbindelsen stngdes i frtid" +# Felmeddelande fr misslyckad chdir +#~ msgid "File date has changed %s" +#~ msgstr "Fildatumet har ndrats %s" + +#~ msgid "" +#~ "DB format is invalid. If you upgraded from a older version of apt, please " +#~ "remove and re-create the database." +#~ msgstr "" +#~ "DB-formatet r ogiltigt. Ta bort och terskapa databasen om du " +#~ "uppgraderar frn en ldre version av apt." + +#~ msgid " %s has no source override entry\n" +#~ msgstr " %s har ingen kllsidosttningspost\n" + +#~ msgid " %s has no binary override entry either\n" +#~ msgstr " %s har heller ingen binr sidosttningspost\n" + +#~ msgid "Could not patch file" +#~ msgstr "Kunde inte lgga p programfix p filen" + #~ msgid "Reading file list" #~ msgstr "Lser fillista" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" "PO-Revision-Date: 2006-03-16 15:53+0800\n" "Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n" "Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n" @@ -152,7 +152,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s para sa %s %s kinompile noong %s %s\n" @@ -434,115 +434,126 @@ msgstr "Walang mga pinili na tugma" msgid "Some files are missing in the package file group `%s'" msgstr "May mga talaksang kulang sa grupo ng talaksang pakete `%s'" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "Nasira ang DB, pinalitan ng pangalan ang talaksan sa %s.old" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "Luma ang DB, sinusubukang maupgrade ang %s" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Hindi mabuksan ang talaksang DB %s: %s" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Nagbago ang petsa ng talaksang %s" +msgid "Failed to stat %s" +msgstr "Bigo ang pag-stat ng %s" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "Walang kontrol rekord ang arkibo" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Hindi makakuha ng cursor" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "W: Hindi mabasa ang directory %s\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "W: Hindi ma-stat %s\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "W: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: Mga error ay tumutukoy sa talaksang " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Bigo sa pag-resolba ng %s" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "Bigo ang paglakad sa puno" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Bigo ang pagbukas ng %s" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " DeLink %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Bigo ang pagbasa ng link %s" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "Bigo ang pag-unlink ng %s" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Bigo ang pag-link ng %s sa %s" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " DeLink limit na %sB tinamaan.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Bigo ang pag-stat ng %s" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "Walang field ng pakete ang arkibo" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s ay walang override entry\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " Tagapangalaga ng %s ay %s hindi %s\n" +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s ay walang override entry\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s ay walang override entry\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -807,11 +818,11 @@ msgstr "" msgid "Internal error, Ordering didn't finish" msgstr "Error na internal, hindi natapos ang pagsaayos na pagkasunud-sunod" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 msgid "Unable to lock the download directory" msgstr "Hindi maaldaba ang directory ng download" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Hindi mabasa ang talaan ng pagkukunan (sources)." @@ -843,7 +854,7 @@ msgstr "" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Matapos magbuklat ay %sB na puwang sa disk ang mapapalaya.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 #, c-format msgid "Couldn't determine free space in %s" msgstr "Hindi matantsa ang libreng puwang sa %s" @@ -880,7 +891,7 @@ msgstr "Abort." msgid "Do you want to continue [Y/n]? " msgstr "Nais niyo bang magpatuloy [O/h]? " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Bigo sa pagkuha ng %s %s\n" @@ -889,7 +900,7 @@ msgstr "Bigo sa pagkuha ng %s %s\n" msgid "Some files failed to download" msgstr "May mga talaksang hindi nakuha" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 msgid "Download complete and in download only mode" msgstr "Kumpleto ang pagkakuha ng mga talaksan sa modong pagkuha lamang" @@ -1064,107 +1075,107 @@ msgstr "Sirang mga pakete" msgid "The following extra packages will be installed:" msgstr "Ang mga sumusunod na extra na pakete ay luluklokin:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1685 msgid "Suggested packages:" msgstr "Mga paketeng mungkahi:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1686 msgid "Recommended packages:" msgstr "Mga paketeng rekomendado:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1706 msgid "Calculating upgrade... " msgstr "Sinusuri ang pag-upgrade... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Bigo" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1714 msgid "Done" msgstr "Tapos" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 msgid "Internal error, problem resolver broke stuff" msgstr "Error na internal, may nasira ang problem resolver" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1887 msgid "Must specify at least one package to fetch source for" msgstr "Kailangang magtakda ng kahit isang pakete na kunan ng source" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 #, c-format msgid "Unable to find a source package for %s" msgstr "Hindi mahanap ang paketeng source para sa %s" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1961 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Linaktawan ang nakuha na na talaksan '%s'\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1985 #, c-format msgid "You don't have enough free space in %s" msgstr "Kulang kayo ng libreng puwang sa %s" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1990 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Kailangang kumuha ng %sB/%sB ng arkibong source.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:1993 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Kailangang kumuha ng %sB ng arkibong source.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:1999 #, c-format msgid "Fetch source %s\n" msgstr "Kunin ang Source %s\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2030 msgid "Failed to fetch some archives." msgstr "Bigo sa pagkuha ng ilang mga arkibo." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2058 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Linaktawan ang pagbuklat ng nabuklat na na source sa %s\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2070 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Bigo ang utos ng pagbuklat '%s'.\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2071 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Paki-siguro na nakaluklok ang paketeng 'dpkg-dev'.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2088 #, c-format msgid "Build command '%s' failed.\n" msgstr "Utos na build '%s' ay bigo.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2107 msgid "Child process failed" msgstr "Bigo ang prosesong anak" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2123 msgid "Must specify at least one package to check builddeps for" msgstr "Kailangang magtakda ng kahit isang pakete na susuriin ang builddeps" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2151 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Hindi makuha ang impormasyong build-dependency para sa %s" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2171 #, c-format msgid "%s has no build depends.\n" msgstr "Walang build depends ang %s.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2223 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1173,7 +1184,7 @@ msgstr "" "Dependensiyang %s para sa %s ay hindi mabuo dahil ang paketeng %s ay hindi " "mahanap" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2275 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1182,32 +1193,32 @@ msgstr "" "Dependensiyang %s para sa %s ay hindi mabuo dahil walang magamit na bersyon " "ng paketeng %s na tumutugon sa kinakailangang bersyon" -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2310 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Bigo sa pagbuo ng dependensiyang %s para sa %s: Ang naka-instol na paketeng %" "s ay bagong-bago pa lamang." -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2335 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Bigo sa pagbuo ng dependensiyang %s para sa %s: %s" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Hindi mabuo ang build-dependencies para sa %s." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2353 msgid "Failed to process build dependencies" msgstr "Bigo sa pagproseso ng build dependencies" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2385 msgid "Supported modules:" msgstr "Suportadong mga Module:" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2426 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1390,19 +1401,19 @@ msgstr "Pinagsasama ang magagamit na impormasyon" msgid "Failed to create pipes" msgstr "Bigo sa paglikha ng mga pipe" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Bigo sa pagtakbo ng gzip " -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Sirang arkibo" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Bigo ang checksum ng tar, sira ang arkibo" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Hindi kilalang uri ng TAR header %u, miyembrong %s" @@ -1683,12 +1694,12 @@ msgstr "Hindi nahanap ang Disk." msgid "File not found" msgstr "Hindi Nahanap ang Talaksan" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 #: methods/gzip.cc:142 msgid "Failed to stat" msgstr "Bigo ang pag-stat" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 msgid "Failed to set modification time" msgstr "Bigo ang pagtakda ng oras ng pagbago" @@ -1900,42 +1911,42 @@ msgstr "May naganap na kababalaghan sa pagresolba ng '%s:%s' (%i)" msgid "Unable to connect to %s %s:" msgstr "Hindi maka-konek sa %s %s:" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, fuzzy, c-format msgid "Couldn't access keyring: '%s'" msgstr "Hindi maresolba ang '%s'" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" "E: Sobrang haba ng talaan ng argumento mula sa Acquire::gpgv::Options. " "Lalabas." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" "Error na internal: Tanggap na lagda, ngunit hindi malaman ang key " "fingerprint?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "Hindi kukulang sa isang hindi tanggap na lagda ang na-enkwentro." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, fuzzy, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr " upang maberipika ang lagda (nakaluklok ba ang gnupg?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Hindi kilalang error sa pag-execute ng gpgv" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "Ang sumusunod na mga lagda ay imbalido:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2319,12 +2330,12 @@ msgstr "Bersyong Kandidato" msgid "Dependency generation" msgstr "Pagbuo ng Dependensiya" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Hindi ma-parse ang talaksang pakete %s (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Hindi ma-parse ang talaksang pakete %s (2)" @@ -2778,6 +2789,13 @@ msgstr "Bigo sa pagtanggal ng %s" msgid "Connection closed prematurely" msgstr "Nagsara ng maaga ang koneksyon" +#~ msgid "File date has changed %s" +#~ msgstr "Nagbago ang petsa ng talaksang %s" + +#, fuzzy +#~ msgid "Could not patch file" +#~ msgstr "Hindi mabuksan ang talaksang %s" + #~ msgid "Reading file list" #~ msgstr "Binabasa ang Talaksang Listahan" @@ -6,15 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-27 13:46+0200\n" -"PO-Revision-Date: 2006-05-19 22:19+0930\n" +"POT-Creation-Date: 2006-09-12 11:18+0200\n" +"PO-Revision-Date: 2006-09-21 17:16+0930\n" "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" -"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" -"X-Generator: LocFactoryEditor 1.5.5b43u\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.6fc1\n" #: cmdline/apt-cache.cc:135 #, c-format @@ -30,11 +30,11 @@ msgstr "Không thể định vị gói %s" #: cmdline/apt-cache.cc:232 msgid "Total package names : " -msgstr "Tổng tên gói: " +msgstr "Tổng số tên gói: " #: cmdline/apt-cache.cc:272 msgid " Normal packages: " -msgstr " Gói bình thường: " +msgstr " Gói chuẩn: " #: cmdline/apt-cache.cc:273 msgid " Pure virtual packages: " @@ -46,43 +46,43 @@ msgstr " Gói ảo đơn: " #: cmdline/apt-cache.cc:275 msgid " Mixed virtual packages: " -msgstr " Gói ảo đã pha trộn: " +msgstr " Gói ảo hỗn hợp:" #: cmdline/apt-cache.cc:276 msgid " Missing: " -msgstr " Thiếu: " +msgstr " Thiếu : " #: cmdline/apt-cache.cc:278 msgid "Total distinct versions: " -msgstr "Tổng phiên bản riêng: " +msgstr "Tổng số phiên bản riêng: " #: cmdline/apt-cache.cc:280 msgid "Total dependencies: " -msgstr "Tổng cách phụ thuộc: " +msgstr "Tổng số phụ thuộc: " #: cmdline/apt-cache.cc:283 msgid "Total ver/file relations: " -msgstr "Tổng cách liên quan phiên bản và tập tin: " +msgstr "Tổng số liên quan phiên bản và tập tin: " #: cmdline/apt-cache.cc:285 msgid "Total Provides mappings: " -msgstr "Tổng cách ảnh xạ Miễn là: " +msgstr "Tổng số ảnh xạ Miễn là: " #: cmdline/apt-cache.cc:297 msgid "Total globbed strings: " -msgstr "Tổng chuỗi mở rộng mẫu tìm kiếm: " +msgstr "Tổng số chuỗi mở rộng mẫu tìm kiếm: " #: cmdline/apt-cache.cc:311 msgid "Total dependency version space: " -msgstr "Tổng chỗ cho cách phụ thuộc vào phiên bản: " +msgstr "Tổng chỗ phiên bản phụ thuộc:" #: cmdline/apt-cache.cc:316 msgid "Total slack space: " -msgstr "Tổng chỗ chưa dùng: " +msgstr "Tổng chỗ nghỉ:" #: cmdline/apt-cache.cc:324 msgid "Total space accounted for: " -msgstr "Tổng chỗ sẽ dùng: " +msgstr "Tổng chỗ đã tính: " #: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 #, c-format @@ -152,7 +152,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s cho %s %s được biên dịch vào %s %s\n" @@ -455,115 +455,128 @@ msgstr "Không có điều đã chọn khớp được" msgid "Some files are missing in the package file group `%s'" msgstr "Thiếu một số tập tin trong nhóm tập tin gói « %s »." -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "Cơ sở dữ liệu bị hỏng nên đã đổi tên tâp tin thành %s.old (old: cũ)." -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "Cơ sở dữ liệu cũ nên đang cố nâng cấp lên %s" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" +"Dạng thức co sở dữ liệu không hợp lệ. Nếu bạn đã nâng cấp từ một phiên bản " +"apt cũ, hãy gỡ bỏ rồi tạo lại co sở dữ liệu này." + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "Không thể mở tập tin cơ sở dữ liệu %s: %s." -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" -msgstr "Ngày tập tin đã đổi %s" +msgid "Failed to stat %s" +msgstr "Việc lấy thông tin toàn bộ cho %s bị lỗi" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "Kho không có mục ghi điều khiển" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "Không thể lấy con chạy" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "W: Không thể đọc thư mục %s\n" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "W: Không thể lấy thông tin toàn bộ cho %s\n" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "E: " -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "W: " -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "E: có lỗi áp dụng vào tập tin " -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "Việc quyết định %s bị lỗi" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "Việc di chuyển qua cây bị lỗi" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "Việc mở %s bị lỗi" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr " Bỏ liên kết %s [%s]\n" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "Việc tạo liên kết lại %s bị lỗi" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "Việc bỏ liên kết %s bị lỗi" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "*** Việc liên kết %s đến %s bị lỗi" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr " Hết hạn bỏ liên kết của %sB.\n" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "Việc lấy thông tin toàn bộ cho %s bị lỗi" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "Kho không có trường gói" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr " %s không có mục ghi đè\n" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr " người bảo quản %s là %s không phải %s\n" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr " %s không có mục ghi đè nguồn\n" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s cũng không có mục ghi đè nhị phân\n" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -826,11 +839,11 @@ msgstr "Cần phải gỡ bỏ một số gói, nhưng mà khả năng Gỡ bỏ msgid "Internal error, Ordering didn't finish" msgstr "Gặp lỗi nội bộ: tiến trình Sắp xếp chưa xong" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 msgid "Unable to lock the download directory" msgstr "Không thể khóa thư mục tải về" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "Không thể đọc danh sách nguồn." @@ -860,7 +873,7 @@ msgstr "Sau khi đã giải nén, sẻ chiếm %sB sức chứa đĩa thêm.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Sau khi đã giải nén, sẽ giải phóng %sB sức chữa đĩa thêm.\n" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 #, c-format msgid "Couldn't determine free space in %s" msgstr "Không thể quyết định chỗ rảnh trong %s" @@ -898,7 +911,7 @@ msgstr "Hủy bỏ." msgid "Do you want to continue [Y/n]? " msgstr "Bạn có muốn tiếp tục không? [Y/n] [C/k] " -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Việc gói %s bị lỗi %s\n" @@ -907,7 +920,7 @@ msgstr "Việc gói %s bị lỗi %s\n" msgid "Some files failed to download" msgstr "Một số tập tin không tải về được" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 msgid "Download complete and in download only mode" msgstr "Mới tải về xong và trong chế độ chỉ tải về" @@ -1082,115 +1095,115 @@ msgstr "Gói bị ngắt" msgid "The following extra packages will be installed:" msgstr "Những gói thêm theo đây sẽ được cài đặt:" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1692 msgid "Suggested packages:" msgstr "Gói được đệ nghị:" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1693 msgid "Recommended packages:" msgstr "Gói được khuyên:" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1713 msgid "Calculating upgrade... " msgstr "Đang tính nâng cấp... " -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "Bị lỗi" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1721 msgid "Done" msgstr "Xong" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 msgid "Internal error, problem resolver broke stuff" msgstr "Lỗi nội bộ: bộ tháo gỡ vấn đề đã ngắt gì" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1894 msgid "Must specify at least one package to fetch source for" msgstr "Phải ghi rõ ít nhất một gói cần lấy nguồn cho nó" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 #, c-format msgid "Unable to find a source package for %s" msgstr "Không tìm thấy gói nguồn cho %s" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1968 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Đang bỏ qua tập tin đã được tải về « %s »\n" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1992 #, c-format msgid "You don't have enough free space in %s" msgstr "Không đủ sức chứa còn rảnh trong %s" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1997 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Cần phải lấy %sB/%sB kho nguồn.\n" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:2000 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Cần phải lấy %sB kho nguồn.\n" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:2006 #, c-format msgid "Fetch source %s\n" msgstr "Lấy nguồn %s\n" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2037 msgid "Failed to fetch some archives." msgstr "Việc lấy một số kho bị lỗi." -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2065 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Đang bỏ qua giải nén nguồn đã giải nén trong %s\n" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2077 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Lệnh giải nén « %s » bị lỗi.\n" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2078 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Hãy kiểm tra xem gói « dpkg-dev » có được cài đặt chưa.\n" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Build command '%s' failed.\n" msgstr "Lệnh xây dụng « %s » bị lỗi.\n" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2114 msgid "Child process failed" msgstr "Tiến trình con bị lỗi" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2130 msgid "Must specify at least one package to check builddeps for" msgstr "" "Phải ghi rõ ít nhất một gói cần kiểm tra cách phụ thuộc khi xây dụng cho nó" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2158 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Không thể lấy thông tin về cách phụ thuộc khi xây dụng cho %s" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2178 #, c-format msgid "%s has no build depends.\n" msgstr "%s không phụ thuộc vào gì khi xây dụng.\n" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2230 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "cách phụ thuộc %s cho %s không thể được thỏa vì không tìm thấy gọi %s" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2282 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1199,31 +1212,31 @@ msgstr "" "cách phụ thuộc %s cho %s không thể được thỏa vì không có phiên bản sẵn sàng " "của gói %s có thể thỏa điều kiện phiên bản." -#: cmdline/apt-get.cc:2299 +#: cmdline/apt-get.cc:2317 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi vì gói đã cài đặt %s quá mới" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2342 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi: %s." -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2356 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Không thể thỏa cách phụ thuộc khi xây dụng cho %s." -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2360 msgid "Failed to process build dependencies" msgstr "Việc xử lý cách phụ thuộc khi xây dụng bị lỗi" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2392 msgid "Supported modules:" msgstr "Mô-đun đã hỗ trợ :" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2433 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1414,19 +1427,19 @@ msgstr "Đang hợp nhất các thông tin sẵn sàng..." msgid "Failed to create pipes" msgstr "Việc tạo những ống bị lỗi" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "Việc thực hiện gzip bị lỗi " -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "Kho bị hỏng." -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "Tiến trình tar (kiểm tổng tar) thât bại: kho bị hỏng." -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Không biết kiểu phần đầu tar %u, bộ phạn %s" @@ -1709,12 +1722,12 @@ msgstr "Không tìm thấy đĩa" msgid "File not found" msgstr "Không tìm thấy tập tin" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 msgid "Failed to stat" msgstr "Việc lấy các thông tin bị lỗi" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 msgid "Failed to set modification time" msgstr "Việc lập giờ sửa đổi bị lỗi" @@ -1926,39 +1939,39 @@ msgstr "Gặp lỗi nghiệm trọng khi tháo gỡ « %s:%s » (%i)" msgid "Unable to connect to %s %s:" msgstr "Không thể kết nối đến %s %s:" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "Không thể truy cập vòng khoá « %s »" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "E: Danh sách lệnh từ « Acquire::gpgv::Options » quá dài nên thoát." -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "Lỗi nội bộ: chữ ký đúng, nhưng không thể quyết định vân tay khóa ?!" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "Gặp ít nhất một chữ ký không hợp lệ." -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "" "Không thể thực hiện « %s » để kiểm chứng chữ ký (gnupg có được cài đặt chưa?)" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "Gặp lỗi lạ khi thực hiện gpgv" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "Những chữ ký theo đây là không hợp lệ:\n" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2339,12 +2352,12 @@ msgstr "Phiên bản ứng cử" msgid "Dependency generation" msgstr "Tạo ra cách phụ thuộc" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "Không thể phân tách tập tin gói %s (1)" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "Không thể phân tách tập tin gói %s (2)" @@ -2796,15 +2809,3 @@ msgstr "Mới gỡ bỏ hoàn toàn %s" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Kết nối bị đóng quá sớm." - -#~ msgid "Reading file list" -#~ msgstr "Đang đọc danh sách tâp tin..." - -#~ msgid "Could not execute " -#~ msgstr "Không thể thực hiện " - -#~ msgid "Preparing for remove with config %s" -#~ msgstr "Đang chuẩn bị gỡ bỏ với cấu hình %s..." - -#~ msgid "Removed with config %s" -#~ msgstr "Mới gỡ bỏ với cấu hình %s" diff --git a/po/zh_CN.po b/po/zh_CN.po index 789101a74..c38c5f0f4 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2714,6 +2714,27 @@ msgstr "无法删除 %s" msgid "Connection closed prematurely" msgstr "连接被永久关闭" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s 中没有 override 项\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s 中没有 override 项\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "无法打开文件 %s" + #~ msgid "Reading file list" #~ msgstr "正在读取文件列表" diff --git a/po/zh_TW.po b/po/zh_TW.po index 15d5f3cdd..2057703ff 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -2721,6 +2721,27 @@ msgstr "無法移除 %s" msgid "Connection closed prematurely" msgstr "連線不預期的結束" +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/writer.cc:623 +#, fuzzy, c-format +msgid " %s has no source override entry\n" +msgstr " %s 無 override 項目\n" + +#: ftparchive/writer.cc:627 +#, fuzzy, c-format +msgid " %s has no binary override entry either\n" +msgstr " %s 無 override 項目\n" + +#: methods/rred.cc:219 +#, fuzzy +msgid "Could not patch file" +msgstr "無法開啟『%s』檔案。" + #~ msgid "Reading file list" #~ msgstr "讀取軟件表中" diff --git a/share/debian-archive.gpg b/share/debian-archive.gpg Binary files differindex bb5ed5033..da1aa5e97 100644 --- a/share/debian-archive.gpg +++ b/share/debian-archive.gpg |