diff options
55 files changed, 3433 insertions, 1157 deletions
diff --git a/.bzr-builddeb.moved/default.conf b/.bzr-builddeb.moved/default.conf new file mode 100644 index 000000000..3a08d6070 --- /dev/null +++ b/.bzr-builddeb.moved/default.conf @@ -0,0 +1,2 @@ +[BUILDDEB] +native = True @@ -15,6 +15,7 @@ all headers library clean veryclean binary program doc dirs: $(MAKE) -C apt-inst $@ $(MAKE) -C methods $@ $(MAKE) -C cmdline $@ + $(MAKE) -C share $@ $(MAKE) -C ftparchive $@ $(MAKE) -C dselect $@ $(MAKE) -C doc $@ diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 39ae327cb..a65630afd 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); @@ -131,6 +138,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 /*{{{*/ // --------------------------------------------------------------------- /* Get the DiffIndex file first and see if there are patches availabe @@ -578,7 +628,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); } /*}}}*/ @@ -643,6 +692,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 @@ -833,8 +883,9 @@ void pkgAcqMetaSig::Done(string Message,unsigned long Size,string MD5, Rename(LastGoodSig, DestFile); // queue a pkgAcqMetaIndex to be verified against the sig we just retrieved - new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, - DestFile, IndexTargets, MetaIndexParser); + new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, + MetaIndexShortDesc, DestFile, IndexTargets, + MetaIndexParser); } /*}}}*/ @@ -847,7 +898,7 @@ void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf)/*{{{*/ { Item::Failed(Message,Cnf); // move the sigfile back on transient network failures - if(FileExists(DestFile)) + if(FileExists(LastGoodSig)) Rename(LastGoodSig,Final); // set the status back to , Item::Failed likes to reset it @@ -922,6 +973,15 @@ void pkgAcqMetaIndex::Done(string Message,unsigned long Size,string Hash, /*{{{* if (AuthPass == true) { AuthDone(Message); + + // all cool, move Release file into place + Complete = true; + + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(RealURI); + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + DestFile = FinalFile; } else { @@ -973,22 +1033,15 @@ void pkgAcqMetaIndex::RetrievalDone(string Message) /*{{{*/ return; } - // see if the download was a IMSHit + // make sure to verify against the right file on I-M-S hit IMSHit = StringToBool(LookupTag(Message,"IMS-Hit"),false); + if(IMSHit) + { + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile += URItoFileName(RealURI); + DestFile = FinalFile; + } Complete = true; - - string FinalFile = _config->FindDir("Dir::State::lists"); - FinalFile += URItoFileName(RealURI); - - // 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; } /*}}}*/ void pkgAcqMetaIndex::AuthDone(string Message) /*{{{*/ @@ -1018,7 +1071,6 @@ void pkgAcqMetaIndex::AuthDone(string Message) /*{{{*/ QueueIndexes(true); // Done, move signature file into position - string VerifiedSigFile = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI) + ".gpg"; Rename(SigFile,VerifiedSigFile); @@ -1059,7 +1111,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 @@ -1162,30 +1214,30 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) { if (AuthPass == true) { - // if we fail the authentication but got the file via a IMS-Hit - // this means that the file wasn't downloaded and that it might be - // just stale (server problem, proxy etc). we delete what we have - // queue it again without i-m-s - // alternatively we could just unlink the file and let the user try again - if (IMSHit) + // gpgv method failed, if we have a good signature + string LastGoodSigFile = _config->FindDir("Dir::State::lists") + + "partial/" + URItoFileName(RealURI) + ".gpg.reverify"; + if(FileExists(LastGoodSigFile)) { - Complete = false; - Local = false; - AuthPass = false; - unlink(DestFile.c_str()); - - DestFile = _config->FindDir("Dir::State::lists") + "partial/"; - DestFile += URItoFileName(RealURI); - Desc.URI = RealURI; - QueueURI(Desc); + string VerifiedSigFile = _config->FindDir("Dir::State::lists") + + URItoFileName(RealURI) + ".gpg"; + Rename(LastGoodSigFile,VerifiedSigFile); + Status = StatTransientNetworkError; + _error->Warning(_("A error occurred during the signature " + "verification. The repository is not updated " + "and the previous index files will be used." + "GPG error: %s: %s\n"), + Desc.Description.c_str(), + LookupTag(Message,"Message").c_str()); + RunScripts("APT::Update::Auth-Failure"); return; + } else { + _error->Warning(_("GPG error: %s: %s"), + Desc.Description.c_str(), + LookupTag(Message,"Message").c_str()); } - // gpgv method failed - _error->Warning("GPG error: %s: %s", - Desc.Description.c_str(), - LookupTag(Message,"Message").c_str()); - + ReportMirrorFailure("GPGFailure"); } // No Release file was present, or verification failed, so fall diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 36a926a0f..de657ecc4 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 {{{ @@ -612,7 +625,6 @@ class pkgAcqMetaSig : public pkgAcquire::Item /** \brief The last good signature file */ string LastGoodSig; - /** \brief The fetch request that is currently being processed. */ pkgAcquire::ItemDesc Desc; diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc index fe066741c..3008c8d1a 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 fab77e664..99a4605b1 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), @@ -87,7 +89,8 @@ class pkgAcqMethod void Redirect(const string &NewURI); 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/algorithms.cc b/apt-pkg/algorithms.cc index 34da745de..a3963d546 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1140,8 +1140,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) return _error->Error(_("Unable to correct problems, you have held broken packages.")); } - // set the auto-flags (mvo: I'm not sure if we _really_ need this, but - // I didn't managed + // set the auto-flags (mvo: I'm not sure if we _really_ need this) pkgCache::PkgIterator I = Cache.PkgBegin(); for (;I.end() != true; I++) { if (Cache[I].NewInstall() && !(Flags[I->ID] & PreInstalled)) { diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index 59f826d96..089a465c1 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -18,7 +18,6 @@ #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> #include <apti18n.h> - #include <sys/types.h> #include <unistd.h> #include <dirent.h> @@ -80,7 +79,7 @@ bool debSystem::Lock() close(LockFD); LockFD = -1; return _error->Error(_("dpkg was interrupted, you must manually " - "run 'dpkg --configure -a' to correct the problem. ")); + "run 'sudo dpkg --configure -a' to correct the problem. ")); } LockCount++; diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index f787f365e..4403eaefe 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -12,6 +12,7 @@ #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 <apt-pkg/fileutl.h> @@ -24,6 +25,7 @@ #include <sys/wait.h> #include <signal.h> #include <errno.h> +#include <string.h> #include <stdio.h> #include <string.h> #include <algorithm> @@ -104,7 +106,7 @@ ionice(int PID) /* */ pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) : pkgPackageManager(Cache), dpkgbuf_pos(0), - term_out(NULL), PackagesDone(0), PackagesTotal(0) + term_out(NULL), PackagesDone(0), PackagesTotal(0), pkgFailures(0) { } /*}}}*/ @@ -331,7 +333,6 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) return true; } - /*}}}*/ // DPkgPM::DoStdin - Read stdin and pass to slave pty /*{{{*/ // --------------------------------------------------------------------- @@ -399,7 +400,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) 'processing: trigproc: trigger' */ - char* list[5]; + char* list[6]; // 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 @@ -447,6 +448,14 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) if(strncmp(action,"error",strlen("error")) == 0) { + // urgs, sometime has ":" in its error string so that we + // end up with the error message split between list[3] + // and list[4], e.g. the message: + // "failed in buffer_write(fd) (10, ret=-1): backend dpkg-deb ..." + // concat them again + if( list[4] != NULL ) + list[3][strlen(list[3])] = ':'; + status << "pmerror:" << list[1] << ":" << (PackagesDone/float(PackagesTotal)*100.0) << ":" << list[3] @@ -455,6 +464,8 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) 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) @@ -940,7 +951,6 @@ bool pkgDPkgPM::Go(int OutStatusFd) signal(SIGHUP,old_SIGHUP); return _error->Errno("waitpid","Couldn't wait for subprocess"); } - // wait for input or output here FD_ZERO(&rfds); if (!stdin_is_dev_null) @@ -1027,3 +1037,162 @@ 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) + { + std::clog << "configured to not write apport reports" << std::endl; + return; + } + + // only report the first errors + if(pkgFailures > _config->FindI("APT::Apport::MaxReports", 3)) + { + std::clog << _("No apport report written because MaxReports is reached already") << std::endl; + return; + } + + // check if its not a follow up error + const char *needle = dgettext("dpkg", "dependency problems - leaving unconfigured"); + if(strstr(errormsg, needle) != NULL) { + std::clog << _("No apport report written because the error message indicates its a followup error from a previous failure.") << std::endl; + return; + } + + // do not report disk-full failures + if(strstr(errormsg, strerror(ENOSPC)) != NULL) { + std::clog << _("No apport report written because the error message indicates a disk full error") << std::endl; + return; + } + + // do not report out-of-memory failures + if(strstr(errormsg, strerror(ENOMEM)) != NULL) { + std::clog << _("No apport report written because the error message indicates a out of memory error") << std::endl; + 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); + if (Ver.end() == true) + return; + pkgver = Ver.VerStr() == NULL ? "unknown" : Ver.VerStr(); + 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); + } + } + + // log the ordering + const char *ops_str[] = {"Install", "Configure","Remove","Purge"}; + fprintf(report, "AptOrdering:\n"); + for (vector<Item>::iterator I = List.begin(); I != List.end(); I++) + fprintf(report, " %s: %s\n", (*I).Pkg.Name(), ops_str[(*I).Op]); + + // attach dmesg log (to learn about segfaults) + if (FileExists("/bin/dmesg")) + { + FILE *log = NULL; + char buf[1024]; + + fprintf(report, "Dmesg:\n"); + log = popen("/bin/dmesg","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 ebc7e32bf..1675e9e74 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -31,6 +31,7 @@ class pkgDPkgPM : public pkgPackageManager FILE *term_out; protected: + int pkgFailures; // progress reporting struct DpkgState @@ -47,6 +48,7 @@ class pkgDPkgPM : public pkgPackageManager // 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; @@ -67,6 +69,9 @@ class pkgDPkgPM : public pkgPackageManager bool RunScriptsWithPkgs(const char *Cnf); bool SendV2Pkgs(FILE *F); + // apport integration + void WriteApportReport(const char *pkgpath, const char *errormsg); + // dpkg log bool OpenLog(); bool CloseLog(); diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index 63caade36..4e7c2cf87 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -51,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/"); @@ -73,7 +74,7 @@ bool pkgInitConfig(Configuration &Cnf) // State Cnf.Set("Dir::Log","var/log/apt"); Cnf.Set("Dir::Log::Terminal","term.log"); - + // Translation Cnf.Set("APT::Acquire::Translation", "environment"); 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 7c5d15a58..1c41f1265 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -418,6 +418,7 @@ static const char *iTFRewritePackageOrder[] = { "Section", "Installed-Size", "Maintainer", + "Original-Maintainer", "Architecture", "Source", "Version", @@ -447,6 +448,7 @@ static const char *iTFRewriteSourceOrder[] = {"Package", "Priority", "Section", "Maintainer", + "Original-Maintainer", "Build-Depends", "Build-Depends-Indep", "Build-Conflicts", diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 0e950310b..fcfc67ea1 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1269,7 +1269,9 @@ bool DisplayRecord(pkgCache::VerIterator V) return true; } /*}}}*/ - +// Search - Perform a search /*{{{*/ +// --------------------------------------------------------------------- +/* This searches the package names and package descriptions for a pattern */ struct ExDescFile { pkgCache::DescFile *Df; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 2ca0855b6..04f3944a9 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2106,6 +2106,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) @@ -2752,7 +2779,6 @@ int main(int argc,const char *argv[]) /*{{{*/ {"remove",&DoInstall}, {"purge",&DoInstall}, {"autoremove",&DoInstall}, - {"purge",&DoInstall}, {"dist-upgrade",&DoDistUpgrade}, {"dselect-upgrade",&DoDSelectUpgrade}, {"build-dep",&DoBuildDep}, diff --git a/cmdline/apt-key b/cmdline/apt-key index 7bb30240e..26aa55633 100755 --- a/cmdline/apt-key +++ b/cmdline/apt-key @@ -10,13 +10,10 @@ GPG_CMD="gpg --ignore-time-conflict --no-options --no-default-keyring --secret-k GPG="$GPG_CMD --keyring /etc/apt/trusted.gpg" -MASTER_KEYRING="" -ARCHIVE_KEYRING_URI="" -#MASTER_KEYRING=/usr/share/keyrings/debian-master-keyring.gpg -#ARCHIVE_KEYRING_URI=http://ftp.debian.org/debian/debian-archive-keyring.gpg - -ARCHIVE_KEYRING=/usr/share/keyrings/debian-archive-keyring.gpg -REMOVED_KEYS=/usr/share/keyrings/debian-archive-removed-keys.gpg +MASTER_KEYRING=/usr/share/keyrings/ubuntu-master-keyring.gpg +ARCHIVE_KEYRING=/usr/share/keyrings/ubuntu-archive-keyring.gpg +REMOVED_KEYS=/usr/share/keyrings/ubuntu-archive-removed-keys.gpg +ARCHIVE_KEYRING_URI=http://archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg add_keys_with_verify_against_master_keyring() { ADD_KEYRING=$1 @@ -80,14 +77,14 @@ net_update() { 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 # add new keys from the package; # we do not use add_keys_with_verify_against_master_keyring here, - # because "update" is run on regular package updates. A + # because we "update" is run on regular package updates. A # attacker might as well replace the master-archive-keyring file # in the package and add his own keys. so this check wouldn't # add any security. we *need* this check on net-update though diff --git a/cmdline/apt-report-mirror-failure b/cmdline/apt-report-mirror-failure new file mode 100755 index 000000000..ef77d4954 --- /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", "") + #"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/makefile b/cmdline/makefile index 3260e375b..5ae6fb0f1 100644 --- a/cmdline/makefile +++ b/cmdline/makefile @@ -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 48b1def5c..f590310a4 100644 --- a/configure.in +++ b/configure.in @@ -18,6 +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.21") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") diff --git a/debian/README.ubuntu-dev b/debian/README.ubuntu-dev new file mode 100644 index 000000000..9da152556 --- /dev/null +++ b/debian/README.ubuntu-dev @@ -0,0 +1,6 @@ +Build this package with: +$ debian/rules arch-build +or +$ DEB_BUILD_PROG_OPTS="-S" debian/rules arch-build + +make sure you have the pre-build-depds in README.arch installed diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove index 98143ce9a..42081014a 100644 --- a/debian/apt.conf.autoremove +++ b/debian/apt.conf.autoremove @@ -1,8 +1,18 @@ APT { NeverAutoRemove - { + { + "^linux-firmware$"; "^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..d295aee25 --- /dev/null +++ b/debian/apt.conf.ubuntu @@ -0,0 +1,3 @@ +APT +{ +}; diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily index 4f47ccfab..980bfbb9d 100644 --- a/debian/apt.cron.daily +++ b/debian/apt.cron.daily @@ -1,67 +1,40 @@ #!/bin/sh +# + #set -e # # This file understands the following apt configuration variables: -# Values here are the default. -# Create /etc/apt/apt.conf.d/02periodic file to set your preference. -# -# Dir "/"; -# - RootDir for all configuration files -# -# Dir::Cache "var/apt/cache/"; -# - Set apt package cache directory -# -# Dir::Cache::Archive "archives/"; -# - Set package archive directory -# -# APT::Periodic::BackupArchiveInterval "0"; -# - Backup after n-days if archive contents changed.(0=disable) -# -# APT::Periodic::BackupLevel "3"; -# - Backup level.(0=disable), 1 is invalid. -# -# Dir::Cache::Backup "backup/"; -# - Set periodic package backup directory -# -# APT::Archives::MaxAge "0"; (old, deprecated) -# APT::Periodic::MaxAge "0"; (new) -# - Set maximum allowed age of a cache package file. If a cache -# package file is older it is deleted (0=disable) -# -# APT::Archives::MinAge "2"; (old, deprecated) -# APT::Periodic::MinAge "2"; (new) -# - Set minimum age of a package file. If a file is younger it -# will not be deleted (0=disable). Usefull to prevent races -# and to keep backups of the packages for emergency. -# -# APT::Archives::MaxSize "0"; (old, deprecated) -# APT::Periodic::MaxSize "0"; (new) -# - Set maximum size of the cache in MB (0=disable). If the cache -# is bigger, cached package files are deleted until the size -# requirement is met (the biggest packages will be deleted -# first). # -# APT::Periodic::Update-Package-Lists "0"; +# "APT::Periodic::Update-Package-Lists=1" # - Do "apt-get update" automatically every n-days (0=disable) # -# APT::Periodic::Download-Upgradeable-Packages "0"; +# "APT::Periodic::Download-Upgradeable-Packages=0", # - Do "apt-get upgrade --download-only" every n-days (0=disable) # -# APT::Periodic::Unattended-Upgrade "0"; +# "APT::Periodic::AutocleanInterval" +# - Do "apt-get autoclean" every n-days (0=disable) +# +# "APT::Periodic::Unattended-Upgrade" # - Run the "unattended-upgrade" security upgrade script # every n-days (0=disabled) # Requires the package "unattended-upgrades" and will write # a log in /var/log/unattended-upgrades # -# APT::Periodic::AutocleanInterval "0"; -# - Do "apt-get autoclean" every n-days (0=disable) +# "APT::Archives::MaxAge", +# - Set maximum allowed age of a cache package file. If a cache +# package file is older it is deleted (0=disable) # -# APT::Periodic::Verbose "0"; -# - Send report mail to root -# 0: no report (or null string) -# 1: progress report (actually any string) -# 2: + command outputs (remove -qq, remove 2>/dev/null, add -d) -# 3: + trace on +# "APT::Archives::MaxSize", +# - Set maximum size of the cache in MB (0=disable). If the cache +# is bigger, cached package files are deleted until the size +# requirement is met (the biggest packages will be deleted +# first). +# +# "APT::Archives::MinAge" +# - Set minimum age of a package file. If a file is younger it +# will not be deleted (0=disable). Usefull to prevent races +# and to keep backups of the packages for emergency. +# check_stamp() { @@ -102,9 +75,17 @@ check_stamp() delta=$(($now-$stamp)) - # intervall is in days, convert to sec. + # intervall is in days, interval=$(($interval*60*60*24)) - debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)" + #echo "stampfile: $1" + #echo "interval=$interval, now=$now, stamp=$stamp, delta=$delta" + + # remove timestamps a day (or more) in the future and force re-check + if [ $stamp -gt $(($now+86400)) ]; then + echo "WARNING: file $stamp_file has a timestamp in the future: $stamp" + rm -f "$stamp_file" + return 0 + fi # remove timestamps a day (or more) in the future and force re-check if [ $stamp -gt $(($now+86400)) ]; then @@ -123,6 +104,7 @@ check_stamp() update_stamp() { stamp="$1" + touch $stamp } @@ -372,11 +354,10 @@ now=$(date +%s) # Document only Periodic for all controling parameters of this script. UpdateInterval=0 -eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists) - DownloadUpgradeableInterval=0 -eval $(apt-config shell DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) - +eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) +AutocleanInterval=$DownloadUpgradeableInterval +eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval) UnattendedUpgradeInterval=0 eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade) @@ -390,11 +371,22 @@ eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterv if [ $UpdateInterval -eq 0 ] && [ $DownloadUpgradeableInterval -eq 0 ] && [ $UnattendedUpgradeInterval -eq 0 ] && - [ $BackupArchiveInterval -eq 0 ] && [ $AutocleanInterval -eq 0 ]; then exit 0 fi +# set the proxy based on the admin users gconf settings +admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1) +if [ -n "$admin_user" ] && [ -x /usr/bin/sudo ] && [ -z "$http_proxy" ] && [ -x /usr/bin/gconftool ]; then + use=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/use_http_proxy 2>/dev/null) + host=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/host 2>/dev/null) + port=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/port 2>/dev/null) + if [ "$use" = "true" ] && [ -n "$host" ] && [ -n "$port" ]; then + export http_proxy="http://$host:$port/" + fi +fi + + # deal with BackupArchiveInterval do_cache_backup $BackupArchiveInterval @@ -406,7 +398,13 @@ random_sleep UPDATED=0 UPDATE_STAMP=/var/lib/apt/periodic/update-stamp if check_stamp $UPDATE_STAMP $UpdateInterval; then - if eval apt-get $XAPTOPT -y update $XSTDERR; then + # check for a new archive signing key (against the master keyring) + if eval apt-key net-update $XSTDERR; then + debug_echo "apt-key net-update (success)" + else + debug_echo "apt-key net-update (failure)" + fi + if eval apt-get $XAPTOPT -y update -o APT::Update::Auth-Failure::="cp /usr/share/apt/apt-auth-failure.note /var/lib/update-notifier/user.d/" $XSTDERR; then debug_echo "download updated metadata (success)." if which dbus-send >/dev/null && pidof dbus-daemon >/dev/null; then if dbus-send --system / app.apt.dbus.updated boolean:true ; then @@ -419,6 +417,11 @@ if check_stamp $UPDATE_STAMP $UpdateInterval; then fi update_stamp $UPDATE_STAMP UPDATED=1 + # now run apt-xapian-index if it is installed to ensure the index + # is up-to-date + if [ -x /usr/sbin/update-apt-xapian-index ]; then + ionice -c3 update-apt-xapian-index -q + fi else debug_echo "download updated metadata (error)" fi diff --git a/debian/apt.dirs b/debian/apt.dirs index fb6716c35..d11ee0f2f 100644 --- a/debian/apt.dirs +++ b/debian/apt.dirs @@ -8,6 +8,7 @@ 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.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 3d5db5f48..f6c282f42 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,16 @@ +apt (0.7.23ubuntu1) karmic; urgency=low + + * merged from the debian-sid bzr branch + + * cmdline/apt-get.cc: + - honor APT::Get::Only-Source properly in FindSrc() (thanks to + Martin Pitt for reporting the problem) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 30 Jul 2009 15:27:30 +0200 + apt (0.7.22) unstable; urgency=low + [ Christian Perrier ] * Documentation translations: - Fix a typo in apt-get(8) French translation. Closes: #525043 @@ -8,7 +19,7 @@ apt (0.7.22) unstable; urgency=low Thanks to Aurélien Couderc. * Translations: - fr.po - - sk.po. Closes: #525857 + - sk.po. Closes: #525857 - ru.po. Closes: #526816 - eu.po. Closes: #528985 - zh_CN.po. Closes: #531390 @@ -43,6 +54,7 @@ apt (0.7.22) unstable; urgency=low which can arise if cache doesn't fit into the mmap (Closes: #535218) * display warnings instead of errors if the parts dirs doesn't exist + [ Michael Vogt ] * honor the dpkg hold state in new Marker hooks (closes: #64141) * debian/apt.cron.daily: @@ -130,6 +142,34 @@ apt (0.7.22) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Wed, 29 Jul 2009 19:16:22 +0200 +apt (0.7.21ubuntu1) karmic; urgency=low + + * merged from the debian-sid bzr branch + + [ Christian Perrier ] + * Documentation translations: + - Fix a typo in apt-get(8) French translation. Closes: #525043 + Thanks to Guillaume Delacour for spotting it. + * Translations: + - fr.po + - sk.po. Closes: #525857 + - ru.po. Closes: #526816 + - eu.po. Closes: #528985 + - zh_CN.po. Closes: #531390 + - fr.po + - it.po. Closes: #531758 + - ca.po. Closes: #531921 + * Added translations + - ast.po (Asturian by Marcos Alvareez Costales). + Closes: #529007, #529730 + + [ Michael Vogt ] + * apt-pkg/acquire.cc: + - make the (internal) max pipeline depth of the acquire queue + configurable via Acquire::Max-Pipeline-Depth + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 09 Jun 2009 15:49:07 +0200 + apt (0.7.21) unstable; urgency=low [ Christian Perrier ] @@ -142,7 +182,7 @@ apt (0.7.21) unstable; urgency=low - sk.po. Closes: #520403 - it.po. Closes: #522222 - sk.po. Closes: #520403 - + [ Jamie Strandboge ] * apt.cron.daily: catch invalid dates due to DST time changes in the stamp files @@ -163,7 +203,7 @@ apt (0.7.21) unstable; urgency=low * Clarify the --help for 'purge' (LP: #243948) * cmdline/apt-get.cc - fix "apt-get source pkg" if there is a binary package and - a source package of the same name but from different + a source package of the same name but from different packages (LP: #330103) [ Colin Watson ] @@ -173,6 +213,125 @@ apt (0.7.21) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Tue, 14 Apr 2009 14:12:51 +0200 +apt (0.7.20.2ubuntu7) karmic; urgency=low + + * fix problematic use of tolower() when calculating the version + hash by using locale independant tolower_ascii() function. + Thanks to M. Vefa Bicakci (LP: #80248) + * build fixes for g++-4.4 + * include dmesg output in apport package failures + * include apt ordering into apport package failures + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 24 Apr 2009 10:14:01 +0200 + +apt (0.7.20.2ubuntu6) jaunty; urgency=low + + [ Jamie Strandboge ] + * apt.cron.daily: catch invalid dates due to DST time changes + in the stamp files (LP: #354793) + + [ Michael Vogt ] + * methods/gpgv.cc: + - properly check for expired and revoked keys (closes: #433091) + LP: #356012 + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 08 Apr 2009 22:39:50 +0200 + +apt (0.7.20.2ubuntu5) jaunty; urgency=low + + [ Colin Watson ] + * cmdline/acqprogress.cc: + - Call pkgAcquireStatus::Pulse even if quiet, so that we still get + dlstatus messages on the status-fd (LP: #290234). + + [ Michael Vogt ] + * debian/apt.cron.daily: + - do not clutter cron mail with bogus gconftool messages + (LP: #223502) + - merge fix for cache locking from debian (closes: #459344) + - run update-apt-xapian-index (with ionice) to ensure that + the index is up-to-date when synaptic is run (LP: #288797) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 30 Mar 2009 13:22:28 +0200 + +apt (0.7.20.2ubuntu4) jaunty; urgency=low + + * ftparchive/cachedb.cc: + - when apt-ftparchive clean is used, compact the database + at the end (thanks to cprov) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 26 Mar 2009 13:43:59 +0100 + +apt (0.7.20.2ubuntu3) jaunty; urgency=low + + * methods/mirror.cc: + - when download the mirror file and the server is down, + return a propper error message (LP: #278635) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 19 Mar 2009 15:42:15 +0100 + +apt (0.7.20.2ubuntu2) jaunty; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - revert termios patch (LP: #338514) + * cmdline/apt-get.cc + - fix "apt-get source pkg" if there is a binary package and + a source package of the same name but from different + packages (LP: #330103) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 09 Mar 2009 16:33:28 +0100 + +apt (0.7.20.2ubuntu1) jaunty; urgency=low + + [ Christian Perrier ] + * Translations: + - bg.po. Closes: #513211 + - zh_TW.po. Closes: #513311 + - nb.po. Closes: #513843 + + [ Michael Vogt ] + * merged from the debian-sid branch + * [ABI break] merge support for http redirects, thanks to + Jeff Licquia and Anthony Towns + * [ABI break] use int for the package IDs (thanks to Steve Cotton) + * apt-pkg/contrib/strutl.cc: + - fix TimeToStr i18n (LP: #289807) + * debian/apt.conf.autoremove: + - readd "linux-image" (and friends) to the auto-remove + blacklist + * fix some i18n issues (thanks to Gabor Kelemen) + LP: #263089 + * apt-pkg/deb/dpkgpm.cc: + - filter "ENOMEM" errors when creating apport reports + * cmdline/apt-get.cc: + - fix "apt-get source pkg=ver" if binary name != source name + (LP: #202219) + * apt-pkg/indexrecords.cc: + - fix some i18n issues + * apt-pkg/contrib/strutl.h: + - add new strprintf() function to make i18n strings easier + * apt-pkg/dev/debsystem.cc: + - add missing apti18n.h header + * cmdline/apt-get.cc: + - default to "false" for the "APT::Get::Build-Dep-Automatic" + option (follow debian here) + * apt-pkg/pkgcache.cc: + - do not run "dpkg --configure pkg" if pkg is in trigger-awaited + state (LP: #322955) + * methods/https.cc: + - add Acquire::https::AllowRedirect support + - do not unlink files in partial/ (thanks to robbiew) + + [ Dereck Wonnacott ] + * Clarify the --help for 'purge' (LP: #243948) + + [ Ian Weisser ] + * /apt-pkg/deb/debsystem.cc: + - add 'sudo' to the error message to "run 'dpkg --configure -a'" + (LP: #52697) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 09 Feb 2009 14:21:05 +0100 + apt (0.7.20.2) unstable; urgency=medium [ Eugene V. Lyubimkin ] @@ -221,10 +380,10 @@ apt (0.7.20) unstable; urgency=low (Closes: #440049, #509337) [ Michael Vogt ] - * add option to "apt-get build-dep" to mark the needed - build-dep packages as automatic installed. + * add option to "apt-get build-dep" to mark the needed + build-dep packages as automatic installed. This is controlled via the value of - APT::Get::Build-Dep-Automatic and is set "false" by default. + APT::Get::Build-Dep-Automatic and is set "false" by default. Thanks to Aaron Haviland, closes: #448743 * apt-inst/contrib/arfile.cc: - support members ending with '/' as well (thanks to Michal Cihr, @@ -232,15 +391,21 @@ apt (0.7.20) unstable; urgency=low [ Christian Perrier ] * Translations: - - Finnish updated. Closes: #508449 + - Finnish updated. Closes: #508449 - Galician updated. Closes: #509151 - Catalan updated. Closes: #509375 - Vietnamese updated. Closes: #509422 - Traditional Chinese added. Closes: #510664 - - French corrected (remove awful use of first person) + - French corrected (remove awful use of first person) -- Michael Vogt <mvo@debian.org> Mon, 05 Jan 2009 08:59:20 +0100 +apt (0.7.19ubuntu1) jaunty; urgency=low + + * merge from debian + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 24 Nov 2008 10:52:20 +0100 + apt (0.7.19) unstable; urgency=low [ Eugene V. Lyubimkin ] @@ -258,6 +423,8 @@ apt (0.7.19) unstable; urgency=low (Closes: #419521) [ Michael Vogt ] + * doc/makefile: + - add examples/apt-https-method-example.conf - fix SIGHUP handling (closes: #463030) [ Christian Perrier ] @@ -539,6 +706,103 @@ apt (0.7.15~exp1) experimental; urgency=low -- Michael Vogt <mvo@debian.org> Tue, 16 Sep 2008 21:27:03 +0200 +apt (0.7.14ubuntu7) jaunty; urgency=low + + * cmdline/apt-cache.cc: + - remove the gettext from a string that consists entirely + of variables (LP: #56792) + * apt-pkg/deb/dpkgpm.cc: + - fix potential hang when in a backgroud process group + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 28 Oct 2008 21:09:12 +0100 + +apt (0.7.14ubuntu6) intrepid; urgency=low + + * debian/apt.conf.autoremove: + - remove "linux-image" (and friends) from the auto-remove + blacklist. we have the kernel fallback infrastructure now + in intrepid (thanks to BenC) + * apt-pkg/indexcopy.cc: + - support having CDs with no Packages file (just a Packages.gz) + by not forcing a verification on non-existing files + (LP: #255545) + * apt-pkg/deb/dpkgpm.cc: + - improve the filtering for duplicated apport reports (thanks + to seb128 for pointing that problem out) + - do not report disk full errors from dpkg via apport + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 07 Aug 2008 16:28:05 +0200 + +apt (0.7.14ubuntu5) intrepid; urgency=low + + * fix various -Wall warnings + * make "apt-get build-dep" installed packages marked automatic + by default. This can be changed by setting the value of + APT::Get::Build-Dep-Automatic to false (thanks to Aaron + Haviland, closes: #44874, LP: #248268) + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 06 Aug 2008 14:00:51 +0200 + +apt (0.7.14ubuntu4) intrepid; urgency=low + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.cc: + - fix uninitialized variable that caused no apport reports + to be written sometimes (thanks to Matt Zimmerman) + * merge patch that enforces stricter https server certificate + checking (thanks to Arnaud Ebalard, closes: #485960) + * allow per-mirror specific https settings + (thanks to Arnaud Ebalard, closes: #485965) + * add doc/examples/apt-https-method-example.cof + (thanks to Arnaud Ebalard, closes: #485964) + * add DPkg::NoTriggers option so that applications that call + apt/aptitude (like the installer) defer trigger processing + (thanks to Joey Hess) + * document --install-recommends and --no-install-recommends + (thanks to Dereck Wonnacott, LP: #126180) + + [ Dereck Wonnacott ] + * apt-ftparchive might write corrupt Release files (LP: #46439) + * Apply --important option to apt-cache depends (LP: #16947) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 05 Aug 2008 10:10:49 +0200 + +apt (0.7.14ubuntu3) intrepid; urgency=low + + [ Otavio Salvador ] + * Apply patch to avoid truncating of arbitrary files. Thanks to Bryan + Donlan <bdonlan@fushizen.net> for the patch. Closes: #482476 + * Avoid using dbus if dbus-daemon isn't running. Closes: #438803 + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.cc: + - improve apt progress reporting, display trigger actions + * apt-pkg/depcache.cc: + - when checking for new important deps, skip critical ones + (LP: #236360) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 03 Jun 2008 17:27:07 +0200 + +apt (0.7.14ubuntu2) intrepid; urgency=low + + * debian/control: + - fix FTBFS by adding missing intltool dependency + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 09 May 2008 13:50:22 +0200 + +apt (0.7.14ubuntu1) intrepid; urgency=low + + [ Michael Vogt ] + * enable installation of recommends by default + * debian/apt.conf.ubuntu: + - remove APT::Install-Recommends-Sections (no longer needed) + * merged from debian/sid, remaining changes: + - authentication-reliable branch (to be merged into debian soon) + - mirror:// uri branch (breaks ABI in debian, not merged yet) + - apport failure reporting + - show warning on apt-get source with 'Vcs-' header + - proxy detection from gconf in apt.cron + apt (0.7.14) unstable; urgency=low [ Christian Perrier ] @@ -608,7 +872,7 @@ apt (0.7.12) unstable; urgency=low * apt-pkg/deb/dpkgpm.cc: - merged patch from Kees Cook to fix anoying upper-case display on amd64 in sbuild - * apt-pkg/algorithms.cc: + * apt-pkg/algorithms.cc: - add APT::Update::Post-Invoke-Success script slot - Make the breaks handling use the kill list. This means, that a Breaks: Pkg (<< version) may put Pkg onto the remove list. @@ -647,7 +911,7 @@ apt (0.7.12) unstable; urgency=low - French updated. - Bulgarian updated. Closes: #448492 - Galician updated. Closes: #476839 - + [ Daniel Burrows ] * apt-pkg/depcache.cc: - Patch MarkInstall to follow currently satisfied Recommends even @@ -665,7 +929,7 @@ apt (0.7.12) unstable; urgency=low - Add missing Build-Depends-Indep on xsltproc, docbook-xsl, and xmlto. -- Daniel Burrows <dburrows@debian.org> Sat, 26 Apr 2008 12:24:35 -0700 - + apt (0.7.11) unstable; urgency=critical [ Raise urgency to critical since it fixes a critical but for Debian @@ -724,7 +988,6 @@ apt (0.7.10) unstable; urgency=low - Simplified Chinese updated. Closes: #458039 - French updated. - Norwegian Bokmål updated. Closes: #457917 - [ Michael Vogt ] * debian/rules - fix https install location @@ -739,7 +1002,7 @@ apt (0.7.10) unstable; urgency=low - make the authentication download code more robust against servers/proxies with broken If-Range implementations * apt-pkg/packagemanager.{cc,h}: - - propergate the Immediate flag to make hitting the + - propergate the Immediate flag to make hitting the "E: Internal Error, Could not perform immediate configuration (2)" harder * debian/control: @@ -753,7 +1016,7 @@ apt (0.7.10) unstable; urgency=low - support lzma data members * ftparchive/multicompress.cc: - support lzma output - + [ Daniel Burrows ] * apt-pkg/contrib/configuration.cc: - if RootDir is set, then FindFile and FindDir will return paths @@ -762,8 +1025,270 @@ apt (0.7.10) unstable; urgency=low [ Christian Perrier ] * Fix wording for "After unpacking...". Thanks to Michael Gilbert for the patch. Closes: #260825 + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 03 Jan 2008 11:31:45 +0100 + +apt (0.7.9ubuntu17) hardy-proposed; urgency=low + + * apt-pkg/acquire-item.cc: + - fix signaure removal on transient network failures LP: #220627 + (thanks to Scott James Remnant) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 22 Apr 2008 16:32:49 +0200 + +apt (0.7.9ubuntu16) hardy; urgency=low + + * cmdline/apt-key: + - only check against master-keys in net-update to not break + custom CDs (thanks to Colin Watson) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 08 Apr 2008 14:17:14 +0200 + +apt (0.7.9ubuntu15) hardy; urgency=low + + * cmdline/apt-get.cc: + - do two passes when installing tasks, first ignoring dependencies, + then resolving them and run the problemResolver at the end + so that it can correct any missing dependencies. This should + fix livecd building for kubuntu (thanks to Jonathan Riddell + for reporting the problem) - -- Michael Vogt <mvo@debian.org> Mon, 07 Jan 2008 21:40:47 +0100 + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 13 Mar 2008 23:25:45 +0100 + +apt (0.7.9ubuntu14) hardy; urgency=low + + * cmdline/apt-get.cc: + - fix incorrect help output for -f (LP: #57487) + - run the problemResolver after a task was installed + so that it can correct any missing dependencies + * typo fixes (LP: #107960) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 11 Mar 2008 21:46:07 +0100 + +apt (0.7.9ubuntu13) hardy; urgency=low + + [ Lionel Porcheron ] + * debian/apt.cron.daily: + - only call gconftool if gcontool is installed (LP: #194281) + + [ Michael Vogt ] + * doc/apt_preferences.5.xml: + - fix typo (LP: #150900) + * doc/example/sources.list: + - updated for hardy (LP: #195879) + * debian/apt.cron.daily: + - sleep random amount of time (default within 0-30min) before + starting the upate to hit the mirrors less hard + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 04 Mar 2008 15:35:09 +0100 + +apt (0.7.9ubuntu12) hardy; urgency=low + + * debian/apt.cron.daily: + - use admin user proxy settings + * cmdline/apt-get.cc: + - fix task installation (thanks to Colin Watson) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 21 Feb 2008 15:07:44 +0100 + +apt (0.7.9ubuntu11) hardy; urgency=low + + * apt-pkg/algorithms.cc: + - add APT::Update::Post-Invoke-Success script slot + (LP: #188127) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 10 Jan 2008 12:06:12 +0100 + +apt (0.7.9ubuntu10) hardy; urgency=low + + * cmdline/apt-key: + - add "net-update" command that fetches the + ubuntu-archive-keyring.gpg and add keys from it that are + signed by the ubuntu-master-keyring.gpg + (apt-archive-key-signatures spec) + * debian/apt.cron.daily: + - add apt-key net-update to the nightly cron job + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 13 Feb 2008 15:50:28 +0100 + +apt (0.7.9ubuntu9) hardy; urgency=low + + * fix FTBFS due to incorrect intltool build-depends + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 11 Feb 2008 16:04:37 +0100 + +apt (0.7.9ubuntu8) hardy; urgency=low + + * share/apt-auth-failure.note: + - show update-notifier note if the nightly update fails with a + authentication failure (apt-authentication-reliability spec) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 11 Feb 2008 14:04:56 +0100 + +apt (0.7.9ubuntu7) hardy; urgency=low + + * methods/connect.cc: + - remember hosts with Resolve failures or connect Timeouts + see https://wiki.ubuntu.com/NetworklessInstallationFixes + * cmdlines/apt-key: + - fix bug in the new apt-key update code that imports only + keys signed with the master key (thanks to cjwatson) + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 08 Feb 2008 11:38:35 +0100 + +apt (0.7.9ubuntu6) hardy; urgency=low + + * cmdline/apt-key: + - add support for a master-keyring that contains signing keys + that can be used to sign the archive signing keys. This should + make key-rollover easier. + * apt-pkg/deb/dpkgpm.cc: + - merged patch from Kees Cook to fix anoying upper-case display + on amd64 in sbuild + * apt-pkg/algorithms.cc: + - add APT::Update::Post-Invoke-Success script slot + - Make the breaks handling use the kill list. This means, that a + Breaks: Pkg (<< version) may put Pkg onto the remove list. + * apt-pkg/deb/dpkgpm.cc: + - add APT::Apport::MaxReports to limit the maximum number + of reports generated in a single run (default to 3) + * apt-pkg/deb/debmetaindex.cc: + - add missing "Release" file uri when apt-get update --print-uris + is run + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 04 Feb 2008 14:28:02 +0100 + +apt (0.7.9ubuntu5) hardy; urgency=low + + * Merged apt-authentication-reliabilty branch. This means + that apt will refuse to update and use the old lists if + the authentication of a repository that used to be + authenticated fails. See + https://wiki.ubuntu.com/AptAuthenticationReliability + for more details. + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 16 Jan 2008 10:36:10 +0100 + +apt (0.7.9ubuntu4) hardy; urgency=low + + * apt-pkg/algorithms.cc: + - Since APT::Get::List-Cleanup and APT::List-Cleanup both default to + true, the effect of the compatibility code was to require both of them + to be set to false in order to disable list cleanup; this broke the + installer. Instead, disable list cleanup if either of them is set to + false. + + -- Colin Watson <cjwatson@ubuntu.com> Wed, 09 Jan 2008 22:34:37 +0000 + +apt (0.7.9ubuntu3) hardy; urgency=low + + * merged the apt--DoListUpdate branch, this provides a common interface + for "apt-get update" like operations for the frontends and also provides + hooks to run stuff in APT::Update::{Pre,Post}-Invoke + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 07 Jan 2008 19:02:11 +0100 + +apt (0.7.9ubuntu2) hardy; urgency=low + + [ Otavio Salvador ] + * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix building + with newest dpkg-shlibdeps changing the packaging building order and a + patch from Robert Millan <rmh@aybabtu.com> to fix parallel building, + closes: #452862. + * Applied patch from Alexander Winston <alexander.winston@comcast.net> + to use 'min' as symbol for minute, closes: #219034. + * Applied patch from Amos Waterland <apw@us.ibm.com> to allow apt to + work properly in initramfs, closes: #448316. + * Applied patch from Robert Millan <rmh@aybabtu.com> to make apt-key and + apt-get to ignore time conflicts, closes: #451328. + * Applied patch from Peter Eisentraut <peter_e@gmx.net> to fix a + grammatical error ("manual installed" -> "manually installed"), + closes: #438136. + * Fix cron.daily job to not call fail if apt isn't installed, closes: + #443286. + + [ Daniel Burrows ] + * apt-pkg/contrib/configuration.cc: + - if RootDir is set, then FindFile and FindDir will return paths + relative to the directory stored in RootDir, closes: #456457. + + [ Christian Perrier ] + * Fix wording for "After unpacking...". Thans to Michael Gilbert + for the patch. Closes: #260825 + + [ Program translations ] + - Vietnamese updated. Closes: #453774 + - Japanese updated. Closes: #456909 + - French updated. + + [ Michael Vogt ] + * apt-pkg/packagemanager.{cc,h}: + - propergate the Immediate flag to make hitting the + "E: Internal Error, Could not perform immediate configuration (2)" + harder. (LP: #179247) + * debian/apt.conf.daily: + - print warning if the cache can not be locked (closes: #454561), + thanks to Bastian Kleineidam + * debian/control: + - build against libdb-dev (instead of libdb4.4-dev) + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 03 Jan 2008 11:31:45 +0100 + +apt (0.7.9ubuntu1) hardy; urgency=low + + * merged from http://bzr.debian.org/apt/apt/debian-sid/, remaining + changes: + - mirror download method (pending merge with debian) + - no pdiff download by default (unsuitable for ubuntu) + - no recommends-by-default yet + - add "Original-Maintainer" field to tagfile + - show warning on apt-get source if the package is maintained + in a VCS (pedinging merge with debian) + - use ubuntu-archive keyring instead of debians one + - support metapackages section for autoremoval + - debian maintainer field change + - send ubuntu string in user-agent + + * Changes from the debian-sid bzr branch (but not uploaded to debian + yet): + + [ Otavio Salvador ] + * Applied patch from Mike O'Connor <stew@vireo.org> to add a manpage to + apt-mark, closes: #430207. + * Applied patch from Andrei Popescu <andreimpopescu@gmail.com> to add a + note about some frontends in apt.8 manpage, closes: #438545. + * Applied patch from Aurelien Jarno <aurel32@debian.org> to avoid CPU + getting crazy when /dev/null is redirected to stdin (which breaks + buildds), closes: #452858. + + [ Program translations ] + - Basque updated. Closes: #453088 + + [ Michael Vogt ] + * debian/rules + - fix https install location + * methods/gpgv.cc: + - remove cruft code that caused timestamp/I-M-S issues + * ftparchive/contents.cc: + - fix error output + * methods/mirror.{cc,h}: + - only update mirror list on IndexFile updates + * apt-pkg/acquire-item.{cc,h}: + - make the authentication download code more robust against + servers/proxies with broken If-Range implementations + * debian/control: + - build against libdb-dev (instead of libdb4.4-dev) + * merged the apt--DoListUpdate branch, this provides a common interface + for "apt-get update" like operations for the frontends and also provides + hooks to run stuff in APT::Update::{Pre,Post}-Invoke + + [ Chris Cheney ] + * ftparchive/contents.cc: + - support lzma data members + * ftparchive/multicompress.cc: + - support lzma output + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 13 Dec 2007 14:46:27 +0100 apt (0.7.9) unstable; urgency=low @@ -890,12 +1415,192 @@ apt (0.7.7) unstable; urgency=low -- Michael Vogt <mvo@debian.org> Tue, 23 Oct 2007 14:58:03 +0200 -apt (0.7.6) unstable; urgency=low +apt (0.7.6ubuntu14.1) gutsy-proposed; urgency=low - * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong - directory downloading on non-linux architectures (closes: #435597) + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.{cc,h}: + - give up timeslice on EIO error in read from master terminal + * debian/apt.cron.daily: + - only run the cron job if apt-get check succeeds (LP: #131719) - -- Otavio Salvador <otavio@debian.org> Wed, 01 Aug 2007 19:49:51 -0300 + [ Martin Emrich ] + * apt-pkg/deb/dpkgpm.{cc,h}: + - rewrite dpkgpm.cc to use pselect() instead of select() + to block signals during select() (LP: #134858) + + -- Michael Vogt <michael.vogt@ubuntu.com> Sat, 20 Oct 2007 07:51:12 +0200 + +apt (0.7.6ubuntu14) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix resource leak (LP: #148806) + + -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 15 Oct 2007 20:57:44 +0200 + +apt (0.7.6ubuntu13) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix crash in WriteApportReport (LP: #144537) + * apt-pkg/acquire-item.cc + - fix disappearing local Packages.gz file (LP: #131166) + * methods/https.cc: + - fix off-by-one error I-M-S handling + - cleanup after I-M-S hit + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 09 Oct 2007 01:48:26 +0200 + +apt (0.7.6ubuntu12) gutsy; urgency=low + + [ Michael Vogt ] + * cmdline/apt-mark: + - Fix chmoding after have renamed the extended-states file + (thanks to Laurent Bigonville, LP: #140019) + * apt-pkg/deb/debmetaindex.cc: comparison with string literal results + in unspecified behaviour; + * Reset curl options and timestamp between downloaded files. Thanks to + Ryan Murray <rmurray@debian.org> for the patch + + [Paul Sladen] + * Have 'cron.daily/apt' send D-Bus doesn't exist error messages + to the bit bucket. Thanks to 'dasdda'. (LP: #115397) + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 03 Oct 2007 02:17:45 +0200 + +apt (0.7.6ubuntu11) gutsy; urgency=low + + * apt-pkg/contrib/mmap.cc: + - don't fail if msync() returns > 0 (LP: #144001) + + -- Colin Watson <cjwatson@ubuntu.com> Sat, 22 Sep 2007 21:39:29 +0100 + +apt (0.7.6ubuntu10) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix parse error when dpkg sends unexpected data + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 18 Sep 2007 17:25:09 +0100 + +apt (0.7.6ubuntu9) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix progress reporting precent calculation (LP: #137798) + * make apt build with g++ 4.3 + * fix missing SetExecClose() call when the status-fd is used + (LP: #136767) + * debian/apt.cron.daily: + - move unattended-upgrade before apt-get autoclean + * fix "purge" commandline argument, closes LP: #125733 + (thanks to Julien Danjou for the patch) + * cmdline/apt-get.cc: + - do not change the auto-installed information if a package + is reinstalled (LP: #139448) + + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 11 Sep 2007 20:55:00 +0200 + +apt (0.7.6ubuntu8) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.{cc,h}: + - fix bug in dpkg log writing when a signal is caught during + select() (LP: #134858) + - write end marker in the log as well + + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 05 Sep 2007 15:03:46 +0200 + +apt (0.7.6ubuntu7) gutsy; urgency=low + + * reupload to fix FTBFS + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 16 Aug 2007 19:44:20 +0200 + +apt (0.7.6ubuntu6) gutsy; urgency=low + + * dpkg-triggers: Deal properly with new package states. + + -- Ian Jackson <iwj@ubuntu.com> Wed, 15 Aug 2007 20:44:37 +0100 + +apt (0.7.6ubuntu5) UNRELEASED; urgency=low + + * apt-pkg/acquire-item.cc: + - fix file removal on local repo i-m-s hit (LP: #131166) + * tests/local-repo: + - added regression test for this bug + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 09 Aug 2007 12:34:07 +0200 + +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 + + [ Michael Vogt ] + * 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 a file + - send range request with if-range + - delete failed downloads + (thanks to Thom May for his help here) + - delete zero size I-M-S hits + * 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) + * apt-pkg/pkgcachegen.cc: + - increase default mmap size + * tests/local-repo: + - added local repository testcase + * make apt build with g++ 4.3 + * fix missing SetExecClose() call when the status-fd is used + * debian/apt.cron.daily: + - move unattended-upgrade before apt-get autoclean + * fix "purge" commandline argument, closes: #133421 + (thanks to Julien Danjou for the patch) + * cmdline/apt-get.cc: + - do not change the auto-installed information if a package + is reinstalled + * cmdline/apt-mark: + - Fix chmoding after have renamed the extended-states file (LP: #140019) + (thanks to Laurent Bigonville) + + [ Ian Jackson ] + * dpkg-triggers: Deal properly with new package states. + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 02 Aug 2007 11:55:54 +0200 apt (0.7.6) unstable; urgency=low @@ -924,6 +1629,14 @@ apt (0.7.5) unstable; urgency=low -- 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 ] @@ -983,6 +1696,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 @@ -1050,12 +1847,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 @@ -1079,6 +1880,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 all the new features @@ -1106,6 +1994,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 @@ -1152,6 +2063,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: @@ -1216,10 +2147,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: @@ -1244,8 +2211,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 @@ -1283,42 +2355,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 <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 <michael.vogt@ubuntu.com> Tue, 4 Jul 2006 09:23:03 +0200 + +apt (0.6.44.2ubuntu1) edgy; urgency=low - -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200 + * 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 @@ -1380,6 +2467,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: @@ -1389,16 +2496,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) @@ -1409,8 +2546,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 @@ -1435,8 +2574,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 @@ -1458,6 +2615,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: @@ -1478,6 +2648,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: @@ -1525,13 +2711,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) @@ -1545,9 +2731,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) @@ -1558,8 +2744,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 @@ -1567,10 +2753,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) @@ -1579,10 +2765,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 @@ -1593,6 +2853,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 @@ -1608,6 +2874,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 @@ -1618,7 +2917,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 84c411509..03cc52d87 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: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>, Christian Perrier <bubulle@debian.org>, Daniel Burrows <dburrows@debian.org>, Luca Bruno <lethalman88@gmail.com> Standards-Version: 3.8.1.0 -Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), debiandoc-sgml, docbook-utils (>= 0.6.12), xsltproc, docbook-xsl, xmlto -Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ +Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), debiandoc-sgml, docbook-utils (>= 0.6.12), xsltproc, docbook-xsl, xmlto, intltool +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} +Recommends: ubuntu-keyring Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt Section: admin Description: Advanced front-end for dpkg diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 000000000..3baf9ac5a --- /dev/null +++ b/debian/copyright @@ -0,0 +1,142 @@ +Apt is copyright 1997, 1998, 1999 Jason Gunthorpe and others. + +Apt is licensed under the terms of the GNU General Public License (GPL), +version 2.0 or later, as published by the Free Software Foundation. See +the file COPYING.GPL [included], /usr/share/common-licenses/GPL, or +<http://www.gnu.org/copyleft/gpl.txt> for the terms of the latest version +of the GNU General Public License. + +In addition, prior to November 15th, 2000, apt may be distributed under +terms identical to the above with the following addition: + +Works using apt may link against the GUI library "libqt", copyright by +Troll Tech AS, Norway, provided that: + +1. The version of "libqt" is licensed under the terms of the "Qt Free Edition + License" published by Troll Tech AS. The license terms identified as + the Qt Free Edition License below are the only such terms under which + distribution of works derived from both apt and "libqt" are permitted; + +and + +2. The source code of the version of "libqt" used is + + a) Distributed with the binary version; + + or + + b) Downloadable by anyone, without fee, using a publicly-announced + URL on the Internet, for a duration of at least three years + starting with distribution of the binary version. + +On and after November 15th, 2000, the above additional terms lose all +force, and apt will be licensed only under the terms of the GNU General +Public License, version 2.0 or later. + + _______________________________________________________________ + +The following text, up to the text of the Qt Free Edition License, is +informational and not part of the license terms on apt. + +Modifications to apt in either source or compiled form must be licensed +under the terms of the GNU General Public License, version 2.0 (or later), +but need not include the above clause permitting usage of the "libqt" +library under the Qt Free Edition License. Note that removal of this +clause will result in software which is not licensed for binary +redistribution linked against software governed by the Qt Free Edition +License. In the event that a version of "libqt" is released that is +licensed under terms that do not conflict with the GPL, the additional +clause above is not required to grant permission for distribution of works +that are derived from both apt and "libqt". + +No part of apt is licensed under the Qt Free Edition License. The terms +below are provided to help identify the circumstances under which the +"libqt" library may be used with apt (or a work derived from both). The +terms below are copied from the LICENSE file of the qt-1.44 distribution, +as of November 10th, 1999. + + _______________________________________________________________ + + QT FREE EDITION LICENSE + +Copyright (C) 1992-1999 Troll Tech AS. All rights reserved. + +This is the license for Qt Free Edition version 1.44; it covers private use, +use of third-party application programs based on Qt, and development of +free software for the free software community. + + + COPYRIGHT AND RESTRICTIONS + +The Qt toolkit is a product of Troll Tech AS. The Qt Free Edition is limited +to use with the X Window System. + +You may copy this version of the Qt Free Edition provided that the entire +archive is distributed unchanged and as a whole, including this notice. + +You may use this version of the Qt Free Edition to compile, link and run +application programs legally developed by third parties. + +You may use the Qt Free Edition to create application programs +provided that: + + You accept this license. + Your software does not require modifications to Qt Free Edition. + You satisfy ONE of the following three requirements + EITHER + Users of your software can freely obtain source code for the + software, freely modify the source code (possibly with + restrictions on copyright notices, attributions and legal + responsibility), and freely redistribute original or modified + versions of the software. + OR + Your software is distributed under the GNU GENERAL + PUBLIC LICENSE, version 2 or later, as defined by the + Free Software Foundation. + OR + Your software is distributed under the GNU LIBRARY + GENERAL PUBLIC LICENSE, version 2 or later, as + defined by the Free Software Foundation. + +If you are paid to develop something with Qt Free Edition or it is a part of +your job the following conditions also apply: + + Your software must not require libraries, programs, data or + documentation that are not available outside your organization in + order to compile or use. + If and when your organization starts using the software, you must + notify Troll Tech AS of the following: + Your organization's name and purpose. + The software's name and purpose. + The software's license. + That your organization considers the software to be free + software. + +You may also use the Qt Free Edition to create reusable components +(such as libraries) provided that you accept the terms above, and in +addition that: + + Your components' license includes the following text: + + [Your package] requires the Qt library, which is + copyright Troll Tech AS. Freely distributable + programs may generally use Qt Free Edition free of + charge, see [README.QT] for details. + + README.QT is distributed along with your components. + Qt Free Edition is not distributed as an integral part of your + components. + + LIMITATIONS OF LIABILITY + +Troll Tech AS makes no obligation under this license to support or +upgrade Qt Free Edition, or assist in the use of Qt Free Edition. + +In no event shall Troll Tech AS be liable for any lost revenue or profits or +other direct, indirect, special, incidental or consequential damages, even +if Troll Tech has been advised of the possibility of such damages. + +QT FREE EDITION IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, +INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. + _______________________________________________________________ diff --git a/debian/rules b/debian/rules index f1eb62b57..8e2b18f67 100755 --- a/debian/rules +++ b/debian/rules @@ -131,7 +131,7 @@ clean: rm -rf build # Add here commands to clean up after the build process. - dh_clean debian/copyright debian/shlibs.local debian/shlibs.local.apt debian/shlibs.local.apt-utils + dh_clean debian/shlibs.local debian/shlibs.local.apt debian/shlibs.local.apt-utils binary-indep: apt-doc libapt-pkg-doc # Build architecture-independent files here. @@ -213,8 +213,10 @@ apt: build build-doc debian/shlibs.local 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/$@ + sed 's/^_//' share/apt-auth-failure.note > debian/$@/usr/share/$@/apt-auth-failure.note 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 # copy lintian override @@ -225,6 +227,10 @@ apt: build build-doc 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 5dc7b5246..175f0e480 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -108,6 +108,9 @@ APT Install-Recommends "true"; 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"; }; @@ -246,6 +249,20 @@ Acquire { Options {"--ignore-time-conflict";} // not very useful 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 @@ -259,6 +276,7 @@ Dir "/" userstatus "status.user"; status "/var/lib/dpkg/status"; cdroms "cdroms.list"; + mirrors "mirrors/"; }; // Location of the cache dir @@ -362,9 +380,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 ef729e203..cc0fd2b8d 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 hardy main restricted +deb-src http://us.archive.ubuntu.com/ubuntu hardy 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://security.debian.org stable/updates main contrib non-free +deb http://security.ubuntu.com/ubuntu hardy-security main restricted +deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted + +deb http://us.archive.ubuntu.com/ubuntu hardy-updates main restricted +deb-src http://us.archive.ubuntu.com/ubuntu hardy-updates main restricted diff --git a/methods/connect.cc b/methods/connect.cc index 355bd5c4d..c5d57a99f 100644 --- a/methods/connect.cc +++ b/methods/connect.cc @@ -18,6 +18,7 @@ #include <stdio.h> #include <errno.h> #include <unistd.h> +#include <sstream> #include<set> #include<string> @@ -70,19 +71,17 @@ static bool DoConnect(struct addrinfo *Addr,string Host, Owner->Status(_("Connecting to %s (%s)"),Host.c_str(),Name); // if that addr did timeout before, we do not try it again - if(bad_addr.find(string(Name)) != bad_addr.end()) + if(bad_addr.find(string(Name)) != bad_addr.end()) return false; /* If this is an IP rotation store the IP we are using.. If something goes 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, @@ -100,7 +99,7 @@ static bool DoConnect(struct addrinfo *Addr,string Host, nonblocking */ if (WaitFd(Fd,true,TimeOut) == false) { bad_addr.insert(bad_addr.begin(), string(Name)); - 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); } @@ -115,7 +114,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); } @@ -180,13 +179,13 @@ bool Connect(string Host,int Port,const char *Service,int DefPort,int &Fd, continue; } bad_addr.insert(bad_addr.begin(), Host); - Owner->SetFailExtraMsg("\nFailReason: ResolveFailure"); + 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/copy.cc b/methods/copy.cc index 72896b4c0..027b59f46 100644 --- a/methods/copy.cc +++ b/methods/copy.cc @@ -84,6 +84,7 @@ bool CopyMethod::Fetch(FetchItem *Itm) FileFd Fd(Res.Filename, FileFd::ReadOnly); Hash.AddFD(Fd.Fd(), Fd.Size()); Res.TakeHashes(Hash); + URIDone(Res); return true; } diff --git a/methods/http.cc b/methods/http.cc index 006e89394..476fb751f 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -723,7 +723,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; @@ -947,6 +947,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; @@ -1023,7 +1026,7 @@ void HttpMethod::SigTerm(int) depth. */ bool HttpMethod::Fetch(FetchItem *) { - if (Server == 0) + if (Server == 0) return true; // Queue the requests diff --git a/methods/http.h b/methods/http.h index 13f02ec77..bc076e1f8 100644 --- a/methods/http.h +++ b/methods/http.h @@ -13,7 +13,7 @@ #define MAXLEN 360 -#include <iostream> + using std::cout; using std::endl; @@ -135,7 +135,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. @@ -143,6 +142,9 @@ class HttpMethod : public pkgAcqMethod static int FailFd; static time_t FailTime; static void SigTerm(int); + + protected: + virtual bool Fetch(FetchItem *); string NextURI; diff --git a/methods/http_main.cc b/methods/http_main.cc new file mode 100644 index 000000000..7815c2fc1 --- /dev/null +++ b/methods/http_main.cc @@ -0,0 +1,20 @@ +#include <apt-pkg/fileutl.h> +#include <apt-pkg/acquire-method.h> +#include <signal.h> + +#include "connect.h" +#include "rfc2553emu.h" +#include "http.h" + + +int main() +{ + setlocale(LC_ALL, ""); + + // ignore SIGPIPE, this can happen on write() if the socket + // closes the connection (this is dealt with via ServerDie()) + signal(SIGPIPE, SIG_IGN); + + HttpMethod Mth; + return Mth.Loop(); +} diff --git a/methods/makefile b/methods/makefile index 134166ba3..f4d417cee 100644 --- a/methods/makefile +++ b/methods/makefile @@ -49,7 +49,7 @@ include $(PROGRAM_H) PROGRAM=http SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) 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 @@ -80,9 +80,17 @@ LIB_MAKES = apt-pkg/makefile SOURCE = rsh.cc include $(PROGRAM_H) +# 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 method symlink 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 diff --git a/methods/mirror.cc b/methods/mirror.cc new file mode 100644 index 000000000..b3a956b95 --- /dev/null +++ b/methods/mirror.cc @@ -0,0 +1,330 @@ +// -*- 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(), DownloadedMirrorFile(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; + + if(Dir == "/") + return _error->Error("will not clean: '/'"); + + // 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::DownloadMirrorFile(string mirror_uri_str) +{ + if(Debug) + clog << "MirrorMethod::DownloadMirrorFile(): " << 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; + DownloadedMirrorFile = 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 + string fetch = BaseUri; + fetch.replace(0,strlen("mirror://"),"http://"); + + pkgAcquire Fetcher; + new pkgAcqFile(&Fetcher, fetch, "", 0, "", "", "", MirrorFile); + bool res = (Fetcher.Run() == pkgAcquire::Continue); + if(res) + DownloadedMirrorFile = true; + Fetcher.Shutdown(); + return res; +} + +bool MirrorMethod::SelectMirror() +{ + // if we do not have a MirrorFile, fallback + if(!FileExists(MirrorFile)) + { + // FIXME: fallback to a default mirror here instead + // and provide a config option to define that default + return _error->Error(_("No mirror file '%s' found "), MirrorFile.c_str()); + } + + // FIXME: make the mirror selection more clever, do not + // just use the first one! + // BUT: we can not make this random, the mirror has to be + // stable accross session, because otherwise we can + // get into sync issues (got indexfiles from mirror A, + // but packages from mirror B - one might be out of date etc) + ifstream in(MirrorFile.c_str()); + getline(in, Mirror); + if(Debug) + cerr << "Using mirror: " << Mirror << endl; + + UsedMirror = Mirror; + return true; +} + +string MirrorMethod::GetMirrorFileName(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 + */ + string name; + if(Debug) + std::cerr << "GetMirrorFileName: " << 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); + } + } + // get new file + name = _config->FindDir("Dir::State::mirrors") + URItoFileName(BaseUri); + + if(Debug) + { + cerr << "base-uri: " << BaseUri << endl; + cerr << "mirror-file: " << name << endl; + } + return name; +} + +// 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) +{ + if(Debug) + clog << "MirrorMethod::Fetch()" << endl; + + // the http method uses Fetch(0) as a way to update the pipeline, + // just let it do its work in this case - Fetch() with a valid + // Itm will always run before the first Fetch(0) + if(Itm == NULL) + return HttpMethod::Fetch(Itm); + + // if we don't have the name of the mirror file on disk yet, + // calculate it now (can be derived from the uri) + if(MirrorFile.empty()) + MirrorFile = GetMirrorFileName(Itm->Uri); + + // download mirror file once (if we are after index files) + if(Itm->IndexFile && !DownloadedMirrorFile) + { + Clean(_config->FindDir("Dir::State::mirrors")); + DownloadMirrorFile(Itm->Uri); + } + + if(Mirror.empty()) { + if(!SelectMirror()) { + // no valid mirror selected, something went wrong downloading + // from the master mirror site most likely and there is + // no old mirror file availalbe + return false; + } + } + if(Debug) + clog << "selected mirror: " << Mirror << endl; + + + 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..ed817806b --- /dev/null +++ b/methods/mirror.h @@ -0,0 +1,52 @@ +// -*- 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; // the file that contains the list of mirrors + bool DownloadedMirrorFile; // already downloaded this session + + bool Debug; + + protected: + bool DownloadMirrorFile(string uri); + string GetMirrorFileName(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() + @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-21 15:49+0200\n" +"POT-Creation-Date: 2009-04-22 12:25+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" @@ -18,150 +18,155 @@ msgstr "" "X-Poedit-SourceCharset: utf-8\n" "X-Generator: KBabel 1.11.4\n" -#: cmdline/apt-cache.cc:141 +#: 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:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:644 -#: cmdline/apt-cache.cc:800 cmdline/apt-cache.cc:1022 -#: cmdline/apt-cache.cc:1423 cmdline/apt-cache.cc:1575 +#: 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:245 +#: cmdline/apt-cache.cc:247 msgid "Total package names: " msgstr "أسماء الحزم الكلية :" -#: cmdline/apt-cache.cc:285 +#: cmdline/apt-cache.cc:287 msgid " Normal packages: " msgstr " الحزم العادية:" -#: cmdline/apt-cache.cc:286 +#: cmdline/apt-cache.cc:288 msgid " Pure virtual packages: " msgstr "الحزمة الوهمية تماماً:" -#: cmdline/apt-cache.cc:287 +#: cmdline/apt-cache.cc:289 msgid " Single virtual packages: " msgstr " الحزمة الوهمية المفردة:" -#: cmdline/apt-cache.cc:288 +#: cmdline/apt-cache.cc:290 msgid " Mixed virtual packages: " msgstr " الحزم الوهمية المختلطة:" -#: cmdline/apt-cache.cc:289 +#: cmdline/apt-cache.cc:291 msgid " Missing: " msgstr " مفقودة:" -#: cmdline/apt-cache.cc:291 +#: cmdline/apt-cache.cc:293 msgid "Total distinct versions: " msgstr "مجموع النسخ الفريدة:" -#: cmdline/apt-cache.cc:293 +#: cmdline/apt-cache.cc:295 #, fuzzy msgid "Total distinct descriptions: " msgstr "مجموع النسخ الفريدة:" -#: cmdline/apt-cache.cc:295 +#: cmdline/apt-cache.cc:297 msgid "Total dependencies: " msgstr "مجموع المعتمدات:" -#: cmdline/apt-cache.cc:298 +#: cmdline/apt-cache.cc:300 msgid "Total ver/file relations: " msgstr "مجموع علاقات النسخ/الملفات:" -#: cmdline/apt-cache.cc:300 +#: cmdline/apt-cache.cc:302 #, fuzzy msgid "Total Desc/File relations: " msgstr "مجموع علاقات النسخ/الملفات:" -#: cmdline/apt-cache.cc:302 +#: cmdline/apt-cache.cc:304 msgid "Total Provides mappings: " msgstr "مجموع علاقات النسخ/الملفات:" -#: cmdline/apt-cache.cc:314 +#: cmdline/apt-cache.cc:316 msgid "Total globbed strings: " msgstr "" -#: cmdline/apt-cache.cc:328 +#: cmdline/apt-cache.cc:330 msgid "Total dependency version space: " msgstr "" -#: cmdline/apt-cache.cc:333 +#: cmdline/apt-cache.cc:335 msgid "Total slack space: " msgstr "" -#: cmdline/apt-cache.cc:341 +#: cmdline/apt-cache.cc:343 msgid "Total space accounted for: " msgstr "مجموع المساحة المحسوب حسابها:" -#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1222 +#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218 #, c-format msgid "Package file %s is out of sync." msgstr "" -#: cmdline/apt-cache.cc:1297 +#: cmdline/apt-cache.cc:1293 msgid "You must give exactly one pattern" msgstr "يجب أن تعطي صيغة واحدة بالضبط" -#: cmdline/apt-cache.cc:1451 +#: cmdline/apt-cache.cc:1447 msgid "No packages found" msgstr "لم يُعثر على أية حزم" -#: cmdline/apt-cache.cc:1528 +#: cmdline/apt-cache.cc:1524 msgid "Package files:" msgstr "ملفات الحزم:" -#: cmdline/apt-cache.cc:1535 cmdline/apt-cache.cc:1622 +#: 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:1549 +#: cmdline/apt-cache.cc:1544 msgid "Pinned packages:" msgstr "الحزم المُدبّسة:" -#: cmdline/apt-cache.cc:1561 cmdline/apt-cache.cc:1602 +#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 msgid "(not found)" msgstr "(غير موجود)" #. Installed version -#: cmdline/apt-cache.cc:1582 +#: cmdline/apt-cache.cc:1577 msgid " Installed: " msgstr " مُثبّت:" -#: cmdline/apt-cache.cc:1584 cmdline/apt-cache.cc:1592 +#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 msgid "(none)" msgstr "(لاشيء)" #. Candidate Version -#: cmdline/apt-cache.cc:1589 +#: cmdline/apt-cache.cc:1584 msgid " Candidate: " msgstr " مرشّح: " -#: cmdline/apt-cache.cc:1599 +#: cmdline/apt-cache.cc:1594 msgid " Package pin: " msgstr "" #. Show the priority tables -#: cmdline/apt-cache.cc:1608 +#: cmdline/apt-cache.cc:1603 msgid " Version table:" msgstr " جدول النسخ:" -#: cmdline/apt-cache.cc:1623 +#: cmdline/apt-cache.cc:1618 #, c-format msgid " %4i %s\n" msgstr " %4i %s\n" -#: cmdline/apt-cache.cc:1719 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: 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:2586 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2582 cmdline/apt-sortpkgs.cc:144 #, fuzzy, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s لـ%s %s مُجمّع على %s %s\n" -#: cmdline/apt-cache.cc:1726 +#: cmdline/apt-cache.cc:1721 msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@ -550,79 +555,79 @@ msgstr "" msgid "Failed to rename %s to %s" msgstr "فشل تغيير اسم %s إلى %s" -#: cmdline/apt-get.cc:127 +#: cmdline/apt-get.cc:124 msgid "Y" msgstr "Y" -#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1661 +#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1658 #, c-format msgid "Regex compilation error - %s" msgstr "" -#: cmdline/apt-get.cc:244 +#: cmdline/apt-get.cc:241 msgid "The following packages have unmet dependencies:" msgstr "" -#: cmdline/apt-get.cc:334 +#: cmdline/apt-get.cc:331 #, c-format msgid "but %s is installed" msgstr "إلا أن %s مثبت" -#: cmdline/apt-get.cc:336 +#: cmdline/apt-get.cc:333 #, c-format msgid "but %s is to be installed" msgstr "إلا أنه سيتم تثبيت %s" -#: cmdline/apt-get.cc:343 +#: cmdline/apt-get.cc:340 msgid "but it is not installable" msgstr "إلا أنه غير قابل للتثبيت" -#: cmdline/apt-get.cc:345 +#: cmdline/apt-get.cc:342 msgid "but it is a virtual package" msgstr "إلا أنها حزمة وهمية" -#: cmdline/apt-get.cc:348 +#: cmdline/apt-get.cc:345 msgid "but it is not installed" msgstr "إلا أنها غير مثبتة" -#: cmdline/apt-get.cc:348 +#: cmdline/apt-get.cc:345 msgid "but it is not going to be installed" msgstr "إلا أنه لن يتم تثبيتها" -#: cmdline/apt-get.cc:353 +#: cmdline/apt-get.cc:350 msgid " or" msgstr " أو" -#: cmdline/apt-get.cc:382 +#: cmdline/apt-get.cc:379 msgid "The following NEW packages will be installed:" msgstr "سيتم تثبيت الحزم الجديدة التالية:" -#: cmdline/apt-get.cc:408 +#: cmdline/apt-get.cc:405 msgid "The following packages will be REMOVED:" msgstr "سيتم إزالة الحزم التالية:" -#: cmdline/apt-get.cc:430 +#: cmdline/apt-get.cc:427 msgid "The following packages have been kept back:" msgstr "سيتم الإبقاء على الحزم التالية:" -#: cmdline/apt-get.cc:451 +#: cmdline/apt-get.cc:448 msgid "The following packages will be upgraded:" msgstr "ستتم ترقية الحزم التالية:" -#: cmdline/apt-get.cc:472 +#: cmdline/apt-get.cc:469 msgid "The following packages will be DOWNGRADED:" msgstr "سيتم تثبيط الحزم التالية:" -#: cmdline/apt-get.cc:492 +#: cmdline/apt-get.cc:489 msgid "The following held packages will be changed:" msgstr "سيتم تغيير الحزم المبقاة التالية:" -#: cmdline/apt-get.cc:545 +#: cmdline/apt-get.cc:542 #, c-format msgid "%s (due to %s) " msgstr "%s (بسبب %s) " -#: cmdline/apt-get.cc:553 +#: cmdline/apt-get.cc:550 msgid "" "WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" @@ -630,143 +635,143 @@ msgstr "" "تحذير: ستتم إزالة الحزم الأساسية التالية.\n" "لا يجب أن تقوم بهذا إلى إن كنت تعرف تماماً ما تقوم به!" -#: cmdline/apt-get.cc:584 +#: cmdline/apt-get.cc:581 #, c-format msgid "%lu upgraded, %lu newly installed, " msgstr "%lu سيتم ترقيتها، %lu مثبتة حديثاً، " -#: cmdline/apt-get.cc:588 +#: cmdline/apt-get.cc:585 #, c-format msgid "%lu reinstalled, " msgstr "%lu أعيد تثبيتها، " -#: cmdline/apt-get.cc:590 +#: cmdline/apt-get.cc:587 #, c-format msgid "%lu downgraded, " msgstr "%lu مثبطة، " -#: cmdline/apt-get.cc:592 +#: cmdline/apt-get.cc:589 #, c-format msgid "%lu to remove and %lu not upgraded.\n" msgstr "%lu لإزالتها و %lu لم يتم ترقيتها.\n" -#: cmdline/apt-get.cc:596 +#: cmdline/apt-get.cc:593 #, c-format msgid "%lu not fully installed or removed.\n" msgstr "%lu غير مثبتة بالكامل أو مزالة.\n" -#: cmdline/apt-get.cc:670 +#: cmdline/apt-get.cc:667 msgid "Correcting dependencies..." msgstr "تصحيح المعتمدات..." -#: cmdline/apt-get.cc:673 +#: cmdline/apt-get.cc:670 msgid " failed." msgstr " فشل." -#: cmdline/apt-get.cc:676 +#: cmdline/apt-get.cc:673 msgid "Unable to correct dependencies" msgstr "لم يمكن تصحيح المعتمدات" -#: cmdline/apt-get.cc:679 +#: cmdline/apt-get.cc:676 msgid "Unable to minimize the upgrade set" msgstr "لم يمكن تقليص مجموعة الترقية" -#: cmdline/apt-get.cc:681 +#: cmdline/apt-get.cc:678 msgid " Done" msgstr " تم" -#: cmdline/apt-get.cc:685 +#: cmdline/apt-get.cc:682 msgid "You might want to run `apt-get -f install' to correct these." msgstr "قد ترغب بتنفيذ الأمر `apt-get -f install' لتصحيح هذه." -#: cmdline/apt-get.cc:688 +#: cmdline/apt-get.cc:685 msgid "Unmet dependencies. Try using -f." msgstr "مُعتمدات غير مستوفاة. حاول استخدام -f." -#: cmdline/apt-get.cc:710 +#: cmdline/apt-get.cc:707 msgid "WARNING: The following packages cannot be authenticated!" msgstr "تحذير: تعذرت المصادقة على الحزم التالية!" -#: cmdline/apt-get.cc:714 +#: cmdline/apt-get.cc:711 msgid "Authentication warning overridden.\n" msgstr "تم غض النظر عن تحذير المصادقة.\n" -#: cmdline/apt-get.cc:721 +#: cmdline/apt-get.cc:718 msgid "Install these packages without verification [y/N]? " msgstr "تثبيت هذه الحزم دون التحقق منها [y/N]؟ " -#: cmdline/apt-get.cc:723 +#: cmdline/apt-get.cc:720 msgid "Some packages could not be authenticated" msgstr "تعذرت المصادقة على بعض الحزم" -#: cmdline/apt-get.cc:732 cmdline/apt-get.cc:884 +#: cmdline/apt-get.cc:729 cmdline/apt-get.cc:881 msgid "There are problems and -y was used without --force-yes" msgstr "هناك مشاكل وتم استخدام -y دون --force-yes" -#: cmdline/apt-get.cc:776 +#: cmdline/apt-get.cc:773 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "خطأ داخلي، تم طلب InstallPackages مع وجود حزم معطوبة!" -#: cmdline/apt-get.cc:785 +#: cmdline/apt-get.cc:782 msgid "Packages need to be removed but remove is disabled." msgstr "حزم بحاجة للإزالة لكن الإزالة مُعطّلة." -#: cmdline/apt-get.cc:796 +#: cmdline/apt-get.cc:793 msgid "Internal error, Ordering didn't finish" msgstr "خطأ داخلي، لم تنته عملية الترتيب" -#: cmdline/apt-get.cc:812 cmdline/apt-get.cc:2003 cmdline/apt-get.cc:2036 +#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032 msgid "Unable to lock the download directory" msgstr "تعذر قَفْل دليل التنزيل" -#: cmdline/apt-get.cc:822 cmdline/apt-get.cc:2084 cmdline/apt-get.cc:2330 +#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2326 #: apt-pkg/cachefile.cc:65 msgid "The list of sources could not be read." msgstr "تعذرت قراءة قائمة المصادر." -#: cmdline/apt-get.cc:837 +#: cmdline/apt-get.cc:834 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "يا للغرابة.. لم تتطابق الأحجام، الرجاء مراسلة apt@packages.debian.org" -#: cmdline/apt-get.cc:842 +#: cmdline/apt-get.cc:839 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "بحاجة إلى جلب %sب/%sب من الأرشيف.\n" -#: cmdline/apt-get.cc:845 +#: cmdline/apt-get.cc:842 #, c-format msgid "Need to get %sB of archives.\n" msgstr "بحاجة إلى جلب %sب من الأرشيف.\n" -#: cmdline/apt-get.cc:850 +#: cmdline/apt-get.cc:847 #, fuzzy, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "بعد الاستخراج %sب من المساحة الإضافيّة سيتمّ استخدامها.\n" -#: cmdline/apt-get.cc:853 +#: cmdline/apt-get.cc:850 #, fuzzy, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "بعد الاستخراج %sب من المساحة ستفرّغ.\n" -#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:2179 +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2175 #, c-format msgid "Couldn't determine free space in %s" msgstr "تعذر حساب المساحة الحرة في %s" -#: cmdline/apt-get.cc:874 +#: cmdline/apt-get.cc:871 #, c-format msgid "You don't have enough free space in %s." msgstr "ليس هناك مساحة كافية في %s." -#: cmdline/apt-get.cc:890 cmdline/apt-get.cc:910 +#: cmdline/apt-get.cc:887 cmdline/apt-get.cc:907 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" -#: cmdline/apt-get.cc:892 +#: cmdline/apt-get.cc:889 msgid "Yes, do as I say!" msgstr "نعم، افعل ما أقوله!" -#: cmdline/apt-get.cc:894 +#: cmdline/apt-get.cc:891 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -777,28 +782,28 @@ msgstr "" "كي تستمر اكتب العبارة '%s'\n" " ؟] " -#: cmdline/apt-get.cc:900 cmdline/apt-get.cc:919 +#: cmdline/apt-get.cc:897 cmdline/apt-get.cc:916 msgid "Abort." msgstr "إجهاض." -#: cmdline/apt-get.cc:915 +#: cmdline/apt-get.cc:912 msgid "Do you want to continue [Y/n]? " msgstr "هل تريد الاستمرار [Y/n]؟" -#: cmdline/apt-get.cc:987 cmdline/apt-get.cc:2227 apt-pkg/algorithms.cc:1407 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 #, c-format msgid "Failed to fetch %s %s\n" msgstr "فشل إحضار %s %s\n" -#: cmdline/apt-get.cc:1005 +#: cmdline/apt-get.cc:1002 msgid "Some files failed to download" msgstr "فشل تنزيل بعض الملفات" -#: cmdline/apt-get.cc:1006 cmdline/apt-get.cc:2236 +#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2232 msgid "Download complete and in download only mode" msgstr "اكتمل التنزيل وفي وضع التنزيل فقط" -#: cmdline/apt-get.cc:1012 +#: cmdline/apt-get.cc:1009 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" @@ -806,47 +811,47 @@ msgstr "" "تعذر إحضار بعض الأرشيف، ربما يمكنك محاولة تنفيذ apt-get update أو إضافة --" "fix-missing؟" -#: cmdline/apt-get.cc:1016 +#: cmdline/apt-get.cc:1013 msgid "--fix-missing and media swapping is not currently supported" msgstr "--fix-missing وتبديل الأوساط غير مدعومة حالياً" -#: cmdline/apt-get.cc:1021 +#: cmdline/apt-get.cc:1018 msgid "Unable to correct missing packages." msgstr "تعذر تصحيح الحزم المفقودة." -#: cmdline/apt-get.cc:1022 +#: cmdline/apt-get.cc:1019 msgid "Aborting install." msgstr "إجهاض التثبيت." -#: cmdline/apt-get.cc:1056 +#: cmdline/apt-get.cc:1053 #, c-format msgid "Note, selecting %s instead of %s\n" msgstr "لاحظ، تحديد %s بدلاً من %s\n" -#: cmdline/apt-get.cc:1066 +#: cmdline/apt-get.cc:1063 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "تخطّي %s، حيث أنها مثبتة ولم يتمّ تعيين الترقية.\n" -#: cmdline/apt-get.cc:1084 +#: cmdline/apt-get.cc:1081 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "الحزمة %s غير مُثبّتة، لذلك لن تُزال\n" -#: cmdline/apt-get.cc:1095 +#: cmdline/apt-get.cc:1092 #, c-format msgid "Package %s is a virtual package provided by:\n" msgstr "الحزمة %s وهميّة وتوفّرها:\n" -#: cmdline/apt-get.cc:1107 +#: cmdline/apt-get.cc:1104 msgid " [Installed]" msgstr " [مُثبّتة]" -#: cmdline/apt-get.cc:1112 +#: cmdline/apt-get.cc:1109 msgid "You should explicitly select one to install." msgstr "يجب اختيار واحدة بالتحديد لتثبيتها." -#: cmdline/apt-get.cc:1117 +#: cmdline/apt-get.cc:1114 #, c-format msgid "" "Package %s is not available, but is referred to by another package.\n" @@ -854,69 +859,69 @@ msgid "" "is only available from another source\n" msgstr "" -#: cmdline/apt-get.cc:1136 +#: cmdline/apt-get.cc:1133 msgid "However the following packages replace it:" msgstr "على أيّ فإن الحزم التالية تحلّ مكانها:" -#: cmdline/apt-get.cc:1139 +#: cmdline/apt-get.cc:1136 #, c-format msgid "Package %s has no installation candidate" msgstr "الحزمة %s ليس لها مرشح تثبيت" -#: cmdline/apt-get.cc:1159 +#: cmdline/apt-get.cc:1156 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" msgstr "إعادة تثبيت %s غير ممكنة، حيث أنّه لا يمكن تنزيلها.\n" -#: cmdline/apt-get.cc:1167 +#: cmdline/apt-get.cc:1164 #, c-format msgid "%s is already the newest version.\n" msgstr "%s هي النسخة الأحدث.\n" -#: cmdline/apt-get.cc:1196 +#: cmdline/apt-get.cc:1193 #, c-format msgid "Release '%s' for '%s' was not found" msgstr "تعذر العثور على الإصدارة '%s' للحزمة '%s'" -#: cmdline/apt-get.cc:1198 +#: cmdline/apt-get.cc:1195 #, c-format msgid "Version '%s' for '%s' was not found" msgstr "تعذر العثور على النسخة '%s' للحزمة '%s'" -#: cmdline/apt-get.cc:1204 +#: cmdline/apt-get.cc:1201 #, c-format msgid "Selected version %s (%s) for %s\n" msgstr "النسخة المحددة %s (%s) للإصدارة %s\n" -#: cmdline/apt-get.cc:1310 +#: cmdline/apt-get.cc:1307 #, c-format msgid "No source package '%s' picking '%s' instead\n" msgstr "" -#: cmdline/apt-get.cc:1348 +#: cmdline/apt-get.cc:1345 msgid "The update command takes no arguments" msgstr "لا يقبل الأمر update أية مُعطيات" -#: cmdline/apt-get.cc:1361 +#: cmdline/apt-get.cc:1358 msgid "Unable to lock the list directory" msgstr "تعذر قفل دليل القائمة" -#: cmdline/apt-get.cc:1413 +#: cmdline/apt-get.cc:1410 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1445 +#: cmdline/apt-get.cc:1442 #, fuzzy msgid "" "The following packages were automatically installed and are no longer " "required:" msgstr "سيتم تثبيت الحزم الجديدة التالية:" -#: cmdline/apt-get.cc:1447 +#: cmdline/apt-get.cc:1444 msgid "Use 'apt-get autoremove' to remove them." msgstr "" -#: cmdline/apt-get.cc:1452 +#: cmdline/apt-get.cc:1449 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -932,51 +937,51 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1455 cmdline/apt-get.cc:1745 +#: cmdline/apt-get.cc:1452 cmdline/apt-get.cc:1742 msgid "The following information may help to resolve the situation:" msgstr "قد تساعد المعلومات التالية في حل المشكلة:" -#: cmdline/apt-get.cc:1459 +#: cmdline/apt-get.cc:1456 #, fuzzy msgid "Internal Error, AutoRemover broke stuff" msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء" -#: cmdline/apt-get.cc:1478 +#: cmdline/apt-get.cc:1475 msgid "Internal error, AllUpgrade broke stuff" msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء" -#: cmdline/apt-get.cc:1533 +#: cmdline/apt-get.cc:1530 #, fuzzy, c-format msgid "Couldn't find task %s" msgstr "تعذر العثور على الحزمة %s" -#: cmdline/apt-get.cc:1648 cmdline/apt-get.cc:1684 +#: cmdline/apt-get.cc:1645 cmdline/apt-get.cc:1681 #, c-format msgid "Couldn't find package %s" msgstr "تعذر العثور على الحزمة %s" -#: cmdline/apt-get.cc:1671 +#: cmdline/apt-get.cc:1668 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "لاحظ، تحديد %s بسبب صيغة regex '%s'\n" -#: cmdline/apt-get.cc:1702 +#: cmdline/apt-get.cc:1699 #, fuzzy, c-format msgid "%s set to manually installed.\n" msgstr "إلا أنه سيتم تثبيت %s" -#: cmdline/apt-get.cc:1715 +#: cmdline/apt-get.cc:1712 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "قد ترغب بتشغيل `apt-get -f install' لتصحيح هذه:" -#: cmdline/apt-get.cc:1718 +#: cmdline/apt-get.cc:1715 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" "مُعتمدات غير مستوفاة. جرب 'apt-get -f install' بدون أسماء حزم (أو حدّد حلاً)." -#: cmdline/apt-get.cc:1730 +#: cmdline/apt-get.cc:1727 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" @@ -984,152 +989,152 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1748 +#: cmdline/apt-get.cc:1745 msgid "Broken packages" msgstr "حزم معطوبة" -#: cmdline/apt-get.cc:1777 +#: cmdline/apt-get.cc:1774 msgid "The following extra packages will be installed:" msgstr "سيتم تثبيت الحزم الإضافيّة التالية:" -#: cmdline/apt-get.cc:1866 +#: cmdline/apt-get.cc:1863 msgid "Suggested packages:" msgstr "الحزم المقترحة:" -#: cmdline/apt-get.cc:1867 +#: cmdline/apt-get.cc:1864 msgid "Recommended packages:" msgstr "الحزم المستحسنة:" -#: cmdline/apt-get.cc:1896 +#: cmdline/apt-get.cc:1892 msgid "Calculating upgrade... " msgstr "حساب الترقية..." -#: cmdline/apt-get.cc:1899 methods/ftp.cc:702 methods/connect.cc:112 +#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:112 msgid "Failed" msgstr "فشل" -#: cmdline/apt-get.cc:1904 +#: cmdline/apt-get.cc:1900 msgid "Done" msgstr "تمّ" -#: cmdline/apt-get.cc:1971 cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:2079 +#: cmdline/apt-get.cc:2075 msgid "Must specify at least one package to fetch source for" msgstr "يجب تحديد حزمة واحدة على الأقل لجلب مصدرها" -#: cmdline/apt-get.cc:2109 cmdline/apt-get.cc:2348 +#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2344 #, c-format msgid "Unable to find a source package for %s" msgstr "تعذر العثور على مصدر الحزمة %s" -#: cmdline/apt-get.cc:2158 +#: cmdline/apt-get.cc:2154 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "تخطي الملف '%s' المنزل مسبقاً\n" -#: cmdline/apt-get.cc:2186 +#: cmdline/apt-get.cc:2182 #, c-format msgid "You don't have enough free space in %s" msgstr "ليس هناك مساحة كافية في %s" -#: cmdline/apt-get.cc:2192 +#: cmdline/apt-get.cc:2188 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "يجب جلب %sب/%sب من الأرشيفات المصدرية.\n" -#: cmdline/apt-get.cc:2195 +#: cmdline/apt-get.cc:2191 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "يجب جلب %sب من الأرشيفات المصدريّة.\n" -#: cmdline/apt-get.cc:2201 +#: cmdline/apt-get.cc:2197 #, c-format msgid "Fetch source %s\n" msgstr "إحضار المصدر %s\n" -#: cmdline/apt-get.cc:2232 +#: cmdline/apt-get.cc:2228 msgid "Failed to fetch some archives." msgstr "فشل إحضار بعض الأرشيفات." -#: cmdline/apt-get.cc:2260 +#: cmdline/apt-get.cc:2256 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2272 +#: cmdline/apt-get.cc:2268 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "أمر فك الحزمة '%s' فشل.\n" -#: cmdline/apt-get.cc:2273 +#: cmdline/apt-get.cc:2269 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2290 +#: cmdline/apt-get.cc:2286 #, c-format msgid "Build command '%s' failed.\n" msgstr "أمر البناء '%s' فشل.\n" -#: cmdline/apt-get.cc:2309 +#: cmdline/apt-get.cc:2305 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2325 +#: cmdline/apt-get.cc:2321 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2353 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2373 +#: cmdline/apt-get.cc:2369 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2425 +#: cmdline/apt-get.cc:2421 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2478 +#: cmdline/apt-get.cc:2474 #, 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 +#: cmdline/apt-get.cc:2510 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2541 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2555 +#: cmdline/apt-get.cc:2551 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2559 +#: cmdline/apt-get.cc:2555 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2591 +#: cmdline/apt-get.cc:2587 msgid "Supported modules:" msgstr "الوحدات المدعومة:" -#: cmdline/apt-get.cc:2632 +#: cmdline/apt-get.cc:2628 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1173,14 +1178,6 @@ msgid "" " This APT has Super Cow Powers.\n" msgstr "" -#: cmdline/apt-get.cc:2799 -msgid "" -"NOTE: This is only a simulation!\n" -" apt-get needs root privileges for real execution.\n" -" Keep also in mind that locking is deactivated,\n" -" so don't depend on the relevance to the real current situation!" -msgstr "" - #: cmdline/acqprogress.cc:55 msgid "Hit " msgstr "" @@ -1399,9 +1396,9 @@ msgstr "" msgid "File %s/%s overwrites the one in the package %s" msgstr "" -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:822 +#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:821 #: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 -#: apt-pkg/acquire.cc:419 apt-pkg/clean.cc:34 apt-pkg/policy.cc:268 +#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 #, c-format msgid "Unable to read %s" msgstr "تعذرت قراءة %s" @@ -1630,7 +1627,7 @@ msgstr "انتهى وقت الاتصال" msgid "Server closed the connection" msgstr "أغلق الخادم الاتصال" -#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:538 methods/rsh.cc:190 msgid "Read error" msgstr "خطأ في القراءة" @@ -1642,7 +1639,7 @@ msgstr "" msgid "Protocol corruption" msgstr "" -#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:577 methods/rsh.cc:232 msgid "Write error" msgstr "خطأ في الكتابة" @@ -1945,7 +1942,7 @@ msgstr "" msgid "%lis" msgstr "" -#: apt-pkg/contrib/strutl.cc:1029 +#: apt-pkg/contrib/strutl.cc:1018 #, c-format msgid "Selection %s not found" msgstr "تعذر العثور على التحديد %s" @@ -1960,42 +1957,42 @@ msgstr "اختصار نوع مجهول: '%c'" msgid "Opening configuration file %s" msgstr "فتح ملف التهيئة %s" -#: apt-pkg/contrib/configuration.cc:663 +#: apt-pkg/contrib/configuration.cc:662 #, c-format msgid "Syntax error %s:%u: Block starts with no name." msgstr "" -#: apt-pkg/contrib/configuration.cc:682 +#: apt-pkg/contrib/configuration.cc:681 #, c-format msgid "Syntax error %s:%u: Malformed tag" msgstr "" -#: apt-pkg/contrib/configuration.cc:699 +#: apt-pkg/contrib/configuration.cc:698 #, c-format msgid "Syntax error %s:%u: Extra junk after value" msgstr "" -#: apt-pkg/contrib/configuration.cc:739 +#: apt-pkg/contrib/configuration.cc:738 #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -#: apt-pkg/contrib/configuration.cc:746 +#: apt-pkg/contrib/configuration.cc:745 #, c-format msgid "Syntax error %s:%u: Too many nested includes" msgstr "" -#: apt-pkg/contrib/configuration.cc:750 apt-pkg/contrib/configuration.cc:755 +#: apt-pkg/contrib/configuration.cc:749 apt-pkg/contrib/configuration.cc:754 #, c-format msgid "Syntax error %s:%u: Included from here" msgstr "" -#: apt-pkg/contrib/configuration.cc:759 +#: apt-pkg/contrib/configuration.cc:758 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" msgstr "" -#: apt-pkg/contrib/configuration.cc:810 +#: apt-pkg/contrib/configuration.cc:809 #, c-format msgid "Syntax error %s:%u: Extra junk at end of file" msgstr "" @@ -2062,7 +2059,7 @@ msgid "Unable to stat the mount point %s" msgstr "" #: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/contrib/cdromutl.cc:180 -#: apt-pkg/acquire.cc:425 apt-pkg/acquire.cc:450 apt-pkg/clean.cc:40 +#: apt-pkg/acquire.cc:424 apt-pkg/acquire.cc:449 apt-pkg/clean.cc:40 #, c-format msgid "Unable to change to %s" msgstr "" @@ -2096,153 +2093,144 @@ msgstr "" msgid "Waited for %s but it wasn't there" msgstr "" -#: apt-pkg/contrib/fileutl.cc:455 +#: apt-pkg/contrib/fileutl.cc:454 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "" #: apt-pkg/contrib/fileutl.cc:457 #, c-format -msgid "Sub-process %s received signal %u." -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:460 -#, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "" -#: apt-pkg/contrib/fileutl.cc:462 +#: apt-pkg/contrib/fileutl.cc:459 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "" -#: apt-pkg/contrib/fileutl.cc:506 +#: apt-pkg/contrib/fileutl.cc:503 #, c-format msgid "Could not open file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:562 +#: apt-pkg/contrib/fileutl.cc:559 #, c-format msgid "read, still have %lu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:592 +#: apt-pkg/contrib/fileutl.cc:589 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:667 +#: apt-pkg/contrib/fileutl.cc:664 msgid "Problem closing the file" msgstr "مشكلة في إغلاق الملف" -#: apt-pkg/contrib/fileutl.cc:673 +#: apt-pkg/contrib/fileutl.cc:670 msgid "Problem unlinking the file" msgstr "" -#: apt-pkg/contrib/fileutl.cc:684 +#: apt-pkg/contrib/fileutl.cc:681 msgid "Problem syncing the file" msgstr "مشكلة في مزامنة الملف" -#: apt-pkg/pkgcache.cc:133 +#: apt-pkg/pkgcache.cc:132 msgid "Empty package cache" msgstr "" -#: apt-pkg/pkgcache.cc:139 +#: apt-pkg/pkgcache.cc:138 msgid "The package cache file is corrupted" msgstr "" -#: apt-pkg/pkgcache.cc:144 +#: apt-pkg/pkgcache.cc:143 msgid "The package cache file is an incompatible version" msgstr "" -#: apt-pkg/pkgcache.cc:149 +#: apt-pkg/pkgcache.cc:148 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "" -#: apt-pkg/pkgcache.cc:154 +#: apt-pkg/pkgcache.cc:153 msgid "The package cache was built for a different architecture" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "Depends" msgstr "يعتمد" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "PreDepends" msgstr "يعتمد مسبقاً" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "Suggests" msgstr "يستحسن" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Recommends" msgstr "يقترح" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Conflicts" msgstr "يعارض" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Replaces" msgstr "يستبدل" -#: apt-pkg/pkgcache.cc:227 +#: apt-pkg/pkgcache.cc:226 msgid "Obsoletes" msgstr "يُلغي" -#: apt-pkg/pkgcache.cc:227 +#: apt-pkg/pkgcache.cc:226 msgid "Breaks" msgstr "" -#: apt-pkg/pkgcache.cc:227 -msgid "Enhances" -msgstr "" - -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "important" msgstr "مهم" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "required" msgstr "مطلوب" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "standard" msgstr "قياسي" -#: apt-pkg/pkgcache.cc:239 +#: apt-pkg/pkgcache.cc:238 msgid "optional" msgstr "اختياري" -#: apt-pkg/pkgcache.cc:239 +#: apt-pkg/pkgcache.cc:238 msgid "extra" msgstr "إضافي" -#: apt-pkg/depcache.cc:123 apt-pkg/depcache.cc:152 +#: apt-pkg/depcache.cc:121 apt-pkg/depcache.cc:150 msgid "Building dependency tree" msgstr "" -#: apt-pkg/depcache.cc:124 +#: apt-pkg/depcache.cc:122 msgid "Candidate versions" msgstr "" -#: apt-pkg/depcache.cc:153 +#: apt-pkg/depcache.cc:151 msgid "Dependency generation" msgstr "" -#: apt-pkg/depcache.cc:174 apt-pkg/depcache.cc:193 apt-pkg/depcache.cc:197 +#: apt-pkg/depcache.cc:172 apt-pkg/depcache.cc:191 apt-pkg/depcache.cc:195 #, fuzzy msgid "Reading state information" msgstr "دمج المعلومات المتوفرة" -#: apt-pkg/depcache.cc:221 +#: apt-pkg/depcache.cc:219 #, fuzzy, c-format msgid "Failed to open StateFile %s" msgstr "فشل فتح %s" -#: apt-pkg/depcache.cc:227 +#: apt-pkg/depcache.cc:225 #, fuzzy, c-format msgid "Failed to write temporary StateFile %s" msgstr "فشلت كتابة الملف %s" @@ -2326,40 +2314,40 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -#: apt-pkg/algorithms.cc:1154 +#: apt-pkg/algorithms.cc:1107 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -#: apt-pkg/algorithms.cc:1156 +#: apt-pkg/algorithms.cc:1109 msgid "Unable to correct problems, you have held broken packages." msgstr "" -#: apt-pkg/algorithms.cc:1433 apt-pkg/algorithms.cc:1435 +#: apt-pkg/algorithms.cc:1375 apt-pkg/algorithms.cc:1377 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -#: apt-pkg/acquire.cc:60 +#: apt-pkg/acquire.cc:59 #, c-format msgid "Lists directory %spartial is missing." msgstr "" -#: apt-pkg/acquire.cc:64 +#: 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:829 +#: apt-pkg/acquire.cc:828 #, c-format msgid "Retrieving file %li of %li (%s remaining)" msgstr "" -#: apt-pkg/acquire.cc:831 +#: apt-pkg/acquire.cc:830 #, c-format msgid "Retrieving file %li of %li" msgstr "" @@ -2379,12 +2367,12 @@ msgstr "" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "الرجاء إدخال القرص المُسمّى '%s' في السوّاقة '%s' وضغط مفتاح الإدخال." -#: apt-pkg/init.cc:125 +#: apt-pkg/init.cc:124 #, c-format msgid "Packaging system '%s' is not supported" msgstr "نظام الحزم '%s' غير مدعوم" -#: apt-pkg/init.cc:141 +#: apt-pkg/init.cc:140 msgid "Unable to determine a suitable packaging system type" msgstr "" @@ -2405,17 +2393,16 @@ msgstr "" msgid "You may want to run apt-get update to correct these problems" msgstr "قد يساعدك تنفيذ الأمر apt-get update في تصحيح هذه المشاكل" -#: apt-pkg/policy.cc:329 -#, c-format -msgid "Invalid record in the preferences file %s, no Package header" +#: apt-pkg/policy.cc:267 +msgid "Invalid record in the preferences file, no Package header" msgstr "" -#: apt-pkg/policy.cc:351 +#: apt-pkg/policy.cc:289 #, c-format msgid "Did not understand pin type %s" msgstr "" -#: apt-pkg/policy.cc:359 +#: apt-pkg/policy.cc:297 msgid "No priority (or zero) specified for pin" msgstr "" @@ -2554,23 +2541,6 @@ msgstr "" msgid "Size mismatch" msgstr "الحجم غير متطابق" -#: apt-pkg/indexrecords.cc:40 -#, fuzzy, c-format -#| msgid "Unable to open DB file %s: %s" -msgid "Unable to parse Release file %s" -msgstr "تعذر فتح ملف قاعدة البيانات %s: %s" - -#: apt-pkg/indexrecords.cc:47 -#, fuzzy, c-format -#| msgid "Note, selecting %s instead of %s\n" -msgid "No sections in Release file %s" -msgstr "لاحظ، تحديد %s بدلاً من %s\n" - -#: apt-pkg/indexrecords.cc:81 -#, c-format -msgid "No Hash entry in Release file %s" -msgstr "" - #: apt-pkg/vendorlist.cc:66 #, c-format msgid "Vendor block %s contains no fingerprint" @@ -2626,12 +2596,6 @@ msgid "" "zu signatures\n" msgstr "" -#: apt-pkg/cdrom.cc:689 -msgid "" -"Unable to locate any package files, perhaps this is not a Debian Disc or the " -"wrong architecture?" -msgstr "" - #: apt-pkg/cdrom.cc:715 #, c-format msgid "Found label '%s'\n" @@ -2662,22 +2626,22 @@ msgstr "كتابة لائحة المصادر الجديدة\n" msgid "Source list entries for this disc are:\n" msgstr "" -#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:833 +#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:823 #, c-format msgid "Wrote %i records.\n" msgstr "" -#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:835 +#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:825 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "" -#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:838 +#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:828 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "" -#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:841 +#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:831 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" @@ -2687,12 +2651,12 @@ msgstr "" msgid "Installing %s" msgstr "تم تثبيت %s" -#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:642 +#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:612 #, c-format msgid "Configuring %s" msgstr "تهيئة %s" -#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:649 +#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:627 #, c-format msgid "Removing %s" msgstr "إزالة %s" @@ -2702,78 +2666,61 @@ msgstr "إزالة %s" msgid "Running post-installation trigger %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:546 +#: apt-pkg/deb/dpkgpm.cc:521 #, c-format msgid "Directory '%s' missing" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:635 +#: apt-pkg/deb/dpkgpm.cc:605 #, c-format msgid "Preparing %s" msgstr "تحضير %s" -#: apt-pkg/deb/dpkgpm.cc:636 +#: apt-pkg/deb/dpkgpm.cc:606 #, c-format msgid "Unpacking %s" msgstr "فتح %s" -#: apt-pkg/deb/dpkgpm.cc:641 +#: apt-pkg/deb/dpkgpm.cc:611 #, c-format msgid "Preparing to configure %s" msgstr "التحضير لتهيئة %s" -#: apt-pkg/deb/dpkgpm.cc:643 +#: apt-pkg/deb/dpkgpm.cc:614 apt-pkg/deb/dpkgpm.cc:615 +#, fuzzy, c-format +msgid "Processing triggers for %s" +msgstr "خطأ في معالجة الدليل %s" + +#: apt-pkg/deb/dpkgpm.cc:617 #, c-format msgid "Installed %s" msgstr "تم تثبيت %s" -#: apt-pkg/deb/dpkgpm.cc:648 +#: apt-pkg/deb/dpkgpm.cc:622 apt-pkg/deb/dpkgpm.cc:624 +#: apt-pkg/deb/dpkgpm.cc:625 #, c-format msgid "Preparing for removal of %s" msgstr "التحضير لإزالة %s" -#: apt-pkg/deb/dpkgpm.cc:650 +#: apt-pkg/deb/dpkgpm.cc:628 #, c-format msgid "Removed %s" msgstr "تم إزالة %s" -#: apt-pkg/deb/dpkgpm.cc:655 +#: apt-pkg/deb/dpkgpm.cc:633 #, c-format msgid "Preparing to completely remove %s" msgstr "التحضير لإزالة %s بالكامل" -#: apt-pkg/deb/dpkgpm.cc:656 +#: apt-pkg/deb/dpkgpm.cc:634 #, c-format msgid "Completely removed %s" msgstr "تمت إزالة %s بالكامل" -#: apt-pkg/deb/dpkgpm.cc:820 +#: apt-pkg/deb/dpkgpm.cc:789 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:848 -msgid "Running dpkg" -msgstr "" - -#: apt-pkg/deb/debsystem.cc:70 -#, c-format -msgid "" -"Unable to lock the administration directory (%s), is another process using " -"it?" -msgstr "" - -#: apt-pkg/deb/debsystem.cc:73 -#, fuzzy, c-format -#| msgid "Unable to lock the list directory" -msgid "Unable to lock the administration directory (%s), are you root?" -msgstr "تعذر قفل دليل القائمة" - -#: apt-pkg/deb/debsystem.cc:82 -msgid "" -"dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct " -"the problem. " -msgstr "" - #: apt-pkg/deb/debsystem.cc:100 msgid "Not locked" msgstr "" @@ -2786,13 +2733,6 @@ msgstr "" msgid "Connection closed prematurely" msgstr "" -#~ msgid "%4i %s\n" -#~ msgstr "%4i %s\n" - -#, fuzzy -#~ msgid "Processing triggers for %s" -#~ msgstr "خطأ في معالجة الدليل %s" - #, fuzzy #~ msgid "Line %d too long (max %lu)" #~ msgstr "السطر %d طويل جداً (أقصاه %d)" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-ku\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-21 15:49+0200\n" +"POT-Creation-Date: 2009-04-22 12:25+0200\n" "PO-Revision-Date: 2008-05-08 12:48+0200\n" "Last-Translator: Erdal Ronahi <erdal dot ronahi at gmail dot com>\n" "Language-Team: ku <ubuntu-l10n-kur@lists.ubuntu.com>\n" @@ -18,150 +18,155 @@ msgstr "" "X-Generator: KAider 0.1\n" "Plural-Forms: nplurals=2; plural= n != 1;\n" -#: cmdline/apt-cache.cc:141 +#: cmdline/apt-cache.cc:143 #, c-format msgid "Package %s version %s has an unmet dep:\n" msgstr "" -#: cmdline/apt-cache.cc:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:644 -#: cmdline/apt-cache.cc:800 cmdline/apt-cache.cc:1022 -#: cmdline/apt-cache.cc:1423 cmdline/apt-cache.cc:1575 +#: 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:245 +#: cmdline/apt-cache.cc:247 msgid "Total package names: " msgstr "Navên paketan bi giştî :" -#: cmdline/apt-cache.cc:285 +#: cmdline/apt-cache.cc:287 msgid " Normal packages: " msgstr " Pakêtên normal:" -#: cmdline/apt-cache.cc:286 +#: cmdline/apt-cache.cc:288 msgid " Pure virtual packages: " msgstr " Pakêtên farazî yên safî:" -#: cmdline/apt-cache.cc:287 +#: cmdline/apt-cache.cc:289 msgid " Single virtual packages: " msgstr " Pakêta tenê ya farazî:" -#: cmdline/apt-cache.cc:288 +#: cmdline/apt-cache.cc:290 msgid " Mixed virtual packages: " msgstr " Pakêtên hevbeş yên farazî:" -#: cmdline/apt-cache.cc:289 +#: cmdline/apt-cache.cc:291 msgid " Missing: " msgstr " Winda: " -#: cmdline/apt-cache.cc:291 +#: cmdline/apt-cache.cc:293 msgid "Total distinct versions: " msgstr "Guhertoyên vekirî yên giştî:" -#: cmdline/apt-cache.cc:293 +#: cmdline/apt-cache.cc:295 #, fuzzy msgid "Total distinct descriptions: " msgstr "Guhertoyên vekirî yên giştî:" -#: cmdline/apt-cache.cc:295 +#: cmdline/apt-cache.cc:297 msgid "Total dependencies: " msgstr "Bindestên giştî:" -#: cmdline/apt-cache.cc:298 +#: cmdline/apt-cache.cc:300 msgid "Total ver/file relations: " msgstr "" -#: cmdline/apt-cache.cc:300 +#: cmdline/apt-cache.cc:302 #, fuzzy msgid "Total Desc/File relations: " msgstr "Guhertoyên vekirî yên giştî:" -#: cmdline/apt-cache.cc:302 +#: cmdline/apt-cache.cc:304 msgid "Total Provides mappings: " msgstr "" -#: cmdline/apt-cache.cc:314 +#: cmdline/apt-cache.cc:316 msgid "Total globbed strings: " msgstr "" -#: cmdline/apt-cache.cc:328 +#: cmdline/apt-cache.cc:330 msgid "Total dependency version space: " msgstr "" -#: cmdline/apt-cache.cc:333 +#: cmdline/apt-cache.cc:335 msgid "Total slack space: " msgstr "Cihê giştî yê sist:" -#: cmdline/apt-cache.cc:341 +#: cmdline/apt-cache.cc:343 msgid "Total space accounted for: " msgstr "Cihê giştî yê veqetandî: " -#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1222 +#: 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:1297 +#: cmdline/apt-cache.cc:1293 msgid "You must give exactly one pattern" msgstr "Pêwist e tu mînakekê bidî" -#: cmdline/apt-cache.cc:1451 +#: cmdline/apt-cache.cc:1447 msgid "No packages found" msgstr "Pakêt nayên dîtin" -#: cmdline/apt-cache.cc:1528 +#: cmdline/apt-cache.cc:1524 msgid "Package files:" msgstr "Pelgehên Pakêt:" -#: cmdline/apt-cache.cc:1535 cmdline/apt-cache.cc:1622 +#: 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:1549 +#: cmdline/apt-cache.cc:1544 msgid "Pinned packages:" msgstr "" -#: cmdline/apt-cache.cc:1561 cmdline/apt-cache.cc:1602 +#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 msgid "(not found)" msgstr "(nehate dîtin)" #. Installed version -#: cmdline/apt-cache.cc:1582 +#: cmdline/apt-cache.cc:1577 msgid " Installed: " msgstr " Sazkirî: " -#: cmdline/apt-cache.cc:1584 cmdline/apt-cache.cc:1592 +#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 msgid "(none)" msgstr "(ne tiştek)" #. Candidate Version -#: cmdline/apt-cache.cc:1589 +#: cmdline/apt-cache.cc:1584 msgid " Candidate: " msgstr " Berendam: " -#: cmdline/apt-cache.cc:1599 +#: cmdline/apt-cache.cc:1594 msgid " Package pin: " msgstr " Destika pakêtê:" #. Show the priority tables -#: cmdline/apt-cache.cc:1608 +#: cmdline/apt-cache.cc:1603 msgid " Version table:" msgstr " Tabloya guhertoyan:" -#: cmdline/apt-cache.cc:1623 +#: cmdline/apt-cache.cc:1618 #, c-format msgid " %4i %s\n" msgstr " %4i %s\n" -#: cmdline/apt-cache.cc:1719 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: 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:2586 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2582 cmdline/apt-sortpkgs.cc:144 #, fuzzy, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s ji bo %s %s komkirî di %s %s de\n" -#: cmdline/apt-cache.cc:1726 +#: cmdline/apt-cache.cc:1721 msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@ -562,221 +567,221 @@ msgstr "" msgid "Failed to rename %s to %s" msgstr "" -#: cmdline/apt-get.cc:127 +#: cmdline/apt-get.cc:124 msgid "Y" msgstr "E" -#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1661 +#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1658 #, c-format msgid "Regex compilation error - %s" msgstr "" -#: cmdline/apt-get.cc:244 +#: cmdline/apt-get.cc:241 msgid "The following packages have unmet dependencies:" msgstr "" -#: cmdline/apt-get.cc:334 +#: cmdline/apt-get.cc:331 #, c-format msgid "but %s is installed" msgstr "lê %s sazkirî ye" -#: cmdline/apt-get.cc:336 +#: cmdline/apt-get.cc:333 #, c-format msgid "but %s is to be installed" msgstr "lê %s dê were sazkirin" -#: cmdline/apt-get.cc:343 +#: cmdline/apt-get.cc:340 msgid "but it is not installable" msgstr "lê sazkirina wê ne gengaz e" -#: cmdline/apt-get.cc:345 +#: cmdline/apt-get.cc:342 msgid "but it is a virtual package" msgstr "lê paketeke farazî ye" -#: cmdline/apt-get.cc:348 +#: cmdline/apt-get.cc:345 msgid "but it is not installed" msgstr "lê ne sazkirî ye" -#: cmdline/apt-get.cc:348 +#: cmdline/apt-get.cc:345 msgid "but it is not going to be installed" msgstr "lê dê neyê sazkirin" -#: cmdline/apt-get.cc:353 +#: cmdline/apt-get.cc:350 msgid " or" msgstr " û" -#: cmdline/apt-get.cc:382 +#: cmdline/apt-get.cc:379 msgid "The following NEW packages will be installed:" msgstr "Ev pakêtên NÛ dê werine sazkirin:" -#: cmdline/apt-get.cc:408 +#: cmdline/apt-get.cc:405 msgid "The following packages will be REMOVED:" msgstr "Ev pakêt dê werine RAKIRIN:" -#: cmdline/apt-get.cc:430 +#: cmdline/apt-get.cc:427 msgid "The following packages have been kept back:" msgstr "" -#: cmdline/apt-get.cc:451 +#: cmdline/apt-get.cc:448 msgid "The following packages will be upgraded:" msgstr "Ev paket dê werine bilindkirin:" -#: cmdline/apt-get.cc:472 +#: cmdline/apt-get.cc:469 msgid "The following packages will be DOWNGRADED:" msgstr "" -#: cmdline/apt-get.cc:492 +#: cmdline/apt-get.cc:489 msgid "The following held packages will be changed:" msgstr "" -#: cmdline/apt-get.cc:545 +#: cmdline/apt-get.cc:542 #, c-format msgid "%s (due to %s) " msgstr "%s (ji ber %s)" -#: cmdline/apt-get.cc:553 +#: cmdline/apt-get.cc:550 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:584 +#: cmdline/apt-get.cc:581 #, c-format msgid "%lu upgraded, %lu newly installed, " msgstr "%lu hatine bilindkirin, %lu nû hatine sazkirin." -#: cmdline/apt-get.cc:588 +#: cmdline/apt-get.cc:585 #, c-format msgid "%lu reinstalled, " msgstr "%lu ji nû ve sazkirî," -#: cmdline/apt-get.cc:590 +#: cmdline/apt-get.cc:587 #, c-format msgid "%lu downgraded, " msgstr "%lu hatine nizmkirin." -#: cmdline/apt-get.cc:592 +#: cmdline/apt-get.cc:589 #, c-format msgid "%lu to remove and %lu not upgraded.\n" msgstr "%lu werin rakirin û %lu neyên bilindkirin. \n" -#: cmdline/apt-get.cc:596 +#: cmdline/apt-get.cc:593 #, c-format msgid "%lu not fully installed or removed.\n" msgstr "" -#: cmdline/apt-get.cc:670 +#: cmdline/apt-get.cc:667 msgid "Correcting dependencies..." msgstr "Bindestî tên serrastkirin..." -#: cmdline/apt-get.cc:673 +#: cmdline/apt-get.cc:670 msgid " failed." msgstr " neserketî." -#: cmdline/apt-get.cc:676 +#: cmdline/apt-get.cc:673 msgid "Unable to correct dependencies" msgstr "Nikare bindestiyan rast kirin" -#: cmdline/apt-get.cc:679 +#: cmdline/apt-get.cc:676 msgid "Unable to minimize the upgrade set" msgstr "" -#: cmdline/apt-get.cc:681 +#: cmdline/apt-get.cc:678 msgid " Done" msgstr " Temam" -#: cmdline/apt-get.cc:685 +#: cmdline/apt-get.cc:682 msgid "You might want to run `apt-get -f install' to correct these." msgstr "" -#: cmdline/apt-get.cc:688 +#: cmdline/apt-get.cc:685 msgid "Unmet dependencies. Try using -f." msgstr "" -#: cmdline/apt-get.cc:710 +#: cmdline/apt-get.cc:707 msgid "WARNING: The following packages cannot be authenticated!" msgstr "" -#: cmdline/apt-get.cc:714 +#: cmdline/apt-get.cc:711 msgid "Authentication warning overridden.\n" msgstr "" -#: cmdline/apt-get.cc:721 +#: cmdline/apt-get.cc:718 msgid "Install these packages without verification [y/N]? " msgstr "" -#: cmdline/apt-get.cc:723 +#: cmdline/apt-get.cc:720 msgid "Some packages could not be authenticated" msgstr "" -#: cmdline/apt-get.cc:732 cmdline/apt-get.cc:884 +#: cmdline/apt-get.cc:729 cmdline/apt-get.cc:881 msgid "There are problems and -y was used without --force-yes" msgstr "" -#: cmdline/apt-get.cc:776 +#: cmdline/apt-get.cc:773 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "" -#: cmdline/apt-get.cc:785 +#: cmdline/apt-get.cc:782 msgid "Packages need to be removed but remove is disabled." msgstr "" -#: cmdline/apt-get.cc:796 +#: cmdline/apt-get.cc:793 msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:812 cmdline/apt-get.cc:2003 cmdline/apt-get.cc:2036 +#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032 msgid "Unable to lock the download directory" msgstr "Pelrêça daxistinê nayê quflekirin" -#: cmdline/apt-get.cc:822 cmdline/apt-get.cc:2084 cmdline/apt-get.cc:2330 +#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2326 #: apt-pkg/cachefile.cc:65 msgid "The list of sources could not be read." msgstr "" -#: cmdline/apt-get.cc:837 +#: cmdline/apt-get.cc:834 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -#: cmdline/apt-get.cc:842 +#: cmdline/apt-get.cc:839 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "Anîna %sB/%sB ji arşîvan pêwist e.\n" -#: cmdline/apt-get.cc:845 +#: cmdline/apt-get.cc:842 #, c-format msgid "Need to get %sB of archives.\n" msgstr "Anîna %sB ji arşîvan pêwist e.\n" -#: cmdline/apt-get.cc:850 +#: cmdline/apt-get.cc:847 #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "" -#: cmdline/apt-get.cc:853 +#: cmdline/apt-get.cc:850 #, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:2179 +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2175 #, c-format msgid "Couldn't determine free space in %s" msgstr "Nikarî cihê vala li %s tesbît bike" -#: cmdline/apt-get.cc:874 +#: cmdline/apt-get.cc:871 #, c-format msgid "You don't have enough free space in %s." msgstr "Cihê vala li %s têre nake." -#: cmdline/apt-get.cc:890 cmdline/apt-get.cc:910 +#: cmdline/apt-get.cc:887 cmdline/apt-get.cc:907 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" -#: cmdline/apt-get.cc:892 +#: cmdline/apt-get.cc:889 msgid "Yes, do as I say!" msgstr "Erê, wusa bike!" -#: cmdline/apt-get.cc:894 +#: cmdline/apt-get.cc:891 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -784,74 +789,74 @@ msgid "" " ?] " msgstr "" -#: cmdline/apt-get.cc:900 cmdline/apt-get.cc:919 +#: cmdline/apt-get.cc:897 cmdline/apt-get.cc:916 msgid "Abort." msgstr "Betal." -#: cmdline/apt-get.cc:915 +#: cmdline/apt-get.cc:912 msgid "Do you want to continue [Y/n]? " msgstr "Dixwazî bidomînî [E/n]?" -#: cmdline/apt-get.cc:987 cmdline/apt-get.cc:2227 apt-pkg/algorithms.cc:1407 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Anîna %s %s biserneket\n" -#: cmdline/apt-get.cc:1005 +#: cmdline/apt-get.cc:1002 msgid "Some files failed to download" msgstr "Daxistina çend pelan biserneket" -#: cmdline/apt-get.cc:1006 cmdline/apt-get.cc:2236 +#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2232 msgid "Download complete and in download only mode" msgstr "" -#: cmdline/apt-get.cc:1012 +#: cmdline/apt-get.cc:1009 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -#: cmdline/apt-get.cc:1016 +#: cmdline/apt-get.cc:1013 msgid "--fix-missing and media swapping is not currently supported" msgstr "" -#: cmdline/apt-get.cc:1021 +#: cmdline/apt-get.cc:1018 msgid "Unable to correct missing packages." msgstr "" -#: cmdline/apt-get.cc:1022 +#: cmdline/apt-get.cc:1019 msgid "Aborting install." msgstr "Sazkirin tê betalkirin." -#: cmdline/apt-get.cc:1056 +#: cmdline/apt-get.cc:1053 #, c-format msgid "Note, selecting %s instead of %s\n" msgstr "" -#: cmdline/apt-get.cc:1066 +#: cmdline/apt-get.cc:1063 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "" -#: cmdline/apt-get.cc:1084 +#: cmdline/apt-get.cc:1081 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "" -#: cmdline/apt-get.cc:1095 +#: cmdline/apt-get.cc:1092 #, c-format msgid "Package %s is a virtual package provided by:\n" msgstr "" -#: cmdline/apt-get.cc:1107 +#: cmdline/apt-get.cc:1104 msgid " [Installed]" msgstr " [Sazkirî]" -#: cmdline/apt-get.cc:1112 +#: cmdline/apt-get.cc:1109 msgid "You should explicitly select one to install." msgstr "" -#: cmdline/apt-get.cc:1117 +#: cmdline/apt-get.cc:1114 #, c-format msgid "" "Package %s is not available, but is referred to by another package.\n" @@ -859,69 +864,69 @@ msgid "" "is only available from another source\n" msgstr "" -#: cmdline/apt-get.cc:1136 +#: cmdline/apt-get.cc:1133 msgid "However the following packages replace it:" msgstr "" -#: cmdline/apt-get.cc:1139 +#: cmdline/apt-get.cc:1136 #, c-format msgid "Package %s has no installation candidate" msgstr "" -#: cmdline/apt-get.cc:1159 +#: cmdline/apt-get.cc:1156 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" msgstr "" -#: cmdline/apt-get.cc:1167 +#: cmdline/apt-get.cc:1164 #, c-format msgid "%s is already the newest version.\n" msgstr "%s jixwe guhertoya nûtirîn e.\n" -#: cmdline/apt-get.cc:1196 +#: cmdline/apt-get.cc:1193 #, c-format msgid "Release '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1198 +#: cmdline/apt-get.cc:1195 #, c-format msgid "Version '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1204 +#: cmdline/apt-get.cc:1201 #, c-format msgid "Selected version %s (%s) for %s\n" msgstr "" -#: cmdline/apt-get.cc:1310 +#: cmdline/apt-get.cc:1307 #, c-format msgid "No source package '%s' picking '%s' instead\n" msgstr "" -#: cmdline/apt-get.cc:1348 +#: cmdline/apt-get.cc:1345 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1361 +#: cmdline/apt-get.cc:1358 msgid "Unable to lock the list directory" msgstr "" -#: cmdline/apt-get.cc:1413 +#: cmdline/apt-get.cc:1410 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1445 +#: cmdline/apt-get.cc:1442 #, 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:1447 +#: cmdline/apt-get.cc:1444 msgid "Use 'apt-get autoremove' to remove them." msgstr "" -#: cmdline/apt-get.cc:1452 +#: cmdline/apt-get.cc:1449 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -937,49 +942,49 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1455 cmdline/apt-get.cc:1745 +#: cmdline/apt-get.cc:1452 cmdline/apt-get.cc:1742 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1459 +#: cmdline/apt-get.cc:1456 msgid "Internal Error, AutoRemover broke stuff" msgstr "" -#: cmdline/apt-get.cc:1478 +#: cmdline/apt-get.cc:1475 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1533 +#: cmdline/apt-get.cc:1530 #, c-format msgid "Couldn't find task %s" msgstr "Peywira %s nehate dîtin" -#: cmdline/apt-get.cc:1648 cmdline/apt-get.cc:1684 +#: cmdline/apt-get.cc:1645 cmdline/apt-get.cc:1681 #, c-format msgid "Couldn't find package %s" msgstr "Nikarî pakêta %s bibîne" -#: cmdline/apt-get.cc:1671 +#: cmdline/apt-get.cc:1668 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1702 +#: cmdline/apt-get.cc:1699 #, fuzzy, c-format msgid "%s set to manually installed.\n" msgstr "lê %s dê were sazkirin" -#: cmdline/apt-get.cc:1715 +#: cmdline/apt-get.cc:1712 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1718 +#: cmdline/apt-get.cc:1715 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1730 +#: cmdline/apt-get.cc:1727 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" @@ -987,152 +992,152 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1748 +#: cmdline/apt-get.cc:1745 msgid "Broken packages" msgstr "Paketên şikestî" -#: cmdline/apt-get.cc:1777 +#: cmdline/apt-get.cc:1774 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1866 +#: cmdline/apt-get.cc:1863 msgid "Suggested packages:" msgstr "Paketên tên pêşniyaz kirin:" -#: cmdline/apt-get.cc:1867 +#: cmdline/apt-get.cc:1864 msgid "Recommended packages:" msgstr "Paketên tên tawsiyê kirin:" -#: cmdline/apt-get.cc:1896 +#: cmdline/apt-get.cc:1892 msgid "Calculating upgrade... " msgstr "Bilindkirin tê hesibandin..." -#: cmdline/apt-get.cc:1899 methods/ftp.cc:702 methods/connect.cc:112 +#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:112 msgid "Failed" msgstr "Serneket" -#: cmdline/apt-get.cc:1904 +#: cmdline/apt-get.cc:1900 msgid "Done" msgstr "Temam" -#: cmdline/apt-get.cc:1971 cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:2079 +#: cmdline/apt-get.cc:2075 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:2109 cmdline/apt-get.cc:2348 +#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2344 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:2158 +#: cmdline/apt-get.cc:2154 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:2186 +#: cmdline/apt-get.cc:2182 #, c-format msgid "You don't have enough free space in %s" msgstr "Cihê vala li %s têre nake" -#: cmdline/apt-get.cc:2192 +#: cmdline/apt-get.cc:2188 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2195 +#: cmdline/apt-get.cc:2191 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2201 +#: cmdline/apt-get.cc:2197 #, c-format msgid "Fetch source %s\n" msgstr "Çavkanîna %s bîne\n" -#: cmdline/apt-get.cc:2232 +#: cmdline/apt-get.cc:2228 msgid "Failed to fetch some archives." msgstr "Anîna çend arşîvan biserneket." -#: cmdline/apt-get.cc:2260 +#: cmdline/apt-get.cc:2256 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2272 +#: cmdline/apt-get.cc:2268 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2273 +#: cmdline/apt-get.cc:2269 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2290 +#: cmdline/apt-get.cc:2286 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2309 +#: cmdline/apt-get.cc:2305 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2325 +#: cmdline/apt-get.cc:2321 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2353 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2373 +#: cmdline/apt-get.cc:2369 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2425 +#: cmdline/apt-get.cc:2421 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2478 +#: cmdline/apt-get.cc:2474 #, 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 +#: cmdline/apt-get.cc:2510 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2541 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2555 +#: cmdline/apt-get.cc:2551 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2559 +#: cmdline/apt-get.cc:2555 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2591 +#: cmdline/apt-get.cc:2587 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2632 +#: cmdline/apt-get.cc:2628 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1176,14 +1181,6 @@ msgid "" " This APT has Super Cow Powers.\n" msgstr "" -#: cmdline/apt-get.cc:2799 -msgid "" -"NOTE: This is only a simulation!\n" -" apt-get needs root privileges for real execution.\n" -" Keep also in mind that locking is deactivated,\n" -" so don't depend on the relevance to the real current situation!" -msgstr "" - #: cmdline/acqprogress.cc:55 msgid "Hit " msgstr "" @@ -1402,9 +1399,9 @@ msgstr "" msgid "File %s/%s overwrites the one in the package %s" msgstr "" -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:822 +#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:821 #: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 -#: apt-pkg/acquire.cc:419 apt-pkg/clean.cc:34 apt-pkg/policy.cc:268 +#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 #, c-format msgid "Unable to read %s" msgstr "Nikare %s bixwîne" @@ -1630,7 +1627,7 @@ msgstr "" msgid "Server closed the connection" msgstr "" -#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:538 methods/rsh.cc:190 msgid "Read error" msgstr "Çewiya xwendinê" @@ -1642,7 +1639,7 @@ msgstr "" msgid "Protocol corruption" msgstr "" -#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:577 methods/rsh.cc:232 msgid "Write error" msgstr "Çewtiya nivîsînê" @@ -1948,7 +1945,7 @@ msgstr "" msgid "%lis" msgstr "" -#: apt-pkg/contrib/strutl.cc:1029 +#: apt-pkg/contrib/strutl.cc:1018 #, c-format msgid "Selection %s not found" msgstr "Hilbijartina %s nehatiye dîtin" @@ -1963,42 +1960,42 @@ msgstr "" msgid "Opening configuration file %s" msgstr "" -#: apt-pkg/contrib/configuration.cc:663 +#: apt-pkg/contrib/configuration.cc:662 #, c-format msgid "Syntax error %s:%u: Block starts with no name." msgstr "" -#: apt-pkg/contrib/configuration.cc:682 +#: apt-pkg/contrib/configuration.cc:681 #, c-format msgid "Syntax error %s:%u: Malformed tag" msgstr "" -#: apt-pkg/contrib/configuration.cc:699 +#: apt-pkg/contrib/configuration.cc:698 #, c-format msgid "Syntax error %s:%u: Extra junk after value" msgstr "" -#: apt-pkg/contrib/configuration.cc:739 +#: apt-pkg/contrib/configuration.cc:738 #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -#: apt-pkg/contrib/configuration.cc:746 +#: apt-pkg/contrib/configuration.cc:745 #, c-format msgid "Syntax error %s:%u: Too many nested includes" msgstr "" -#: apt-pkg/contrib/configuration.cc:750 apt-pkg/contrib/configuration.cc:755 +#: apt-pkg/contrib/configuration.cc:749 apt-pkg/contrib/configuration.cc:754 #, c-format msgid "Syntax error %s:%u: Included from here" msgstr "" -#: apt-pkg/contrib/configuration.cc:759 +#: apt-pkg/contrib/configuration.cc:758 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" msgstr "" -#: apt-pkg/contrib/configuration.cc:810 +#: apt-pkg/contrib/configuration.cc:809 #, c-format msgid "Syntax error %s:%u: Extra junk at end of file" msgstr "" @@ -2065,7 +2062,7 @@ 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/contrib/cdromutl.cc:180 -#: apt-pkg/acquire.cc:425 apt-pkg/acquire.cc:450 apt-pkg/clean.cc:40 +#: apt-pkg/acquire.cc:424 apt-pkg/acquire.cc:449 apt-pkg/clean.cc:40 #, c-format msgid "Unable to change to %s" msgstr "Nikarî derbasa %s bike" @@ -2099,152 +2096,143 @@ msgstr "" msgid "Waited for %s but it wasn't there" msgstr "" -#: apt-pkg/contrib/fileutl.cc:455 +#: apt-pkg/contrib/fileutl.cc:454 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "" #: apt-pkg/contrib/fileutl.cc:457 #, c-format -msgid "Sub-process %s received signal %u." -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:460 -#, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "" -#: apt-pkg/contrib/fileutl.cc:462 +#: apt-pkg/contrib/fileutl.cc:459 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "" -#: apt-pkg/contrib/fileutl.cc:506 +#: apt-pkg/contrib/fileutl.cc:503 #, c-format msgid "Could not open file %s" msgstr "Nikarî pelê %s veke" -#: apt-pkg/contrib/fileutl.cc:562 +#: apt-pkg/contrib/fileutl.cc:559 #, c-format msgid "read, still have %lu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:592 +#: apt-pkg/contrib/fileutl.cc:589 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:667 +#: apt-pkg/contrib/fileutl.cc:664 msgid "Problem closing the file" msgstr "Di girtina pelî de pirsgirêkek derket" -#: apt-pkg/contrib/fileutl.cc:673 +#: apt-pkg/contrib/fileutl.cc:670 msgid "Problem unlinking the file" msgstr "" -#: apt-pkg/contrib/fileutl.cc:684 +#: apt-pkg/contrib/fileutl.cc:681 msgid "Problem syncing the file" msgstr "" -#: apt-pkg/pkgcache.cc:133 +#: apt-pkg/pkgcache.cc:132 msgid "Empty package cache" msgstr "" -#: apt-pkg/pkgcache.cc:139 +#: apt-pkg/pkgcache.cc:138 msgid "The package cache file is corrupted" msgstr "" -#: apt-pkg/pkgcache.cc:144 +#: apt-pkg/pkgcache.cc:143 msgid "The package cache file is an incompatible version" msgstr "" -#: apt-pkg/pkgcache.cc:149 +#: apt-pkg/pkgcache.cc:148 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "" -#: apt-pkg/pkgcache.cc:154 +#: apt-pkg/pkgcache.cc:153 msgid "The package cache was built for a different architecture" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "Depends" msgstr "Bindest" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "PreDepends" msgstr "PêşBindest" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "Suggests" msgstr "Pêşniyaz dike" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Recommends" msgstr "Tawsiye dike" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Conflicts" msgstr "Nakokî" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Replaces" msgstr "Dikeve şunve" -#: apt-pkg/pkgcache.cc:227 +#: apt-pkg/pkgcache.cc:226 msgid "Obsoletes" msgstr "Kevin dike" -#: apt-pkg/pkgcache.cc:227 +#: apt-pkg/pkgcache.cc:226 msgid "Breaks" msgstr "Dişkîne" -#: apt-pkg/pkgcache.cc:227 -msgid "Enhances" -msgstr "" - -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "important" msgstr "girîng" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "required" msgstr "pêwist" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "standard" msgstr "standard" -#: apt-pkg/pkgcache.cc:239 +#: apt-pkg/pkgcache.cc:238 msgid "optional" msgstr "opsiyonel" -#: apt-pkg/pkgcache.cc:239 +#: apt-pkg/pkgcache.cc:238 msgid "extra" msgstr "ekstra" -#: apt-pkg/depcache.cc:123 apt-pkg/depcache.cc:152 +#: apt-pkg/depcache.cc:121 apt-pkg/depcache.cc:150 msgid "Building dependency tree" msgstr "" -#: apt-pkg/depcache.cc:124 +#: apt-pkg/depcache.cc:122 msgid "Candidate versions" msgstr "Guhartoyên berendam" -#: apt-pkg/depcache.cc:153 +#: apt-pkg/depcache.cc:151 msgid "Dependency generation" msgstr "" -#: apt-pkg/depcache.cc:174 apt-pkg/depcache.cc:193 apt-pkg/depcache.cc:197 +#: apt-pkg/depcache.cc:172 apt-pkg/depcache.cc:191 apt-pkg/depcache.cc:195 msgid "Reading state information" msgstr "" -#: apt-pkg/depcache.cc:221 +#: apt-pkg/depcache.cc:219 #, c-format msgid "Failed to open StateFile %s" msgstr "Vekirina StateFile %s biserneket" -#: apt-pkg/depcache.cc:227 +#: apt-pkg/depcache.cc:225 #, fuzzy, c-format msgid "Failed to write temporary StateFile %s" msgstr "%s ji hev nehate veçirandin" @@ -2328,40 +2316,40 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -#: apt-pkg/algorithms.cc:1154 +#: apt-pkg/algorithms.cc:1107 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -#: apt-pkg/algorithms.cc:1156 +#: apt-pkg/algorithms.cc:1109 msgid "Unable to correct problems, you have held broken packages." msgstr "" -#: apt-pkg/algorithms.cc:1433 apt-pkg/algorithms.cc:1435 +#: apt-pkg/algorithms.cc:1375 apt-pkg/algorithms.cc:1377 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -#: apt-pkg/acquire.cc:60 +#: apt-pkg/acquire.cc:59 #, c-format msgid "Lists directory %spartial is missing." msgstr "" -#: apt-pkg/acquire.cc:64 +#: 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:829 +#: apt-pkg/acquire.cc:828 #, c-format msgid "Retrieving file %li of %li (%s remaining)" msgstr "" -#: apt-pkg/acquire.cc:831 +#: apt-pkg/acquire.cc:830 #, c-format msgid "Retrieving file %li of %li" msgstr "Pel tê anîn %li ji %li" @@ -2381,12 +2369,12 @@ msgstr "" 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:125 +#: apt-pkg/init.cc:124 #, c-format msgid "Packaging system '%s' is not supported" msgstr "" -#: apt-pkg/init.cc:141 +#: apt-pkg/init.cc:140 msgid "Unable to determine a suitable packaging system type" msgstr "" @@ -2407,17 +2395,16 @@ msgstr "" msgid "You may want to run apt-get update to correct these problems" msgstr "" -#: apt-pkg/policy.cc:329 -#, c-format -msgid "Invalid record in the preferences file %s, no Package header" +#: apt-pkg/policy.cc:267 +msgid "Invalid record in the preferences file, no Package header" msgstr "" -#: apt-pkg/policy.cc:351 +#: apt-pkg/policy.cc:289 #, c-format msgid "Did not understand pin type %s" msgstr "" -#: apt-pkg/policy.cc:359 +#: apt-pkg/policy.cc:297 msgid "No priority (or zero) specified for pin" msgstr "" @@ -2555,21 +2542,6 @@ msgstr "" msgid "Size mismatch" msgstr "Mezinahî li hev nayên" -#: apt-pkg/indexrecords.cc:40 -#, fuzzy, c-format -msgid "Unable to parse Release file %s" -msgstr "Pakêt nehate dîtin %s" - -#: apt-pkg/indexrecords.cc:47 -#, c-format -msgid "No sections in Release file %s" -msgstr "" - -#: apt-pkg/indexrecords.cc:81 -#, c-format -msgid "No Hash entry in Release file %s" -msgstr "" - #: apt-pkg/vendorlist.cc:66 #, c-format msgid "Vendor block %s contains no fingerprint" @@ -2624,12 +2596,6 @@ msgid "" "zu signatures\n" msgstr "" -#: apt-pkg/cdrom.cc:689 -msgid "" -"Unable to locate any package files, perhaps this is not a Debian Disc or the " -"wrong architecture?" -msgstr "" - #: apt-pkg/cdrom.cc:715 #, c-format msgid "Found label '%s'\n" @@ -2660,22 +2626,22 @@ msgstr "" msgid "Source list entries for this disc are:\n" msgstr "" -#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:833 +#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:823 #, c-format msgid "Wrote %i records.\n" msgstr "%i tomar hatin nivîsîn.\n" -#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:835 +#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:825 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "" -#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:838 +#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:828 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "" -#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:841 +#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:831 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" @@ -2685,12 +2651,12 @@ msgstr "" msgid "Installing %s" msgstr "%s hatine sazkirin" -#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:642 +#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:612 #, c-format msgid "Configuring %s" msgstr "%s tê mîhengkirin" -#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:649 +#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:627 #, c-format msgid "Removing %s" msgstr "%s tê rakirin" @@ -2700,78 +2666,61 @@ msgstr "%s tê rakirin" msgid "Running post-installation trigger %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:546 +#: apt-pkg/deb/dpkgpm.cc:521 #, c-format msgid "Directory '%s' missing" msgstr "Peldanka '%s' kêm e" -#: apt-pkg/deb/dpkgpm.cc:635 +#: apt-pkg/deb/dpkgpm.cc:605 #, c-format msgid "Preparing %s" msgstr "%s tê amadekirin" -#: apt-pkg/deb/dpkgpm.cc:636 +#: apt-pkg/deb/dpkgpm.cc:606 #, c-format msgid "Unpacking %s" msgstr "%s tê derxistin" -#: apt-pkg/deb/dpkgpm.cc:641 +#: apt-pkg/deb/dpkgpm.cc:611 #, c-format msgid "Preparing to configure %s" msgstr "Mîhengkirina %s tê amadekirin" -#: apt-pkg/deb/dpkgpm.cc:643 +#: apt-pkg/deb/dpkgpm.cc:614 apt-pkg/deb/dpkgpm.cc:615 +#, fuzzy, c-format +msgid "Processing triggers for %s" +msgstr "Di şixulandina pêrista %s de çewtî" + +#: apt-pkg/deb/dpkgpm.cc:617 #, c-format msgid "Installed %s" msgstr "%s hatine sazkirin" -#: apt-pkg/deb/dpkgpm.cc:648 +#: apt-pkg/deb/dpkgpm.cc:622 apt-pkg/deb/dpkgpm.cc:624 +#: apt-pkg/deb/dpkgpm.cc:625 #, c-format msgid "Preparing for removal of %s" msgstr "Rakirina %s tê amadekirin" -#: apt-pkg/deb/dpkgpm.cc:650 +#: apt-pkg/deb/dpkgpm.cc:628 #, c-format msgid "Removed %s" msgstr "%s hatine rakirin" -#: apt-pkg/deb/dpkgpm.cc:655 +#: apt-pkg/deb/dpkgpm.cc:633 #, c-format msgid "Preparing to completely remove %s" msgstr "Bi tevahî rakirina %s tê amadekirin" -#: apt-pkg/deb/dpkgpm.cc:656 +#: apt-pkg/deb/dpkgpm.cc:634 #, c-format msgid "Completely removed %s" msgstr "%s bi tevahî hatine rakirin" -#: apt-pkg/deb/dpkgpm.cc:820 +#: apt-pkg/deb/dpkgpm.cc:789 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:848 -msgid "Running dpkg" -msgstr "" - -#: apt-pkg/deb/debsystem.cc:70 -#, c-format -msgid "" -"Unable to lock the administration directory (%s), is another process using " -"it?" -msgstr "" - -#: apt-pkg/deb/debsystem.cc:73 -#, fuzzy, c-format -#| msgid "Unable to lock the download directory" -msgid "Unable to lock the administration directory (%s), are you root?" -msgstr "Pelrêça daxistinê nayê quflekirin" - -#: apt-pkg/deb/debsystem.cc:82 -msgid "" -"dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct " -"the problem. " -msgstr "" - #: apt-pkg/deb/debsystem.cc:100 msgid "Not locked" msgstr "" @@ -2784,10 +2733,3 @@ msgstr "Danegira %s nehate vekirin: %s" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Girêdan zû hatiye girtin" - -#~ msgid "%4i %s\n" -#~ msgstr "%4i %s\n" - -#, fuzzy -#~ msgid "Processing triggers for %s" -#~ msgstr "Di şixulandina pêrista %s de çewtî" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-all\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-21 15:49+0200\n" +"POT-Creation-Date: 2009-04-22 12:25+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" @@ -15,150 +15,155 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.1\n" -#: cmdline/apt-cache.cc:141 +#: 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:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:644 -#: cmdline/apt-cache.cc:800 cmdline/apt-cache.cc:1022 -#: cmdline/apt-cache.cc:1423 cmdline/apt-cache.cc:1575 +#: 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:245 +#: cmdline/apt-cache.cc:247 msgid "Total package names: " msgstr "Всього імен пакунків : " -#: cmdline/apt-cache.cc:285 +#: cmdline/apt-cache.cc:287 msgid " Normal packages: " msgstr " Нормальних пакунків: " -#: cmdline/apt-cache.cc:286 +#: cmdline/apt-cache.cc:288 msgid " Pure virtual packages: " msgstr " Чисто віртуальних пакунків: " -#: cmdline/apt-cache.cc:287 +#: cmdline/apt-cache.cc:289 msgid " Single virtual packages: " msgstr " Окремих віртуальних пакунків: " -#: cmdline/apt-cache.cc:288 +#: cmdline/apt-cache.cc:290 msgid " Mixed virtual packages: " msgstr " Змішаних віртуальних пакунків: " -#: cmdline/apt-cache.cc:289 +#: cmdline/apt-cache.cc:291 msgid " Missing: " msgstr " Пропущено: " -#: cmdline/apt-cache.cc:291 +#: cmdline/apt-cache.cc:293 msgid "Total distinct versions: " msgstr "Всього унікальних версій: " -#: cmdline/apt-cache.cc:293 +#: cmdline/apt-cache.cc:295 #, fuzzy msgid "Total distinct descriptions: " msgstr "Всього унікальних версій: " -#: cmdline/apt-cache.cc:295 +#: cmdline/apt-cache.cc:297 msgid "Total dependencies: " msgstr "Всього залежностей: " -#: cmdline/apt-cache.cc:298 +#: cmdline/apt-cache.cc:300 msgid "Total ver/file relations: " msgstr "Всього відносин Версія/Файл: " -#: cmdline/apt-cache.cc:300 +#: cmdline/apt-cache.cc:302 #, fuzzy msgid "Total Desc/File relations: " msgstr "Всього відносин Версія/Файл: " -#: cmdline/apt-cache.cc:302 +#: cmdline/apt-cache.cc:304 msgid "Total Provides mappings: " msgstr "Всього відносин Provides: " -#: cmdline/apt-cache.cc:314 +#: cmdline/apt-cache.cc:316 msgid "Total globbed strings: " msgstr "Всього розгорнутих рядків: " -#: cmdline/apt-cache.cc:328 +#: cmdline/apt-cache.cc:330 msgid "Total dependency version space: " msgstr "Всього інформації про залежності: " -#: cmdline/apt-cache.cc:333 +#: cmdline/apt-cache.cc:335 msgid "Total slack space: " msgstr "Порожнього місця в кеші: " -#: cmdline/apt-cache.cc:341 +#: cmdline/apt-cache.cc:343 msgid "Total space accounted for: " msgstr "Загальний простір полічений для: " -#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1222 +#: 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:1297 +#: cmdline/apt-cache.cc:1293 msgid "You must give exactly one pattern" msgstr "Ви повинні задати рівно один шаблон" -#: cmdline/apt-cache.cc:1451 +#: cmdline/apt-cache.cc:1447 msgid "No packages found" msgstr "Не знайдено жодного пакунка" -#: cmdline/apt-cache.cc:1528 +#: cmdline/apt-cache.cc:1524 msgid "Package files:" msgstr "Переліки пакунків:" -#: cmdline/apt-cache.cc:1535 cmdline/apt-cache.cc:1622 +#: 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:1549 +#: cmdline/apt-cache.cc:1544 msgid "Pinned packages:" msgstr "Зафіксовані пакунки:" -#: cmdline/apt-cache.cc:1561 cmdline/apt-cache.cc:1602 +#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 msgid "(not found)" msgstr "(не знайдено)" #. Installed version -#: cmdline/apt-cache.cc:1582 +#: cmdline/apt-cache.cc:1577 msgid " Installed: " msgstr " Встановлено: " -#: cmdline/apt-cache.cc:1584 cmdline/apt-cache.cc:1592 +#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 msgid "(none)" msgstr "(відсутній)" #. Candidate Version -#: cmdline/apt-cache.cc:1589 +#: cmdline/apt-cache.cc:1584 msgid " Candidate: " msgstr " Кандидат: " -#: cmdline/apt-cache.cc:1599 +#: cmdline/apt-cache.cc:1594 msgid " Package pin: " msgstr " Фіксатор(pin) пакунка: " #. Show the priority tables -#: cmdline/apt-cache.cc:1608 +#: cmdline/apt-cache.cc:1603 msgid " Version table:" msgstr " Таблиця версій:" -#: cmdline/apt-cache.cc:1623 +#: cmdline/apt-cache.cc:1618 #, c-format msgid " %4i %s\n" msgstr " %4i %s\n" -#: cmdline/apt-cache.cc:1719 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: 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:2586 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2582 cmdline/apt-sortpkgs.cc:144 #, fuzzy, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s для %s %s скомпільовано %s %s\n" -#: cmdline/apt-cache.cc:1726 +#: cmdline/apt-cache.cc:1721 #, fuzzy msgid "" "Usage: apt-cache [options] command\n" @@ -655,79 +660,79 @@ msgstr "Не вдалося видалити %s" msgid "Failed to rename %s to %s" msgstr "Не вдалося перейменувати %s в %s" -#: cmdline/apt-get.cc:127 +#: cmdline/apt-get.cc:124 msgid "Y" msgstr "Т" -#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1661 +#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1658 #, c-format msgid "Regex compilation error - %s" msgstr "Помилка компіляції регулярного виразу - %s" -#: cmdline/apt-get.cc:244 +#: cmdline/apt-get.cc:241 msgid "The following packages have unmet dependencies:" msgstr "Пакунки, що мають незадоволені залежності:" -#: cmdline/apt-get.cc:334 +#: cmdline/apt-get.cc:331 #, c-format msgid "but %s is installed" msgstr "але %s вже встановлений" -#: cmdline/apt-get.cc:336 +#: cmdline/apt-get.cc:333 #, c-format msgid "but %s is to be installed" msgstr "але %s буде встановлений" -#: cmdline/apt-get.cc:343 +#: cmdline/apt-get.cc:340 msgid "but it is not installable" msgstr "але він не може бути встановлений" -#: cmdline/apt-get.cc:345 +#: cmdline/apt-get.cc:342 msgid "but it is a virtual package" msgstr "але це віртуальний пакунок" -#: cmdline/apt-get.cc:348 +#: cmdline/apt-get.cc:345 msgid "but it is not installed" msgstr "але він не встановлений" -#: cmdline/apt-get.cc:348 +#: cmdline/apt-get.cc:345 msgid "but it is not going to be installed" msgstr "але він не буде встановлений" -#: cmdline/apt-get.cc:353 +#: cmdline/apt-get.cc:350 msgid " or" msgstr " чи" -#: cmdline/apt-get.cc:382 +#: cmdline/apt-get.cc:379 msgid "The following NEW packages will be installed:" msgstr "НОВІ пакунки, які будуть встановлені:" -#: cmdline/apt-get.cc:408 +#: cmdline/apt-get.cc:405 msgid "The following packages will be REMOVED:" msgstr "Пакунки, які будуть ВИДАЛЕНІ:" -#: cmdline/apt-get.cc:430 +#: cmdline/apt-get.cc:427 msgid "The following packages have been kept back:" msgstr "Пакунки, які будуть залишені в незмінному вигляді:" -#: cmdline/apt-get.cc:451 +#: cmdline/apt-get.cc:448 msgid "The following packages will be upgraded:" msgstr "Пакунки, які будуть ОНОВЛЕНІ:" -#: cmdline/apt-get.cc:472 +#: cmdline/apt-get.cc:469 msgid "The following packages will be DOWNGRADED:" msgstr "Пакунки, будуть замінені на більш СТАРІ версії:" -#: cmdline/apt-get.cc:492 +#: cmdline/apt-get.cc:489 msgid "The following held packages will be changed:" msgstr "Пакунки, які повинні були б залишитися без змін, але будуть замінені:" -#: cmdline/apt-get.cc:545 +#: cmdline/apt-get.cc:542 #, c-format msgid "%s (due to %s) " msgstr "%s (внаслідок %s) " -#: cmdline/apt-get.cc:553 +#: cmdline/apt-get.cc:550 msgid "" "WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" @@ -735,150 +740,150 @@ msgstr "" "УВАГА: Ці істотно важливі пакунки будуть вилучені.\n" "НЕ РОБІТЬ цього, якщо ви НЕ уявляєте собі всі можливі наслідки!" -#: cmdline/apt-get.cc:584 +#: cmdline/apt-get.cc:581 #, c-format msgid "%lu upgraded, %lu newly installed, " msgstr "оновлено %lu, встановлено %lu нових пакунків, " -#: cmdline/apt-get.cc:588 +#: cmdline/apt-get.cc:585 #, c-format msgid "%lu reinstalled, " msgstr " %lu перевстановлено, " -#: cmdline/apt-get.cc:590 +#: cmdline/apt-get.cc:587 #, c-format msgid "%lu downgraded, " msgstr "%lu пакунків замінено на старі версії, " -#: cmdline/apt-get.cc:592 +#: cmdline/apt-get.cc:589 #, c-format msgid "%lu to remove and %lu not upgraded.\n" msgstr "для видалення відмічено %lu пакунків, і %lu пакунків не оновлено.\n" -#: cmdline/apt-get.cc:596 +#: cmdline/apt-get.cc:593 #, c-format msgid "%lu not fully installed or removed.\n" msgstr "не встановлено до кінця чи видалено %lu пакунків.\n" -#: cmdline/apt-get.cc:670 +#: cmdline/apt-get.cc:667 msgid "Correcting dependencies..." msgstr "Виправлення залежностей..." -#: cmdline/apt-get.cc:673 +#: cmdline/apt-get.cc:670 msgid " failed." msgstr " невдача." -#: cmdline/apt-get.cc:676 +#: cmdline/apt-get.cc:673 msgid "Unable to correct dependencies" msgstr "Неможливо скоригувати залежності" -#: cmdline/apt-get.cc:679 +#: cmdline/apt-get.cc:676 msgid "Unable to minimize the upgrade set" msgstr "Неможливо мінімізувати набір оновлень" -#: cmdline/apt-get.cc:681 +#: cmdline/apt-get.cc:678 msgid " Done" msgstr " Виконано" -#: cmdline/apt-get.cc:685 +#: cmdline/apt-get.cc:682 msgid "You might want to run `apt-get -f install' to correct these." msgstr "" "Можливо, для виправлення цих помилок ви захочете скористатися 'apt-get -f " "install'." -#: cmdline/apt-get.cc:688 +#: cmdline/apt-get.cc:685 msgid "Unmet dependencies. Try using -f." msgstr "Незадоволені залежності. Спробуйте використати -f." -#: cmdline/apt-get.cc:710 +#: cmdline/apt-get.cc:707 msgid "WARNING: The following packages cannot be authenticated!" msgstr "УВАГА: Наступні пакунки неможливо автентифікувати!" -#: cmdline/apt-get.cc:714 +#: cmdline/apt-get.cc:711 msgid "Authentication warning overridden.\n" msgstr "Автентифікаційне попередження не прийнято до уваги.\n" -#: cmdline/apt-get.cc:721 +#: cmdline/apt-get.cc:718 msgid "Install these packages without verification [y/N]? " msgstr "Встановити ці пакунки без перевірки [т/Н]? " -#: cmdline/apt-get.cc:723 +#: cmdline/apt-get.cc:720 msgid "Some packages could not be authenticated" msgstr "Деякі пакунки неможливо автентифікувати" -#: cmdline/apt-get.cc:732 cmdline/apt-get.cc:884 +#: cmdline/apt-get.cc:729 cmdline/apt-get.cc:881 msgid "There are problems and -y was used without --force-yes" msgstr "Існують проблеми, а опція -y використана без --force-yes" -#: cmdline/apt-get.cc:776 +#: cmdline/apt-get.cc:773 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "" "Внутрішня помилка, InstallPackages була викликана з непрацездатними " "пакунками!" -#: cmdline/apt-get.cc:785 +#: cmdline/apt-get.cc:782 msgid "Packages need to be removed but remove is disabled." msgstr "Пакунки необхідно видалити, але видалення заборонене." -#: cmdline/apt-get.cc:796 +#: cmdline/apt-get.cc:793 msgid "Internal error, Ordering didn't finish" msgstr "Внутрішня помилка, Ordering не завершилася" -#: cmdline/apt-get.cc:812 cmdline/apt-get.cc:2003 cmdline/apt-get.cc:2036 +#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032 msgid "Unable to lock the download directory" msgstr "Неможливо заблокувати теку для завантаження" -#: cmdline/apt-get.cc:822 cmdline/apt-get.cc:2084 cmdline/apt-get.cc:2330 +#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2326 #: apt-pkg/cachefile.cc:65 msgid "The list of sources could not be read." msgstr "Неможливо прочитати перелік джерел." -#: cmdline/apt-get.cc:837 +#: cmdline/apt-get.cc:834 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "Дивно.. Розбіжність розмірів, напишіть на apt@packages.debian.org" -#: cmdline/apt-get.cc:842 +#: cmdline/apt-get.cc:839 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "Необхідно завантажити %sB/%sB архівів.\n" -#: cmdline/apt-get.cc:845 +#: cmdline/apt-get.cc:842 #, c-format msgid "Need to get %sB of archives.\n" msgstr "Необхідно завантажити %sB архівів.\n" -#: cmdline/apt-get.cc:850 +#: cmdline/apt-get.cc:847 #, fuzzy, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "Після розпакування об'єм зайнятого дискового простору зросте на %sB.\n" -#: cmdline/apt-get.cc:853 +#: cmdline/apt-get.cc:850 #, fuzzy, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "" "Після розпакування об'єм зайнятого дискового простору зменшиться на %sB.\n" -#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:2179 +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2175 #, c-format msgid "Couldn't determine free space in %s" msgstr "Не вдалося визначити кількість вільного місця в %s" -#: cmdline/apt-get.cc:874 +#: cmdline/apt-get.cc:871 #, c-format msgid "You don't have enough free space in %s." msgstr "Недостатньо вільного місця в %s." -#: cmdline/apt-get.cc:890 cmdline/apt-get.cc:910 +#: cmdline/apt-get.cc:887 cmdline/apt-get.cc:907 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" "Запитане виконання тільки тривіальних операцій, але це не тривіальна " "операція." -#: cmdline/apt-get.cc:892 +#: cmdline/apt-get.cc:889 msgid "Yes, do as I say!" msgstr "Так, робити, як я скажу!" -#: cmdline/apt-get.cc:894 +#: cmdline/apt-get.cc:891 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -889,28 +894,28 @@ msgstr "" "Щоб продовжити, введіть фразу: '%s'\n" " ?] " -#: cmdline/apt-get.cc:900 cmdline/apt-get.cc:919 +#: cmdline/apt-get.cc:897 cmdline/apt-get.cc:916 msgid "Abort." msgstr "Перервано." -#: cmdline/apt-get.cc:915 +#: cmdline/apt-get.cc:912 msgid "Do you want to continue [Y/n]? " msgstr "Бажаєте продовжити [Т/н]? " -#: cmdline/apt-get.cc:987 cmdline/apt-get.cc:2227 apt-pkg/algorithms.cc:1407 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Не вдалося завантажити %s %s\n" -#: cmdline/apt-get.cc:1005 +#: cmdline/apt-get.cc:1002 msgid "Some files failed to download" msgstr "Деякі файли не вдалося завантажити" -#: cmdline/apt-get.cc:1006 cmdline/apt-get.cc:2236 +#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2232 msgid "Download complete and in download only mode" msgstr "Вказано режим \"тільки завантаження\", і завантаження завершено" -#: cmdline/apt-get.cc:1012 +#: cmdline/apt-get.cc:1009 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" @@ -918,49 +923,49 @@ msgstr "" "Неможливо завантажити деякі архіви, імовірно треба виконати apt-get update " "або спробувати повторити запуск з ключем --fix-missing?" -#: cmdline/apt-get.cc:1016 +#: cmdline/apt-get.cc:1013 msgid "--fix-missing and media swapping is not currently supported" msgstr "--fix-missing і зміна носія в даний момент не підтримується" -#: cmdline/apt-get.cc:1021 +#: cmdline/apt-get.cc:1018 msgid "Unable to correct missing packages." msgstr "Неможливо виправити втрачені пакунки." -#: cmdline/apt-get.cc:1022 +#: cmdline/apt-get.cc:1019 msgid "Aborting install." msgstr "Переривається встановлення." -#: cmdline/apt-get.cc:1056 +#: cmdline/apt-get.cc:1053 #, c-format msgid "Note, selecting %s instead of %s\n" msgstr "Помітьте, замість %2$s вибирається %1$s\n" -#: cmdline/apt-get.cc:1066 +#: cmdline/apt-get.cc:1063 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "" "Пропускається %s - пакунок вже встановлений, і опція upgrade не " "встановлена.\n" -#: cmdline/apt-get.cc:1084 +#: cmdline/apt-get.cc:1081 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "Пакунок %s не встановлений, тому не може бути видалений\n" -#: cmdline/apt-get.cc:1095 +#: cmdline/apt-get.cc:1092 #, c-format msgid "Package %s is a virtual package provided by:\n" msgstr "Пакунок %s - віртуальний, його функції надаються пакунками:\n" -#: cmdline/apt-get.cc:1107 +#: cmdline/apt-get.cc:1104 msgid " [Installed]" msgstr " [Встановлено]" -#: cmdline/apt-get.cc:1112 +#: cmdline/apt-get.cc:1109 msgid "You should explicitly select one to install." msgstr "Ви повинні явно вказати, який саме ви хочете встановити." -#: cmdline/apt-get.cc:1117 +#: cmdline/apt-get.cc:1114 #, c-format msgid "" "Package %s is not available, but is referred to by another package.\n" @@ -972,69 +977,69 @@ msgstr "" "Це може означати, що пакунок відсутній, застарів, або доступний з джерел, не " "згаданих в sources.list\n" -#: cmdline/apt-get.cc:1136 +#: cmdline/apt-get.cc:1133 msgid "However the following packages replace it:" msgstr "Однак наступні пакунки можуть його замінити:" -#: cmdline/apt-get.cc:1139 +#: cmdline/apt-get.cc:1136 #, c-format msgid "Package %s has no installation candidate" msgstr "Для пакунка %s не знайдені кандидати на встановлення" -#: cmdline/apt-get.cc:1159 +#: cmdline/apt-get.cc:1156 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" msgstr "Перевстановлення %s неможливе, бо він не може бути завантаженим.\n" -#: cmdline/apt-get.cc:1167 +#: cmdline/apt-get.cc:1164 #, c-format msgid "%s is already the newest version.\n" msgstr "Вже встановлена найновіша версія %s.\n" -#: cmdline/apt-get.cc:1196 +#: cmdline/apt-get.cc:1193 #, c-format msgid "Release '%s' for '%s' was not found" msgstr "Реліз '%s' для '%s' не знайдений" -#: cmdline/apt-get.cc:1198 +#: cmdline/apt-get.cc:1195 #, c-format msgid "Version '%s' for '%s' was not found" msgstr "Версія '%s' для '%s' не знайдена" -#: cmdline/apt-get.cc:1204 +#: cmdline/apt-get.cc:1201 #, c-format msgid "Selected version %s (%s) for %s\n" msgstr "Обрана версія %s (%s) для %s\n" -#: cmdline/apt-get.cc:1310 +#: cmdline/apt-get.cc:1307 #, c-format msgid "No source package '%s' picking '%s' instead\n" msgstr "" -#: cmdline/apt-get.cc:1348 +#: cmdline/apt-get.cc:1345 msgid "The update command takes no arguments" msgstr "Команді update не потрібні аргументи" -#: cmdline/apt-get.cc:1361 +#: cmdline/apt-get.cc:1358 msgid "Unable to lock the list directory" msgstr "Неможливо заблокувати теку з переліками пакунків" -#: cmdline/apt-get.cc:1413 +#: cmdline/apt-get.cc:1410 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1445 +#: cmdline/apt-get.cc:1442 #, fuzzy msgid "" "The following packages were automatically installed and are no longer " "required:" msgstr "НОВІ пакунки були встановлені автоматично і більше не потрібні:" -#: cmdline/apt-get.cc:1447 +#: cmdline/apt-get.cc:1444 msgid "Use 'apt-get autoremove' to remove them." msgstr "Використовуйте 'apt-get autoremove' щоб видалити їх." -#: cmdline/apt-get.cc:1452 +#: cmdline/apt-get.cc:1449 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -1052,46 +1057,46 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1455 cmdline/apt-get.cc:1745 +#: cmdline/apt-get.cc:1452 cmdline/apt-get.cc:1742 msgid "The following information may help to resolve the situation:" msgstr "Наступна інформація можливо допоможе Вам:" -#: cmdline/apt-get.cc:1459 +#: cmdline/apt-get.cc:1456 #, fuzzy msgid "Internal Error, AutoRemover broke stuff" msgstr "Внутрішня помилка, вирішувач проблем все поламав" -#: cmdline/apt-get.cc:1478 +#: cmdline/apt-get.cc:1475 msgid "Internal error, AllUpgrade broke stuff" msgstr "Внутрішня помилка, AllUpgrade все поламав" -#: cmdline/apt-get.cc:1533 +#: cmdline/apt-get.cc:1530 #, fuzzy, c-format msgid "Couldn't find task %s" msgstr "Не можу знайти пакунок %s" -#: cmdline/apt-get.cc:1648 cmdline/apt-get.cc:1684 +#: cmdline/apt-get.cc:1645 cmdline/apt-get.cc:1681 #, c-format msgid "Couldn't find package %s" msgstr "Не можу знайти пакунок %s" -#: cmdline/apt-get.cc:1671 +#: cmdline/apt-get.cc:1668 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "Помітьте, регулярний вираз %2$s призводить до вибору %1$s\n" -#: cmdline/apt-get.cc:1702 +#: cmdline/apt-get.cc:1699 #, fuzzy, c-format msgid "%s set to manually installed.\n" msgstr "але %s буде встановлений" -#: cmdline/apt-get.cc:1715 +#: cmdline/apt-get.cc:1712 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" "Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f " "install':" -#: cmdline/apt-get.cc:1718 +#: cmdline/apt-get.cc:1715 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." @@ -1099,7 +1104,7 @@ msgstr "" "Незадоволені залежності. Спробуйте виконати 'apt-get -f install', не " "вказуючи імені пакунка (або знайдіть інше рішення)." -#: cmdline/apt-get.cc:1730 +#: cmdline/apt-get.cc:1727 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" @@ -1110,121 +1115,121 @@ msgstr "" "або ж використаєте нестабільний дистрибутив, і запитані Вами пакунки\n" "ще не створені або були вилучені з Incoming." -#: cmdline/apt-get.cc:1748 +#: cmdline/apt-get.cc:1745 msgid "Broken packages" msgstr "Зламані пакунки" -#: cmdline/apt-get.cc:1777 +#: cmdline/apt-get.cc:1774 msgid "The following extra packages will be installed:" msgstr "Будуть встановлені наступні додаткові пакунки:" -#: cmdline/apt-get.cc:1866 +#: cmdline/apt-get.cc:1863 msgid "Suggested packages:" msgstr "Пропоновані пакунки:" -#: cmdline/apt-get.cc:1867 +#: cmdline/apt-get.cc:1864 msgid "Recommended packages:" msgstr "Рекомендовані пакунки:" -#: cmdline/apt-get.cc:1896 +#: cmdline/apt-get.cc:1892 msgid "Calculating upgrade... " msgstr "Обчислення оновлень... " -#: cmdline/apt-get.cc:1899 methods/ftp.cc:702 methods/connect.cc:112 +#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:112 msgid "Failed" msgstr "Невдача" -#: cmdline/apt-get.cc:1904 +#: cmdline/apt-get.cc:1900 msgid "Done" msgstr "Виконано" -#: cmdline/apt-get.cc:1971 cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975 msgid "Internal error, problem resolver broke stuff" msgstr "Внутрішня помилка, вирішувач проблем все поламав" -#: cmdline/apt-get.cc:2079 +#: cmdline/apt-get.cc:2075 msgid "Must specify at least one package to fetch source for" msgstr "" "Вкажіть як мінімум один пакунок, для якого необхідно завантажити вихідні " "тексти" -#: cmdline/apt-get.cc:2109 cmdline/apt-get.cc:2348 +#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2344 #, c-format msgid "Unable to find a source package for %s" msgstr "Неможливо знайти пакунок з вихідними текстами для %s" -#: cmdline/apt-get.cc:2158 +#: cmdline/apt-get.cc:2154 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Пропускаємо вже завантажений файл '%s'\n" -#: cmdline/apt-get.cc:2186 +#: cmdline/apt-get.cc:2182 #, c-format msgid "You don't have enough free space in %s" msgstr "Недостатньо місця в %s" -#: cmdline/apt-get.cc:2192 +#: cmdline/apt-get.cc:2188 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Необхідно завантажити %sB/%sB з архівів вихідних текстів.\n" -#: cmdline/apt-get.cc:2195 +#: cmdline/apt-get.cc:2191 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Потрібно завантажити %sB архівів з вихідними текстами.\n" -#: cmdline/apt-get.cc:2201 +#: cmdline/apt-get.cc:2197 #, c-format msgid "Fetch source %s\n" msgstr "Завантаження вихідних текстів %s\n" -#: cmdline/apt-get.cc:2232 +#: cmdline/apt-get.cc:2228 msgid "Failed to fetch some archives." msgstr "Деякі архіви не вдалося завантажити." -#: cmdline/apt-get.cc:2260 +#: cmdline/apt-get.cc:2256 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" "Розпакування вихідних текстів пропущено, тому що в %s вже перебувають " "розпаковані вихідні тексти\n" -#: cmdline/apt-get.cc:2272 +#: cmdline/apt-get.cc:2268 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Команда розпакування '%s' завершилася невдало.\n" -#: cmdline/apt-get.cc:2273 +#: cmdline/apt-get.cc:2269 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Перевірте, чи встановлений пакунок 'dpkg-dev'.\n" -#: cmdline/apt-get.cc:2290 +#: cmdline/apt-get.cc:2286 #, c-format msgid "Build command '%s' failed.\n" msgstr "Команда побудови '%s' закінчилася невдало.\n" -#: cmdline/apt-get.cc:2309 +#: cmdline/apt-get.cc:2305 msgid "Child process failed" msgstr "Породжений процес завершився невдало" -#: cmdline/apt-get.cc:2325 +#: cmdline/apt-get.cc:2321 msgid "Must specify at least one package to check builddeps for" msgstr "" "Для перевірки залежностей для побудови необхідно вказати як мінімум один " "пакунок" -#: cmdline/apt-get.cc:2353 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Неможливо одержати інформацію про залежності для побудови %s" -#: cmdline/apt-get.cc:2373 +#: cmdline/apt-get.cc:2369 #, c-format msgid "%s has no build depends.\n" msgstr "%s не має залежностей для побудови.\n" -#: cmdline/apt-get.cc:2425 +#: cmdline/apt-get.cc:2421 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1232,7 +1237,7 @@ msgid "" msgstr "" "Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено" -#: cmdline/apt-get.cc:2478 +#: cmdline/apt-get.cc:2474 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1241,32 +1246,32 @@ msgstr "" "Залежність типу %s для %s не може бути задоволена, бо ні одна з версій " "пакунка %s не задовольняє умови" -#: cmdline/apt-get.cc:2514 +#: cmdline/apt-get.cc:2510 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений " "пакунок %s новіше, аніж треба" -#: cmdline/apt-get.cc:2541 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Неможливо задовольнити залежність типу %s для пакунка %s: %s" -#: cmdline/apt-get.cc:2555 +#: cmdline/apt-get.cc:2551 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Залежності для побудови %s не можуть бути задоволені." -#: cmdline/apt-get.cc:2559 +#: cmdline/apt-get.cc:2555 msgid "Failed to process build dependencies" msgstr "Обробка залежностей для побудови закінчилася невдало" -#: cmdline/apt-get.cc:2591 +#: cmdline/apt-get.cc:2587 msgid "Supported modules:" msgstr "Підтримувані модулі:" -#: cmdline/apt-get.cc:2632 +#: cmdline/apt-get.cc:2628 #, fuzzy msgid "" "Usage: apt-get [options] command\n" @@ -1353,14 +1358,6 @@ msgstr "" "містять більше інформації.\n" " This APT has Super Cow Powers.\n" -#: cmdline/apt-get.cc:2799 -msgid "" -"NOTE: This is only a simulation!\n" -" apt-get needs root privileges for real execution.\n" -" Keep also in mind that locking is deactivated,\n" -" so don't depend on the relevance to the real current situation!" -msgstr "" - #: cmdline/acqprogress.cc:55 msgid "Hit " msgstr "В кеші " @@ -1595,9 +1592,9 @@ msgstr "Файли заміняються вмістом пакета %s без 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:822 +#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:821 #: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 -#: apt-pkg/acquire.cc:419 apt-pkg/clean.cc:34 apt-pkg/policy.cc:268 +#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 #, c-format msgid "Unable to read %s" msgstr "Неможливо прочитати %s" @@ -1832,7 +1829,7 @@ msgstr "Час з'єднання вичерпався" msgid "Server closed the connection" msgstr "Сервер закрив з'єднання" -#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 +#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:538 methods/rsh.cc:190 msgid "Read error" msgstr "Помилка читання" @@ -1844,7 +1841,7 @@ msgstr "Відповідь переповнила буфер." msgid "Protocol corruption" msgstr "Спотворений протокол" -#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 +#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:577 methods/rsh.cc:232 msgid "Write error" msgstr "Помилка запису" @@ -2156,7 +2153,7 @@ msgstr "" msgid "%lis" msgstr "" -#: apt-pkg/contrib/strutl.cc:1029 +#: apt-pkg/contrib/strutl.cc:1018 #, c-format msgid "Selection %s not found" msgstr "Вибір %s не знайдено" @@ -2171,44 +2168,44 @@ msgstr "Нерозпізнаваний тип абревіатури: '%c'" msgid "Opening configuration file %s" msgstr "Відкривається конфігураційний файл %s" -#: apt-pkg/contrib/configuration.cc:663 +#: apt-pkg/contrib/configuration.cc:662 #, c-format msgid "Syntax error %s:%u: Block starts with no name." msgstr "Синтаксова помилка %s:%u: Блок починається без назви." -#: apt-pkg/contrib/configuration.cc:682 +#: apt-pkg/contrib/configuration.cc:681 #, c-format msgid "Syntax error %s:%u: Malformed tag" msgstr "Синтаксова помилка %s:%u: спотворений тег" -#: apt-pkg/contrib/configuration.cc:699 +#: apt-pkg/contrib/configuration.cc:698 #, c-format msgid "Syntax error %s:%u: Extra junk after value" msgstr "Синтаксова помилка %s:%u: зайві символи після величини" -#: apt-pkg/contrib/configuration.cc:739 +#: apt-pkg/contrib/configuration.cc:738 #, 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:746 +#: apt-pkg/contrib/configuration.cc:745 #, c-format msgid "Syntax error %s:%u: Too many nested includes" msgstr "Синтаксова помилка %s:%u: Забагато вмонтованих включень" -#: apt-pkg/contrib/configuration.cc:750 apt-pkg/contrib/configuration.cc:755 +#: apt-pkg/contrib/configuration.cc:749 apt-pkg/contrib/configuration.cc:754 #, c-format msgid "Syntax error %s:%u: Included from here" msgstr "Синтаксова помилка %s:%u: Включена звідси" -#: apt-pkg/contrib/configuration.cc:759 +#: apt-pkg/contrib/configuration.cc:758 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" msgstr "Синтаксова помилка %s:%u: Директива '%s' не підтримується" -#: apt-pkg/contrib/configuration.cc:810 +#: apt-pkg/contrib/configuration.cc:809 #, c-format msgid "Syntax error %s:%u: Extra junk at end of file" msgstr "Синтаксова помилка %s:%u: зайві символи в кінці файла" @@ -2275,7 +2272,7 @@ msgid "Unable to stat the mount point %s" msgstr "Неможливо прочитати атрибути точки монтування %s" #: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/contrib/cdromutl.cc:180 -#: apt-pkg/acquire.cc:425 apt-pkg/acquire.cc:450 apt-pkg/clean.cc:40 +#: apt-pkg/acquire.cc:424 apt-pkg/acquire.cc:449 apt-pkg/clean.cc:40 #, c-format msgid "Unable to change to %s" msgstr "Неможливо зробити зміни у %s" @@ -2313,155 +2310,145 @@ msgstr "Не можливо отримати lock %s" msgid "Waited for %s but it wasn't there" msgstr "Очікується на %s але його тут немає" -#: apt-pkg/contrib/fileutl.cc:455 +#: apt-pkg/contrib/fileutl.cc:454 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "Підпроцес %s отримав segmentation fault." #: apt-pkg/contrib/fileutl.cc:457 -#, fuzzy, c-format -#| msgid "Sub-process %s received a segmentation fault." -msgid "Sub-process %s received signal %u." -msgstr "Підпроцес %s отримав segmentation fault." - -#: apt-pkg/contrib/fileutl.cc:460 #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "Підпроцес %s повернув код помилки (%u)" -#: apt-pkg/contrib/fileutl.cc:462 +#: apt-pkg/contrib/fileutl.cc:459 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "Підпроцес %s раптово завершився" -#: apt-pkg/contrib/fileutl.cc:506 +#: apt-pkg/contrib/fileutl.cc:503 #, c-format msgid "Could not open file %s" msgstr "Не можливо відкрити файл %s" -#: apt-pkg/contrib/fileutl.cc:562 +#: apt-pkg/contrib/fileutl.cc:559 #, c-format msgid "read, still have %lu to read but none left" msgstr "" "помилка при читанні. мали прочитати ще %lu байт, але нічого більше нема" -#: apt-pkg/contrib/fileutl.cc:592 +#: apt-pkg/contrib/fileutl.cc:589 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "помилка при записі, мали прочитати ще %lu байт, але не змогли" -#: apt-pkg/contrib/fileutl.cc:667 +#: apt-pkg/contrib/fileutl.cc:664 msgid "Problem closing the file" msgstr "Проблема з закриттям файла" -#: apt-pkg/contrib/fileutl.cc:673 +#: apt-pkg/contrib/fileutl.cc:670 msgid "Problem unlinking the file" msgstr "Проблема з роз'єднанням файла" -#: apt-pkg/contrib/fileutl.cc:684 +#: apt-pkg/contrib/fileutl.cc:681 msgid "Problem syncing the file" msgstr "Проблема з синхронізацією файла" -#: apt-pkg/pkgcache.cc:133 +#: apt-pkg/pkgcache.cc:132 msgid "Empty package cache" msgstr "Кеш пакунків пустий" -#: apt-pkg/pkgcache.cc:139 +#: apt-pkg/pkgcache.cc:138 msgid "The package cache file is corrupted" msgstr "Файл кешу пакунків пошкоджений" -#: apt-pkg/pkgcache.cc:144 +#: apt-pkg/pkgcache.cc:143 msgid "The package cache file is an incompatible version" msgstr "Файл кешу пакунків має несумісну версію" -#: apt-pkg/pkgcache.cc:149 +#: apt-pkg/pkgcache.cc:148 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "APT не підтримує систему призначення версій '%s'" -#: apt-pkg/pkgcache.cc:154 +#: apt-pkg/pkgcache.cc:153 msgid "The package cache was built for a different architecture" msgstr "Кеш пакунків був побудований для іншої архітектури" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "Depends" msgstr "Залежності (Depends)" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "PreDepends" msgstr "Пре-Залежності (PreDepends)" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:224 msgid "Suggests" msgstr "Пропонує (Suggests)" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Recommends" msgstr "Рекомендує" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Conflicts" msgstr "Конфлікти" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:225 msgid "Replaces" msgstr "Заміняє (Replaces)" -#: apt-pkg/pkgcache.cc:227 +#: apt-pkg/pkgcache.cc:226 msgid "Obsoletes" msgstr "Застарілі (Obsoletes)" -#: apt-pkg/pkgcache.cc:227 +#: apt-pkg/pkgcache.cc:226 msgid "Breaks" msgstr "" -#: apt-pkg/pkgcache.cc:227 -msgid "Enhances" -msgstr "" - -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "important" msgstr "Важливі (Important)" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "required" msgstr "Необхідні (Required)" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:237 msgid "standard" msgstr "Стандартні (Standard)" -#: apt-pkg/pkgcache.cc:239 +#: apt-pkg/pkgcache.cc:238 msgid "optional" msgstr "Необов'язкові (Optional)" -#: apt-pkg/pkgcache.cc:239 +#: apt-pkg/pkgcache.cc:238 msgid "extra" msgstr "Додаткові (Extra)" -#: apt-pkg/depcache.cc:123 apt-pkg/depcache.cc:152 +#: apt-pkg/depcache.cc:121 apt-pkg/depcache.cc:150 msgid "Building dependency tree" msgstr "Побудова дерева залежностей" -#: apt-pkg/depcache.cc:124 +#: apt-pkg/depcache.cc:122 msgid "Candidate versions" msgstr "Версії кандидатів" -#: apt-pkg/depcache.cc:153 +#: apt-pkg/depcache.cc:151 msgid "Dependency generation" msgstr "Ґенерація залежностей" -#: apt-pkg/depcache.cc:174 apt-pkg/depcache.cc:193 apt-pkg/depcache.cc:197 +#: apt-pkg/depcache.cc:172 apt-pkg/depcache.cc:191 apt-pkg/depcache.cc:195 #, fuzzy msgid "Reading state information" msgstr "Об'єднання інформації про доступні пакунки" -#: apt-pkg/depcache.cc:221 +#: apt-pkg/depcache.cc:219 #, fuzzy, c-format msgid "Failed to open StateFile %s" msgstr "Не вдалося відкрити %s" -#: apt-pkg/depcache.cc:227 +#: apt-pkg/depcache.cc:225 #, fuzzy, c-format msgid "Failed to write temporary StateFile %s" msgstr "Не вдалося записати файл %s" @@ -2552,7 +2539,7 @@ msgstr "" "Пакунок %s повинен бути перевстановленим, але я не можу знайти архіву для " "нього." -#: apt-pkg/algorithms.cc:1154 +#: apt-pkg/algorithms.cc:1107 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." @@ -2560,11 +2547,11 @@ msgstr "" "Помилка, pkgProblemResolver::Resolve згенерував зупинку, це може бути " "пов'язано з зафіксованими пакунками." -#: apt-pkg/algorithms.cc:1156 +#: apt-pkg/algorithms.cc:1109 msgid "Unable to correct problems, you have held broken packages." msgstr "Неможливо усунути проблеми, Ви маєте поламані зафіксовані пакунки." -#: apt-pkg/algorithms.cc:1433 apt-pkg/algorithms.cc:1435 +#: apt-pkg/algorithms.cc:1375 apt-pkg/algorithms.cc:1377 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." @@ -2572,24 +2559,24 @@ msgstr "" "Деякі індексні файли не завантажилися, вони були зігноровані або замість них " "були використані старі версії." -#: apt-pkg/acquire.cc:60 +#: apt-pkg/acquire.cc:59 #, c-format msgid "Lists directory %spartial is missing." msgstr "Lists тека %spartial відсутня." -#: apt-pkg/acquire.cc:64 +#: 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:829 +#: apt-pkg/acquire.cc:828 #, fuzzy, c-format msgid "Retrieving file %li of %li (%s remaining)" msgstr "Завантажується файл %li з %li (%s залишилось)" -#: apt-pkg/acquire.cc:831 +#: apt-pkg/acquire.cc:830 #, fuzzy, c-format msgid "Retrieving file %li of %li" msgstr "Завантажується файл %li з %li" @@ -2610,12 +2597,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" "Будь-ласка, вставте диск з поміткою: '%s' в CD привід '%s' і натисніть Enter." -#: apt-pkg/init.cc:125 +#: apt-pkg/init.cc:124 #, c-format msgid "Packaging system '%s' is not supported" msgstr "Система пакування '%s' не підтримується" -#: apt-pkg/init.cc:141 +#: apt-pkg/init.cc:140 msgid "Unable to determine a suitable packaging system type" msgstr "Неможливо визначити тип необхідної системи пакування " @@ -2636,18 +2623,16 @@ msgstr "Не можу обробити чи відкрити перелік па msgid "You may want to run apt-get update to correct these problems" msgstr "Можливо, для виправлення цих помилок Ви захочете запустити apt-get" -#: apt-pkg/policy.cc:329 -#, fuzzy, c-format -#| msgid "Invalid record in the preferences file, no Package header" -msgid "Invalid record in the preferences file %s, no Package header" +#: apt-pkg/policy.cc:267 +msgid "Invalid record in the preferences file, no Package header" msgstr "Невірний запис в preferences файлі, відсутній заголовок Package" -#: apt-pkg/policy.cc:351 +#: apt-pkg/policy.cc:289 #, c-format msgid "Did not understand pin type %s" msgstr "Не зрозумів тип %s для pin" -#: apt-pkg/policy.cc:359 +#: apt-pkg/policy.cc:297 msgid "No priority (or zero) specified for pin" msgstr "Не встановлено пріоритету (або встановлено 0) для pin" @@ -2794,23 +2779,6 @@ msgstr "" msgid "Size mismatch" msgstr "Невідповідність розміру" -#: apt-pkg/indexrecords.cc:40 -#, fuzzy, c-format -#| msgid "Unable to parse package file %s (1)" -msgid "Unable to parse Release file %s" -msgstr "Неможливо обробити файл %s пакунку (1)" - -#: apt-pkg/indexrecords.cc:47 -#, fuzzy, c-format -#| msgid "Note, selecting %s instead of %s\n" -msgid "No sections in Release file %s" -msgstr "Помітьте, замість %2$s вибирається %1$s\n" - -#: apt-pkg/indexrecords.cc:81 -#, c-format -msgid "No Hash entry in Release file %s" -msgstr "" - #: apt-pkg/vendorlist.cc:66 #, c-format msgid "Vendor block %s contains no fingerprint" @@ -2868,12 +2836,6 @@ msgid "" "zu signatures\n" msgstr "Знайдено %i індексів пакунків, %i індексів джерел і %i підписів\n" -#: apt-pkg/cdrom.cc:689 -msgid "" -"Unable to locate any package files, perhaps this is not a Debian Disc or the " -"wrong architecture?" -msgstr "" - #: apt-pkg/cdrom.cc:715 #, fuzzy, c-format msgid "Found label '%s'\n" @@ -2904,22 +2866,22 @@ msgstr "Записується новий перелік джерел\n" msgid "Source list entries for this disc are:\n" msgstr "Перелік джерел для цього диску:\n" -#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:833 +#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:823 #, c-format msgid "Wrote %i records.\n" msgstr "Записано %i записів.\n" -#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:835 +#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:825 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "Записано %i записів з %i відсутніми файлами.\n" -#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:838 +#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:828 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "Записано %i записів з %i невідповідними файлам\n" -#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:841 +#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:831 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "Записано %i записів з %i відсутніми і %i невідповідними файлами\n" @@ -2929,12 +2891,12 @@ msgstr "Записано %i записів з %i відсутніми і %i не msgid "Installing %s" msgstr "Встановлено %s" -#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:642 +#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:612 #, c-format msgid "Configuring %s" msgstr "Конфігурація %s" -#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:649 +#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:627 #, c-format msgid "Removing %s" msgstr "Видаляється %s" @@ -2944,79 +2906,62 @@ msgstr "Видаляється %s" msgid "Running post-installation trigger %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:546 +#: apt-pkg/deb/dpkgpm.cc:521 #, fuzzy, c-format msgid "Directory '%s' missing" msgstr "Lists тека %spartial відсутня." -#: apt-pkg/deb/dpkgpm.cc:635 +#: apt-pkg/deb/dpkgpm.cc:605 #, c-format msgid "Preparing %s" msgstr "Підготовка %s" -#: apt-pkg/deb/dpkgpm.cc:636 +#: apt-pkg/deb/dpkgpm.cc:606 #, c-format msgid "Unpacking %s" msgstr "Розпакування %s" -#: apt-pkg/deb/dpkgpm.cc:641 +#: apt-pkg/deb/dpkgpm.cc:611 #, c-format msgid "Preparing to configure %s" msgstr "Підготовка до конфігурації %s" -#: apt-pkg/deb/dpkgpm.cc:643 +#: apt-pkg/deb/dpkgpm.cc:614 apt-pkg/deb/dpkgpm.cc:615 +#, fuzzy, c-format +msgid "Processing triggers for %s" +msgstr "Помилка обробки течи %s" + +#: apt-pkg/deb/dpkgpm.cc:617 #, c-format msgid "Installed %s" msgstr "Встановлено %s" -#: apt-pkg/deb/dpkgpm.cc:648 +#: apt-pkg/deb/dpkgpm.cc:622 apt-pkg/deb/dpkgpm.cc:624 +#: apt-pkg/deb/dpkgpm.cc:625 #, c-format msgid "Preparing for removal of %s" msgstr "Підготовка до видалення %s" -#: apt-pkg/deb/dpkgpm.cc:650 +#: apt-pkg/deb/dpkgpm.cc:628 #, c-format msgid "Removed %s" msgstr "Видалено %s" -#: apt-pkg/deb/dpkgpm.cc:655 +#: apt-pkg/deb/dpkgpm.cc:633 #, c-format msgid "Preparing to completely remove %s" msgstr "Підготовка до повного видалення %s" -#: apt-pkg/deb/dpkgpm.cc:656 +#: apt-pkg/deb/dpkgpm.cc:634 #, c-format msgid "Completely removed %s" msgstr "Повністю видалено %s" -#: apt-pkg/deb/dpkgpm.cc:820 +#: apt-pkg/deb/dpkgpm.cc:789 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" "Неможливо записати в лог, проблема з openpty() (не змонтовано /dev/pts?)\n" -#: apt-pkg/deb/dpkgpm.cc:848 -msgid "Running dpkg" -msgstr "" - -#: apt-pkg/deb/debsystem.cc:70 -#, c-format -msgid "" -"Unable to lock the administration directory (%s), is another process using " -"it?" -msgstr "" - -#: apt-pkg/deb/debsystem.cc:73 -#, fuzzy, c-format -#| msgid "Unable to lock the list directory" -msgid "Unable to lock the administration directory (%s), are you root?" -msgstr "Неможливо заблокувати теку з переліками пакунків" - -#: apt-pkg/deb/debsystem.cc:82 -msgid "" -"dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct " -"the problem. " -msgstr "" - #: apt-pkg/deb/debsystem.cc:100 msgid "Not locked" msgstr "" @@ -3029,13 +2974,6 @@ msgstr "Неможливо накласти латку на файл" msgid "Connection closed prematurely" msgstr "З'єднання завершено передчасно" -#~ msgid "%4i %s\n" -#~ msgstr "%4i %s\n" - -#, fuzzy -#~ msgid "Processing triggers for %s" -#~ msgstr "Помилка обробки течи %s" - #~ 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" diff --git a/share/apt-auth-failure.note b/share/apt-auth-failure.note new file mode 100644 index 000000000..3e8a9e71d --- /dev/null +++ b/share/apt-auth-failure.note @@ -0,0 +1,11 @@ +_Name: Apt Authentication issue +Priority: High +Terminal: False +Command: gksu -- synaptic --non-interactive --update-at-startup --hide-main-window +GettextDomain: apt +_Description: Problem during package list update. + The package list update failed with a authentication failure. + This usually happens behind a network proxy server. Please try + to click on the "Run this action now" button to correct the problem or + update the list manually by running Update Manager and clicking + on "Check". 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/share/makefile b/share/makefile new file mode 100644 index 000000000..e35376d98 --- /dev/null +++ b/share/makefile @@ -0,0 +1,12 @@ + +BASE=.. +SUBDIR=share + +# Bring in the default rules +include ../buildlib/defaults.mak + +binary: apt-auth-failure.note.h + +apt-auth-failure.note.h: apt-auth-failure.note + intltool-extract -t gettext/rfc822deb apt-auth-failure.note + echo "share/apt-auth-failure.note.h" >> $(BUILD)/po/domains/apt/apt-auth-failure.note.srclist diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages new file mode 100644 index 000000000..3e7265438 --- /dev/null +++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages @@ -0,0 +1,25 @@ +Package: libglib2.0-data +Priority: optional +Section: misc +Installed-Size: 2288 +Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com> +Original-Maintainer: Loic Minier <lool@dooz.org> +Architecture: all +Source: glib2.0 +Version: 2.13.6-1ubuntu1 +Replaces: libglib1.3, libglib1.3-data +Depends: libglib2.0-0 (>= 2.13.6-1ubuntu1) +Conflicts: libglib1.3-data +Filename: ./libglib2.0-data_2.13.6-1ubuntu1_all.deb +Size: 958 +MD5sum: 803fc5e2e31a4345b3e9c771e1eae49f +SHA1: 75b2c62b21bae60c58e694dd40ed6d4df946e304 +SHA256: 142d8466eac252f06bc957d76fe1bb87f86f2d3512b99c8d4b08c1ad79fbe59e +Description: Common files for GLib library + 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 is needed for the runtime libraries to display messages in + languages other than English. + diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release new file mode 100644 index 000000000..7ecd4cd19 --- /dev/null +++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release @@ -0,0 +1,13 @@ +Date: Fri, 27 Jul 2007 14:39:41 UTC +MD5Sum: + 4672dadea6a144839f823c9f3d5fd44b 934 Packages + 82ebcf09a8d78a2b9cf7759349da4936 603 Packages.gz + d41d8cd98f00b204e9800998ecf8427e 0 Release +SHA1: + fa0f294aa30789529371066b10e9497be1284d26 934 Packages + f4032808663b2810d87b4a4dab6f5ae4a1e8fa8e 603 Packages.gz + da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Release +SHA256: + 92c9b605480dc74e6be79c0ddc24738bfcbd6dd3148af531acd68717de528049 934 Packages + 659ccc0d07ff21f0247f9fa5abe149221c90d5e17da52c7afddb035b93c23d39 603 Packages.gz + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Release diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg new file mode 100644 index 000000000..85c356e6f --- /dev/null +++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQBGqgOwliSD4VZixzQRAs6jAJ9p7Aiob9gzkUNCtoW8UPrBo0E/YwCdEaz0 +CQJszU6fRYX5jGWXSWzfc5c= +=ugH0 +-----END PGP SIGNATURE----- diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages new file mode 100644 index 000000000..3e7265438 --- /dev/null +++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages @@ -0,0 +1,25 @@ +Package: libglib2.0-data +Priority: optional +Section: misc +Installed-Size: 2288 +Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com> +Original-Maintainer: Loic Minier <lool@dooz.org> +Architecture: all +Source: glib2.0 +Version: 2.13.6-1ubuntu1 +Replaces: libglib1.3, libglib1.3-data +Depends: libglib2.0-0 (>= 2.13.6-1ubuntu1) +Conflicts: libglib1.3-data +Filename: ./libglib2.0-data_2.13.6-1ubuntu1_all.deb +Size: 958 +MD5sum: 803fc5e2e31a4345b3e9c771e1eae49f +SHA1: 75b2c62b21bae60c58e694dd40ed6d4df946e304 +SHA256: 142d8466eac252f06bc957d76fe1bb87f86f2d3512b99c8d4b08c1ad79fbe59e +Description: Common files for GLib library + 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 is needed for the runtime libraries to display messages in + languages other than English. + diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release new file mode 100644 index 000000000..7ecd4cd19 --- /dev/null +++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release @@ -0,0 +1,13 @@ +Date: Fri, 27 Jul 2007 14:39:41 UTC +MD5Sum: + 4672dadea6a144839f823c9f3d5fd44b 934 Packages + 82ebcf09a8d78a2b9cf7759349da4936 603 Packages.gz + d41d8cd98f00b204e9800998ecf8427e 0 Release +SHA1: + fa0f294aa30789529371066b10e9497be1284d26 934 Packages + f4032808663b2810d87b4a4dab6f5ae4a1e8fa8e 603 Packages.gz + da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Release +SHA256: + 92c9b605480dc74e6be79c0ddc24738bfcbd6dd3148af531acd68717de528049 934 Packages + 659ccc0d07ff21f0247f9fa5abe149221c90d5e17da52c7afddb035b93c23d39 603 Packages.gz + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Release diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg new file mode 100644 index 000000000..85c356e6f --- /dev/null +++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQBGqgOwliSD4VZixzQRAs6jAJ9p7Aiob9gzkUNCtoW8UPrBo0E/YwCdEaz0 +CQJszU6fRYX5jGWXSWzfc5c= +=ugH0 +-----END PGP SIGNATURE----- diff --git a/test/authReliability/sources.list.failure b/test/authReliability/sources.list.failure new file mode 100644 index 000000000..110f31884 --- /dev/null +++ b/test/authReliability/sources.list.failure @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ / + diff --git a/test/authReliability/sources.list.good b/test/authReliability/sources.list.good new file mode 100644 index 000000000..2e9a4458a --- /dev/null +++ b/test/authReliability/sources.list.good @@ -0,0 +1,2 @@ +deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ / + diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py index 268b3d672..97a0ec4c4 100755 --- a/test/pre-upload-check.py +++ b/test/pre-upload-check.py @@ -4,6 +4,8 @@ import sys import os import glob import os.path +import shutil +import time from subprocess import call, PIPE import unittest @@ -11,7 +13,102 @@ import unittest stdout = os.open("/dev/null",0) #sys.stdout stderr = os.open("/dev/null",0) # sys.stderr -apt_args = [] # ["-o","Debug::pkgAcquire::Auth=true"] +apt_args = [] +#apt_args = ["-o","Debug::pkgAcquire::Auth=true"] + +class testAptAuthenticationReliability(unittest.TestCase): + """ + test if the spec https://wiki.ubuntu.com/AptAuthenticationReliability + is properly implemented + """ + #apt = "../bin/apt-get" + apt = "apt-get" + + def setUp(self): + if os.path.exists("/tmp/autFailure"): + os.unlink("/tmp/authFailure"); + if os.path.exists("/tmp/autFailure2"): + os.unlink("/tmp/authFailure2"); + def testRepositorySigFailure(self): + """ + test if a repository that used to be authenticated and fails on + apt-get update refuses to update and uses the old state + """ + # copy valid signatures into lists (those are ok, even + # if the name is "-broken-" ... + for f in glob.glob("./authReliability/lists/*"): + shutil.copy(f,"/var/lib/apt/lists") + # ensure we do *not* get a I-M-S hit + os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0)) + res = call([self.apt, + "update", + "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure", + "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure', + ] + apt_args, + stdout=stdout, stderr=stderr) + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"), + "The gpg file disappeared, this should not happen") + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"), + "The Packages file disappeared, this should not happen") + self.assert_(os.path.exists("/tmp/authFailure"), + "The APT::Update::Auth-Failure script did not run (1)") + # the same with i-m-s hit this time + for f in glob.glob("./authReliability/lists/*"): + shutil.copy(f,"/var/lib/apt/lists") + os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time())) + res = call([self.apt, + "update", + "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure", + "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure2', + ] + apt_args, + stdout=stdout, stderr=stderr) + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"), + "The gpg file disappeared, this should not happen") + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"), + "The Packages file disappeared, this should not happen") + self.assert_(os.path.exists("/tmp/authFailure2"), + "The APT::Update::Auth-Failure script did not run (2)") + def testRepositorySigGood(self): + """ + test that a regular repository with good data stays good + """ + res = call([self.apt, + "update", + "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good" + ] + apt_args, + stdout=stdout, stderr=stderr) + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"), + "The gpg file disappeared after a regular download, this should not happen") + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"), + "The Packages file disappeared, this should not happen") + # test good is still good after non I-M-S hit and a previous files in lists/ + for f in glob.glob("./authReliability/lists/*"): + shutil.copy(f,"/var/lib/apt/lists") + # ensure we do *not* get a I-M-S hit + os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0)) + res = call([self.apt, + "update", + "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good" + ] + apt_args, + stdout=stdout, stderr=stderr) + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"), + "The gpg file disappeared after a I-M-S hit, this should not happen") + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"), + "The Packages file disappeared, this should not happen") + # test good is still good after I-M-S hit + for f in glob.glob("./authReliability/lists/*"): + shutil.copy(f,"/var/lib/apt/lists") + # ensure we do get a I-M-S hit + os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time())) + res = call([self.apt, + "update", + "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good" + ] + apt_args, + stdout=stdout, stderr=stderr) + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"), + "The gpg file disappeared, this should not happen") + self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"), + "The Packages file disappeared, this should not happen") class testAuthentication(unittest.TestCase): @@ -149,6 +246,7 @@ if __name__ == "__main__": if len(sys.argv) > 1 and sys.argv[1] == "-v": stdout = sys.stdout stderr = sys.stderr + + # run only one for now + #unittest.main(defaultTest="testAptAuthenticationReliability") unittest.main() - - |