diff options
70 files changed, 3190 insertions, 8448 deletions
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 8a535967f..68c871a5d 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -332,7 +332,7 @@ bool ExtractTar::Go(pkgDirStream &Stream) } // And finish up - if (Itm.Size != 0 && BadRecord == false) + if (Itm.Size >= 0 && BadRecord == false) if (Stream.FinishedFile(Itm,Fd) == false) return false; diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 9d83120f8..cd7a88808 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -44,8 +44,10 @@ debDebFile::debDebFile(FileFd &File) : File(File), AR(File) return; } - if (!CheckMember("data.tar.gz") && !CheckMember("data.tar.bz2")) { - _error->Error(_("This is not a valid DEB archive, it has no '%s' or '%s' member"), "data.tar.gz", "data.tar.bz2"); + if (!CheckMember("data.tar.gz") && + !CheckMember("data.tar.bz2") && + !CheckMember("data.tar.lzma")) { + _error->Error(_("This is not a valid DEB archive, it has no '%s', '%s' or '%s' member"), "data.tar.gz", "data.tar.bz2", "data.tar.lzma"); return; } } @@ -130,6 +132,10 @@ bool debDebFile::ExtractArchive(pkgDirStream &Stream) Member = AR.FindMember("data.tar.bz2"); Compressor = "bzip2"; } + if (Member == 0) { + Member = AR.FindMember("data.tar.lzma"); + Compressor = "lzma"; + } if (Member == 0) return _error->Error(_("Internal error, could not locate member")); if (File.Seek(Member->Start) == false) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 6e7c75032..3e6262c96 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -63,6 +63,7 @@ void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf) { Status = StatIdle; ErrorText = LookupTag(Message,"Message"); + UsedMirror = LookupTag(Message,"UsedMirror"); if (QueueCounter <= 1) { /* This indicates that the file is not available right now but might @@ -75,10 +76,17 @@ void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf) Dequeue(); return; } - + Status = StatError; Dequeue(); } + + // report mirror failure back to LP if we actually use a mirror + string FailReason = LookupTag(Message, "FailReason"); + if(FailReason.size() != 0) + ReportMirrorFailure(FailReason); + else + ReportMirrorFailure(ErrorText); } /*}}}*/ // Acquire::Item::Start - Item has begun to download /*{{{*/ @@ -100,7 +108,7 @@ void pkgAcquire::Item::Done(string Message,unsigned long Size,string Hash, { // We just downloaded something.. string FileName = LookupTag(Message,"Filename"); - // we only inform the Log class if it was actually not a local thing + UsedMirror = LookupTag(Message,"UsedMirror"); if (Complete == false && !Local && FileName == DestFile) { if (Owner->Log != 0) @@ -109,7 +117,6 @@ void pkgAcquire::Item::Done(string Message,unsigned long Size,string Hash, if (FileSize == 0) FileSize= Size; - Status = StatDone; ErrorText = string(); Owner->Dequeue(this); @@ -132,6 +139,49 @@ void pkgAcquire::Item::Rename(string From,string To) } /*}}}*/ +void pkgAcquire::Item::ReportMirrorFailure(string FailCode) +{ + // we only act if a mirror was used at all + if(UsedMirror.empty()) + return; +#if 0 + std::cerr << "\nReportMirrorFailure: " + << UsedMirror + << " Uri: " << DescURI() + << " FailCode: " + << FailCode << std::endl; +#endif + const char *Args[40]; + unsigned int i = 0; + string report = _config->Find("Methods::Mirror::ProblemReporting", + "/usr/lib/apt/apt-report-mirror-failure"); + if(!FileExists(report)) + return; + Args[i++] = report.c_str(); + Args[i++] = UsedMirror.c_str(); + Args[i++] = DescURI().c_str(); + Args[i++] = FailCode.c_str(); + Args[i++] = NULL; + pid_t pid = ExecFork(); + if(pid < 0) + { + _error->Error("ReportMirrorFailure Fork failed"); + return; + } + else if(pid == 0) + { + execvp(Args[0], (char**)Args); + std::cerr << "Could not exec " << Args[0] << std::endl; + _exit(100); + } + if(!ExecWait(pid, "report-mirror-failure")) + { + _error->Warning("Couldn't report problem to '%s'", + _config->Find("Methods::Mirror::ProblemReporting").c_str()); + } +} + + // AcqDiffIndex::AcqDiffIndex - Constructor // --------------------------------------------------------------------- @@ -590,7 +640,6 @@ string pkgAcqIndex::Custom600Headers() struct stat Buf; if (stat(Final.c_str(),&Buf) != 0) return "\nIndex-File: true"; - return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); } /*}}}*/ @@ -646,6 +695,7 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash, Status = StatAuthError; ErrorText = _("Hash Sum mismatch"); Rename(DestFile,DestFile + ".FAILED"); + ReportMirrorFailure("HashChecksumFailure"); return; } // Done, move it into position @@ -674,8 +724,10 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash, { // The files timestamp matches if (StringToBool(LookupTag(Message,"Alt-IMS-Hit"),false) == true) + { + unlink(FileName.c_str()); return; - + } Decompression = true; Local = true; DestFile += ".decomp"; @@ -694,7 +746,10 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash, // The files timestamp matches if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == true) + { + unlink(FileName.c_str()); return; + } if (FileName == DestFile) Erase = true; @@ -966,18 +1021,18 @@ void pkgAcqMetaIndex::RetrievalDone(string Message) // see if the download was a IMSHit IMSHit = StringToBool(LookupTag(Message,"IMS-Hit"),false); - Complete = true; string FinalFile = _config->FindDir("Dir::State::lists"); FinalFile += URItoFileName(RealURI); - // The files timestamp matches - if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == false) - { - // Move it into position + // If we get a IMS hit we can remove the empty file in partial + // othersie we move the file in place + if (IMSHit) + unlink(DestFile.c_str()); + else Rename(DestFile,FinalFile); - } + chmod(FinalFile.c_str(),0644); DestFile = FinalFile; } @@ -1050,7 +1105,7 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify) // Queue Packages file (either diff or full packages files, depending // on the users option) - if(_config->FindB("Acquire::PDiffs",true) == true) + if(_config->FindB("Acquire::PDiffs",false) == true) new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description, (*Target)->ShortDesc, ExpectedIndexHash); else @@ -1174,6 +1229,7 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) } // gpgv method failed + ReportMirrorFailure("GPGFailure"); _error->Warning("GPG error: %s: %s", Desc.Description.c_str(), LookupTag(Message,"Message").c_str()); diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index edd910230..802d8d1ff 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -142,6 +142,7 @@ class pkgAcquire::Item * download progress indicator's overall statistics. */ bool Local; + string UsedMirror; /** \brief The number of fetch queues into which this item has been * inserted. @@ -242,6 +243,17 @@ class pkgAcquire::Item /** \return \b true if this object is being fetched from a trusted source. */ virtual bool IsTrusted() {return false;}; + + // report mirror problems + /** \brief Report mirror problem + * + * This allows reporting mirror failures back to a centralized + * server. The apt-report-mirror-failure script is called for this + * + * \param FailCode A short failure string that is send + */ + void ReportMirrorFailure(string FailCode); + /** \brief Initialize an item. * @@ -543,7 +555,8 @@ class pkgAcqIndex : public pkgAcquire::Item * (".bz2" is used if bzip2 is installed, ".gz" otherwise). */ pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc, - string ShortDesc, HashString ExpectedHash, string compressExt=""); + string ShortDesc, HashString ExpectedHash, + string compressExt=""); }; /** \brief An acquire item that is responsible for fetching a diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc index bc29417f7..26f992bcf 100644 --- a/apt-pkg/acquire-method.cc +++ b/apt-pkg/acquire-method.cc @@ -96,12 +96,11 @@ void pkgAcqMethod::Fail(string Err,bool Transient) } char S[1024]; + char *End = S; if (Queue != 0) { - snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n" - "Message: %s %s\n",Queue->Uri.c_str(),Err.c_str(), - FailExtra.c_str()); - + End += snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n" + "Message: %s %s\n",Queue->Uri.c_str(), Err.c_str(), IP.c_str()); // Dequeue FetchItem *Tmp = Queue; Queue = Queue->Next; @@ -110,10 +109,14 @@ void pkgAcqMethod::Fail(string Err,bool Transient) QueueBack = Queue; } else - snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: <UNKNOWN>\n" - "Message: %s %s\n",Err.c_str(), - FailExtra.c_str()); - + { + End += snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: <UNKNOWN>\n" + "Message: %s\n",Err.c_str()); + } + if(FailReason.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"FailReason: %s\n",FailReason.c_str()); + if (UsedMirror.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"UsedMirror: %s\n",UsedMirror.c_str()); // Set the transient flag if (Transient == true) strcat(S,"Transient-Failure: true\n\n"); @@ -184,6 +187,8 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt) End += snprintf(End,sizeof(S)-50 - (End - S),"SHA1-Hash: %s\n",Res.SHA1Sum.c_str()); if (Res.SHA256Sum.empty() == false) End += snprintf(End,sizeof(S)-50 - (End - S),"SHA256-Hash: %s\n",Res.SHA256Sum.c_str()); + if (UsedMirror.empty() == false) + End += snprintf(End,sizeof(S)-50 - (End - S),"UsedMirror: %s\n",UsedMirror.c_str()); if (Res.GPGVOutput.size() > 0) End += snprintf(End,sizeof(S)-50 - (End - S),"GPGVOutput:\n"); for (vector<string>::iterator I = Res.GPGVOutput.begin(); diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h index e02eab018..18c2cf009 100644 --- a/apt-pkg/acquire-method.h +++ b/apt-pkg/acquire-method.h @@ -59,7 +59,9 @@ class pkgAcqMethod vector<string> Messages; FetchItem *Queue; FetchItem *QueueBack; - string FailExtra; + string FailReason; + string UsedMirror; + string IP; // Handlers for messages virtual bool Configuration(string Message); @@ -68,14 +70,14 @@ class pkgAcqMethod // Outgoing messages void Fail(bool Transient = false); inline void Fail(const char *Why, bool Transient = false) {Fail(string(Why),Transient);}; - void Fail(string Why, bool Transient = false); - void URIStart(FetchResult &Res); - void URIDone(FetchResult &Res,FetchResult *Alt = 0); + virtual void Fail(string Why, bool Transient = false); + virtual void URIStart(FetchResult &Res); + virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0); + bool MediaFail(string Required,string Drive); virtual void Exit() {}; public: - enum CnfFlags {SingleInstance = (1<<0), Pipeline = (1<<1), SendConfig = (1<<2), LocalOnly = (1<<3), NeedsCleanup = (1<<4), @@ -85,7 +87,8 @@ class pkgAcqMethod void Status(const char *Format,...); int Run(bool Single = false); - inline void SetFailExtraMsg(string Msg) {FailExtra = Msg;}; + inline void SetFailReason(string Msg) {FailReason = Msg;}; + inline void SetIP(string aIP) {IP = aIP;}; pkgAcqMethod(const char *Ver,unsigned long Flags = 0); virtual ~pkgAcqMethod() {}; diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 4a688a5e1..96106c7a9 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -668,8 +668,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log) DropRepeats(TransList,""); if(log) { msg.str(""); - ioprintf(msg, _("Found %i package indexes, %i source indexes, " - "%i translation indexes and %i signatures\n"), + ioprintf(msg, _("Found %lu package indexes, %lu source indexes, " + "%lu translation indexes and %lu signatures\n"), List.size(), SourceList.size(), TransList.size(), SigList.size()); log->Update(msg.str(), STEP_SCAN); diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc index fcd9bb901..ace4e00b5 100644 --- a/apt-pkg/deb/debsrcrecords.cc +++ b/apt-pkg/deb/debsrcrecords.cc @@ -137,7 +137,7 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List) break; F.Type = string(F.Path,Tmp+1,Pos-Tmp); - if (F.Type == "gz" || F.Type == "bz2") + if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma") { Pos = Tmp-1; continue; diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index a63c4e412..dad8da9ed 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -12,11 +12,14 @@ #include <apt-pkg/error.h> #include <apt-pkg/configuration.h> #include <apt-pkg/depcache.h> +#include <apt-pkg/pkgrecords.h> #include <apt-pkg/strutl.h> +#include <apti18n.h> #include <unistd.h> #include <stdlib.h> #include <fcntl.h> +#include <sys/select.h> #include <sys/types.h> #include <sys/wait.h> #include <signal.h> @@ -25,16 +28,25 @@ #include <sstream> #include <map> +#include <termios.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <pty.h> + #include <config.h> #include <apti18n.h> /*}}}*/ using namespace std; + + // DPkgPM::pkgDPkgPM - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) : pkgPackageManager(Cache) +pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) + : pkgPackageManager(Cache), dpkgbuf_pos(0), PackagesDone(0), + PackagesTotal(0), term_out(NULL) { } /*}}}*/ @@ -323,7 +335,170 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) return true; } + + /*}}}*/ +// DPkgPM::DoStdin - Read stdin and pass to slave pty /*{{{*/ +// --------------------------------------------------------------------- +/* +*/ +void pkgDPkgPM::DoStdin(int master) +{ + char input_buf[256] = {0,}; + int len = read(0, input_buf, sizeof(input_buf)); + write(master, input_buf, len); +} + /*}}}*/ +// DPkgPM::DoTerminalPty - Read the terminal pty and write log /*{{{*/ +// --------------------------------------------------------------------- +/* + * read the terminal pty and write log + */ +void pkgDPkgPM::DoTerminalPty(int master) +{ + char term_buf[1024] = {0,}; + + int len=read(master, term_buf, sizeof(term_buf)); + if(len <= 0) + return; + write(1, term_buf, len); + if(term_out) + fwrite(term_buf, len, sizeof(char), term_out); +} /*}}}*/ +// DPkgPM::ProcessDpkgStatusBuf /*{{{*/ +// --------------------------------------------------------------------- +/* + */ +void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) +{ + // the status we output + ostringstream status; + + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "got from dpkg '" << line << "'" << std::endl; + + + /* dpkg sends strings like this: + 'status: <pkg>: <pkg qstate>' + errors look like this: + 'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data + and conffile-prompt like this + 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited + + */ + char* list[5]; + // dpkg sends multiline error messages sometimes (see + // #374195 for a example. we should support this by + // either patching dpkg to not send multiline over the + // statusfd or by rewriting the code here to deal with + // it. for now we just ignore it and not crash + TokSplitString(':', line, list, sizeof(list)/sizeof(list[0])); + char *pkg = list[1]; + char *action = _strstrip(list[2]); + if( pkg == NULL || action == NULL) + { + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "ignoring line: not enough ':'" << std::endl; + return; + } + + if(strncmp(action,"error",strlen("error")) == 0) + { + status << "pmerror:" << list[1] + << ":" << (PackagesDone/float(PackagesTotal)*100.0) + << ":" << list[3] + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + pkgFailures++; + WriteApportReport(list[1], list[3]); + return; + } + if(strncmp(action,"conffile",strlen("conffile")) == 0) + { + status << "pmconffile:" << list[1] + << ":" << (PackagesDone/float(PackagesTotal)*100.0) + << ":" << list[3] + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + return; + } + + vector<struct DpkgState> &states = PackageOps[pkg]; + const char *next_action = NULL; + if(PackageOpsDone[pkg] < states.size()) + next_action = states[PackageOpsDone[pkg]].state; + // check if the package moved to the next dpkg state + if(next_action && (strcmp(action, next_action) == 0)) + { + // only read the translation if there is actually a next + // action + const char *translation = _(states[PackageOpsDone[pkg]].str); + char s[200]; + snprintf(s, sizeof(s), translation, pkg); + + // we moved from one dpkg state to a new one, report that + PackageOpsDone[pkg]++; + PackagesDone++; + // build the status str + status << "pmstatus:" << pkg + << ":" << (PackagesDone/float(PackagesTotal)*100.0) + << ":" << s + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + } + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "(parsed from dpkg) pkg: " << pkg + << " action: " << action << endl; +} + +// DPkgPM::DoDpkgStatusFd /*{{{*/ +// --------------------------------------------------------------------- +/* + */ +void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd) +{ + char *p, *q; + int len; + + len=read(statusfd, &dpkgbuf[dpkgbuf_pos], sizeof(dpkgbuf)-dpkgbuf_pos); + dpkgbuf_pos += len; + if(len <= 0) + return; + + // process line by line if we have a buffer + p = q = dpkgbuf; + while((q=(char*)memchr(p, '\n', dpkgbuf+dpkgbuf_pos-p)) != NULL) + { + *q = 0; + ProcessDpkgStatusLine(OutStatusFd, p); + p=q+1; // continue with next line + } + + // now move the unprocessed bits (after the final \n that is now a 0x0) + // to the start and update dpkgbuf_pos + p = (char*)memrchr(dpkgbuf, 0, dpkgbuf_pos); + if(p == NULL) + return; + + // we are interessted in the first char *after* 0x0 + p++; + + // move the unprocessed tail to the start and update pos + memmove(dpkgbuf, p, p-dpkgbuf); + dpkgbuf_pos = dpkgbuf+dpkgbuf_pos-p; +} + /*}}}*/ + + // DPkgPM::Go - Run the sequence /*{{{*/ // --------------------------------------------------------------------- /* This globs the operations and calls dpkg @@ -344,9 +519,6 @@ bool pkgDPkgPM::Go(int OutStatusFd) if (RunScriptsWithPkgs("DPkg::Pre-Install-Pkgs") == false) return false; - // prepare the progress reporting - int Done = 0; - int Total = 0; // map the dpkg states to the operations that are performed // (this is sorted in the same way as Item::Ops) static const struct DpkgState DpkgStatesOpMap[][5] = { @@ -378,15 +550,6 @@ bool pkgDPkgPM::Go(int OutStatusFd) }, }; - // the dpkg states that the pkg will run through, the string is - // the package, the vector contains the dpkg states that the package - // will go through - map<string,vector<struct DpkgState> > PackageOps; - // the dpkg states that are already done; the string is the package - // the int is the state that is already done (e.g. a package that is - // going to be install is already in state "half-installed") - map<string,unsigned int> PackageOpsDone; - // init the PackageOps map, go over the list of packages that // that will be [installed|configured|removed|purged] and add // them to the PackageOps map (the dpkg states it goes through) @@ -398,10 +561,30 @@ bool pkgDPkgPM::Go(int OutStatusFd) for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; i++) { PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]); - Total++; + PackagesTotal++; } } + // create log + string logdir = _config->FindDir("Dir::Log"); + if(not FileExists(logdir)) + return _error->Error(_("Directory '%s' missing"), logdir.c_str()); + string logfile_name = flCombine(logdir, + _config->Find("Dir::Log::Terminal")); + if (!logfile_name.empty()) + { + term_out = fopen(logfile_name.c_str(),"a"); + chmod(logfile_name.c_str(), 0600); + // output current time + char outstr[200]; + time_t t = time(NULL); + struct tm *tmp = localtime(&t); + strftime(outstr, sizeof(outstr), "%F %T", tmp); + fprintf(term_out, "\nLog started: "); + fprintf(term_out, outstr); + fprintf(term_out, "\n"); + } + // this loop is runs once per operation for (vector<Item>::iterator I = List.begin(); I != List.end();) { @@ -516,7 +699,30 @@ bool pkgDPkgPM::Go(int OutStatusFd) it doesn't die but we do! So we must also ignore it */ sighandler_t old_SIGQUIT = signal(SIGQUIT,SIG_IGN); sighandler_t old_SIGINT = signal(SIGINT,SIG_IGN); - + + struct termios tt; + struct winsize win; + int master; + int slave; + + // FIXME: setup sensible signal handling (*ick*) + tcgetattr(0, &tt); + ioctl(0, TIOCGWINSZ, (char *)&win); + if (openpty(&master, &slave, NULL, &tt, &win) < 0) + { + const char *s = _("Can not write log, openpty() " + "failed (/dev/pts not mounted?)\n"); + fprintf(stderr, "%s",s); + fprintf(term_out, "%s",s); + master = slave = -1; + } else { + struct termios rtt; + rtt = tt; + cfmakeraw(&rtt); + rtt.c_lflag &= ~ECHO; + tcsetattr(0, TCSAFLUSH, &rtt); + } + // Fork dpkg pid_t Child; _config->Set("APT::Keep-Fds::",fd[1]); @@ -525,8 +731,18 @@ bool pkgDPkgPM::Go(int OutStatusFd) // This is the child if (Child == 0) { + if(slave >= 0 && master >= 0) + { + setsid(); + ioctl(slave, TIOCSCTTY, 0); + close(master); + dup2(slave, 0); + dup2(slave, 1); + dup2(slave, 2); + close(slave); + } close(fd[0]); // close the read end of the pipe - + if (chdir(_config->FindDir("DPkg::Run-Directory","/").c_str()) != 0) _exit(100); @@ -545,7 +761,8 @@ bool pkgDPkgPM::Go(int OutStatusFd) if (fcntl(STDIN_FILENO,F_SETFL,Flags & (~(long)O_NONBLOCK)) < 0) _exit(100); } - + + /* No Job Control Stop Env is a magic dpkg var that prevents it from using sigstop */ putenv("DPKG_NO_TSTP=yes"); @@ -562,16 +779,17 @@ bool pkgDPkgPM::Go(int OutStatusFd) // we read from dpkg here int _dpkgin = fd[0]; - fcntl(_dpkgin, F_SETFL, O_NONBLOCK); close(fd[1]); // close the write end of the pipe - // the read buffers for the communication with dpkg - char line[1024] = {0,}; - char buf[2] = {0,0}; - // the result of the waitpid call int res; + if(slave > 0) + close(slave); + // setups fds + fd_set rfds; + struct timeval tv; + int select_ret; while ((res=waitpid(Child,&Status, WNOHANG)) != Child) { if(res < 0) { // FIXME: move this to a function or something, looks ugly here @@ -585,127 +803,36 @@ bool pkgDPkgPM::Go(int OutStatusFd) signal(SIGINT,old_SIGINT); return _error->Errno("waitpid","Couldn't wait for subprocess"); } - - // read a single char, make sure that the read can't block - // (otherwise we may leave zombies) - int len = read(_dpkgin, buf, 1); - - // nothing to read, wait a bit for more - if(len <= 0) - { - usleep(1000); - continue; - } - - // sanity check (should never happen) - if(strlen(line) >= sizeof(line)-10) - { - _error->Error("got a overlong line from dpkg: '%s'",line); - line[0]=0; - } - // append to line, check if we got a complete line - strcat(line, buf); - if(buf[0] != '\n') - continue; - - if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) - std::clog << "got from dpkg '" << line << "'" << std::endl; - - // the status we output - ostringstream status; - - /* dpkg sends strings like this: - 'status: <pkg>: <pkg qstate>' - errors look like this: - 'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data - and conffile-prompt like this - 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited - - */ - char* list[5]; - // dpkg sends multiline error messages sometimes (see - // #374195 for a example. we should support this by - // either patching dpkg to not send multiline over the - // statusfd or by rewriting the code here to deal with - // it. for now we just ignore it and not crash - TokSplitString(':', line, list, sizeof(list)/sizeof(list[0])); - char *pkg = list[1]; - char *action = _strstrip(list[2]); - if( pkg == NULL || action == NULL) - { - if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) - std::clog << "ignoring line: not enough ':'" << std::endl; - // reset the line buffer - line[0]=0; - continue; - } - if(strncmp(action,"error",strlen("error")) == 0) - { - status << "pmerror:" << list[1] - << ":" << (Done/float(Total)*100.0) - << ":" << list[3] - << endl; - if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); - line[0]=0; - if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) - std::clog << "send: '" << status.str() << "'" << endl; + // wait for input or output here + FD_ZERO(&rfds); + FD_SET(0, &rfds); + FD_SET(_dpkgin, &rfds); + if(master >= 0) + FD_SET(master, &rfds); + tv.tv_sec = 1; + tv.tv_usec = 0; + select_ret = select(max(master, _dpkgin)+1, &rfds, NULL, NULL, &tv); + if (select_ret < 0) + std::cerr << "Error in select()" << std::endl; + else if (select_ret == 0) continue; - } - if(strncmp(action,"conffile",strlen("conffile")) == 0) - { - status << "pmconffile:" << list[1] - << ":" << (Done/float(Total)*100.0) - << ":" << list[3] - << endl; - if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); - line[0]=0; - if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) - std::clog << "send: '" << status.str() << "'" << endl; - continue; - } - - vector<struct DpkgState> &states = PackageOps[pkg]; - const char *next_action = NULL; - if(PackageOpsDone[pkg] < states.size()) - next_action = states[PackageOpsDone[pkg]].state; - // check if the package moved to the next dpkg state - if(next_action && (strcmp(action, next_action) == 0)) - { - // only read the translation if there is actually a next - // action - const char *translation = _(states[PackageOpsDone[pkg]].str); - char s[200]; - snprintf(s, sizeof(s), translation, pkg); - - // we moved from one dpkg state to a new one, report that - PackageOpsDone[pkg]++; - Done++; - // build the status str - status << "pmstatus:" << pkg - << ":" << (Done/float(Total)*100.0) - << ":" << s - << endl; - if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); - if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) - std::clog << "send: '" << status.str() << "'" << endl; - - } - if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) - std::clog << "(parsed from dpkg) pkg: " << pkg - << " action: " << action << endl; - // reset the line buffer - line[0]=0; + if(master >= 0 && FD_ISSET(master, &rfds)) + DoTerminalPty(master); + if(master >= 0 && FD_ISSET(0, &rfds)) + DoStdin(master); + if(FD_ISSET(_dpkgin, &rfds)) + DoDpkgStatusFd(_dpkgin, OutStatusFd); } close(_dpkgin); // Restore sig int/quit signal(SIGQUIT,old_SIGQUIT); signal(SIGINT,old_SIGINT); + + if(master >= 0 && slave >= 0) + tcsetattr(0, TCSAFLUSH, &tt); // Check for an error code. if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0) @@ -725,10 +852,16 @@ bool pkgDPkgPM::Go(int OutStatusFd) else _error->Error("Sub-process %s exited unexpectedly",Args[0]); - if(stopOnError) + if(stopOnError) + { + if(term_out) + fclose(term_out); return false; + } } } + if(term_out) + fclose(term_out); if (RunScripts("DPkg::Post-Invoke") == false) return false; @@ -743,3 +876,115 @@ void pkgDPkgPM::Reset() List.erase(List.begin(),List.end()); } /*}}}*/ +// pkgDpkgPM::WriteApportReport - write out error report pkg failure /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg) +{ + string pkgname, reportfile, srcpkgname, pkgver, arch; + string::size_type pos; + FILE *report; + + if (_config->FindB("Dpkg::ApportFailureReport",true) == false) + return; + + // only report the first error if we are in StopOnError=false mode + // to prevent bogus reports + if((_config->FindB("Dpkg::StopOnError",true) == false) && pkgFailures > 1) + return; + + // get the pkgname and reportfile + pkgname = flNotDir(pkgpath); + pos = pkgname.find('_'); + if(pos != string::npos) + pkgname = pkgname.substr(0, pos); + + // find the package versin and source package name + pkgCache::PkgIterator Pkg = Cache.FindPkg(pkgname); + if (Pkg.end() == true) + return; + pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg); + pkgver = Ver.VerStr(); + if (Ver.end() == true) + return; + pkgRecords Recs(Cache); + pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList()); + srcpkgname = Parse.SourcePkg(); + if(srcpkgname.empty()) + srcpkgname = pkgname; + + // if the file exists already, we check: + // - if it was reported already (touched by apport). + // If not, we do nothing, otherwise + // we overwrite it. This is the same behaviour as apport + // - if we have a report with the same pkgversion already + // then we skip it + reportfile = flCombine("/var/crash",pkgname+".0.crash"); + if(FileExists(reportfile)) + { + struct stat buf; + char strbuf[255]; + + // check atime/mtime + stat(reportfile.c_str(), &buf); + if(buf.st_mtime > buf.st_atime) + return; + + // check if the existing report is the same version + report = fopen(reportfile.c_str(),"r"); + while(fgets(strbuf, sizeof(strbuf), report) != NULL) + { + if(strstr(strbuf,"Package:") == strbuf) + { + char pkgname[255], version[255]; + if(sscanf(strbuf, "Package: %s %s", pkgname, version) == 2) + if(strcmp(pkgver.c_str(), version) == 0) + { + fclose(report); + return; + } + } + } + fclose(report); + } + + // now write the report + arch = _config->Find("APT::Architecture"); + report = fopen(reportfile.c_str(),"w"); + if(report == NULL) + return; + if(_config->FindB("DPkgPM::InitialReportOnly",false) == true) + chmod(reportfile.c_str(), 0); + else + chmod(reportfile.c_str(), 0600); + fprintf(report, "ProblemType: Package\n"); + fprintf(report, "Architecture: %s\n", arch.c_str()); + time_t now = time(NULL); + fprintf(report, "Date: %s" , ctime(&now)); + fprintf(report, "Package: %s %s\n", pkgname.c_str(), pkgver.c_str()); + fprintf(report, "SourcePackage: %s\n", srcpkgname.c_str()); + fprintf(report, "ErrorMessage:\n %s\n", errormsg); + + // ensure that the log is flushed + if(term_out) + fflush(term_out); + + // attach terminal log it if we have it + string logfile_name = _config->FindFile("Dir::Log::Terminal"); + if (!logfile_name.empty()) + { + FILE *log = NULL; + char buf[1024]; + + fprintf(report, "DpkgTerminalLog:\n"); + log = fopen(logfile_name.c_str(),"r"); + if(log != NULL) + { + while( fgets(buf, sizeof(buf), log) != NULL) + fprintf(report, " %s", buf); + fclose(log); + } + } + fclose(report); +} + /*}}}*/ diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index 7da729904..debde36a3 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -12,21 +12,44 @@ #include <apt-pkg/packagemanager.h> #include <vector> +#include <map> #include <stdio.h> using std::vector; +using std::map; + class pkgDPkgPM : public pkgPackageManager { + private: + + // the buffer we use for the dpkg status-fd reading + char dpkgbuf[1024]; + int dpkgbuf_pos; + FILE *term_out; + protected: + int pkgFailures; - // used for progress reporting + // progress reporting struct DpkgState { const char *state; // the dpkg state (e.g. "unpack") const char *str; // the human readable translation of the state }; - + + // the dpkg states that the pkg will run through, the string is + // the package, the vector contains the dpkg states that the package + // will go through + map<string,vector<struct DpkgState> > PackageOps; + // the dpkg states that are already done; the string is the package + // the int is the state that is already done (e.g. a package that is + // going to be install is already in state "half-installed") + map<string,unsigned int> PackageOpsDone; + // progress reporting + unsigned int PackagesDone; + unsigned int PackagesTotal; + struct Item { enum Ops {Install, Configure, Remove, Purge} Op; @@ -44,6 +67,15 @@ class pkgDPkgPM : public pkgPackageManager bool RunScriptsWithPkgs(const char *Cnf); bool SendV2Pkgs(FILE *F); + // apport integration + void WriteApportReport(const char *pkgpath, const char *errormsg); + + // input processing + void DoStdin(int master); + void DoTerminalPty(int master); + void DoDpkgStatusFd(int statusfd, int OutStatusFd); + void ProcessDpkgStatusLine(int OutStatusFd, char *line); + // The Actuall installation implementation virtual bool Install(PkgIterator Pkg,string File); virtual bool Configure(PkgIterator Pkg); diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index c21872449..d447d175e 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1397,3 +1397,4 @@ bool pkgDepCache::Sweep() return true; } + diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index 2f15486d9..73b3c83de 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -24,8 +24,6 @@ const char *pkgVersion = VERSION; const char *pkgLibVersion = Stringfy(APT_PKG_MAJOR) "." Stringfy(APT_PKG_MINOR) "." Stringfy(APT_PKG_RELEASE); -const char *pkgCPU = COMMON_CPU; -const char *pkgOS = COMMON_OS; // pkgInitConfig - Initialize the configuration class /*{{{*/ // --------------------------------------------------------------------- @@ -35,11 +33,7 @@ const char *pkgOS = COMMON_OS; bool pkgInitConfig(Configuration &Cnf) { // General APT things - if (strcmp(COMMON_OS,"linux") == 0 || - strcmp(COMMON_OS,"unknown") == 0) - Cnf.Set("APT::Architecture",COMMON_CPU); - else - Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU); + Cnf.Set("APT::Architecture", COMMON_ARCH); Cnf.Set("APT::Build-Essential::", "build-essential"); Cnf.Set("APT::Install-Recommends", false); Cnf.Set("APT::Install-Suggests", false); @@ -57,6 +51,7 @@ bool pkgInitConfig(Configuration &Cnf) Cnf.Set("Dir::State::lists","lists/"); Cnf.Set("Dir::State::cdroms","cdroms.list"); + Cnf.Set("Dir::State::mirrors","mirrors/"); // Cache Cnf.Set("Dir::Cache","var/cache/apt/"); @@ -74,6 +69,10 @@ bool pkgInitConfig(Configuration &Cnf) Cnf.Set("Dir::Etc::parts","apt.conf.d"); Cnf.Set("Dir::Etc::preferences","preferences"); Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods"); + + // State + Cnf.Set("Dir::Log","var/log/apt"); + Cnf.Set("Dir::Log::Terminal","term.log"); bool Res = true; @@ -105,7 +104,6 @@ bool pkgInitConfig(Configuration &Cnf) bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str()); } #endif - // Translation Cnf.Set("APT::Acquire::Translation", "environment"); diff --git a/apt-pkg/init.h b/apt-pkg/init.h index 801c7cfd0..23e951eff 100644 --- a/apt-pkg/init.h +++ b/apt-pkg/init.h @@ -23,8 +23,6 @@ extern const char *pkgVersion; extern const char *pkgLibVersion; -extern const char *pkgOS; -extern const char *pkgCPU; bool pkgInitConfig(Configuration &Cnf); bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys); diff --git a/apt-pkg/makefile b/apt-pkg/makefile index 78c24fe83..b327dbf64 100644 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@ -15,7 +15,7 @@ LIBRARY=apt-pkg LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER) MAJOR=4.5 MINOR=0 -SLIBS=$(PTHREADLIB) $(INTLLIBS) +SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil APT_DOMAIN:=libapt-pkg$(MAJOR) # Source code for the contributed non-core things diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 4e186f466..d00cd4e64 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -781,7 +781,7 @@ static bool BuildCache(pkgCacheGenerator &Gen, bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, MMap **OutMap,bool AllowMem) { - unsigned long MapSize = _config->FindI("APT::Cache-Limit",16*1024*1024); + unsigned long MapSize = _config->FindI("APT::Cache-Limit",24*1024*1024); vector<pkgIndexFile *> Files; for (vector<metaIndex *>::const_iterator i = List.begin(); @@ -928,7 +928,7 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, /* */ bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap) { - unsigned long MapSize = _config->FindI("APT::Cache-Limit",12*1024*1024); + unsigned long MapSize = _config->FindI("APT::Cache-Limit",20*1024*1024); vector<pkgIndexFile *> Files; unsigned long EndOfSource = Files.size(); if (_system->AddStatusFiles(Files) == false) diff --git a/apt-pkg/pkgrecords.cc b/apt-pkg/pkgrecords.cc index e506de73a..a5dab22ff 100644 --- a/apt-pkg/pkgrecords.cc +++ b/apt-pkg/pkgrecords.cc @@ -23,8 +23,8 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(Cache.HeaderP->PackageFileCount) { - for (pkgCache::PkgFileIterator I = Cache.FileBegin(); - I.end() == false; I++) + for (pkgCache::PkgFileIterator I = Cache.FileBegin(); + I.end() == false; I++) { const pkgIndexFile::Type *Type = pkgIndexFile::Type::GetType(I.IndexType()); if (Type == 0) diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 893cb8ee7..0ae6950f3 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -407,6 +407,7 @@ static const char *iTFRewritePackageOrder[] = { "Section", "Installed-Size", "Maintainer", + "Original-Maintainer", "Architecture", "Source", "Version", @@ -436,6 +437,7 @@ static const char *iTFRewriteSourceOrder[] = {"Package", "Priority", "Section", "Maintainer", + "Original-Maintainer", "Build-Depends", "Build-Depends-Indep", "Build-Conflicts", diff --git a/buildlib/config.h.in b/buildlib/config.h.in index 8a65a229a..eddb16246 100644 --- a/buildlib/config.h.in +++ b/buildlib/config.h.in @@ -32,11 +32,8 @@ /* If there is no socklen_t, define this for the netdb shim */ #undef NEED_SOCKLEN_T_DEFINE -/* Define the cpu name string */ -#undef COMMON_CPU - -/* Define the on name string */ -#undef COMMON_OS +/* Define the arch name string */ +#undef COMMON_ARCH /* The version number string */ #undef VERSION diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index cc4c1559e..c0655da40 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1711,8 +1711,8 @@ bool GenCaches(CommandLine &Cmd) /* */ bool ShowHelp(CommandLine &Cmd) { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return true; diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index 7434a7225..379a433ea 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -135,8 +135,8 @@ bool DoIdent(CommandLine &) /* */ int ShowHelp() { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index 34365dc2e..63fa0867c 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -67,8 +67,8 @@ bool DoDump(CommandLine &CmdL) /* */ int ShowHelp() { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc index c87b436ba..6d580cc28 100644 --- a/cmdline/apt-extracttemplates.cc +++ b/cmdline/apt-extracttemplates.cc @@ -222,8 +222,8 @@ bool DebFile::ParseInfo() /* */ int ShowHelp(void) { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index fb1bb248e..e7b7d5204 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2116,6 +2116,33 @@ bool DoSource(CommandLine &CmdL) if (Last == 0) return _error->Error(_("Unable to find a source package for %s"),Src.c_str()); + string srec = Last->AsStr(); + string::size_type pos = srec.find("\nVcs-"); + while (pos != string::npos) + { + pos += strlen("\nVcs-"); + string vcs = srec.substr(pos,srec.find(":",pos)-pos); + if(vcs == "Browser") + { + pos = srec.find("\nVcs-", pos); + continue; + } + pos += vcs.length()+2; + string::size_type epos = srec.find("\n", pos); + string uri = srec.substr(pos,epos-pos).c_str(); + ioprintf(c1out, _("NOTICE: '%s' packaging is maintained in " + "the '%s' version control system at:\n" + "%s\n"), + Src.c_str(), vcs.c_str(), uri.c_str()); + if(vcs == "Bzr") + ioprintf(c1out,_("Please use:\n" + "bzr get %s\n" + "to retrieve the latest (possible unreleased) " + "updates to the package.\n"), + uri.c_str()); + break; + } + // Back track vector<pkgSrcRecords::File> Lst; if (Last->Files(Lst) == false) @@ -2582,8 +2609,8 @@ bool DoMoo(CommandLine &CmdL) /* */ bool ShowHelp(CommandLine &CmdL) { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) { diff --git a/cmdline/apt-key b/cmdline/apt-key index 90ecae2cf..7c1aad0cf 100755 --- a/cmdline/apt-key +++ b/cmdline/apt-key @@ -9,14 +9,14 @@ GPG_CMD="gpg --no-options --no-default-keyring --secret-keyring /etc/apt/secring GPG="$GPG_CMD --keyring /etc/apt/trusted.gpg" -ARCHIVE_KEYRING=/usr/share/keyrings/debian-archive-keyring.gpg -REMOVED_KEYS=/usr/share/keyrings/debian-archive-removed-keys.gpg +ARCHIVE_KEYRING=/usr/share/keyrings/ubuntu-archive-keyring.gpg +REMOVED_KEYS=/usr/share/keyrings/ubuntu-archive-removed-keys.gpg update() { if [ ! -f $ARCHIVE_KEYRING ]; then echo >&2 "ERROR: Can't find the archive-keyring" - echo >&2 "Is the debian-archive-keyring package installed?" + echo >&2 "Is the ubuntu-keyring package installed?" exit 1 fi diff --git a/cmdline/apt-report-mirror-failure b/cmdline/apt-report-mirror-failure new file mode 100755 index 000000000..1567e78e3 --- /dev/null +++ b/cmdline/apt-report-mirror-failure @@ -0,0 +1,24 @@ +#!/usr/bin/python + +import sys +import urllib +import apt_pkg + +apt_pkg.init() +url = apt_pkg.Config.Find("Acquire::Mirror::ReportFailures", None) + #"http://people.ubuntu.com:9000/mirror-failure") + #"http://localhost:9000/mirror-failure") +if not url: + sys.exit(0) + +print "Reporting mirror failure to '%s'" % url + +data = {} +data['mirror'] = sys.argv[1] +data['failurl'] = sys.argv[2] +data['error'] = sys.argv[3] +f = urllib.urlopen(url, urllib.urlencode(data)) +f.read() +f.close() + + diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc index 8909c3826..7b2a74aed 100644 --- a/cmdline/apt-sortpkgs.cc +++ b/cmdline/apt-sortpkgs.cc @@ -141,8 +141,8 @@ bool DoIt(string InFile) /* */ int ShowHelp() { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/cmdline/makefile b/cmdline/makefile index 49035be44..c795921c1 100644 --- a/cmdline/makefile +++ b/cmdline/makefile @@ -14,7 +14,7 @@ include $(PROGRAM_H) # The apt-get program PROGRAM=apt-get -SLIBS = -lapt-pkg +SLIBS = -lapt-pkg -lutil LIB_MAKES = apt-pkg/makefile SOURCE = apt-get.cc acqprogress.cc include $(PROGRAM_H) @@ -58,3 +58,9 @@ SOURCE=apt-mark TO=$(BIN) TARGET=program include $(COPY_H) + +# The apt-key program +SOURCE=apt-report-mirror-failure +TO=$(BIN) +TARGET=program +include $(COPY_H) diff --git a/configure.in b/configure.in index ad913f53e..d1a684eb2 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.7.4") +AC_DEFINE_UNQUOTED(VERSION,"0.7.6ubuntu3") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) @@ -80,20 +80,13 @@ dnl Converts the ARCH to be something singular for this general CPU family dnl This is often the dpkg architecture string. dnl First check against the full canonical canoncial-system-type in $target dnl and if that fails, just look for the cpu -AC_MSG_CHECKING(system architecture) +AC_MSG_CHECKING(debian architecture) archset="`dpkg-architecture -qDEB_HOST_ARCH`" if test "x$archset" = "x"; then AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture]) fi AC_MSG_RESULT($archset) -AC_DEFINE_UNQUOTED(COMMON_CPU,"$archset") - -dnl Get a common name for the host OS - this is primarily only for HURD and is -dnl non fatal if it fails -AC_MSG_CHECKING(system OS) -osset="`dpkg-architecture -qDEB_HOST_ARCH_OS`" -AC_MSG_RESULT($osset) -AC_DEFINE_UNQUOTED(COMMON_OS,"$osset") +AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset") dnl We use C99 types if at all possible AC_CACHE_CHECK([for C99 integer types],c9x_ints,[ diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove index 98143ce9a..63b69d5f6 100644 --- a/debian/apt.conf.autoremove +++ b/debian/apt.conf.autoremove @@ -4,5 +4,14 @@ APT { "^linux-image.*"; "^linux-restricted-modules.*"; + "^linux-ubuntu-modules-.*"; + }; + + Never-MarkAuto-Sections + { + "metapackages"; + "restricted/metapackages"; + "universe/metapackages"; + "multiverse/metapackages"; }; }; diff --git a/debian/apt.conf.ubuntu b/debian/apt.conf.ubuntu new file mode 100644 index 000000000..0489faf98 --- /dev/null +++ b/debian/apt.conf.ubuntu @@ -0,0 +1,10 @@ +APT +{ + Install-Recommends-Sections + { + "metapackages"; + "restricted/metapackages"; + "universe/metapackages"; + "multiverse/metapackages"; + }; +}; diff --git a/debian/apt.dirs b/debian/apt.dirs index 1543e8bb1..2db8dca9a 100644 --- a/debian/apt.dirs +++ b/debian/apt.dirs @@ -4,7 +4,10 @@ usr/lib/dpkg/methods/apt etc/apt etc/apt/apt.conf.d etc/apt/sources.list.d +etc/logrotate.d var/cache/apt/archives/partial var/lib/apt/lists/partial +var/lib/apt/mirrors/partial var/lib/apt/periodic +var/log/apt usr/share/bug/apt diff --git a/debian/apt.logrotate b/debian/apt.logrotate new file mode 100644 index 000000000..3e924d383 --- /dev/null +++ b/debian/apt.logrotate @@ -0,0 +1,8 @@ +/var/log/apt/term.log { + rotate 6 + monthly + compress + missingok + notifempty +} + diff --git a/debian/apt.postinst b/debian/apt.postinst index 88fb932df..df0433057 100644 --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -17,11 +17,9 @@ case "$1" in configure) if ! test -f /etc/apt/trusted.gpg; then - cp /usr/share/apt/debian-archive.gpg /etc/apt/trusted.gpg + cp /usr/share/apt/ubuntu-archive.gpg /etc/apt/trusted.gpg fi - apt-key update - ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/changelog b/debian/changelog index 8961a0257..710472d67 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,17 +1,92 @@ -apt (0.7.5) UNRELEASED; urgency=low +apt (0.7.6ubuntu4) gutsy; urgency=low + + * cmdline/apt-get.cc: + - remove YnPrompt when a XS-Vcs- tag is found, improve the + notice (LP: #129575) + * methods/copy.cc: + - take hashes here too + * apt-pkg/acquire-worker.cc: + - only pass on computed hash if we recived one from the method + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 08 Aug 2007 19:30:29 +0200 + +apt (0.7.6ubuntu3) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix packagename extraction when writting apport reports + * apt-pkg/pkgcachegen.cc: + - increase default mmap size (LP: #125640) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 07 Aug 2007 09:52:00 +0200 + +apt (0.7.6ubuntu2) gutsy; urgency=low + + * doc/examples/sources.list: + - change example source to gutsy + * apt-pkg/deb/dpkgpm.cc: + - do not break if no /dev/pts is available + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 06 Aug 2007 15:17:57 +0200 + +apt (0.7.6ubuntu1) gutsy; urgency=low + + * apt-inst/contrib/extracttar.cc: + - fix fd leak for zero size files (thanks to Bill Broadley for + reporting this bug) + * apt-pkg/acquire-item.cc: + - remove zero size files on I-M-S hit + * methods/https.cc: + - only send LastModified if we actually have one + - send range request with if-range + - delete failed downloads + (thanks to Thom May for his help here) + * apt-pkg/deb/dpkgpm.{cc,h}: + - merged dpkg-log branch, this lets you specify a + Dir::Log::Terminal file to log dpkg output to + (ABI break) + - when writting apport reports, attach the dpkg + terminal log too + * merged apt--sha256 branch to fully support the new + sha256 checksums in the Packages and Release files + (ABI break) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 02 Aug 2007 11:55:54 +0200 + +apt (0.7.6) unstable; urgency=low + + * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong + directory downloading on non-linux architectures (closes: #435597) + + -- Otavio Salvador <otavio@debian.org> Wed, 01 Aug 2007 19:49:51 -0300 + +apt (0.7.5) unstable; urgency=low [ Otavio Salvador ] - * Applied patch from Guillem Jover <guillem.jover@nokia.com> to use + * Applied patch from Guillem Jover <guillem@debian.org> to use dpkg-architecture to get the host architecture (closes: #407187) + * Applied patch from Guillem Jover <guillem@debian.org> to add + support to add lzma support (closes: #408201) [ Michael Vogt ] * apt-pkg/depcache.cc: - support a list of sections for: APT::Install-Recommends-Sections APT::Never-MarkAuto-Sections + * methods/makefile: + - install lzma symlink method (for full lzma support) + * debian/control: + - suggest "lzma" -- Otavio Salvador <otavio@ossystems.com.br> Wed, 25 Jul 2007 20:16:46 -0300 +apt (0.7.4ubuntu1) gutsy; urgency=low + + * debian/apt.conf.ubuntu, apt.conf.autoremove: + - Change metapackages to {restricted,universe,multiverse}/metapackages + in Install-Recommends-Sections and Never-MarkAuto-Sections + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 26 Jul 2007 10:42:29 +0200 + apt (0.7.4) unstable; urgency=low [ Michael Vogt ] @@ -71,6 +146,90 @@ apt (0.7.3) unstable; urgency=low which disappeared from the BZR repositories -- Michael Vogt <mvo@debian.org> Sun, 01 Jul 2007 12:31:29 +0200 + +apt (0.7.2ubuntu7) gutsy; urgency=low + + * fix build-dependencies + * fixes in the auto-mark code (thanks to Daniel + Burrows) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 9 Jul 2007 19:02:54 +0200 + +apt (0.7.2ubuntu6) gutsy; urgency=low + + [ Michael Vogt] + * cmdline/apt-get.cc: + - make the XS-Vcs-$foo warning more copy'n'paste + friendly (thanks to Matt Zimmerman) + - ignore the Vcs-Browser tag (Fixes LP: #121770) + * debian/apt.conf.autoremove: + - added "linux-ubuntu-modules" to APT::NeverAutoRemove + + [ Sarah Hobbs ] + * Change metapackages to *metapackages in Install-Recommends-Section + and Never-MarkAuto-Section of debian/apt.conf.autoremove, so that + the Recommends of metapackages in universe and multiverse will get + installed. + * Also make this change in doc/examples/configure-index. + * Added a Build Dependancies of automake, docbook-xsl, xsltproc, xmlto, + docbook to fix FTBFS. + * Added in previous changelog entries, as those who uploaded did not + actually commit to Bzr. + + -- Sarah Hobbs <hobbsee@ubuntu.com> Mon, 09 Jul 2007 01:15:57 +1000 + +apt (0.7.2ubuntu5) gutsy; urgency=low + + * Rerun autoconf to fix the FTBFS. + + -- Michael Bienia <geser@ubuntu.com> Fri, 06 Jul 2007 19:17:33 +0200 + +apt (0.7.2ubuntu4) gutsy; urgency=low + + * Rebuild for the libcurl4 -> libcurl3 transition mess. + + -- Steve Kowalik <stevenk@ubuntu.com> Fri, 6 Jul 2007 12:44:05 +1000 + +apt (0.7.2ubuntu3) gutsy; urgency=low + + * cmdline/apt-get.cc: + - fix InstallTask code when a pkgRecord ends + with a single '\n' (thanks to Soren Hansen for reporting) + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 27 Jun 2007 13:33:38 +0200 + +apt (0.7.2ubuntu2) gutsy; urgency=low + + * fixed compile errors with g++ 4.3 (thanks to + Daniel Burrows, closes: #429378) + * fix FTFBFS by changing build-depends to + libcurl4-gnutls-dev (closes: #428363) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Jun 2007 13:47:03 +0200 + +apt (0.7.2ubuntu1) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - apport integration added, this means that a apport + report is written on dpkg failures + * cmdline/apt-get.cc: + - merged http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/ + this will warn when Vcs- headers are found on apt-get source + (Fixes LP:#115959) + * merged from debian/unstable, remaining changes: + - maintainer field changed + - merged the apt--mirror branch + http://people.ubuntu.com/~mvo/bzr/apt/apt--mirror/ + - apport reporting on package install/upgrade/remove failure + - support for "Originial-Maintainer" field + - merged apt--xs-vcs-bzr branch + (http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/) + - use ubuntu archive keyring by default + - debian/apt.conf.autoremove + + install recommands for section "metapackages" + + do not mark direct dependencies of "metapackages" as autoremoved + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 14 Jun 2007 10:38:36 +0200 apt (0.7.2-0.1) unstable; urgency=low @@ -138,12 +297,16 @@ apt (0.7.1) experimental; urgency=low * methods/cdrom.cc: - only umount if it was mounted by the method before * po/gl.po: - - fix error translation that causes trouble to lsb_release + - fix error in translation that causes trouble to lsb_release + (LP#79165) * apt-pkg/acquire-item.cc: - if decompression of a index fails, delete the index * apt-pkg/acquire.{cc,h}: - deal better with duplicated sources.list entries (avoid double queuing of URLs) - this fixes hangs in bzip/gzip + (LP#102511) + * Fix broken use of awk in apt-key that caused removal of the wrong keys + from the keyring. Closes: #412572 * merged from Christian Perrier: * mr.po: New Marathi translation Closes: #416806 * zh_CN.po: Updated by Eric Pareja Closes: #416822 @@ -167,6 +330,93 @@ apt (0.7.1) experimental; urgency=low -- Michael Vogt <mvo@debian.org> Wed, 2 May 2007 13:43:44 +0200 +apt (0.6.46.4ubuntu10) feisty; urgency=low + + * apt-pkg/depcache.cc: + - added "APT::Never-MarkAuto-Section" and consider dependencies + of packages in this section manual (LP#59893) + - ensure proper permissions in the extended_state file (LP#67037) + * debian/apt.conf.ubuntu: + - added APT::Never-MarkAuto-Section "metapackages" (LP#59893) + * cmdline/apt-get.cc: + - "apt-get install foo" on a already installed package foo will + clean the automatic installed flag (LP#72007) + - do not show packages already marked for removal as auto-installed + (LP#64493) + - applied patch to (optionally) hide the auto-remove information + (thanks to Frode M. Døving) (LP#69148) + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 14 Mar 2007 13:32:32 +0100 + +apt (0.6.46.4ubuntu9) feisty; urgency=low + + * debian/control: + - set XS-Vcs-Bzr header + - Set Ubuntu maintainer address + * apt-pkg/cdrom.cc: + - only unmount if APT::CDROM::NoMount is false + - only umount if it was mounted by the method before + * cmdline/apt-get.cc: + - fix version output in autoremove list (LP#68941) + * apt-pkg/packagemanager.cc: + - do not spin 100% cpu in FixMissing() (LP#84476) + * apt-pkg/indexfile.cc: + - fix problem overwriting APT::Acquire::Translation + * doc/examples/configure-index: + - document APT::Acquire::Translation + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 13 Mar 2007 15:24:39 +0100 + +apt (0.6.46.4ubuntu8) feisty; urgency=low + + * fix segfault in the pkgRecords destructor + * Bump ABI version + * debian/control: + - make the libcurl3-gnutls-dev versionized (LP#86614) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 26 Feb 2007 14:26:33 +0100 + +apt (0.6.46.4ubuntu7) feisty; urgency=low + + * Merged the apt--mirror branch. This means that a new 'mirror' + method is available that will allow dynamic mirror updates. + The sources.list entry looks something like this: + "deb mirror://mirrors.lp.net/get_mirror feisty main restricted" + + It also supports error reporting to a configurable url for mirror + problems/failures. + * Bump ABI version + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 6 Feb 2007 11:38:06 +0100 + +apt (0.6.46.4ubuntu6) feisty; urgency=low + + * methods/http.cc: + - send apt version in User-Agent + * apt-pkg/deb/debrecords.cc: + - fix SHA1Hash() return value + * apt-pkg/algorithms.cc: + - fix resolver bug on removal triggered by weak-dependencies + with or-groups + - fix segfault (lp: #76530) + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 20 Dec 2006 11:04:36 +0100 + +apt (0.6.46.4ubuntu5) feisty; urgency=low + + * added apt-transport-https package to provide a optional + https transport (apt-https spec) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Dec 2006 16:23:43 +0100 + +apt (0.6.46.4ubuntu4) feisty; urgency=low + + * apt-pkg/algorithms.cc: + - only increase the score of installed applications if they + are not obsolete + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 18 Dec 2006 19:39:05 +0100 + apt (0.7.0) experimental; urgency=low * Package that contains tall the new features @@ -184,6 +434,29 @@ apt (0.7.0) experimental; urgency=low -- Michael Vogt <mvo@debian.org> Fri, 12 Jan 2007 20:48:07 +0100 +apt (0.6.46.4ubuntu3) feisty; urgency=low + + * apt-pkg/algorithm.cc: + - use clog for all debugging + * apt-pkg/depcache.cc: + - never mark Required package for autoremoval (lp: #75882) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 18 Dec 2006 11:56:05 +0100 + +apt (0.6.46.4ubuntu2) feisty; urgency=low + + * apt-pkg/algorithms.cc: add missing call to MarkKeep + so that dist-upgrade isn't broken by unsatisfiable Breaks. + (thanks to Ian Jackson) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Dec 2006 23:07:24 +0100 + +apt (0.6.46.4ubuntu1) feisty; urgency=low + + * merged with debian + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Dec 2006 12:13:14 +0100 + apt (0.6.46.4-0.1) unstable; urgency=emergency * NMU @@ -230,6 +503,26 @@ apt (0.6.46.3-0.1) unstable; urgency=high -- Andreas Barth <aba@not.so.argh.org> Tue, 5 Dec 2006 10:34:56 +0000 +apt (0.6.46.3ubuntu2) feisty; urgency=low + + * apt-pkg/algorithms.cc: add missing call to MarkKeep + so that dist-upgrade isn't broken by unsatisfiable Breaks. + + -- Ian Jackson <iwj@ubuntu.com> Thu, 7 Dec 2006 15:46:52 +0000 + +apt (0.6.46.3ubuntu1) feisty; urgency=low + + * doc/apt-get.8.xml: + - documented autoremove, thanks to Vladimír Lapá%GÄ%@ek + (lp: #62919) + * fix broken i18n in the dpkg progress reporting, thanks to + Frans Pop and Steinar Gunderson. (closes: #389261) + * po/en_GB.po: + - typo (lp: #61270) + * add apt-secure.8 to "See also" section + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 23 Nov 2006 07:24:12 +0100 + apt (0.6.46.3) unstable; urgency=low * apt-pkg/deb/dpkgpm.cc: @@ -304,10 +597,46 @@ apt (0.6.46) unstable; urgency=low * debian/control: - switched to libdb4.4 for building (closes: #381019) * cmdline/apt-get.cc: - - show only the recommends/suggests for the candidate-version, not for all - versions of the package (closes: #257054) - - properly handle recommends/suggests or-groups when printing the list of - suggested/recommends packages (closes: #311619) + - fix in the TryInstallTask() code to make sure that all package + there are marked manual install (lp: #61684) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 28 Sep 2006 00:34:20 +0200 + +apt (0.6.45ubuntu14) edgy; urgency=low + + * cmdline/apt-get.cc: + - fix in the TryInstallTask() code to make sure that all package + there are marked manual install (lp: #61684) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 28 Sep 2006 00:34:20 +0200 + +apt (0.6.45ubuntu13) edgy; urgency=low + + * no-changes upload to make apt rebuild against latest g++ and + fix synaptic FTBFS (see bug: #62461 for details) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 26 Sep 2006 22:33:10 +0200 + +apt (0.6.45ubuntu12) edgy; urgency=low + + * apt-pkg/depcache.cc: + - fix in the sweep() code, set garbage flag for packages scheduled + for removal too + - do not change the autoFlag in MarkKeep(), this can lead to suprising + side effects + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 21 Sep 2006 00:58:24 +0200 + +apt (0.6.45ubuntu11) edgy; urgency=low + + * removed "installtask" and change it so that tasknames can be given + with "apt-get install taskname^" + * improve the writeStateFile() code + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 20 Sep 2006 14:14:24 +0200 + +apt (0.6.45ubuntu10) edgy; urgency=low + * methods/http.cc: - check more careful for incorrect proxy settings (closes: #378868) * methods/gzip.cc: @@ -332,8 +661,113 @@ apt (0.6.46) unstable; urgency=low caseinsensitive (closes: #384182) - reverted MMap use in the tagfile because it does not work across pipes (closes: #383487) + * added "installtask" command + * added new ubuntu specific rewrite rule for "Original-Maintainer" - -- Michael Vogt <mvo@debian.org> Thu, 21 Sep 2006 10:25:03 +0200 + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Sep 2006 15:07:51 +0200 + +apt (0.6.45ubuntu9) edgy; urgency=low + + * cmdline/apt-get.cc: + - if --no-remove is given, do not run the AutoRemove code + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 13 Sep 2006 11:54:20 +0200 + +apt (0.6.45ubuntu8) edgy; urgency=low + + * apt-pkg/algorithm.cc: + - fix pkgProblemResolver.InstallProtect() to preserve the auto-install + information (lp: #59457) + * cmdline/apt-get.cc: + - fix typo in autoremove information (lp: #59420) + * install apt-mark to modify the automatically install information for + packages + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 8 Sep 2006 20:07:22 +0200 + +apt (0.6.45ubuntu7) edgy; urgency=low + + * apt-pkg/depcache.cc: + - fix a bug in the install-recommends-section code + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Sep 2006 18:22:38 +0200 + +apt (0.6.45ubuntu6) edgy; urgency=low + + [Michael Vogt] + * cmdline/apt-get.cc: + - always show auto-removable packages and give a hint how to remove + them + * debian/apt.conf.ubuntu: + - exlucde linux-image and linux-restricted-modules from ever being + auto-removed + - added "metapackages" as the section we want to install recommends + by default + * apt-pkg/depcache.cc: + - added support to turn install-recommends selectively on/off by + section + [Ian Jackson] + * Tests pass without code changes! Except that we need this: + * Bump cache file major version to force rebuild so that Breaks + dependencies are included. + * Don't depend on or suggest any particular dpkg or dpkg-dev versions; + --auto-deconfigure is very very old and dpkg-dev's Breaks support + is more or less orthogonal. + * Initial draft of `Breaks' implementation. Appears to compile, + but as yet *completely untested*. + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Sep 2006 11:50:52 +0200 + +apt (0.6.45ubuntu5) edgy; urgency=low + + * apt-pkg/pkgcachegen.cc: + - increase the APT::Cache-Limit to deal with the increased demand due + to the translated descriptions + * apt-pkg/deb/dpkgpm.cc: + - pass "--auto-deconfigure" to dpkg on install to support the + new "breaks" in dpkg + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 15 Aug 2006 12:06:26 +0200 + +apt (0.6.45ubuntu4) edgy; urgency=low + + * cmdline/apt-get.cc: + - fix in the new --fix-polciy code + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 14 Aug 2006 21:08:11 +0200 + +apt (0.6.45ubuntu3) edgy; urgency=low + + * ABI break + * merged latest apt--install-recommends (closes: #559000) + * added "--fix-policy" option to can be used as "--fix-broken" and + will install missing weak depends (recommends, and/or suggests + depending on the settings) + * merged the apt--ddtp branch + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 11 Aug 2006 12:53:23 +0200 + +apt (0.6.45ubuntu2) edgy; urgency=low + + * debian/control: + - switched to libdb4.4 for building (closes: #381019) + * cmdline/apt-get.cc: + - show only the recommends/suggests for the candidate-version, not for all + versions of the package (closes: #257054) + - properly handle recommends/suggests or-groups when printing the list of + suggested/recommends packages (closes: #311619) + * merged "apt--install-recommends" branch: + - added "{no-}install-recommends" commandline option + - added APT::Install-{Recommends,Suggests} option + - currently Install-Recommends defaults to "False" + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 9 Aug 2006 23:38:46 +0200 + +apt (0.6.45ubuntu1) edgy; urgency=low + + * merged with debian/unstable + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 1 Aug 2006 15:43:22 +0200 apt (0.6.45) unstable; urgency=low @@ -371,42 +805,57 @@ 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 <michael.vogt@ubuntu.com> Tue, 25 Jul 2006 11:55:22 +0200 + -- Michael Vogt <mvo@debian.org> Thu, 27 Jul 2006 00:52:05 +0200 -apt (0.6.44.2exp1) experimental; urgency=low +apt (0.6.44.2ubuntu4) edgy; 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 + * Make apt-get dselect-upgrade happy again - -- Michael Vogt <mvo@debian.org> Mon, 3 Jul 2006 21:50:31 +0200 + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 21 Jul 2006 11:03:02 +0200 -apt (0.6.44.2) unstable; urgency=low +apt (0.6.44.2ubuntu3) edgy; 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 + * Close extended_states file after writing it. + + -- Colin Watson <cjwatson@ubuntu.com> Tue, 18 Jul 2006 00:12:13 +0100 + +apt (0.6.44.2ubuntu2) edgy; urgency=low + + * create a empty extended_states file if none exists already - -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200 + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 4 Jul 2006 09:23:03 +0200 + +apt (0.6.44.2ubuntu1) edgy; urgency=low + + * merged with debian/unstable + * merged the "auto-mark" branch to support aptitude like + marking of automatically installed dependencies and added + "apt-get remove --auto-remove" to remove unused auto-installed + packages again + * changed library version from 3.11 to 3.50 to make it clearly + different from the debian version (we are ABI incompatible because + of the auto-mark patch) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 3 Jul 2006 18:30:46 +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 @@ -468,6 +917,26 @@ apt (0.6.44) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Mon, 8 May 2006 22:28:53 +0200 +apt (0.6.43.3ubuntu3) dapper; urgency=low + + * methods/http.cc: + - fix the user-agent string + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 26 May 2006 18:09:32 +0200 + +apt (0.6.43.3ubuntu2) dapper; urgency=low + + * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 18 Apr 2006 13:24:40 +0200 + +apt (0.6.43.3ubuntu1) dapper; urgency=low + + * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large in + the status-fd (ubuntu #28954) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 28 Mar 2006 20:34:46 +0200 + apt (0.6.43.3) unstable; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-186: @@ -477,16 +946,46 @@ apt (0.6.43.3) unstable; urgency=low * pl.po: Completed to 512t. Closes: #349514 * sk.po: Completed to 512t. Closes: #349474 * gl.po: Completed to 512 strings Closes: #349407 + * vi.po: Completed to 512 strings * sv.po: Completed to 512 strings Closes: #349210 * ru.po: Completed to 512 strings Closes: #349154 * da.po: Completed to 512 strings Closes: #349084 * fr.po: Completed to 512 strings + * LINGUAS: Add Welsh + * *.po: Updated from sources (512 strings) * vi.po: Completed to 511 strings Closes: #348968 - * zh_CN.po: Completed to 512t. Closes: #353936 - * it.po: Completed to 512t. Closes: #352803 - * pt_BR.po: Completed to 512t. Closes: #352419 + * apt-pkg/deb/deblistparser.cc: + - don't explode on a DepCompareOp in a Provides line, but warn about + it and ignore it otherwise (thanks to James Troup for reporting it) + * cmdline/apt-get.cc: + - don't lock the lists directory in DoInstall, breaks --print-uri + (thanks to James Troup for reporting it) + * debian/apt.dirs: create /etc/apt/sources.list.d + * make apt-cache madison work without deb-src entries (#352583) + * cmdline/apt-get.cc: only run the list-cleaner if a update was + successfull + * apt-get update errors are only warnings nowdays + * be more careful with the signature file on network failures + + -- Michael Vogt <mvo@debian.org> Wed, 22 Feb 2006 10:13:04 +0100 + +apt (0.6.43.2ubuntu1) dapper; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-182: + * ca.po: Completed to 512t. Closes: #351592 + * eu.po: Completed to 512t. Closes: #350483 + * ja.po: Completed to 512t. Closes: #349806 + * pl.po: Completed to 512t. Closes: #349514 + * sk.po: Completed to 512t. Closes: #349474 + * gl.po: Completed to 512 strings Closes: #349407 + * vi.po: Completed to 512 strings + * sv.po: Completed to 512 strings Closes: #349210 + * ru.po: Completed to 512 strings Closes: #349154 + * da.po: Completed to 512 strings Closes: #349084 + * fr.po: Completed to 512 strings * LINGUAS: Add Welsh * *.po: Updated from sources (512 strings) + * vi.po: Completed to 511 strings Closes: #348968 * apt-pkg/deb/deblistparser.cc: - don't explode on a DepCompareOp in a Provides line, but warn about it and ignore it otherwise (thanks to James Troup for reporting it) @@ -497,8 +996,10 @@ apt (0.6.43.3) unstable; urgency=low * make apt-cache madison work without deb-src entries (#352583) * cmdline/apt-get.cc: only run the list-cleaner if a update was successfull + * apt-get update errors are only warnings nowdays + * be more careful with the signature file on network failures - -- Michael Vogt <mvo@debian.org> Wed, 22 Feb 2006 10:13:04 +0100 + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 20 Feb 2006 22:27:48 +0100 apt (0.6.43.2) unstable; urgency=low @@ -523,8 +1024,26 @@ apt (0.6.43.2) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Thu, 19 Jan 2006 00:06:33 +0100 -apt (0.6.43.1) unstable; urgency=low +apt (0.6.43.1ubuntu1) dapper; urgency=low + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-159: + - en_GB.po, de.po: fix spaces errors in "Ign " translations + Closes: #347258 + - makefile: make update-po a pre-requisite of clean target so + that POT and PO files are always up-to-date + - sv.po: Completed to 511t. Closes: #346450 + - sk.po: Completed to 511t. Closes: #346369 + - fr.po: Completed to 511t + - *.po: Updated from sources (511 strings) + * add patch to fix http download corruption problem (thanks to + Petr Vandrovec, closes: #280844, #290694) + * added APT::Periodic::Unattended-Upgrade (requires the package + "unattended-upgrade") + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 10 Jan 2006 17:09:31 +0100 + +apt (0.6.43.1) unstable; urgency=low + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-148: * fr.po: Completed to 510 strings * it.po: Completed to 510t @@ -546,6 +1065,19 @@ apt (0.6.43.1) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Fri, 6 Jan 2006 01:17:08 +0100 +apt (0.6.43ubuntu2) dapper; urgency=low + + * merged some missing bits that wheren't merged by baz in the previous + upload (*grumble*) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 8 Dec 2005 18:35:58 +0100 + +apt (0.6.43ubuntu1) dapper; urgency=low + + * merged with debian + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 25 Nov 2005 11:36:29 +0100 + apt (0.6.43) unstable; urgency=medium * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132: @@ -566,6 +1098,22 @@ apt (0.6.43) unstable; urgency=medium -- Michael Vogt <mvo@debian.org> Tue, 29 Nov 2005 00:17:07 +0100 +apt (0.6.42.3ubuntu2) dapper; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-131: + * zh_CN.po: Completed to 507 strings(Closes: #338267) + * gl.po: Completed to 510 strings (Closes: #338356) + * added support for "/etc/apt/sources.list.d" directory + (closes: #66325) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 14 Nov 2005 15:30:12 +0100 + +apt (0.6.42.3ubuntu1) dapper; urgency=low + + * synced with debian + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 10 Nov 2005 05:05:56 +0100 + apt (0.6.42.3) unstable; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-129: @@ -613,13 +1161,13 @@ apt (0.6.42) unstable; urgency=low - unmount the cdrom when apt failed to locate any package files * allow cdrom failures and fallback to other sources in that case (closes: #44135) - * better error text when dpkg-source fails + * better error text when dpkg-source fails * Merge bubulle@debian.org--2005/apt--main--0 up to patch-115: - patch-99: Added Galician translation - patch-100: Completed Danish translation (Closes: #325686) - patch-104: French translation completed - patch-109: Italian translation completed - - patch-112: Swedish translation update + - patch-112: Swedish translation update - patch-115: Basque translation completed (Closes: #333299) * applied french man-page update (thanks to Philippe Batailler) (closes: #316638, #327456) @@ -633,9 +1181,9 @@ apt (0.6.42) unstable; urgency=low * apt-pkg/contrib/md5.cc: - fix a alignment problem on sparc64 that gives random bus errors (thanks to Fabbione for providing a test-case) - * init the default ScreenWidth to 79 columns by default + * init the default ScreenWidth to 79 columns by default (Closes: #324921) - * cmdline/apt-cdrom.cc: + * cmdline/apt-cdrom.cc: - fix some missing gettext() calls (closes: #334539) * doc/apt-cache.8.xml: fix typo (closes: #334714) @@ -646,8 +1194,8 @@ apt (0.6.41) unstable; urgency=low * improved the support for "error" and "conffile" reporting from dpkg, added the format to README.progress-reporting * added README.progress-reporting to the apt-doc package - * improved the network timeout handling, if a index file from a - sources.list times out or EAI_AGAIN is returned from getaddrinfo, + * improved the network timeout handling, if a index file from a + sources.list times out or EAI_AGAIN is returned from getaddrinfo, don't try to get the other files from that entry * Support architecture-specific extra overrides (closes: #225947). Thanks to Anthony Towns for idea and @@ -655,10 +1203,10 @@ apt (0.6.41) unstable; urgency=low * Javier Fernandez-Sanguino Pen~a: - Added a first version of an apt-secure.8 manpage, and modified apt-key and apt.end accordingly. Also added the 'update' - argument to apt-key which was previously not documented + argument to apt-key which was previously not documented (Closes: #322120) * Andreas Pakulat: - - added example apt-ftparchive.conf file to doc/examples + - added example apt-ftparchive.conf file to doc/examples (closes: #322483) * Fix a incorrect example in the man-page (closes: #282918) * Fix a bug for very long lines in the apt-cdrom code (closes: #280356) @@ -667,10 +1215,84 @@ apt (0.6.41) unstable; urgency=low * Change pkgPolicy::Pin from private to protected to let subclasses access it too (closes: #321799) * add default constructor for PrvIterator (closes: #322267) - * Reread status configuration on debSystem::Initialize() + * Reread status configuration on debSystem::Initialize() (needed for apt-proxy, thanks to Otavio for this patch) - + -- Michael Vogt <mvo@debian.org> Mon, 5 Sep 2005 22:59:03 +0200 + +apt (0.6.40.1ubuntu8) breezy; urgency=low + + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-62: + - fix for a bad memory/file leak in the mmap code (ubuntu #15603) + * po/de.po, po/fr.po: + - updated the translations + * po/makefile: + - create a single pot file in each domain dir to make rosetta happy + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 28 Sep 2005 10:16:06 +0200 + +apt (0.6.40.1ubuntu7) breezy; urgency=low + + * updated the pot/po files , no code changes + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 27 Sep 2005 18:38:16 +0200 + +apt (0.6.40.1ubuntu6) breezy; urgency=low + + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-56: + - make it possible for apt to handle a failed MediaChange event and + fall back to other sources (ubuntu #13713) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 13 Sep 2005 22:09:50 +0200 + +apt (0.6.40.1ubuntu5) breezy; urgency=low + + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-{50,51}. + This adds media-change reporting to the apt status-fd (ubuntu #15213) + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-55: + apt-pkg/cdrom.cc: + - unmount the cdrom when apt failed to locate any package files + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 12 Sep 2005 15:44:26 +0200 + +apt (0.6.40.1ubuntu4) breezy; urgency=low + + * debian/apt.cron.daily: + - fix a embarrassing typo + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 7 Sep 2005 10:10:37 +0200 + +apt (0.6.40.1ubuntu3) breezy; urgency=low + + * debian/apt.cron.daily: + - use the ctime as well when figuring what packages need to + be removed. This fixes the problem that packages copied with + "cp -a" (e.g. from the installer) have old mtimes (ubuntu #14504) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 6 Sep 2005 18:30:46 +0200 + +apt (0.6.40.1ubuntu2) breezy; urgency=low + + * improved the support for "error" and "conffile" reporting from + dpkg, added the format to README.progress-reporting + * added README.progress-reporting to the apt-doc package + * Do md5sum checking for file and cdrom method (closes: #319142) + * Change pkgPolicy::Pin from private to protected to let subclasses + access it too (closes: #321799) + * methods/connect.cc: + - send failure reason for EAI_AGAIN (TmpResolveFailure) to acuire-item + * apt-pkg/acquire-item.cc: + - fail early if a FailReason is TmpResolveFailure (avoids hangs during + the install when no network is available) + * merged michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0 + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 23 Aug 2005 19:44:55 +0200 + +apt (0.6.40.1ubuntu1) breezy; urgency=low + + * Synchronize with Debian + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 5 Aug 2005 14:20:56 +0200 apt (0.6.40.1) unstable; urgency=low @@ -681,6 +1303,12 @@ apt (0.6.40.1) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Fri, 5 Aug 2005 13:24:58 +0200 +apt (0.6.40ubuntu1) breezy; urgency=low + + * Synchronize with Debian + + -- Matt Zimmerman <mdz@ubuntu.com> Thu, 4 Aug 2005 15:53:22 -0700 + apt (0.6.40) unstable; urgency=low * Patch from Jordi Mallach to mark some additional strings for translation @@ -696,6 +1324,39 @@ apt (0.6.40) unstable; urgency=low -- Matt Zimmerman <mdz@debian.org> Thu, 28 Jul 2005 11:57:32 -0700 +apt (0.6.39ubuntu4) breezy; urgency=low + + * Fix keyring paths in apt-key, apt.postinst (I swear I remember doing this + before...) + + -- Matt Zimmerman <mdz@ubuntu.com> Wed, 29 Jun 2005 08:39:17 -0700 + +apt (0.6.39ubuntu3) breezy; urgency=low + + * Fix keyring locations for Ubuntu in apt-key too. + + -- Colin Watson <cjwatson@ubuntu.com> Wed, 29 Jun 2005 14:45:36 +0100 + +apt (0.6.39ubuntu2) breezy; urgency=low + + * Install ubuntu-archive.gpg rather than debian-archive.gpg as + /etc/apt/trusted.gpg. + + -- Colin Watson <cjwatson@ubuntu.com> Wed, 29 Jun 2005 11:53:34 +0100 + +apt (0.6.39ubuntu1) breezy; urgency=low + + * Michael Vogt + - Change debian/bugscript to use #!/bin/bash (Closes: #313402) + - Fix a incorrect example in the man-page (closes: #282918) + - Support architecture-specific extra overrides + (closes: #225947). Thanks to Anthony Towns for idea and + the patch, thanks to Colin Watson for testing it. + - better report network timeouts from the methods to the acuire code, + only timeout once per sources.list line + + -- Matt Zimmerman <mdz@ubuntu.com> Tue, 28 Jun 2005 11:52:24 -0700 + apt (0.6.39) unstable; urgency=low * Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6 @@ -706,7 +1367,14 @@ apt (0.6.39) unstable; urgency=low * Update priority of apt-utils to important, to match the override file * Install only one keyring on each branch (Closes: #316119) - -- Matt Zimmerman <mdz@debian.org> Tue, 28 Jun 2005 11:51:09 -0700 + -- Matt Zimmerman <mdz@debian.org> Tue, 28 Jun 2005 11:35:21 -0700 + +apt (0.6.38ubuntu1) breezy; urgency=low + + * First release from Ubuntu branch + * Merge with --main--0, switch back to Ubuntu keyring + + -- Matt Zimmerman <mdz@ubuntu.com> Sat, 25 Jun 2005 16:52:41 -0700 apt (0.6.38) unstable; urgency=low diff --git a/debian/control b/debian/control index 76e5b1a19..6c1453857 100644 --- a/debian/control +++ b/debian/control @@ -1,20 +1,22 @@ Source: apt Section: admin Priority: important -Maintainer: APT Development Team <deity@lists.debian.org> +Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: APT Development Team <deity@lists.debian.org> Uploaders: Jason Gunthorpe <jgg@debian.org>, Adam Heath <doogie@debian.org>, Matt Zimmerman <mdz@debian.org>, Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org> Standards-Version: 3.7.2.2 Build-Depends: debhelper (>= 5.0), libdb4.4-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5) Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1) -XS-Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ +XS-Vcs-Bzr: http://code.launchpad.net/~ubuntu-core-dev/apt/ubuntu Package: apt Architecture: any -Depends: ${shlibs:Depends}, debian-archive-keyring +Depends: ${shlibs:Depends} Priority: important Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7) Provides: ${libapt-pkg:provides} -Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2 +Recommends: ubuntu-keyring +Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, lzma, gnupg Section: admin Description: Advanced front-end for dpkg This is Debian's next generation front-end for the dpkg package manager. diff --git a/debian/rules b/debian/rules index 473821f16..a46169a7b 100755 --- a/debian/rules +++ b/debian/rules @@ -209,9 +209,11 @@ apt: build debian/shlibs.local cp -r $(BLD)/locale debian/$@/usr/share/ cp debian/bugscript debian/$@/usr/share/bug/apt/script + cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt - cp share/debian-archive.gpg debian/$@/usr/share/$@ + cp share/ubuntu-archive.gpg debian/$@/usr/share/$@ cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove + cp debian/apt.conf.ubuntu debian/$@/etc/apt/apt.conf.d/01ubuntu # head -n 500 ChangeLog > debian/ChangeLog # make rosetta happy and remove pot files in po/ (but leave stuff @@ -219,6 +221,10 @@ apt: build debian/shlibs.local rm -f build/po/*.pot rm -f po/*.pot + # move the mirror failure script in place + mv debian/$@/usr/bin/apt-report-mirror-failure \ + debian/$@/usr/lib/apt/apt-report-mirror-failure \ + dh_installexamples -p$@ $(BLD)/docs/examples/* dh_installman -p$@ dh_installcron -p$@ diff --git a/doc/examples/configure-index b/doc/examples/configure-index index ab3657a58..a4a955b6a 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -100,6 +100,9 @@ APT Install-Recommends "false"; Install-Suggests "false"; + // install recommends automatically for packages in this section + Install-Recommends-Section { "metapackages"; "universe/metapackages"; }; + // consider dependencies of packages in this section manual Never-MarkAuto-Sections {"metapackages"; "universe/metapackages"; }; @@ -186,6 +189,20 @@ Acquire { Options {"--ignore-time-conflict";} // not very usefull on a normal system }; + + mirror + { + RefreshInterval "360"; // refresh interval in minutes + MaxAge "90"; // max age for a mirror file in days before + // it gets deleted + // mirror failure reporting script + ProblemReporting "/usr/lib/apt/apt-report-mirror-failure"; + // mirror failure reporting url + ReportFailures "http://example.com/mirror-failure"; + }; + + // translations can be set here to "none", "environment" or "$locale" + Translation "none"; }; // Directory layout @@ -199,6 +216,7 @@ Dir "/" userstatus "status.user"; status "/var/lib/dpkg/status"; cdroms "cdroms.list"; + mirrors "mirrors/"; }; // Location of the cache dir @@ -227,6 +245,11 @@ Dir "/" apt-get "/usr/bin/apt-get"; apt-cache "/usr/bin/apt-cache"; }; + + // Location of the logfile + Log "var/log/apt" { + Terminal "term.log"; + }; }; // Things that effect the APT dselect method @@ -289,9 +312,9 @@ Debug Acquire::Http "false"; // Show http command traffic Acquire::Https "false"; // Show https debug Acquire::gpgv "false"; // Show the gpgv traffic + Acquire::Mirror "false"; // Show debugging of the mirror method aptcdrom "false"; // Show found package files IdentCdrom "false"; - } /* Whatever you do, do not use this configuration file!! Take out ONLY diff --git a/doc/examples/sources.list b/doc/examples/sources.list index 9af1c3c4c..b93306724 100644 --- a/doc/examples/sources.list +++ b/doc/examples/sources.list @@ -1,9 +1,11 @@ # See sources.list(5) for more information, especialy # 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://security.debian.org stable/updates main contrib non-free +deb http://us.archive.ubuntu.com/ubuntu gutsy main restricted +deb-src http://us.archive.ubuntu.com/ubuntu gutsy main restricted -# Uncomment if you want the apt-get source function to work -#deb-src http://http.us.debian.org/debian stable main contrib non-free -#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free +deb http://security.ubuntu.com/ubuntu gutsy-security main restricted +deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted + +deb http://us.archive.ubuntu.com/ubuntu gutsy-updates main restricted +deb-src http://us.archive.ubuntu.com/ubuntu gutsy-updates main restricted diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index 290326ec3..3b1e80631 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -544,8 +544,8 @@ void LoadBinDir(vector<PackageMap> &PkgList,Configuration &Setup) /* */ bool ShowHelp(CommandLine &CmdL) { - ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION, - COMMON_OS,COMMON_CPU,__DATE__,__TIME__); + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return true; diff --git a/methods/connect.cc b/methods/connect.cc index 8c2ac6d56..145001fb3 100644 --- a/methods/connect.cc +++ b/methods/connect.cc @@ -18,6 +18,7 @@ #include <stdio.h> #include <errno.h> #include <unistd.h> +#include <sstream> // Internet stuff #include <netinet/in.h> @@ -67,12 +68,10 @@ static bool DoConnect(struct addrinfo *Addr,string Host, wrong this will get tacked onto the end of the error message */ if (LastHostAddr->ai_next != 0) { - char Name2[NI_MAXHOST + NI_MAXSERV + 10]; - snprintf(Name2,sizeof(Name2),_("[IP: %s %s]"),Name,Service); - Owner->SetFailExtraMsg(string(Name2)); - } - else - Owner->SetFailExtraMsg(""); + std::stringstream ss; + ioprintf(ss, _("[IP: %s %s]"),Name,Service); + Owner->SetIP(ss.str()); + } // Get a socket if ((Fd = socket(Addr->ai_family,Addr->ai_socktype, @@ -89,7 +88,7 @@ static bool DoConnect(struct addrinfo *Addr,string Host, /* This implements a timeout for connect by opening the connection nonblocking */ if (WaitFd(Fd,true,TimeOut) == false) { - Owner->SetFailExtraMsg("\nFailReason: Timeout"); + Owner->SetFailReason("Timeout"); return _error->Error(_("Could not connect to %s:%s (%s), " "connection timed out"),Host.c_str(),Service,Name); } @@ -104,7 +103,7 @@ static bool DoConnect(struct addrinfo *Addr,string Host, { errno = Err; if(errno == ECONNREFUSED) - Owner->SetFailExtraMsg("\nFailReason: ConnectionRefused"); + Owner->SetFailReason("ConnectionRefused"); return _error->Errno("connect",_("Could not connect to %s:%s (%s)."),Host.c_str(), Service,Name); } @@ -164,12 +163,13 @@ bool Connect(string Host,int Port,const char *Service,int DefPort,int &Fd, DefPort = 0; continue; } + Owner->SetFailReason("ResolveFailure"); return _error->Error(_("Could not resolve '%s'"),Host.c_str()); } if (Res == EAI_AGAIN) { - Owner->SetFailExtraMsg("\nFailReason: TmpResolveFailure"); + Owner->SetFailReason("TmpResolveFailure"); return _error->Error(_("Temporary failure resolving '%s'"), Host.c_str()); } diff --git a/methods/http.cc b/methods/http.cc index d4e231fbe..6aa4261ff 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -38,7 +38,6 @@ #include <stdio.h> #include <errno.h> #include <string.h> -#include <iostream> #include <apti18n.h> // Internet stuff @@ -715,7 +714,7 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) Req += string("Authorization: Basic ") + Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n"; - Req += "User-Agent: Debian APT-HTTP/1.3 ("VERSION")\r\n\r\n"; + Req += "User-Agent: Ubuntu APT-HTTP/1.3 ("VERSION")\r\n\r\n"; if (Debug == true) cerr << Req << endl; @@ -916,6 +915,9 @@ int HttpMethod::DealWithHeaders(FetchResult &Res,ServerState *Srv) failure */ if (Srv->Result < 200 || Srv->Result >= 300) { + char err[255]; + snprintf(err,sizeof(err)-1,"HttpError%i",Srv->Result); + SetFailReason(err); _error->Error("%u %s",Srv->Result,Srv->Code); if (Srv->HaveContent == true) return 4; @@ -991,7 +993,7 @@ void HttpMethod::SigTerm(int) depth. */ bool HttpMethod::Fetch(FetchItem *) { - if (Server == 0) + if (Server == 0) return true; // Queue the requests @@ -1236,13 +1238,5 @@ int HttpMethod::Loop() } /*}}}*/ -int main() -{ - setlocale(LC_ALL, ""); - - HttpMethod Mth; - - return Mth.Loop(); -} diff --git a/methods/http.h b/methods/http.h index 6753a9901..dec5cd80f 100644 --- a/methods/http.h +++ b/methods/http.h @@ -13,7 +13,7 @@ #define MAXLEN 360 -#include <iostream> + using std::cout; using std::endl; @@ -134,7 +134,6 @@ class HttpMethod : public pkgAcqMethod bool ServerDie(ServerState *Srv); int DealWithHeaders(FetchResult &Res,ServerState *Srv); - virtual bool Fetch(FetchItem *); virtual bool Configuration(string Message); // In the event of a fatal signal this file will be closed and timestamped. @@ -142,6 +141,9 @@ class HttpMethod : public pkgAcqMethod static int FailFd; static time_t FailTime; static void SigTerm(int); + + protected: + virtual bool Fetch(FetchItem *); public: friend class ServerState; diff --git a/methods/http_main.cc b/methods/http_main.cc new file mode 100644 index 000000000..2c46ab19d --- /dev/null +++ b/methods/http_main.cc @@ -0,0 +1,15 @@ +#include <apt-pkg/fileutl.h> +#include <apt-pkg/acquire-method.h> + +#include "connect.h" +#include "rfc2553emu.h" +#include "http.h" + + +int main() +{ + setlocale(LC_ALL, ""); + + HttpMethod Mth; + return Mth.Loop(); +} diff --git a/methods/https.cc b/methods/https.cc index d48ac97fb..e6717e63a 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -107,6 +107,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm) struct stat SBuf; struct curl_slist *headers=NULL; char curl_errorstr[CURL_ERROR_SIZE]; + long curl_responsecode; // TODO: // - http::Timeout @@ -159,8 +160,11 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // set time values - curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE); - curl_easy_setopt(curl, CURLOPT_TIMEVALUE, Itm->LastModified); + if(Itm->LastModified > 0) + { + curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE); + curl_easy_setopt(curl, CURLOPT_TIMEVALUE, Itm->LastModified); + } // speed limit int dlLimit = _config->FindI("Acquire::http::Dl-Limit",0)*1024; @@ -178,8 +182,14 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, curl_errorstr); // In this case we send an if-range query with a range header - if (stat(Itm->DestFile.c_str(),&SBuf) >= 0 && SBuf.st_size > 0) - curl_easy_setopt(curl, CURLOPT_RESUME_FROM, (long)SBuf.st_size); + if (stat(Itm->DestFile.c_str(),&SBuf) >= 0 && SBuf.st_size > 0) + { + char Buf[1000]; + sprintf(Buf,"Range: bytes=%li-\r\nIf-Range: %s\r\n", + (long)SBuf.st_size - 1, + TimeRFC1123(SBuf.st_mtime).c_str()); + headers = curl_slist_append(headers, Buf); + } // go for it - if the file exists, append on it File = new FileFd(Itm->DestFile, FileFd::WriteAny); @@ -190,14 +200,17 @@ bool HttpsMethod::Fetch(FetchItem *Itm) // get it! CURLcode success = curl_easy_perform(curl); - + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &curl_responsecode); // cleanup - if(success != 0) { + if(success != 0) + { + unlink(File->Name().c_str()); _error->Error(curl_errorstr); Fail(); return true; } + File->Close(); if (Res.Size == 0) Res.Size = File->Size(); @@ -210,7 +223,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm) Res.Filename = File->Name(); Res.LastModified = Buf.st_mtime; Res.IMSHit = false; - if (Itm->LastModified != 0 && Buf.st_mtime >= Itm->LastModified) + if (curl_responsecode == 304) { Res.IMSHit = true; Res.LastModified = Itm->LastModified; @@ -227,7 +240,6 @@ bool HttpsMethod::Fetch(FetchItem *Itm) URIDone(Res); // cleanup - File->Close(); Res.Size = 0; delete File; curl_slist_free_all(headers); diff --git a/methods/makefile b/methods/makefile index 16900116a..b7c595754 100644 --- a/methods/makefile +++ b/methods/makefile @@ -49,7 +49,14 @@ include $(PROGRAM_H) PROGRAM=http SLIBS = -lapt-pkg $(SOCKETLIBS) LIB_MAKES = apt-pkg/makefile -SOURCE = http.cc rfc2553emu.cc connect.cc +SOURCE = http.cc http_main.cc rfc2553emu.cc connect.cc +include $(PROGRAM_H) + +# The https method +PROGRAM=https +SLIBS = -lapt-pkg -lcurl +LIB_MAKES = apt-pkg/makefile +SOURCE = https.cc include $(PROGRAM_H) # The https method @@ -80,9 +87,16 @@ LIB_MAKES = apt-pkg/makefile SOURCE = rsh.cc include $(PROGRAM_H) -# SSH and vzip2 method symlink -binary: $(BIN)/ssh $(BIN)/bzip2 -veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2 +# The mirror method +PROGRAM=mirror +SLIBS = -lapt-pkg $(SOCKETLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = mirror.cc http.cc rfc2553emu.cc connect.cc +include $(PROGRAM_H) + +# SSH and bzip2,lzma method symlinks +binary: $(BIN)/ssh $(BIN)/bzip2 $(BIN)/lzma +veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2 clean-$(BIN)/lzma $(BIN)/ssh: echo "Installing ssh method link" ln -fs rsh $(BIN)/ssh @@ -92,5 +106,10 @@ clean-$(BIN)/ssh: $(BIN)/bzip2: echo "Installing bzip2 method link" ln -fs gzip $(BIN)/bzip2 +$(BIN)/lzma: + echo "Installing lzma method link" + ln -fs gzip $(BIN)/lzma clean-$(BIN)/bzip2: -rm $(BIN)/bzip2 +clean-$(BIN)/lzma: + -rm $(BIN)/lzma diff --git a/methods/mirror.cc b/methods/mirror.cc new file mode 100644 index 000000000..9fe64fd70 --- /dev/null +++ b/methods/mirror.cc @@ -0,0 +1,282 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: mirror.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $ +/* ###################################################################### + + Mirror Aquire Method - This is the Mirror aquire method for APT. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include <apt-pkg/fileutl.h> +#include <apt-pkg/acquire-method.h> +#include <apt-pkg/acquire-item.h> +#include <apt-pkg/acquire.h> +#include <apt-pkg/error.h> +#include <apt-pkg/hashes.h> +#include <apt-pkg/sourcelist.h> + +#include <fstream> +#include <iostream> +#include <stdarg.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <dirent.h> + +using namespace std; + +#include "mirror.h" +#include "http.h" +#include "apti18n.h" + /*}}}*/ + +/* Done: + * - works with http (only!) + * - always picks the first mirror from the list + * - call out to problem reporting script + * - supports "deb mirror://host/path/to/mirror-list/// dist component" + * - uses pkgAcqMethod::FailReason() to have a string representation + * of the failure that is also send to LP + * + * TODO: + * - deal with runing as non-root because we can't write to the lists + dir then -> use the cached mirror file + * - better method to download than having a pkgAcquire interface here + * and better error handling there! + * - support more than http + * - testing :) + */ + +MirrorMethod::MirrorMethod() + : HttpMethod(), HasMirrorFile(false) +{ +}; + +// HttpMethod::Configuration - Handle a configuration message /*{{{*/ +// --------------------------------------------------------------------- +/* We stash the desired pipeline depth */ +bool MirrorMethod::Configuration(string Message) +{ + if (pkgAcqMethod::Configuration(Message) == false) + return false; + Debug = _config->FindB("Debug::Acquire::mirror",false); + + return true; +} + /*}}}*/ + +// clean the mirrors dir based on ttl information +bool MirrorMethod::Clean(string Dir) +{ + vector<metaIndex *>::const_iterator I; + + if(Debug) + clog << "MirrorMethod::Clean(): " << Dir << endl; + + // read sources.list + pkgSourceList list; + list.ReadMainList(); + + DIR *D = opendir(Dir.c_str()); + if (D == 0) + return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); + + string StartDir = SafeGetCWD(); + if (chdir(Dir.c_str()) != 0) + { + closedir(D); + return _error->Errno("chdir",_("Unable to change to %s"),Dir.c_str()); + } + + for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D)) + { + // Skip some files.. + if (strcmp(Dir->d_name,"lock") == 0 || + strcmp(Dir->d_name,"partial") == 0 || + strcmp(Dir->d_name,".") == 0 || + strcmp(Dir->d_name,"..") == 0) + continue; + + // see if we have that uri + for(I=list.begin(); I != list.end(); I++) + { + string uri = (*I)->GetURI(); + if(uri.substr(0,strlen("mirror://")) != string("mirror://")) + continue; + string BaseUri = uri.substr(0,uri.size()-1); + if (URItoFileName(BaseUri) == Dir->d_name) + break; + } + // nothing found, nuke it + if (I == list.end()) + unlink(Dir->d_name); + }; + + chdir(StartDir.c_str()); + closedir(D); + return true; +} + + +bool MirrorMethod::GetMirrorFile(string mirror_uri_str) +{ + /* + - a mirror_uri_str looks like this: + mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors/dists/feisty/Release.gpg + + - the matching source.list entry + deb mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors feisty main + + - we actually want to go after: + http://people.ubuntu.com/~mvo/apt/mirror/mirrors + + And we need to save the BaseUri for later: + - mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors + + FIXME: what if we have two similar prefixes? + mirror://people.ubuntu.com/~mvo/mirror + mirror://people.ubuntu.com/~mvo/mirror2 + then mirror_uri_str looks like: + mirror://people.ubuntu.com/~mvo/apt/mirror/dists/feisty/Release.gpg + mirror://people.ubuntu.com/~mvo/apt/mirror2/dists/feisty/Release.gpg + we search sources.list and find: + mirror://people.ubuntu.com/~mvo/apt/mirror + in both cases! So we need to apply some domain knowledge here :( and + check for /dists/ or /Release.gpg as suffixes + */ + if(Debug) + std::cerr << "GetMirrorFile: " << mirror_uri_str << std::endl; + + // read sources.list and find match + vector<metaIndex *>::const_iterator I; + pkgSourceList list; + list.ReadMainList(); + for(I=list.begin(); I != list.end(); I++) + { + string uristr = (*I)->GetURI(); + if(Debug) + std::cerr << "Checking: " << uristr << std::endl; + if(uristr.substr(0,strlen("mirror://")) != string("mirror://")) + continue; + // find matching uri in sources.list + if(mirror_uri_str.substr(0,uristr.size()) == uristr) + { + if(Debug) + std::cerr << "found BaseURI: " << uristr << std::endl; + BaseUri = uristr.substr(0,uristr.size()-1); + } + } + string fetch = BaseUri; + fetch.replace(0,strlen("mirror://"),"http://"); + + // get new file + MirrorFile = _config->FindDir("Dir::State::mirrors") + URItoFileName(BaseUri); + + if(Debug) + { + cerr << "base-uri: " << BaseUri << endl; + cerr << "mirror-file: " << MirrorFile << endl; + } + + // check the file, if it is not older than RefreshInterval just use it + // otherwise try to get a new one + if(FileExists(MirrorFile)) + { + struct stat buf; + time_t t,now,refresh; + if(stat(MirrorFile.c_str(), &buf) != 0) + return false; + t = std::max(buf.st_mtime, buf.st_ctime); + now = time(NULL); + refresh = 60*_config->FindI("Acquire::Mirror::RefreshInterval",360); + if(t + refresh > now) + { + if(Debug) + clog << "Mirror file is in RefreshInterval" << endl; + HasMirrorFile = true; + return true; + } + if(Debug) + clog << "Mirror file " << MirrorFile << " older than " << refresh << "min, re-download it" << endl; + } + + // not that great to use pkgAcquire here, but we do not have + // any other way right now + pkgAcquire Fetcher; + new pkgAcqFile(&Fetcher, fetch, "", 0, "", "", "", MirrorFile); + bool res = (Fetcher.Run() == pkgAcquire::Continue); + if(res) + HasMirrorFile = true; + Fetcher.Shutdown(); + return res; +} + +bool MirrorMethod::SelectMirror() +{ + // FIXME: make the mirror selection more clever, do not + // just use the first one! + ifstream in(MirrorFile.c_str()); + getline(in, Mirror); + if(Debug) + cerr << "Using mirror: " << Mirror << endl; + + UsedMirror = Mirror; + return true; +} + +// MirrorMethod::Fetch - Fetch an item /*{{{*/ +// --------------------------------------------------------------------- +/* This adds an item to the pipeline. We keep the pipeline at a fixed + depth. */ +bool MirrorMethod::Fetch(FetchItem *Itm) +{ + // select mirror only once per session + if(!HasMirrorFile) + { + Clean(_config->FindDir("Dir::State::mirrors")); + GetMirrorFile(Itm->Uri); + SelectMirror(); + } + + for (FetchItem *I = Queue; I != 0; I = I->Next) + { + if(I->Uri.find("mirror://") != string::npos) + I->Uri.replace(0,BaseUri.size(),Mirror); + } + + // now run the real fetcher + return HttpMethod::Fetch(Itm); +}; + +void MirrorMethod::Fail(string Err,bool Transient) +{ + if(Queue->Uri.find("http://") != string::npos) + Queue->Uri.replace(0,Mirror.size(), BaseUri); + pkgAcqMethod::Fail(Err, Transient); +} + +void MirrorMethod::URIStart(FetchResult &Res) +{ + if(Queue->Uri.find("http://") != string::npos) + Queue->Uri.replace(0,Mirror.size(), BaseUri); + pkgAcqMethod::URIStart(Res); +} + +void MirrorMethod::URIDone(FetchResult &Res,FetchResult *Alt) +{ + if(Queue->Uri.find("http://") != string::npos) + Queue->Uri.replace(0,Mirror.size(), BaseUri); + pkgAcqMethod::URIDone(Res, Alt); +} + + +int main() +{ + setlocale(LC_ALL, ""); + + MirrorMethod Mth; + + return Mth.Loop(); +} + + diff --git a/methods/mirror.h b/methods/mirror.h new file mode 100644 index 000000000..798f5a9b5 --- /dev/null +++ b/methods/mirror.h @@ -0,0 +1,51 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ +// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ +/* ###################################################################### + + MIRROR Aquire Method - This is the MIRROR aquire method for APT. + + ##################################################################### */ + /*}}}*/ + +#ifndef APT_MIRROR_H +#define APT_MIRROR_H + + +#include <iostream> + +using std::cout; +using std::cerr; +using std::endl; + +#include "http.h" + +class MirrorMethod : public HttpMethod +{ + FetchResult Res; + // we simply transform between BaseUri and Mirror + string BaseUri; // the original mirror://... url + string Mirror; // the selected mirror uri (http://...) + string MirrorFile; // + bool HasMirrorFile; + + bool Debug; + + protected: + bool GetMirrorFile(string uri); + bool SelectMirror(); + bool Clean(string dir); + + // we need to overwrite those to transform the url back + virtual void Fail(string Why, bool Transient = false); + virtual void URIStart(FetchResult &Res); + virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0); + virtual bool Configuration(string Message); + + public: + MirrorMethod(); + virtual bool Fetch(FetchItem *Itm); +}; + + +#endif diff --git a/mirror-failure.py b/mirror-failure.py new file mode 100644 index 000000000..e7d2bbf54 --- /dev/null +++ b/mirror-failure.py @@ -0,0 +1,23 @@ +# File: cgihttpserver-example-1.py + +import CGIHTTPServer +import BaseHTTPServer + +class Handler(CGIHTTPServer.CGIHTTPRequestHandler): + #cgi_directories = ["/cgi"] + def do_POST(self): + print "do_POST" + #print self.command + #print self.path + #print self.headers + print self.client_address + data = self.rfile.read(int(self.headers["content-length"])) + print data + self.wfile.write("200 Ok\n"); + +PORT = 8000 + +httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler) +print "serving at port", PORT +httpd.serve_forever() + diff --git a/po/LINGUAS b/po/LINGUAS index 24fc64ef2..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 he hu it ja ko ku nb nl nn pl pt pt_BR ro ru sk sl sv tl uk 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/ar.po b/po/ar.po deleted file mode 100644 index 8a0b74706..000000000 --- a/po/ar.po +++ /dev/null @@ -1,2566 +0,0 @@ -# translation of apt_po.po to Arabic -# This file is put in the public domain. -# -# Ossama M. Khayat <okhayat@yahoo.com>, 2005, 2006. -msgid "" -msgstr "" -"Project-Id-Version: apt_po\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-10-11 20:34+0200\n" -"PO-Revision-Date: 2006-10-20 21:28+0300\n" -"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n" -"Language-Team: Arabic <support@arabeyes.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Arabic\n" -"X-Poedit-Country: Lebanon\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Generator: KBabel 1.11.4\n" - -#: cmdline/apt-cache.cc:135 -#, c-format -msgid "Package %s version %s has an unmet dep:\n" -msgstr "الحزمة %s النسخة %s لها معتمد غير مستوفى:\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 "تعذر العثور على الحزمة %s" - -#: cmdline/apt-cache.cc:232 -msgid "Total package names : " -msgstr "أسماء الحزم الكلية :" - -#: cmdline/apt-cache.cc:272 -msgid " Normal packages: " -msgstr " الحزم العادية:" - -#: cmdline/apt-cache.cc:273 -msgid " Pure virtual packages: " -msgstr "الحزمة الوهمية تماماً:" - -#: cmdline/apt-cache.cc:274 -msgid " Single virtual packages: " -msgstr " الحزمة الوهمية المفردة:" - -#: cmdline/apt-cache.cc:275 -msgid " Mixed virtual packages: " -msgstr " الحزم الوهمية المختلطة:" - -#: cmdline/apt-cache.cc:276 -msgid " Missing: " -msgstr " مفقودة:" - -#: cmdline/apt-cache.cc:278 -msgid "Total distinct versions: " -msgstr "مجموع النسخ الفريدة:" - -#: cmdline/apt-cache.cc:280 -msgid "Total dependencies: " -msgstr "مجموع المعتمدات:" - -#: 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 "" - -#: cmdline/apt-cache.cc:324 -msgid "Total space accounted for: " -msgstr "مجموع المساحة المحسوب حسابها:" - -#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 -#, c-format -msgid "Package file %s is out of sync." -msgstr "" - -#: cmdline/apt-cache.cc:1231 -msgid "You must give exactly one pattern" -msgstr "يجب أن تعطي صيغة واحدة بالضبط" - -#: cmdline/apt-cache.cc:1385 -msgid "No packages found" -msgstr "لم يُعثر على أية حزم" - -#: cmdline/apt-cache.cc:1462 -msgid "Package files:" -msgstr "ملفات الحزم:" - -#: 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 "(غير موجود)" - -#. Installed version -#: cmdline/apt-cache.cc:1515 -msgid " Installed: " -msgstr " مُثبّت:" - -#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 -msgid "(none)" -msgstr "(لاشيء)" - -#. Candidate Version -#: cmdline/apt-cache.cc:1522 -msgid " Candidate: " -msgstr " مرشّح: " - -#: cmdline/apt-cache.cc:1532 -msgid " Package pin: " -msgstr "" - -#. Show the priority tables -#: cmdline/apt-cache.cc:1541 -msgid " Version table:" -msgstr " جدول النسخ:" - -#: 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: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" - -#: 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 "الرجاء كتابة اسم لهذا القرص، مثال 'Debian 2.1r1 Disk 1'" - -#: cmdline/apt-cdrom.cc:93 -msgid "Please insert a Disc in the drive and press enter" -msgstr "الرجاء إدخال قرص في السواقة وضغط الزر enter" - -#: 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 "" - -#: cmdline/apt-extracttemplates.cc:98 -#, c-format -msgid "%s not a valid DEB package." -msgstr "%s ليس حزمة DEB صالحة." - -#: 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 "تعذرت الكتابة إلى %s" - -#: cmdline/apt-extracttemplates.cc:310 -msgid "Cannot get debconf version. Is debconf installed?" -msgstr "تعذر الحصول على نسخة debconf. هل هي مثبتة؟" - -#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 -msgid "Package extension list is too long" -msgstr "قائمة توسيعات الحزمة طويلة جداً" - -#: 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 "خطأ في معالجة الدليل %s" - -#: ftparchive/apt-ftparchive.cc:254 -msgid "Source extension list is too long" -msgstr "قائمة توسيعات المصدر طويلة جداً" - -#: ftparchive/apt-ftparchive.cc:371 -msgid "Error writing header to contents file" -msgstr "خطأ في كتابة الترويسة إلى ملف المحتويات" - -#: ftparchive/apt-ftparchive.cc:401 -#, c-format -msgid "Error processing contents %s" -msgstr "خطأ في معالجة المحتويات %s" - -#: 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 "بعض الملفات مفقودة في مجموعة ملف الحزمة `%s'" - -#: ftparchive/cachedb.cc:47 -#, c-format -msgid "DB was corrupted, file renamed to %s.old" -msgstr "قاعدة البيانات كانت فاسدة، فتم تغيير اسمها إلى %s.old" - -#: ftparchive/cachedb.cc:65 -#, c-format -msgid "DB is old, attempting to upgrade %s" -msgstr "قاعدة البيانات قديمة، محاولة ترقية %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 "" - -#: ftparchive/cachedb.cc:81 -#, c-format -msgid "Unable to open DB file %s: %s" -msgstr "تعذر فتح ملف قاعدة البيانات %s: %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 "" - -#: 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: تعذرت قراءة الدليل %s\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 "" - -#: ftparchive/writer.cc:173 -msgid "Tree walking failed" -msgstr "" - -#: ftparchive/writer.cc:198 -#, c-format -msgid "Failed to open %s" -msgstr "فشل فتح %s" - -#: ftparchive/writer.cc:257 -#, c-format -msgid " DeLink %s [%s]\n" -msgstr " DeLink %s [%s]\n" - -#: 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 "*** فشل ربط %s بـ%s" - -#: 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 "" - -#: 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 "خطأ داخلي، تعذر العثور على العضو %s" - -#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 -msgid "realloc - Failed to allocate memory" -msgstr "realloc - فشل تعيين الذاكرة" - -#: ftparchive/override.cc:38 ftparchive/override.cc:146 -#, c-format -msgid "Unable to open %s" -msgstr "تعذر فتح %s" - -#: 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 "خطأ داخلي، تعذر إنشاء %s" - -#: 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 "فشل تغيير اسم %s إلى %s" - -#: cmdline/apt-get.cc:120 -msgid "Y" -msgstr "Y" - -#: 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 "إلا أن %s مثبت" - -#: cmdline/apt-get.cc:329 -#, c-format -msgid "but %s is to be installed" -msgstr "إلا أنه سيتم تثبيت %s" - -#: cmdline/apt-get.cc:336 -msgid "but it is not installable" -msgstr "إلا أنه غير قابل للتثبيت" - -#: cmdline/apt-get.cc:338 -msgid "but it is a virtual package" -msgstr "إلا أنها حزمة وهمية" - -#: cmdline/apt-get.cc:341 -msgid "but it is not installed" -msgstr "إلا أنها غير مثبتة" - -#: cmdline/apt-get.cc:341 -msgid "but it is not going to be installed" -msgstr "إلا أنه لن يتم تثبيتها" - -#: cmdline/apt-get.cc:346 -msgid " or" -msgstr " أو" - -#: cmdline/apt-get.cc:375 -msgid "The following NEW packages will be installed:" -msgstr "سيتم تثبيت الحزم الجديدة التالية:" - -#: cmdline/apt-get.cc:401 -msgid "The following packages will be REMOVED:" -msgstr "سيتم إزالة الحزم التالية:" - -#: 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 "ستتم ترقية الحزم التالية:" - -#: 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 (بسبب %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 "" -"تحذير: ستتم إزالة الحزم الأساسية التالية.\n" -"لا يجب أن تقوم بهذا إلى إن كنت تعرف تماماً ما تقوم به!" - -#: cmdline/apt-get.cc:577 -#, c-format -msgid "%lu upgraded, %lu newly installed, " -msgstr "%lu سيتم ترقيتها، %lu مثبتة حديثاً، " - -#: cmdline/apt-get.cc:581 -#, c-format -msgid "%lu reinstalled, " -msgstr "%lu أعيد تثبيتها، " - -#: cmdline/apt-get.cc:583 -#, c-format -msgid "%lu downgraded, " -msgstr "%lu مثبطة، " - -#: cmdline/apt-get.cc:585 -#, c-format -msgid "%lu to remove and %lu not upgraded.\n" -msgstr "%lu لإزالتها و %lu لم يتم ترقيتها.\n" - -#: cmdline/apt-get.cc:589 -#, c-format -msgid "%lu not fully installed or removed.\n" -msgstr "%lu غير مثبتة بالكامل أو مزالة.\n" - -#: cmdline/apt-get.cc:649 -msgid "Correcting dependencies..." -msgstr "تصحيح المعتمدات..." - -#: cmdline/apt-get.cc:652 -msgid " failed." -msgstr " فشل." - -#: 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 " تم" - -#: cmdline/apt-get.cc:664 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "قد ترغب بتنفيذ الأمر `apt-get -f install' لتصحيح هذه." - -#: cmdline/apt-get.cc:667 -msgid "Unmet dependencies. Try using -f." -msgstr "مُعتمدات غير مستوفاة. حاول استخدام -f." - -#: 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 "تم غض النظر عن تحذير المصادقة.\n" - -#: cmdline/apt-get.cc:700 -msgid "Install these packages without verification [y/N]? " -msgstr "تثبيت هذه الحزم دون التحقق منها [y/N]؟ " - -#: 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 "هناك مشاكل وتم استخدام -y دون --force-yes" - -#: cmdline/apt-get.cc:755 -msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "خطأ داخلي، تم طلب InstallPackages مع وجود حزم معطوبة!" - -#: 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:1818 cmdline/apt-get.cc:1851 -msgid "Unable to lock the download directory" -msgstr "تعذر قَفْل دليل التنزيل" - -#: 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 "تعذرت قراءة قائمة المصادر." - -#: cmdline/apt-get.cc:816 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "يا للغرابة.. لم تتطابق الأحجام، الرجاء مراسلة apt@packages.debian.org" - -#: cmdline/apt-get.cc:821 -#, c-format -msgid "Need to get %sB/%sB of archives.\n" -msgstr "بحاجة إلى جلب %sب/%sب من الأرشيف.\n" - -#: cmdline/apt-get.cc:824 -#, c-format -msgid "Need to get %sB of archives.\n" -msgstr "بحاجة إلى جلب %sب من الأرشيف.\n" - -#: cmdline/apt-get.cc:829 -#, c-format -msgid "After unpacking %sB of additional disk space will be used.\n" -msgstr "بعد الاستخراج %sب من المساحة الإضافيّة سيتمّ استخدامها.\n" - -#: cmdline/apt-get.cc:832 -#, c-format -msgid "After unpacking %sB disk space will be freed.\n" -msgstr "بعد الاستخراج %sب من المساحة ستفرّغ.\n" - -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 -#, c-format -msgid "Couldn't determine free space in %s" -msgstr "تعذر حساب المساحة الحرة في %s" - -#: cmdline/apt-get.cc:849 -#, c-format -msgid "You don't have enough free space in %s." -msgstr "ليس هناك مساحة كافية في %s." - -#: 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 "" -"أنت على وشك أن تقوم بشيء ضارّ جداً\n" -"كي تستمر اكتب العبارة '%s'\n" -" ؟] " - -#: 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 "هل تريد الاستمرار [Y/n]؟" - -#: 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" - -#: cmdline/apt-get.cc:979 -msgid "Some files failed to download" -msgstr "فشل تنزيل بعض الملفات" - -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 -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 "" -"تعذر إحضار بعض الأرشيف، ربما يمكنك محاولة تنفيذ apt-get update أو إضافة --" -"fix-missing؟" - -#: cmdline/apt-get.cc:990 -msgid "--fix-missing and media swapping is not currently supported" -msgstr "--fix-missing وتبديل الأوساط غير مدعومة حالياً" - -#: 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 "لاحظ، تحديد %s بدلاً من %s\n" - -#: cmdline/apt-get.cc:1040 -#, c-format -msgid "Skipping %s, it is already installed and upgrade is not set.\n" -msgstr "تخطّي %s، حيث أنها مثبتة ولم يتمّ تعيين الترقية.\n" - -#: cmdline/apt-get.cc:1058 -#, c-format -msgid "Package %s is not installed, so not removed\n" -msgstr "الحزمة %s غير مُثبّتة، لذلك لن تُزال\n" - -#: cmdline/apt-get.cc:1069 -#, c-format -msgid "Package %s is a virtual package provided by:\n" -msgstr "الحزمة %s وهميّة وتوفّرها:\n" - -#: cmdline/apt-get.cc:1081 -msgid " [Installed]" -msgstr " [مُثبّتة]" - -#: 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 "الحزمة %s ليس لها مرشح تثبيت" - -#: cmdline/apt-get.cc:1133 -#, c-format -msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" -msgstr "إعادة تثبيت %s غير ممكنة، حيث أنّه لا يمكن تنزيلها.\n" - -#: cmdline/apt-get.cc:1141 -#, c-format -msgid "%s is already the newest version.\n" -msgstr "%s هي النسخة الأحدث.\n" - -#: cmdline/apt-get.cc:1168 -#, c-format -msgid "Release '%s' for '%s' was not found" -msgstr "تعذر العثور على الإصدارة '%s' للحزمة '%s'" - -#: cmdline/apt-get.cc:1170 -#, c-format -msgid "Version '%s' for '%s' was not found" -msgstr "تعذر العثور على النسخة '%s' للحزمة '%s'" - -#: cmdline/apt-get.cc:1176 -#, c-format -msgid "Selected version %s (%s) for %s\n" -msgstr "النسخة المحددة %s (%s) للإصدارة %s\n" - -#: cmdline/apt-get.cc:1313 -msgid "The update command takes no arguments" -msgstr "لا يقبل الأمر update أية مُعطيات" - -#: 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 "خطأ داخلي، عطب AllUpgrade بعض الأشياء" - -#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 -#, c-format -msgid "Couldn't find package %s" -msgstr "تعذر العثور على الحزمة %s" - -#: cmdline/apt-get.cc:1516 -#, c-format -msgid "Note, selecting %s for regex '%s'\n" -msgstr "لاحظ، تحديد %s بسبب صيغة regex '%s'\n" - -#: cmdline/apt-get.cc:1546 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "قد ترغب بتشغيل `apt-get -f install' لتصحيح هذه:" - -#: cmdline/apt-get.cc:1549 -msgid "" -"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " -"solution)." -msgstr "" -"مُعتمدات غير مستوفاة. جرب 'apt-get -f install' بدون أسماء حزم (أو حدّد حلاً)." - -#: 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 "حزم معطوبة" - -#: cmdline/apt-get.cc:1603 -msgid "The following extra packages will be installed:" -msgstr "سيتم تثبيت الحزم الإضافيّة التالية:" - -#: cmdline/apt-get.cc:1692 -msgid "Suggested packages:" -msgstr "الحزم المقترحة:" - -#: cmdline/apt-get.cc:1693 -msgid "Recommended packages:" -msgstr "الحزم المستحسنة:" - -#: cmdline/apt-get.cc:1713 -msgid "Calculating upgrade... " -msgstr "حساب الترقية..." - -#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 -msgid "Failed" -msgstr "فشل" - -#: cmdline/apt-get.cc:1721 -msgid "Done" -msgstr "تمّ" - -#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 -msgid "Internal error, problem resolver broke stuff" -msgstr "" - -#: cmdline/apt-get.cc:1894 -msgid "Must specify at least one package to fetch source for" -msgstr "يجب تحديد حزمة واحدة على الأقل لجلب مصدرها" - -#: 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:1968 -#, c-format -msgid "Skipping already downloaded file '%s'\n" -msgstr "تخطي الملف '%s' المنزل مسبقاً\n" - -#: cmdline/apt-get.cc:1992 -#, c-format -msgid "You don't have enough free space in %s" -msgstr "ليس هناك مساحة كافية في %s" - -#: cmdline/apt-get.cc:1997 -#, c-format -msgid "Need to get %sB/%sB of source archives.\n" -msgstr "يجب جلب %sب/%sب من الأرشيفات المصدرية.\n" - -#: cmdline/apt-get.cc:2000 -#, c-format -msgid "Need to get %sB of source archives.\n" -msgstr "يجب جلب %sب من الأرشيفات المصدريّة.\n" - -#: cmdline/apt-get.cc:2006 -#, c-format -msgid "Fetch source %s\n" -msgstr "إحضار المصدر %s\n" - -#: cmdline/apt-get.cc:2037 -msgid "Failed to fetch some archives." -msgstr "فشل إحضار بعض الأرشيفات." - -#: cmdline/apt-get.cc:2065 -#, c-format -msgid "Skipping unpack of already unpacked source in %s\n" -msgstr "" - -#: cmdline/apt-get.cc:2077 -#, c-format -msgid "Unpack command '%s' failed.\n" -msgstr "أمر فك الحزمة '%s' فشل.\n" - -#: cmdline/apt-get.cc:2078 -#, c-format -msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "" - -#: cmdline/apt-get.cc:2095 -#, c-format -msgid "Build command '%s' failed.\n" -msgstr "أمر البناء '%s' فشل.\n" - -#: cmdline/apt-get.cc:2114 -msgid "Child process failed" -msgstr "" - -#: cmdline/apt-get.cc:2130 -msgid "Must specify at least one package to check builddeps for" -msgstr "" - -#: cmdline/apt-get.cc:2158 -#, c-format -msgid "Unable to get build-dependency information for %s" -msgstr "" - -#: cmdline/apt-get.cc:2178 -#, c-format -msgid "%s has no build depends.\n" -msgstr "" - -#: cmdline/apt-get.cc:2230 -#, c-format -msgid "" -"%s dependency for %s cannot be satisfied because the package %s cannot be " -"found" -msgstr "" - -#: cmdline/apt-get.cc:2282 -#, 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:2317 -#, c-format -msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" -msgstr "" - -#: cmdline/apt-get.cc:2342 -#, c-format -msgid "Failed to satisfy %s dependency for %s: %s" -msgstr "" - -#: cmdline/apt-get.cc:2356 -#, c-format -msgid "Build-dependencies for %s could not be satisfied." -msgstr "" - -#: cmdline/apt-get.cc:2360 -msgid "Failed to process build dependencies" -msgstr "" - -#: cmdline/apt-get.cc:2392 -msgid "Supported modules:" -msgstr "الوحدات المدعومة:" - -#: cmdline/apt-get.cc:2433 -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 "جلب %sب في %s (%sب/ث)\n" - -#: cmdline/acqprogress.cc:225 -#, c-format -msgid " [Working]" -msgstr " [يعمل]" - -#: 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 "" -"تغيير الوسط: الرجاء إدخال القرص المُسمّى\n" -" '%s'\n" -"في السوّاقة '%s' وضغط مفتاح الإدخال\n" - -#: 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 -msgid "Failed to create pipes" -msgstr "" - -#: apt-inst/contrib/extracttar.cc:144 -msgid "Failed to exec gzip " -msgstr "فشل تنفيذ gzip" - -#: 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 "فشل تحقّق Checksum لملف Tar، الأرشيف فاسد" - -#: 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 -msgid "Archive is too short" -msgstr "الأرشيف قصير جداً" - -#: 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 -msgid "Failed to allocate diversion" -msgstr "" - -#: apt-inst/filelist.cc:468 -msgid "Internal error in AddDiversion" -msgstr "خطأ داخلي في AddDiversion" - -#: 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 "ملف تهيئة مُزدوج %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 "فشلت كتابة الملف %s" - -#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104 -#, c-format -msgid "Failed to close file %s" -msgstr "فشل إغلاق الملف %s" - -#: apt-inst/extract.cc:96 apt-inst/extract.cc:167 -#, c-format -msgid "The path %s is too long" -msgstr "المسار %s طويل جداً" - -#: apt-inst/extract.cc:127 -#, c-format -msgid "Unpacking %s more than once" -msgstr "فكّ تحزيم %s أكثر من مرّة" - -#: 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 -msgid "The diversion path is too long" -msgstr "" - -#: 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 -#, c-format -msgid "Unable to read %s" -msgstr "تعذرت قراءة %s" - -#: apt-inst/extract.cc:494 -#, c-format -msgid "Unable to stat %s" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61 -#, c-format -msgid "Failed to remove %s" -msgstr "تعذرت إزالة %s" - -#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112 -#, c-format -msgid "Unable to create %s" -msgstr "تعذر إنشاء %s" - -#: apt-inst/deb/dpkgdb.cc:118 -#, c-format -msgid "Failed to stat %sinfo" -msgstr "" - -#: 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 -msgid "Reading package lists" -msgstr "قراءة قوائم الحزم" - -#: apt-inst/deb/dpkgdb.cc:180 -#, c-format -msgid "Failed to change to the admin dir %sinfo" -msgstr "فشل تغيير دليل الإدارة إلى %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 "خطأ داخلي أثناء الحصول على اسم الحزمة" - -#: 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 "فشلت قراءة ملف القائمة %sinfo/%s" - -#: apt-inst/deb/dpkgdb.cc:266 -msgid "Internal error getting a node" -msgstr "خطأ داخلي أثناء الحصول على node" - -#: 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 "تعذر التغيير إلى %s" - -#: 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 -#, c-format -msgid "Unable to read the cdrom database %s" -msgstr "تعذرت قراءة قاعدة بيانات القرص المدمج %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 "" -"الرجاء استخدام apt-cdrom لتعريف APT بهذا القرص المدمج. لا يمكن استخدام apt-" -"get update لإضافة أقراص مدمجة جديدة." - -#: 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 "تعذر فكّ القرص المدمج من %s، إذ قد يكون لا يزال قيد الاستخدام." - -#: methods/cdrom.cc:169 -msgid "Disk not found." -msgstr "لم يُعثر على القرص." - -#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264 -msgid "File not found" -msgstr "لم يُعثر على الملف" - -#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 -#: methods/gzip.cc:150 -msgid "Failed to stat" -msgstr "فشيل تنفيذ stat" - -#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 -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 -msgid "Unable to determine the local name" -msgstr "" - -#: methods/ftp.cc:204 methods/ftp.cc:232 -#, c-format -msgid "The server refused the connection and said: %s" -msgstr "رفض الخادم اتصالنا بالرد: %s" - -#: methods/ftp.cc:210 -#, c-format -msgid "USER failed, server said: %s" -msgstr "فشل USER، ردّ الخادم: %s" - -#: methods/ftp.cc:217 -#, c-format -msgid "PASS failed, server said: %s" -msgstr "فشل PASS، ردّ الخادم: %s" - -#: methods/ftp.cc:237 -msgid "" -"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " -"is empty." -msgstr "" -"تم تحديد خادم بروكسي ولكن دون نص تسجيل دخول برمجي، Acquire::ftp::ProxyLogin " -"فارغ." - -#: methods/ftp.cc:265 -#, c-format -msgid "Login script command '%s' failed, server said: %s" -msgstr "فشل أمر نص تسجيل الدخول البرمجي '%s'، ردّ الخادم: %s" - -#: methods/ftp.cc:291 -#, c-format -msgid "TYPE failed, server said: %s" -msgstr "فشل TYPE، ردّ الخادم: %s" - -#: 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 "تعذر إرسال الأمر PORT" - -#: 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 "فشل EPRT، ردّ الخادم: %s" - -#: 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 -#, c-format -msgid "Unable to fetch file, server said '%s'" -msgstr "تعذر إحضار الملف، ردّ الخادم '%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 "فشل نقل البيانات، ردّ الخادم '%s'" - -#. Get the files information -#: methods/ftp.cc:997 -msgid "Query" -msgstr "استعلام" - -#: methods/ftp.cc:1109 -msgid "Unable to invoke " -msgstr "" - -#: methods/connect.cc:64 -#, c-format -msgid "Connecting to %s (%s)" -msgstr "الاتصال بـ%s (%s)" - -#: methods/connect.cc:71 -#, c-format -msgid "[IP: %s %s]" -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 "" - -#: methods/connect.cc:86 -#, c-format -msgid "Cannot initiate the connection to %s:%s (%s)." -msgstr "تعذر تمهيد الاتصال بـ%s:%s (%s)." - -#: methods/connect.cc:93 -#, c-format -msgid "Could not connect to %s:%s (%s), connection timed out" -msgstr "تعذر الاتصال بـ%s:%s (%s)، انتهى وقت الاتصال" - -#: methods/connect.cc:108 -#, c-format -msgid "Could not connect to %s:%s (%s)." -msgstr "تعذر الاتصال بـ%s:%s (%s)." - -#. 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 "الاتصال بـ%s" - -#: methods/connect.cc:167 -#, c-format -msgid "Could not resolve '%s'" -msgstr "" - -#: 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 -#, c-format -msgid "Unable to connect to %s %s:" -msgstr "تعذر الاتصال بـ%s %s:" - -#: 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 -msgid "The following signatures were invalid:\n" -msgstr "" - -#: methods/gpgv.cc:256 -msgid "" -"The following signatures couldn't be verified because the public key is not " -"available:\n" -msgstr "" - -#: methods/gzip.cc:64 -#, c-format -msgid "Couldn't open pipe for %s" -msgstr "" - -#: methods/gzip.cc:109 -#, 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 "أرسل خادم http ترويسة ردّ غير صالحة" - -#: methods/http.cc:585 -msgid "The HTTP server sent an invalid Content-Length header" -msgstr "أرسل خادم http ترويسة طول محتويات (ِContent-Length) غير صالحة" - -#: methods/http.cc:600 -msgid "The HTTP server sent an invalid Content-Range header" -msgstr "أرسل خادم http ترويسة مدى محتويات (ِContent-Range) غير صالحة" - -#: methods/http.cc:602 -msgid "This HTTP server has broken range support" -msgstr "خادم http له دعم مدى معطوب" - -#: methods/http.cc:626 -msgid "Unknown date format" -msgstr "نسق تاريخ مجهول" - -#: methods/http.cc:773 -msgid "Select failed" -msgstr "فشل التحديد" - -#: methods/http.cc:778 -msgid "Connection timed out" -msgstr "انتهى وقت الاتصال" - -#: methods/http.cc:801 -msgid "Error writing to output file" -msgstr "خطأ في الكتابة إلى ملف المُخرجات" - -#: methods/http.cc:832 -msgid "Error writing to file" -msgstr "خطأ في الكتابة إلى الملف" - -#: methods/http.cc:860 -msgid "Error writing to the file" -msgstr "خطأ في الكتابة إلى الملف" - -#: 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 "تعذر العثور على التحديد %s" - -#: apt-pkg/contrib/configuration.cc:436 -#, c-format -msgid "Unrecognized type abbreviation: '%c'" -msgstr "اختصار نوع مجهول: '%c'" - -#: apt-pkg/contrib/configuration.cc:494 -#, c-format -msgid "Opening configuration file %s" -msgstr "فتح ملف التهيئة %s" - -#: apt-pkg/contrib/configuration.cc:512 -#, c-format -msgid "Line %d too long (max %d)" -msgstr "السطر %d طويل جداً (أقصاه %d)" - -#: 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 "%c%s... خطأ!" - -#: apt-pkg/contrib/progress.cc:156 -#, c-format -msgid "%c%s... Done" -msgstr "%c%s... تمّ" - -#: apt-pkg/contrib/cmndline.cc:80 -#, c-format -msgid "Command line option '%c' [from %s] is not known." -msgstr "خيار سطر الأمر '%c' [من %s] مجهول." - -#: 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 "خيار سطر الأمر %s غير مفهوم" - -#: 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 "الخيار %s يتطلّب مُعطى." - -#: 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 -#, c-format -msgid "Option '%s' is too long" -msgstr "الخيار '%s' طويل جداً" - -#: 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 "عمليّة غير صالحة %s" - -#: apt-pkg/contrib/cdromutl.cc:55 -#, c-format -msgid "Unable to stat the mount point %s" -msgstr "" - -#: 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 "" - -#: 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 -#, c-format -msgid "Could not open lock file %s" -msgstr "" - -#: 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 -#, c-format -msgid "Could not open file %s" -msgstr "" - -#: 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 -msgid "Recommends" -msgstr "يقترح" - -#: 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 -msgid "Candidate versions" -msgstr "" - -#: apt-pkg/depcache.cc:91 -msgid "Dependency generation" -msgstr "" - -#: apt-pkg/tagfile.cc:106 -#, c-format -msgid "Unable to parse package file %s (1)" -msgstr "" - -#: apt-pkg/tagfile.cc:193 -#, c-format -msgid "Unable to parse package file %s (2)" -msgstr "" - -#: 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 "فتح %s" - -#: 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 -#, c-format -msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "الرجاء إدخال القرص المُسمّى '%s' في السوّاقة '%s' وضغط مفتاح الإدخال." - -#: apt-pkg/init.cc:120 -#, c-format -msgid "Packaging system '%s' is not supported" -msgstr "نظام الحزم '%s' غير مدعوم" - -#: apt-pkg/init.cc:136 -msgid "Unable to determine a suitable packaging system type" -msgstr "" - -#: apt-pkg/clean.cc:61 -#, c-format -msgid "Unable to stat %s." -msgstr "" - -#: 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-get update في تصحيح هذه المشاكل" - -#: 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 "حدث خطأ أثناء معالجة %s (NewPackage)" - -#: apt-pkg/pkgcachegen.cc:129 -#, c-format -msgid "Error occurred while processing %s (UsePackage1)" -msgstr "حدث خطأ أثناء معالجة %s (UserPackage1)" - -#: apt-pkg/pkgcachegen.cc:150 -#, c-format -msgid "Error occurred while processing %s (UsePackage2)" -msgstr "حدث خطأ أثناء معالجة %s (UserPackage2)" - -#: apt-pkg/pkgcachegen.cc:154 -#, c-format -msgid "Error occurred while processing %s (NewFileVer1)" -msgstr "حدث خطأ أثناء معالجة %s (NewFileVer1)" - -#: apt-pkg/pkgcachegen.cc:184 -#, c-format -msgid "Error occurred while processing %s (NewVersion1)" -msgstr "حدث خطأ أثناء معالجة %s (NewVersion1)" - -#: apt-pkg/pkgcachegen.cc:188 -#, c-format -msgid "Error occurred while processing %s (UsePackage3)" -msgstr "حدث خطأ أثناء معالجة %s (UsePackage3)" - -#: apt-pkg/pkgcachegen.cc:192 -#, c-format -msgid "Error occurred while processing %s (NewVersion2)" -msgstr "حدث خطأ أثناء معالجة %s (NewVersion2)" - -#: 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 "فشل إعادة التسمية ، %s (%s -> %s)." - -#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945 -msgid "MD5Sum mismatch" -msgstr "MD5Sum غير متطابقة" - -#: apt-pkg/acquire-item.cc:640 -msgid "There is 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 "فك تركيب القرص المدمج\n" - -#: apt-pkg/cdrom.cc:583 -msgid "Waiting for disc...\n" -msgstr "بانتظار القرص...\n" - -#. Mount the new CDROM -#: apt-pkg/cdrom.cc:591 -msgid "Mounting CD-ROM...\n" -msgstr "تركيب القرص...\n" - -#: 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 "هذا الاسم غير صالح، حاول مجدداً.\n" - -#: apt-pkg/cdrom.cc:726 -#, c-format -msgid "" -"This disc is called: \n" -"'%s'\n" -msgstr "" -"هذا القرص مسمى: \n" -"'%s'\n" - -#: apt-pkg/cdrom.cc:730 -msgid "Copying package lists..." -msgstr "نسخ قوائم الحزم..." - -#: apt-pkg/cdrom.cc:754 -msgid "Writing new source list\n" -msgstr "كتابة لائحة المصادر الجديدة\n" - -#: 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 "تحضير %s" - -#: apt-pkg/deb/dpkgpm.cc:359 -#, c-format -msgid "Unpacking %s" -msgstr "فتح %s" - -#: apt-pkg/deb/dpkgpm.cc:364 -#, c-format -msgid "Preparing to configure %s" -msgstr "التحضير لتهيئة %s" - -#: apt-pkg/deb/dpkgpm.cc:365 -#, c-format -msgid "Configuring %s" -msgstr "تهيئة %s" - -#: apt-pkg/deb/dpkgpm.cc:366 -#, c-format -msgid "Installed %s" -msgstr "تم تثبيت %s" - -#: apt-pkg/deb/dpkgpm.cc:371 -#, c-format -msgid "Preparing for removal of %s" -msgstr "التحضير لإزالة %s" - -#: apt-pkg/deb/dpkgpm.cc:372 -#, c-format -msgid "Removing %s" -msgstr "إزالة %s" - -#: apt-pkg/deb/dpkgpm.cc:373 -#, c-format -msgid "Removed %s" -msgstr "تم إزالة %s" - -#: apt-pkg/deb/dpkgpm.cc:378 -#, c-format -msgid "Preparing to completely remove %s" -msgstr "التحضير لإزالة %s بالكامل" - -#: apt-pkg/deb/dpkgpm.cc:379 -#, c-format -msgid "Completely removed %s" -msgstr "تمت إزالة %s بالكامل" - -#: methods/rsh.cc:330 -msgid "Connection closed prematurely" -msgstr "" - -#~ msgid "File date has changed %s" -#~ msgstr "تغير تاريخ الملف %s" diff --git a/po/ku.po b/po/ku.po deleted file mode 100644 index b6b13c8b1..000000000 --- a/po/ku.po +++ /dev/null @@ -1,2665 +0,0 @@ -# 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: 2007-07-06 06:51+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:143 -#, c-format -msgid "Package %s version %s has an unmet dep:\n" -msgstr "" - -#: cmdline/apt-cache.cc:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640 -#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018 -#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570 -#, c-format -msgid "Unable to locate package %s" -msgstr "Pakêt nehate dîtin %s" - -#: cmdline/apt-cache.cc:247 -msgid "Total package names : " -msgstr "Navên paketan bi giştî :" - -#: cmdline/apt-cache.cc:287 -msgid " Normal packages: " -msgstr " Pakêtên normal:" - -#: cmdline/apt-cache.cc:288 -msgid " Pure virtual packages: " -msgstr " Pakêtên farazî yên safî:" - -#: cmdline/apt-cache.cc:289 -msgid " Single virtual packages: " -msgstr " Pakêta tenê ya farazî:" - -#: cmdline/apt-cache.cc:290 -msgid " Mixed virtual packages: " -msgstr " Pakêtên hevbeş yên farazî:" - -#: cmdline/apt-cache.cc:291 -msgid " Missing: " -msgstr " Winda: " - -#: cmdline/apt-cache.cc:293 -msgid "Total distinct versions: " -msgstr "Guhertoyên vekirî yên giştî:" - -#: cmdline/apt-cache.cc:295 -#, fuzzy -msgid "Total Distinct Descriptions: " -msgstr "Guhertoyên vekirî yên giştî:" - -#: cmdline/apt-cache.cc:297 -msgid "Total dependencies: " -msgstr "Bindestên giştî:" - -#: cmdline/apt-cache.cc:300 -msgid "Total ver/file relations: " -msgstr "" - -#: cmdline/apt-cache.cc:302 -#, fuzzy -msgid "Total Desc/File relations: " -msgstr "Guhertoyên vekirî yên giştî:" - -#: cmdline/apt-cache.cc:304 -msgid "Total Provides mappings: " -msgstr "" - -#: cmdline/apt-cache.cc:316 -msgid "Total globbed strings: " -msgstr "" - -#: cmdline/apt-cache.cc:330 -msgid "Total dependency version space: " -msgstr "" - -#: cmdline/apt-cache.cc:335 -msgid "Total slack space: " -msgstr "Cihê giştî yê sist:" - -#: cmdline/apt-cache.cc:343 -msgid "Total space accounted for: " -msgstr "Cihê giştî yê veqetandî: " - -#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218 -#, c-format -msgid "Package file %s is out of sync." -msgstr "Pakêta dosya %s li derveyî demê ye." - -#: cmdline/apt-cache.cc:1293 -msgid "You must give exactly one pattern" -msgstr "Pêwist e tu mînakekê bidî" - -#: cmdline/apt-cache.cc:1447 -msgid "No packages found" -msgstr "Pakêt nayên dîtin" - -#: cmdline/apt-cache.cc:1524 -msgid "Package files:" -msgstr "Pelgehên Pakêt:" - -#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617 -msgid "Cache is out of sync, can't x-ref a package file" -msgstr "" - -#: cmdline/apt-cache.cc:1532 -#, c-format -msgid "%4i %s\n" -msgstr "%4i %s\n" - -#. Show any packages have explicit pins -#: cmdline/apt-cache.cc:1544 -msgid "Pinned packages:" -msgstr "" - -#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 -msgid "(not found)" -msgstr "(nehate dîtin)" - -#. Installed version -#: cmdline/apt-cache.cc:1577 -msgid " Installed: " -msgstr " Sazkirî: " - -#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 -msgid "(none)" -msgstr "(ne tiştek)" - -#. Candidate Version -#: cmdline/apt-cache.cc:1584 -msgid " Candidate: " -msgstr " Berendam: " - -#: cmdline/apt-cache.cc:1594 -msgid " Package pin: " -msgstr " Destika pakêtê:" - -#. Show the priority tables -#: cmdline/apt-cache.cc:1603 -msgid " Version table:" -msgstr " Tabloya guhertoyan:" - -#: cmdline/apt-cache.cc:1618 -#, c-format -msgid " %4i %s\n" -msgstr " %4i %s\n" - -#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 -#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547 -#: cmdline/apt-get.cc:2584 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:1721 -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:815 -#, 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:164 ftparchive/apt-ftparchive.cc:338 -msgid "Package extension list is too long" -msgstr "Lîsteya dirêjahiya pakêtê zêde dirêj e" - -#: ftparchive/apt-ftparchive.cc:166 ftparchive/apt-ftparchive.cc:180 -#: ftparchive/apt-ftparchive.cc:203 ftparchive/apt-ftparchive.cc:253 -#: ftparchive/apt-ftparchive.cc:267 ftparchive/apt-ftparchive.cc:289 -#, c-format -msgid "Error processing directory %s" -msgstr "Di şixulandina pêrista %s de çewtî" - -#: ftparchive/apt-ftparchive.cc:251 -msgid "Source extension list is too long" -msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" - -#: ftparchive/apt-ftparchive.cc:368 -msgid "Error writing header to contents file" -msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" - -#: ftparchive/apt-ftparchive.cc:398 -#, c-format -msgid "Error processing contents %s" -msgstr "Dema şixulandina naveroka %s çewtî" - -#: ftparchive/apt-ftparchive.cc:553 -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:759 -msgid "No selections matched" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:832 -#, 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:43 -#, 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:61 -#, c-format -msgid "DB is old, attempting to upgrade %s" -msgstr "Danegir kevn e, ji bo bilindkirina %s hewl dide" - -#: ftparchive/cachedb.cc:72 -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:77 -#, c-format -msgid "Unable to open DB file %s: %s" -msgstr "Danegira %s nehate vekirin: %s" - -#: ftparchive/cachedb.cc:123 apt-inst/extract.cc:178 apt-inst/extract.cc:190 -#: apt-inst/extract.cc:207 apt-inst/deb/dpkgdb.cc:117 methods/gpgv.cc:272 -#, c-format -msgid "Failed to stat %s" -msgstr "" - -#: ftparchive/cachedb.cc:238 -msgid "Archive has no control record" -msgstr "Tomara kontrola arşîvê tuneye" - -#: ftparchive/cachedb.cc:444 -msgid "Unable to get a cursor" -msgstr "" - -#: ftparchive/writer.cc:75 -#, c-format -msgid "W: Unable to read directory %s\n" -msgstr "W: pelrêça %s nayê xwendin\n" - -#: ftparchive/writer.cc:80 -#, c-format -msgid "W: Unable to stat %s\n" -msgstr "" - -#: ftparchive/writer.cc:131 -msgid "E: " -msgstr "E: " - -#: ftparchive/writer.cc:133 -msgid "W: " -msgstr "W: " - -#: ftparchive/writer.cc:140 -msgid "E: Errors apply to file " -msgstr "" - -#: ftparchive/writer.cc:157 ftparchive/writer.cc:187 -#, c-format -msgid "Failed to resolve %s" -msgstr "%s ji hev nehate veçirandin" - -#: ftparchive/writer.cc:169 -msgid "Tree walking failed" -msgstr "" - -#: ftparchive/writer.cc:194 -#, c-format -msgid "Failed to open %s" -msgstr "%s venebû" - -#: ftparchive/writer.cc:253 -#, c-format -msgid " DeLink %s [%s]\n" -msgstr "" - -#: ftparchive/writer.cc:261 -#, c-format -msgid "Failed to readlink %s" -msgstr "" - -#: ftparchive/writer.cc:265 -#, c-format -msgid "Failed to unlink %s" -msgstr "" - -#: ftparchive/writer.cc:272 -#, c-format -msgid "*** Failed to link %s to %s" -msgstr "" - -#: ftparchive/writer.cc:282 -#, c-format -msgid " DeLink limit of %sB hit.\n" -msgstr "" - -#: ftparchive/writer.cc:386 -msgid "Archive had no package field" -msgstr "Di arşîvê de qada pakêtê tuneye" - -#: ftparchive/writer.cc:394 ftparchive/writer.cc:609 -#, c-format -msgid " %s has no override entry\n" -msgstr "" - -#: ftparchive/writer.cc:439 ftparchive/writer.cc:697 -#, c-format -msgid " %s maintainer is %s not %s\n" -msgstr "" - -#: ftparchive/writer.cc:619 -#, c-format -msgid " %s has no source override entry\n" -msgstr "" - -#: ftparchive/writer.cc:623 -#, 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:34 ftparchive/override.cc:142 -#, c-format -msgid "Unable to open %s" -msgstr "%s venebû" - -#: ftparchive/override.cc:60 ftparchive/override.cc:166 -#, c-format -msgid "Malformed override %s line %lu #1" -msgstr "" - -#: ftparchive/override.cc:74 ftparchive/override.cc:178 -#, c-format -msgid "Malformed override %s line %lu #2" -msgstr "" - -#: ftparchive/override.cc:88 ftparchive/override.cc:191 -#, c-format -msgid "Malformed override %s line %lu #3" -msgstr "" - -#: ftparchive/override.cc:127 ftparchive/override.cc:201 -#, c-format -msgid "Failed to read the override file %s" -msgstr "" - -#: ftparchive/multicompress.cc:71 -#, c-format -msgid "Unknown compression algorithm '%s'" -msgstr "" - -#: ftparchive/multicompress.cc:101 -#, c-format -msgid "Compressed output %s needs a compression set" -msgstr "" - -#: ftparchive/multicompress.cc:168 methods/rsh.cc:91 -msgid "Failed to create IPC pipe to subprocess" -msgstr "" - -#: ftparchive/multicompress.cc:194 -msgid "Failed to create FILE*" -msgstr "" - -#: ftparchive/multicompress.cc:197 -msgid "Failed to fork" -msgstr "" - -#: ftparchive/multicompress.cc:211 -msgid "Compress child" -msgstr "" - -#: ftparchive/multicompress.cc:234 -#, c-format -msgid "Internal error, failed to create %s" -msgstr "" - -#: ftparchive/multicompress.cc:285 -msgid "Failed to create subprocess IPC" -msgstr "" - -#: ftparchive/multicompress.cc:320 -msgid "Failed to exec compressor " -msgstr "" - -#: ftparchive/multicompress.cc:359 -msgid "decompressor" -msgstr "" - -#: ftparchive/multicompress.cc:402 -msgid "IO to subprocess/file failed" -msgstr "" - -#: ftparchive/multicompress.cc:454 -msgid "Failed to read while computing MD5" -msgstr "" - -#: ftparchive/multicompress.cc:471 -#, c-format -msgid "Problem unlinking %s" -msgstr "" - -#: ftparchive/multicompress.cc:486 apt-inst/extract.cc:185 -#, c-format -msgid "Failed to rename %s to %s" -msgstr "" - -#: cmdline/apt-get.cc:121 -msgid "Y" -msgstr "E" - -#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1672 -#, c-format -msgid "Regex compilation error - %s" -msgstr "" - -#: cmdline/apt-get.cc:238 -msgid "The following packages have unmet dependencies:" -msgstr "" - -#: cmdline/apt-get.cc:328 -#, c-format -msgid "but %s is installed" -msgstr "lê %s sazkirî ye" - -#: cmdline/apt-get.cc:330 -#, c-format -msgid "but %s is to be installed" -msgstr "lê %s dê were sazkirin" - -#: cmdline/apt-get.cc:337 -msgid "but it is not installable" -msgstr "lê sazkirina wê ne gengaz e" - -#: cmdline/apt-get.cc:339 -msgid "but it is a virtual package" -msgstr "lê paketeke farazî ye" - -#: cmdline/apt-get.cc:342 -msgid "but it is not installed" -msgstr "lê ne sazkirî ye" - -#: cmdline/apt-get.cc:342 -msgid "but it is not going to be installed" -msgstr "lê dê neyê sazkirin" - -#: cmdline/apt-get.cc:347 -msgid " or" -msgstr " û" - -#: cmdline/apt-get.cc:376 -msgid "The following NEW packages will be installed:" -msgstr "Ev pakêtên NÛ dê werine sazkirin:" - -#: cmdline/apt-get.cc:402 -msgid "The following packages will be REMOVED:" -msgstr "Ev pakêt dê werine RAKIRIN:" - -#: cmdline/apt-get.cc:424 -msgid "The following packages have been kept back:" -msgstr "" - -#: cmdline/apt-get.cc:445 -msgid "The following packages will be upgraded:" -msgstr "Ev paket dê werine bilindkirin:" - -#: cmdline/apt-get.cc:466 -msgid "The following packages will be DOWNGRADED:" -msgstr "" - -#: cmdline/apt-get.cc:486 -msgid "The following held packages will be changed:" -msgstr "" - -#: cmdline/apt-get.cc:539 -#, c-format -msgid "%s (due to %s) " -msgstr "%s (ji ber %s)" - -#: cmdline/apt-get.cc:547 -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:578 -#, c-format -msgid "%lu upgraded, %lu newly installed, " -msgstr "" - -#: cmdline/apt-get.cc:582 -#, c-format -msgid "%lu reinstalled, " -msgstr "%lu ji nû ve sazkirî" - -#: cmdline/apt-get.cc:584 -#, c-format -msgid "%lu downgraded, " -msgstr "" - -#: cmdline/apt-get.cc:586 -#, c-format -msgid "%lu to remove and %lu not upgraded.\n" -msgstr "" - -#: cmdline/apt-get.cc:590 -#, c-format -msgid "%lu not fully installed or removed.\n" -msgstr "" - -#: cmdline/apt-get.cc:664 -msgid "Correcting dependencies..." -msgstr "Bindestî tên serrastkirin..." - -#: cmdline/apt-get.cc:667 -msgid " failed." -msgstr " neserketî." - -#: cmdline/apt-get.cc:670 -msgid "Unable to correct dependencies" -msgstr "" - -#: cmdline/apt-get.cc:673 -msgid "Unable to minimize the upgrade set" -msgstr "" - -#: cmdline/apt-get.cc:675 -msgid " Done" -msgstr " Temam" - -#: cmdline/apt-get.cc:679 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "" - -#: cmdline/apt-get.cc:682 -msgid "Unmet dependencies. Try using -f." -msgstr "" - -#: cmdline/apt-get.cc:704 -msgid "WARNING: The following packages cannot be authenticated!" -msgstr "" - -#: cmdline/apt-get.cc:708 -msgid "Authentication warning overridden.\n" -msgstr "" - -#: cmdline/apt-get.cc:715 -msgid "Install these packages without verification [y/N]? " -msgstr "" - -#: cmdline/apt-get.cc:717 -msgid "Some packages could not be authenticated" -msgstr "" - -#: 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:770 -msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "" - -#: cmdline/apt-get.cc:779 -msgid "Packages need to be removed but remove is disabled." -msgstr "" - -#: cmdline/apt-get.cc:790 -msgid "Internal error, Ordering didn't finish" -msgstr "" - -#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:2010 cmdline/apt-get.cc:2043 -msgid "Unable to lock the download directory" -msgstr "Pelrêça daxistinê nayê quflekirin" - -#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2091 cmdline/apt-get.cc:2332 -#: apt-pkg/cachefile.cc:63 -msgid "The list of sources could not be read." -msgstr "" - -#: cmdline/apt-get.cc:831 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "" - -#: cmdline/apt-get.cc:836 -#, c-format -msgid "Need to get %sB/%sB of archives.\n" -msgstr "" - -#: cmdline/apt-get.cc:839 -#, c-format -msgid "Need to get %sB of archives.\n" -msgstr "" - -#: cmdline/apt-get.cc:844 -#, c-format -msgid "After unpacking %sB of additional disk space will be used.\n" -msgstr "" - -#: cmdline/apt-get.cc:847 -#, c-format -msgid "After unpacking %sB disk space will be freed.\n" -msgstr "" - -#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2186 -#, c-format -msgid "Couldn't determine free space in %s" -msgstr "" - -#: cmdline/apt-get.cc:864 -#, c-format -msgid "You don't have enough free space in %s." -msgstr "" - -#: 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:881 -msgid "Yes, do as I say!" -msgstr "" - -#: cmdline/apt-get.cc:883 -#, 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:889 cmdline/apt-get.cc:908 -msgid "Abort." -msgstr "" - -#: cmdline/apt-get.cc:904 -msgid "Do you want to continue [Y/n]? " -msgstr "" - -#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2229 -#, c-format -msgid "Failed to fetch %s %s\n" -msgstr "" - -#: cmdline/apt-get.cc:994 -msgid "Some files failed to download" -msgstr "" - -#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2238 -msgid "Download complete and in download only mode" -msgstr "" - -#: 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:1005 -msgid "--fix-missing and media swapping is not currently supported" -msgstr "" - -#: cmdline/apt-get.cc:1010 -msgid "Unable to correct missing packages." -msgstr "" - -#: cmdline/apt-get.cc:1011 -msgid "Aborting install." -msgstr "" - -#: cmdline/apt-get.cc:1045 -#, c-format -msgid "Note, selecting %s instead of %s\n" -msgstr "" - -#: 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:1073 -#, c-format -msgid "Package %s is not installed, so not removed\n" -msgstr "" - -#: cmdline/apt-get.cc:1084 -#, c-format -msgid "Package %s is a virtual package provided by:\n" -msgstr "" - -#: cmdline/apt-get.cc:1096 -msgid " [Installed]" -msgstr " [Sazkirî]" - -#: cmdline/apt-get.cc:1101 -msgid "You should explicitly select one to install." -msgstr "" - -#: cmdline/apt-get.cc:1106 -#, 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:1125 -msgid "However the following packages replace it:" -msgstr "" - -#: cmdline/apt-get.cc:1128 -#, c-format -msgid "Package %s has no installation candidate" -msgstr "" - -#: cmdline/apt-get.cc:1148 -#, c-format -msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" -msgstr "" - -#: cmdline/apt-get.cc:1156 -#, c-format -msgid "%s is already the newest version.\n" -msgstr "" - -#: cmdline/apt-get.cc:1185 -#, c-format -msgid "Release '%s' for '%s' was not found" -msgstr "" - -#: cmdline/apt-get.cc:1187 -#, c-format -msgid "Version '%s' for '%s' was not found" -msgstr "" - -#: cmdline/apt-get.cc:1193 -#, c-format -msgid "Selected version %s (%s) for %s\n" -msgstr "" - -#: cmdline/apt-get.cc:1330 -msgid "The update command takes no arguments" -msgstr "" - -#: cmdline/apt-get.cc:1343 -msgid "Unable to lock the list directory" -msgstr "" - -#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412 -msgid "" -"Some index files failed to download, they have been ignored, or old ones " -"used instead." -msgstr "" - -#: cmdline/apt-get.cc:1433 -msgid "We are not supposed to delete stuff, can't start AutoRemover" -msgstr "" - -#: cmdline/apt-get.cc:1465 -#, fuzzy -msgid "" -"The following packages were automatically installed and are no longer " -"required:" -msgstr "Ev pakêtên NÛ dê werine sazkirin:" - -#: cmdline/apt-get.cc:1467 -msgid "Use 'apt-get autoremove' to remove them." -msgstr "" - -#: cmdline/apt-get.cc:1472 -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:1475 cmdline/apt-get.cc:1753 -msgid "The following information may help to resolve the situation:" -msgstr "" - -#: cmdline/apt-get.cc:1479 -msgid "Internal Error, AutoRemover broke stuff" -msgstr "" - -#: cmdline/apt-get.cc:1498 -msgid "Internal error, AllUpgrade broke stuff" -msgstr "" - -#: cmdline/apt-get.cc:1544 -#, fuzzy, c-format -msgid "Couldn't find task %s" -msgstr "Danegira %s nehate vekirin: %s" - -#: cmdline/apt-get.cc:1659 cmdline/apt-get.cc:1695 -#, c-format -msgid "Couldn't find package %s" -msgstr "" - -#: cmdline/apt-get.cc:1682 -#, c-format -msgid "Note, selecting %s for regex '%s'\n" -msgstr "" - -#: cmdline/apt-get.cc:1712 -#, fuzzy, c-format -msgid "%s set to manual installed.\n" -msgstr "lê %s dê were sazkirin" - -#: cmdline/apt-get.cc:1725 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "" - -#: cmdline/apt-get.cc:1728 -msgid "" -"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " -"solution)." -msgstr "" - -#: cmdline/apt-get.cc:1740 -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:1748 -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:1756 -msgid "Broken packages" -msgstr "Paketên şikestî" - -#: cmdline/apt-get.cc:1785 -msgid "The following extra packages will be installed:" -msgstr "" - -#: cmdline/apt-get.cc:1874 -msgid "Suggested packages:" -msgstr "Paketên tên pêşniyaz kirin:" - -#: cmdline/apt-get.cc:1875 -msgid "Recommended packages:" -msgstr "Paketên tên tawsiyê kirin:" - -#: cmdline/apt-get.cc:1903 -msgid "Calculating upgrade... " -msgstr "" - -#: cmdline/apt-get.cc:1906 methods/ftp.cc:702 methods/connect.cc:101 -msgid "Failed" -msgstr "Serneket" - -#: cmdline/apt-get.cc:1911 -msgid "Done" -msgstr "Temam" - -#: cmdline/apt-get.cc:1978 cmdline/apt-get.cc:1986 -msgid "Internal error, problem resolver broke stuff" -msgstr "" - -#: cmdline/apt-get.cc:2086 -msgid "Must specify at least one package to fetch source for" -msgstr "" - -#: cmdline/apt-get.cc:2116 cmdline/apt-get.cc:2350 -#, c-format -msgid "Unable to find a source package for %s" -msgstr "" - -#: cmdline/apt-get.cc:2165 -#, c-format -msgid "Skipping already downloaded file '%s'\n" -msgstr "" - -#: cmdline/apt-get.cc:2189 -#, c-format -msgid "You don't have enough free space in %s" -msgstr "" - -#: cmdline/apt-get.cc:2194 -#, c-format -msgid "Need to get %sB/%sB of source archives.\n" -msgstr "" - -#: cmdline/apt-get.cc:2197 -#, c-format -msgid "Need to get %sB of source archives.\n" -msgstr "" - -#: cmdline/apt-get.cc:2203 -#, c-format -msgid "Fetch source %s\n" -msgstr "" - -#: cmdline/apt-get.cc:2234 -msgid "Failed to fetch some archives." -msgstr "" - -#: cmdline/apt-get.cc:2262 -#, c-format -msgid "Skipping unpack of already unpacked source in %s\n" -msgstr "" - -#: cmdline/apt-get.cc:2274 -#, c-format -msgid "Unpack command '%s' failed.\n" -msgstr "" - -#: cmdline/apt-get.cc:2275 -#, c-format -msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "" - -#: cmdline/apt-get.cc:2292 -#, c-format -msgid "Build command '%s' failed.\n" -msgstr "" - -#: cmdline/apt-get.cc:2311 -msgid "Child process failed" -msgstr "" - -#: cmdline/apt-get.cc:2327 -msgid "Must specify at least one package to check builddeps for" -msgstr "" - -#: cmdline/apt-get.cc:2355 -#, c-format -msgid "Unable to get build-dependency information for %s" -msgstr "" - -#: cmdline/apt-get.cc:2375 -#, c-format -msgid "%s has no build depends.\n" -msgstr "" - -#: cmdline/apt-get.cc:2427 -#, c-format -msgid "" -"%s dependency for %s cannot be satisfied because the package %s cannot be " -"found" -msgstr "" - -#: cmdline/apt-get.cc:2479 -#, 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:2514 -#, c-format -msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" -msgstr "" - -#: cmdline/apt-get.cc:2539 -#, c-format -msgid "Failed to satisfy %s dependency for %s: %s" -msgstr "" - -#: cmdline/apt-get.cc:2553 -#, c-format -msgid "Build-dependencies for %s could not be satisfied." -msgstr "" - -#: cmdline/apt-get.cc:2557 -msgid "Failed to process build dependencies" -msgstr "" - -#: cmdline/apt-get.cc:2589 -msgid "Supported modules:" -msgstr "" - -#: cmdline/apt-get.cc:2630 -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" -" purge - Remove and purge 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:114 -#, fuzzy -msgid "Failed to create pipes" -msgstr "%s ji hev nehate veçirandin" - -#: apt-inst/contrib/extracttar.cc:141 -#, fuzzy -msgid "Failed to exec gzip " -msgstr "%s ji hev nehate veçirandin" - -#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204 -msgid "Corrupted archive" -msgstr "" - -#: apt-inst/contrib/extracttar.cc:193 -msgid "Tar checksum failed, archive corrupted" -msgstr "" - -#: apt-inst/contrib/extracttar.cc:296 -#, c-format -msgid "Unknown TAR header type %u, member %s" -msgstr "" - -#: apt-inst/contrib/arfile.cc:70 -msgid "Invalid archive signature" -msgstr "" - -#: apt-inst/contrib/arfile.cc:78 -msgid "Error reading archive member header" -msgstr "" - -#: apt-inst/contrib/arfile.cc:90 apt-inst/contrib/arfile.cc:102 -msgid "Invalid archive member header" -msgstr "" - -#: apt-inst/contrib/arfile.cc:128 -#, fuzzy -msgid "Archive is too short" -msgstr "Tomara kontrola arşîvê tuneye" - -#: apt-inst/contrib/arfile.cc:132 -msgid "Failed to read the archive headers" -msgstr "" - -#: apt-inst/filelist.cc:380 -msgid "DropNode called on still linked node" -msgstr "" - -#: apt-inst/filelist.cc:412 -msgid "Failed to locate the hash element!" -msgstr "" - -#: apt-inst/filelist.cc:459 -#, fuzzy -msgid "Failed to allocate diversion" -msgstr "%s venebû" - -#: apt-inst/filelist.cc:464 -msgid "Internal error in AddDiversion" -msgstr "" - -#: apt-inst/filelist.cc:477 -#, c-format -msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" -msgstr "" - -#: apt-inst/filelist.cc:506 -#, c-format -msgid "Double add of diversion %s -> %s" -msgstr "" - -#: apt-inst/filelist.cc:549 -#, c-format -msgid "Duplicate conf file %s/%s" -msgstr "" - -#: apt-inst/dirstream.cc:41 apt-inst/dirstream.cc:46 apt-inst/dirstream.cc:49 -#, fuzzy, c-format -msgid "Failed to write file %s" -msgstr "%s ji hev nehate veçirandin" - -#: apt-inst/dirstream.cc:92 apt-inst/dirstream.cc:100 -#, fuzzy, c-format -msgid "Failed to close file %s" -msgstr "%s venebû" - -#: apt-inst/extract.cc:93 apt-inst/extract.cc:164 -#, 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:124 -#, c-format -msgid "Unpacking %s more than once" -msgstr "" - -#: apt-inst/extract.cc:134 -#, c-format -msgid "The directory %s is diverted" -msgstr "" - -#: apt-inst/extract.cc:144 -#, c-format -msgid "The package is trying to write to the diversion target %s/%s" -msgstr "" - -#: apt-inst/extract.cc:154 apt-inst/extract.cc:297 -#, fuzzy -msgid "The diversion path is too long" -msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e" - -#: apt-inst/extract.cc:240 -#, c-format -msgid "The directory %s is being replaced by a non-directory" -msgstr "" - -#: apt-inst/extract.cc:280 -msgid "Failed to locate node in its hash bucket" -msgstr "" - -#: apt-inst/extract.cc:284 -msgid "The path is too long" -msgstr "" - -#: apt-inst/extract.cc:414 -#, c-format -msgid "Overwrite package match with no version for %s" -msgstr "" - -#: apt-inst/extract.cc:431 -#, c-format -msgid "File %s/%s overwrites the one in the package %s" -msgstr "" - -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:748 -#: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 -#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 -#, fuzzy, c-format -msgid "Unable to read %s" -msgstr "%s venebû" - -#: apt-inst/extract.cc:491 -#, fuzzy, c-format -msgid "Unable to stat %s" -msgstr "Nivîsandin ji bo %s ne pêkane" - -#: apt-inst/deb/dpkgdb.cc:51 apt-inst/deb/dpkgdb.cc:57 -#, fuzzy, c-format -msgid "Failed to remove %s" -msgstr "%s ji hev nehate veçirandin" - -#: apt-inst/deb/dpkgdb.cc:106 apt-inst/deb/dpkgdb.cc:108 -#, fuzzy, c-format -msgid "Unable to create %s" -msgstr "Nivîsandin ji bo %s ne pêkane" - -#: apt-inst/deb/dpkgdb.cc:114 -#, fuzzy, c-format -msgid "Failed to stat %sinfo" -msgstr "%s venebû" - -#: apt-inst/deb/dpkgdb.cc:119 -msgid "The info and temp directories need to be on the same filesystem" -msgstr "" - -#. Build the status cache -#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:748 -#: apt-pkg/pkgcachegen.cc:817 apt-pkg/pkgcachegen.cc:822 -#: apt-pkg/pkgcachegen.cc:945 -#, fuzzy -msgid "Reading package lists" -msgstr "Paketên şikestî" - -#: apt-inst/deb/dpkgdb.cc:176 -#, c-format -msgid "Failed to change to the admin dir %sinfo" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:197 apt-inst/deb/dpkgdb.cc:351 -#: apt-inst/deb/dpkgdb.cc:444 -msgid "Internal error getting a package name" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:382 -msgid "Reading file listing" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:212 -#, 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:225 apt-inst/deb/dpkgdb.cc:238 -#, c-format -msgid "Failed reading the list file %sinfo/%s" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:262 -msgid "Internal error getting a node" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:305 -#, c-format -msgid "Failed to open the diversions file %sdiversions" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:320 -msgid "The diversion file is corrupted" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:327 apt-inst/deb/dpkgdb.cc:332 -#: apt-inst/deb/dpkgdb.cc:337 -#, c-format -msgid "Invalid line in the diversion file: %s" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:358 -msgid "Internal error adding a diversion" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:379 -msgid "The pkg cache must be initialized first" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:439 -#, c-format -msgid "Failed to find a Package: header, offset %lu" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:461 -#, c-format -msgid "Bad ConfFile section in the status file. Offset %lu" -msgstr "" - -#: apt-inst/deb/dpkgdb.cc:466 -#, c-format -msgid "Error parsing MD5. Offset %lu" -msgstr "" - -#: apt-inst/deb/debfile.cc:38 apt-inst/deb/debfile.cc:43 -#, c-format -msgid "This is not a valid DEB archive, missing '%s' member" -msgstr "" - -#: apt-inst/deb/debfile.cc:48 -#, c-format -msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" -msgstr "" - -#: apt-inst/deb/debfile.cc:108 -#, c-format -msgid "Couldn't change to %s" -msgstr "" - -#: apt-inst/deb/debfile.cc:134 -msgid "Internal error, could not locate member" -msgstr "" - -#: apt-inst/deb/debfile.cc:167 -msgid "Failed to locate a valid control file" -msgstr "" - -#: apt-inst/deb/debfile.cc:252 -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:166 -#, c-format -msgid "Unable to unmount the CD-ROM in %s, it may still be in use." -msgstr "" - -#: methods/cdrom.cc:171 -#, fuzzy -msgid "Disk not found." -msgstr "(nehate dîtin)" - -#: methods/cdrom.cc:179 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:141 -#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 -#, fuzzy -msgid "Failed to stat" -msgstr "%s venebû" - -#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 -#: methods/rred.cc:240 -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:469 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:508 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:959 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:64 -#, c-format -msgid "Couldn't open pipe for %s" -msgstr "" - -#: methods/gzip.cc:109 -#, c-format -msgid "Read error from %s process" -msgstr "" - -#: methods/http.cc:377 -msgid "Waiting for headers" -msgstr "" - -#: methods/http.cc:523 -#, c-format -msgid "Got a single header line over %u chars" -msgstr "" - -#: methods/http.cc:531 -msgid "Bad header line" -msgstr "" - -#: methods/http.cc:550 methods/http.cc:557 -msgid "The HTTP server sent an invalid reply header" -msgstr "" - -#: methods/http.cc:586 -msgid "The HTTP server sent an invalid Content-Length header" -msgstr "" - -#: methods/http.cc:601 -msgid "The HTTP server sent an invalid Content-Range header" -msgstr "" - -#: methods/http.cc:603 -msgid "This HTTP server has broken range support" -msgstr "" - -#: methods/http.cc:627 -msgid "Unknown date format" -msgstr "" - -#: methods/http.cc:774 -#, fuzzy -msgid "Select failed" -msgstr " neserketî." - -#: methods/http.cc:779 -msgid "Connection timed out" -msgstr "" - -#: methods/http.cc:802 -#, fuzzy -msgid "Error writing to output file" -msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" - -#: methods/http.cc:833 -#, fuzzy -msgid "Error writing to file" -msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" - -#: methods/http.cc:861 -#, fuzzy -msgid "Error writing to the file" -msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî" - -#: methods/http.cc:875 -msgid "Error reading from server. Remote end closed connection" -msgstr "" - -#: methods/http.cc:877 -msgid "Error reading from server" -msgstr "" - -#: methods/http.cc:1108 -msgid "Bad header data" -msgstr "" - -#: methods/http.cc:1125 -msgid "Connection failed" -msgstr "" - -#: methods/http.cc:1216 -msgid "Internal error" -msgstr "" - -#: apt-pkg/contrib/mmap.cc:78 -msgid "Can't mmap an empty file" -msgstr "" - -#: apt-pkg/contrib/mmap.cc:83 -#, c-format -msgid "Couldn't make mmap of %lu bytes" -msgstr "" - -#: apt-pkg/contrib/strutl.cc:978 -#, c-format -msgid "Selection %s not found" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:434 -#, c-format -msgid "Unrecognized type abbreviation: '%c'" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:492 -#, c-format -msgid "Opening configuration file %s" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:510 -#, c-format -msgid "Line %d too long (max %lu)" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:606 -#, c-format -msgid "Syntax error %s:%u: Block starts with no name." -msgstr "" - -#: apt-pkg/contrib/configuration.cc:625 -#, c-format -msgid "Syntax error %s:%u: Malformed tag" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:642 -#, c-format -msgid "Syntax error %s:%u: Extra junk after value" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:682 -#, c-format -msgid "Syntax error %s:%u: Directives can only be done at the top level" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:689 -#, c-format -msgid "Syntax error %s:%u: Too many nested includes" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:693 apt-pkg/contrib/configuration.cc:698 -#, c-format -msgid "Syntax error %s:%u: Included from here" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:702 -#, c-format -msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "" - -#: apt-pkg/contrib/configuration.cc:736 -#, c-format -msgid "Syntax error %s:%u: Extra junk at end of file" -msgstr "" - -#: apt-pkg/contrib/progress.cc:152 -#, c-format -msgid "%c%s... Error!" -msgstr "" - -#: apt-pkg/contrib/progress.cc:154 -#, c-format -msgid "%c%s... Done" -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:77 -#, c-format -msgid "Command line option '%c' [from %s] is not known." -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111 -#: apt-pkg/contrib/cmndline.cc:119 -#, c-format -msgid "Command line option %s is not understood" -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:124 -#, c-format -msgid "Command line option %s is not boolean" -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:163 apt-pkg/contrib/cmndline.cc:184 -#, c-format -msgid "Option %s requires an argument." -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:198 apt-pkg/contrib/cmndline.cc:204 -#, c-format -msgid "Option %s: Configuration item specification must have an =<val>." -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:234 -#, c-format -msgid "Option %s requires an integer argument, not '%s'" -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:265 -#, 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:298 -#, c-format -msgid "Sense %s is not understood, try true or false." -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:348 -#, c-format -msgid "Invalid operation %s" -msgstr "" - -#: apt-pkg/contrib/cdromutl.cc:52 -#, 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:146 apt-pkg/acquire.cc:424 apt-pkg/clean.cc:40 -#, fuzzy, c-format -msgid "Unable to change to %s" -msgstr "Nivîsandin ji bo %s ne pêkane" - -#: apt-pkg/contrib/cdromutl.cc:187 -msgid "Failed to stat the cdrom" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:80 -#, c-format -msgid "Not using locking for read only lock file %s" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:85 -#, fuzzy, c-format -msgid "Could not open lock file %s" -msgstr "Danegira %s nehate vekirin: %s" - -#: apt-pkg/contrib/fileutl.cc:103 -#, c-format -msgid "Not using locking for nfs mounted lock file %s" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:107 -#, c-format -msgid "Could not get lock %s" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:375 -#, c-format -msgid "Waited for %s but it wasn't there" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:385 -#, c-format -msgid "Sub-process %s received a segmentation fault." -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:388 -#, c-format -msgid "Sub-process %s returned an error code (%u)" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:390 -#, c-format -msgid "Sub-process %s exited unexpectedly" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:434 -#, fuzzy, c-format -msgid "Could not open file %s" -msgstr "Danegira %s nehate vekirin: %s" - -#: apt-pkg/contrib/fileutl.cc:490 -#, c-format -msgid "read, still have %lu to read but none left" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:520 -#, c-format -msgid "write, still have %lu to write but couldn't" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:595 -msgid "Problem closing the file" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:601 -msgid "Problem unlinking the file" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:612 -msgid "Problem syncing the file" -msgstr "" - -#: apt-pkg/pkgcache.cc:132 -msgid "Empty package cache" -msgstr "" - -#: apt-pkg/pkgcache.cc:138 -msgid "The package cache file is corrupted" -msgstr "" - -#: apt-pkg/pkgcache.cc:143 -msgid "The package cache file is an incompatible version" -msgstr "" - -#: apt-pkg/pkgcache.cc:148 -#, c-format -msgid "This APT does not support the versioning system '%s'" -msgstr "" - -#: apt-pkg/pkgcache.cc:153 -msgid "The package cache was built for a different architecture" -msgstr "" - -#: apt-pkg/pkgcache.cc:224 -msgid "Depends" -msgstr "" - -#: apt-pkg/pkgcache.cc:224 -msgid "PreDepends" -msgstr "" - -#: apt-pkg/pkgcache.cc:224 -msgid "Suggests" -msgstr "" - -#: apt-pkg/pkgcache.cc:225 -#, fuzzy -msgid "Recommends" -msgstr "Paketên tên tawsiyê kirin:" - -#: apt-pkg/pkgcache.cc:225 -msgid "Conflicts" -msgstr "" - -#: apt-pkg/pkgcache.cc:225 -msgid "Replaces" -msgstr "" - -#: apt-pkg/pkgcache.cc:226 -msgid "Obsoletes" -msgstr "" - -#: apt-pkg/pkgcache.cc:226 -msgid "Breaks" -msgstr "" - -#: apt-pkg/pkgcache.cc:237 -msgid "important" -msgstr "" - -#: apt-pkg/pkgcache.cc:237 -msgid "required" -msgstr "" - -#: apt-pkg/pkgcache.cc:237 -msgid "standard" -msgstr "" - -#: apt-pkg/pkgcache.cc:238 -msgid "optional" -msgstr "" - -#: apt-pkg/pkgcache.cc:238 -msgid "extra" -msgstr "" - -#: apt-pkg/depcache.cc:100 apt-pkg/depcache.cc:129 -msgid "Building dependency tree" -msgstr "" - -#: apt-pkg/depcache.cc:101 -#, fuzzy -msgid "Candidate versions" -msgstr " Berendam: " - -#: apt-pkg/depcache.cc:130 -msgid "Dependency generation" -msgstr "" - -#: apt-pkg/depcache.cc:151 apt-pkg/depcache.cc:170 apt-pkg/depcache.cc:174 -msgid "Reading state information" -msgstr "" - -#: apt-pkg/depcache.cc:198 -#, fuzzy, c-format -msgid "Failed to open StateFile %s" -msgstr "%s venebû" - -#: apt-pkg/depcache.cc:204 -#, fuzzy, c-format -msgid "Failed to write temporary StateFile %s" -msgstr "%s ji hev nehate veçirandin" - -#: apt-pkg/tagfile.cc:102 -#, fuzzy, c-format -msgid "Unable to parse package file %s (1)" -msgstr "Pakêt nehate dîtin %s" - -#: apt-pkg/tagfile.cc:189 -#, fuzzy, c-format -msgid "Unable to parse package file %s (2)" -msgstr "Pakêt nehate dîtin %s" - -#: apt-pkg/sourcelist.cc:90 -#, c-format -msgid "Malformed line %lu in source list %s (URI)" -msgstr "" - -#: apt-pkg/sourcelist.cc:92 -#, c-format -msgid "Malformed line %lu in source list %s (dist)" -msgstr "" - -#: apt-pkg/sourcelist.cc:95 -#, c-format -msgid "Malformed line %lu in source list %s (URI parse)" -msgstr "" - -#: apt-pkg/sourcelist.cc:101 -#, c-format -msgid "Malformed line %lu in source list %s (absolute dist)" -msgstr "" - -#: apt-pkg/sourcelist.cc:108 -#, c-format -msgid "Malformed line %lu in source list %s (dist parse)" -msgstr "" - -#: apt-pkg/sourcelist.cc:199 -#, c-format -msgid "Opening %s" -msgstr "" - -#: apt-pkg/sourcelist.cc:216 apt-pkg/cdrom.cc:448 -#, c-format -msgid "Line %u too long in source list %s." -msgstr "" - -#: apt-pkg/sourcelist.cc:236 -#, c-format -msgid "Malformed line %u in source list %s (type)" -msgstr "" - -#: apt-pkg/sourcelist.cc:240 -#, c-format -msgid "Type '%s' is not known on line %u in source list %s" -msgstr "" - -#: apt-pkg/sourcelist.cc:248 apt-pkg/sourcelist.cc:251 -#, c-format -msgid "Malformed line %u in source list %s (vendor id)" -msgstr "" - -#: apt-pkg/packagemanager.cc:399 -#, 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:32 -#, c-format -msgid "Index file type '%s' is not supported" -msgstr "" - -#: apt-pkg/algorithms.cc:247 -#, c-format -msgid "" -"The package %s needs to be reinstalled, but I can't find an archive for it." -msgstr "" - -#: apt-pkg/algorithms.cc:1103 -msgid "" -"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " -"held packages." -msgstr "" - -#: apt-pkg/algorithms.cc:1105 -msgid "Unable to correct problems, you have held broken packages." -msgstr "" - -#: apt-pkg/acquire.cc:59 -#, c-format -msgid "Lists directory %spartial is missing." -msgstr "" - -#: apt-pkg/acquire.cc:63 -#, c-format -msgid "Archive directory %spartial is missing." -msgstr "" - -#. only show the ETA if it makes sense -#. two days -#: apt-pkg/acquire.cc:827 -#, c-format -msgid "Retrieving file %li of %li (%s remaining)" -msgstr "" - -#: apt-pkg/acquire.cc:829 -#, c-format -msgid "Retrieving file %li of %li" -msgstr "" - -#: apt-pkg/acquire-worker.cc:110 -#, c-format -msgid "The method driver %s could not be found." -msgstr "" - -#: apt-pkg/acquire-worker.cc:159 -#, c-format -msgid "Method %s did not start correctly" -msgstr "" - -#: apt-pkg/acquire-worker.cc:381 -#, 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:126 -#, c-format -msgid "Packaging system '%s' is not supported" -msgstr "" - -#: apt-pkg/init.cc:142 -msgid "Unable to determine a suitable packaging system type" -msgstr "" - -#: apt-pkg/clean.cc:57 -#, fuzzy, c-format -msgid "Unable to stat %s." -msgstr "Nivîsandin ji bo %s ne pêkane" - -#: apt-pkg/srcrecords.cc:44 -msgid "You must put some 'source' URIs in your sources.list" -msgstr "" - -#: apt-pkg/cachefile.cc:69 -msgid "The package lists or status file could not be parsed or opened." -msgstr "" - -#: apt-pkg/cachefile.cc:73 -msgid "You may want to run apt-get update to correct these problems" -msgstr "" - -#: apt-pkg/policy.cc:267 -msgid "Invalid record in the preferences file, no Package header" -msgstr "" - -#: apt-pkg/policy.cc:289 -#, c-format -msgid "Did not understand pin type %s" -msgstr "" - -#: apt-pkg/policy.cc:297 -msgid "No priority (or zero) specified for pin" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:72 -msgid "Cache has an incompatible versioning system" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:115 -#, c-format -msgid "Error occurred while processing %s (NewPackage)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:130 -#, c-format -msgid "Error occurred while processing %s (UsePackage1)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:153 -#, c-format -msgid "Error occurred while processing %s (NewFileDesc1)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:178 -#, c-format -msgid "Error occurred while processing %s (UsePackage2)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:182 -#, c-format -msgid "Error occurred while processing %s (NewFileVer1)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:213 -#, c-format -msgid "Error occurred while processing %s (NewVersion1)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:217 -#, c-format -msgid "Error occurred while processing %s (UsePackage3)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:221 -#, c-format -msgid "Error occurred while processing %s (NewVersion2)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:245 -#, c-format -msgid "Error occurred while processing %s (NewFileDesc2)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:251 -msgid "Wow, you exceeded the number of package names this APT is capable of." -msgstr "" - -#: apt-pkg/pkgcachegen.cc:254 -msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "" - -#: apt-pkg/pkgcachegen.cc:257 -msgid "Wow, you exceeded the number of descriptions this APT is capable of." -msgstr "" - -#: apt-pkg/pkgcachegen.cc:260 -msgid "Wow, you exceeded the number of dependencies this APT is capable of." -msgstr "" - -#: apt-pkg/pkgcachegen.cc:288 -#, c-format -msgid "Error occurred while processing %s (FindPkg)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:301 -#, c-format -msgid "Error occurred while processing %s (CollectFileProvides)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:307 -#, c-format -msgid "Package %s %s was not found while processing file dependencies" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:678 -#, c-format -msgid "Couldn't stat source package list %s" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:763 -msgid "Collecting File Provides" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:890 apt-pkg/pkgcachegen.cc:897 -msgid "IO Error saving source cache" -msgstr "" - -#: apt-pkg/acquire-item.cc:127 -#, c-format -msgid "rename failed, %s (%s -> %s)." -msgstr "" - -#: apt-pkg/acquire-item.cc:406 apt-pkg/acquire-item.cc:661 -#: apt-pkg/acquire-item.cc:1411 -msgid "MD5Sum mismatch" -msgstr "" - -#: apt-pkg/acquire-item.cc:1106 -msgid "There is no public key available for the following key IDs:\n" -msgstr "" - -#: apt-pkg/acquire-item.cc:1219 -#, 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:1278 -#, 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:1314 -#, c-format -msgid "" -"The package index files are corrupted. No Filename: field for package %s." -msgstr "" - -#: apt-pkg/acquire-item.cc:1401 -msgid "Size mismatch" -msgstr "" - -#: apt-pkg/vendorlist.cc:66 -#, c-format -msgid "Vendor block %s contains no fingerprint" -msgstr "" - -#: apt-pkg/cdrom.cc:529 -#, c-format -msgid "" -"Using CD-ROM mount point %s\n" -"Mounting CD-ROM\n" -msgstr "" - -#: apt-pkg/cdrom.cc:538 apt-pkg/cdrom.cc:620 -msgid "Identifying.. " -msgstr "" - -#: apt-pkg/cdrom.cc:563 -#, c-format -msgid "Stored label: %s \n" -msgstr "" - -#: apt-pkg/cdrom.cc:583 -#, c-format -msgid "Using CD-ROM mount point %s\n" -msgstr "" - -#: apt-pkg/cdrom.cc:601 -msgid "Unmounting CD-ROM\n" -msgstr "" - -#: apt-pkg/cdrom.cc:605 -msgid "Waiting for disc...\n" -msgstr "" - -#. Mount the new CDROM -#: apt-pkg/cdrom.cc:613 -msgid "Mounting CD-ROM...\n" -msgstr "" - -#: apt-pkg/cdrom.cc:631 -msgid "Scanning disc for index files..\n" -msgstr "" - -#: apt-pkg/cdrom.cc:671 -#, c-format -msgid "" -"Found %i package indexes, %i source indexes, %i translation indexes and %i " -"signatures\n" -msgstr "" - -#: apt-pkg/cdrom.cc:708 -#, c-format -msgid "Found label '%s'\n" -msgstr "" - -#: apt-pkg/cdrom.cc:737 -msgid "That is not a valid name, try again.\n" -msgstr "" - -#: apt-pkg/cdrom.cc:753 -#, c-format -msgid "" -"This disc is called: \n" -"'%s'\n" -msgstr "" - -#: apt-pkg/cdrom.cc:757 -msgid "Copying package lists..." -msgstr "" - -#: apt-pkg/cdrom.cc:783 -msgid "Writing new source list\n" -msgstr "" - -#: apt-pkg/cdrom.cc:792 -msgid "Source list entries for this disc are:\n" -msgstr "" - -#: apt-pkg/cdrom.cc:834 -msgid "Unmounting CD-ROM...\n" -msgstr "" - -#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830 -#, c-format -msgid "Wrote %i records.\n" -msgstr "" - -#: 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:268 apt-pkg/indexcopy.cc:835 -#, c-format -msgid "Wrote %i records with %i mismatched files\n" -msgstr "" - -#: 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 "" - -#: apt-pkg/deb/dpkgpm.cc:355 -#, c-format -msgid "Preparing %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:356 -#, c-format -msgid "Unpacking %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:361 -#, c-format -msgid "Preparing to configure %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:362 -#, c-format -msgid "Configuring %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:363 -#, fuzzy, c-format -msgid "Installed %s" -msgstr " Sazkirî: " - -#: apt-pkg/deb/dpkgpm.cc:368 -#, c-format -msgid "Preparing for removal of %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:369 -#, c-format -msgid "Removing %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:370 -#, c-format -msgid "Removed %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:375 -#, c-format -msgid "Preparing to completely remove %s" -msgstr "" - -#: apt-pkg/deb/dpkgpm.cc:376 -#, c-format -msgid "Completely removed %s" -msgstr "" - -#: methods/rred.cc:219 -#, fuzzy -msgid "Could not patch file" -msgstr "Danegira %s nehate vekirin: %s" - -#: methods/rsh.cc:330 -msgid "Connection closed prematurely" -msgstr "" diff --git a/po/uk.po b/po/uk.po deleted file mode 100644 index 6291cb807..000000000 --- a/po/uk.po +++ /dev/null @@ -1,2897 +0,0 @@ -# translation of apt-all.po to Українська -# This file is put in the public domain. -# -# Artem Bondarenko <artem.brz@gmail.com>, 2006. -msgid "" -msgstr "" -"Project-Id-Version: apt-all\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-07-06 06:51+0200\n" -"PO-Revision-Date: 2006-07-29 15:57+0300\n" -"Last-Translator: Artem Bondarenko <artem.brz@gmail.com>\n" -"Language-Team: Українська <uk@li.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.1\n" - -#: cmdline/apt-cache.cc:143 -#, c-format -msgid "Package %s version %s has an unmet dep:\n" -msgstr "Пакунок %s версії %s має незадоволену залежність:\n" - -#: cmdline/apt-cache.cc:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640 -#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018 -#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570 -#, c-format -msgid "Unable to locate package %s" -msgstr "Не можу знайти пакунок %s" - -#: cmdline/apt-cache.cc:247 -msgid "Total package names : " -msgstr "Всього імен пакунків : " - -#: cmdline/apt-cache.cc:287 -msgid " Normal packages: " -msgstr " Нормальних пакунків: " - -#: cmdline/apt-cache.cc:288 -msgid " Pure virtual packages: " -msgstr " Чисто віртуальних пакунків: " - -#: cmdline/apt-cache.cc:289 -msgid " Single virtual packages: " -msgstr " Окремих віртуальних пакунків: " - -#: cmdline/apt-cache.cc:290 -msgid " Mixed virtual packages: " -msgstr " Змішаних віртуальних пакунків: " - -#: cmdline/apt-cache.cc:291 -msgid " Missing: " -msgstr " Пропущено: " - -#: cmdline/apt-cache.cc:293 -msgid "Total distinct versions: " -msgstr "Всього унікальних версій: " - -#: cmdline/apt-cache.cc:295 -#, fuzzy -msgid "Total Distinct Descriptions: " -msgstr "Всього унікальних версій: " - -#: cmdline/apt-cache.cc:297 -msgid "Total dependencies: " -msgstr "Всього залежностей: " - -#: cmdline/apt-cache.cc:300 -msgid "Total ver/file relations: " -msgstr "Всього відносин Версія/Файл: " - -#: cmdline/apt-cache.cc:302 -#, fuzzy -msgid "Total Desc/File relations: " -msgstr "Всього відносин Версія/Файл: " - -#: cmdline/apt-cache.cc:304 -msgid "Total Provides mappings: " -msgstr "Всього відносин Provides: " - -#: cmdline/apt-cache.cc:316 -msgid "Total globbed strings: " -msgstr "Всього розгорнутих рядків: " - -#: cmdline/apt-cache.cc:330 -msgid "Total dependency version space: " -msgstr "Всього інформації про залежності: " - -#: cmdline/apt-cache.cc:335 -msgid "Total slack space: " -msgstr "Порожнього місця в кеші: " - -#: cmdline/apt-cache.cc:343 -msgid "Total space accounted for: " -msgstr "Загальний простір полічений для: " - -#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218 -#, c-format -msgid "Package file %s is out of sync." -msgstr "Перелік пакунків %s розсинхронізований." - -#: cmdline/apt-cache.cc:1293 -msgid "You must give exactly one pattern" -msgstr "Ви повинні задати рівно один шаблон" - -#: cmdline/apt-cache.cc:1447 -msgid "No packages found" -msgstr "Не знайдено жодного пакунка" - -#: cmdline/apt-cache.cc:1524 -msgid "Package files:" -msgstr "Переліки пакунків:" - -#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617 -msgid "Cache is out of sync, can't x-ref a package file" -msgstr "Кеш не синхронізований, неможливо знайти посилання на перелік пакунків" - -#: cmdline/apt-cache.cc:1532 -#, c-format -msgid "%4i %s\n" -msgstr "%4i %s\n" - -#. Show any packages have explicit pins -#: cmdline/apt-cache.cc:1544 -msgid "Pinned packages:" -msgstr "Зафіксовані пакунки:" - -#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 -msgid "(not found)" -msgstr "(не знайдено)" - -#. Installed version -#: cmdline/apt-cache.cc:1577 -msgid " Installed: " -msgstr " Встановлено: " - -#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 -msgid "(none)" -msgstr "(відсутній)" - -#. Candidate Version -#: cmdline/apt-cache.cc:1584 -msgid " Candidate: " -msgstr " Кандидат: " - -#: cmdline/apt-cache.cc:1594 -msgid " Package pin: " -msgstr " Фіксатор(pin) пакунка: " - -#. Show the priority tables -#: cmdline/apt-cache.cc:1603 -msgid " Version table:" -msgstr " Таблиця версій:" - -#: cmdline/apt-cache.cc:1618 -#, c-format -msgid " %4i %s\n" -msgstr " %4i %s\n" - -#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 -#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547 -#: cmdline/apt-get.cc:2584 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" - -#: cmdline/apt-cache.cc:1721 -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 "" -"Використання: apt-cache [options] command\n" -" або: apt-cache [options] add file1 [file1 ...]\n" -" або: apt-cache [options] showpkg pkg1 [pkg2 ...]\n" -" або: apt-cache [options] showsrc pkg1 [pkg2 ...]\n" -"\n" -"apt-cache - низькорівневий інструмент, що використається для керування\n" -"двійковими кеш-файлами APT'а, а також для добування інформації з них\n" -"Команди:\n" -" add - додати файл пакунка в кеш джерел\n" -" gencaches - побудувати обидва кеша пакунків - бінарних і з вихідними " -"текстами\n" -" showpkg - загальна інформація про конкретний пакунок\n" -" stats - основна статистика\n" -" dump - показати весь файл у стислій формі\n" -" dumpavail - видати на stdout список доступних пакунків\n" -" unmet - показати незадоволені залежності\n" -" search - знайти пакунки, назва яких задовольняє регулярний вираз\n" -" show - показати інформацію про пакунок в зрозумілій формі\n" -" depends - показати інформацію про залежності пакунка построково\n" -" rdepends - показати інформацію про зворотні залежності пакунка\n" -" pkgnames - показати імена всіх пакунків\n" -" dotty - генерувати граф залежностей пакунків у форматі GraphVis\n" -" xvcg - генерувати граф залежностей пакунків у форматі xvcg\n" -" policy - показати поточну політику вибору пакунків\n" -"\n" -"Опції:\n" -" -h Цей текст.\n" -" -p=? Кеш пакунків.\n" -" -s=? Кеш джерел.\n" -" -q Не показувати індикатор прогресу.\n" -" -i Показувати тільки важливі залежності для команди unmet.\n" -" -c=? Читати зазначений файл конфігурації.\n" -" -o=? Встановити довільну опцію конфігурації, наприклад, -o dir::cache=/" -"tmp\n" -"Подробиці в сторінках керівництва apt-cache(8) і apt.conf(5).\n" - -#: cmdline/apt-cdrom.cc:78 -msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" -msgstr "Задайте назву для цього диска, наприклад 'Debian 2.1r1 Disk 1'" - -#: cmdline/apt-cdrom.cc:93 -msgid "Please insert a Disc in the drive and press enter" -msgstr "Вставте диск у пристрій і натисніть Ввід" - -#: cmdline/apt-cdrom.cc:117 -msgid "Repeat this process for the rest of the CDs in your set." -msgstr "Повторіть цей процес для інших наявних CD." - -#: 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 "" -"Використання: apt-config [options] command\n" -"\n" -"apt-config - простий інструмент для читання конфігураційного файлу APT\n" -"\n" -"Команди:\n" -" shell - режим shell\n" -" dump - показати конфігурацію\n" -"\n" -"Опції:\n" -" -h Цей текст.\n" -" -с=? Читати зазначений конфігураційний файл.\n" -" -o=? Встановити довільну опцію, наприклад, -o dir::cache=/tmp\n" - -#: cmdline/apt-extracttemplates.cc:98 -#, c-format -msgid "%s not a valid DEB package." -msgstr "%s не є правильним DEB-пакунком." - -#: 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 "" -"Використання: apt-extracttemplates file1 [file2 ...]\n" -"\n" -"apt-extracttemplates витягує з пакунків Debian конфігураційні скрипти\n" -"і файли-шаблони\n" -"\n" -"Опції:\n" -" -h Цей текст\n" -" -t Встановити теку для тимчасових файлів\n" -" -c=? Читати зазначений конфігураційний файл\n" -" -o=? Вказати довільну опцію, наприклад, -o dir::cache=/tmp\n" - -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:815 -#, c-format -msgid "Unable to write to %s" -msgstr "Неможливо записати в %s" - -#: cmdline/apt-extracttemplates.cc:310 -msgid "Cannot get debconf version. Is debconf installed?" -msgstr "Неможливо визначити версію debconf. Він встановлений?" - -#: ftparchive/apt-ftparchive.cc:164 ftparchive/apt-ftparchive.cc:338 -msgid "Package extension list is too long" -msgstr "Список розширень, припустимих для пакунків, занадто довгий" - -#: ftparchive/apt-ftparchive.cc:166 ftparchive/apt-ftparchive.cc:180 -#: ftparchive/apt-ftparchive.cc:203 ftparchive/apt-ftparchive.cc:253 -#: ftparchive/apt-ftparchive.cc:267 ftparchive/apt-ftparchive.cc:289 -#, c-format -msgid "Error processing directory %s" -msgstr "Помилка обробки течи %s" - -#: ftparchive/apt-ftparchive.cc:251 -msgid "Source extension list is too long" -msgstr "" -"Список розширень, припустимих для пакунків з вихідними текстами, занадто " -"довгий" - -#: ftparchive/apt-ftparchive.cc:368 -msgid "Error writing header to contents file" -msgstr "Помилка запису заголовка в повний перелік вмісту пакунків (Contents)" - -#: ftparchive/apt-ftparchive.cc:398 -#, c-format -msgid "Error processing contents %s" -msgstr "помилка обробки повного переліку вмісту пакунків (Contents) %s" - -#: ftparchive/apt-ftparchive.cc:553 -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 "" -"Використання: apt-ftparchive [параметри] команда\n" -"Команди: 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 генерує індексні файли архівів Debian. Він підтримує\n" -"безліч стилів генерації: від повністю автоматичного до функціональної " -"заміни\n" -"програм dpkg-scanpackages і dpkg-scansources\n" -"\n" -"apt-ftparchive генерує файли Package (переліки пакунків) для дерева\n" -"тек, що містять файли .deb. Файл Package містить у собі керуючі\n" -"поля кожного пакунка, а також хеш MD5 і розмір файлу. Значення керуючих\n" -"полів \"пріоритет\" (Priority) і \"секція\" (Section) можуть бути змінені з\n" -"допомогою файлу override.\n" -"\n" -"Крім того, apt-ftparchive може генерувати файли Sources з дерева\n" -"тек, що містять файли .dsc. Для вказівки файлу override у цьому \n" -"режимі можна використати параметр --source-override.\n" -"\n" -"Команди 'packages' і 'sources' треба виконувати, перебуваючи в кореневій " -"теці\n" -"дерева, що ви хочете обробити. BinaryPath повинен вказувати на місце,\n" -"з якого починається рекурсивний обхід, а файл перепризначень (override)\n" -"повинен містити запис про перепризначення керуючих полів. Якщо був " -"зазначений\n" -"Pathprefix, то його значення додається до керуючих полів, що містять\n" -"імена файлів. Приклад використання для архіву Debian:\n" -" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" -" dists/potato/main/binary-i386/Packages\n" -"\n" -"Параметри:\n" -" -h Цей текст\n" -" --md5 Керування генерацією MD5-хешів\n" -" -s=? Вказати файл перепризначень (override) для пакунків з вихідними " -"текстами\n" -" -q Не виводити повідомлення в процесі роботи\n" -" -d=? Вказати кешуючу базу даних (не обов'язково)\n" -" --no-delink Включити режим налагодження процесу видалення файлів\n" -" --contents Керування генерацією повного переліку вмісту пакунків\n" -" (файлу Contents)\n" -" -c=? Використати зазначений конфігураційний файл\n" -" -o=? Вказати довільний параметр конфігурації" - -#: ftparchive/apt-ftparchive.cc:759 -msgid "No selections matched" -msgstr "Збігів не виявлено" - -#: ftparchive/apt-ftparchive.cc:832 -#, c-format -msgid "Some files are missing in the package file group `%s'" -msgstr "У групі пакунків '%s' відсутні деякі файли" - -#: ftparchive/cachedb.cc:43 -#, c-format -msgid "DB was corrupted, file renamed to %s.old" -msgstr "БД була пошкоджена, файл перейменований в %s.old" - -#: ftparchive/cachedb.cc:61 -#, c-format -msgid "DB is old, attempting to upgrade %s" -msgstr "DB застаріла, намагаюсь оновити %s" - -#: ftparchive/cachedb.cc:72 -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:77 -#, c-format -msgid "Unable to open DB file %s: %s" -msgstr "Не вдалося відкрити DB файл %s: %s" - -#: ftparchive/cachedb.cc:123 apt-inst/extract.cc:178 apt-inst/extract.cc:190 -#: apt-inst/extract.cc:207 apt-inst/deb/dpkgdb.cc:117 methods/gpgv.cc:272 -#, c-format -msgid "Failed to stat %s" -msgstr "Не вдалося одержати атрибути %s" - -#: ftparchive/cachedb.cc:238 -msgid "Archive has no control record" -msgstr "В архіві немає поля control" - -#: ftparchive/cachedb.cc:444 -msgid "Unable to get a cursor" -msgstr "Неможливо одержати курсор" - -#: ftparchive/writer.cc:75 -#, c-format -msgid "W: Unable to read directory %s\n" -msgstr "W: Не вдалося прочитати теку %s\n" - -#: ftparchive/writer.cc:80 -#, c-format -msgid "W: Unable to stat %s\n" -msgstr "W: Неможливо прочитати атрибути %s\n" - -#: ftparchive/writer.cc:131 -msgid "E: " -msgstr "E: " - -#: ftparchive/writer.cc:133 -msgid "W: " -msgstr "W: " - -#: ftparchive/writer.cc:140 -msgid "E: Errors apply to file " -msgstr "E: Помилки відносяться до файлу" - -#: ftparchive/writer.cc:157 ftparchive/writer.cc:187 -#, c-format -msgid "Failed to resolve %s" -msgstr "Не вдалося піти по посиланню %s" - -#: ftparchive/writer.cc:169 -msgid "Tree walking failed" -msgstr "Не вдалося зробити обхід дерева" - -#: ftparchive/writer.cc:194 -#, c-format -msgid "Failed to open %s" -msgstr "Не вдалося відкрити %s" - -#: ftparchive/writer.cc:253 -#, c-format -msgid " DeLink %s [%s]\n" -msgstr "DeLink %s [%s]\n" - -#: ftparchive/writer.cc:261 -#, c-format -msgid "Failed to readlink %s" -msgstr "Не вдалося прочитати посилання %s" - -#: ftparchive/writer.cc:265 -#, c-format -msgid "Failed to unlink %s" -msgstr "Не вдалося видалити %s" - -#: ftparchive/writer.cc:272 -#, c-format -msgid "*** Failed to link %s to %s" -msgstr "*** Не вдалося створити посилання %s на %s" - -#: ftparchive/writer.cc:282 -#, c-format -msgid " DeLink limit of %sB hit.\n" -msgstr "Перевищено ліміт в %s в DeLink.\n" - -#: ftparchive/writer.cc:386 -msgid "Archive had no package field" -msgstr "В архіві немає поля package" - -#: ftparchive/writer.cc:394 ftparchive/writer.cc:609 -#, c-format -msgid " %s has no override entry\n" -msgstr " Відсутній запис про перепризначення для %s\n" - -#: ftparchive/writer.cc:439 ftparchive/writer.cc:697 -#, c-format -msgid " %s maintainer is %s not %s\n" -msgstr " пакунок %s супроводжує %s, а не %s\n" - -#: ftparchive/writer.cc:619 -#, c-format -msgid " %s has no source override entry\n" -msgstr "" - -#: ftparchive/writer.cc:623 -#, 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 "Внутрішня помилка, не можу знайти складову частину %s" - -#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 -msgid "realloc - Failed to allocate memory" -msgstr "realloc - не вдалося виділити пам'ять" - -#: ftparchive/override.cc:34 ftparchive/override.cc:142 -#, c-format -msgid "Unable to open %s" -msgstr "Не вдалося відкрити %s" - -#: ftparchive/override.cc:60 ftparchive/override.cc:166 -#, c-format -msgid "Malformed override %s line %lu #1" -msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #1" - -#: ftparchive/override.cc:74 ftparchive/override.cc:178 -#, c-format -msgid "Malformed override %s line %lu #2" -msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #2" - -#: ftparchive/override.cc:88 ftparchive/override.cc:191 -#, c-format -msgid "Malformed override %s line %lu #3" -msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #3" - -#: ftparchive/override.cc:127 ftparchive/override.cc:201 -#, c-format -msgid "Failed to read the override file %s" -msgstr "Не вдалося прочитати файл перепризначень (override)%s" - -#: ftparchive/multicompress.cc:71 -#, c-format -msgid "Unknown compression algorithm '%s'" -msgstr "Невідомий алгоритм стиснення '%s'" - -#: ftparchive/multicompress.cc:101 -#, c-format -msgid "Compressed output %s needs a compression set" -msgstr "Для отримання стиснутого виводу %s необхідно ввімкнути пакування" - -#: ftparchive/multicompress.cc:168 methods/rsh.cc:91 -msgid "Failed to create IPC pipe to subprocess" -msgstr "Не вдалося створити IPC-канал для породженого процесу" - -#: ftparchive/multicompress.cc:194 -msgid "Failed to create FILE*" -msgstr "Не вдалося створити FILE*" - -#: ftparchive/multicompress.cc:197 -msgid "Failed to fork" -msgstr "Не вдалося виконати породжений процес" - -#: ftparchive/multicompress.cc:211 -msgid "Compress child" -msgstr "Процес-нащадок, що виконує пакування" - -#: ftparchive/multicompress.cc:234 -#, c-format -msgid "Internal error, failed to create %s" -msgstr "Внутрішня помилка, не вдалося створити %s" - -#: ftparchive/multicompress.cc:285 -msgid "Failed to create subprocess IPC" -msgstr "Не вдалося створити IPC з породженим процесом" - -#: ftparchive/multicompress.cc:320 -msgid "Failed to exec compressor " -msgstr "Не вдалося виконати компресор " - -#: ftparchive/multicompress.cc:359 -msgid "decompressor" -msgstr "декомпресор" - -#: ftparchive/multicompress.cc:402 -msgid "IO to subprocess/file failed" -msgstr "Помилка уведення/виводу в підпроцес/файл" - -#: ftparchive/multicompress.cc:454 -msgid "Failed to read while computing MD5" -msgstr "Помилка читання під час обчислення MD5" - -#: ftparchive/multicompress.cc:471 -#, c-format -msgid "Problem unlinking %s" -msgstr "Не вдалося видалити %s" - -#: ftparchive/multicompress.cc:486 apt-inst/extract.cc:185 -#, c-format -msgid "Failed to rename %s to %s" -msgstr "Не вдалося перейменувати %s в %s" - -#: cmdline/apt-get.cc:121 -msgid "Y" -msgstr "Т" - -#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1672 -#, c-format -msgid "Regex compilation error - %s" -msgstr "Помилка компіляції регулярного виразу - %s" - -#: cmdline/apt-get.cc:238 -msgid "The following packages have unmet dependencies:" -msgstr "Пакунки, що мають незадоволені залежності:" - -#: cmdline/apt-get.cc:328 -#, c-format -msgid "but %s is installed" -msgstr "але %s вже встановлений" - -#: cmdline/apt-get.cc:330 -#, c-format -msgid "but %s is to be installed" -msgstr "але %s буде встановлений" - -#: cmdline/apt-get.cc:337 -msgid "but it is not installable" -msgstr "але він не може бути встановлений" - -#: cmdline/apt-get.cc:339 -msgid "but it is a virtual package" -msgstr "але це віртуальний пакунок" - -#: cmdline/apt-get.cc:342 -msgid "but it is not installed" -msgstr "але він не встановлений" - -#: cmdline/apt-get.cc:342 -msgid "but it is not going to be installed" -msgstr "але він не буде встановлений" - -#: cmdline/apt-get.cc:347 -msgid " or" -msgstr " чи" - -#: cmdline/apt-get.cc:376 -msgid "The following NEW packages will be installed:" -msgstr "НОВІ пакунки, які будуть встановлені:" - -#: cmdline/apt-get.cc:402 -msgid "The following packages will be REMOVED:" -msgstr "Пакунки, які будуть ВИДАЛЕНІ:" - -#: cmdline/apt-get.cc:424 -msgid "The following packages have been kept back:" -msgstr "Пакунки, які будуть залишені в незмінному вигляді:" - -#: cmdline/apt-get.cc:445 -msgid "The following packages will be upgraded:" -msgstr "Пакунки, які будуть ОНОВЛЕНІ:" - -#: cmdline/apt-get.cc:466 -msgid "The following packages will be DOWNGRADED:" -msgstr "Пакунки, будуть замінені на більш СТАРІ версії:" - -#: cmdline/apt-get.cc:486 -msgid "The following held packages will be changed:" -msgstr "Пакунки, які повинні були б залишитися без змін, але будуть замінені:" - -#: cmdline/apt-get.cc:539 -#, c-format -msgid "%s (due to %s) " -msgstr "%s (внаслідок %s) " - -#: cmdline/apt-get.cc:547 -msgid "" -"WARNING: The following essential packages will be removed.\n" -"This should NOT be done unless you know exactly what you are doing!" -msgstr "" -"УВАГА: Ці істотно важливі пакунки будуть вилучені.\n" -"НЕ РОБІТЬ цього, якщо ви НЕ уявляєте собі всі можливі наслідки!" - -#: cmdline/apt-get.cc:578 -#, c-format -msgid "%lu upgraded, %lu newly installed, " -msgstr "оновлено %lu, встановлено %lu нових пакунків, " - -#: cmdline/apt-get.cc:582 -#, c-format -msgid "%lu reinstalled, " -msgstr " %lu перевстановлено, " - -#: cmdline/apt-get.cc:584 -#, c-format -msgid "%lu downgraded, " -msgstr "%lu пакунків замінено на старі версії, " - -#: cmdline/apt-get.cc:586 -#, c-format -msgid "%lu to remove and %lu not upgraded.\n" -msgstr "для видалення відмічено %lu пакунків, і %lu пакунків не оновлено.\n" - -#: cmdline/apt-get.cc:590 -#, c-format -msgid "%lu not fully installed or removed.\n" -msgstr "не встановлено до кінця чи видалено %lu пакунків.\n" - -#: cmdline/apt-get.cc:664 -msgid "Correcting dependencies..." -msgstr "Виправлення залежностей..." - -#: cmdline/apt-get.cc:667 -msgid " failed." -msgstr " невдача." - -#: cmdline/apt-get.cc:670 -msgid "Unable to correct dependencies" -msgstr "Неможливо скоригувати залежності" - -#: cmdline/apt-get.cc:673 -msgid "Unable to minimize the upgrade set" -msgstr "Неможливо мінімізувати набір оновлень" - -#: cmdline/apt-get.cc:675 -msgid " Done" -msgstr " Виконано" - -#: cmdline/apt-get.cc:679 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "" -"Можливо, для виправлення цих помилок ви захочете скористатися 'apt-get -f " -"install'." - -#: cmdline/apt-get.cc:682 -msgid "Unmet dependencies. Try using -f." -msgstr "Незадоволені залежності. Спробуйте використати -f." - -#: cmdline/apt-get.cc:704 -msgid "WARNING: The following packages cannot be authenticated!" -msgstr "УВАГА: Наступні пакунки неможливо автентифікувати!" - -#: cmdline/apt-get.cc:708 -msgid "Authentication warning overridden.\n" -msgstr "Автентифікаційне попередження не прийнято до уваги.\n" - -#: cmdline/apt-get.cc:715 -msgid "Install these packages without verification [y/N]? " -msgstr "Встановити ці пакунки без перевірки [т/Н]? " - -#: cmdline/apt-get.cc:717 -msgid "Some packages could not be authenticated" -msgstr "Деякі пакунки неможливо автентифікувати" - -#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873 -msgid "There are problems and -y was used without --force-yes" -msgstr "Існують проблеми, а опція -y використана без --force-yes" - -#: cmdline/apt-get.cc:770 -msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "" -"Внутрішня помилка, InstallPackages була викликана з непрацездатними " -"пакунками!" - -#: cmdline/apt-get.cc:779 -msgid "Packages need to be removed but remove is disabled." -msgstr "Пакунки необхідно видалити, але видалення заборонене." - -#: cmdline/apt-get.cc:790 -msgid "Internal error, Ordering didn't finish" -msgstr "Внутрішня помилка, Ordering не завершилася" - -#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:2010 cmdline/apt-get.cc:2043 -msgid "Unable to lock the download directory" -msgstr "Неможливо заблокувати теку для завантаження" - -#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2091 cmdline/apt-get.cc:2332 -#: apt-pkg/cachefile.cc:63 -msgid "The list of sources could not be read." -msgstr "Неможливо прочитати перелік джерел." - -#: cmdline/apt-get.cc:831 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "Дивно.. Розбіжність розмірів, напишіть на apt@packages.debian.org" - -#: cmdline/apt-get.cc:836 -#, c-format -msgid "Need to get %sB/%sB of archives.\n" -msgstr "Необхідно завантажити %sB/%sB архівів.\n" - -#: cmdline/apt-get.cc:839 -#, c-format -msgid "Need to get %sB of archives.\n" -msgstr "Необхідно завантажити %sB архівів.\n" - -#: cmdline/apt-get.cc:844 -#, c-format -msgid "After unpacking %sB of additional disk space will be used.\n" -msgstr "Після розпакування об'єм зайнятого дискового простору зросте на %sB.\n" - -#: cmdline/apt-get.cc:847 -#, c-format -msgid "After unpacking %sB disk space will be freed.\n" -msgstr "" -"Після розпакування об'єм зайнятого дискового простору зменшиться на %sB.\n" - -#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2186 -#, c-format -msgid "Couldn't determine free space in %s" -msgstr "Не вдалося визначити кількість вільного місця в %s" - -#: cmdline/apt-get.cc:864 -#, c-format -msgid "You don't have enough free space in %s." -msgstr "Недостатньо вільного місця в %s." - -#: 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:881 -msgid "Yes, do as I say!" -msgstr "Так, робити, як я скажу!" - -#: cmdline/apt-get.cc:883 -#, c-format -msgid "" -"You are about to do something potentially harmful.\n" -"To continue type in the phrase '%s'\n" -" ?] " -msgstr "" -"Те, що ви хочете зробити, може мати небажані наслідки.\n" -"Щоб продовжити, введіть фразу: '%s'\n" -" ?] " - -#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908 -msgid "Abort." -msgstr "Перервано." - -#: cmdline/apt-get.cc:904 -msgid "Do you want to continue [Y/n]? " -msgstr "Бажаєте продовжити [Т/н]? " - -#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2229 -#, c-format -msgid "Failed to fetch %s %s\n" -msgstr "Не вдалося завантажити %s %s\n" - -#: cmdline/apt-get.cc:994 -msgid "Some files failed to download" -msgstr "Деякі файли не вдалося завантажити" - -#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2238 -msgid "Download complete and in download only mode" -msgstr "Вказано режим \"тільки завантаження\", і завантаження завершено" - -#: cmdline/apt-get.cc:1001 -msgid "" -"Unable to fetch some archives, maybe run apt-get update or try with --fix-" -"missing?" -msgstr "" -"Неможливо завантажити деякі архіви, імовірно треба виконати apt-get update " -"або спробувати повторити запуск з ключем --fix-missing?" - -#: cmdline/apt-get.cc:1005 -msgid "--fix-missing and media swapping is not currently supported" -msgstr "--fix-missing і зміна носія в даний момент не підтримується" - -#: cmdline/apt-get.cc:1010 -msgid "Unable to correct missing packages." -msgstr "Неможливо виправити втрачені пакунки." - -#: cmdline/apt-get.cc:1011 -msgid "Aborting install." -msgstr "Переривається встановлення." - -#: cmdline/apt-get.cc:1045 -#, c-format -msgid "Note, selecting %s instead of %s\n" -msgstr "Помітьте, замість %2$s вибирається %1$s\n" - -#: cmdline/apt-get.cc:1055 -#, c-format -msgid "Skipping %s, it is already installed and upgrade is not set.\n" -msgstr "" -"Пропускається %s - пакунок вже встановлений, і опція upgrade не " -"встановлена.\n" - -#: cmdline/apt-get.cc:1073 -#, c-format -msgid "Package %s is not installed, so not removed\n" -msgstr "Пакунок %s не встановлений, тому не може бути видалений\n" - -#: cmdline/apt-get.cc:1084 -#, c-format -msgid "Package %s is a virtual package provided by:\n" -msgstr "Пакунок %s - віртуальний, його функції надаються пакунками:\n" - -#: cmdline/apt-get.cc:1096 -msgid " [Installed]" -msgstr " [Встановлено]" - -#: cmdline/apt-get.cc:1101 -msgid "You should explicitly select one to install." -msgstr "Ви повинні явно вказати, який саме ви хочете встановити." - -#: cmdline/apt-get.cc:1106 -#, 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 "" -"Пакунок %s недоступний, але згадується у переліку залежностей іншого " -"пакунка.\n" -"Це може означати, що пакунок відсутній, застарів, або доступний з джерел, не " -"згаданих в sources.list\n" - -#: cmdline/apt-get.cc:1125 -msgid "However the following packages replace it:" -msgstr "Однак наступні пакунки можуть його замінити:" - -#: cmdline/apt-get.cc:1128 -#, c-format -msgid "Package %s has no installation candidate" -msgstr "Для пакунка %s не знайдені кандидати на встановлення" - -#: cmdline/apt-get.cc:1148 -#, c-format -msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" -msgstr "Перевстановлення %s неможливе, бо він не може бути завантаженим.\n" - -#: cmdline/apt-get.cc:1156 -#, c-format -msgid "%s is already the newest version.\n" -msgstr "Вже встановлена найновіша версія %s.\n" - -#: cmdline/apt-get.cc:1185 -#, c-format -msgid "Release '%s' for '%s' was not found" -msgstr "Реліз '%s' для '%s' не знайдений" - -#: cmdline/apt-get.cc:1187 -#, c-format -msgid "Version '%s' for '%s' was not found" -msgstr "Версія '%s' для '%s' не знайдена" - -#: cmdline/apt-get.cc:1193 -#, c-format -msgid "Selected version %s (%s) for %s\n" -msgstr "Обрана версія %s (%s) для %s\n" - -#: cmdline/apt-get.cc:1330 -msgid "The update command takes no arguments" -msgstr "Команді update не потрібні аргументи" - -#: cmdline/apt-get.cc:1343 -msgid "Unable to lock the list directory" -msgstr "Неможливо заблокувати теку з переліками пакунків" - -#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412 -msgid "" -"Some index files failed to download, they have been ignored, or old ones " -"used instead." -msgstr "" -"Деякі індексні файли не завантажилися, вони були зігноровані або замість них " -"були використані старі версії." - -#: cmdline/apt-get.cc:1433 -msgid "We are not supposed to delete stuff, can't start AutoRemover" -msgstr "" - -#: cmdline/apt-get.cc:1465 -#, fuzzy -msgid "" -"The following packages were automatically installed and are no longer " -"required:" -msgstr "НОВІ пакунки, які будуть встановлені:" - -#: cmdline/apt-get.cc:1467 -msgid "Use 'apt-get autoremove' to remove them." -msgstr "" - -#: cmdline/apt-get.cc:1472 -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:1475 cmdline/apt-get.cc:1753 -msgid "The following information may help to resolve the situation:" -msgstr "Наступна інформація можливо допоможе Вам:" - -#: cmdline/apt-get.cc:1479 -#, fuzzy -msgid "Internal Error, AutoRemover broke stuff" -msgstr "Внутрішня помилка, вирішувач проблем все поламав" - -#: cmdline/apt-get.cc:1498 -msgid "Internal error, AllUpgrade broke stuff" -msgstr "Внутрішня помилка, AllUpgrade все поламав" - -#: cmdline/apt-get.cc:1544 -#, fuzzy, c-format -msgid "Couldn't find task %s" -msgstr "Не можу знайти пакунок %s" - -#: cmdline/apt-get.cc:1659 cmdline/apt-get.cc:1695 -#, c-format -msgid "Couldn't find package %s" -msgstr "Не можу знайти пакунок %s" - -#: cmdline/apt-get.cc:1682 -#, c-format -msgid "Note, selecting %s for regex '%s'\n" -msgstr "Помітьте, регулярний вираз %2$s призводить до вибору %1$s\n" - -#: cmdline/apt-get.cc:1712 -#, fuzzy, c-format -msgid "%s set to manual installed.\n" -msgstr "але %s буде встановлений" - -#: cmdline/apt-get.cc:1725 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "" -"Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f " -"install':" - -#: cmdline/apt-get.cc:1728 -msgid "" -"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " -"solution)." -msgstr "" -"Незадоволені залежності. Спробуйте виконати 'apt-get -f install', не " -"вказуючи імені пакунка (або знайдіть інше рішення)." - -#: cmdline/apt-get.cc:1740 -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 "" -"Деякі пакунки неможливо встановити. Можливо, Ви просите неможливого,\n" -"або ж використаєте нестабільний дистрибутив, і запитані Вами пакунки\n" -"ще не створені або були вилучені з Incoming." - -#: cmdline/apt-get.cc:1748 -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 "" -"Так як Ви просили виконати тільки одну операцію, те найімовірніше, що\n" -"пакунок просто не може бути встановлений через помилки в самому пакунку.\n" -"Необхідно відіслати звіт про цю помилку." - -#: cmdline/apt-get.cc:1756 -msgid "Broken packages" -msgstr "Зламані пакунки" - -#: cmdline/apt-get.cc:1785 -msgid "The following extra packages will be installed:" -msgstr "Будуть встановлені наступні додаткові пакунки:" - -#: cmdline/apt-get.cc:1874 -msgid "Suggested packages:" -msgstr "Пропоновані пакунки:" - -#: cmdline/apt-get.cc:1875 -msgid "Recommended packages:" -msgstr "Рекомендовані пакунки:" - -#: cmdline/apt-get.cc:1903 -msgid "Calculating upgrade... " -msgstr "Обчислення оновлень... " - -#: cmdline/apt-get.cc:1906 methods/ftp.cc:702 methods/connect.cc:101 -msgid "Failed" -msgstr "Невдача" - -#: cmdline/apt-get.cc:1911 -msgid "Done" -msgstr "Виконано" - -#: cmdline/apt-get.cc:1978 cmdline/apt-get.cc:1986 -msgid "Internal error, problem resolver broke stuff" -msgstr "Внутрішня помилка, вирішувач проблем все поламав" - -#: cmdline/apt-get.cc:2086 -msgid "Must specify at least one package to fetch source for" -msgstr "" -"Вкажіть як мінімум один пакунок, для якого необхідно завантажити вихідні " -"тексти" - -#: cmdline/apt-get.cc:2116 cmdline/apt-get.cc:2350 -#, c-format -msgid "Unable to find a source package for %s" -msgstr "Неможливо знайти пакунок з вихідними текстами для %s" - -#: cmdline/apt-get.cc:2165 -#, c-format -msgid "Skipping already downloaded file '%s'\n" -msgstr "Пропускаємо вже завантажений файл '%s'\n" - -#: cmdline/apt-get.cc:2189 -#, c-format -msgid "You don't have enough free space in %s" -msgstr "Недостатньо місця в %s" - -#: cmdline/apt-get.cc:2194 -#, c-format -msgid "Need to get %sB/%sB of source archives.\n" -msgstr "Необхідно завантажити %sB/%sB з архівів вихідних текстів.\n" - -#: cmdline/apt-get.cc:2197 -#, c-format -msgid "Need to get %sB of source archives.\n" -msgstr "Потрібно завантажити %sB архівів з вихідними текстами.\n" - -#: cmdline/apt-get.cc:2203 -#, c-format -msgid "Fetch source %s\n" -msgstr "Завантаження вихідних текстів %s\n" - -#: cmdline/apt-get.cc:2234 -msgid "Failed to fetch some archives." -msgstr "Деякі архіви не вдалося завантажити." - -#: cmdline/apt-get.cc:2262 -#, c-format -msgid "Skipping unpack of already unpacked source in %s\n" -msgstr "" -"Розпакування вихідних текстів пропущено, тому що в %s вже перебувають " -"розпаковані вихідні тексти\n" - -#: cmdline/apt-get.cc:2274 -#, c-format -msgid "Unpack command '%s' failed.\n" -msgstr "Команда розпакування '%s' завершилася невдало.\n" - -#: cmdline/apt-get.cc:2275 -#, c-format -msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "Перевірте, чи встановлений пакунок 'dpkg-dev'.\n" - -#: cmdline/apt-get.cc:2292 -#, c-format -msgid "Build command '%s' failed.\n" -msgstr "Команда побудови '%s' закінчилася невдало.\n" - -#: cmdline/apt-get.cc:2311 -msgid "Child process failed" -msgstr "Породжений процес завершився невдало" - -#: cmdline/apt-get.cc:2327 -msgid "Must specify at least one package to check builddeps for" -msgstr "" -"Для перевірки залежностей для побудови необхідно вказати як мінімум один " -"пакунок" - -#: cmdline/apt-get.cc:2355 -#, c-format -msgid "Unable to get build-dependency information for %s" -msgstr "Неможливо одержати інформацію про залежності для побудови %s" - -#: cmdline/apt-get.cc:2375 -#, c-format -msgid "%s has no build depends.\n" -msgstr "%s не має залежностей для побудови.\n" - -#: cmdline/apt-get.cc:2427 -#, 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:2479 -#, c-format -msgid "" -"%s dependency for %s cannot be satisfied because no available versions of " -"package %s can satisfy version requirements" -msgstr "" -"Залежність типу %s для %s не може бути задоволена, бо ні одна з версій " -"пакунка %s не задовольняє умови" - -#: cmdline/apt-get.cc:2514 -#, c-format -msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" -msgstr "" -"Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений " -"пакунок %s новіше, аніж треба" - -#: cmdline/apt-get.cc:2539 -#, c-format -msgid "Failed to satisfy %s dependency for %s: %s" -msgstr "Неможливо задовольнити залежність типу %s для пакунка %s: %s" - -#: cmdline/apt-get.cc:2553 -#, c-format -msgid "Build-dependencies for %s could not be satisfied." -msgstr "Залежності для побудови %s не можуть бути задоволені." - -#: cmdline/apt-get.cc:2557 -msgid "Failed to process build dependencies" -msgstr "Обробка залежностей для побудови закінчилася невдало" - -#: cmdline/apt-get.cc:2589 -msgid "Supported modules:" -msgstr "Підтримувані модулі:" - -#: cmdline/apt-get.cc:2630 -#, fuzzy -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" -" purge - Remove and purge 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 "" -"Використання: apt-get [options] command\n" -" apt-get [options] install|remove pkg1 [pkg2 ...]\n" -" apt-get [options] source pkg1 [pkg2 ...]\n" -"\n" -"apt-get - простий інтерфейс командного рядка для завантаження й\n" -"встановлення пакунків. Найбільш часто використовувані команди - update \n" -"і install.\n" -"\n" -"Команди:\n" -" update - завантажити нові переліки пакунків\n" -" upgrade - виконати оновлення пакунків\n" -" install - встановити нові пакунки (назва пакунка вказується\n" -" як libc6, а не libc6.deb)\n" -" remove - видалити пакунок\n" -" source - завантажити архіви з вихідними текстами\n" -" build-dep - завантажити все необхідне для побудови зазначеного\n" -" пакунку з вихідних текстів\n" -" dist-upgrade - оновити всю систему, докладніше - в apt-get(8)\n" -" dselect-upgrade - керуватися вибором, зробленим в dselect'і\n" -" clean - видалити завантажені архіви\n" -" autoclean - видалити старі завантажені архіви\n" -" check - перевірити наявність порушених залежностей\n" -"\n" -"Опції:\n" -" -h Цей текст.\n" -" -q Виводити повідомлення, придатні для запису у файл журналу.\n" -" Не виводити індикатор прогресу\n" -" -qq Виводити тільки повідомлення про помилки\n" -" -d Тільки завантажити - не встановлювати й не розпаковувати архіви\n" -" -s Не виконувати дії насправді. Імітація роботи\n" -" -y Відповідати \"Так\" на всі питання. Самі питання при цьому не " -"виводяться\n" -" -f Продовжувати, навіть якщо перевірка цілісності не пройшла\n" -" -m Продовжувати, навіть якщо місце розташування архівів невідомо\n" -" -u Показувати список оновлюваних пакунків\n" -" -b Компілювати пакунок з вихідних текстів після їхнього завантаження\n" -" -V Показувати версії пакунків\n" -" -c=? Читати зазначений файл конфігурації\n" -" -o=? Встановити довільну опцію, наприклад, -o dir::cache=/tmp\n" -"Сторінки керівництва apt-get(8), sources.list(5) і apt.conf(5)\n" -"містять більше інформації.\n" -" This APT has Super Cow Powers.\n" - -#: 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 "Отримано %sB за %sB (%sB/s)\n" - -#: cmdline/acqprogress.cc:225 -#, c-format -msgid " [Working]" -msgstr " [Йде робота]" - -#: 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 "" -"Зміна носія: вставте диск з міткою '%s' у пристрій '%s' і натисніть Ввід\n" - -#: 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 "" -"Використання: apt-sortpkgs [options] file1 [file2 ...]\n" -"\n" -"apt-sortpkgs - простий інструмент для сортування переліків пакунків. Опція -" -"s\n" -"використається, щоб вказати тип списку.\n" -"\n" -"Опції:\n" -" -h цей текст\n" -" -s сортувати список файлів з вихідними текстами\n" -" -c=? читати зазначений файл конфігурації\n" -" -o=? встановити довільну опцію, наприклад, -o dir::cache=/tmp\n" - -#: 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:114 -msgid "Failed to create pipes" -msgstr "Не вдалося створити канали (pipes)" - -#: apt-inst/contrib/extracttar.cc:141 -msgid "Failed to exec gzip " -msgstr "Не вдалося виконати компресор gzip" - -#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204 -msgid "Corrupted archive" -msgstr "Пошкоджений архів" - -#: apt-inst/contrib/extracttar.cc:193 -msgid "Tar checksum failed, archive corrupted" -msgstr "Контрольна сума tar архіва невірна, архів пошкоджений" - -#: apt-inst/contrib/extracttar.cc:296 -#, c-format -msgid "Unknown TAR header type %u, member %s" -msgstr "Невідомий тип заголовку TAR %u, член %s" - -#: apt-inst/contrib/arfile.cc:70 -msgid "Invalid archive signature" -msgstr "Невірний підпис архіву" - -#: apt-inst/contrib/arfile.cc:78 -msgid "Error reading archive member header" -msgstr "Неможливо прочитати заголовок \"member\" архіву" - -#: apt-inst/contrib/arfile.cc:90 apt-inst/contrib/arfile.cc:102 -msgid "Invalid archive member header" -msgstr "Невірний заголовок \"member\" архіву" - -#: apt-inst/contrib/arfile.cc:128 -msgid "Archive is too short" -msgstr "Архів занадто малий" - -#: apt-inst/contrib/arfile.cc:132 -msgid "Failed to read the archive headers" -msgstr "Не вдалося прочитати заголовки архіву" - -#: apt-inst/filelist.cc:380 -#, fuzzy -msgid "DropNode called on still linked node" -msgstr "DropNode викликаний для вузла, який ще використовується" - -#: apt-inst/filelist.cc:412 -msgid "Failed to locate the hash element!" -msgstr "Не вдалося знайти елемент хешу!" - -#: apt-inst/filelist.cc:459 -#, fuzzy -msgid "Failed to allocate diversion" -msgstr "Не вдалося створити diversion" - -#: apt-inst/filelist.cc:464 -msgid "Internal error in AddDiversion" -msgstr "Внутрішня помилка в AddDiversion" - -#: apt-inst/filelist.cc:477 -#, fuzzy, c-format -msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" -msgstr "Спроба зміни diversion, %s -> %s і %s/%s" - -#: apt-inst/filelist.cc:506 -#, fuzzy, c-format -msgid "Double add of diversion %s -> %s" -msgstr "Подвійне додавання diversion %s -> %s" - -#: apt-inst/filelist.cc:549 -#, c-format -msgid "Duplicate conf file %s/%s" -msgstr "Копія конфігураційного файлу %s/%s" - -#: apt-inst/dirstream.cc:41 apt-inst/dirstream.cc:46 apt-inst/dirstream.cc:49 -#, c-format -msgid "Failed to write file %s" -msgstr "Не вдалося записати файл %s" - -#: apt-inst/dirstream.cc:92 apt-inst/dirstream.cc:100 -#, c-format -msgid "Failed to close file %s" -msgstr "Не вдалося закрити файл %s" - -#: apt-inst/extract.cc:93 apt-inst/extract.cc:164 -#, c-format -msgid "The path %s is too long" -msgstr "Шлях %s занадто довгий" - -#: apt-inst/extract.cc:124 -#, c-format -msgid "Unpacking %s more than once" -msgstr "Розпакування %s більш ніж один раз" - -#: apt-inst/extract.cc:134 -#, fuzzy, c-format -msgid "The directory %s is diverted" -msgstr "Тека %s входить до переліку diverted" - -#: apt-inst/extract.cc:144 -#, fuzzy, c-format -msgid "The package is trying to write to the diversion target %s/%s" -msgstr "Пакет пробує писати у diversion %s/%s" - -#: apt-inst/extract.cc:154 apt-inst/extract.cc:297 -#, fuzzy -msgid "The diversion path is too long" -msgstr "Шлях diversion занадто довгий" - -#: apt-inst/extract.cc:240 -#, c-format -msgid "The directory %s is being replaced by a non-directory" -msgstr "Тека %s замінюється не текою" - -#: apt-inst/extract.cc:280 -#, fuzzy -msgid "Failed to locate node in its hash bucket" -msgstr "Не вдалося розмістити вузол у хеші" - -#: apt-inst/extract.cc:284 -msgid "The path is too long" -msgstr "Шлях занадто довгий" - -#: apt-inst/extract.cc:414 -#, fuzzy, c-format -msgid "Overwrite package match with no version for %s" -msgstr "Файли заміняються вмістом пакета %s без версії" - -#: apt-inst/extract.cc:431 -#, fuzzy, c-format -msgid "File %s/%s overwrites the one in the package %s" -msgstr "Файл %s/%s перезаписує інший з пакету %s" - -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:748 -#: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 -#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 -#, c-format -msgid "Unable to read %s" -msgstr "Неможливо прочитати %s" - -#: apt-inst/extract.cc:491 -#, c-format -msgid "Unable to stat %s" -msgstr "Неможливо прочитати атрибути %s" - -#: apt-inst/deb/dpkgdb.cc:51 apt-inst/deb/dpkgdb.cc:57 -#, c-format -msgid "Failed to remove %s" -msgstr "Невдача видалення %s" - -#: apt-inst/deb/dpkgdb.cc:106 apt-inst/deb/dpkgdb.cc:108 -#, c-format -msgid "Unable to create %s" -msgstr "Неможливо створити %s" - -#: apt-inst/deb/dpkgdb.cc:114 -#, c-format -msgid "Failed to stat %sinfo" -msgstr "Не вдалося прочитати атрибути %sinfo" - -#: apt-inst/deb/dpkgdb.cc:119 -msgid "The info and temp directories need to be on the same filesystem" -msgstr "Теки info і temp повинні бути на тій самій файловій системі" - -#. Build the status cache -#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:748 -#: apt-pkg/pkgcachegen.cc:817 apt-pkg/pkgcachegen.cc:822 -#: apt-pkg/pkgcachegen.cc:945 -msgid "Reading package lists" -msgstr "Читання переліків пакетів" - -#: apt-inst/deb/dpkgdb.cc:176 -#, c-format -msgid "Failed to change to the admin dir %sinfo" -msgstr "Невдача зміни до адмінової теки %sinfo" - -#: apt-inst/deb/dpkgdb.cc:197 apt-inst/deb/dpkgdb.cc:351 -#: apt-inst/deb/dpkgdb.cc:444 -msgid "Internal error getting a package name" -msgstr "Внутрішня помилка отримання назви пакунку" - -#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:382 -msgid "Reading file listing" -msgstr "Читання переліку файлів" - -#: apt-inst/deb/dpkgdb.cc:212 -#, 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 "" -"Не вдалося відкрити list файл '%sinfo/%s'. Якщо Ви не можете відновити цей " -"файл, тоді зробіть його пустим і негайно реінсталюйте ту ж саму версію " -"пакунка!" - -#: apt-inst/deb/dpkgdb.cc:225 apt-inst/deb/dpkgdb.cc:238 -#, c-format -msgid "Failed reading the list file %sinfo/%s" -msgstr "Невдача читання list файла %sinfo/%s" - -#: apt-inst/deb/dpkgdb.cc:262 -#, fuzzy -msgid "Internal error getting a node" -msgstr "Внутрішня помилка при отриманні Node" - -#: apt-inst/deb/dpkgdb.cc:305 -#, fuzzy, c-format -msgid "Failed to open the diversions file %sdiversions" -msgstr "Не вдалося відкрити файл diversions %sdiversions" - -#: apt-inst/deb/dpkgdb.cc:320 -#, fuzzy -msgid "The diversion file is corrupted" -msgstr "Файл diversions пошкоджений" - -#: apt-inst/deb/dpkgdb.cc:327 apt-inst/deb/dpkgdb.cc:332 -#: apt-inst/deb/dpkgdb.cc:337 -#, fuzzy, c-format -msgid "Invalid line in the diversion file: %s" -msgstr "Невірна лінія в файлі diversions: %s" - -#: apt-inst/deb/dpkgdb.cc:358 -#, fuzzy -msgid "Internal error adding a diversion" -msgstr "Внутрішня помилка при додаванні diversion" - -#: apt-inst/deb/dpkgdb.cc:379 -msgid "The pkg cache must be initialized first" -msgstr "Кеш пакунків повинен бути ініціалізованим першим" - -#: apt-inst/deb/dpkgdb.cc:439 -#, fuzzy, c-format -msgid "Failed to find a Package: header, offset %lu" -msgstr "Не вдалося знайти пакунок: заголовок, зсув %lu" - -#: apt-inst/deb/dpkgdb.cc:461 -#, fuzzy, c-format -msgid "Bad ConfFile section in the status file. Offset %lu" -msgstr "Погана секція ConfFile у статусному файлі. Зсув %lu" - -#: apt-inst/deb/dpkgdb.cc:466 -#, fuzzy, c-format -msgid "Error parsing MD5. Offset %lu" -msgstr "Помилка обробки MD5. Зсув %lu" - -#: apt-inst/deb/debfile.cc:38 apt-inst/deb/debfile.cc:43 -#, c-format -msgid "This is not a valid DEB archive, missing '%s' member" -msgstr "Невірний DEB архів, відсутній член '%s'" - -#: apt-inst/deb/debfile.cc:48 -#, c-format -msgid "This is not a valid DEB archive, it has no '%s' or '%s' member" -msgstr "Невірний DEB архів, відсутній член '%s' чи '%s'" - -#: apt-inst/deb/debfile.cc:108 -#, c-format -msgid "Couldn't change to %s" -msgstr "Неможливо змінити %s" - -#: apt-inst/deb/debfile.cc:134 -msgid "Internal error, could not locate member" -msgstr "Внутрішня помилка, не можу знайти member" - -#: apt-inst/deb/debfile.cc:167 -msgid "Failed to locate a valid control file" -msgstr "Не вдалося знайти правильний контрольний (control) файл" - -#: apt-inst/deb/debfile.cc:252 -msgid "Unparsable control file" -msgstr "Контрольний файл не можливо обробити" - -#: methods/cdrom.cc:114 -#, c-format -msgid "Unable to read the cdrom database %s" -msgstr "Неможливо прочитати базу %s з cdrom'у" - -#: 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 "" -"Будь-ласка використовуйте apt-cdrom, щоб APT розпізнав цей CD-ROM, apt-get " -"update не може бути використаним для додання нових CD" - -#: methods/cdrom.cc:131 -msgid "Wrong CD-ROM" -msgstr "Невірний CD-ROM" - -#: methods/cdrom.cc:166 -#, c-format -msgid "Unable to unmount the CD-ROM in %s, it may still be in use." -msgstr "Неможливо демонтувати CDROM в %s, можливо він все ще використовується." - -#: methods/cdrom.cc:171 -msgid "Disk not found." -msgstr "Диск не знайдено." - -#: methods/cdrom.cc:179 methods/file.cc:79 methods/rsh.cc:264 -msgid "File not found" -msgstr "Файл не знайдено" - -#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141 -#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243 -msgid "Failed to stat" -msgstr "Не вдалося одержати атрибути" - -#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147 -#: methods/rred.cc:240 -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 -msgid "Unable to determine the local name" -msgstr "Неможливо визначити локальну назву" - -#: methods/ftp.cc:204 methods/ftp.cc:232 -#, c-format -msgid "The server refused the connection and said: %s" -msgstr "Сервер розірвав з'єднання і мовив: %s" - -#: methods/ftp.cc:210 -#, c-format -msgid "USER failed, server said: %s" -msgstr "USER невдало, сервер мовив: %s" - -#: methods/ftp.cc:217 -#, c-format -msgid "PASS failed, server said: %s" -msgstr "PASS невдало, сервер мовив: %s" - -#: methods/ftp.cc:237 -msgid "" -"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " -"is empty." -msgstr "" -"Вказано проксі-сервер, але відсутній скрипт логіну, Acquire::ftp::ProxyLogin " -"пустий." - -#: methods/ftp.cc:265 -#, c-format -msgid "Login script command '%s' failed, server said: %s" -msgstr "Команда '%s'скрипту логіна не вдалася, сервер мовив: %s" - -#: methods/ftp.cc:291 -#, c-format -msgid "TYPE failed, server said: %s" -msgstr "TYPE невдало, сервер мовив: %s" - -#: 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:469 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:508 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 "Неможливо створити сокет (socket)" - -#: methods/ftp.cc:698 -msgid "Could not connect data socket, connection timed out" -msgstr "Неможливо під'єднати сокет (socket) з даними, час з'єднання вичерпався" - -#: methods/ftp.cc:704 -msgid "Could not connect passive socket." -msgstr "Неможливо під'єднати пасивний сокет (passive socket)." - -#: methods/ftp.cc:722 -#, fuzzy -msgid "getaddrinfo was unable to get a listening socket" -msgstr "Виклик getaddrinfo не зміг отримати сокет" - -#: methods/ftp.cc:736 -msgid "Could not bind a socket" -msgstr "Неможливо приєднатися до сокета" - -#: methods/ftp.cc:740 -#, fuzzy -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 "Неможливо відіслати команду PORT" - -#: methods/ftp.cc:789 -#, c-format -msgid "Unknown address family %u (AF_*)" -msgstr "Невідоме адресове сімейство %u (AF_*)" - -#: methods/ftp.cc:798 -#, c-format -msgid "EPRT failed, server said: %s" -msgstr "EPRT невдало, сервер мовив: %s" - -#: 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:959 methods/rsh.cc:303 -msgid "Problem hashing file" -msgstr "Проблема хешування файла" - -#: methods/ftp.cc:877 -#, c-format -msgid "Unable to fetch file, server said '%s'" -msgstr "Неможливо завантажити файл, сервер мовив: '%s'" - -#: methods/ftp.cc:892 methods/rsh.cc:322 -msgid "Data socket timed out" -msgstr "Час з'єднання з сокетом (socket) з даними вичерпався" - -#: methods/ftp.cc:922 -#, c-format -msgid "Data transfer failed, server said '%s'" -msgstr "Передача даних обірвалася, сервер мовив '%s'" - -#. Get the files information -#: methods/ftp.cc:997 -msgid "Query" -msgstr "Черга" - -#: methods/ftp.cc:1109 -msgid "Unable to invoke " -msgstr "Неможливо викликати " - -#: methods/connect.cc:64 -#, c-format -msgid "Connecting to %s (%s)" -msgstr "З'єднання з %s (%s)" - -#: methods/connect.cc:71 -#, c-format -msgid "[IP: %s %s]" -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 "Неможливо створити сокет для %s (f=%u t=%u p=%u)" - -#: methods/connect.cc:86 -#, c-format -msgid "Cannot initiate the connection to %s:%s (%s)." -msgstr "Неможливо ініціалізувати з'єднання з %s:%s (%s)." - -#: methods/connect.cc:93 -#, c-format -msgid "Could not connect to %s:%s (%s), connection timed out" -msgstr "Неможливо з'єднатися з %s:%s (%s), час з'єднання вичерпався" - -#: methods/connect.cc:108 -#, c-format -msgid "Could not connect to %s:%s (%s)." -msgstr "Не можливо під'єднатися до %s:%s (%s)." - -#. 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 "З'єднання з %s" - -#: methods/connect.cc:167 -#, c-format -msgid "Could not resolve '%s'" -msgstr "Не можу знайти IP адрес для %s" - -#: methods/connect.cc:173 -#, c-format -msgid "Temporary failure resolving '%s'" -msgstr "Тимчасова помилка при отриманні IP адреси '%s'" - -#: methods/connect.cc:176 -#, c-format -msgid "Something wicked happened resolving '%s:%s' (%i)" -msgstr "Сталося щось дивне при спробі отримати IP адрес для '%s:%s' (%i)" - -#: methods/connect.cc:223 -#, c-format -msgid "Unable to connect to %s %s:" -msgstr "Не можливо під'єднатися до %s %s:" - -#: methods/gpgv.cc:65 -#, fuzzy, c-format -msgid "Couldn't access keyring: '%s'" -msgstr "Неможливо отримати доступ до keyring: '%s'" - -#: methods/gpgv.cc:100 -msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." -msgstr "" -"E: Перелік аргументів з Acquire::gpgv::Options занадто довгий. Відміна." - -#: methods/gpgv.cc:204 -msgid "" -"Internal error: Good signature, but could not determine key fingerprint?!" -msgstr "" -"Внутрішня помилка: Вірний підпис (signature), але не можливо визначити його " -"відбиток?!" - -#: 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 "Неможливо виконати '%s' для перевірки підпису, gnupg встановлено?" - -#: methods/gpgv.cc:218 -msgid "Unknown error executing gpgv" -msgstr "Невідома помилка виконання gpgv" - -#: methods/gpgv.cc:249 -msgid "The following signatures were invalid:\n" -msgstr "Слідуючі підписи були невірними:\n" - -#: methods/gpgv.cc:256 -msgid "" -"The following signatures couldn't be verified because the public key is not " -"available:\n" -msgstr "" -"Слідуючі підписи не можуть бути перевірені, тому що, публічний ключ " -"відсутній:\n" - -#: methods/gzip.cc:64 -#, c-format -msgid "Couldn't open pipe for %s" -msgstr "Неможливо відкрити канал (pipe) для %s" - -#: methods/gzip.cc:109 -#, c-format -msgid "Read error from %s process" -msgstr "Помилка читання з процесу %s" - -#: methods/http.cc:377 -msgid "Waiting for headers" -msgstr "Очікування на заголовки" - -#: methods/http.cc:523 -#, c-format -msgid "Got a single header line over %u chars" -msgstr "Отримано одну заголовкову лінію понад %u символів" - -#: methods/http.cc:531 -msgid "Bad header line" -msgstr "Невірна лінія заголовку" - -#: methods/http.cc:550 methods/http.cc:557 -msgid "The HTTP server sent an invalid reply header" -msgstr "HTTP сервер відіслав невірний заголовок 'reply'" - -#: methods/http.cc:586 -msgid "The HTTP server sent an invalid Content-Length header" -msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'" - -#: methods/http.cc:601 -msgid "The HTTP server sent an invalid Content-Range header" -msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'" - -#: methods/http.cc:603 -msgid "This HTTP server has broken range support" -msgstr "Цей HTTP сервер має поламану підтримку 'range'" - -#: methods/http.cc:627 -msgid "Unknown date format" -msgstr "Невідомий формат дати" - -#: methods/http.cc:774 -msgid "Select failed" -msgstr "Вибір не вдався" - -#: methods/http.cc:779 -msgid "Connection timed out" -msgstr "Час очікування з'єднання вийшов" - -#: methods/http.cc:802 -msgid "Error writing to output file" -msgstr "Помилка запису в вихідний файл" - -#: methods/http.cc:833 -#, fuzzy -msgid "Error writing to file" -msgstr "Помилка запису в файл" - -#: methods/http.cc:861 -#, fuzzy -msgid "Error writing to the file" -msgstr "Помилка запису в файл" - -#: methods/http.cc:875 -msgid "Error reading from server. Remote end closed connection" -msgstr "Помилка читання з сервера. Віддалена сторона закрила з'єднання" - -#: methods/http.cc:877 -msgid "Error reading from server" -msgstr "Помилка читання з сервера" - -#: methods/http.cc:1108 -msgid "Bad header data" -msgstr "Погана заголовкова інформація" - -#: methods/http.cc:1125 -msgid "Connection failed" -msgstr "З'єднання не вдалося" - -#: methods/http.cc:1216 -msgid "Internal error" -msgstr "Внутрішня помилка" - -#: apt-pkg/contrib/mmap.cc:78 -msgid "Can't mmap an empty file" -msgstr "Неможливо відобразити в пам'яті пустий файл" - -#: apt-pkg/contrib/mmap.cc:83 -#, c-format -msgid "Couldn't make mmap of %lu bytes" -msgstr "Неможливо відобразити в пам'яті %lu байт" - -#: apt-pkg/contrib/strutl.cc:978 -#, c-format -msgid "Selection %s not found" -msgstr "Вибір %s не знайдено" - -#: apt-pkg/contrib/configuration.cc:434 -#, c-format -msgid "Unrecognized type abbreviation: '%c'" -msgstr "Нерозпізнаваний тип абревіатури: '%c'" - -#: apt-pkg/contrib/configuration.cc:492 -#, c-format -msgid "Opening configuration file %s" -msgstr "Відкривається конфігураційний файл %s" - -#: apt-pkg/contrib/configuration.cc:510 -#, fuzzy, c-format -msgid "Line %d too long (max %lu)" -msgstr "Лінія %d занадто довга (максимум %d)" - -#: apt-pkg/contrib/configuration.cc:606 -#, c-format -msgid "Syntax error %s:%u: Block starts with no name." -msgstr "Синтаксова помилка %s:%u: Блок починається без назви." - -#: apt-pkg/contrib/configuration.cc:625 -#, c-format -msgid "Syntax error %s:%u: Malformed tag" -msgstr "Синтаксова помилка %s:%u: спотворений тег" - -#: apt-pkg/contrib/configuration.cc:642 -#, c-format -msgid "Syntax error %s:%u: Extra junk after value" -msgstr "Синтаксова помилка %s:%u: зайві символи після величини" - -#: apt-pkg/contrib/configuration.cc:682 -#, fuzzy, c-format -msgid "Syntax error %s:%u: Directives can only be done at the top level" -msgstr "" -"Синтаксова помилка %s:%u: Директиви можуть бути виконані тільки на " -"найвищому рівні" - -#: apt-pkg/contrib/configuration.cc:689 -#, c-format -msgid "Syntax error %s:%u: Too many nested includes" -msgstr "Синтаксова помилка %s:%u: Забагато вмонтованих включень" - -#: apt-pkg/contrib/configuration.cc:693 apt-pkg/contrib/configuration.cc:698 -#, c-format -msgid "Syntax error %s:%u: Included from here" -msgstr "Синтаксова помилка %s:%u: Включена звідси" - -#: apt-pkg/contrib/configuration.cc:702 -#, c-format -msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "Синтаксова помилка %s:%u: Директива '%s' не підтримується" - -#: apt-pkg/contrib/configuration.cc:736 -#, c-format -msgid "Syntax error %s:%u: Extra junk at end of file" -msgstr "Синтаксова помилка %s:%u: зайві символи в кінці файла" - -#: apt-pkg/contrib/progress.cc:152 -#, c-format -msgid "%c%s... Error!" -msgstr "%c%s... Помилка!" - -#: apt-pkg/contrib/progress.cc:154 -#, c-format -msgid "%c%s... Done" -msgstr "%c%s... Виконано" - -#: apt-pkg/contrib/cmndline.cc:77 -#, c-format -msgid "Command line option '%c' [from %s] is not known." -msgstr "Невідомий параметр '%c' [з %s] командного рядка." - -#: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111 -#: apt-pkg/contrib/cmndline.cc:119 -#, c-format -msgid "Command line option %s is not understood" -msgstr "Незрозумілий параметр %s командного рядка" - -#: apt-pkg/contrib/cmndline.cc:124 -#, c-format -msgid "Command line option %s is not boolean" -msgstr "Не логічний параметр %s командного рядка" - -#: apt-pkg/contrib/cmndline.cc:163 apt-pkg/contrib/cmndline.cc:184 -#, c-format -msgid "Option %s requires an argument." -msgstr "Параметр %s потребує аргумента." - -#: apt-pkg/contrib/cmndline.cc:198 apt-pkg/contrib/cmndline.cc:204 -#, c-format -msgid "Option %s: Configuration item specification must have an =<val>." -msgstr "" - -#: apt-pkg/contrib/cmndline.cc:234 -#, c-format -msgid "Option %s requires an integer argument, not '%s'" -msgstr "Параметр %s потребує integer аргумент, але не '%s'" - -#: apt-pkg/contrib/cmndline.cc:265 -#, c-format -msgid "Option '%s' is too long" -msgstr "Параметр '%s' занадто довгий" - -#: apt-pkg/contrib/cmndline.cc:298 -#, c-format -msgid "Sense %s is not understood, try true or false." -msgstr "Незрозумілий вираз %s , спробуйте true чи false." - -#: apt-pkg/contrib/cmndline.cc:348 -#, c-format -msgid "Invalid operation %s" -msgstr "Невірна дія %s" - -#: apt-pkg/contrib/cdromutl.cc:52 -#, c-format -msgid "Unable to stat the mount point %s" -msgstr "Неможливо прочитати атрибути точки монтування %s" - -#: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/acquire.cc:424 apt-pkg/clean.cc:40 -#, c-format -msgid "Unable to change to %s" -msgstr "Неможливо зробити зміни у %s" - -#: apt-pkg/contrib/cdromutl.cc:187 -msgid "Failed to stat the cdrom" -msgstr "Не вдалося прочитати атрибути cdrom" - -#: apt-pkg/contrib/fileutl.cc:80 -#, c-format -msgid "Not using locking for read only lock file %s" -msgstr "" -"Блокування не використовується, так як файл блокування %s доступний тільки " -"для читання" - -#: apt-pkg/contrib/fileutl.cc:85 -#, c-format -msgid "Could not open lock file %s" -msgstr "Не можливо відкрити lock файл %s" - -#: apt-pkg/contrib/fileutl.cc:103 -#, c-format -msgid "Not using locking for nfs mounted lock file %s" -msgstr "" -"Блокування не використовується, так як файл блокування %s знаходиться на " -"файловій системі nfs" - -#: apt-pkg/contrib/fileutl.cc:107 -#, fuzzy, c-format -msgid "Could not get lock %s" -msgstr "Не можливо отримати lock %s" - -#: apt-pkg/contrib/fileutl.cc:375 -#, c-format -msgid "Waited for %s but it wasn't there" -msgstr "Очікується на %s але його тут немає" - -#: apt-pkg/contrib/fileutl.cc:385 -#, c-format -msgid "Sub-process %s received a segmentation fault." -msgstr "Підпроцес %s отримав segmentation fault." - -#: apt-pkg/contrib/fileutl.cc:388 -#, c-format -msgid "Sub-process %s returned an error code (%u)" -msgstr "Підпроцес %s повернув код помилки (%u)" - -#: apt-pkg/contrib/fileutl.cc:390 -#, c-format -msgid "Sub-process %s exited unexpectedly" -msgstr "Підпроцес %s раптово завершився" - -#: apt-pkg/contrib/fileutl.cc:434 -#, c-format -msgid "Could not open file %s" -msgstr "Не можливо відкрити файл %s" - -#: apt-pkg/contrib/fileutl.cc:490 -#, c-format -msgid "read, still have %lu to read but none left" -msgstr "" -"помилка при читанні. мали прочитати ще %lu байт, але нічого більше нема" - -#: apt-pkg/contrib/fileutl.cc:520 -#, c-format -msgid "write, still have %lu to write but couldn't" -msgstr "помилка при записі, мали прочитати ще %lu байт, але не змогли" - -#: apt-pkg/contrib/fileutl.cc:595 -msgid "Problem closing the file" -msgstr "Проблема з закриттям файла" - -#: apt-pkg/contrib/fileutl.cc:601 -msgid "Problem unlinking the file" -msgstr "Проблема з роз'єднанням файла" - -#: apt-pkg/contrib/fileutl.cc:612 -msgid "Problem syncing the file" -msgstr "Проблема з синхронізацією файла" - -#: apt-pkg/pkgcache.cc:132 -msgid "Empty package cache" -msgstr "Кеш пакунків пустий" - -#: apt-pkg/pkgcache.cc:138 -msgid "The package cache file is corrupted" -msgstr "Файл кешу пакунків пошкоджений" - -#: apt-pkg/pkgcache.cc:143 -msgid "The package cache file is an incompatible version" -msgstr "Файл кешу пакунків має несумісну версію" - -#: apt-pkg/pkgcache.cc:148 -#, c-format -msgid "This APT does not support the versioning system '%s'" -msgstr "APT не підтримує систему призначення версій '%s'" - -#: apt-pkg/pkgcache.cc:153 -msgid "The package cache was built for a different architecture" -msgstr "Кеш пакунків був побудований для іншої архітектури" - -#: apt-pkg/pkgcache.cc:224 -msgid "Depends" -msgstr "Залежності (Depends)" - -#: apt-pkg/pkgcache.cc:224 -msgid "PreDepends" -msgstr "Пре-Залежності (PreDepends)" - -#: apt-pkg/pkgcache.cc:224 -msgid "Suggests" -msgstr "Пропонує (Suggests)" - -#: apt-pkg/pkgcache.cc:225 -msgid "Recommends" -msgstr "Рекомендує" - -#: apt-pkg/pkgcache.cc:225 -msgid "Conflicts" -msgstr "Конфлікти" - -#: apt-pkg/pkgcache.cc:225 -msgid "Replaces" -msgstr "Заміняє (Replaces)" - -#: apt-pkg/pkgcache.cc:226 -msgid "Obsoletes" -msgstr "Застарілі (Obsoletes)" - -#: apt-pkg/pkgcache.cc:226 -msgid "Breaks" -msgstr "" - -#: apt-pkg/pkgcache.cc:237 -msgid "important" -msgstr "Важливі (Important)" - -#: apt-pkg/pkgcache.cc:237 -msgid "required" -msgstr "Необхідні (Required)" - -#: apt-pkg/pkgcache.cc:237 -msgid "standard" -msgstr "Стандартні (Standard)" - -#: apt-pkg/pkgcache.cc:238 -msgid "optional" -msgstr "Необов'язкові (Optional)" - -#: apt-pkg/pkgcache.cc:238 -msgid "extra" -msgstr "Додаткові (Extra)" - -#: apt-pkg/depcache.cc:100 apt-pkg/depcache.cc:129 -msgid "Building dependency tree" -msgstr "Побудова дерева залежностей" - -#: apt-pkg/depcache.cc:101 -msgid "Candidate versions" -msgstr "Версії кандидатів" - -#: apt-pkg/depcache.cc:130 -msgid "Dependency generation" -msgstr "Ґенерація залежностей" - -#: apt-pkg/depcache.cc:151 apt-pkg/depcache.cc:170 apt-pkg/depcache.cc:174 -#, fuzzy -msgid "Reading state information" -msgstr "Об'єднання інформації про доступні пакунки" - -#: apt-pkg/depcache.cc:198 -#, fuzzy, c-format -msgid "Failed to open StateFile %s" -msgstr "Не вдалося відкрити %s" - -#: apt-pkg/depcache.cc:204 -#, fuzzy, c-format -msgid "Failed to write temporary StateFile %s" -msgstr "Не вдалося записати файл %s" - -#: apt-pkg/tagfile.cc:102 -#, c-format -msgid "Unable to parse package file %s (1)" -msgstr "Неможливо обробити файл %s пакунку (1)" - -#: apt-pkg/tagfile.cc:189 -#, c-format -msgid "Unable to parse package file %s (2)" -msgstr "Неможливо обробити файл %s пакунку (2)" - -#: apt-pkg/sourcelist.cc:90 -#, c-format -msgid "Malformed line %lu in source list %s (URI)" -msgstr "Спотворена лінія %lu у переліку джерел %s (проблема в URI)" - -#: apt-pkg/sourcelist.cc:92 -#, c-format -msgid "Malformed line %lu in source list %s (dist)" -msgstr "" -"Спотворена лінія %lu у переліку джерел %s (проблема в назві дистрибутиву)" - -#: apt-pkg/sourcelist.cc:95 -#, c-format -msgid "Malformed line %lu in source list %s (URI parse)" -msgstr "Спотворена лінія %lu у переліку джерел %s (обробка URI)" - -#: apt-pkg/sourcelist.cc:101 -#, c-format -msgid "Malformed line %lu in source list %s (absolute dist)" -msgstr "Спотворена лінія %lu у переліку джерел %s (absolute dist)" - -#: apt-pkg/sourcelist.cc:108 -#, c-format -msgid "Malformed line %lu in source list %s (dist parse)" -msgstr "Спотворена лінія %lu у переліку джерел %s (dist parse)" - -#: apt-pkg/sourcelist.cc:199 -#, c-format -msgid "Opening %s" -msgstr "Відкриття %s" - -#: apt-pkg/sourcelist.cc:216 apt-pkg/cdrom.cc:448 -#, c-format -msgid "Line %u too long in source list %s." -msgstr "Лінія %u занадто довга в переліку джерел %s." - -#: apt-pkg/sourcelist.cc:236 -#, c-format -msgid "Malformed line %u in source list %s (type)" -msgstr "Спотворена лінія %u у переліку джерел %s (тип)" - -#: apt-pkg/sourcelist.cc:240 -#, c-format -msgid "Type '%s' is not known on line %u in source list %s" -msgstr "Невідомий тип '%s' в лінії %u в переліку джерел %s" - -#: apt-pkg/sourcelist.cc:248 apt-pkg/sourcelist.cc:251 -#, c-format -msgid "Malformed line %u in source list %s (vendor id)" -msgstr "Спотворена лінія %u у переліку джерел %s (vendor id)" - -#: apt-pkg/packagemanager.cc:399 -#, c-format -msgid "" -"This installation run will require temporarily removing the essential " -"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " -"you really want to do it, activate the APT::Force-LoopBreak option." -msgstr "" -"Для виконання даного встановлення потрібне тимчасове видалення важливого " -"пакету %s через конфлікти/петлеві пре-залежності (Pre-Depends loop). Це " -"погано, але якщо Ви дійсно бажаєте зробити це, активуйте параметр APT::Force-" -"LoopBreak." - -#: apt-pkg/pkgrecords.cc:32 -#, c-format -msgid "Index file type '%s' is not supported" -msgstr "Тип '%s' індексного файлу не підтримується" - -#: apt-pkg/algorithms.cc:247 -#, c-format -msgid "" -"The package %s needs to be reinstalled, but I can't find an archive for it." -msgstr "" -"Пакунок %s повинен бути перевстановленим, але я не можу знайти архіву для " -"нього." - -#: apt-pkg/algorithms.cc:1103 -msgid "" -"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " -"held packages." -msgstr "" -"Помилка, pkgProblemResolver::Resolve згенерував зупинку, це може бути " -"пов'язано з зафіксованими пакунками." - -#: apt-pkg/algorithms.cc:1105 -msgid "Unable to correct problems, you have held broken packages." -msgstr "Неможливо усунути проблеми, Ви маєте поламані зафіксовані пакунки." - -#: apt-pkg/acquire.cc:59 -#, c-format -msgid "Lists directory %spartial is missing." -msgstr "Lists тека %spartial відсутня." - -#: apt-pkg/acquire.cc:63 -#, c-format -msgid "Archive directory %spartial is missing." -msgstr "Архівна тека %spartial відсутня." - -#. only show the ETA if it makes sense -#. two days -#: apt-pkg/acquire.cc:827 -#, fuzzy, c-format -msgid "Retrieving file %li of %li (%s remaining)" -msgstr "Завантажується файл %li з %li (%s залишилось)" - -#: apt-pkg/acquire.cc:829 -#, fuzzy, c-format -msgid "Retrieving file %li of %li" -msgstr "Завантажується файл %li з %li" - -#: apt-pkg/acquire-worker.cc:110 -#, c-format -msgid "The method driver %s could not be found." -msgstr "Драйвер для метода %s не знайдено." - -#: apt-pkg/acquire-worker.cc:159 -#, c-format -msgid "Method %s did not start correctly" -msgstr "Метод %s не стартував коректно" - -#: apt-pkg/acquire-worker.cc:381 -#, c-format -msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "" -"Будь-ласка, вставте диск з поміткою: '%s' в CD привід '%s' і натисніть Enter." - -#: apt-pkg/init.cc:126 -#, c-format -msgid "Packaging system '%s' is not supported" -msgstr "Система пакування '%s' не підтримується" - -#: apt-pkg/init.cc:142 -msgid "Unable to determine a suitable packaging system type" -msgstr "Неможливо визначити тип необхідної системи пакування " - -#: apt-pkg/clean.cc:57 -#, c-format -msgid "Unable to stat %s." -msgstr "Неможливо прочитати атрибути %s." - -#: apt-pkg/srcrecords.cc:44 -msgid "You must put some 'source' URIs in your sources.list" -msgstr "Ви повинні записати певні 'source' посилання в твій sources.list" - -#: apt-pkg/cachefile.cc:69 -msgid "The package lists or status file could not be parsed or opened." -msgstr "Не можу обробити чи відкрити перелік пакунків чи status файл." - -#: apt-pkg/cachefile.cc:73 -msgid "You may want to run apt-get update to correct these problems" -msgstr "Можливо, для виправлення цих помилок Ви захочете запустити apt-get" - -#: apt-pkg/policy.cc:267 -msgid "Invalid record in the preferences file, no Package header" -msgstr "Невірний запис в preferences файлі, відсутній заголовок Package" - -#: apt-pkg/policy.cc:289 -#, c-format -msgid "Did not understand pin type %s" -msgstr "Не зрозумів тип %s для pin" - -#: apt-pkg/policy.cc:297 -msgid "No priority (or zero) specified for pin" -msgstr "Не встановлено пріоритету (або встановлено 0) для pin" - -#: apt-pkg/pkgcachegen.cc:72 -msgid "Cache has an incompatible versioning system" -msgstr "Кеш має несумісну систему призначення версій" - -#: apt-pkg/pkgcachegen.cc:115 -#, c-format -msgid "Error occurred while processing %s (NewPackage)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (NewPackage)" - -#: apt-pkg/pkgcachegen.cc:130 -#, c-format -msgid "Error occurred while processing %s (UsePackage1)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage1)" - -#: apt-pkg/pkgcachegen.cc:153 -#, fuzzy, c-format -msgid "Error occurred while processing %s (NewFileDesc1)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)" - -#: apt-pkg/pkgcachegen.cc:178 -#, c-format -msgid "Error occurred while processing %s (UsePackage2)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage2)" - -#: apt-pkg/pkgcachegen.cc:182 -#, c-format -msgid "Error occurred while processing %s (NewFileVer1)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)" - -#: apt-pkg/pkgcachegen.cc:213 -#, c-format -msgid "Error occurred while processing %s (NewVersion1)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (NewVersion1)" - -#: apt-pkg/pkgcachegen.cc:217 -#, c-format -msgid "Error occurred while processing %s (UsePackage3)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage3)" - -#: apt-pkg/pkgcachegen.cc:221 -#, c-format -msgid "Error occurred while processing %s (NewVersion2)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (NewVersion2)" - -#: apt-pkg/pkgcachegen.cc:245 -#, fuzzy, c-format -msgid "Error occurred while processing %s (NewFileDesc2)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)" - -#: apt-pkg/pkgcachegen.cc:251 -msgid "Wow, you exceeded the number of package names this APT is capable of." -msgstr "Ви перевищили кількість імен пакунків, які APT може обробити." - -#: apt-pkg/pkgcachegen.cc:254 -msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "Ви перевищили кількість версій, які APT може обробити." - -#: apt-pkg/pkgcachegen.cc:257 -#, fuzzy -msgid "Wow, you exceeded the number of descriptions this APT is capable of." -msgstr "Ви перевищили кількість версій, які APT може обробити." - -#: apt-pkg/pkgcachegen.cc:260 -msgid "Wow, you exceeded the number of dependencies this APT is capable of." -msgstr "Ви перевищили кількість залежностей які APT може обробити." - -#: apt-pkg/pkgcachegen.cc:288 -#, c-format -msgid "Error occurred while processing %s (FindPkg)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (FindPkg)" - -#: apt-pkg/pkgcachegen.cc:301 -#, c-format -msgid "Error occurred while processing %s (CollectFileProvides)" -msgstr "Помилка, яка була викликана внаслідок обробки %s (CollectFileProvides)" - -#: apt-pkg/pkgcachegen.cc:307 -#, c-format -msgid "Package %s %s was not found while processing file dependencies" -msgstr "Пакунок %s %s не був знайдений під час обробки залежностей файла" - -#: apt-pkg/pkgcachegen.cc:678 -#, c-format -msgid "Couldn't stat source package list %s" -msgstr "Не вдалося прочитати атрибути переліку вихідних текстів%s" - -#: apt-pkg/pkgcachegen.cc:763 -#, fuzzy -msgid "Collecting File Provides" -msgstr "Збирання інформації про файлів " - -#: apt-pkg/pkgcachegen.cc:890 apt-pkg/pkgcachegen.cc:897 -msgid "IO Error saving source cache" -msgstr "Помилка IO під час збереження джерельного кешу" - -#: apt-pkg/acquire-item.cc:127 -#, c-format -msgid "rename failed, %s (%s -> %s)." -msgstr "Не вдалося перейменувати, %s (%s -> %s)." - -#: apt-pkg/acquire-item.cc:406 apt-pkg/acquire-item.cc:661 -#: apt-pkg/acquire-item.cc:1411 -msgid "MD5Sum mismatch" -msgstr "Невідповідність MD5Sum" - -#: apt-pkg/acquire-item.cc:1106 -#, fuzzy -msgid "There is no public key available for the following key IDs:\n" -msgstr "Відсутній публічний ключ для заданих ID ключа:\n" - -#: apt-pkg/acquire-item.cc:1219 -#, c-format -msgid "" -"I wasn't able to locate a file for the %s package. This might mean you need " -"to manually fix this package. (due to missing arch)" -msgstr "" -"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч " -"виправити цей пакунок. (due to missing arch)" - -#: apt-pkg/acquire-item.cc:1278 -#, 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 "" -"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч " -"виправити цей пакунок." - -#: apt-pkg/acquire-item.cc:1314 -#, c-format -msgid "" -"The package index files are corrupted. No Filename: field for package %s." -msgstr "" -"Індексні файли пакунків пошкоджені. Немає поля Filename для пакунку %s." - -#: apt-pkg/acquire-item.cc:1401 -msgid "Size mismatch" -msgstr "Невідповідність розміру" - -#: apt-pkg/vendorlist.cc:66 -#, c-format -msgid "Vendor block %s contains no fingerprint" -msgstr "Блок постачальника %s не містить відбитку (fingerprint)" - -#: apt-pkg/cdrom.cc:529 -#, c-format -msgid "" -"Using CD-ROM mount point %s\n" -"Mounting CD-ROM\n" -msgstr "" -"Використовується точка монтування CDROM: %s\n" -"Монтування CD-ROM\n" - -#: apt-pkg/cdrom.cc:538 apt-pkg/cdrom.cc:620 -msgid "Identifying.. " -msgstr "Ідентифікація.. " - -#: apt-pkg/cdrom.cc:563 -#, c-format -msgid "Stored label: %s \n" -msgstr "Записано мітку: %s \n" - -#: apt-pkg/cdrom.cc:583 -#, c-format -msgid "Using CD-ROM mount point %s\n" -msgstr "Використовується точка монтування CDROM: %s\n" - -#: apt-pkg/cdrom.cc:601 -msgid "Unmounting CD-ROM\n" -msgstr "Демонтується CD-ROM\n" - -#: apt-pkg/cdrom.cc:605 -msgid "Waiting for disc...\n" -msgstr "Чекаю на диск...\n" - -#. Mount the new CDROM -#: apt-pkg/cdrom.cc:613 -msgid "Mounting CD-ROM...\n" -msgstr "Монтується CD-ROM...\n" - -#: apt-pkg/cdrom.cc:631 -msgid "Scanning disc for index files..\n" -msgstr "Диск сканується на індексні файли..\n" - -#: apt-pkg/cdrom.cc:671 -#, fuzzy, c-format -msgid "" -"Found %i package indexes, %i source indexes, %i translation indexes and %i " -"signatures\n" -msgstr "Знайдено %i індексів пакунків, %i індексів джерел і %i підписів\n" - -#: apt-pkg/cdrom.cc:708 -#, fuzzy, c-format -msgid "Found label '%s'\n" -msgstr "Записано мітку: %s \n" - -#: apt-pkg/cdrom.cc:737 -msgid "That is not a valid name, try again.\n" -msgstr "Не є вірною назвою, спробуйте ще.\n" - -#: apt-pkg/cdrom.cc:753 -#, c-format -msgid "" -"This disc is called: \n" -"'%s'\n" -msgstr "" -"Цей диск зветься: \n" -"'%s'\n" - -#: apt-pkg/cdrom.cc:757 -msgid "Copying package lists..." -msgstr "Копіюються переліки пакунків..." - -#: apt-pkg/cdrom.cc:783 -msgid "Writing new source list\n" -msgstr "Записується новий перелік джерел\n" - -#: apt-pkg/cdrom.cc:792 -msgid "Source list entries for this disc are:\n" -msgstr "Перелік джерел для цього диску:\n" - -#: apt-pkg/cdrom.cc:834 -#, fuzzy -msgid "Unmounting CD-ROM...\n" -msgstr "Демонтується CD-ROM..." - -#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830 -#, c-format -msgid "Wrote %i records.\n" -msgstr "Записано %i записів.\n" - -#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832 -#, c-format -msgid "Wrote %i records with %i missing files.\n" -msgstr "Записано %i записів з %i відсутніми файлами.\n" - -#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835 -#, c-format -msgid "Wrote %i records with %i mismatched files\n" -msgstr "Записано %i записів з %i невідповідними файлам\n" - -#: 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 "Записано %i записів з %i відсутніми і %i невідповідними файлами\n" - -#: apt-pkg/deb/dpkgpm.cc:355 -#, c-format -msgid "Preparing %s" -msgstr "Підготовка %s" - -#: apt-pkg/deb/dpkgpm.cc:356 -#, c-format -msgid "Unpacking %s" -msgstr "Розпакування %s" - -#: apt-pkg/deb/dpkgpm.cc:361 -#, c-format -msgid "Preparing to configure %s" -msgstr "Підготовка до конфігурації %s" - -#: apt-pkg/deb/dpkgpm.cc:362 -#, c-format -msgid "Configuring %s" -msgstr "Конфігурація %s" - -#: apt-pkg/deb/dpkgpm.cc:363 -#, c-format -msgid "Installed %s" -msgstr "Встановлено %s" - -#: apt-pkg/deb/dpkgpm.cc:368 -#, c-format -msgid "Preparing for removal of %s" -msgstr "Підготовка до видалення %s" - -#: apt-pkg/deb/dpkgpm.cc:369 -#, c-format -msgid "Removing %s" -msgstr "Видаляється %s" - -#: apt-pkg/deb/dpkgpm.cc:370 -#, c-format -msgid "Removed %s" -msgstr "Видалено %s" - -#: apt-pkg/deb/dpkgpm.cc:375 -#, c-format -msgid "Preparing to completely remove %s" -msgstr "Підготовка до повного видалення %s" - -#: apt-pkg/deb/dpkgpm.cc:376 -#, c-format -msgid "Completely removed %s" -msgstr "Повністю видалено %s" - -#: methods/rred.cc:219 -msgid "Could not patch file" -msgstr "Неможливо накласти латку на файл" - -#: methods/rsh.cc:330 -msgid "Connection closed prematurely" -msgstr "З'єднання завершено передчасно" diff --git a/share/debian-archive.gpg.moved b/share/debian-archive.gpg.moved Binary files differnew file mode 100644 index 000000000..bb5ed5033 --- /dev/null +++ b/share/debian-archive.gpg.moved diff --git a/test/fake-status b/test/fake-status new file mode 100644 index 000000000..e1f5c1f36 --- /dev/null +++ b/test/fake-status @@ -0,0 +1,16 @@ +Package: libglib2.0-0 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 1376 +Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com> +Architecture: amd64 +Source: glib2.0 +Version: 2.13.7-1ubuntu1 +Description: The GLib library of C routines + GLib is a library containing many useful C routines for things such + as trees, hashes, lists, and strings. It is a useful general-purpose + C library used by projects such as GTK+, GIMP, and GNOME. + . + This package contains the shared libraries. +Original-Maintainer: Loic Minier <lool@dooz.org> diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py new file mode 100755 index 000000000..837a25023 --- /dev/null +++ b/test/pre-upload-check.py @@ -0,0 +1,119 @@ +#!/usr/bin/python + +import sys +import os +import glob +import os.path +from subprocess import call, PIPE + +import unittest + +stdout = os.open("/dev/null",0) #sys.stdout +stderr = os.open("/dev/null",0) # sys.stderr + +class testAuthentication(unittest.TestCase): + + # some class wide data + apt = "apt-get" + args = [] # ["-q", "-q", "-o","Debug::pkgAcquire::Auth=true"] + pkg = "libglib2.0-data" + pkgver = "2.13.6-1ubuntu1" + pkgpath = "/var/cache/apt/archives/libglib2.0-data_2.13.6-1ubuntu1_all.deb" + + def setUp(self): + for f in glob.glob("testkeys/*,key"): + call(["apt-key", "add", f], stdout=stdout, stderr=stderr) + + def _cleanup(self): + " make sure we get new lists and no i-m-s " + call(["rm","-f", "/var/lib/apt/lists/*"]) + if os.path.exists(self.pkgpath): + os.unlink(self.pkgpath) + + def _expectedRes(self, resultstr): + if resultstr == 'ok': + return 0 + elif resultstr == 'broken': + return 100 + + + def testPackages(self): + for f in glob.glob("testsources.list/sources.list*package*"): + self._cleanup() + (prefix, testtype, result) = f.split("-") + expected_res = self._expectedRes(result) + # update first + call([self.apt,"update", + "-o","Dir::Etc::sourcelist=./%s" % f]+self.args, + stdout=stdout, stderr=stderr) + # then get the pkg + cmd = ["install", "-y", "-d", "--reinstall", + "%s=%s" % (self.pkg, self.pkgver), + "-o","Dir::state::Status=./fake-status"] + res = call([self.apt, "-o","Dir::Etc::sourcelist=./%s" % f]+cmd+self.args, + stdout=stdout, stderr=stderr) + self.assert_(res == expected_res, + "test '%s' failed (got %s expected %s" % (f,res,expected_res)) + + + def testGPG(self): + for f in glob.glob("testsources.list/sources.list*gpg*"): + self._cleanup() + (prefix, testtype, result) = f.split("-") + expected_res = self._expectedRes(result) + # update first + call([self.apt,"update", + "-o","Dir::Etc::sourcelist=./%s" % f]+self.args, + stdout=stdout, stderr=stderr) + # then get the pkg + cmd = ["install", "-y", "-d", "--reinstall", + "%s=%s" % (self.pkg, self.pkgver), + "-o","Dir::state::Status=./fake-status"] + res = call([self.apt, "-o","Dir::Etc::sourcelist=./%s" % f]+ + cmd+self.args, + stdout=stdout, stderr=stderr) + self.assert_(res == expected_res, + "test '%s' failed (got %s expected %s" % (f,res,expected_res)) + + def testRelease(self): + for f in glob.glob("testsources.list/sources.list*release*"): + self._cleanup() + (prefix, testtype, result) = f.split("-") + expected_res = self._expectedRes(result) + cmd = ["update"] + res = call([self.apt,"-o","Dir::Etc::sourcelist=./%s" % f]+cmd+self.args, + stdout=stdout, stderr=stderr) + self.assert_(res == expected_res, + "test '%s' failed (got %s expected %s" % (f,res,expected_res)) + + +class testPythonApt(unittest.TestCase): + " test if python-apt is still working and if we not accidently broke the ABI " + + def testPythonApt(self): + import apt + cache = apt.Cache() + cache.update() + pkg = cache["apt"] + self.assert_(pkg.name == 'apt') + +class testAptInstall(unittest.TestCase): + " test if installing still works " + + apt = "apt-get" + pkg = "coreutils" + + def testInstall(self): + res = call([self.apt,"-y","install","--reinstall",self.pkg], + stdout=stdout, stderr=stderr) + self.assert_(res == 0, + "installing %s failed (got %s)" % (self.pkg, res)) + +if __name__ == "__main__": + print "Runing simple testsuit on current apt-get and libapt" + if len(sys.argv) > 1 and sys.argv[1] == "-v": + stdout = sys.stdout + stderr = sys.stderr + unittest.main() + + diff --git a/test/testkeys/mvo.key b/test/testkeys/mvo.key new file mode 100644 index 000000000..e1ab50119 --- /dev/null +++ b/test/testkeys/mvo.key @@ -0,0 +1,1182 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.6 (GNU/Linux) + +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 +XGNZaqeIRgQTEQIABgUCPxVtRQAKCRC7VaR/yQHDPnjcAJ9es1zm1Kbba+MQpMJ/ +W7LoojAEQACg/qe/YgPY8kc3XIT3GTAxt4uU2NqIRgQTEQIABgUCPxZZigAKCRDn +yduv41bvwEH/AKDAx7U7T+mag4+nQgJt3fVtBaBotgCfUc8zZ1GoO+4nl6J16HaS +383ZMoOIRgQSEQIABgUCPxcIVwAKCRB3+BUzuw7ox4LhAJ985s36sd3XVShLnNSs +oWwBCASHuwCeMR+G2M9etc91AwWmWTAa7Cm5oyqIRgQTEQIABgUCPxZaGQAKCRD0 +tLDMeX6/q2ixAJ9s5BGe4RAXi6h8crxOe69xY8Z2UgCfa95gIjyGx/78TvCxTld1 +rN6qsQCIRgQQEQIABgUCPxe0rAAKCRBGzFxj8xilakodAJ44FYFEomCpZ8fZiY/9 +kuQaxxSvagCgulF5/z2p5KjhzG3WB/ujP+VIhSSIRgQTEQIABgUCPxfUcgAKCRBT +trgdwTzuB6pxAJ95M7TpYjim9ooeyC1t8escuno0LACeOe4iq+6JWhZcow3us448 +Duvc+IKJAQEEExECAMEFAj8Whg2GFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBl +bmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9z +aWduaW5ncy9ub3Rlcy5FQTcxQjI5NjQ1OTc0RDhCMzQzRTgyMUU5NjI0ODNFMTU2 +NjJDNzM0LmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9w +Z3AvcG9saWN5L3YxLjEvAAoJEKseS2BGdWseknkAn1m1/xMVTIsJr18NZWVWaduY +SisWAJ9zpOZlUDvxUgygPf8qxpw/+QjhLYkB1wQTAQIAwQUCPxaF/4YUgAAAAAAa +AGNzaWduYXR1cmUtbm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4u +ZGUvfmJiL2NvbnRhY3QvcGdwL3NpZ25pbmdzL25vdGVzLkVBNzFCMjk2NDU5NzRE +OEIzNDNFODIxRTk2MjQ4M0UxNTY2MkM3MzQuYXNjIjMaaHR0cDovL3d3dy5wZW5n +dWluLmRlL35iYi9jb250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZRS +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 +CRCUT8anamoLvKHtAJ0TyFAX6asPnzbpFBjLtY6bzFqeBgCeMUofVcspoa/0/YBa +A8hSD9Qd/I6IRgQTEQIABgUCPxvrDwAKCRDYDvNai7Unr5ilAJ46rCD0b3Ywssdg +c/bBBUS9kgUzkACguVCo26BCv86vOgOBe2wQr9qEPZKIRgQQEQIABgUCPyfZIgAK +CRBvI4vCT9paDCFcAJ96KZRIVSLr+IrMrYoHd/H4r/R9uQCgioG+kSWctJYlqMxo +4fatptDbM4CIRgQSEQIABgUCPyfefgAKCRCfzyzNPz5kJqT2AJ9qA0P5h9X1TZ2t +ckVTEt1NRX9ydQCeOsbIvSvlfxdI72Bbpb6Uj8k1uwaIRgQTEQIABgUCPygYAgAK +CRAEMjbrEHMZdzbaAJ9TNJBBoYV7cPOsEtIm4546RqsOgwCePRaDLbRQ+zojgFYE +0l7c5G2kacOIjQQTEQIATQUCPyjtT0YaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo +b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ +EKR5zcRatGBq87MAn0fdtv+HO8PkzE0jwcJTFq2mBMVAAKC/cq4wlxqxRnnHq0QB +vHPbR1ZKv4kBYwQTAQIATQUCPyjtWUYaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo +b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ +EPl8+eM6S39dX/sH/3xKPJriQO+GAhgL206tg3CC0HD7szn4zstqcokgLuIDhnBU +dnEHq8RH5Cm9y31wfSJBhs3dhJD6cLEBKxZmO05T2eklYeGyhRzL2MH7PAj5oIHx +Xds7ue9k1OJbBlEugj0SQaO3twWv8DM68ynpSV89r7vYQXDIB+rDJBSUy38f2Sf6 +QEf31nThMgOo3zxg0HTnFqTZxF/Zxl+qXb29g/LIVo9Ro95AI62DDLbeBbo3ofX6 +pb9+iLLBO7gEp+jzLYWITpbS3yG3N+3kxJUSxHFkTVVnKUWdkkF2ba5VcdWOU8h0 +qCjds6Bd6AL9r1d9+OTAGNJo1/hKJmHB5i71HAmIjQQTEQIATQUCPyjtZEYaaHR0 +cDovL3d3dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5 +c2lnbmluZy52ZXIxLjAudHh0AAoJEHkFdo91hPXYWbwAn0wIO2rpKpKPbfLlYPLR +qogcYL7MAJ43Jo7qeNvX7+R1Y2egJKUMtJv/GIhGBBMRAgAGBQI/KO1zAAoJEPnQ +FPA4yYWN1J0An2MMMdigRu72LLgPs9y+N/OcBo53AKDR4YObuiiSusq05/0/IpRP +SpyFUohGBBMRAgAGBQI/KO1+AAoJEF0Pf0ng5J80GzgAoOw2yq4lnPopbXJT7NbT +SzYUdQhpAKD5nJtD1PBQfMEWX7+E9Q2eeq5LMIicBBMBAgAGBQI/KO2JAAoJEBuw +i78qkjIl634EAI1vXWW3JV4mRLWURiatAXE6ELl1t6zkcacP+VfsSpABqKw+/6Ga +rnpnS4/9Eg4RC9F1uHcx3HrZiWoJMdrmJX89QHuCF7t4d7DJk9HOSlL3LkGCe9m+ +Z1rflATrtr1MykMly8P2w8GeEsegeP/qpXA5M0IT5R5Ydq8/bcDayvBXiEYEExEC +AAYFAj8tVsEACgkQLJg+WtKKVdaquQCg1IXH52P/zc3SAg2BS9fwUrFfT6sAoLLv +pZMGtQr4Ls1ENx1vLn2/5tYSiEYEEhECAAYFAj8ueAkACgkQEgljnRFKqFzSIACg +4Czty3NmmCDd7ZytqaDYpnluyZQAoNXXygq5k5mFRSrYBNbKLQ2pTmcpiEYEExEC +AAYFAj8tjjgACgkQTvSphPLKucgE6gCgh9l3Htk/cN9inNeozu2BxwCVnTcAn34l +GxnITs3t11dr5fgeWntxWojQiEYEExECAAYFAj8zVvQACgkQyg4WnCj6OIrOcwCf +WFi3qRdARzOjOzHc7e3wkE2Y1HIAn0sI6DnpFArA2q0B4+QATJtwNWNYiEYEEhEC +AAYFAj8fL+EACgkQ2tp5zXiKP0wi6gCfZqoOI9vrerzDqwaHpusmhWZNHf4AoLxr +H4N+VDTFpyf2fcF6kOjTdOI8iEYEExECAAYFAj85JnEACgkQRcAhR2mr3VTtWgCf +RkvdJ+JLLABz0Rf8jUElesJAKg4An0T9vtCGack3TYp20xrkVjB1Y5E5iI4EExEC +AE4FAj8fB3FHGmh0dHA6Ly93d3cubWF0aGVtYXRpay51bmktYmllbGVmZWxkLmRl +L35tbXV0ei9zaWduLXBvbGljeS0yMDAzLTA3Lmh0bWwACgkQ3oWD+L2/6Dit8ACf +eJyQ4Ug7UTwpgMM0bh6ivqV8O00AnR56LyPYir8xNMEDvhxW6CIXNZTtiEYEEBEC +AAYFAj81i3wACgkQadKmHeJj/NTf2gCeNIpt7nvOdpIk9TJvYTJSn6iLUaEAnR8o +uhq4erZO00NEtc4llNzaPfLSiEYEExECAAYFAj9ka/MACgkQZmZxetuDVnmoNwCg +0J/dSioWrpCswFEn0FjT/nDiSWsAni0xT8LTtc3rlMblmleweYHChwEQiEYEExEC +AAYFAj9kbAkACgkQDZZLZlcObeqx0wCfYoj+KssyUhVS56GB2WXKuc4sorAAn3Ol +tD2OAjvwcuLi87npRTTXQbtjiEYEExECAAYFAj9kbUAACgkQTgKsrh3Ws4Bt6ACf +cBrI0RT+qtOaq8ZASC0I3OAlM3gAnjR5oUgzTC+9U9M9jdpZvT0BeSSxiEYEExEC +AAYFAkB3KgAACgkQpD5tJxKCh+jl0ACeNPz/WFH/10uxp2l6/90dV+2ElwsAnR0k +7I7LxUR+O9SuzpPueEOYqH8ViEYEEhECAAYFAj/cWFEACgkQxRSvjkukAcNBMACf +Xfg1gsZGuwz9Dh61eZ43DrNYiQ0AoNtpKAN53n6fa7qEzw0o2cC8Y2soiEYEEBEC +AAYFAj/pG48ACgkQZKfAp/LPAaiEogCdGd1scuANXPxbF4w6df1zGChirXkAnA1w +uWcW0c0cO2HW3ABlahR6wPPBiEYEEBECAAYFAj/MNCYACgkQoL6dujuIbn3dhwCe +JqloDYulF0Gs33SEON55laT7fVUAn2QVkMisnawg0MbX6THp1pLAdBTriEYEExEC +AAYFAkB3tZAACgkQhnv5qfvT645O3gCeNCTIuIs9+6w3jqB7GQaLXXpUueMAoJSP +KUrk9dlxe74XK0fedbmaKSB4iEYEExECAAYFAkB4vOkACgkQzN/kmwoKyScqLwCf +c11cQ2SYeDBEFhxb3Qc5wFL/AXUAoI03ZmLsly+9p67WmuY114lh7jpmiJwEEwEC +AAYFAkB4wnAACgkQq/8HtEbzIS2zVAQAqi9LRR7bEeL/KZTYonpAs076eUkjxksX +2Ls/ecQ/3ERA9fze4Em0XHGOLAVzKw4MIv1oWRiyfzXb+6J2lGw8e9zQM33Y/Y9Y +Dq+YC0umSiPHtL+225dQdS4HXmfex6sDigG5sZ/cou8HYBwR5oIHD6QM0QUbfj+Q +plk19ZhEHxGIRgQTEQIABgUCQHnwrwAKCRB8O3lwiMfB932kAJ0f16e5tFae3JN3 +61C13Tx0ck3waACghmo7zp4EAuxr3FJW3cDeMeHR+1OJAhwEEwECAAYFAkCX0dQA +CgkQtWeUZ0c/fvoaHg/6A1i9isPv/kxiOEI9unftpwweApV3k61hxwrd6auy8Gt6 +2oa4/KgU2S6uZkUamO2hQpfNyXX9iTF0XhnHysKBDnyv3dmfNKAfHB/RCLqYWjWL +zABHvN65BLav4Dfa8yizbiwbx+pnKQomr13i1hcL3h35ATw49TagyJPQzCUNtfZu +C7Rj7QeMmmVM8VTqMRRAET5lqdUVuB1YHnc1kuER9JWYmatn0AnX2Szkj39gi08h +K6cq9mIsjCi15jhuY5onYeQmVsnfOBCZmJ2XyFzex8Kjlf6rZDrt67gRZAc9noov +eL4Ifw/Z2OXaWZqrNa+yvWR+y+0AXlxGzlZTKrSr7MFbsQ8vG06G3K68n2pX7iku +AVvF1RDkFZuFRrde6ggl99DlbngM2cgRJne4AzTKJrgzfOOUD6SLDFdaFTwDHP1q +kGPV9d2jN3ZOUG5ZusNbM+74e+3Oo7XLW1j011auC6SDrv6ndZQ9Z9vZdYw4tI47 +LWBxYmZ9CpC2GqCpstZiovYjB4RxrYiQNLVV9KkSLyoreHrBb5JLvgounK3W/3JV +qDdqg3ZZobP0JQh5UhavlxzwCK6idp+iBcUHC3CtEeytz2bExh49wLfmLWpEFAZz +l50A5fvvgj5AjeQiwGoTrD6I9l2KRu3fvmgXjZJAahZz3NyyDb/g9TS8fvY5c22I +RgQTEQIABgUCQJy1rwAKCRBDGjztotfSkrrFAKCtMRim/eEp1ZZQdLqghyfBv4KO +sgCggyFU/TEAQM4eiK7lZTZcDxkHt1eIRgQTEQIABgUCQN7OIgAKCRCzdT5NUUs+ +fElcAJ9H1NGrQc/RCdJO3XXpwazOqDlWsgCfVJAy3/dzjdTEXIuzunwcMOatemqI +RgQTEQIABgUCQOaoFQAKCRBxXtagfnuKyUNQAJ43EoKiOLUgJQmOhPX/Mfnx4C25 +cgCeKsuX7YXeCNS0xzT+00bbISBmEgyIRgQTEQIABgUCQQQIbQAKCRDbTMxLKjDX +KVk2AJ9DFIsf3VdcXXuD715uRFqDWOH/vQCfa7q9DAG/s0zdXQ+rPNQE63pqmb+I +RgQQEQIABgUCQU1UxwAKCRBLIOcA56zBhyyCAKDEcrORvNKFS6a8+jDCGXbWmd8m +VgCdF6IW+ohQTfxmbsWNqp8066ix2Z+IRgQQEQIABgUCQnIiswAKCRDT+ZXVd2r+ +Em3+AJ9iOcXpqIA9u99C7v30zr/WxgsEkwCfTLANSobqy/GLvVyItLjiGrEFp4KI +RgQQEQIABgUCQ7l+AAAKCRByHrGwzuRJeEZRAKDphuCQVBHnJ0jNRt5gE6ry7Bjz ++wCg3X1hA3hzleqMay8Kazhx5H1+712IRgQQEQIABgUCRBqs7AAKCRBBUuHxxnGG +/61lAKDr6KW9NaW7hf9+uQ0+sz58icccrwCgkvm+iYD3ROLubSn7ZmtTa2Xh1caI +RgQQEQIABgUCRBqtCQAKCRCqDNHu0ItH/tFCAJwL56EGCMAq/ojS4PlLwyWFlCnz +rACgjKI++vABdNS01zi30QJMSf6OS1uIRgQSEQIABgUCQfwrkwAKCRCY8qTu/+W0 +tm4fAJ9+N/ujThD65SquB2oBmyXsQTcBcwCdHvcqGVYM7/u0cZwY3K+jIAA0F6mI +RgQSEQIABgUCQnIN3wAKCRDz6FQA1wqv+UqaAKCjoNCBKl+bwWkdTGHuyXmlOZEI +jQCfVTKpX8xgxXHqv6k6/ulMOUD31YqIRgQTEQIABgUCPxvrDwAKCRDYDvNai7Un +r5ilAJ46rCD0b3Ywssdgc/bBBUS9kgUzkACguVCo26D///////////////////+I +RgQTEQIABgUCPxvrDwAKCRDYDvNai7Unr5ilAJ46rCD0b3Ywssdgc/bBBUS9kgUz +kACg//////////////////////////+IRgQTEQIABgUCQHezHgAKCRBsv4suVls4 ++UPzAJ43hajJMePyTwGZmhE077EeXOtXSwCbB27L/y+tt1DooFNT64/skgJXC/6I +RgQTEQIABgUCQdHolwAKCRDg0NExEXGwT+X+AJ4/oqNYw44Nxn/N1U10XRpumuJi +KQCfRJrb6+M7rLOidrXahHwMPkeBURaIRgQTEQIABgUCQjgRawAKCRCvc7YIqUBQ +r8bpAJ9UKImdTczoRmWQZJPu7niWnc/HDgCgihWFL/uI9cKn0vGVUcFHbeTNEx2I +RgQTEQIABgUCQj2ItQAKCRD4LlzASysrntXeAJ9JwtUtRj2W8n0JH/wtY0Rpb0/u +QgCfTcAzoL0d/zdonZ/FhkO37xLul4KIRgQTEQIABgUCQnI52gAKCRClBubU3U1Q +iJpUAJ4nQBuETnRFytABRiSMDvuK5hYrHQCfQXL1NfJx6AnyhfUbw0lxxmHgrpyI +RgQTEQIABgUCQnLGtwAKCRDdynmcYUNN1kMSAJ4oQy4OMkrgajvGeJDjQvLdJj53 +sACgiYCiSwosFpVz9oSCuQeZ7qsfSDaIRgQTEQIABgUCQnL5HgAKCRB3/iD+qmq1 +y7vJAKCjoEjo7K1aCa4RmWCxf1/0/Us+8ACffk8KjrIdrDJzVdM5NHXYcD4SOO+I +RgQTEQIABgUCQnMYogAKCRCf8lg+aBtkaRDtAJ0Wbit7y4DewNZiBCGAsGo66oif +qQCfSXKgIleO9Fddnreh8vC+Giw8B+yIRgQTEQIABgUCQnWmLAAKCRC7xv+5oCEv +5Ge2AJoD5QCB1+IlZXc3W4rkAo9YjxWtZwCgoI5I5XPDMuGsJuHSnEnOJnVHSzuI +RgQTEQIABgUCQnXM1QAKCRC+PO1Hxs6gya7dAKC7l9PQFrr9MyxLqIwSZzKAJk5Y +YACePNGy/wNgKhMtAzKuHL7jZhLZviqIRgQTEQIABgUCQnZInAAKCRBGxZjby+xf +gEg1AKCM3tdxh2s8lbraHdWScpUBu+6KIQCfaY/hU72wV17KVG9KXwETr4iH3E+I +RgQTEQIABgUCQnZLrAAKCRD+qzY2RbLXWyVqAJ96fiAU/WzVe5IDnokDrQBNYLlO +6gCeN4wtjZA0LYNfdJv+bfqvdltTEe+IRgQTEQIABgUCQncqMgAKCRAN5ydtXgV3 +8l/EAJ9GWZl7Gvl4kYK9i7asA6mIz9QlNQCgyVPu0fzbUigRBskerqJxYz0qOLyI +RgQTEQIABgUCQndHTwAKCRAO3cXyakXIFuBMAKCMtXYLJmQDdCSzq7qFfYTg9NZv +FgCbBQfXf2EpHAEQwopSz7tHCuHnBXWIRgQTEQIABgUCQnfNGgAKCRBKw5P7otBp +NrpLAKCJckctqEq/jDqEfcdHajtLJCznkwCg2sKvB/LlZtkOuoIneZfWx1/nnsqI +RgQTEQIABgUCQnjY0AAKCRBwmj9gO34W4VmZAJ9SymG9oRHzwTowbe4MAJWTKbj/ +ZgCgrzoZwzz5v/PY6bJr/oe1dTxjB72IRgQTEQIABgUCQnnJVwAKCRC81a2QeT9r +AqyeAJ49eMAaPQQw8ht3oKZGQlza4L+w2wCfcMvbc7JzONfXHCNywWgXx46YUp6I +RgQTEQIABgUCQnpNxAAKCRAf15DD8aLe1bmWAKCsZCQraaj3Ia2nzHgSasIlWP/j +zwCgorjV199hJOvdXBHhwRGyeCXBV5GIRgQTEQIABgUCQnpe/wAKCRB6b+tv/1LB +UK7sAJsHbW4PC8zevjnWXn40ihmDKVC/EQCg6X2LQ+1XGtzaRhhDUfy0GVAupd+I +RgQTEQIABgUCQnrUIgAKCRAGUeUmdLfHKrXfAKCeheZcLx9lUd5BUwa4bPYUAxKq +9QCbBJvviKSYdJxXZNlmld5S8YC428GIRgQTEQIABgUCQn7OEgAKCRA8Y8o/oLPo +ixoUAKDJeK/rhuKpG26/lRihhVo+64jR2wCglAqCyhcczML4A822cTShr16b3piI +RgQTEQIABgUCQn8UKgAKCRC4lA5tqXtpoA4rAKCwrHn5dsY/nuRdxDsQPtslJEDE +bgCbB7qvCrfdAXXYTpHH0Cd/Yi9ysp+IRgQTEQIABgUCQoJaUQAKCRAT3U4YLkTT +yvhDAJ9fb8ubNZE7PaVVzoO7o9YzRSlOawCgr57n+WuJ4mNJgKt5ZgC+95uzEJSI +RgQTEQIABgUCQo8wzgAKCRD23TMCEPpM0cqBAJsHXmTB4bzFtQL9YD9+xNRCR1ay +EgCeO+/L9mNHBDbQOAwZAR/mi0G8L66ISQQTEQIACQUCQnLueAIHAAAKCRC4lA5t +qXtpoO5/AJ463NgE78T3zHUXvOx6d5Ru+cyXkACeO3VkUyPyQbJIyM9sWEAgg8df +YySJASEEEAECAAwFAkK3NbwFAwASdQAACgkQlxC4m8pXrXxOyAf4jmnjn7d62EwR +rSdmF1j/mhMppsV4ESOdIv44tJm0Kw4WOkYZ/M+uE0Ti5U3sQrCoFe7aMSuZnJQp +XwEd4RlIPjGx26FyI2Pcn8rZsSB7wjarUjvS32pDMtrL3W8V68wvWeiBOnt77OUQ +3MLV1W6rVTKNCsGhrJwTt/EyjmeqqPxILvGTbDLtlwRrK1NtQZZHR1AVnJ75H1Ia +uyQUFzpI9TiY6lCALDhIPb6K4UlhI3Bqw8l4Ig76tgNa1JZoUTpyaDKM0qMKkPPf +Ne0/k8SsxlpDck2tyGJAFQIAzC6ekcUHK2QSlu73wIB8m35dvtahGYPmW39EdYAR +4rmFdCu6iQEiBBABAgAMBQJBzHa6BQMAEnUAAAoJEJcQuJvKV618YR0H/3alOq4a +MkPVB4ZN8iKNAx0Gg+cA4ykx3su4fuVfI1vuweZIPRLcGdGKubSjfiPOOpeljuwu +2/IQv70GHfucaRzHSRuDO2T+dShN+N6/IuckyeH8eAOuF2H2F0/otqRCgwOfM0mb +Rz5iR7/A6l59zBeL9TeZ8Bd+ZlaihRNrgsjdP1N/PJbkzithXxBPCpE87JHsNVdF +6yTRQgCG5T6J0v/wAJ4JkS4QGMJBBP2gK3n8sPS+Wo5sH6I8AflJQu6ML2By8pBV +03S961UU7xXv2ySI5/RhuOceLcxoLoS6xy4yrPtxVs4knQ/b18aSTa4UiiU4saon +m+nCasQDlFnY25qJASIEEAECAAwFAkHdmv4FAwASdQAACgkQlxC4m8pXrXxo+wgA +sU34Mms+OFXufehaXjXfphBvlI7n9n4gqX5/ihH9WcP2IKObNXAd3H1HcOelTeuW +uYDHdJ3yUF+cUN9+wDEzZsI5pYNqFmb3b2BcZMd1a7JItqC8Su3M73AXp5vCNjA0 +CCR5RwukWyIYeZ0GcIqs34NYCOBkT2+OLO0M5FegSUQ0B2UcPnPOSj983+I6ZYDy +9MCbJRXBhsGCFMPno3kfA5Ttaa2O/3iZwU7zanBjebeGcIbSCWDtKAXLx+cJfyyJ +JjAQ6irwOwr1Uyrum3JGJ9vA6flmHHf8YRmeT9A3j7UkDMjWC04+SeYCYlk3jJGP +tXJBUjKiijFc4PGiS/jikokBIgQQAQIADAUCQe6/8wUDABJ1AAAKCRCXELibylet +fLDDB/99+7DGQsYCwNMAgmmgsajK7Z+vz0s9cyZiLM3pQGdETqsGI6P4wC/eBGvv +r9QDzdPsEd+nffGD9gnqoTDN1NvykMip+pT1f4p1W69tRt2N/ibrAhaWgZLxVKh8 +XcKfHSjhWbuYg7S1qs2pUIHYsrDnCY9iwksFLHVv2DgiPvg7uoGx0acFsEwud5bg +BweMrN4BAOqOpTCXAL0zj24iutCILWywKs5o85NoMTEPiyqoM+n0a4bphpdfGBKO +7je8kJgy2XYrVyVzzewytNNE9mlBQRHBa5FNWEy4dQKoOtlXST/9YvOxZaAt9yIW +Si2YETUgz/xvYgOBPq2E39iywIRJiQEiBBABAgAMBQJCAI0CBQMAEnUAAAoJEJcQ +uJvKV618MmgH/03yS301RRPye1+aYDdSgccfZ+EdoAP+uZdXJuHVmBL5cdhBIcpF +Ryg4ACXiyLx7Q4ztsBEOB780CXswEhT0uTEyKSH2DaTQIyn8Ns/dd6ypcAU1+5Lk +gxUSMclzX+cSUQwuITuhZ14gQ8Dr7TLLcx7OpyLsKd4wBN8wW2KA7Fgp0FY5h9Ho +wvf+DUZRtLckMvXYkMNjO5U+Znb1My5/7y/KH+OTIJOf03J4O5m6+XyR42jUizp8 +UdRceXsSvZM3mskyGyv8xfMV4VsAQ6/CPPeoZWu7UY1OFIywTpfMX7s/hEE2XeJW +s/dOVJYrZ7HZDe8SKfqJuDs84wNsdVKzSBaJASIEEAECAAwFAkISWS8FAwASdQAA +CgkQlxC4m8pXrXzNGAgAhr8EN9rSNeldhN6+qCyzP2L/f9jd7GLMcuDzGNtzpkzo +q/WgVWs/SBe2uZ+uLNXdfcDG+I64fMdaji9UDqdGIybH/l0Ea2AfaLdR2/LYK2th +kfNWmySvN9sgwWaq8RPEKchRg0AsK1OKXjLByDPlB+vA81ObcjjhefKii3XVDSYp +2HoRXfSZ/Wc0/5JQKXPV5zdZBqZ6DAlWn1G+sSdXCZYR/X8s+m8VmT1qx9efWcnR +4jNfwQsgIbUWY1Fo7/tXGJ4nKywAk4LWZmM1dUkQyI3AZHNyPSXsbJoksAoQRFVT +ESn7PkUPsjOBMp0m3Uh0OUsUF5MgahqEtHQldXVEA4kBIgQQAQIADAUCQhapzAUD +ABJ1AAAKCRCXELibyletfEk6B/96IIV790+6BKmKPY0k8KJ+d8kUN2zo8sA5nIUe +0X/lEsIhVCIgjwEcPp/2Q3Rx+EV8abqHHjG2VgF4x7wJtKIabQZW/OQIS1snZe5j +66OTJbPPtLvFImdGQuy5uHHog/3ZaNO5EmqchaTsZPPhX1xbhXJlQuP4EXJ9+s1u +14LPaoZBHU/cgqYs+lOMeOHAjx282lX6X170x50PIubSz0B2VvO3rN1u+CNuLMTi +Qz+tv5vePNEtCmR3Hj50UnxkUe6r46fzA2Wb0YGNHbfbUY9nbQ10B7WUw6OaB9fT +j4nO+rS0ocw8txEziJXAeBOeIrSOB+/IcLsSKCjpj2J9JGoEiQEiBBABAgAMBQJC +KYicBQMAEnUAAAoJEJcQuJvKV618ioAH/i0A1iVSAMZSakBcBR+bP8iT3uLMoEkY +zWSlb+R7q33LQwWXgjix9Y/GyqFwCsYHDkFXBm/fYsErhRVDN6PLMWs7VAli8E9B +uOa68VDI+x4rVBUYvZ/KGP/7OavdKY3D/ZERSaP9m3wdEs9cdeSPAqnBhMtC8UkS +huUWUYwbRN5Ib96Gzwl3R0Z3WUKloGK5vbMchleXUXUUclAeFe5lJCwX2n24KCQJ +UWE2n9ervQHL9UOJoRedTUtOWPvJTTp+moy70NJJGgXstzcFHhuDxH4Y/gqj5hzp +UXJANq4rmkohkiNdBgV+l8RBFqNJ6yitRnwrYrIj0h4his/RY6cGwleJASIEEAEC +AAwFAkI9SRUFAwASdQAACgkQlxC4m8pXrXy7vwgAylGsb+kwxfkl/fxTDL9Hlcwl +Ek1NnXNmfbHryHh6iSg7PUvmrCFQ2ee+IUZcf1JR8BALI9gb093fFhWB7AxD+JTi +Lh/9AMuYbHe5fhDj7v1V+Nnu7WTP6z4Zqzt0UHDqdpmpy+uq1Q8Cg9k+21UxQ9s7 +mW7QBl8d5SOtb2XGiwl/HSUTv2tR572DYyGc9i+K9C/hIRtpnpJSaZjV5ZT6I3Z5 +XA72cfCCVU/FeeX7p/v6FqSEbr9/YUxbLt4eYZl6GRNDean1G9NIcZf0Ihi1fvuf +E8/zKNKUaf+u00TmEMi39troiRrEoziasITG9e7L3m9NgQJsxR0awR+N1DYcRIkB +IgQQAQIADAUCQk/AGQUDABJ1AAAKCRCXELibyletfMJBB/942fArMQnRknXJZw46 +Zhz/JTErKo1O1zCC1fzKgR8y+n7X8iEQsgWCoeFljpoxczzYixL98TSHXCtrXNAE +QIkIo78aufJpEgjEzX1Tgirn3RLteIg3kdzUwX5M9ZganWS+1VgzmycQs9UYN+tY +iTz3mN5bpJlK9Au8KjsNGRTMzR1pLUjc5eZwGWRN1HAJECqtsD0w0HYlHvGY6yfk +T9MVpH71BnK9pOorpJ+hTGD0Gw2O1k+pK8UBE1y9MvGK3K+WoTFihUbuT+aqf0KU +5QwPKrwvQe4yUrk4cpYjWIPBjhDkIll5yr19a199C3gsFoXcH8mbmh5AbKkj210d +PgXTiQEiBBABAgAMBQJCYiZaBQMAEnUAAAoJEJcQuJvKV618WboIAKLLpzY5c9yV +g/oOdwlb9tuQtdUt04R0t1wYeMYxed6Brx4/26fpXHtxUh1JfsJtzBpVMHBxnas0 +qWfZHywPyeDsXpWeSOYjGfAyGaN392e0ZtkPxWIx1KPaqnO3IVkg/D145De1A/m8 +Pd6OO/97ngFHg7C32EuS3YEfWaEcCo23qy/AvoRVbVmqXUJVC4aRDqg9rIl7juMF +C7oysjjMv7Qi+yLS7BNSRmO5x637Z4AZeJ0p48npd4HKbJKMXqmUBSLFhzUCMA0o +BeWxYld+sIHNW58tgkJuFfXQhXyY6dh4foh7roPqhIvI5lyxq0ZJoW76UrC0A5jI +t/qGskU5ym6JASIEEAECAAwFAkJizvsFAwASdQAACgkQlxC4m8pXrXxG0AgAk6hi +/JhLlElgbL3lL5KNOyAFssCcVwwrNufMHstpPJTFft1I4EGJpUdZLr8wUIvgxI8I +bZDEWn/J+B7uqFw+4iAdi82rTVZDqv62usotnXs0y5GPsPbWyICyDrmwSYeBnL7y +pDmXYu/Bf+H0Nx2ZCsw0zSIpHhPRc9Lv7q/ZJsGsxtF9FDHRheRf1wuZHhp5Vvo7 +KjSbl/KdezEOldULsZrQmTf1rTanrZnaYu+MSiL6A14+e9HG1OgykjvS/oQoefpy +gdkbvkBKirxMr8hPE2kUPc57FpQUcon5m3TcMh72NE5g9INPXlDv2j0yIKVaco89 +suxIAF86AV0D+xMYxYkBIgQQAQIADAUCQnU/cwUDABJ1AAAKCRCXELibyletfK+H +B/41TRknBVogdw63K9HNZkemH94eRXb1Y8bvw7F42oH0PTpcJOECphlBTzV22RnB +zH7zUt7oGM8FmuTCKbTds31B8Io1wSnp+7hm+2oLs5l7YhhrkjpBaVOisPu3zvwf +PS8Oo2qNBHp2TRfdWeP/dKlN6Pg64tzl49PJemJnhCi/Nse+zHr7Hm10jZAvQ7Sr ++JgJ/p/mhX1+L4xYqq2gqHzu0g5V/gOpFFyy8zsir5TyZViqSrsFtx+9usPAc2Kh +KqUXp2n58jXCW6wDKLy9L9plxshG2sp4RJ2cpi/+vz+LyZnoAAEuU/H5OxXC3izI +hn0fIyv6cVbmkoQkCqNl0VWliQEiBBABAgAMBQJChxEXBQMAEnUAAAoJEJcQuJvK +V618x+sH/3cplqFvGUxbm1oFFZNmp1aXy5im5m5cytJL9IYaiJtKuBPyAzUMzFLg +jcF6LDDhCZ/bPitecpjIQm2iNBj4ELqNot/UJdgRbfikN70dvuDWXeegTdhEPAXR +pSYoR5YDfeJeJT4ldxB2tO69tT+KrQZUaAZUceJjwsoZjXJa9aBWp1ecK3RRKVrl +CKqtApqZqgYk/RW09vogrvIQEQqjzclkIp0SQ/LxwTILgoy/bIMJZH2jXGgmQyXm +a/VT8GaNp9ioQ19nkORlHJqTrV5R+AeTmptGfJjGYZPhMO0wPU8I3aOtL5js7+PX +sqKc3+bqVXVzVObIG+x3aamHo+DkW9iJASIEEAECAAwFAkKJtlIFAwASdQAACgkQ +lxC4m8pXrXzNBgf/fJAoz8n7mRXeiBlSF0XFqpqrIKe0Hsl2nrSlRbUeEKMPLXOU +oFCuE73L5SBvT0u6xrxFpEVegPfeJ3AKlcTZYulA5LJSMsKTwcDSwDV6FjE5wEmg +1WwJ1E6Hw9p9MdUB0TIdrQx46yirymB+J2gLGnEMnjaw+3oVRCK/N61t6+3owX/3 +c6pN5FZfM5NgE+oN6EKTXE/teHm9B0OUSmq/xb+Rwt+xvMGLOuoh9bhA+nP5GvQp +xKPBeYbz+17dSV7IMBbWuIHCrKsgUP8ERScHcCYY0xjFLn2sfWExIiIHog5OGiob +9Wq0dwgQ23/2uX/zTgb3eqjWFmbqDKez9M+cYokBIgQQAQIADAUCQpuB+gUDABJ1 +AAAKCRCXELibyletfLzGB/9U2WMBn/SJpQA32jrNYOVsczX8dvgzJUA3dBJpOjBB +nP80ikAyEkzVcHa1xfoq2hptEdzwmaSYfYRFHb4oT6V3SvjwNYtyDBkaTqxdKW+P +Vy04fj0aGJL/cxLyMlYUybNo+cGxHfVwJWJA4VF/N/IPyx1VLeqTQnA7Brl89/ji +9VkRXtfLMF+WfY07XuAxQEvP3pShDlHzGMhPmkUQmdHlnBRgtLIZZDMZhK6cxVln +qudqR99MyDg7yq26ESjybrtSxCypF9xpa6iVnis3cMKi3S5Vp98oaH2Haof0qNJi +p0bd5GKe39xyzlzyS2xp1YpqELqy0Up9cADkc5nKsTqhiQEiBBABAgAMBQJCnNMK +BQMAEnUAAAoJEJcQuJvKV618RREH/jMt5I8jSpnlaHxe+B8eJA1Kl/kG77Op4s8x +6BljyqiXXDHNULILfBmC22mvEpTvOyxiWh8E6olsFTo9epgjh8coYYtxyBXKRY6B +y6F0Z16BG2vmByhkySc22GVJNEeZ8p849zonBSG50uHnttjAMlAS2duapzhhhI61 +RQ+4eF/TtPKghZGu7eGXqWR8ztVNaUNkvhu3nZneyU+OEZKn7LM0FY2oO5ZqnUGV +O9/HtRmLUluqrmsTfeMJxMa97n/+zIFKqx7VDIwA8SV0qMbnFw929wtKTG+Av4jU +9Mi+WjudyC/DYQM6Z2aGj6Jzq9O8yG/vzZRW5UQ7UB0o0RWKOVmJASIEEAECAAwF +AkKv7KcFAwASdQAACgkQlxC4m8pXrXySQQf/Vf48FIUYYVflloKQj/rAMyEt71o/ +qEEt9YfkhPg+vpoe+EWKgGatxpc82mHf02u/Q66kpv2jFvrN/boVG7g2p89f8K0V ++UYT5b5RREu8z+DaNPSwb3VCCZ6eXIjPyfRvP6GVBtbWOIZHSgHAWYuKGp0mVv42 +SVLYRx94+gp6AnnljQTjkYA/u7hDYUU/gqvUQlQL3QPgjL3iDGlkxC5Nwv/NMnAI +8Z7wp/Ol8++77yUC+OhsDhP+9hxXP/BzVhSWzXFlLBPIYmJ82Rnc81YGo5l/4QuB +noIjuDMCb/fydMMRpc+L/bgS0Cakqm0G0Ovi7h29kbJqlDv6s31t7fSjz4kBIgQQ +AQIADAUCQrSPawUDABJ1AAAKCRCXELibyletfE6iCACsegwbn+aU+gmv3qYxHafd +5coPwq20CnY7Db6iDeCytcN+IoqLX7v6fSUQgW1lsQDZaT4c638Z8I77OIGdSGA9 +ChuDk1U9pe36caHAHhDXkrzHv7w3tDrRnpEj0GJyo+OmPz018OFkzdpI9Tk775Xk +jYlxJooKEnTbggo/B4fKclSoUU4ADBvTt0P45E7tWlr9uqvN87yW/YGy+O6aDxM8 +Eq/8vrgZr7mYyE1M3ZINvaFg5dhPWmOqxOUqSt/SORg/S/w++uOTPeu9qf+yGg+B +jYNUJ9hIu7a35ruE5e3asQMPEMup8Iurckixorh1FKwRtcwAqjegDDxn5dPTMuQc +iQEiBBABAgAMBQJCyQdJBQMAEnUAAAoJEJcQuJvKV618OOYH/j96LP1Mvdc2hqkE +fnsuACOjJ+onzupaacez0jgXjmoRKqKLuBLCPmWModmzz0zR4uYWQJNBEGvZRBQL +yIip3gTa6xs/Ak3bI4keX8q9W9uiy9pzu7D3hM1asGFOruwNtgwxst7ppj9NUkN7 +SyRgR4qHFUm0YvY3ZvfHA78u2zLK00D64rmG8VNddrymP1TASYq0TFNZhXSUyfIQ +xFk4M4axGB9KfnYNIFUJjai1ZHw1xYVm2V3gsRcHBr8UC/MsuZNCfmzH8uZN/pWX +icFYqNwj/Nmp5Iio111gBNbqui0FzkeMseM9K7j5iHd4SbNykTAb1TQ3goPkdQuM +m6TPTXeJASIEEAECAAwFAkLQ+IQFAwASdQAACgkQlxC4m8pXrXzBfQgAglVzFEla +U5BD91ZfcU8pq/pj96VnHoruSKS17Y1reHt/Fot5qG2ocYU7FQv7ybF649sWLc13 +mFqNn9n01fy5FgaDguu/XeR+IDyXQbduplBZC0bpU4RLcPxr+esjNyckQR0TlRr9 +xQv6AbJ0BPr7sFgle5ntZTi43KnHOaW3SmaZPx2VST29KoHPzJj+5PrT50WavQHv +55kUGGJVF0/J47pSMH8HJmTld9O/luFMhg+ih1Sya7i/jNYIgFe4XxPAzNKPweyw +VobvpX5n/ohZTjctmELz7+CBQn2DKrpCr43TXqkR9Gnr9nrUOAOIctg6dpaN6VG+ +N4+l0winEbGQo4kBIgQQAQIADAUCQtGddgUDABJ1AAAKCRCXELibyletfNnhCACa +FcXOPg3JBbBGeUd7fIc0hHSNZO7yi2h2uvEPoIGfRZb82NyoXErWpce/N+h0a+Yv +8xiE35k3l1ZtfuFlwcdjCa9hk+yZ8hUqxo+e8AUGa675JZNcm366PylUW3iPmQMg +d+Bmi9DToXAXkWjq/lDUNRC0mvDdYPC5PyQcfm7350VOP6tb33VjLA6IYPwIiPvF +mMlXujFV0Y85KPugpcYLrInNelxcJYwQu0YMsfUNEMa2MQA0TOSiB4NzsjVk3Tbn +r7OQXhbukVRug8nkNi3jYtGo+mI1suq3aaToneM8Y1JYWw2PltEF098pLHH/ee0h +AmyC/r6MBFmNIyzNHQH3iQEiBBABAgAMBQJC42W7BQMAEnUAAAoJEJcQuJvKV618 +ZjkIAJzDKDIwUWwKRNL8pWYMnbKDGnF1Avw9U2+5VpodhismlHJxeRBel4ZyL1EY +u+60V0CliJB4I4wxh9UULVnjbH/fTVf/o+QJ6hfcZAY/IXIwSVzz7FJpe5V0jeXz +EXPwvILAGQnZwH3LEJ/lza2BR5e4FvSKGugmfdXUlSuUG192SCFAn8tpAd8PXrwi +3aDhv3REsL5lxF9nfRtOPwMxIwiqAh8XgjEgJ3gbbdBFkfWf7Q4lziE/1rDUs1W8 +5OTNleII/eK9fdWAsma5qQqSdsDuR9/eey5XCMIhv/lovIYXzZjGjUFdJLMix/uO +rlvG/cNIpy488x+yCbDSeTrM8OqJASIEEAECAAwFAkLspEwFAwASdQAACgkQlxC4 +m8pXrXwx0wf/f6lej0+Xwqppwfdxiok/2dno11mWeUCDhCX6j6Vb5lxLemBwQCBS +u53V9s6wcOT3NzkwGbl9Rowasihcg/pC5mg1o4I/mMrU63yto3iekK+0vneubm7j +Zw9dY7aLzFdQm1SLnX2zJiC8Fv0zAJQWuiS0Bsj6MZl8+in57BGUi0E+n9Q4+qnn +PVS8UBO8f+d3xlsMnOSf8IECCN4QqkI6d/RuKszBA40UzQ9JoZVHV3Kxoms6yJHc +DI24xUkVqmo5E9qRdLt+mRblsFcfQqZbfc2v1kYI6+0fvkF3cFNOlC24c2ctN80V +eMr63neRBiFSltaTCBT4Rh5Wu/jLTBL82YkBIgQQAQIADAUCQu1LBQUDABJ1AAAK +CRCXELibyletfPrIB/9NEKKNoNfA8dscM1MN9hlITxbB2QDgm5jj1Cv/3lskBGUw +GoStC8szJv8etlIxHnKafGglyZXdQycOIodccKcieZigsJA7ap5PdgAQUG6FRQRb +tt7+hWx7FYEPDJsYca5FYEu+7iWHtRNu/lNjSJLmDbMTrmwP2BOglqlt2CktWWSU +jJMx35OkO4G7TBO85EKnepm7MTtVdPr7WxtSOnsBlWOKk5a5mDSRIrofhBumhjwj +NgGS6pAyo5MxJspCH/tUEocVMSDeHRgngD9GbfMC+FvssbgJI2barzvkHvuXBSla +bf8+IF5WOxLgBE7SmeBAcC3nphEUm0ZE/qyTXYVqiQEiBBABAgAMBQJDBw4vBQMA +EnUAAAoJEJcQuJvKV618IYwH/3d5XhOyfHHtqm8gceIBiy3WU/TYsYfpKBTYDkYa +IYqOxI1DVIIIsDvoyUvLiEc+0mvnyKGCyZGFOYXxlSGGwyoDz3ABns4eEp477BqF +xCN291aP5f8GdHOqH5jm7Wv/OTwajuYt+KCtuqQZo89070hmo6JN/+okI81Wa2uu +ZDNnlxjLYtG6NVrTzg3thvouohzH5WHMuhWahF0sc5tRhbG0NBoF57zNEOL5P13G +Es6skH1evhqJ2Yq4yF7qtITrkuAPvNYoTRrsl2S3QbWzgoE8cp3oVj2m5OZ5KV6n +aTdKmuKbWmDNoh1F6cMZJ7OD+oZW1WpSWhrS/j/uNNUWiZeJASIEEAECAAwFAkMI +YnoFAwASdQAACgkQlxC4m8pXrXyB4wf+L7SbCUfqQJB04bM5e5cgL8r0/wOqAJsB +2XZssSrgSZrxJrZbZuNPdjemexR0vyA0ZaIKb7jykJnnMgRZxuHYAPcctw938BQ8 +LjYMfuvAmv4Sfs937j7x7IsoEff4uIl+ZC3000i2bERXgUbiZULx+PFdg8cdAB6o +ZUbs8Jf9fg6/qP8sz/Wo/DhHW9CW6sSsccVfORVTiHTSGA71VYR2R+WFBi9EVl++ +1puu9yYz/dWc0m33Fl2R+ehiSV0xiSQnHSpSYMUdqViPsa833z7QTvvzh/9sWNHm +28TRTdHLEXYQtKTcCeRQl3Tul+Ch5cU8WUqPN9DIRk1QNAro4yp9rYkBIgQQAQIA +DAUCQxBNOgUDABJ1AAAKCRCXELibyletfEYKB/9GIKfaAtg6rYVhnruE0JT+c/zA +M0ncuMiTSDOr/WxPE6ABpj1wAyrVbyTpfC75jyi7dLdUkzjaj6A5URtIurl4hlra +oX6yVtx/VIFlBQG9Spuf9a4va/frDAF9sxorascozjvYD8F3o/5lHQ06ZsWCENI4 +CO9zSEVV/E+Jj1njto9fl4HPF4IT37xCaNoi5rby9tnaWktEBVqn22o3TULQdZet +SYEfG6sF14MOMXfkfkMoV954tqVw7as5A3F5bDiCsNQ1eG4g2Zytw6Cl0NSQTXOs +gZg45uam2ZohiCV+FuItaj/oETzdZI2BvJV7DYTNR5SNKlzoxhfT4AAiZc6niQEi +BBABAgAMBQJDEPMBBQMAEnUAAAoJEJcQuJvKV6184vsH/03ofz2nVb2a2f2Wy35R +k83tsUOeGbbxwOfV+zxOIeNhtsdRdMB9Ij61R9EUSAXQdcYDb1LWTXOS52FdMI3E +UCax7/JY/rE25vwHn4nkqtvATLoTclw+geoRfDq9E3fqmJkdd5lsCsvbvajodQa8 +8hQQ9h3hprEy3axQNWdTg2XvszOJ1TVe/dOIzi8NIGpHSC8sl+8513Kc8u/14TSo +Om9VceuLfmrjd8yw0qfbYCytkLPxLT96DcQpE1ARiDe7kd3g2Fe86zCviHrsA6Pk +dgRPp++evAL7AAbTodXXWexST/b7hkHlT2P4XLKvjrThAUYE6Z+TEYsFiomSb/pL +zWGJASIEEAECAAwFAkMSQ9cFAwASdQAACgkQlxC4m8pXrXzb2QgAq8v2+SYhN5YN +cWApllLkWzQezrsZ8x7CJ2fqrvpVsQzJulyo5RHoz3DmiYUr7+7/IcZEQFc9BuhC +fOI+Emu26QoQgqHH36bzgAfOgyVUjQW9PqCsBWNXtgl16dU8p8TeCD6+EPktY7CK +cXwBTRQVrWlCuKOMwkCDILe+hcNCkJzjLq8I7n3sJulk5ti75Yz09B0zZTDX74zS +lleh55rj6Mff1Be/zkTucWqv3oHKUwVHylXgkgiyW1J0GHU6cky2sPjh4GvovvBw +V+4uHlJ//WARK6Fmd6avjpByvAMU8lxiRcQrTQrFSEFzBOkMhtfFiGVXg0hTLuwf +3LEthKf++IkBIgQQAQIADAUCQxRCLQUDABJ1AAAKCRCXELibyletfIKgB/0fuFUy +r6qnJD/XvAtnBvEf3qCDa82Gs03wqZaEPTrUqWmX9b15yd1HNyby4c3/x5U7Fzn3 +QN5LDQsU6pT02LfLaPSsGUQu5DGm/j9g2tEfOSfrvNssZuIFCx7BXXih7vrkXX9H +SHVWyJYsJICECKOkCtEv+eOAIXpSx8FHdPq9qSQpJGkbg5V1Zm3JfqvwdwP3ztnM +GBFDhEBy8EaG9cniFvh9IdOeifvCB924ZIo5XPgzx+nGgAbCjmta+Ab1L3m4vyIv +CXept3AJOETuBuy88gQ3+50d8MnYvtn7wqCUfHF0DO9TZpvqREqgKJ/p8d8NXVh1 +N0lV33N/u428pR66iQIcBBMBAgAGBQJCdz8TAAoJEAgUGcMLQ3qJUgoP+QG34II5 +UiH9I+e/ZOv7MleAtJWTopGFm/wlt5l4e0D9VvaZJVFGa4QBxybX1R0aJBYn17lJ +I57bULrYPrGb3Jir2/Wu0iI8RqaJRhJCkd+Gr8t0F4clDTUjQpf+/bKhy6Ax8Rd/ +DuDYNUdX5EUPVorjRMXJicQ9hYHMT5vQYtI83yC7fFKF6Et6nckCX79dXtFNZpsM +2apSDsw6JPjyUMqjZ0+MBibW4VKjM0Ac6PxsjvH8JCYgo5AW7io/qdF9OvqE6JQ8 +R7cKr72cXQi8JAlCM56HcjOwAebpWwSE40S/LzP5KB3f1KZQLxlrJlN5X2kcGh5C +CSYJbB95qa1JOP/5ZCk4Jf5s2K5yqO1yTsEgpMX6kYQjvfSbLZlpCR3ZV6we54PY +HXJCdW/Pg0rCAVjTiKPohjpinaw3hM/rPoynUfGB7puCNBLv9LTe9NL/Nwq8Tu3d +rR/cTUd+JwmZJdCkGb5F/vT4X4sGSaWMjzs9JTF16JVOZg+BG+xftBAQWISKegw+ +BtJNcS8oNhYh2PKLm/S7X4eaj2h/NJ3c4BZ+qG3qyedQ+VbNvi1HlA1xyHjfoShQ +JSfL9XxCjbJyvl4BZ0/Jt/+pqRwHOmlSaIGPi0cTd2qfWvnuoMXDSOUYovZ7iFsu +vFOauBpI7HY6uelPpae1Vkex7CxQ+HBYWMi8iQIcBBMBAgAGBQJCdz8TAAoJEFA6 +oBJjVJ+OUgoP/0qY/dla4C4S6ItcbViz7ptrjmos87/aCLFTfGqw8Z+FnfO65ntD +/GHsJNW1YV2sdQC8rwPGBWSZ4r6S0F8GSfWim/QIDU1Ddzb3U4TSd6EMGn8QN2bI +sFJcNhIUN4Rw+hAP3LIvJySFbLaX+PYH4a28LpkmJ2QOEpWK5Rp3yNJXCd9p33OQ +8+5WhiabgEHDk0yZrCERYfMVyjhOYQGIHrFS7w5kLkgLP5cOQz55m+0Pm0hs2+sr +nmQnfM/vMWr+K6p3uFQd/DrAbLdjOQb7hrC8VCbadI8XENbBMETCXPJVLuGh71CJ +HQQX8+K/4KI9xlphJUxDqCaufn6u1gfh31HDcoN8rz5rz5huN94yNDL1Sns+aPqG +uKPfpYJ/d9OjrXxiP9aow6lR/Khmty5Qlv+3X6WSM8w02KM66+IKHi8SmMkZ7DqY +5TXs3MeYk1xtNdc2tu9VI0mhO0UiI+QOREuD0T2LUun2FiF71HjJo4b76TWouSFx +g5bzNyJROdmHPLXozfJjPTED77CpexYHGnmmfTDTkAxeYNxZJqMx3IpZXyc9eFHc +tsD3P2kLTk6xcqRiWNyA5TRWEdy27f2oBR3snRVRJiudBZ4fDGlF11nEuZsCoM3+ +SOUTqnezUzLExIfaCE3eyLHYvsjdpXiOW1xXLw3QlfHbm25awj0mqT8utB1NaWNo +YWVsIFZvZ3QgPG12b0BkZWJpYW4ub3JnPohWBBMRAgAWBQI5PCLgBAsKBAMDFQMC +AxYCAQIXgAAKCRCWJIPhVmLHNLTaAJ9hNOzeiwjWjFkzp871bkNEaH/ffwCeKkqB +Xm+MgNn8x4jeJSAsmLnkV8aIRgQQEQIABgUCOcsvhQAKCRC/4SBlayFImgKGAJ0R +sxryx9cxnBVh8/BWFyc9G++5iQCgnK7Mse4x4xwl9l+n2sIqj13yR2iIRgQQEQIA +BgUCOczgIAAKCRDeeq9ulMCcf7VfAKCr0J1iWCUOW6Z+p8nsWnECWzqsLACbBUfH ++uddjfI5A1xPKyuKI8N/AmuIRgQQEQIABgUCOdJS5wAKCRApXKqUbOX7VK98AJ0c +4J0ZJH8Yqf1pF5AM3b+wzkCqIgCfUVA+624Pfy5M5MDn6HAFff8W4o6IRgQQEQIA +BgUCOdRMnwAKCRD4Xr9GJY2HgY2gAJ9yVFmle7azEVP/pAQK2oj9EWV+VwCgi6cl +O2WCkFjrUwh1XxfI2/U4pdmIRgQQEQIABgUCOgHOJQAKCRAfxIHP7Q18+tGoAJwO +znBmhHke4Slp1KRE7gutjkhmqACg1OApW5K1Fu2e2qck4UHUV13pa/CIRgQQEQIA +BgUCOi4+1QAKCRDcE+VOq5tm/brwAJ9fEoTskIB3v0+sTgY+BFhK0IkvpQCgjsNB +skt1HRw/7UOU4/U/Eo5dy1uIRgQQEQIABgUCO0BqFgAKCRDndeMk20Gzh2KSAKC/ +qjFreYn4n1oCEU9ohUuj10zRvACfeHSqn1KNnV+bZrCUIhIFdsVpfmmIRgQQEQIA +BgUCO0BQugAKCRB5Fi829/aq2Tf1AKCXVuHAHaDkDcqZdIPXlATLxZ3LDQCfSC+f +XSfUIw126OiSV7N92rBpeviIRgQQEQIABgUCO0CtYgAKCRApvl0iaP1Un1qZAJ9i +Ls4oQ2crdZjeCGMMOXHN0hP+9QCeM3eCuH7umtinTWSGYAV3FC3hjxKIRgQQEQIA +BgUCO0C46AAKCRCZyJB1G8TjK6lvAJwLu++3heukjbhtl9oni8/53a+uygCfeJAM +67FQlN7osr33gA3HcmXcYYeIRgQQEQIABgUCO0CLjgAKCRBgMFsxwJ/TWp+CAKDD +22lET5do9L6N36OvMD4bDBLISACfddEotCwBUYo0M5xoruT6LCmJfC2IRgQQEQIA +BgUCO0CtkgAKCRBdK6s7rrzF6NFBAJ9KIE9LOBkQmemtNRA4xiVU0lxjVQCdGunX +/dtC0QuTTVg05h3MlxkMzUqIRgQQEQIABgUCO0BKjgAKCRB88/WvKUmfYXuaAKCv +1ASCe17B92/RwRrkY2NS+PN9VACeLXD1EqWz8I56LuTkLtDIO+8P5oeIRgQQEQIA +BgUCO0XX5wAKCRBDVVPF4PnGNP/1AJ4/Ks+5i/cfsNy0cHTWBb8AV7PuNACfQMiJ +zYFyi5oHTVU0ElFGSPeajtWIRgQQEQIABgUCO0FVbAAKCRDXWV03S3KWJaUqAKCA +Lemjsa5yGGqCkvZMZGvrzBkTuACcD8C8YJneGq1utCDmla1VRZMRQLWIRgQQEQIA +BgUCO0WfPQAKCRAGBpzylpRX8FN5AJ4h+rSDaTZRx1XZ8mhyzmAWE929iwCeK9MG +jMJ9aiocfQC6/AOqHvdDQwyIRgQQEQIABgUCO0m8hgAKCRAOp1a1FEhD9ZThAKCa +/cS1/y2fXr0fws5hVnjnYr8BNwCgjTnOekqzSKg7cSnkFnm4u2n76AWIRgQQEQIA +BgUCO0bGaAAKCRDyD6wLe4NX5ckfAKDB+5OHEo0iXNEX1gtgEPZ9WVPgrQCff1uF +zeZPc32qw3DSLcX4uJFIb4KIRgQQEQIABgUCOzHW1AAKCRCLmMiiG+b9JZceAKCf +2r/8ldyhCZrANdts7jHUEflaZwCeOZjH/RywKe2pPBmKZ5jlDnxxFCKIRgQQEQIA +BgUCO0sVfAAKCRDApMu5h5eFaczXAKCJVPLjpBnXtWvqvkJlcM4ZTRuKUgCeLJPs +DB/LUSSZ80lSGhStDdyuKveIRgQQEQIABgUCO01jrQAKCRD+mh7DZIQ5MxBqAKCx +hrkGd+lgjZFOxMPrKPXf6pAw7wCbBp7IE92Sakh9OHjL5Zfv8lS86SmIRgQQEQIA +BgUCO08mDAAKCRBd4kmWWwNYonnGAJwIJqHLwkjbbvzN5iwyAWJqYN5LpwCgmam/ +autAJiLuOMi6ui/xhYFIGtWIRgQQEQIABgUCO1ImOQAKCRAk6Z8Q2z1E1L7RAJ0f +f+syNhDlD5b1aOUCh/p0M2cqigCcDzqivgOibvcBiaOGDwQrWC/GRmyIRgQQEQIA +BgUCO1K//gAKCRDx0szISXoXbRVmAJ94igioussKa6NqgW6gA9hNO4szpgCgwJhD +4vw46Mgw56cxE9UmugJm1U6IRgQQEQIABgUCO2MZAgAKCRCPH9/JvOCUNlSnAJ9D +6dCfCoSldhVXOAM16Rnf4yE/kwCfWNP9q0DMccuSmw4AWMMaQQQeVqWIRgQQEQIA +BgUCO0W1GgAKCRC3NaZJ4LoEwYRLAJ4kU9W7+M7I3MI6+106Pj1Kavx12wCgmG0t +/mDBa3UJEORfIJobrhkRdCCIRgQQEQIABgUCO0gJcQAKCRDckT2YXfAxZwU/AJ9C +/aobCIQ84dFYYhXLgXfaC/bN4QCfSsQB5lgZfBw3KRXCSVpbYNShoGSIRgQQEQIA +BgUCO170cwAKCRCl8nAoCRep5JhdAKCU/BtO9wenJl+CJwbzx/nmfboF9QCfWQRu +kBcyw3eeHOdh1L60LBn9V8OIRgQQEQIABgUCPAZt9AAKCRBvq6u8NX0heJqgAJ0d +1i5sQ44UwNSaGNyWJAW3HRAFmgCggL5clk3sVTL+BZ+HA6de5tskTzmIRgQQEQIA +BgUCO/rdMQAKCRDvzgtgBCVtO2vxAJ91pytlW0Kb8xkgWLIgc9NyhuQDrwCeO5Yj +5MzTFLEQEhs9F1JV49gZhsiJAJUDBRA8HlbLgAYufOTUfsEBAfVGBADRMwS9JPfa +Qvnat5WC7WnHTo9t6EMGHnufsmzmVjvd0sW8uxEkcpYU0lKOXIi2yfW81o5uWnWe +tfCjCoUbBFXzIdWNXm2iLNYgiGxYevLxNmbizkN/v/Vu5dqOHvMQjAqiZ0CHvOjL +rWHF9Aql6Fvetz6ydVHflF0aqS+W26FalIhGBBARAgAGBQI7UsbgAAoJEDv2CcaL +r829JPUAn2tRyTWNo/iZvsTePHFYEw0cdXQ2AKC8YzE3R66W31nL9dkIlDP9Wuvl +UohGBBARAgAGBQI8HmtDAAoJEMN2qNrxvNtzumsAnjdJxYxss6ezKyN+NQzC8yjj +exQjAJ9cpnxsKd0x3oYDkuGvUfvLSbw79ohGBBARAgAGBQI8zqZ3AAoJEGBSKFyo +d9l4lEEAoMag4VemiVIw0pKQrKKP8UYMRKbgAJ9wD+UwVz30P+/Ah5dkLUR+1CAj +74hGBBARAgAGBQI8GkFeAAoJEAK8QrdD4l0eM+AAn3Cc8Kh4Z12bD3V+GftCso+w +xNSbAKCNp5uBjbmCggQrt2nwTQVXWZOMKYhGBBMRAgAGBQI9NyQjAAoJEBJouCi6 +/ojlbA8AoJOEW7XWMQ4YqNzI2xvefZ/Dt5EvAJ9e01m3VZohvmaDVRaBwnZCRji7 +zohGBBARAgAGBQI8/MBLAAoJEC9Lo+/3IcZDxs0AoPbZzzlZ9OlqjEJ3MIOd4jI+ +OGo3AJ9WGKN3HDpbjdVGS+RRGPneNeefa4kAdQMFEDvwSNplgXSeA6P39QEBpFAC +/3yywJap02KDm0L8fbajdhPi6k6iWmY6MrQNeit/Gd0ILbyDFu02vrAygqJmAayg +lsKFCZK9E4efJqmkqBy2mpJ48kdOlxnfC6j1yzmJrSJvN/OhkMK5OwGIMBk1URwd +IohGBBARAgAGBQI8/1pCAAoJEOIIBVtLZtmRfb4Anj4AmRogOSt4KWhO1IcHsT09 +Zn59AJ9wjRBhA0sy8eQ75QqeC9+ziL8TpIhGBBARAgAGBQI8vIXvAAoJEPhZkLAk +iutz+KgAnR7QSEEQZaEusbHFEUC0debIe0yeAJ0clR6cG7hB8w7BB3sDTdvEfg8L +A4hGBBIRAgAGBQI9oYxwAAoJEI47c57dK8ydSWsAn3Qy50QcLfDICTvG+nGTlVbU +6+FiAKC/5JAKdzsbffUw8CwD02jumwXoTYkBQAQTAQIAKgUCPo2zbyMaaHR0cDov +L3d3dy5yYXRoLm9yZy9ncGdwb2xpY3kuaHRtbAAKCRC23LAszRpSuWEsB/97awvu +rPD7UMQx19AsRWXZWZ3NIjr+s5OkhCS7yazcAjQqH7Tl/5wXBeo8SIeD2IUUGCoj +5CcWmFPJhoaXyWho7+xJHGlnqgWUr24FS+WQSd0diN7hDyPgTLjwkJXj7ey4FBfa +ExOvwhHMmc04VBH8N54xznQDk7F/W+RDQSHvNufNsSBZBAo6uFD1xG0SMnLf1A4+ +H7Z/BS0KSMGdqiBHGfpTxXVjDbREN8Gxqx3/bD8hoHmZYY4SvJNO6GgzdoLLxa1l +bNJjCyvIK4qMEUtdPbdUM3GiJx8nF+VsLHdGp57lCywWd/moONbkrBKS0zpxRK4v +/k2qDeH70pSm2vL1iEYEExECAAYFAj6RgcwACgkQCF8pGcJq9OsVoQCfRw5nLhcw +dDSH0WAMuqfSqwuWUjYAn2jm7ayWUjwsAjkTTSUzXsrgv0lpiGoEExECACoFAj6N +spsjGmh0dHA6Ly93d3cucmF0aC5vcmcvZ3BncG9saWN5Lmh0bWwACgkQqa23+K5O +QlzBLwCePpLmUcM+pMoJY6cTW2DZBknzK2EAn2q9NY/w+NF8pMT3EsNGhHCx/LZS +iEYEExECAAYFAj8P72cACgkQ01u8mbx9AgpKPQCgnKm/8rG+TISFryKJSXFtq5A9 +U/4AoI+ao5AUmUgTCF5psohHVmRTvUuFiEYEEBECAAYFAj8QVjQACgkQ1vr63ZUv +P/8BIwCdGM0X8frOjVker85BKhnRyxMTbekAoMIRrR+p5sOKqfm70Ot5dAjwnQ4t +iQEcBBMBAQAGBQI/EQZ9AAoJEEAGFQ5ACertw9YH+QEOp4w9bnew5MHd+xyP+kYB ++4zhv/JLDa4b321ymKwaaMAUi6+/51+q9hNyKGGltfRMVI2YsTkBZK521pUe3XhA +k98xQeuSsCuVOzkof/ZkIBWUpD5ePDZ4ROILvUECEnupfHGYgJet4hjsSnpabBhS +zVsHTvT7wPYBWsoU6aXQdHAWHj1ff6ZmKdiHVMXJc7q7EgdkXlz1cytPe1Kr6HOM +vtXIu1SndaJ6RHTkFHikrzc7h+GZD3UrBE2WwXadi4j8oU4jNOPmNcgfyFTvCTga +2tziRHDwbyWjWfkSF/K0hXFZtUAA6yB4PkHam60O4HtuuvoHXX4QaqCRVRasc56I +RgQTEQIABgUCPxArzAAKCRCzNNMIli/S3oXcAJ9ksHHvb+jOBvQHWbkQqKK2RNz2 +CQCgp6vhG1eeIQjGKs8mfGtIIFnjzZGIRgQTEQIABgUCPxET8AAKCRDhhSLXfHEr +y6A7AJ43Lzy8p+Fjo85jGPAxKBOZxCOGdQCfWbE+kN98BXU20Kw/PTxwUUZI4bKJ +ARwEEAECAAYFAj8RSk0ACgkQCen5CopyTkUSQAgAh6+H16NVts1N7dXWNfUeXVka +SZ1YH+Ou1N/3VLooX6r/dnRfrFf299KGNE9gdYU4ZZbzlssVkWOjbpq9ZnT0EP0T +zODxqYk6xwLNbESTmfV+acJwyadAlTeOkcavfmPFhFjMFdh8hvAztXSSzuH0kVPp +2q4LlQcE3VAWQehH1dc0KAL38e2oJXT3Acze9coHxP5F+9qqY5+RBH2K9/Qg6RHE +ZbSbWqyk1Kp/PBRrv7reGCrKu/cknaIaMrd14gDVDaDYZpabZ1olVjLD7Xq9u2zd +IrNbDUBHuc0u+6lJDnGMxl9cKZpcXtwZW7q2m/AJZZ64JNdOzAOwoIG/Zs2mvYhG +BBARAgAGBQI/EqKHAAoJENQ8swWV/so0iN8An1kR7GXBiuo/nG6a6g80Uj8sw7Fv +AJwMPsjtifxWHhD7+oePOLFBcUKjFohGBBARAgAGBQI/ETgsAAoJEPVrJqOmOZ5z +H4sAoJdwPuP9Ras8FbVz9vxo1phsylRQAJ4+z5P2k4okmmvOoETzxYw2rnKDCIhF +BBMRAgAGBQI/EGY+AAoJEHgz7PG1REgVo7QAn0PO7mLyLm7dWrl+kFiMAKH22WQ+ +AJdBEPNiQXGzPeX+pb1DfOJxIrNBiEYEExECAAYFAj8RP+AACgkQ6iGZQSR3yvg8 +GACfU7XVDJLfngnMfPnajA88btxP5T0An2GLPaRZu7NsbuSYHj8J54VGP2IJiEYE +ExECAAYFAj8RXPoACgkQGf7YPOK+o0EK0gCfSFI/qReuVBWFKj/H466DMjaA7MMA +n0lyeEvft6EXZ4ePTkoxHsjro1L6iEYEExECAAYFAj8RpBYACgkQxcDFxyGNGNet +eACfUGJ1KOWCkkcVQ/axNLnpLOZT1+0An0NSiXPDAy2RiOa0ftCbv7N9dAsiiEYE +ExECAAYFAj8RwdMACgkQvpyGjQRgTrgitgCeJF0AAIagPvhV3irwWnVxqOfvf1IA +njfjpvbkXgf6Lt8/pYJComNLsqeHiEYEExECAAYFAj8ShtkACgkQoJD705cZn8PC +2wCdHRClEdK3fO2qBeWErf+3VABkRWQAnAm0jEAHmYKm0C4ZtqrhwpLgKLJviEYE +ExECAAYFAj8SkwcACgkQVm02LO4Jd+iJzwCeMmT+RD2ly1uSt/TlbWj2I6uyIbMA +nAyb4NNPW+1HAhGRCrnsILVds6J2iEYEExECAAYFAj8Sl20ACgkQj7mZcU7rMfHV +DQCePuYB3ixGRuyeVtRrdIwxNsERyiMAoNeZ2lMAeoX1vDmXAdxq6Q6g/OgEiJwE +EwECAAYFAj8TMjAACgkQtGuSO22KvnHhiwP+N1Jh8cmDM4NVOMnh+twEdc0quSJc +ZprPBQzZuGz3uQUKXI+xWEBkE92elHgfVo8CaSqh0N+SB40e7CyoQ5cHhdPPAmKJ +ZGiLhtliCmQI8W7xKJz3ysFPBJoVFEKaamOvsAUezTbnAcA92vkN33VW2Okw1+fx +QsYuQ7C5hdEN2++IRgQQEQIABgUCPxNg4gAKCRCt7CzRGpU357YCAJ443K7yqC3V +9MYierjg+bMQIIUFVgCdEXchjN7AuuaAwiUP86POJ7Mf9p+IRgQTEQIABgUCPxGl +CgAKCRAoxvVrgXw1aC2RAJ9Wi969B0HxCRBmmJmKY/G35+hg6QCgp4WXj0dK0QQ/ +ttQ9VqMzLbiHsjuIRgQTEQIABgUCPxPyOgAKCRC5gsvVwOMfHa6TAJ9GOyWePty4 +D0HO/i5dInksffJWkQCdEbYRoo9jgPM98b2Arb18rHRsOSCIRgQTEQIABgUCPxP5 +DQAKCRC7xxTRnGfNluB8AJ91IPyLFvn1mfvuhEksgmAvopXEkQCdHEPhku6Nleua +JEirIr0yE4DeBwyIRgQTEQIABgUCPxQabgAKCRCAdScAZahB7Q6SAJ9IF1epz2ii +OCRtFDzB++fZJnA6fACgypQnQZn5yk0FObR0umx0c0mMJdCIRgQTEQIABgUCPxQk +egAKCRBRrPatdb6Al4izAKCRvQHWhW5rsyVLurGSt42n9yqrKwCgwkaaASoIrT4N +3Rduq3Jtsyp+D4mIRgQTEQIABgUCPxQqPgAKCRBsdheMoO2YLaoUAKDu17oP9Pi/ +VkH90yIR1l4dQ7GNhgCdFjt4MegFyREUjkerk6DpcYGWwmiIRgQSEQIABgUCPxQt +mgAKCRA19mF8UTrv2fN0AJ95j2z4vBYZB+plZr9P6TjKRb23YgCeLUunT7ARJ8kk +HxJmb2rBwIr5cNiIRgQSEQIABgUCPxURpQAKCRDVTq5LyZhwsaZSAJ46vwwEDZSI +n7DMCzb43Aw6mO9i7gCgriGzSI3wbk4Fl03XhL6Yx7q6GWWIRgQSEQIABgUCPxUs +7QAKCRCJzUshYHVZ5t0aAKCF9Kmbta/PbwadSy6Y2ZtiwO2xYACeJqljQ1knbV4r +/GCyJmDn3pLV7/6IRgQTEQIABgUCPxZujAAKCRCELNt6RHeeGDlsAJwMigxlui5G +XM65FVSclFapDQs1qwCggo5t0MrmM/D6bwKgIoG+5ZH1wO6IRgQSEQIABgUCPxV1 +LwAKCRB8IsOfgHrFOjObAJwK1SDOv5xMjksadx2cfoVRUHIycACbB3EDJA5Rqjm2 +zGtoOWvlKONPDCqIRgQSEQIABgUCPxUSZAAKCRC/QVlbc3KipaemAJ9ui7yZa1r1 +0VaSwYM4ACzek5JBAQCbBPmKwLUBrmtc67jmwd9OKODgjcmIRgQTEQIABgUCPxRl +1AAKCRCUj9ag4Q9QLtrCAKDyDMh57YE3BSrDWLCIfH8Llae8OACgz+X7LZ6CADiU +UAQMvsN0PYaMI1+IRgQTEQIABgUCPxRl4gAKCRC0deIHurWCKS1CAJ4h9C4Girnr +Qf0Jt+LWaSRB6vMHbACg1Mt3M/XOvjQ3ByRNlaz5cMF1yzqIRgQTEQIABgUCPxVt +RQAKCRC7VaR/yQHDPgwwAKDDo5Oczmfsy/K+rNhp0EdN8tTpYQCgyJyfezJ3lACl +gkZe3KJSjcWvsI6IRgQTEQIABgUCPxZZiQAKCRDnyduv41bvwB61AJ9WP2XS6gBZ +e8fgWb0oSNupfrL1TwCgvDsfeZ8+228+PuOBa9EmPqn4Z8yIRgQSEQIABgUCPxcI +VgAKCRB3+BUzuw7ox3SyAJ9lEoZio+Jqvu7yDsMy0v2W9H8BrwCaAu226tR8QQgp +efrzX7CFlqUp2oCIRgQTEQIABgUCPxZaFQAKCRD0tLDMeX6/q79tAJ95QA3Y7Vha +p/yq3/sU6rGdWv1gHACdGOlr2jlePeNjyM8XP7m/aTyTA3aIRgQQEQIABgUCPxe0 +rgAKCRBGzFxj8xilarPqAJ9CVDPJRDwCTEzyxU/aXPUcD2IIQgCfUwWviRTpr4Sl +hYQSLPInA8XRL3mIRgQTEQIABgUCPxfUbwAKCRBTtrgdwTzuBxZAAKChuDlCWIgR +y0RLB43upNulVEMhPgCgy3nvJsoNNdGtApgalnD3PCtADC6JAQEEExECAMEFAj8W +hgyGFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3 +dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5FQTcx +QjI5NjQ1OTc0RDhCMzQzRTgyMUU5NjI0ODNFMTU2NjJDNzM0LmFzYyIzGmh0dHA6 +Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJ +EKseS2BGdWsetVoAoKC8/BexDahmSBm6ByFHjdnUNnqjAKCnraKOQoRD9mHRkhYL +hs6Kb6B/e4kB1wQTAQIAwQUCPxaF+YYUgAAAAAAaAGNzaWduYXR1cmUtbm90ZXNA +cGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3QvcGdw +L3NpZ25pbmdzL25vdGVzLkVBNzFCMjk2NDU5NzREOEIzNDNFODIxRTk2MjQ4M0Ux +NTY2MkM3MzQuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0 +L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZQoyQgAp7zbUXdSJjC99c1U2Tf8 +fsZqyxty2Vq4MERWsogmj4WMJY7s1nNOl2ytrovMZ8lGVFHwMuFM/GqhxkcyaG60 +4TTsBZIsF+PFwYfzdN2wiW2/nfE7EoPxYUcCXTSatz5b0kGYrQotFjxbL71xaEDb +fCzvvrtZcXNlM4BFYOo+Ad6YokzaRhE18eWnYCeqloJrkXnZuUj6g2CkdaKz8rO6 +QpdbSXHiOHNxM0DwuGE1KEVH6TlixkelWD7eWK/A7ozetrLgvfYR9xgwk5qfOi1Z +zBurcWYqtXbsthXlv7kxDZYJK8w3h3hlvPGzjzplQP5kisaKmRQnmZT2hKo0sgyW +3IhGBBMRAgAGBQI/F/CpAAoJEJEfSuaGoRjmasQAoKwxDSMg6qRd/67aBEtukTSq +cMhGAKDsScrYaTKk2OPEx2nLKt856m7mb4icBBABAgAGBQI/FpAzAAoJEO9tgkHw +gRld9YkEAL7rFxi/i3d0HRdrISimFvZdcQ+M17mzd82z+9L9qTxBDFJgrHjNrHD9 +zb4x5CehUwwEklQKGM9bRYgNfKZ3FfJs0DQ6TC8VN82cECVFfHSdKxtnR0Wu5wK+ +1Ru+517coWCmbMbWZ0xgtdZ7DXxOcS3DqgZ6Q1bKxgxR5LGTb1nniEYEEBECAAYF +Aj8THygACgkQ0Bn175Anq4i/zgCeP7srpshWEkWMk+2g9SiFjTSCWYoAn0DVZWaB +t4235TT2bJM40pbuxvJYiEYEEhECAAYFAj8Ye1oACgkQMwsDi2xjdG2clgCg8n0h +KYgMIZF8K8N5xWXyMIGh71gAn0tPowccJ9wAe1JXX3slFWAVtVNTiEYEEhECAAYF +Aj8YfiUACgkQsandgtyBSwkAfACfV/oO66wsFR0TDcsn09l4vPQn4gQAn2yuFdZj +mb9CEGXQ7OwCz9nkJArSiEYEExECAAYFAj8X8GEACgkQVkEm8inxm9EzGwCfQpN/ +NEb25HY89WP32R57XbamlycAnjgGgMgU2/Wf0E3a+KRgWGqGs0STiEYEExECAAYF +Aj8YShYACgkQGnR+RTDgudgElwCgvX2J3MJJHDzGQVnpX/j/vinbmKgAoIJDdRhp +TimIOc3ohPI/hVn/wOTtiEYEEBECAAYFAj8YdP0ACgkQ9ijrk0dDIGw4qgCeOg2P +pIXS1yy1NBGb1e+GNMfZIisAoNPZ0dwv0YkdwisRjHf6ipIQwyHJiEYEEhECAAYF +Aj8ZK6AACgkQZd80wCtfheOo0QCggPdjSLfBSv2mCSUZZ4yggajC0NUAoJe31w53 +S53tMoOueJgPaH1n+EociEYEExECAAYFAj8ZlPQACgkQIexP3IStZ2zBqgCcCUIn +qpy76RpB0CuQXtxe6LSV804An1cbSQKE9c13GiYUaWG1v0LoOnHwiEYEExECAAYF +Aj8aZToACgkQzop515gBbccP9gCbBKji8iWm2/qOW6MGBRHWABi/sc0An3h3PFt7 +h9qTNd9cF8bUBYoGIiFYiEYEEhECAAYFAj8bkb0ACgkQ7A6vcTZ3gCU/RwCfQAy4 +8uTR25zCbmIBAK0JW55KNlUAn3ausauxgUdAfm6aohyxxrvD4JRliEYEEhECAAYF +Aj8cKXEACgkQdNeA1787sd2ydwCgg8n8+hiDc4ACUTtW5ft8h0b3L+sAoJ3iaChz +MUMxi1lpDxt8qLwmv7SwiEYEEBECAAYFAj8VydcACgkQKiV7d8Y3KNJj1wCfcYaG +rDGwI+OUsEKF5kp/ibBmcJkAn3d/RszoziOGNaXR5ytxAMOuH4IpiEYEExECAAYF +Aj8QIlIACgkQAtbtIeMsT0uIogCfT1x0S7HhrI22Jh2lykvyjdD+eDYAni0cZKJq +nzFV33YW5shk6ni4RE4XiEYEEhECAAYFAj8ce70ACgkQC9tTsaLPijgiagCgibSt +kJ6yGyXjT6k8MzrrSRjwr4EAmwZsvXWQz1xrlJThOSQOJo+giABRiEYEEhECAAYF +Aj8c2hQACgkQyA90Wa3Cns05pgCfZQvXVii4ojLdEpCqPiGyPW0Nd4kAn10t1M/D +cu+sXnSafvRV6BZhxcNyiEYEExECAAYFAj8VuYEACgkQS+8mJCLfQIevFQCeMqPN +WbuTkCW2+OVb7g4Yn8sJ2b0An0atcvtqd6YjmKxIe3hL/3CD4FRbiEYEExECAAYF +Aj8VuYkACgkQlWQfayU+WOOj8ACgsF3i6btoulVD/odjXoAKsw9+ybAAnjLpzn+L +OKcgingkLfL4pQfDpZ2xiEYEExECAAYFAj8dgKEACgkQO7/Pd72LBQ3o0QCgjTPf +auFWp+HBXlWMlFTaUDmPKMsAn2tMjHeRGzY5rcMI8pEcpMkzDm+YiEYEEhECAAYF +Aj8eOrEACgkQzAGaxP8W1ujPCQCgi/ph5B+f43O3tMa+Vl2kSm/iwn0AoPBwaa4Z +MUZNuV9zoGXTUWx+8tu7iEYEEhECAAYFAj8emTMACgkQNFDtUT/MKpDN9ACcDBVK +HUdglwfB6r2rw/qo56x3u3UAn26NqtkbvIL1LjxmfuoUueIPsK0IiEYEExECAAYF +Aj8e07AACgkQKO6zWj6NzMBOogCcCfGFTxfDqxI+KRIoZ8rF71e2RosAnjYgt5y6 +wU6gTMMin5Yjm9hzh62diEYEEhECAAYFAj8e2VIACgkQkryUdmOUJl5QzACaA3q2 +IMEuTN0CNnEy7DdElR1LCYIAoItw8HTShrWVG9yvnvFxMChDPMIRiEYEEBECAAYF +Aj8fAcEACgkQKN2w/RnJtrpX5QCgzNwWHKaG9Ag3tA+Ac0KtQ31SiY8AnR/S5tYf +Bde3E8kikmYvh291nKsTiEYEEhECAAYFAj8e79QACgkQGpBPiZwE9FZi/QCeMqew +RvkzepVGeLQ3bN3I7pDDGBYAn2CFPcdZ71Hht0rac52TS3ukCv2LiEYEEhECAAYF +Aj8gJ8kACgkQA+GMa4PlEQ/XWgCgg38xjA5L0D5WkZGKYVHYwjpbXt4AoIGFFJcw +FNXNxap3dY8rH14ntilJiEYEEhECAAYFAj8hEqQACgkQpFNRmenyx0fhvgCgxOQK +p6pPVcqmPN/mTRfGpWGSYHkAnR96kY7ho5LFcaajuqCTiSnQ1IkjiEYEExECAAYF +Aj8hczsACgkQlJsl7AdEclJ2IACfWZTVuF6l9mLigt2qXNcuPbmGxVAAoK0RoV41 +Dkt9R2lIm6iqxrNRW0ESiEYEEhECAAYFAj8i7MEACgkQ+o43kJBROPQy6gCg+oEv +MFJdqjRNGMfLj1EZCOPUInAAoNYkQNGvIW+hanA09lIxWK2bQExJiEYEEhECAAYF +Aj8mwdMACgkQ9D5yZjzIjAmmpwCgp8sJU93M7CM7vsGpReoEAVmAJ9QAnjgfhStP +wYEtrnWlDeWY6hA1kP+LiEYEEhECAAYFAj8jnYsACgkQGKDMjVcGpLQjNQCfQ1Vi +vqwk+GGNSEaTkNZC8dUJn5UAoIojBb/gmfx/SGhg+ILsOm37Zm/ziEYEEhECAAYF +Aj8jw/0ACgkQlE/Gp2pqC7ysoQCgjyv6JilmZ2fkk2mGktlZAMCGPcQAnjkvcY2J ++e5S0pnWgTXPmY9G7dlsiEYEExECAAYFAj8b6w8ACgkQ2A7zWou1J69fwQCffecR +nl2OKb0xyan4c34SAiXW7tkAnjjlXUeZ1phjKkwCOxSGpzVL2dg2iEYEExECAAYF +Aj8nsWsACgkQ5ihPJ4ZiSrvw6wCfSqPnCQUf0RCBxTHwNeXoHZLNsgoAn0mmdV02 +e4GTUkP6hcahi8uktaz4iEYEEBECAAYFAj8n2R0ACgkQbyOLwk/aWgz6EACeP7lN +/AdK/F47D/RLEj0iFa3hoUcAnitXQcHBCa2V7nsdLGgBu+0RFrTFiEYEEhECAAYF +Aj8n3nwACgkQn88szT8+ZCYVUQCeI/GFVLQVfpjbILxq3QzePIvUd54An3yCiNfm +ou1ZfGQXR9ut54CFWGZniEYEExECAAYFAj8oGAIACgkQBDI26xBzGXcQUwCeIPT4 +RnjFVbpIu9/yB90/4XxGSJ8An1Q12NxzY3nguYjjeFZwPSfhV9zliI0EExECAE0F +Aj8o7UxGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz +aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRCkec3EWrRgatzEAJ9NnEz0 +qdxIzRMKnwzIl5bT7iO/RgCgjxUaa4hVcZzWdpiAONJGlAbQALKJAWMEEwECAE0F +Aj8o7VZGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz +aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRD5fPnjOkt/XQzwB/wOFo/i +eiHUOP0ZyKPlt7VBeaXIAGH0xpxZi+XJ0D5PwZmHylTIdlzJ2tlulJfU3pX1dOWm +uIa1YZsuP+ai+u9dk1QkGgSe5XAYXxqzvmbec8Rxdg0gDEdp3okAhPp9NyKtkxI+ +HNi4EgqDPIqZ1GVhk6k2Z6dfDe+QesI4FA0XIq2d1NFbCPiVenBeE0O6uQxsIvnS +HRm2PFOn1rWSgkznx25Ue9QLJP2utuxSd5cSJTL3x4E5eYDY2nXsorBOi7+SAiIo +Gdoj2V4y/5kOoyqnIotEeq4IGLuIedOCrv2Vvpn5Km+VXmyJRugOygMfafuLpPan +DBbDLjWk5ySNUaYEiI0EExECAE0FAj8o7WBGGmh0dHA6Ly93d3cudHJhc2gubmV0 +L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4 +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 +=CfD6 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/test/testsources.list/sources.list.all-gpg-broken b/test/testsources.list/sources.list.all-gpg-broken new file mode 100644 index 000000000..110f31884 --- /dev/null +++ b/test/testsources.list/sources.list.all-gpg-broken @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ / + diff --git a/test/testsources.list/sources.list.all-gpg-ok b/test/testsources.list/sources.list.all-gpg-ok new file mode 100644 index 000000000..2e9a4458a --- /dev/null +++ b/test/testsources.list/sources.list.all-gpg-ok @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ / + diff --git a/test/testsources.list/sources.list.all-release-broken b/test/testsources.list/sources.list.all-release-broken new file mode 100644 index 000000000..5e138323a --- /dev/null +++ b/test/testsources.list/sources.list.all-release-broken @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-release-broken/ / diff --git a/test/testsources.list/sources.list.all-release-ok b/test/testsources.list/sources.list.all-release-ok new file mode 100644 index 000000000..8bcceeee8 --- /dev/null +++ b/test/testsources.list/sources.list.all-release-ok @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-release-ok/ / diff --git a/test/testsources.list/sources.list.md5-package-broken b/test/testsources.list/sources.list.md5-package-broken new file mode 100644 index 000000000..3ba43181e --- /dev/null +++ b/test/testsources.list/sources.list.md5-package-broken @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-package-broken/ / + diff --git a/test/testsources.list/sources.list.md5-package-ok b/test/testsources.list/sources.list.md5-package-ok new file mode 100644 index 000000000..9bf207780 --- /dev/null +++ b/test/testsources.list/sources.list.md5-package-ok @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-package-ok/ / + diff --git a/test/testsources.list/sources.list.md5-release-broken b/test/testsources.list/sources.list.md5-release-broken new file mode 100644 index 000000000..1c8f1dd79 --- /dev/null +++ b/test/testsources.list/sources.list.md5-release-broken @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-release-broken/ / diff --git a/test/testsources.list/sources.list.md5-release-ok b/test/testsources.list/sources.list.md5-release-ok new file mode 100644 index 000000000..f27e04f16 --- /dev/null +++ b/test/testsources.list/sources.list.md5-release-ok @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-release-ok/ / diff --git a/test/testsources.list/sources.list.sha1-release-broken b/test/testsources.list/sources.list.sha1-release-broken new file mode 100644 index 000000000..29a277899 --- /dev/null +++ b/test/testsources.list/sources.list.sha1-release-broken @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha1-release-broken/ / diff --git a/test/testsources.list/sources.list.sha1-release-ok b/test/testsources.list/sources.list.sha1-release-ok new file mode 100644 index 000000000..6f95d0247 --- /dev/null +++ b/test/testsources.list/sources.list.sha1-release-ok @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha1-release-ok/ / diff --git a/test/testsources.list/sources.list.sha256-package-broken b/test/testsources.list/sources.list.sha256-package-broken new file mode 100644 index 000000000..d6d284b9c --- /dev/null +++ b/test/testsources.list/sources.list.sha256-package-broken @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-package-broken/ / + diff --git a/test/testsources.list/sources.list.sha256-package-ok b/test/testsources.list/sources.list.sha256-package-ok new file mode 100644 index 000000000..c2d7570d1 --- /dev/null +++ b/test/testsources.list/sources.list.sha256-package-ok @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-package-ok/ / + diff --git a/test/testsources.list/sources.list.sha256-release-broken b/test/testsources.list/sources.list.sha256-release-broken new file mode 100644 index 000000000..713a4d9c8 --- /dev/null +++ b/test/testsources.list/sources.list.sha256-release-broken @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-release-broken/ / diff --git a/test/testsources.list/sources.list.sha256-release-ok b/test/testsources.list/sources.list.sha256-release-ok new file mode 100644 index 000000000..93b44e366 --- /dev/null +++ b/test/testsources.list/sources.list.sha256-release-ok @@ -0,0 +1 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-release-ok/ / |