--- /dev/null
+[BUILDDEB]
+native = True
$(MAKE) -C apt-inst $@
$(MAKE) -C methods $@
$(MAKE) -C cmdline $@
+ $(MAKE) -C share $@
$(MAKE) -C ftparchive $@
$(MAKE) -C dselect $@
$(MAKE) -C doc $@
{
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
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 /*{{{*/
{
// 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)
if (FileSize == 0)
FileSize= Size;
-
Status = StatDone;
ErrorText = string();
Owner->Dequeue(this);
}
}
/*}}}*/
+
+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
struct stat Buf;
if (stat(Final.c_str(),&Buf) != 0)
return "\nIndex-File: true";
-
return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
}
/*}}}*/
Status = StatAuthError;
ErrorText = _("Hash Sum mismatch");
Rename(DestFile,DestFile + ".FAILED");
+ ReportMirrorFailure("HashChecksumFailure");
return;
}
// Done, move it into position
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);
}
/*}}}*/
{
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
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
{
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) /*{{{*/
QueueIndexes(true);
// Done, move signature file into position
-
string VerifiedSigFile = _config->FindDir("Dir::State::lists") +
URItoFileName(RealURI) + ".gpg";
Rename(SigFile,VerifiedSigFile);
// 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
{
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
* download progress indicator's overall statistics.
*/
bool Local;
+ string UsedMirror;
/** \brief The number of fetch queues into which this item has been
* inserted.
/** \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.
*
* fallback is ".gz" or none.
*/
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 {{{
/** \brief The last good signature file */
string LastGoodSig;
-
/** \brief The fetch request that is currently being processed. */
pkgAcquire::ItemDesc Desc;
}
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;
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");
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();
vector<string> Messages;
FetchItem *Queue;
FetchItem *QueueBack;
- string FailExtra;
+ string FailReason;
+ string UsedMirror;
+ string IP;
// Handlers for messages
virtual bool Configuration(string Message);
// 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),
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() {};
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)) {
#include <apt-pkg/error.h>
#include <apt-pkg/fileutl.h>
#include <apti18n.h>
-
#include <sys/types.h>
#include <unistd.h>
#include <dirent.h>
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++;
#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>
#include <sys/wait.h>
#include <signal.h>
#include <errno.h>
+#include <string.h>
#include <stdio.h>
#include <string.h>
#include <algorithm>
/* */
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)
{
}
/*}}}*/
return true;
}
-
/*}}}*/
// DPkgPM::DoStdin - Read stdin and pass to slave pty /*{{{*/
// ---------------------------------------------------------------------
'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
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]
write(OutStatusFd, status.str().c_str(), status.str().size());
if (Debug == true)
std::clog << "send: '" << status.str() << "'" << endl;
+ pkgFailures++;
+ WriteApportReport(list[1], list[3]);
return;
}
else if(strncmp(action,"conffile",strlen("conffile")) == 0)
}
/*}}}*/
// DPkgPM::WriteHistoryTag /*{{{*/
-void pkgDPkgPM::WriteHistoryTag(string tag, string value)
+void pkgDPkgPM::WriteHistoryTag(FILE *history_out, string tag, string value)
{
if (value.size() > 0)
{
_config->Find("Dir::Log::History"));
if (!history_name.empty())
{
- history_out = fopen(history_name.c_str(),"a");
+ FILE *history_out = fopen(history_name.c_str(),"a");
chmod(history_name.c_str(), 0644);
fprintf(history_out, "\nStart-Date: %s\n", timestr);
string remove, purge, install, upgrade, downgrade;
remove += I.Name() + string(" (") + Cache[I].CurVersion + string("), ");
}
}
- WriteHistoryTag("Install", install);
- WriteHistoryTag("Upgrade", upgrade);
- WriteHistoryTag("Downgrade",downgrade);
- WriteHistoryTag("Remove",remove);
- WriteHistoryTag("Purge",purge);
- fflush(history_out);
+ WriteHistoryTag(history_out, "Install", install);
+ WriteHistoryTag(history_out, "Upgrade", upgrade);
+ WriteHistoryTag(history_out, "Downgrade",downgrade);
+ WriteHistoryTag(history_out, "Remove",remove);
+ WriteHistoryTag(history_out, "Purge",purge);
+ fclose(history_out);
}
return true;
}
term_out = NULL;
- if(history_out)
+ string history_name = flCombine(_config->FindDir("Dir::Log"),
+ _config->Find("Dir::Log::History"));
+ if (!history_name.empty())
{
- if (dpkg_error.size() > 0)
- fprintf(history_out, "Error: %s\n", dpkg_error.c_str());
+ FILE *history_out = fopen(history_name.c_str(),"a");
fprintf(history_out, "End-Date: %s\n", timestr);
fclose(history_out);
}
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)
if(stopOnError)
RunScripts("DPkg::Post-Invoke");
+ string dpkg_error;
if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV)
strprintf(dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]);
else if (WIFEXITED(Status) != 0)
strprintf(dpkg_error, "Sub-process %s exited unexpectedly",Args[0]);
if(dpkg_error.size() > 0)
+ {
_error->Error(dpkg_error.c_str());
+ string history_name = flCombine(_config->FindDir("Dir::Log"),
+ _config->Find("Dir::Log::History"));
+ if (!history_name.empty())
+ {
+ FILE *history_out = fopen(history_name.c_str(),"a");
+ fprintf(history_out, "Error: %s\n", dpkg_error.c_str());
+ fclose(history_out);
+ }
+ }
if(stopOnError)
{
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;
+ }
+
+ // do not report dpkg I/O errors
+ // XXX - this message is localized, but this only matches the English version. This is better than nothing.
+ if(strstr(errormsg, "short read in buffer_copy (")) {
+ std::clog << _("No apport report written because the error message indicates a dpkg I/O 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);
+ }
+ }
+
+ // attach df -l log (to learn about filesystem status)
+ if (FileExists("/bin/df"))
+ {
+ FILE *log = NULL;
+ char buf[1024];
+
+ fprintf(report, "Df:\n");
+ log = popen("/bin/df -l","r");
+ if(log != NULL)
+ {
+ while( fgets(buf, sizeof(buf), log) != NULL)
+ fprintf(report, " %s", buf);
+ fclose(log);
+ }
+ }
+
+ fclose(report);
+
+}
+ /*}}}*/
char dpkgbuf[1024];
int dpkgbuf_pos;
FILE *term_out;
- FILE *history_out;
- string dpkg_error;
protected:
+ int pkgFailures;
// progress reporting
struct DpkgState
// 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;
// Helpers
bool RunScriptsWithPkgs(const char *Cnf);
bool SendV2Pkgs(FILE *F);
- void WriteHistoryTag(string tag, string value);
+ void WriteHistoryTag(FILE* history_out, string tag, string value);
+
+ // apport integration
+ void WriteApportReport(const char *pkgpath, const char *errormsg);
// dpkg log
bool OpenLog();
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/");
bool Debug;
bool DepAdd(pkgOrderList &Order,PkgIterator P,int Depth = 0);
- void ImmediateAdd(PkgIterator P, bool UseInstallVer, unsigned const int &Depth = 0);
+ // binary-compat change, fix on next abi break
+ void ImmediateAdd(PkgIterator P, bool UseInstallVer) {
+ ImmediateAdd(P, UseInstallVer, 0);
+ }
+ void ImmediateAdd(PkgIterator P, bool UseInstallVer, unsigned const int &Depth);
virtual OrderResult OrderInstall();
bool CheckRConflicts(PkgIterator Pkg,DepIterator Dep,const char *Ver);
bool CreateOrderList();
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)
"Section",
"Installed-Size",
"Maintainer",
+ "Original-Maintainer",
"Architecture",
"Source",
"Version",
"Priority",
"Section",
"Maintainer",
+ "Original-Maintainer",
"Build-Depends",
"Build-Depends-Indep",
"Build-Conflicts",
# want to drop this, but this a ABI break.
# And we don't want to do this now. So we hardcode a value here,
# and drop it later on (hopefully as fast as possible).
-LIBEXT=-libc6.9-6
+LIBEXT=-libc6.10-6
return true;
}
/*}}}*/
-
+// Search - Perform a search /*{{{*/
+// ---------------------------------------------------------------------
+/* This searches the package names and package descriptions for a pattern */
struct ExDescFile
{
pkgCache::DescFile *Df;
pkgCdrom cdrom;
bool res = true;
- bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect");
+ bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect", true);
unsigned int count = 0;
if (AutoDetect && UdevCdroms.Dlopen())
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 (possibly unreleased) "
+ "updates to the package.\n"),
+ uri.c_str());
+ break;
+ }
+
// Back track
vector<pkgSrcRecords::File> Lst;
if (Last->Files(Lst) == false)
{"remove",&DoInstall},
{"purge",&DoInstall},
{"autoremove",&DoInstall},
- {"purge",&DoInstall},
{"dist-upgrade",&DoDistUpgrade},
{"dselect-upgrade",&DoDSelectUpgrade},
{"build-dep",&DoBuildDep},
GPG_CMD="gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg"
GPG="$GPG_CMD"
-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
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
--- /dev/null
+#!/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()
+
+
TO=$(BIN)
TARGET=program
include $(COPY_H)
+
+# The apt-key program
+SOURCE=apt-report-mirror-failure
+TO=$(BIN)
+TARGET=program
+include $(COPY_H)
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.25")
+AC_DEFINE_UNQUOTED(VERSION,"0.7.25ubuntu1")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)
--- /dev/null
+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
APT
{
NeverAutoRemove
- {
+ {
+ "^linux-firmware$";
"^linux-image.*";
"^linux-restricted-modules.*";
- "^kfreebsd-image.*";
+ "^linux-ubuntu-modules-.*";
+ };
+
+ Never-MarkAuto-Sections
+ {
+ "metapackages";
+ "restricted/metapackages";
+ "universe/metapackages";
+ "multiverse/metapackages";
+ "oldlibs";
+ "restricted/oldlibs";
+ "universe/oldlibs";
+ "multiverse/oldlibs";
+
};
};
--- /dev/null
+APT
+{
+};
#!/bin/sh
+#
+
#set -e
#
# This file understands the following apt configuration variables:
# APT::Periodic::Update-Package-Lists "0";
# - 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::Download-Upgradeable-Packages-Debdelta "1";
# 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()
{
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
update_stamp()
{
stamp="$1"
+
touch $stamp
}
# 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)
if [ $UpdateInterval -eq 0 ] &&
[ $DownloadUpgradeableInterval -eq 0 ] &&
[ $UnattendedUpgradeInterval -eq 0 ] &&
- [ $BackupArchiveInterval -eq 0 ] &&
[ $AutocleanInterval -eq 0 ]; then
# check cache size
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
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
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
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
case "$1" in
configure)
- apt-key update
+ if ! test -f /etc/apt/trusted.gpg; then
+ cp /usr/share/apt/ubuntu-archive.gpg /etc/apt/trusted.gpg
+ fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
-apt (0.7.25.4) UNRELEASED; urgency=low
+apt (0.7.25.3ubuntu2) UNRELEASED; urgency=low
- [ Ivan Masár ]
- * Slovak translation update. Closes: #568294
-
[ Michael Vogt ]
- * merged lp:~mvo/apt/history
- - this writes a /var/log/apt/history tagfile that contains details
- from the transaction (complements term.log)
- * methods/http.cc:
- - add cache-control headers even if no cache is given to allow
- adding options for intercepting proxies
- - add Acquire::http::ProxyAutoDetect configuration that
- can be used to call a external helper to figure out the
- proxy configuration and return it to apt via stdout
- (this is a step towards WPAD and zeroconf/avahi support)
* abicheck/
- add new abitest tester using the ABI Compliance Checker from
http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker
+ * debian/apt.conf.autoremove:
+ - add "oldlibs" to the APT::Never-MarkAuto-Sections as its used
+ for transitional packages
* apt-pkg/deb/dpkgpm.cc:
- fix backgrounding when dpkg runs (closes: #486222)
* cmdline/apt-mark:
useful when using several different archives on the same host.
(Closes: #329814, LP: #22354)
- -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 18 Dec 2009 16:54:18 +0100
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 12 Mar 2010 11:10:15 +0100
+
+apt (0.7.25.3ubuntu1) lucid; urgency=low
+
+ [ Michael Vogt ]
+ * merged with the debian-sid branch
+ * methods/http.cc:
+ - add Acquire::http::ProxyAutoDetect configuration that
+ can be used to call a external helper to figure out the
+ proxy configuration and return it to apt via stdout
+ (this is a step towards WPAD and zeroconf/avahi support)
+
+ [ Ivan Masár ]
+ * Slovak translation update. Closes: #568294
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 17 Feb 2010 23:33:32 +0100
apt (0.7.25.3) unstable; urgency=low
-- Michael Vogt <mvo@debian.org> Sat, 09 Jan 2010 21:52:36 +0100
+apt (0.7.25ubuntu4) lucid; urgency=low
+
+ * cmdline/apt-cdrom.cc:
+ - make Acquire::cdrom::AutoDetect default, this can be
+ turned off with "--no-auto-detect"
+ * methods/http.cc:
+ - add cache-control headers even if no cache is given to allow
+ adding options for intercepting proxies
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 02 Feb 2010 16:58:59 -0800
+
+apt (0.7.25ubuntu3) lucid; urgency=low
+
+ * cmdline/apt-get.cc:
+ - don't mark as manually if in download only (Closes: #468180)
+
+ -- Michael Vogt <mvo@debian.org> Mon, 01 Feb 2010 18:41:15 +0100
+
+apt (0.7.25.2) unstable; urgency=low
+
+ [ Michael Vogt ]
+ * apt-pkg/contrib/cdromutl.cc:
+ - fix UnmountCdrom() fails, give it a bit more time and try
+ the umount again
+ * apt-pkg/cdrom.cc:
+ - fix crash in pkgUdevCdromDevices
+ * methods/cdrom.cc:
+ - fixes in multi cdrom setup code (closes: #549312)
+ - add new "Acquire::cdrom::AutoDetect" config that enables/disables
+ the dlopen of libudev for automatic cdrom detection. Off by default
+ currently, feedback/testing welcome
+ * cmdline/apt-cdrom.cc:
+ - add new --auto-detect option that uses libudev to figure out
+ the cdrom/mount-point
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 27 Jan 2010 16:11:32 +0100
+
+apt (0.7.25ubuntu2) lucid; urgency=low
+
+ * Change history branch so that it does not break the
+ apt ABI for the pkgPackageManager interface
+ (can be reverted on the next ABI break)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 23 Dec 2009 10:14:16 +0100
+
+apt (0.7.25ubuntu1) lucid; urgency=low
+
+ * Merged from the mvo branch
+ * merged from the lp:~mvo/apt/history branch
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 22 Dec 2009 09:44:08 +0100
+
apt (0.7.25) unstable; urgency=low
[ Christian Perrier ]
-- Michael Vogt <mvo@debian.org> Tue, 15 Dec 2009 09:21:55 +0100
+apt (0.7.24ubuntu1) lucid; urgency=low
+
+ [ Michael Vogt ]
+ * apt-pkg/deb/dpkgpm.cc:
+ - include df -l output in the apport log as well (thanks to
+ tjaalton)
+ * apt-pkg/packagemanager.cc:
+ - add output about pre-depends configuring when debug::pkgPackageManager
+ is used
+ * methods/https.cc:
+ - fix incorrect use of CURLOPT_TIMEOUT, closes: #497983, LP: #354972
+ thanks to Brian Thomason for the patch
+ * merge lp:~mvo/apt/netrc branch, this adds support for a
+ /etc/apt/auth.conf that can be used to store username/passwords
+ in a "netrc" style file (with the extension that it supports "/"
+ in a machine definition). Based on the maemo git branch.
+
+ [ Brian Murray ]
+ * apt-pkg/depcache.cc, apt-pkg/indexcopy.cc:
+ - typo fix (LP: #462328)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 14 Dec 2009 09:27:26 +0100
+
apt (0.7.24) unstable; urgency=low
[ Nicolas François ]
-- Michael Vogt <mvo@debian.org> Fri, 25 Sep 2009 19:57:25 +0200
+apt (0.7.23.1ubuntu2) karmic; urgency=low
+
+ [ Michael Vogt ]
+ * debian/control:
+ - fix Vcr-Bzr header
+
+ [ Kees Cook ]
+ * debian/apt.cron.daily:
+ - fix quotes for use with "eval", thanks to Lars Ljung (LP: #449535).
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 15 Oct 2009 19:05:19 +0200
+
+apt (0.7.23.1ubuntu1) karmic; urgency=low
+
+ [ Matt Zimmerman ]
+ * apt-pkg/deb/dpkgpm.cc:
+ - Suppress apport reports on dpkg short reads (these I/O errors are not
+ generally indicative of a bug in the packaging)
+
+ [ Loïc Minier ]
+ * cmdline/apt-key:
+ - Emit a warning if removed keys keyring is missing and skip associated
+ checks (LP: #218971)
+
+ [ Brian Murray ]
+ * cmdline/apt-get.cc:
+ - typo fix (LP: #370094)
+
+ [ Michael Vogt ]
+ * apt-pkg/deb/dpkgpm.cc:
+ - when tcgetattr() returns non-zero skip all pty magic
+ (thanks to Simon Richter, closes: #509866)
+ * apt-inst/contrib/arfile.cc:
+ - show propper error message for Invalid archive members
+ * apt-pkg/acquire-worker.cc:
+ - show error details of failed methods
+ * apt-pkg/contrib/fileutl.cc:
+ - if a process aborts with signal, show signal number
+ * methods/http.cc:
+ - ignore SIGPIPE, we deal with EPIPE from write in
+ HttpMethod::ServerDie() (LP: #385144)
+ * debian/apt.cron.daily:
+ - if the timestamp is too far in the future, delete it
+ (LP: #135262)
+
+ [ Merge ]
+ * merged from debian, reverted the libdlopen-udev branch
+ because its too late in the release process for this now
+ * not merged the proxy behaviour change from 0.7.23 (that will
+ be part of lucid)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 23 Sep 2009 18:15:10 +0200
+
apt (0.7.23.1) unstable; urgency=low
[ Michael Vogt ]
-- 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 ]
-- 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 ]
-- 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 ]
-- Michael Vogt <mvo@debian.org> Tue, 16 Sep 2008 21:27:03 +0200
-apt (0.7.14) unstable; urgency=low
+apt (0.7.14ubuntu7) jaunty; urgency=low
- [ Christian Perrier ]
- * Mark a message from dselect backend as translatable
- Thanks to Frédéric Bothamy for the patch
- Closes: #322470
+ * 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
- [ Program translations ]
- * Simplified Chinese updated. Closes: #473360
- * Catalan fixes. Closes: #387141
- * Typo fix in Greek translation. Closes: #479122
- * French updated.
- * Thai updated. Closes: #479313
- * Italian updated. Closes: #479326
- * Polish updated. Closes: #479342
- * Bulgarian updated. Closes: #479379
- * Finnish updated. Closes: #479403
- * Korean updated. Closes: #479426
- * Basque updated. Closes: #479452
- * Vietnamese updated. Closes: #479748
- * Russian updated. Closes: #479777, #499029
- * Galician updated. Closes: #479792
- * Portuguese updated. Closes: #479847
- * Swedish updated. Closes: #479871
- * Dutch updated. Closes: #480125
- * Kurdish added. Closes: #480150
- * Brazilian Portuguese updated. Closes: #480561
- * Hungarian updated. Closes: #480662
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 28 Oct 2008 21:09:12 +0100
- [ 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 ]
- * debian/apt.cron.daily:
- - apply patch based on the ideas of Francesco Poli for better
- behavior when the cache can not be locked (closes: #459344)
+apt (0.7.14ubuntu6) intrepid; urgency=low
- -- Michael Vogt <mvo@debian.org> Wed, 28 May 2008 15:19:12 +0200
+ * 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
-apt (0.7.13) unstable; urgency=low
+ -- 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.14) unstable; urgency=low
+
+ [ Christian Perrier ]
+ * Mark a message from dselect backend as translatable
+ Thanks to Frédéric Bothamy for the patch
+ Closes: #322470
+
+ [ Program translations ]
+ * Simplified Chinese updated. Closes: #473360
+ * Catalan fixes. Closes: #387141
+ * Typo fix in Greek translation. Closes: #479122
+ * French updated.
+ * Thai updated. Closes: #479313
+ * Italian updated. Closes: #479326
+ * Polish updated. Closes: #479342
+ * Bulgarian updated. Closes: #479379
+ * Finnish updated. Closes: #479403
+ * Korean updated. Closes: #479426
+ * Basque updated. Closes: #479452
+ * Vietnamese updated. Closes: #479748
+ * Russian updated. Closes: #479777, #499029
+ * Galician updated. Closes: #479792
+ * Portuguese updated. Closes: #479847
+ * Swedish updated. Closes: #479871
+ * Dutch updated. Closes: #480125
+ * Kurdish added. Closes: #480150
+ * Brazilian Portuguese updated. Closes: #480561
+ * Hungarian updated. Closes: #480662
+
+ [ 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 ]
+ * debian/apt.cron.daily:
+ - apply patch based on the ideas of Francesco Poli for better
+ behavior when the cache can not be locked (closes: #459344)
+
+ -- Michael Vogt <mvo@debian.org> Wed, 28 May 2008 15:19:12 +0200
+
+apt (0.7.13) unstable; urgency=low
[ Otavio Salvador ]
* Add missing build-depends back from build-depends-indep field.
-- Michael Vogt <mvo@debian.org> Mon, 07 Jan 2008 21:40:47 +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 <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
[ Christian Perrier ]
-- Michael Vogt <mvo@debian.org> Tue, 23 Oct 2007 14:58:03 +0200
+apt (0.7.6ubuntu14.1) gutsy-proposed; urgency=low
+
+ [ 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)
+
+ [ 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
* Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong
-- 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 ]
-- 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
* Non-maintainer upload.
* apt-pkg/policy.cc:
- allow multiple packages (thanks to David Foerster)
- -- Michael Vogt <mvo@debian.org> Wed, 2 May 2007 13:43:44 +0200
+ -- Michael Vogt <mvo@debian.org> Wed, 2 May 2007 13:43:44 +0200
+
+apt (0.7.0) experimental; urgency=low
+
+ * Package that contains all the new features
+ * Removed all #pragma interface/implementation
+ * Branch that contains all the new features:
+ * translated package descriptions
+ * task install support
+ * automatic dependency removal (thanks to Daniel Burrows)
+ * merged support for the new dpkg "Breaks" field
+ (thanks to Ian Jackson)
+ * handle network failures more gracefully on "update"
+ * support for unattended-upgrades (via unattended-upgrades
+ package)
+ * added apt-transport-https method
+ * merged "install-recommends" branch (ABI break):
+ - new "--install-recommends"
+ - install new recommends on "upgrade" if --install-recommends is
+ given
+ - new "--fix-policy" option to install all packages with unmet
+ important dependencies (usefull with --install-recommends to
+ see what not-installed recommends are on the system)
+ - fix of recommended packages display (only show CandidateVersion
+ fix or-group handling)
+ * merged "install-task" branch (use with "apt-get install taskname^")
+
+ -- Michael Vogt <mvo@debian.org> Fri, 12 Jan 2007 20:48:07 +0100
+
+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
-- 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
* Fix FTBFS on most arches (regression from the fix of #400874)
-- Andreas Barth <aba@not.so.argh.org> Tue, 5 Dec 2006 15:51:22 +0000
-
+
apt (0.6.46.3-0.1) unstable; urgency=high
* Non-maintainer upload with permission of Michael Vogt.
-- 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á\e%GÄ\8d\e%@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:
-- Michael Vogt <mvo@debian.org> Thu, 21 Sep 2006 10:25:03 +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:
+ - don't hang when /var is full (closes: #341537), thanks to
+ Luis Rodrigo Gallardo Cruz for the patch
+ * doc/examples/sources.list:
+ - removed non-us.debian.org from the example (closes: #380030,#316196)
+ * Merged from Christian Perrier bzr branch:
+ * ro.po: Updated to 514t. Closes: #388402
+ * dz.po: Updated to 514t. Closes: #388184
+ * it.po: Fixed typos. Closes: #387812
+ * ku.po: New kurdish translation. Closes: #387766
+ * sk.po: Updated to 514t. Closes: #386851
+ * ja.po: Updated to 514t. Closes: #386537
+ * gl.po: Updated to 514t. Closes: #386397
+ * fr.po: Updated to 516t.
+ * fi.po: Updated to 512t. Closes: #382702
+ * share/archive-archive.gpg:
+ - removed the outdated amd64 and debian-2004 keys
+ * apt-pkg/tagfile.cc:
+ - applied patch from Jeroen van Wolffelaar to make the tags
+ caseinsensitive (closes: #384182)
+ - reverted MMap use in the tagfile because it does not work
+ across pipes (closes: #383487)
+ * added "installtask" command
+ * added new ubuntu specific rewrite rule for "Original-Maintainer"
+
+ -- 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
* apt-pkg/contrib/sha256.cc:
-- Michael Vogt <mvo@debian.org> Thu, 27 Jul 2006 00:52:05 +0200
+apt (0.6.44.2ubuntu4) edgy; urgency=low
+
+ * Make apt-get dselect-upgrade happy again
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 21 Jul 2006 11:03:02 +0200
+
+apt (0.6.44.2ubuntu3) edgy; urgency=low
+
+ * 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
+
+ * 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.2exp1) experimental; urgency=low
* added support for i18n of the package descriptions
-- 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:
-- 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)
+ * 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 <michael.vogt@ubuntu.com> Mon, 20 Feb 2006 22:27:48 +0100
+
apt (0.6.43.2) unstable; urgency=low
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-166:
-- Michael Vogt <mvo@debian.org> Thu, 19 Jan 2006 00:06:33 +0100
+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:
-- 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:
-- 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:
* Priority high to get the AMD key into testing ASAP.
-- Frans Pop <fjp@debian.org> Sun, 30 Oct 2005 21:29:11 +0100
-
+
apt (0.6.42.1) unstable; urgency=low
* fix a incorrect example in the apt_prefrences man page
-- 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
* bugfix in the parsing code for the apt<->dpkg communication. apt
-- 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
-- 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
-- Matt Zimmerman <mdz@debian.org> Tue, 28 Jun 2005 11:51:09 -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
* Merge michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-6, a workaround
* Initial Release.
-- Scott K. Ellis <scott@debian.org> Tue, 31 Mar 1998 12:49:28 -0500
+
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>, Julian Andres Klode <jak@debian.org>
Standards-Version: 3.8.3
-Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), debiandoc-sgml, xsltproc, docbook-xsl, po4a (>= 0.34-2), autotools-dev
-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, xsltproc, docbook-xsl, po4a (>= 0.34-2), autotools-dev, intltool
+Vcs-Bzr: http://code.launchpad.net/~ubuntu-core-dev/apt/ubuntu
Package: apt
Architecture: any
-Depends: ${shlibs:Depends}, debian-archive-keyring, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
Provides: ${libapt-pkg:provides}
+Recommends: ubuntu-keyring
Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt
Description: Advanced front-end for dpkg
This is Debian's next generation front-end for the dpkg package manager.
--- /dev/null
+Apt is copyright 1997, 1998, 1999 Jason Gunthorpe and others.
+Apt is currently developed by APT Development Team <deity@lists.debian.org>.
+
+License: GPLv2+
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+See /usr/share/common-licenses/GPL-2, or
+<http://www.gnu.org/copyleft/gpl.txt> for the terms of the latest version
+of the GNU General Public License.
+
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.
cp debian/bugscript debian/$@/usr/share/bug/apt/script
cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt
+ 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
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$@ $(wildcard $(patsubst %,doc/%.[158],$(apt_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt_MANPAGES)))
dh_installcron -p$@
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"; };
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";
+ };
+
CompressionTypes
{
bz2 "bzip2";
userstatus "status.user";
status "/var/lib/dpkg/status";
cdroms "cdroms.list";
+ mirrors "mirrors/";
};
// Location of the cache dir
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";
acquire::netrc "false"; // netrc parser
-
}
/* Whatever you do, do not use this configuration file!! Take out ONLY
# 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
#. type: Plain text
#: apt.ent:362
#, no-wrap
+#| msgid ""
+#| "<!ENTITY file-sourceslist \"\n"
+#| " <varlistentry><term><filename>/etc/apt/sources.list</filename></term>\n"
+#| " <listitem><para>Locations to fetch packages from.\n"
+#| " Configuration Item: <literal>Dir::Etc::SourceList</literal>.</para></listitem>\n"
+#| " </varlistentry>\n"
msgid ""
"<!ENTITY file-trustedgpg \"\n"
" <varlistentry><term><filename>/etc/apt/trusted.gpg</filename></term>\n"
" traduction est légèrement en retard sur le contenu d'origine.\n"
"\">\n"
-#. The last update date
+#. The last update date
#. type: Content of: <refentry><refentryinfo>
#: apt-cache.8.xml:13 apt-config.8.xml:13 apt-extracttemplates.1.xml:13
#: apt-sortpkgs.1.xml:13 sources.list.5.xml:13
"<command>apt-extracttemplates</command> retourne zéro si tout se passe bien, "
"le nombre 100 en cas d'erreur."
-#. The last update date
+#. The last update date
#. type: Content of: <refentry><refentryinfo>
#: apt-ftparchive.1.xml:13
msgid ""
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt-ftparchive.1.xml:82 apt-ftparchive.1.xml:106
-msgid ""
-"The option <option>--db</option> can be used to specify a binary caching DB."
+msgid "The option <option>--db</option> can be used to specify a binary caching DB."
msgstr ""
"On peut se servir de l'option <option>--db</option> pour demander un cache "
"binaire."
#. type: Content of: <refentry><refsect1><para>
#: apt-ftparchive.1.xml:155
-msgid ""
-"The generate configuration has 4 separate sections, each described below."
-msgstr ""
-"Ce fichier de configuration possède quatre sections, décrites ci-dessous."
+msgid "The generate configuration has 4 separate sections, each described below."
+msgstr "Ce fichier de configuration possède quatre sections, décrites ci-dessous."
#. type: Content of: <refentry><refsect1><refsect2><title>
#: apt-ftparchive.1.xml:157
#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
#: apt-ftparchive.1.xml:288
+#| msgid ""
+#| "Sets the output Packages file. Defaults to <filename>$(DIST)/$(SECTION)/"
+#| "source/Sources</filename>"
msgid ""
"Sets the output Sources file. Defaults to <filename>$(DIST)/$(SECTION)/"
"source/Sources</filename>"
#. type: Content of: <refentry><refsect1><refsect2><para><programlisting>
#: apt-ftparchive.1.xml:354
#, no-wrap
+#| msgid ""
+#| "for i in Sections do \n"
+#| " for j in Architectures do\n"
+#| " Generate for DIST=scope SECTION=i ARCH=j\n"
msgid ""
"for i in Sections do \n"
" for j in Architectures do\n"
#. type: Content of: <refentry><refsect1><refsect2><para>
#: apt-ftparchive.1.xml:351
+#| msgid ""
+#| "When processing a <literal>Tree</literal> section <command>apt-"
+#| "ftparchive</command> performs an operation similar to:"
msgid ""
"When processing a <literal>Tree</literal> section <command>apt-ftparchive</"
"command> performs an operation similar to: <placeholder type=\"programlisting"
"\" id=\"0\"/>"
msgstr ""
"Quand il exécute la section <literal>Tree</literal>, <command>apt-"
-"ftparchive</command> effectue une opération analogue à : <placeholder type="
-"\"programlisting\" id=\"0\"/>"
+"ftparchive</command> effectue une opération analogue à : <placeholder type=\"programlisting"
+"\" id=\"0\"/>"
#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term>
#: apt-ftparchive.1.xml:360
"<command>apt-ftparchive</command> retourne zéro si tout se passe bien, le "
"nombre 100 en cas d'erreur."
-#. The last update date
+#. The last update date
#. type: Content of: <refentry><refentryinfo>
#: apt-get.8.xml:13
msgid ""
#. type: Content of: <refentry><refnamediv><refpurpose>
#: apt-get.8.xml:30
msgid "APT package handling utility -- command-line interface"
-msgstr ""
-"Utilitaire APT pour la gestion des paquets -- interface en ligne de commande."
+msgstr "Utilitaire APT pour la gestion des paquets -- interface en ligne de commande."
#. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis>
#: apt-get.8.xml:36
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
#: apt-key.8.xml:166
-msgid ""
-"<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
-msgstr ""
-"<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
+msgid "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
+msgstr "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt-key.8.xml:167
msgid "&apt-get;, &apt-secure;"
msgstr "&apt-get;, &apt-secure;"
-#. The last update date
+#. The last update date
#. type: Content of: <refentry><refentryinfo>
#: apt-mark.8.xml:13
msgid ""
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
#: apt-mark.8.xml:93
-msgid ""
-"<option>-f=<filename><replaceable>FILENAME</replaceable></filename></option>"
-msgstr ""
-"<option>-f=<filename><replaceable>FICHIER</replaceable></filename></option>"
+msgid "<option>-f=<filename><replaceable>FILENAME</replaceable></filename></option>"
+msgstr "<option>-f=<filename><replaceable>FICHIER</replaceable></filename></option>"
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
#: apt-mark.8.xml:94
"<command>apt-sortpkgs</command> retourne zéro si tout se passe bien ou 100 "
"en cas d'erreur."
-#. The last update date
+#. The last update date
#. type: Content of: <refentry><refentryinfo>
#: apt.conf.5.xml:13
#, fuzzy
#| msgid ""
#| "APT configuration file. Configuration Item: <literal>Dir::Etc::Main</"
#| "literal>."
-msgid ""
-"the main configuration file specified by <literal>Dir::Etc::main</literal>"
+msgid "the main configuration file specified by <literal>Dir::Etc::main</literal>"
msgstr ""
"Fichier de configuration d'APT. Élément de configuration : <literal>Dir::"
"Etc::Main</literal>."
#. TODO: provide a
#. motivating example, except I haven't a clue why you'd want
-#. to do this.
+#. to do this.
#. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para>
#: apt.conf.5.xml:692
msgid ""
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:711
-msgid ""
-"Print information related to accessing <literal>cdrom://</literal> sources."
+msgid "Print information related to accessing <literal>cdrom://</literal> sources."
msgstr ""
"Affiche les informations concernant les sources de type <literal>cdrom://</"
"literal>"
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:722
msgid "Print information related to downloading packages using FTP."
-msgstr ""
-"Affiche les informations concernant le téléchargement de paquets par FTP."
+msgstr "Affiche les informations concernant le téléchargement de paquets par FTP."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
#: apt.conf.5.xml:729
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:733
msgid "Print information related to downloading packages using HTTP."
-msgstr ""
-"Affiche les informations concernant le téléchargement de paquets par HTTP."
+msgstr "Affiche les informations concernant le téléchargement de paquets par HTTP."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
#: apt.conf.5.xml:740
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:862
-msgid ""
-"Log all interactions with the sub-processes that actually perform downloads."
+msgid "Log all interactions with the sub-processes that actually perform downloads."
msgstr ""
"Affiche toutes les interactions avec les processus enfants qui se chargent "
"effectivement des téléchargements."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:963
-msgid ""
-"Output status messages tracing the steps performed when invoking &dpkg;."
+msgid "Output status messages tracing the steps performed when invoking &dpkg;."
msgstr "Affiche le détail des opérations liées à l'invocation de &dpkg;."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
msgid "&file-aptconf;"
msgstr "&file-aptconf;"
-#. ? reading apt.conf
+#. ? reading apt.conf
#. type: Content of: <refentry><refsect1><para>
#: apt.conf.5.xml:1042
msgid "&apt-cache;, &apt-config;, &apt-preferences;."
msgstr "&apt-cache;, &apt-config;, &apt-preferences;."
-#. The last update date
+#. The last update date
#. type: Content of: <refentry><refentryinfo>
#: apt_preferences.5.xml:13
msgid "&apt-author.team; &apt-email; &apt-product; <date>04 May 2009</date>"
#. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
#: apt_preferences.5.xml:101
-msgid ""
-"to the versions that are not installed and belong to the target release."
+msgid "to the versions that are not installed and belong to the target release."
msgstr ""
"est affectée aux versions qui ne sont pas installées et qui appartiennent à "
"la distribution par défaut."
#. type: Content of: <refentry><refsect1><refsect2><title>
#: apt_preferences.5.xml:313
msgid "Determination of Package Version and Distribution Properties"
-msgstr ""
-"Détermination de la version des paquets et des propriétés des distributions"
+msgstr "Détermination de la version des paquets et des propriétés des distributions"
#. type: Content of: <refentry><refsect1><refsect2><para>
#: apt_preferences.5.xml:315
#. type: <abstract></abstract>
#: guide.sgml:11
-msgid ""
-"This document provides an overview of how to use the the APT package manager."
+msgid "This document provides an overview of how to use the the APT package manager."
msgstr ""
"Ce document fournit un aperçu des méthode d'utilisation du gestionnaire de "
"paquets APT."
#. type: <p></p>
#: guide.sgml:447
-msgid ""
-"Finally, APT will print out a summary of all the changes that will occur."
-msgstr ""
-"Anfin, APT affichera un résumé de toutes les opérations qui prendront place."
+msgid "Finally, APT will print out a summary of all the changes that will occur."
+msgstr "Anfin, APT affichera un résumé de toutes les opérations qui prendront place."
#. type: <example></example>
#: guide.sgml:452
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
+#include <sstream>
#include<set>
#include<string>
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,
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);
}
{
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);
}
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());
}
FileFd Fd(Res.Filename, FileFd::ReadOnly);
Hash.AddFD(Fd.Fd(), Fd.Size());
Res.TakeHashes(Hash);
+
URIDone(Res);
return true;
}
Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n";
}
Req += "User-Agent: " + _config->Find("Acquire::http::User-Agent",
- "Debian APT-HTTP/1.3 ("VERSION")") + "\r\n\r\n";
+ "Ubuntu APT-HTTP/1.3 ("VERSION")") + "\r\n\r\n";
if (Debug == true)
cerr << Req << endl;
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;
depth. */
bool HttpMethod::Fetch(FetchItem *)
{
- if (Server == 0)
+ if (Server == 0)
return true;
// Queue the requests
}
/*}}}*/
-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();
-}
-
#define MAXLEN 360
-#include <iostream>
+
using std::cout;
using std::endl;
int DealWithHeaders(FetchResult &Res,ServerState *Srv);
bool AutoDetectProxy();
- virtual bool Fetch(FetchItem *);
virtual bool Configuration(string Message);
// In the event of a fatal signal this file will be closed and timestamped.
static int FailFd;
static time_t FailTime;
static void SigTerm(int);
+
+ protected:
+ virtual bool Fetch(FetchItem *);
string NextURI;
string AutoDetectProxyCmd;
--- /dev/null
+#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();
+}
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
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
--- /dev/null
+// -*- 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();
+}
+
+
--- /dev/null
+// -*- 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
--- /dev/null
+# 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()
+
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-01-11 15:17+0100\n"
+"POT-Creation-Date: 2009-09-15 22:58+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid " Version table:"
msgstr ""
+#: cmdline/apt-cache.cc:1623
+#, c-format
+msgid " %4i %s\n"
+msgstr ""
+
#: cmdline/apt-cache.cc:1718 cmdline/apt-cdrom.cc:134 cmdline/apt-config.cc:70
#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2675 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2626 cmdline/apt-sortpkgs.cc:144
#, c-format
msgid "%s %s for %s compiled on %s %s\n"
msgstr ""
msgstr ""
#: cmdline/apt-cdrom.cc:77
-msgid "Please provide a name for this Disc, such as 'Debian 5.0.3 Disk 1'"
+msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'"
msgstr ""
#: cmdline/apt-cdrom.cc:92
" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
msgstr ""
-#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:863
+#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:830
#, c-format
msgid "Unable to write to %s"
msgstr ""
#: ftparchive/cachedb.cc:72
msgid ""
-"DB format is invalid. If you upgraded from an older version of apt, please "
+"DB format is invalid. If you upgraded from a older version of apt, please "
"remove and re-create the database."
msgstr ""
msgid "Failed to stat %s"
msgstr ""
-#: ftparchive/cachedb.cc:242
+#: ftparchive/cachedb.cc:238
msgid "Archive has no control record"
msgstr ""
-#: ftparchive/cachedb.cc:448
+#: ftparchive/cachedb.cc:444
msgid "Unable to get a cursor"
msgstr ""
msgid " DeLink limit of %sB hit.\n"
msgstr ""
-#: ftparchive/writer.cc:389
+#: ftparchive/writer.cc:387
msgid "Archive had no package field"
msgstr ""
-#: ftparchive/writer.cc:397 ftparchive/writer.cc:628
+#: ftparchive/writer.cc:395 ftparchive/writer.cc:610
#, c-format
msgid " %s has no override entry\n"
msgstr ""
-#: ftparchive/writer.cc:458 ftparchive/writer.cc:716
+#: ftparchive/writer.cc:440 ftparchive/writer.cc:698
#, c-format
msgid " %s maintainer is %s not %s\n"
msgstr ""
-#: ftparchive/writer.cc:638
+#: ftparchive/writer.cc:620
#, c-format
msgid " %s has no source override entry\n"
msgstr ""
-#: ftparchive/writer.cc:642
+#: ftparchive/writer.cc:624
#, c-format
msgid " %s has no binary override entry either\n"
msgstr ""
msgid "Y"
msgstr ""
-#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1695
#, c-format
msgid "Regex compilation error - %s"
msgstr ""
msgid "Some packages could not be authenticated"
msgstr ""
-#: cmdline/apt-get.cc:734 cmdline/apt-get.cc:890
+#: cmdline/apt-get.cc:734 cmdline/apt-get.cc:886
msgid "There are problems and -y was used without --force-yes"
msgstr ""
msgid "Internal error, Ordering didn't finish"
msgstr ""
-#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2082 cmdline/apt-get.cc:2115
+#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2037 cmdline/apt-get.cc:2070
msgid "Unable to lock the download directory"
msgstr ""
-#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2163 cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2118 cmdline/apt-get.cc:2367
#: apt-pkg/cachefile.cc:65
msgid "The list of sources could not be read."
msgstr ""
msgid "After this operation, %sB disk space will be freed.\n"
msgstr ""
-#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2259
-#: cmdline/apt-get.cc:2262
+#: cmdline/apt-get.cc:866 cmdline/apt-get.cc:2213
#, c-format
msgid "Couldn't determine free space in %s"
msgstr ""
-#: cmdline/apt-get.cc:880
+#: cmdline/apt-get.cc:876
#, c-format
msgid "You don't have enough free space in %s."
msgstr ""
-#: cmdline/apt-get.cc:896 cmdline/apt-get.cc:916
+#: cmdline/apt-get.cc:892 cmdline/apt-get.cc:912
msgid "Trivial Only specified but this is not a trivial operation."
msgstr ""
-#: cmdline/apt-get.cc:898
+#: cmdline/apt-get.cc:894
msgid "Yes, do as I say!"
msgstr ""
-#: cmdline/apt-get.cc:900
+#: cmdline/apt-get.cc:896
#, c-format
msgid ""
"You are about to do something potentially harmful.\n"
" ?] "
msgstr ""
-#: cmdline/apt-get.cc:906 cmdline/apt-get.cc:925
+#: cmdline/apt-get.cc:902 cmdline/apt-get.cc:921
msgid "Abort."
msgstr ""
-#: cmdline/apt-get.cc:921
+#: cmdline/apt-get.cc:917
msgid "Do you want to continue [Y/n]? "
msgstr ""
-#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2313 apt-pkg/algorithms.cc:1389
+#: cmdline/apt-get.cc:989 cmdline/apt-get.cc:2264 apt-pkg/algorithms.cc:1389
#, c-format
msgid "Failed to fetch %s %s\n"
msgstr ""
-#: cmdline/apt-get.cc:1011
+#: cmdline/apt-get.cc:1007
msgid "Some files failed to download"
msgstr ""
-#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2322
+#: cmdline/apt-get.cc:1008 cmdline/apt-get.cc:2273
msgid "Download complete and in download only mode"
msgstr ""
-#: cmdline/apt-get.cc:1018
+#: cmdline/apt-get.cc:1014
msgid ""
"Unable to fetch some archives, maybe run apt-get update or try with --fix-"
"missing?"
msgstr ""
-#: cmdline/apt-get.cc:1022
+#: cmdline/apt-get.cc:1018
msgid "--fix-missing and media swapping is not currently supported"
msgstr ""
-#: cmdline/apt-get.cc:1027
+#: cmdline/apt-get.cc:1023
msgid "Unable to correct missing packages."
msgstr ""
-#: cmdline/apt-get.cc:1028
+#: cmdline/apt-get.cc:1024
msgid "Aborting install."
msgstr ""
-#: cmdline/apt-get.cc:1086
+#: cmdline/apt-get.cc:1058
#, c-format
msgid "Note, selecting %s instead of %s\n"
msgstr ""
-#: cmdline/apt-get.cc:1097
+#: cmdline/apt-get.cc:1068
#, c-format
msgid "Skipping %s, it is already installed and upgrade is not set.\n"
msgstr ""
-#: cmdline/apt-get.cc:1115
+#: cmdline/apt-get.cc:1086
#, c-format
msgid "Package %s is not installed, so not removed\n"
msgstr ""
-#: cmdline/apt-get.cc:1126
+#: cmdline/apt-get.cc:1097
#, c-format
msgid "Package %s is a virtual package provided by:\n"
msgstr ""
-#: cmdline/apt-get.cc:1138
+#: cmdline/apt-get.cc:1109
msgid " [Installed]"
msgstr ""
-#: cmdline/apt-get.cc:1143
+#: cmdline/apt-get.cc:1114
msgid "You should explicitly select one to install."
msgstr ""
-#: cmdline/apt-get.cc:1148
+#: cmdline/apt-get.cc:1119
#, c-format
msgid ""
"Package %s is not available, but is referred to by another package.\n"
"is only available from another source\n"
msgstr ""
-#: cmdline/apt-get.cc:1167
+#: cmdline/apt-get.cc:1138
msgid "However the following packages replace it:"
msgstr ""
-#: cmdline/apt-get.cc:1170
+#: cmdline/apt-get.cc:1141
#, c-format
msgid "Package %s has no installation candidate"
msgstr ""
-#: cmdline/apt-get.cc:1190
+#: cmdline/apt-get.cc:1161
#, c-format
msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
msgstr ""
-#: cmdline/apt-get.cc:1198
+#: cmdline/apt-get.cc:1169
#, c-format
msgid "%s is already the newest version.\n"
msgstr ""
-#: cmdline/apt-get.cc:1227
+#: cmdline/apt-get.cc:1198
#, c-format
msgid "Release '%s' for '%s' was not found"
msgstr ""
-#: cmdline/apt-get.cc:1229
+#: cmdline/apt-get.cc:1200
#, c-format
msgid "Version '%s' for '%s' was not found"
msgstr ""
-#: cmdline/apt-get.cc:1235
+#: cmdline/apt-get.cc:1206
#, c-format
msgid "Selected version %s (%s) for %s\n"
msgstr ""
-#: cmdline/apt-get.cc:1321
-#, c-format
-msgid "Ignore unavailable target release '%s' of package '%s'"
-msgstr ""
-
-#: cmdline/apt-get.cc:1352
+#: cmdline/apt-get.cc:1323
#, c-format
-msgid "Picking '%s' as source package instead of '%s'\n"
+msgid "No source package '%s' picking '%s' instead\n"
msgstr ""
-#. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1389
-#, c-format
-msgid "Ignore unavailable version '%s' of package '%s'"
-msgstr ""
-
-#: cmdline/apt-get.cc:1405
+#: cmdline/apt-get.cc:1360
msgid "The update command takes no arguments"
msgstr ""
-#: cmdline/apt-get.cc:1418
+#: cmdline/apt-get.cc:1373
msgid "Unable to lock the list directory"
msgstr ""
-#: cmdline/apt-get.cc:1474
+#: cmdline/apt-get.cc:1429
msgid "We are not supposed to delete stuff, can't start AutoRemover"
msgstr ""
-#: cmdline/apt-get.cc:1523
+#: cmdline/apt-get.cc:1478
msgid ""
"The following packages were automatically installed and are no longer "
"required:"
msgstr ""
-#: cmdline/apt-get.cc:1525
+#: cmdline/apt-get.cc:1480
#, c-format
msgid "%lu packages were automatically installed and are no longer required.\n"
msgstr ""
-#: cmdline/apt-get.cc:1526
+#: cmdline/apt-get.cc:1481
msgid "Use 'apt-get autoremove' to remove them."
msgstr ""
-#: cmdline/apt-get.cc:1531
+#: cmdline/apt-get.cc:1486
msgid ""
"Hmm, seems like the AutoRemover destroyed something which really\n"
"shouldn't happen. Please file a bug report against apt."
#. "that package should be filed.") << endl;
#. }
#.
-#: cmdline/apt-get.cc:1534 cmdline/apt-get.cc:1824
+#: cmdline/apt-get.cc:1489 cmdline/apt-get.cc:1779
msgid "The following information may help to resolve the situation:"
msgstr ""
-#: cmdline/apt-get.cc:1538
+#: cmdline/apt-get.cc:1493
msgid "Internal Error, AutoRemover broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:1557
+#: cmdline/apt-get.cc:1512
msgid "Internal error, AllUpgrade broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:1612
+#: cmdline/apt-get.cc:1567
#, c-format
msgid "Couldn't find task %s"
msgstr ""
-#: cmdline/apt-get.cc:1727 cmdline/apt-get.cc:1763
+#: cmdline/apt-get.cc:1682 cmdline/apt-get.cc:1718
#, c-format
msgid "Couldn't find package %s"
msgstr ""
-#: cmdline/apt-get.cc:1750
+#: cmdline/apt-get.cc:1705
#, c-format
msgid "Note, selecting %s for regex '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:1781
+#: cmdline/apt-get.cc:1736
#, c-format
msgid "%s set to manually installed.\n"
msgstr ""
-#: cmdline/apt-get.cc:1794
+#: cmdline/apt-get.cc:1749
msgid "You might want to run `apt-get -f install' to correct these:"
msgstr ""
-#: cmdline/apt-get.cc:1797
+#: cmdline/apt-get.cc:1752
msgid ""
"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
"solution)."
msgstr ""
-#: cmdline/apt-get.cc:1809
+#: cmdline/apt-get.cc:1764
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"
"or been moved out of Incoming."
msgstr ""
-#: cmdline/apt-get.cc:1827
+#: cmdline/apt-get.cc:1782
msgid "Broken packages"
msgstr ""
-#: cmdline/apt-get.cc:1856
+#: cmdline/apt-get.cc:1811
msgid "The following extra packages will be installed:"
msgstr ""
-#: cmdline/apt-get.cc:1945
+#: cmdline/apt-get.cc:1900
msgid "Suggested packages:"
msgstr ""
-#: cmdline/apt-get.cc:1946
+#: cmdline/apt-get.cc:1901
msgid "Recommended packages:"
msgstr ""
-#: cmdline/apt-get.cc:1975
+#: cmdline/apt-get.cc:1930
msgid "Calculating upgrade... "
msgstr ""
-#: cmdline/apt-get.cc:1978 methods/ftp.cc:708 methods/connect.cc:112
+#: cmdline/apt-get.cc:1933 methods/ftp.cc:707 methods/connect.cc:112
msgid "Failed"
msgstr ""
-#: cmdline/apt-get.cc:1983
+#: cmdline/apt-get.cc:1938
msgid "Done"
msgstr ""
-#: cmdline/apt-get.cc:2050 cmdline/apt-get.cc:2058
+#: cmdline/apt-get.cc:2005 cmdline/apt-get.cc:2013
msgid "Internal error, problem resolver broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:2158
+#: cmdline/apt-get.cc:2113
msgid "Must specify at least one package to fetch source for"
msgstr ""
-#: cmdline/apt-get.cc:2188 cmdline/apt-get.cc:2434
+#: cmdline/apt-get.cc:2143 cmdline/apt-get.cc:2385
#, c-format
msgid "Unable to find a source package for %s"
msgstr ""
-#: cmdline/apt-get.cc:2237
+#: cmdline/apt-get.cc:2192
#, c-format
msgid "Skipping already downloaded file '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:2272
+#: cmdline/apt-get.cc:2223
#, c-format
msgid "You don't have enough free space in %s"
msgstr ""
-#: cmdline/apt-get.cc:2278
+#: cmdline/apt-get.cc:2229
#, c-format
msgid "Need to get %sB/%sB of source archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:2281
+#: cmdline/apt-get.cc:2232
#, c-format
msgid "Need to get %sB of source archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:2287
+#: cmdline/apt-get.cc:2238
#, c-format
msgid "Fetch source %s\n"
msgstr ""
-#: cmdline/apt-get.cc:2318
+#: cmdline/apt-get.cc:2269
msgid "Failed to fetch some archives."
msgstr ""
-#: cmdline/apt-get.cc:2346
+#: cmdline/apt-get.cc:2297
#, c-format
msgid "Skipping unpack of already unpacked source in %s\n"
msgstr ""
-#: cmdline/apt-get.cc:2358
+#: cmdline/apt-get.cc:2309
#, c-format
msgid "Unpack command '%s' failed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2359
+#: cmdline/apt-get.cc:2310
#, c-format
msgid "Check if the 'dpkg-dev' package is installed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2376
+#: cmdline/apt-get.cc:2327
#, c-format
msgid "Build command '%s' failed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2395
+#: cmdline/apt-get.cc:2346
msgid "Child process failed"
msgstr ""
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2362
msgid "Must specify at least one package to check builddeps for"
msgstr ""
-#: cmdline/apt-get.cc:2439
+#: cmdline/apt-get.cc:2390
#, c-format
msgid "Unable to get build-dependency information for %s"
msgstr ""
-#: cmdline/apt-get.cc:2459
+#: cmdline/apt-get.cc:2410
#, c-format
msgid "%s has no build depends.\n"
msgstr ""
-#: cmdline/apt-get.cc:2511
+#: cmdline/apt-get.cc:2462
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because the package %s cannot be "
"found"
msgstr ""
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2515
#, 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:2600
+#: cmdline/apt-get.cc:2551
#, c-format
msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
msgstr ""
-#: cmdline/apt-get.cc:2627
+#: cmdline/apt-get.cc:2578
#, c-format
msgid "Failed to satisfy %s dependency for %s: %s"
msgstr ""
-#: cmdline/apt-get.cc:2643
+#: cmdline/apt-get.cc:2594
#, c-format
msgid "Build-dependencies for %s could not be satisfied."
msgstr ""
-#: cmdline/apt-get.cc:2648
+#: cmdline/apt-get.cc:2599
msgid "Failed to process build dependencies"
msgstr ""
-#: cmdline/apt-get.cc:2680
+#: cmdline/apt-get.cc:2631
msgid "Supported modules:"
msgstr ""
-#: cmdline/apt-get.cc:2721
+#: cmdline/apt-get.cc:2672
msgid ""
"Usage: apt-get [options] command\n"
" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
" This APT has Super Cow Powers.\n"
msgstr ""
-#: cmdline/apt-get.cc:2889
+#: cmdline/apt-get.cc:2839
msgid ""
"NOTE: This is only a simulation!\n"
" apt-get needs root privileges for real execution.\n"
msgstr ""
#: dselect/install:101
-msgid "Some errors occurred while unpacking. Packages that were installed"
+msgid "Some errors occurred while unpacking. I'm going to configure the"
msgstr ""
#: dselect/install:102
-msgid "will be configured. This may result in duplicate errors"
+msgid "packages that were installed. This may result in duplicate errors"
msgstr ""
#: dselect/install:103
msgid "Error reading archive member header"
msgstr ""
-#: apt-inst/contrib/arfile.cc:90
-#, c-format
-msgid "Invalid archive member header %s"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:102
+#: apt-inst/contrib/arfile.cc:90 apt-inst/contrib/arfile.cc:102
msgid "Invalid archive member header"
msgstr ""
#. Only warn if there are no sources.list.d.
#. Only warn if there is no sources.list file.
-#: apt-inst/extract.cc:464 apt-pkg/contrib/cdromutl.cc:157
-#: apt-pkg/contrib/fileutl.cc:240 apt-pkg/sourcelist.cc:159
-#: apt-pkg/sourcelist.cc:165 apt-pkg/acquire.cc:419 apt-pkg/init.cc:90
-#: apt-pkg/init.cc:98 apt-pkg/clean.cc:33 apt-pkg/policy.cc:279
+#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:843
+#: apt-pkg/contrib/cdromutl.cc:157 apt-pkg/sourcelist.cc:166
+#: apt-pkg/sourcelist.cc:172 apt-pkg/sourcelist.cc:327 apt-pkg/acquire.cc:419
+#: apt-pkg/init.cc:89 apt-pkg/init.cc:97 apt-pkg/clean.cc:33
+#: apt-pkg/policy.cc:281 apt-pkg/policy.cc:287
#, c-format
msgid "Unable to read %s"
msgstr ""
msgstr ""
#. Build the status cache
-#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:793
-#: apt-pkg/pkgcachegen.cc:865 apt-pkg/pkgcachegen.cc:870
-#: apt-pkg/pkgcachegen.cc:1008
+#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:763
+#: apt-pkg/pkgcachegen.cc:832 apt-pkg/pkgcachegen.cc:837
+#: apt-pkg/pkgcachegen.cc:961
msgid "Reading package lists"
msgstr ""
msgstr ""
#: methods/copy.cc:43 methods/gzip.cc:141 methods/gzip.cc:150
-#: methods/rred.cc:483 methods/rred.cc:492
+#: methods/rred.cc:234 methods/rred.cc:243
msgid "Failed to stat"
msgstr ""
-#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:489
+#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:240
msgid "Failed to set modification time"
msgstr ""
msgstr ""
#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:168
+#: methods/ftp.cc:167
msgid "Logging in"
msgstr ""
-#: methods/ftp.cc:174
+#: methods/ftp.cc:173
msgid "Unable to determine the peer name"
msgstr ""
-#: methods/ftp.cc:179
+#: methods/ftp.cc:178
msgid "Unable to determine the local name"
msgstr ""
-#: methods/ftp.cc:210 methods/ftp.cc:238
+#: methods/ftp.cc:209 methods/ftp.cc:237
#, c-format
msgid "The server refused the connection and said: %s"
msgstr ""
-#: methods/ftp.cc:216
+#: methods/ftp.cc:215
#, c-format
msgid "USER failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:223
+#: methods/ftp.cc:222
#, c-format
msgid "PASS failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:243
+#: methods/ftp.cc:242
msgid ""
"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
"is empty."
msgstr ""
-#: methods/ftp.cc:271
+#: methods/ftp.cc:270
#, c-format
msgid "Login script command '%s' failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:297
+#: methods/ftp.cc:296
#, c-format
msgid "TYPE failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226
+#: methods/ftp.cc:334 methods/ftp.cc:445 methods/rsh.cc:183 methods/rsh.cc:226
msgid "Connection timeout"
msgstr ""
-#: methods/ftp.cc:341
+#: methods/ftp.cc:340
msgid "Server closed the connection"
msgstr ""
-#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:667 methods/rsh.cc:190
+#: methods/ftp.cc:343 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
msgid "Read error"
msgstr ""
-#: methods/ftp.cc:351 methods/rsh.cc:197
+#: methods/ftp.cc:350 methods/rsh.cc:197
msgid "A response overflowed the buffer."
msgstr ""
-#: methods/ftp.cc:368 methods/ftp.cc:380
+#: methods/ftp.cc:367 methods/ftp.cc:379
msgid "Protocol corruption"
msgstr ""
-#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:706 methods/rsh.cc:232
+#: methods/ftp.cc:451 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
msgid "Write error"
msgstr ""
-#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735
+#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734
msgid "Could not create a socket"
msgstr ""
-#: methods/ftp.cc:704
+#: methods/ftp.cc:703
msgid "Could not connect data socket, connection timed out"
msgstr ""
-#: methods/ftp.cc:710
+#: methods/ftp.cc:709
msgid "Could not connect passive socket."
msgstr ""
-#: methods/ftp.cc:728
+#: methods/ftp.cc:727
msgid "getaddrinfo was unable to get a listening socket"
msgstr ""
-#: methods/ftp.cc:742
+#: methods/ftp.cc:741
msgid "Could not bind a socket"
msgstr ""
-#: methods/ftp.cc:746
+#: methods/ftp.cc:745
msgid "Could not listen on the socket"
msgstr ""
-#: methods/ftp.cc:753
+#: methods/ftp.cc:752
msgid "Could not determine the socket's name"
msgstr ""
-#: methods/ftp.cc:785
+#: methods/ftp.cc:784
msgid "Unable to send PORT command"
msgstr ""
-#: methods/ftp.cc:795
+#: methods/ftp.cc:794
#, c-format
msgid "Unknown address family %u (AF_*)"
msgstr ""
-#: methods/ftp.cc:804
+#: methods/ftp.cc:803
#, c-format
msgid "EPRT failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:824
+#: methods/ftp.cc:823
msgid "Data socket connect timed out"
msgstr ""
-#: methods/ftp.cc:831
+#: methods/ftp.cc:830
msgid "Unable to accept connection"
msgstr ""
-#: methods/ftp.cc:870 methods/http.cc:1000 methods/rsh.cc:303
+#: methods/ftp.cc:869 methods/http.cc:996 methods/rsh.cc:303
msgid "Problem hashing file"
msgstr ""
-#: methods/ftp.cc:883
+#: methods/ftp.cc:882
#, c-format
msgid "Unable to fetch file, server said '%s'"
msgstr ""
-#: methods/ftp.cc:898 methods/rsh.cc:322
+#: methods/ftp.cc:897 methods/rsh.cc:322
msgid "Data socket timed out"
msgstr ""
-#: methods/ftp.cc:928
+#: methods/ftp.cc:927
#, c-format
msgid "Data transfer failed, server said '%s'"
msgstr ""
#. Get the files information
-#: methods/ftp.cc:1005
+#: methods/ftp.cc:1002
msgid "Query"
msgstr ""
-#: methods/ftp.cc:1117
+#: methods/ftp.cc:1114
msgid "Unable to invoke "
msgstr ""
msgid "Connecting to %s"
msgstr ""
-#: methods/connect.cc:166 methods/connect.cc:185
+#: methods/connect.cc:165 methods/connect.cc:184
#, c-format
msgid "Could not resolve '%s'"
msgstr ""
-#: methods/connect.cc:191
+#: methods/connect.cc:190
#, c-format
msgid "Temporary failure resolving '%s'"
msgstr ""
-#: methods/connect.cc:194
+#: methods/connect.cc:193
#, c-format
-msgid "Something wicked happened resolving '%s:%s' (%i - %s)"
+msgid "Something wicked happened resolving '%s:%s' (%i)"
msgstr ""
-#: methods/connect.cc:241
+#: methods/connect.cc:240
#, c-format
-msgid "Unable to connect to %s:%s:"
+msgid "Unable to connect to %s %s:"
msgstr ""
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:78
+#: methods/gpgv.cc:71
#, c-format
-msgid "No keyring installed in %s."
+msgid "Couldn't access keyring: '%s'"
msgstr ""
-#: methods/gpgv.cc:104
-msgid "E: Too many keyrings should be passed to gpgv. Exiting."
-msgstr ""
-
-#: methods/gpgv.cc:121
+#: methods/gpgv.cc:107
msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
msgstr ""
-#: methods/gpgv.cc:237
+#: methods/gpgv.cc:223
msgid ""
"Internal error: Good signature, but could not determine key fingerprint?!"
msgstr ""
-#: methods/gpgv.cc:242
+#: methods/gpgv.cc:228
msgid "At least one invalid signature was encountered."
msgstr ""
-#: methods/gpgv.cc:246
+#: methods/gpgv.cc:232
#, c-format
msgid "Could not execute '%s' to verify signature (is gpgv installed?)"
msgstr ""
-#: methods/gpgv.cc:251
+#: methods/gpgv.cc:237
msgid "Unknown error executing gpgv"
msgstr ""
-#: methods/gpgv.cc:285 methods/gpgv.cc:292
+#: methods/gpgv.cc:271 methods/gpgv.cc:278
msgid "The following signatures were invalid:\n"
msgstr ""
-#: methods/gpgv.cc:299
+#: methods/gpgv.cc:285
msgid ""
"The following signatures couldn't be verified because the public key is not "
"available:\n"
msgid "Read error from %s process"
msgstr ""
-#: methods/http.cc:385
+#: methods/http.cc:384
msgid "Waiting for headers"
msgstr ""
-#: methods/http.cc:531
+#: methods/http.cc:530
#, c-format
msgid "Got a single header line over %u chars"
msgstr ""
-#: methods/http.cc:539
+#: methods/http.cc:538
msgid "Bad header line"
msgstr ""
-#: methods/http.cc:558 methods/http.cc:565
+#: methods/http.cc:557 methods/http.cc:564
msgid "The HTTP server sent an invalid reply header"
msgstr ""
-#: methods/http.cc:594
+#: methods/http.cc:593
msgid "The HTTP server sent an invalid Content-Length header"
msgstr ""
-#: methods/http.cc:609
+#: methods/http.cc:608
msgid "The HTTP server sent an invalid Content-Range header"
msgstr ""
-#: methods/http.cc:611
+#: methods/http.cc:610
msgid "This HTTP server has broken range support"
msgstr ""
-#: methods/http.cc:635
+#: methods/http.cc:634
msgid "Unknown date format"
msgstr ""
-#: methods/http.cc:791
+#: methods/http.cc:787
msgid "Select failed"
msgstr ""
-#: methods/http.cc:796
+#: methods/http.cc:792
msgid "Connection timed out"
msgstr ""
-#: methods/http.cc:819
+#: methods/http.cc:815
msgid "Error writing to output file"
msgstr ""
-#: methods/http.cc:850
+#: methods/http.cc:846
msgid "Error writing to file"
msgstr ""
-#: methods/http.cc:878
+#: methods/http.cc:874
msgid "Error writing to the file"
msgstr ""
-#: methods/http.cc:892
+#: methods/http.cc:888
msgid "Error reading from server. Remote end closed connection"
msgstr ""
-#: methods/http.cc:894
+#: methods/http.cc:890
msgid "Error reading from server"
msgstr ""
-#: methods/http.cc:985 apt-pkg/contrib/mmap.cc:233
+#: methods/http.cc:981 apt-pkg/contrib/mmap.cc:215
msgid "Failed to truncate file"
msgstr ""
-#: methods/http.cc:1150
+#: methods/http.cc:1146
msgid "Bad header data"
msgstr ""
-#: methods/http.cc:1167 methods/http.cc:1222
+#: methods/http.cc:1163 methods/http.cc:1218
msgid "Connection failed"
msgstr ""
-#: methods/http.cc:1314
+#: methods/http.cc:1310
msgid "Internal error"
msgstr ""
msgid "Can't mmap an empty file"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:202
+#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:187
#, c-format
msgid "Couldn't make mmap of %lu bytes"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:252
+#: apt-pkg/contrib/mmap.cc:234
#, c-format
msgid ""
"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. "
"Current value: %lu. (man 5 apt.conf)"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:347
-#, c-format
-msgid ""
-"The size of a MMap has already reached the defined limit of %lu bytes,abort "
-"the try to grow the MMap."
-msgstr ""
-
#. d means days, h means hours, min means minutes, s means seconds
#: apt-pkg/contrib/strutl.cc:346
#, c-format
msgid "Selection %s not found"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:458
#, c-format
msgid "Unrecognized type abbreviation: '%c'"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:516
#, c-format
msgid "Opening configuration file %s"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:684
#, c-format
msgid "Syntax error %s:%u: Block starts with no name."
msgstr ""
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:703
#, c-format
msgid "Syntax error %s:%u: Malformed tag"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:720
#, c-format
msgid "Syntax error %s:%u: Extra junk after value"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:760
#, c-format
msgid "Syntax error %s:%u: Directives can only be done at the top level"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:767
#, c-format
msgid "Syntax error %s:%u: Too many nested includes"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:771 apt-pkg/contrib/configuration.cc:776
#, c-format
msgid "Syntax error %s:%u: Included from here"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:780
#, c-format
msgid "Syntax error %s:%u: Unsupported directive '%s'"
msgstr ""
-#: apt-pkg/contrib/configuration.cc:825
+#: apt-pkg/contrib/configuration.cc:831
#, c-format
msgid "Syntax error %s:%u: Extra junk at end of file"
msgstr ""
msgid "Failed to stat the cdrom"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:151
+#: apt-pkg/contrib/fileutl.cc:149
#, c-format
msgid "Not using locking for read only lock file %s"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:156
+#: apt-pkg/contrib/fileutl.cc:154
#, c-format
msgid "Could not open lock file %s"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:174
+#: apt-pkg/contrib/fileutl.cc:172
#, c-format
msgid "Not using locking for nfs mounted lock file %s"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:178
+#: apt-pkg/contrib/fileutl.cc:176
#, c-format
msgid "Could not get lock %s"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:568
+#: apt-pkg/contrib/fileutl.cc:444
#, c-format
msgid "Waited for %s but it wasn't there"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:580
+#: apt-pkg/contrib/fileutl.cc:456
#, c-format
msgid "Sub-process %s received a segmentation fault."
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:582
+#: apt-pkg/contrib/fileutl.cc:458
#, c-format
msgid "Sub-process %s received signal %u."
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:586
+#: apt-pkg/contrib/fileutl.cc:462
#, c-format
msgid "Sub-process %s returned an error code (%u)"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:588
+#: apt-pkg/contrib/fileutl.cc:464
#, c-format
msgid "Sub-process %s exited unexpectedly"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:632
+#: apt-pkg/contrib/fileutl.cc:508
#, c-format
msgid "Could not open file %s"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:688
+#: apt-pkg/contrib/fileutl.cc:564
#, c-format
msgid "read, still have %lu to read but none left"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:718
+#: apt-pkg/contrib/fileutl.cc:594
#, c-format
msgid "write, still have %lu to write but couldn't"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:793
+#: apt-pkg/contrib/fileutl.cc:669
msgid "Problem closing the file"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:799
+#: apt-pkg/contrib/fileutl.cc:675
msgid "Problem unlinking the file"
msgstr ""
-#: apt-pkg/contrib/fileutl.cc:810
+#: apt-pkg/contrib/fileutl.cc:686
msgid "Problem syncing the file"
msgstr ""
msgid "Unable to parse package file %s (2)"
msgstr ""
-#: apt-pkg/sourcelist.cc:83
+#: apt-pkg/sourcelist.cc:90
#, c-format
msgid "Malformed line %lu in source list %s (URI)"
msgstr ""
-#: apt-pkg/sourcelist.cc:85
+#: apt-pkg/sourcelist.cc:92
#, c-format
msgid "Malformed line %lu in source list %s (dist)"
msgstr ""
-#: apt-pkg/sourcelist.cc:88
+#: apt-pkg/sourcelist.cc:95
#, c-format
msgid "Malformed line %lu in source list %s (URI parse)"
msgstr ""
-#: apt-pkg/sourcelist.cc:94
+#: apt-pkg/sourcelist.cc:101
#, c-format
msgid "Malformed line %lu in source list %s (absolute dist)"
msgstr ""
-#: apt-pkg/sourcelist.cc:101
+#: apt-pkg/sourcelist.cc:108
#, c-format
msgid "Malformed line %lu in source list %s (dist parse)"
msgstr ""
-#: apt-pkg/sourcelist.cc:199
+#: apt-pkg/sourcelist.cc:206
#, c-format
msgid "Opening %s"
msgstr ""
-#: apt-pkg/sourcelist.cc:216 apt-pkg/cdrom.cc:445
+#: apt-pkg/sourcelist.cc:223 apt-pkg/cdrom.cc:445
#, c-format
msgid "Line %u too long in source list %s."
msgstr ""
-#: apt-pkg/sourcelist.cc:236
+#: apt-pkg/sourcelist.cc:243
#, c-format
msgid "Malformed line %u in source list %s (type)"
msgstr ""
-#: apt-pkg/sourcelist.cc:240
+#: apt-pkg/sourcelist.cc:247
#, c-format
msgid "Type '%s' is not known on line %u in source list %s"
msgstr ""
-#: apt-pkg/sourcelist.cc:248 apt-pkg/sourcelist.cc:251
+#: apt-pkg/sourcelist.cc:255 apt-pkg/sourcelist.cc:258
#, c-format
msgid "Malformed line %u in source list %s (vendor id)"
msgstr ""
-#: apt-pkg/packagemanager.cc:324 apt-pkg/packagemanager.cc:586
-#, c-format
-msgid ""
-"Could not perform immediate configuration on '%s'.Please see man 5 apt.conf "
-"under APT::Immediate-Configure for details. (%d)"
-msgstr ""
-
-#: apt-pkg/packagemanager.cc:440
+#: apt-pkg/packagemanager.cc:436
#, c-format
msgid ""
"This installation run will require temporarily removing the essential "
"you really want to do it, activate the APT::Force-LoopBreak option."
msgstr ""
-#: apt-pkg/packagemanager.cc:478
-#, c-format
-msgid ""
-"Could not perform immediate configuration on already unpacked '%s'.Please "
-"see man 5 apt.conf under APT::Immediate-Configure for details."
-msgstr ""
-
#: apt-pkg/pkgrecords.cc:32
#, c-format
msgid "Index file type '%s' is not supported"
msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
msgstr ""
-#: apt-pkg/init.cc:133
+#: apt-pkg/init.cc:132
#, c-format
msgid "Packaging system '%s' is not supported"
msgstr ""
-#: apt-pkg/init.cc:149
+#: apt-pkg/init.cc:148
msgid "Unable to determine a suitable packaging system type"
msgstr ""
msgid "You may want to run apt-get update to correct these problems"
msgstr ""
-#: apt-pkg/policy.cc:316
+#: apt-pkg/policy.cc:347
#, c-format
msgid "Invalid record in the preferences file %s, no Package header"
msgstr ""
-#: apt-pkg/policy.cc:338
+#: apt-pkg/policy.cc:369
#, c-format
msgid "Did not understand pin type %s"
msgstr ""
-#: apt-pkg/policy.cc:346
+#: apt-pkg/policy.cc:377
msgid "No priority (or zero) specified for pin"
msgstr ""
msgid "Package %s %s was not found while processing file dependencies"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:706
+#: apt-pkg/pkgcachegen.cc:693
#, c-format
msgid "Couldn't stat source package list %s"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:808
+#: apt-pkg/pkgcachegen.cc:778
msgid "Collecting File Provides"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:952 apt-pkg/pkgcachegen.cc:959
+#: apt-pkg/pkgcachegen.cc:907 apt-pkg/pkgcachegen.cc:914
msgid "IO Error saving source cache"
msgstr ""
msgid "rename failed, %s (%s -> %s)."
msgstr ""
-#: apt-pkg/acquire-item.cc:432
+#: apt-pkg/acquire-item.cc:395
msgid "MD5Sum mismatch"
msgstr ""
-#: apt-pkg/acquire-item.cc:693 apt-pkg/acquire-item.cc:1455
+#: apt-pkg/acquire-item.cc:649 apt-pkg/acquire-item.cc:1411
msgid "Hash Sum mismatch"
msgstr ""
-#: apt-pkg/acquire-item.cc:1150
+#: apt-pkg/acquire-item.cc:1106
msgid "There is no public key available for the following key IDs:\n"
msgstr ""
-#: apt-pkg/acquire-item.cc:1260
+#: apt-pkg/acquire-item.cc:1216
#, c-format
msgid ""
"I wasn't able to locate a file for the %s package. This might mean you need "
"to manually fix this package. (due to missing arch)"
msgstr ""
-#: apt-pkg/acquire-item.cc:1319
+#: apt-pkg/acquire-item.cc:1275
#, c-format
msgid ""
"I wasn't able to locate file for the %s package. This might mean you need to "
"manually fix this package."
msgstr ""
-#: apt-pkg/acquire-item.cc:1360
+#: apt-pkg/acquire-item.cc:1316
#, c-format
msgid ""
"The package index files are corrupted. No Filename: field for package %s."
msgstr ""
-#: apt-pkg/acquire-item.cc:1447
+#: apt-pkg/acquire-item.cc:1403
msgid "Size mismatch"
msgstr ""
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:530
-#, c-format
-msgid "Skipping nonexistent file %s"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:536
-#, c-format
-msgid "Can't find authentication record for: %s"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:542
-#, c-format
-msgid "Hash mismatch for: %s"
-msgstr ""
-
#: apt-pkg/deb/dpkgpm.cc:49
#, c-format
msgid "Installing %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:661
+#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:659
#, c-format
msgid "Configuring %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:668
+#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:666
#, c-format
msgid "Removing %s"
msgstr ""
#: apt-pkg/deb/dpkgpm.cc:52
#, c-format
-msgid "Completely removing %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:53
-#, c-format
msgid "Running post-installation trigger %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:558
+#: apt-pkg/deb/dpkgpm.cc:557
#, c-format
msgid "Directory '%s' missing"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:654
+#: apt-pkg/deb/dpkgpm.cc:652
#, c-format
msgid "Preparing %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:655
+#: apt-pkg/deb/dpkgpm.cc:653
#, c-format
msgid "Unpacking %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:660
+#: apt-pkg/deb/dpkgpm.cc:658
#, c-format
msgid "Preparing to configure %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:662
+#: apt-pkg/deb/dpkgpm.cc:660
#, c-format
msgid "Installed %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:667
+#: apt-pkg/deb/dpkgpm.cc:665
#, c-format
msgid "Preparing for removal of %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:669
+#: apt-pkg/deb/dpkgpm.cc:667
#, c-format
msgid "Removed %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:674
+#: apt-pkg/deb/dpkgpm.cc:672
#, c-format
msgid "Preparing to completely remove %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:675
+#: apt-pkg/deb/dpkgpm.cc:673
#, c-format
msgid "Completely removed %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:879
+#: apt-pkg/deb/dpkgpm.cc:861
msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:909
+#: apt-pkg/deb/dpkgpm.cc:889
msgid "Running dpkg"
msgstr ""
msgid "Not locked"
msgstr ""
-#: methods/rred.cc:465
-#, c-format
-msgid ""
-"Could not patch %s with mmap and with file operation usage - the patch seems "
-"to be corrupt."
-msgstr ""
-
-#: methods/rred.cc:470
-#, c-format
-msgid ""
-"Could not patch %s with mmap (but no mmap specific fail) - the patch seems "
-"to be corrupt."
+#: methods/rred.cc:219
+msgid "Could not patch file"
msgstr ""
#: methods/rsh.cc:330
msgstr ""
"Project-Id-Version: apt_po\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-01-01 19:13+0100\n"
+"POT-Creation-Date: 2009-11-27 00:15+0100\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"
msgid " Version table:"
msgstr " جدول النسخ:"
+#: cmdline/apt-cache.cc:1623
+#, c-format
+msgid " %4i %s\n"
+msgstr " %4i %s\n"
+
#: cmdline/apt-cache.cc:1718 cmdline/apt-cdrom.cc:134 cmdline/apt-config.cc:70
#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2665 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2653 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"
msgid "Y"
msgstr "Y"
-#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1730
+#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1718
#, c-format
msgid "Regex compilation error - %s"
msgstr ""
msgid "Internal error, Ordering didn't finish"
msgstr "خطأ داخلي، لم تنته عملية الترتيب"
-#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2072 cmdline/apt-get.cc:2105
+#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2060 cmdline/apt-get.cc:2093
msgid "Unable to lock the download directory"
msgstr "تعذر قَفْل دليل التنزيل"
-#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2153 cmdline/apt-get.cc:2406
+#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2141 cmdline/apt-get.cc:2394
#: apt-pkg/cachefile.cc:65
msgid "The list of sources could not be read."
msgstr "تعذرت قراءة قائمة المصادر."
msgid "After this operation, %sB disk space will be freed.\n"
msgstr "بعد الاستخراج %sب من المساحة ستفرّغ.\n"
-#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2249
-#: cmdline/apt-get.cc:2252
+#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2237
+#: cmdline/apt-get.cc:2240
#, c-format
msgid "Couldn't determine free space in %s"
msgstr "تعذر حساب المساحة الحرة في %s"
msgid "Do you want to continue [Y/n]? "
msgstr "هل تريد الاستمرار [Y/n]؟"
-#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2303 apt-pkg/algorithms.cc:1389
+#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2291 apt-pkg/algorithms.cc:1389
#, c-format
msgid "Failed to fetch %s %s\n"
msgstr "فشل إحضار %s %s\n"
msgid "Some files failed to download"
msgstr "فشل تنزيل بعض الملفات"
-#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2312
+#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2300
msgid "Download complete and in download only mode"
msgstr "اكتمل التنزيل وفي وضع التنزيل فقط"
msgstr "النسخة المحددة %s (%s) للإصدارة %s\n"
#. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1311 cmdline/apt-get.cc:1379
+#: cmdline/apt-get.cc:1305 cmdline/apt-get.cc:1367
#, c-format
msgid "Ignore unavailable version '%s' of package '%s'"
msgstr ""
-#: cmdline/apt-get.cc:1313
+#: cmdline/apt-get.cc:1307
#, c-format
msgid "Ignore unavailable target release '%s' of package '%s'"
msgstr ""
-#: cmdline/apt-get.cc:1342
+#: cmdline/apt-get.cc:1332
#, c-format
msgid "Picking '%s' as source package instead of '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:1395
+#: cmdline/apt-get.cc:1383
msgid "The update command takes no arguments"
msgstr "لا يقبل الأمر update أية مُعطيات"
-#: cmdline/apt-get.cc:1408
+#: cmdline/apt-get.cc:1396
msgid "Unable to lock the list directory"
msgstr "تعذر قفل دليل القائمة"
-#: cmdline/apt-get.cc:1464
+#: cmdline/apt-get.cc:1452
msgid "We are not supposed to delete stuff, can't start AutoRemover"
msgstr ""
-#: cmdline/apt-get.cc:1513
+#: cmdline/apt-get.cc:1501
#, fuzzy
msgid ""
"The following packages were automatically installed and are no longer "
"required:"
msgstr "سيتم تثبيت الحزم الجديدة التالية:"
-#: cmdline/apt-get.cc:1515
+#: cmdline/apt-get.cc:1503
#, fuzzy, c-format
msgid "%lu packages were automatically installed and are no longer required.\n"
msgstr "سيتم تثبيت الحزم الجديدة التالية:"
-#: cmdline/apt-get.cc:1516
+#: cmdline/apt-get.cc:1504
msgid "Use 'apt-get autoremove' to remove them."
msgstr ""
-#: cmdline/apt-get.cc:1521
+#: cmdline/apt-get.cc:1509
msgid ""
"Hmm, seems like the AutoRemover destroyed something which really\n"
"shouldn't happen. Please file a bug report against apt."
#. "that package should be filed.") << endl;
#. }
#.
-#: cmdline/apt-get.cc:1524 cmdline/apt-get.cc:1814
+#: cmdline/apt-get.cc:1512 cmdline/apt-get.cc:1802
msgid "The following information may help to resolve the situation:"
msgstr "قد تساعد المعلومات التالية في حل المشكلة:"
-#: cmdline/apt-get.cc:1528
+#: cmdline/apt-get.cc:1516
#, fuzzy
msgid "Internal Error, AutoRemover broke stuff"
msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء"
-#: cmdline/apt-get.cc:1547
+#: cmdline/apt-get.cc:1535
msgid "Internal error, AllUpgrade broke stuff"
msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء"
-#: cmdline/apt-get.cc:1602
+#: cmdline/apt-get.cc:1590
#, fuzzy, c-format
msgid "Couldn't find task %s"
msgstr "تعذر العثور على الحزمة %s"
-#: cmdline/apt-get.cc:1717 cmdline/apt-get.cc:1753
+#: cmdline/apt-get.cc:1705 cmdline/apt-get.cc:1741
#, c-format
msgid "Couldn't find package %s"
msgstr "تعذر العثور على الحزمة %s"
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1728
#, c-format
msgid "Note, selecting %s for regex '%s'\n"
msgstr "لاحظ، تحديد %s بسبب صيغة regex '%s'\n"
-#: cmdline/apt-get.cc:1771
+#: cmdline/apt-get.cc:1759
#, fuzzy, c-format
msgid "%s set to manually installed.\n"
msgstr "إلا أنه سيتم تثبيت %s"
-#: cmdline/apt-get.cc:1784
+#: cmdline/apt-get.cc:1772
msgid "You might want to run `apt-get -f install' to correct these:"
msgstr "قد ترغب بتشغيل `apt-get -f install' لتصحيح هذه:"
-#: cmdline/apt-get.cc:1787
+#: cmdline/apt-get.cc:1775
msgid ""
"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
"solution)."
msgstr ""
"مُعتمدات غير مستوفاة. جرب 'apt-get -f install' بدون أسماء حزم (أو حدّد حلاً)."
-#: cmdline/apt-get.cc:1799
+#: cmdline/apt-get.cc:1787
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"
"or been moved out of Incoming."
msgstr ""
-#: cmdline/apt-get.cc:1817
+#: cmdline/apt-get.cc:1805
msgid "Broken packages"
msgstr "حزم معطوبة"
-#: cmdline/apt-get.cc:1846
+#: cmdline/apt-get.cc:1834
msgid "The following extra packages will be installed:"
msgstr "سيتم تثبيت الحزم الإضافيّة التالية:"
-#: cmdline/apt-get.cc:1935
+#: cmdline/apt-get.cc:1923
msgid "Suggested packages:"
msgstr "الحزم المقترحة:"
-#: cmdline/apt-get.cc:1936
+#: cmdline/apt-get.cc:1924
msgid "Recommended packages:"
msgstr "الحزم المستحسنة:"
-#: cmdline/apt-get.cc:1965
+#: cmdline/apt-get.cc:1953
msgid "Calculating upgrade... "
msgstr "حساب الترقية..."
-#: cmdline/apt-get.cc:1968 methods/ftp.cc:708 methods/connect.cc:112
+#: cmdline/apt-get.cc:1956 methods/ftp.cc:707 methods/connect.cc:112
msgid "Failed"
msgstr "فشل"
-#: cmdline/apt-get.cc:1973
+#: cmdline/apt-get.cc:1961
msgid "Done"
msgstr "تمّ"
-#: cmdline/apt-get.cc:2040 cmdline/apt-get.cc:2048
+#: cmdline/apt-get.cc:2028 cmdline/apt-get.cc:2036
msgid "Internal error, problem resolver broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:2148
+#: cmdline/apt-get.cc:2136
msgid "Must specify at least one package to fetch source for"
msgstr "يجب تحديد حزمة واحدة على الأقل لجلب مصدرها"
-#: cmdline/apt-get.cc:2178 cmdline/apt-get.cc:2424
+#: cmdline/apt-get.cc:2166 cmdline/apt-get.cc:2412
#, c-format
msgid "Unable to find a source package for %s"
msgstr "تعذر العثور على مصدر الحزمة %s"
-#: cmdline/apt-get.cc:2227
+#: cmdline/apt-get.cc:2215
#, c-format
msgid "Skipping already downloaded file '%s'\n"
msgstr "تخطي الملف '%s' المنزل مسبقاً\n"
-#: cmdline/apt-get.cc:2262
+#: cmdline/apt-get.cc:2250
#, c-format
msgid "You don't have enough free space in %s"
msgstr "ليس هناك مساحة كافية في %s"
-#: cmdline/apt-get.cc:2268
+#: cmdline/apt-get.cc:2256
#, c-format
msgid "Need to get %sB/%sB of source archives.\n"
msgstr "يجب جلب %sب/%sب من الأرشيفات المصدرية.\n"
-#: cmdline/apt-get.cc:2271
+#: cmdline/apt-get.cc:2259
#, c-format
msgid "Need to get %sB of source archives.\n"
msgstr "يجب جلب %sب من الأرشيفات المصدريّة.\n"
-#: cmdline/apt-get.cc:2277
+#: cmdline/apt-get.cc:2265
#, c-format
msgid "Fetch source %s\n"
msgstr "إحضار المصدر %s\n"
-#: cmdline/apt-get.cc:2308
+#: cmdline/apt-get.cc:2296
msgid "Failed to fetch some archives."
msgstr "فشل إحضار بعض الأرشيفات."
-#: cmdline/apt-get.cc:2336
+#: cmdline/apt-get.cc:2324
#, c-format
msgid "Skipping unpack of already unpacked source in %s\n"
msgstr ""
-#: cmdline/apt-get.cc:2348
+#: cmdline/apt-get.cc:2336
#, c-format
msgid "Unpack command '%s' failed.\n"
msgstr "أمر فك الحزمة '%s' فشل.\n"
-#: cmdline/apt-get.cc:2349
+#: cmdline/apt-get.cc:2337
#, c-format
msgid "Check if the 'dpkg-dev' package is installed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2366
+#: cmdline/apt-get.cc:2354
#, c-format
msgid "Build command '%s' failed.\n"
msgstr "أمر البناء '%s' فشل.\n"
-#: cmdline/apt-get.cc:2385
+#: cmdline/apt-get.cc:2373
msgid "Child process failed"
msgstr ""
-#: cmdline/apt-get.cc:2401
+#: cmdline/apt-get.cc:2389
msgid "Must specify at least one package to check builddeps for"
msgstr ""
-#: cmdline/apt-get.cc:2429
+#: cmdline/apt-get.cc:2417
#, c-format
msgid "Unable to get build-dependency information for %s"
msgstr ""
-#: cmdline/apt-get.cc:2449
+#: cmdline/apt-get.cc:2437
#, c-format
msgid "%s has no build depends.\n"
msgstr ""
-#: cmdline/apt-get.cc:2501
+#: cmdline/apt-get.cc:2489
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because the package %s cannot be "
"found"
msgstr ""
-#: cmdline/apt-get.cc:2554
+#: cmdline/apt-get.cc:2542
#, 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:2590
+#: cmdline/apt-get.cc:2578
#, c-format
msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
msgstr ""
-#: cmdline/apt-get.cc:2617
+#: cmdline/apt-get.cc:2605
#, c-format
msgid "Failed to satisfy %s dependency for %s: %s"
msgstr ""
-#: cmdline/apt-get.cc:2633
+#: cmdline/apt-get.cc:2621
#, c-format
msgid "Build-dependencies for %s could not be satisfied."
msgstr ""
-#: cmdline/apt-get.cc:2638
+#: cmdline/apt-get.cc:2626
msgid "Failed to process build dependencies"
msgstr ""
-#: cmdline/apt-get.cc:2670
+#: cmdline/apt-get.cc:2658
msgid "Supported modules:"
msgstr "الوحدات المدعومة:"
-#: cmdline/apt-get.cc:2711
+#: cmdline/apt-get.cc:2699
msgid ""
"Usage: apt-get [options] command\n"
" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
" This APT has Super Cow Powers.\n"
msgstr ""
-#: cmdline/apt-get.cc:2879
+#: cmdline/apt-get.cc:2866
msgid ""
"NOTE: This is only a simulation!\n"
" apt-get needs root privileges for real execution.\n"
#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:843
#: apt-pkg/contrib/cdromutl.cc:157 apt-pkg/sourcelist.cc:166
#: apt-pkg/sourcelist.cc:172 apt-pkg/sourcelist.cc:327 apt-pkg/acquire.cc:419
-#: apt-pkg/init.cc:90 apt-pkg/init.cc:98 apt-pkg/clean.cc:33
+#: apt-pkg/init.cc:89 apt-pkg/init.cc:97 apt-pkg/clean.cc:33
#: apt-pkg/policy.cc:281 apt-pkg/policy.cc:287
#, c-format
msgid "Unable to read %s"
msgstr "لم يُعثر على الملف"
#: methods/copy.cc:43 methods/gzip.cc:141 methods/gzip.cc:150
-#: methods/rred.cc:234 methods/rred.cc:243
+#: methods/rred.cc:483 methods/rred.cc:492
msgid "Failed to stat"
msgstr "فشيل تنفيذ stat"
-#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:240
+#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:489
msgid "Failed to set modification time"
msgstr "فشل تعيين وقت التعديل"
msgstr ""
#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:168
+#: methods/ftp.cc:167
msgid "Logging in"
msgstr "تسجيل الدخول"
-#: methods/ftp.cc:174
+#: methods/ftp.cc:173
msgid "Unable to determine the peer name"
msgstr ""
-#: methods/ftp.cc:179
+#: methods/ftp.cc:178
msgid "Unable to determine the local name"
msgstr ""
-#: methods/ftp.cc:210 methods/ftp.cc:238
+#: methods/ftp.cc:209 methods/ftp.cc:237
#, c-format
msgid "The server refused the connection and said: %s"
msgstr "رفض الخادم اتصالنا بالرد: %s"
-#: methods/ftp.cc:216
+#: methods/ftp.cc:215
#, c-format
msgid "USER failed, server said: %s"
msgstr "فشل USER، ردّ الخادم: %s"
-#: methods/ftp.cc:223
+#: methods/ftp.cc:222
#, c-format
msgid "PASS failed, server said: %s"
msgstr "فشل PASS، ردّ الخادم: %s"
-#: methods/ftp.cc:243
+#: methods/ftp.cc:242
msgid ""
"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
"is empty."
"تم تحديد خادم بروكسي ولكن دون نص تسجيل دخول برمجي، Acquire::ftp::ProxyLogin "
"فارغ."
-#: methods/ftp.cc:271
+#: methods/ftp.cc:270
#, c-format
msgid "Login script command '%s' failed, server said: %s"
msgstr "فشل أمر نص تسجيل الدخول البرمجي '%s'، ردّ الخادم: %s"
-#: methods/ftp.cc:297
+#: methods/ftp.cc:296
#, c-format
msgid "TYPE failed, server said: %s"
msgstr "فشل TYPE، ردّ الخادم: %s"
-#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226
+#: methods/ftp.cc:334 methods/ftp.cc:445 methods/rsh.cc:183 methods/rsh.cc:226
msgid "Connection timeout"
msgstr "انتهى وقت الاتصال"
-#: methods/ftp.cc:341
+#: methods/ftp.cc:340
msgid "Server closed the connection"
msgstr "أغلق الخادم الاتصال"
-#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
+#: methods/ftp.cc:343 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
msgid "Read error"
msgstr "خطأ في القراءة"
-#: methods/ftp.cc:351 methods/rsh.cc:197
+#: methods/ftp.cc:350 methods/rsh.cc:197
msgid "A response overflowed the buffer."
msgstr ""
-#: methods/ftp.cc:368 methods/ftp.cc:380
+#: methods/ftp.cc:367 methods/ftp.cc:379
msgid "Protocol corruption"
msgstr ""
-#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
+#: methods/ftp.cc:451 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
msgid "Write error"
msgstr "خطأ في الكتابة"
-#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735
+#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734
msgid "Could not create a socket"
msgstr ""
-#: methods/ftp.cc:704
+#: methods/ftp.cc:703
msgid "Could not connect data socket, connection timed out"
msgstr ""
-#: methods/ftp.cc:710
+#: methods/ftp.cc:709
msgid "Could not connect passive socket."
msgstr ""
-#: methods/ftp.cc:728
+#: methods/ftp.cc:727
msgid "getaddrinfo was unable to get a listening socket"
msgstr ""
-#: methods/ftp.cc:742
+#: methods/ftp.cc:741
msgid "Could not bind a socket"
msgstr ""
-#: methods/ftp.cc:746
+#: methods/ftp.cc:745
msgid "Could not listen on the socket"
msgstr ""
-#: methods/ftp.cc:753
+#: methods/ftp.cc:752
msgid "Could not determine the socket's name"
msgstr ""
-#: methods/ftp.cc:785
+#: methods/ftp.cc:784
msgid "Unable to send PORT command"
msgstr "تعذر إرسال الأمر PORT"
-#: methods/ftp.cc:795
+#: methods/ftp.cc:794
#, c-format
msgid "Unknown address family %u (AF_*)"
msgstr ""
-#: methods/ftp.cc:804
+#: methods/ftp.cc:803
#, c-format
msgid "EPRT failed, server said: %s"
msgstr "فشل EPRT، ردّ الخادم: %s"
-#: methods/ftp.cc:824
+#: methods/ftp.cc:823
msgid "Data socket connect timed out"
msgstr ""
-#: methods/ftp.cc:831
+#: methods/ftp.cc:830
msgid "Unable to accept connection"
msgstr "تعذر قبول الاتصال"
-#: methods/ftp.cc:870 methods/http.cc:999 methods/rsh.cc:303
+#: methods/ftp.cc:869 methods/http.cc:997 methods/rsh.cc:303
msgid "Problem hashing file"
msgstr ""
-#: methods/ftp.cc:883
+#: methods/ftp.cc:882
#, c-format
msgid "Unable to fetch file, server said '%s'"
msgstr "تعذر إحضار الملف، ردّ الخادم '%s'"
-#: methods/ftp.cc:898 methods/rsh.cc:322
+#: methods/ftp.cc:897 methods/rsh.cc:322
msgid "Data socket timed out"
msgstr ""
-#: methods/ftp.cc:928
+#: methods/ftp.cc:927
#, c-format
msgid "Data transfer failed, server said '%s'"
msgstr "فشل نقل البيانات، ردّ الخادم '%s'"
#. Get the files information
-#: methods/ftp.cc:1005
+#: methods/ftp.cc:1002
msgid "Query"
msgstr "استعلام"
-#: methods/ftp.cc:1117
+#: methods/ftp.cc:1114
msgid "Unable to invoke "
msgstr ""
msgid "Read error from %s process"
msgstr ""
-#: methods/http.cc:385
+#: methods/http.cc:384
msgid "Waiting for headers"
msgstr "بانتظار الترويسات"
-#: methods/http.cc:531
+#: methods/http.cc:530
#, c-format
msgid "Got a single header line over %u chars"
msgstr ""
-#: methods/http.cc:539
+#: methods/http.cc:538
msgid "Bad header line"
msgstr "سطر ترويسة سيء"
-#: methods/http.cc:558 methods/http.cc:565
+#: methods/http.cc:557 methods/http.cc:564
msgid "The HTTP server sent an invalid reply header"
msgstr "أرسل خادم http ترويسة ردّ غير صالحة"
-#: methods/http.cc:594
+#: methods/http.cc:593
msgid "The HTTP server sent an invalid Content-Length header"
msgstr "أرسل خادم http ترويسة طول محتويات (ِContent-Length) غير صالحة"
-#: methods/http.cc:609
+#: methods/http.cc:608
msgid "The HTTP server sent an invalid Content-Range header"
msgstr "أرسل خادم http ترويسة مدى محتويات (ِContent-Range) غير صالحة"
-#: methods/http.cc:611
+#: methods/http.cc:610
msgid "This HTTP server has broken range support"
msgstr "خادم http له دعم مدى معطوب"
-#: methods/http.cc:635
+#: methods/http.cc:634
msgid "Unknown date format"
msgstr "نسق تاريخ مجهول"
-#: methods/http.cc:790
+#: methods/http.cc:788
msgid "Select failed"
msgstr "فشل التحديد"
-#: methods/http.cc:795
+#: methods/http.cc:793
msgid "Connection timed out"
msgstr "انتهى وقت الاتصال"
-#: methods/http.cc:818
+#: methods/http.cc:816
msgid "Error writing to output file"
msgstr "خطأ في الكتابة إلى ملف المُخرجات"
-#: methods/http.cc:849
+#: methods/http.cc:847
msgid "Error writing to file"
msgstr "خطأ في الكتابة إلى الملف"
-#: methods/http.cc:877
+#: methods/http.cc:875
msgid "Error writing to the file"
msgstr "خطأ في الكتابة إلى الملف"
-#: methods/http.cc:891
+#: methods/http.cc:889
msgid "Error reading from server. Remote end closed connection"
msgstr "خطأ في القراءة من الخادم. أقفل الطرف الآخر الاتصال"
-#: methods/http.cc:893
+#: methods/http.cc:891
msgid "Error reading from server"
msgstr "خطأ في القراءة من الخادم"
-#: methods/http.cc:984 apt-pkg/contrib/mmap.cc:215
+#: methods/http.cc:982 apt-pkg/contrib/mmap.cc:233
#, fuzzy
msgid "Failed to truncate file"
msgstr "فشلت كتابة الملف %s"
-#: methods/http.cc:1149
+#: methods/http.cc:1147
msgid "Bad header data"
msgstr "بيانات ترويسة سيئة"
-#: methods/http.cc:1166 methods/http.cc:1221
+#: methods/http.cc:1164 methods/http.cc:1219
msgid "Connection failed"
msgstr "فشل الاتصال"
-#: methods/http.cc:1313
+#: methods/http.cc:1311
msgid "Internal error"
msgstr "خطأ داخلي"
msgid "Can't mmap an empty file"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:187
+#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:202
#, c-format
msgid "Couldn't make mmap of %lu bytes"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:234
+#: apt-pkg/contrib/mmap.cc:252
#, c-format
msgid ""
"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. "
"Current value: %lu. (man 5 apt.conf)"
msgstr ""
+#: apt-pkg/contrib/mmap.cc:347
+#, c-format
+msgid ""
+"The size of a MMap has already reached the defined limit of %lu bytes,abort "
+"the try to grow the MMap."
+msgstr ""
+
#. d means days, h means hours, min means minutes, s means seconds
#: apt-pkg/contrib/strutl.cc:346
#, c-format
msgid "Malformed line %u in source list %s (vendor id)"
msgstr ""
-#: apt-pkg/packagemanager.cc:324 apt-pkg/packagemanager.cc:586
+#: apt-pkg/packagemanager.cc:321 apt-pkg/packagemanager.cc:576
#, c-format
msgid ""
"Could not perform immediate configuration on '%s'.Please see man 5 apt.conf "
"under APT::Immediate-Configure for details. (%d)"
msgstr ""
-#: apt-pkg/packagemanager.cc:440
+#: apt-pkg/packagemanager.cc:437
#, c-format
msgid ""
"This installation run will require temporarily removing the essential "
"you really want to do it, activate the APT::Force-LoopBreak option."
msgstr ""
-#: apt-pkg/packagemanager.cc:478
+#: apt-pkg/packagemanager.cc:475
#, c-format
msgid ""
"Could not perform immediate configuration on already unpacked '%s'.Please "
msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
msgstr "الرجاء إدخال القرص المُسمّى '%s' في السوّاقة '%s' وضغط مفتاح الإدخال."
-#: apt-pkg/init.cc:133
+#: apt-pkg/init.cc:132
#, c-format
msgid "Packaging system '%s' is not supported"
msgstr "نظام الحزم '%s' غير مدعوم"
-#: apt-pkg/init.cc:149
+#: apt-pkg/init.cc:148
msgid "Unable to determine a suitable packaging system type"
msgstr ""
msgid "rename failed, %s (%s -> %s)."
msgstr "فشل إعادة التسمية ، %s (%s -> %s)."
-#: apt-pkg/acquire-item.cc:395
+#: apt-pkg/acquire-item.cc:396
msgid "MD5Sum mismatch"
msgstr "MD5Sum غير متطابقة"
-#: apt-pkg/acquire-item.cc:649 apt-pkg/acquire-item.cc:1411
+#: apt-pkg/acquire-item.cc:657 apt-pkg/acquire-item.cc:1419
#, fuzzy
msgid "Hash Sum mismatch"
msgstr "MD5Sum غير متطابقة"
-#: apt-pkg/acquire-item.cc:1106
+#: apt-pkg/acquire-item.cc:1114
msgid "There is no public key available for the following key IDs:\n"
msgstr ""
-#: apt-pkg/acquire-item.cc:1216
+#: apt-pkg/acquire-item.cc:1224
#, c-format
msgid ""
"I wasn't able to locate a file for the %s package. This might mean you need "
"to manually fix this package. (due to missing arch)"
msgstr ""
-#: apt-pkg/acquire-item.cc:1275
+#: apt-pkg/acquire-item.cc:1283
#, c-format
msgid ""
"I wasn't able to locate file for the %s package. This might mean you need to "
"manually fix this package."
msgstr ""
-#: apt-pkg/acquire-item.cc:1316
+#: apt-pkg/acquire-item.cc:1324
#, c-format
msgid ""
"The package index files are corrupted. No Filename: field for package %s."
msgstr ""
-#: apt-pkg/acquire-item.cc:1403
+#: apt-pkg/acquire-item.cc:1411
msgid "Size mismatch"
msgstr "الحجم غير متطابق"
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:530
-#, fuzzy, c-format
-#| msgid "Opening configuration file %s"
-msgid "Skipping nonexistent file %s"
-msgstr "فتح ملف التهيئة %s"
-
-#: apt-pkg/indexcopy.cc:536
-#, c-format
-msgid "Can't find authentication record for: %s"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:542
-#, fuzzy, c-format
-msgid "Hash mismatch for: %s"
-msgstr "MD5Sum غير متطابقة"
-
#: apt-pkg/deb/dpkgpm.cc:49
#, fuzzy, c-format
msgid "Installing %s"
msgstr "تم تثبيت %s"
-#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:661
+#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:660
#, c-format
msgid "Configuring %s"
msgstr "تهيئة %s"
-#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:668
+#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:667
#, c-format
msgid "Removing %s"
msgstr "إزالة %s"
#: apt-pkg/deb/dpkgpm.cc:52
-#, fuzzy, c-format
-#| msgid "Completely removed %s"
-msgid "Completely removing %s"
-msgstr "تمت إزالة %s بالكامل"
-
-#: apt-pkg/deb/dpkgpm.cc:53
#, c-format
msgid "Running post-installation trigger %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:558
+#: apt-pkg/deb/dpkgpm.cc:557
#, c-format
msgid "Directory '%s' missing"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:654
+#: apt-pkg/deb/dpkgpm.cc:653
#, c-format
msgid "Preparing %s"
msgstr "تحضير %s"
-#: apt-pkg/deb/dpkgpm.cc:655
+#: apt-pkg/deb/dpkgpm.cc:654
#, c-format
msgid "Unpacking %s"
msgstr "فتح %s"
-#: apt-pkg/deb/dpkgpm.cc:660
+#: apt-pkg/deb/dpkgpm.cc:659
#, c-format
msgid "Preparing to configure %s"
msgstr "التحضير لتهيئة %s"
-#: apt-pkg/deb/dpkgpm.cc:662
+#: apt-pkg/deb/dpkgpm.cc:661
#, c-format
msgid "Installed %s"
msgstr "تم تثبيت %s"
-#: apt-pkg/deb/dpkgpm.cc:667
+#: apt-pkg/deb/dpkgpm.cc:666
#, c-format
msgid "Preparing for removal of %s"
msgstr "التحضير لإزالة %s"
-#: apt-pkg/deb/dpkgpm.cc:669
+#: apt-pkg/deb/dpkgpm.cc:668
#, c-format
msgid "Removed %s"
msgstr "تم إزالة %s"
-#: apt-pkg/deb/dpkgpm.cc:674
+#: apt-pkg/deb/dpkgpm.cc:673
#, c-format
msgid "Preparing to completely remove %s"
msgstr "التحضير لإزالة %s بالكامل"
-#: apt-pkg/deb/dpkgpm.cc:675
+#: apt-pkg/deb/dpkgpm.cc:674
#, c-format
msgid "Completely removed %s"
msgstr "تمت إزالة %s بالكامل"
-#: apt-pkg/deb/dpkgpm.cc:879
+#: apt-pkg/deb/dpkgpm.cc:878
msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:909
+#: apt-pkg/deb/dpkgpm.cc:907
msgid "Running dpkg"
msgstr ""
msgid "Not locked"
msgstr ""
-#: methods/rred.cc:219
-msgid "Could not patch file"
+#: methods/rred.cc:465
+#, c-format
+msgid ""
+"Could not patch %s with mmap and with file operation usage - the patch seems "
+"to be corrupt."
+msgstr ""
+
+#: methods/rred.cc:470
+#, c-format
+msgid ""
+"Could not patch %s with mmap (but no mmap specific fail) - the patch seems "
+"to be corrupt."
msgstr ""
#: methods/rsh.cc:330
msgid "Connection closed prematurely"
msgstr ""
-#~ msgid " %4i %s\n"
-#~ msgstr " %4i %s\n"
-
#~ msgid "%4i %s\n"
#~ msgstr "%4i %s\n"
msgstr ""
"Project-Id-Version: apt-ku\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-01-01 19:13+0100\n"
+"POT-Creation-Date: 2009-11-27 00:15+0100\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"
msgid " Version table:"
msgstr " Tabloya guhertoyan:"
+#: cmdline/apt-cache.cc:1623
+#, c-format
+msgid " %4i %s\n"
+msgstr " %4i %s\n"
+
#: cmdline/apt-cache.cc:1718 cmdline/apt-cdrom.cc:134 cmdline/apt-config.cc:70
#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2665 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2653 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"
msgid "Y"
msgstr "E"
-#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1730
+#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1718
#, c-format
msgid "Regex compilation error - %s"
msgstr ""
msgid "Internal error, Ordering didn't finish"
msgstr ""
-#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2072 cmdline/apt-get.cc:2105
+#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2060 cmdline/apt-get.cc:2093
msgid "Unable to lock the download directory"
msgstr "Pelrêça daxistinê nayê quflekirin"
-#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2153 cmdline/apt-get.cc:2406
+#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2141 cmdline/apt-get.cc:2394
#: apt-pkg/cachefile.cc:65
msgid "The list of sources could not be read."
msgstr ""
msgid "After this operation, %sB disk space will be freed.\n"
msgstr ""
-#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2249
-#: cmdline/apt-get.cc:2252
+#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2237
+#: cmdline/apt-get.cc:2240
#, c-format
msgid "Couldn't determine free space in %s"
msgstr "Nikarî cihê vala li %s tesbît bike"
msgid "Do you want to continue [Y/n]? "
msgstr "Dixwazî bidomînî [E/n]?"
-#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2303 apt-pkg/algorithms.cc:1389
+#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2291 apt-pkg/algorithms.cc:1389
#, c-format
msgid "Failed to fetch %s %s\n"
msgstr "Anîna %s %s biserneket\n"
msgid "Some files failed to download"
msgstr "Daxistina çend pelan biserneket"
-#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2312
+#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2300
msgid "Download complete and in download only mode"
msgstr ""
msgstr ""
#. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1311 cmdline/apt-get.cc:1379
+#: cmdline/apt-get.cc:1305 cmdline/apt-get.cc:1367
#, c-format
msgid "Ignore unavailable version '%s' of package '%s'"
msgstr ""
-#: cmdline/apt-get.cc:1313
+#: cmdline/apt-get.cc:1307
#, c-format
msgid "Ignore unavailable target release '%s' of package '%s'"
msgstr ""
-#: cmdline/apt-get.cc:1342
+#: cmdline/apt-get.cc:1332
#, c-format
msgid "Picking '%s' as source package instead of '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:1395
+#: cmdline/apt-get.cc:1383
msgid "The update command takes no arguments"
msgstr ""
-#: cmdline/apt-get.cc:1408
+#: cmdline/apt-get.cc:1396
msgid "Unable to lock the list directory"
msgstr ""
-#: cmdline/apt-get.cc:1464
+#: cmdline/apt-get.cc:1452
msgid "We are not supposed to delete stuff, can't start AutoRemover"
msgstr ""
-#: cmdline/apt-get.cc:1513
+#: cmdline/apt-get.cc:1501
#, 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:1515
+#: cmdline/apt-get.cc:1503
#, fuzzy, c-format
msgid "%lu packages were automatically installed and are no longer required.\n"
msgstr "Ev pakêtên NÛ dê werine sazkirin:"
-#: cmdline/apt-get.cc:1516
+#: cmdline/apt-get.cc:1504
msgid "Use 'apt-get autoremove' to remove them."
msgstr ""
-#: cmdline/apt-get.cc:1521
+#: cmdline/apt-get.cc:1509
msgid ""
"Hmm, seems like the AutoRemover destroyed something which really\n"
"shouldn't happen. Please file a bug report against apt."
#. "that package should be filed.") << endl;
#. }
#.
-#: cmdline/apt-get.cc:1524 cmdline/apt-get.cc:1814
+#: cmdline/apt-get.cc:1512 cmdline/apt-get.cc:1802
msgid "The following information may help to resolve the situation:"
msgstr ""
-#: cmdline/apt-get.cc:1528
+#: cmdline/apt-get.cc:1516
msgid "Internal Error, AutoRemover broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:1547
+#: cmdline/apt-get.cc:1535
msgid "Internal error, AllUpgrade broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:1602
+#: cmdline/apt-get.cc:1590
#, c-format
msgid "Couldn't find task %s"
msgstr "Peywira %s nehate dîtin"
-#: cmdline/apt-get.cc:1717 cmdline/apt-get.cc:1753
+#: cmdline/apt-get.cc:1705 cmdline/apt-get.cc:1741
#, c-format
msgid "Couldn't find package %s"
msgstr "Nikarî pakêta %s bibîne"
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1728
#, c-format
msgid "Note, selecting %s for regex '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:1771
+#: cmdline/apt-get.cc:1759
#, fuzzy, c-format
msgid "%s set to manually installed.\n"
msgstr "lê %s dê were sazkirin"
-#: cmdline/apt-get.cc:1784
+#: cmdline/apt-get.cc:1772
msgid "You might want to run `apt-get -f install' to correct these:"
msgstr ""
-#: cmdline/apt-get.cc:1787
+#: cmdline/apt-get.cc:1775
msgid ""
"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
"solution)."
msgstr ""
-#: cmdline/apt-get.cc:1799
+#: cmdline/apt-get.cc:1787
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"
"or been moved out of Incoming."
msgstr ""
-#: cmdline/apt-get.cc:1817
+#: cmdline/apt-get.cc:1805
msgid "Broken packages"
msgstr "Paketên şikestî"
-#: cmdline/apt-get.cc:1846
+#: cmdline/apt-get.cc:1834
msgid "The following extra packages will be installed:"
msgstr ""
-#: cmdline/apt-get.cc:1935
+#: cmdline/apt-get.cc:1923
msgid "Suggested packages:"
msgstr "Paketên tên pêşniyaz kirin:"
-#: cmdline/apt-get.cc:1936
+#: cmdline/apt-get.cc:1924
msgid "Recommended packages:"
msgstr "Paketên tên tawsiyê kirin:"
-#: cmdline/apt-get.cc:1965
+#: cmdline/apt-get.cc:1953
msgid "Calculating upgrade... "
msgstr "Bilindkirin tê hesibandin..."
-#: cmdline/apt-get.cc:1968 methods/ftp.cc:708 methods/connect.cc:112
+#: cmdline/apt-get.cc:1956 methods/ftp.cc:707 methods/connect.cc:112
msgid "Failed"
msgstr "Serneket"
-#: cmdline/apt-get.cc:1973
+#: cmdline/apt-get.cc:1961
msgid "Done"
msgstr "Temam"
-#: cmdline/apt-get.cc:2040 cmdline/apt-get.cc:2048
+#: cmdline/apt-get.cc:2028 cmdline/apt-get.cc:2036
msgid "Internal error, problem resolver broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:2148
+#: cmdline/apt-get.cc:2136
msgid "Must specify at least one package to fetch source for"
msgstr ""
-#: cmdline/apt-get.cc:2178 cmdline/apt-get.cc:2424
+#: cmdline/apt-get.cc:2166 cmdline/apt-get.cc:2412
#, c-format
msgid "Unable to find a source package for %s"
msgstr ""
-#: cmdline/apt-get.cc:2227
+#: cmdline/apt-get.cc:2215
#, c-format
msgid "Skipping already downloaded file '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:2262
+#: cmdline/apt-get.cc:2250
#, c-format
msgid "You don't have enough free space in %s"
msgstr "Cihê vala li %s têre nake"
-#: cmdline/apt-get.cc:2268
+#: cmdline/apt-get.cc:2256
#, c-format
msgid "Need to get %sB/%sB of source archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:2271
+#: cmdline/apt-get.cc:2259
#, c-format
msgid "Need to get %sB of source archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:2277
+#: cmdline/apt-get.cc:2265
#, c-format
msgid "Fetch source %s\n"
msgstr "Çavkanîna %s bîne\n"
-#: cmdline/apt-get.cc:2308
+#: cmdline/apt-get.cc:2296
msgid "Failed to fetch some archives."
msgstr "Anîna çend arşîvan biserneket."
-#: cmdline/apt-get.cc:2336
+#: cmdline/apt-get.cc:2324
#, c-format
msgid "Skipping unpack of already unpacked source in %s\n"
msgstr ""
-#: cmdline/apt-get.cc:2348
+#: cmdline/apt-get.cc:2336
#, c-format
msgid "Unpack command '%s' failed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2349
+#: cmdline/apt-get.cc:2337
#, c-format
msgid "Check if the 'dpkg-dev' package is installed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2366
+#: cmdline/apt-get.cc:2354
#, c-format
msgid "Build command '%s' failed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2385
+#: cmdline/apt-get.cc:2373
msgid "Child process failed"
msgstr ""
-#: cmdline/apt-get.cc:2401
+#: cmdline/apt-get.cc:2389
msgid "Must specify at least one package to check builddeps for"
msgstr ""
-#: cmdline/apt-get.cc:2429
+#: cmdline/apt-get.cc:2417
#, c-format
msgid "Unable to get build-dependency information for %s"
msgstr ""
-#: cmdline/apt-get.cc:2449
+#: cmdline/apt-get.cc:2437
#, c-format
msgid "%s has no build depends.\n"
msgstr ""
-#: cmdline/apt-get.cc:2501
+#: cmdline/apt-get.cc:2489
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because the package %s cannot be "
"found"
msgstr ""
-#: cmdline/apt-get.cc:2554
+#: cmdline/apt-get.cc:2542
#, 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:2590
+#: cmdline/apt-get.cc:2578
#, c-format
msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
msgstr ""
-#: cmdline/apt-get.cc:2617
+#: cmdline/apt-get.cc:2605
#, c-format
msgid "Failed to satisfy %s dependency for %s: %s"
msgstr ""
-#: cmdline/apt-get.cc:2633
+#: cmdline/apt-get.cc:2621
#, c-format
msgid "Build-dependencies for %s could not be satisfied."
msgstr ""
-#: cmdline/apt-get.cc:2638
+#: cmdline/apt-get.cc:2626
msgid "Failed to process build dependencies"
msgstr ""
-#: cmdline/apt-get.cc:2670
+#: cmdline/apt-get.cc:2658
msgid "Supported modules:"
msgstr ""
-#: cmdline/apt-get.cc:2711
+#: cmdline/apt-get.cc:2699
msgid ""
"Usage: apt-get [options] command\n"
" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
" This APT has Super Cow Powers.\n"
msgstr ""
-#: cmdline/apt-get.cc:2879
+#: cmdline/apt-get.cc:2866
msgid ""
"NOTE: This is only a simulation!\n"
" apt-get needs root privileges for real execution.\n"
#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:843
#: apt-pkg/contrib/cdromutl.cc:157 apt-pkg/sourcelist.cc:166
#: apt-pkg/sourcelist.cc:172 apt-pkg/sourcelist.cc:327 apt-pkg/acquire.cc:419
-#: apt-pkg/init.cc:90 apt-pkg/init.cc:98 apt-pkg/clean.cc:33
+#: apt-pkg/init.cc:89 apt-pkg/init.cc:97 apt-pkg/clean.cc:33
#: apt-pkg/policy.cc:281 apt-pkg/policy.cc:287
#, c-format
msgid "Unable to read %s"
msgstr "Pel nehate dîtin"
#: methods/copy.cc:43 methods/gzip.cc:141 methods/gzip.cc:150
-#: methods/rred.cc:234 methods/rred.cc:243
+#: methods/rred.cc:483 methods/rred.cc:492
#, fuzzy
msgid "Failed to stat"
msgstr "%s venebû"
-#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:240
+#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:489
msgid "Failed to set modification time"
msgstr ""
msgstr ""
#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:168
+#: methods/ftp.cc:167
msgid "Logging in"
msgstr "Têketin"
-#: methods/ftp.cc:174
+#: methods/ftp.cc:173
msgid "Unable to determine the peer name"
msgstr ""
-#: methods/ftp.cc:179
+#: methods/ftp.cc:178
msgid "Unable to determine the local name"
msgstr "Nikare navê herêmî tesbît bike"
-#: methods/ftp.cc:210 methods/ftp.cc:238
+#: methods/ftp.cc:209 methods/ftp.cc:237
#, c-format
msgid "The server refused the connection and said: %s"
msgstr ""
-#: methods/ftp.cc:216
+#: methods/ftp.cc:215
#, c-format
msgid "USER failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:223
+#: methods/ftp.cc:222
#, c-format
msgid "PASS failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:243
+#: methods/ftp.cc:242
msgid ""
"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
"is empty."
msgstr ""
-#: methods/ftp.cc:271
+#: methods/ftp.cc:270
#, c-format
msgid "Login script command '%s' failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:297
+#: methods/ftp.cc:296
#, c-format
msgid "TYPE failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226
+#: methods/ftp.cc:334 methods/ftp.cc:445 methods/rsh.cc:183 methods/rsh.cc:226
msgid "Connection timeout"
msgstr ""
-#: methods/ftp.cc:341
+#: methods/ftp.cc:340
msgid "Server closed the connection"
msgstr ""
-#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
+#: methods/ftp.cc:343 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
msgid "Read error"
msgstr "Çewiya xwendinê"
-#: methods/ftp.cc:351 methods/rsh.cc:197
+#: methods/ftp.cc:350 methods/rsh.cc:197
msgid "A response overflowed the buffer."
msgstr ""
-#: methods/ftp.cc:368 methods/ftp.cc:380
+#: methods/ftp.cc:367 methods/ftp.cc:379
msgid "Protocol corruption"
msgstr ""
-#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
+#: methods/ftp.cc:451 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
msgid "Write error"
msgstr "Çewtiya nivîsînê"
-#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735
+#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734
msgid "Could not create a socket"
msgstr ""
-#: methods/ftp.cc:704
+#: methods/ftp.cc:703
msgid "Could not connect data socket, connection timed out"
msgstr ""
-#: methods/ftp.cc:710
+#: methods/ftp.cc:709
msgid "Could not connect passive socket."
msgstr ""
-#: methods/ftp.cc:728
+#: methods/ftp.cc:727
msgid "getaddrinfo was unable to get a listening socket"
msgstr ""
-#: methods/ftp.cc:742
+#: methods/ftp.cc:741
msgid "Could not bind a socket"
msgstr ""
-#: methods/ftp.cc:746
+#: methods/ftp.cc:745
msgid "Could not listen on the socket"
msgstr ""
-#: methods/ftp.cc:753
+#: methods/ftp.cc:752
msgid "Could not determine the socket's name"
msgstr ""
-#: methods/ftp.cc:785
+#: methods/ftp.cc:784
msgid "Unable to send PORT command"
msgstr ""
-#: methods/ftp.cc:795
+#: methods/ftp.cc:794
#, c-format
msgid "Unknown address family %u (AF_*)"
msgstr ""
-#: methods/ftp.cc:804
+#: methods/ftp.cc:803
#, c-format
msgid "EPRT failed, server said: %s"
msgstr ""
-#: methods/ftp.cc:824
+#: methods/ftp.cc:823
msgid "Data socket connect timed out"
msgstr ""
-#: methods/ftp.cc:831
+#: methods/ftp.cc:830
msgid "Unable to accept connection"
msgstr ""
-#: methods/ftp.cc:870 methods/http.cc:999 methods/rsh.cc:303
+#: methods/ftp.cc:869 methods/http.cc:997 methods/rsh.cc:303
msgid "Problem hashing file"
msgstr ""
-#: methods/ftp.cc:883
+#: methods/ftp.cc:882
#, fuzzy, c-format
msgid "Unable to fetch file, server said '%s'"
msgstr "Danegira %s nehate vekirin: %s"
-#: methods/ftp.cc:898 methods/rsh.cc:322
+#: methods/ftp.cc:897 methods/rsh.cc:322
msgid "Data socket timed out"
msgstr ""
-#: methods/ftp.cc:928
+#: methods/ftp.cc:927
#, c-format
msgid "Data transfer failed, server said '%s'"
msgstr ""
#. Get the files information
-#: methods/ftp.cc:1005
+#: methods/ftp.cc:1002
msgid "Query"
msgstr "Lêpirsîn"
-#: methods/ftp.cc:1117
+#: methods/ftp.cc:1114
#, fuzzy
msgid "Unable to invoke "
msgstr "%s venebû"
msgid "Read error from %s process"
msgstr ""
-#: methods/http.cc:385
+#: methods/http.cc:384
msgid "Waiting for headers"
msgstr ""
-#: methods/http.cc:531
+#: methods/http.cc:530
#, c-format
msgid "Got a single header line over %u chars"
msgstr ""
-#: methods/http.cc:539
+#: methods/http.cc:538
msgid "Bad header line"
msgstr ""
-#: methods/http.cc:558 methods/http.cc:565
+#: methods/http.cc:557 methods/http.cc:564
msgid "The HTTP server sent an invalid reply header"
msgstr ""
-#: methods/http.cc:594
+#: methods/http.cc:593
msgid "The HTTP server sent an invalid Content-Length header"
msgstr ""
-#: methods/http.cc:609
+#: methods/http.cc:608
msgid "The HTTP server sent an invalid Content-Range header"
msgstr ""
-#: methods/http.cc:611
+#: methods/http.cc:610
msgid "This HTTP server has broken range support"
msgstr ""
-#: methods/http.cc:635
+#: methods/http.cc:634
msgid "Unknown date format"
msgstr ""
-#: methods/http.cc:790
+#: methods/http.cc:788
msgid "Select failed"
msgstr "Hilbijartin neserketî"
-#: methods/http.cc:795
+#: methods/http.cc:793
msgid "Connection timed out"
msgstr ""
-#: methods/http.cc:818
+#: methods/http.cc:816
#, fuzzy
msgid "Error writing to output file"
msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî"
-#: methods/http.cc:849
+#: methods/http.cc:847
msgid "Error writing to file"
msgstr "Dema li pelî dihate nivîsîn çewtî"
-#: methods/http.cc:877
+#: methods/http.cc:875
msgid "Error writing to the file"
msgstr "Dema li pelî dihate nivîsîn çewtî"
-#: methods/http.cc:891
+#: methods/http.cc:889
msgid "Error reading from server. Remote end closed connection"
msgstr ""
-#: methods/http.cc:893
+#: methods/http.cc:891
msgid "Error reading from server"
msgstr ""
-#: methods/http.cc:984 apt-pkg/contrib/mmap.cc:215
+#: methods/http.cc:982 apt-pkg/contrib/mmap.cc:233
#, fuzzy
msgid "Failed to truncate file"
msgstr "Nivîsîna pelê %s biserneket"
-#: methods/http.cc:1149
+#: methods/http.cc:1147
msgid "Bad header data"
msgstr ""
-#: methods/http.cc:1166 methods/http.cc:1221
+#: methods/http.cc:1164 methods/http.cc:1219
msgid "Connection failed"
msgstr "Girêdan pêk nehatiye"
-#: methods/http.cc:1313
+#: methods/http.cc:1311
msgid "Internal error"
msgstr "Çewtiya hundirîn"
msgid "Can't mmap an empty file"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:187
+#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:202
#, c-format
msgid "Couldn't make mmap of %lu bytes"
msgstr ""
-#: apt-pkg/contrib/mmap.cc:234
+#: apt-pkg/contrib/mmap.cc:252
#, c-format
msgid ""
"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. "
"Current value: %lu. (man 5 apt.conf)"
msgstr ""
+#: apt-pkg/contrib/mmap.cc:347
+#, c-format
+msgid ""
+"The size of a MMap has already reached the defined limit of %lu bytes,abort "
+"the try to grow the MMap."
+msgstr ""
+
#. d means days, h means hours, min means minutes, s means seconds
#: apt-pkg/contrib/strutl.cc:346
#, c-format
msgid "Malformed line %u in source list %s (vendor id)"
msgstr ""
-#: apt-pkg/packagemanager.cc:324 apt-pkg/packagemanager.cc:586
+#: apt-pkg/packagemanager.cc:321 apt-pkg/packagemanager.cc:576
#, c-format
msgid ""
"Could not perform immediate configuration on '%s'.Please see man 5 apt.conf "
"under APT::Immediate-Configure for details. (%d)"
msgstr ""
-#: apt-pkg/packagemanager.cc:440
+#: apt-pkg/packagemanager.cc:437
#, c-format
msgid ""
"This installation run will require temporarily removing the essential "
"you really want to do it, activate the APT::Force-LoopBreak option."
msgstr ""
-#: apt-pkg/packagemanager.cc:478
+#: apt-pkg/packagemanager.cc:475
#, c-format
msgid ""
"Could not perform immediate configuration on already unpacked '%s'.Please "
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:133
+#: apt-pkg/init.cc:132
#, c-format
msgid "Packaging system '%s' is not supported"
msgstr ""
-#: apt-pkg/init.cc:149
+#: apt-pkg/init.cc:148
msgid "Unable to determine a suitable packaging system type"
msgstr ""
msgid "rename failed, %s (%s -> %s)."
msgstr "nav guherandin biserneket, %s (%s -> %s)"
-#: apt-pkg/acquire-item.cc:395
+#: apt-pkg/acquire-item.cc:396
msgid "MD5Sum mismatch"
msgstr "MD5Sum li hev nayên"
-#: apt-pkg/acquire-item.cc:649 apt-pkg/acquire-item.cc:1411
+#: apt-pkg/acquire-item.cc:657 apt-pkg/acquire-item.cc:1419
msgid "Hash Sum mismatch"
msgstr "Hash Sum li hev nayên"
-#: apt-pkg/acquire-item.cc:1106
+#: apt-pkg/acquire-item.cc:1114
msgid "There is no public key available for the following key IDs:\n"
msgstr ""
-#: apt-pkg/acquire-item.cc:1216
+#: apt-pkg/acquire-item.cc:1224
#, c-format
msgid ""
"I wasn't able to locate a file for the %s package. This might mean you need "
"to manually fix this package. (due to missing arch)"
msgstr ""
-#: apt-pkg/acquire-item.cc:1275
+#: apt-pkg/acquire-item.cc:1283
#, c-format
msgid ""
"I wasn't able to locate file for the %s package. This might mean you need to "
"manually fix this package."
msgstr ""
-#: apt-pkg/acquire-item.cc:1316
+#: apt-pkg/acquire-item.cc:1324
#, c-format
msgid ""
"The package index files are corrupted. No Filename: field for package %s."
msgstr ""
-#: apt-pkg/acquire-item.cc:1403
+#: apt-pkg/acquire-item.cc:1411
msgid "Size mismatch"
msgstr "Mezinahî li hev nayên"
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:530
-#, c-format
-msgid "Skipping nonexistent file %s"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:536
-#, c-format
-msgid "Can't find authentication record for: %s"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:542
-#, fuzzy, c-format
-#| msgid "Hash Sum mismatch"
-msgid "Hash mismatch for: %s"
-msgstr "Hash Sum li hev nayên"
-
#: apt-pkg/deb/dpkgpm.cc:49
#, fuzzy, c-format
msgid "Installing %s"
msgstr "%s hatine sazkirin"
-#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:661
+#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:660
#, c-format
msgid "Configuring %s"
msgstr "%s tê mîhengkirin"
-#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:668
+#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:667
#, c-format
msgid "Removing %s"
msgstr "%s tê rakirin"
#: apt-pkg/deb/dpkgpm.cc:52
-#, fuzzy, c-format
-#| msgid "Completely removed %s"
-msgid "Completely removing %s"
-msgstr "%s bi tevahî hatine rakirin"
-
-#: apt-pkg/deb/dpkgpm.cc:53
#, c-format
msgid "Running post-installation trigger %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:558
+#: apt-pkg/deb/dpkgpm.cc:557
#, c-format
msgid "Directory '%s' missing"
msgstr "Peldanka '%s' kêm e"
-#: apt-pkg/deb/dpkgpm.cc:654
+#: apt-pkg/deb/dpkgpm.cc:653
#, c-format
msgid "Preparing %s"
msgstr "%s tê amadekirin"
-#: apt-pkg/deb/dpkgpm.cc:655
+#: apt-pkg/deb/dpkgpm.cc:654
#, c-format
msgid "Unpacking %s"
msgstr "%s tê derxistin"
-#: apt-pkg/deb/dpkgpm.cc:660
+#: apt-pkg/deb/dpkgpm.cc:659
#, c-format
msgid "Preparing to configure %s"
msgstr "Mîhengkirina %s tê amadekirin"
-#: apt-pkg/deb/dpkgpm.cc:662
+#: apt-pkg/deb/dpkgpm.cc:661
#, c-format
msgid "Installed %s"
msgstr "%s hatine sazkirin"
-#: apt-pkg/deb/dpkgpm.cc:667
+#: apt-pkg/deb/dpkgpm.cc:666
#, c-format
msgid "Preparing for removal of %s"
msgstr "Rakirina %s tê amadekirin"
-#: apt-pkg/deb/dpkgpm.cc:669
+#: apt-pkg/deb/dpkgpm.cc:668
#, c-format
msgid "Removed %s"
msgstr "%s hatine rakirin"
-#: apt-pkg/deb/dpkgpm.cc:674
+#: apt-pkg/deb/dpkgpm.cc:673
#, c-format
msgid "Preparing to completely remove %s"
msgstr "Bi tevahî rakirina %s tê amadekirin"
-#: apt-pkg/deb/dpkgpm.cc:675
+#: apt-pkg/deb/dpkgpm.cc:674
#, c-format
msgid "Completely removed %s"
msgstr "%s bi tevahî hatine rakirin"
-#: apt-pkg/deb/dpkgpm.cc:879
+#: apt-pkg/deb/dpkgpm.cc:878
msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:909
+#: apt-pkg/deb/dpkgpm.cc:907
msgid "Running dpkg"
msgstr ""
msgid "Not locked"
msgstr ""
-#: methods/rred.cc:219
-#, fuzzy
-msgid "Could not patch file"
-msgstr "Danegira %s nehate vekirin: %s"
+#: methods/rred.cc:465
+#, c-format
+msgid ""
+"Could not patch %s with mmap and with file operation usage - the patch seems "
+"to be corrupt."
+msgstr ""
+
+#: methods/rred.cc:470
+#, c-format
+msgid ""
+"Could not patch %s with mmap (but no mmap specific fail) - the patch seems "
+"to be corrupt."
+msgstr ""
#: methods/rsh.cc:330
msgid "Connection closed prematurely"
msgstr "Girêdan zû hatiye girtin"
-#~ msgid " %4i %s\n"
-#~ msgstr " %4i %s\n"
+#, fuzzy
+#~ msgid "Could not patch file"
+#~ msgstr "Danegira %s nehate vekirin: %s"
#~ msgid "%4i %s\n"
#~ msgstr "%4i %s\n"
msgstr ""
"Project-Id-Version: apt-all\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-01-01 19:13+0100\n"
+"POT-Creation-Date: 2009-11-27 00:15+0100\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"
msgid " Version table:"
msgstr " Таблиця версій:"
+#: cmdline/apt-cache.cc:1623
+#, c-format
+msgid " %4i %s\n"
+msgstr " %4i %s\n"
+
#: cmdline/apt-cache.cc:1718 cmdline/apt-cdrom.cc:134 cmdline/apt-config.cc:70
#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2665 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2653 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"
msgid "Y"
msgstr "Т"
-#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1730
+#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1718
#, c-format
msgid "Regex compilation error - %s"
msgstr "Помилка компіляції регулярного виразу - %s"
msgid "Internal error, Ordering didn't finish"
msgstr "Внутрішня помилка, Ordering не завершилася"
-#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2072 cmdline/apt-get.cc:2105
+#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2060 cmdline/apt-get.cc:2093
msgid "Unable to lock the download directory"
msgstr "Неможливо заблокувати теку для завантаження"
-#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2153 cmdline/apt-get.cc:2406
+#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2141 cmdline/apt-get.cc:2394
#: apt-pkg/cachefile.cc:65
msgid "The list of sources could not be read."
msgstr "Неможливо прочитати перелік джерел."
msgstr ""
"Після розпакування об'єм зайнятого дискового простору зменшиться на %sB.\n"
-#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2249
-#: cmdline/apt-get.cc:2252
+#: cmdline/apt-get.cc:867 cmdline/apt-get.cc:870 cmdline/apt-get.cc:2237
+#: cmdline/apt-get.cc:2240
#, c-format
msgid "Couldn't determine free space in %s"
msgstr "Не вдалося визначити кількість вільного місця в %s"
msgid "Do you want to continue [Y/n]? "
msgstr "Бажаєте продовжити [Т/н]? "
-#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2303 apt-pkg/algorithms.cc:1389
+#: cmdline/apt-get.cc:993 cmdline/apt-get.cc:2291 apt-pkg/algorithms.cc:1389
#, c-format
msgid "Failed to fetch %s %s\n"
msgstr "Не вдалося завантажити %s %s\n"
msgid "Some files failed to download"
msgstr "Деякі файли не вдалося завантажити"
-#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2312
+#: cmdline/apt-get.cc:1012 cmdline/apt-get.cc:2300
msgid "Download complete and in download only mode"
msgstr "Вказано режим \"тільки завантаження\", і завантаження завершено"
msgstr "Обрана версія %s (%s) для %s\n"
#. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1311 cmdline/apt-get.cc:1379
+#: cmdline/apt-get.cc:1305 cmdline/apt-get.cc:1367
#, c-format
msgid "Ignore unavailable version '%s' of package '%s'"
msgstr ""
-#: cmdline/apt-get.cc:1313
+#: cmdline/apt-get.cc:1307
#, c-format
msgid "Ignore unavailable target release '%s' of package '%s'"
msgstr ""
-#: cmdline/apt-get.cc:1342
+#: cmdline/apt-get.cc:1332
#, fuzzy, c-format
msgid "Picking '%s' as source package instead of '%s'\n"
msgstr "Не вдалося прочитати атрибути переліку вихідних текстів%s"
-#: cmdline/apt-get.cc:1395
+#: cmdline/apt-get.cc:1383
msgid "The update command takes no arguments"
msgstr "Команді update не потрібні аргументи"
-#: cmdline/apt-get.cc:1408
+#: cmdline/apt-get.cc:1396
msgid "Unable to lock the list directory"
msgstr "Неможливо заблокувати теку з переліками пакунків"
-#: cmdline/apt-get.cc:1464
+#: cmdline/apt-get.cc:1452
msgid "We are not supposed to delete stuff, can't start AutoRemover"
msgstr ""
-#: cmdline/apt-get.cc:1513
+#: cmdline/apt-get.cc:1501
#, fuzzy
msgid ""
"The following packages were automatically installed and are no longer "
"required:"
msgstr "НОВІ пакунки були встановлені автоматично і більше не потрібні:"
-#: cmdline/apt-get.cc:1515
+#: cmdline/apt-get.cc:1503
#, fuzzy, c-format
msgid "%lu packages were automatically installed and are no longer required.\n"
msgstr "НОВІ пакунки були встановлені автоматично і більше не потрібні:"
-#: cmdline/apt-get.cc:1516
+#: cmdline/apt-get.cc:1504
msgid "Use 'apt-get autoremove' to remove them."
msgstr "Використовуйте 'apt-get autoremove' щоб видалити їх."
-#: cmdline/apt-get.cc:1521
+#: cmdline/apt-get.cc:1509
msgid ""
"Hmm, seems like the AutoRemover destroyed something which really\n"
"shouldn't happen. Please file a bug report against apt."
#. "that package should be filed.") << endl;
#. }
#.
-#: cmdline/apt-get.cc:1524 cmdline/apt-get.cc:1814
+#: cmdline/apt-get.cc:1512 cmdline/apt-get.cc:1802
msgid "The following information may help to resolve the situation:"
msgstr "Наступна інформація можливо допоможе Вам:"
-#: cmdline/apt-get.cc:1528
+#: cmdline/apt-get.cc:1516
#, fuzzy
msgid "Internal Error, AutoRemover broke stuff"
msgstr "Внутрішня помилка, вирішувач проблем все поламав"
-#: cmdline/apt-get.cc:1547
+#: cmdline/apt-get.cc:1535
msgid "Internal error, AllUpgrade broke stuff"
msgstr "Внутрішня помилка, AllUpgrade все поламав"
-#: cmdline/apt-get.cc:1602
+#: cmdline/apt-get.cc:1590
#, fuzzy, c-format
msgid "Couldn't find task %s"
msgstr "Не можу знайти пакунок %s"
-#: cmdline/apt-get.cc:1717 cmdline/apt-get.cc:1753
+#: cmdline/apt-get.cc:1705 cmdline/apt-get.cc:1741
#, c-format
msgid "Couldn't find package %s"
msgstr "Не можу знайти пакунок %s"
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1728
#, c-format
msgid "Note, selecting %s for regex '%s'\n"
msgstr "Помітьте, регулярний вираз %2$s призводить до вибору %1$s\n"
-#: cmdline/apt-get.cc:1771
+#: cmdline/apt-get.cc:1759
#, fuzzy, c-format
msgid "%s set to manually installed.\n"
msgstr "але %s буде встановлений"
-#: cmdline/apt-get.cc:1784
+#: cmdline/apt-get.cc:1772
msgid "You might want to run `apt-get -f install' to correct these:"
msgstr ""
"Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f "
"install':"
-#: cmdline/apt-get.cc:1787
+#: cmdline/apt-get.cc:1775
msgid ""
"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
"solution)."
"Незадоволені залежності. Спробуйте виконати 'apt-get -f install', не "
"вказуючи імені пакунка (або знайдіть інше рішення)."
-#: cmdline/apt-get.cc:1799
+#: cmdline/apt-get.cc:1787
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"
"або ж використаєте нестабільний дистрибутив, і запитані Вами пакунки\n"
"ще не створені або були вилучені з Incoming."
-#: cmdline/apt-get.cc:1817
+#: cmdline/apt-get.cc:1805
msgid "Broken packages"
msgstr "Зламані пакунки"
-#: cmdline/apt-get.cc:1846
+#: cmdline/apt-get.cc:1834
msgid "The following extra packages will be installed:"
msgstr "Будуть встановлені наступні додаткові пакунки:"
-#: cmdline/apt-get.cc:1935
+#: cmdline/apt-get.cc:1923
msgid "Suggested packages:"
msgstr "Пропоновані пакунки:"
-#: cmdline/apt-get.cc:1936
+#: cmdline/apt-get.cc:1924
msgid "Recommended packages:"
msgstr "Рекомендовані пакунки:"
-#: cmdline/apt-get.cc:1965
+#: cmdline/apt-get.cc:1953
msgid "Calculating upgrade... "
msgstr "Обчислення оновлень... "
-#: cmdline/apt-get.cc:1968 methods/ftp.cc:708 methods/connect.cc:112
+#: cmdline/apt-get.cc:1956 methods/ftp.cc:707 methods/connect.cc:112
msgid "Failed"
msgstr "Невдача"
-#: cmdline/apt-get.cc:1973
+#: cmdline/apt-get.cc:1961
msgid "Done"
msgstr "Виконано"
-#: cmdline/apt-get.cc:2040 cmdline/apt-get.cc:2048
+#: cmdline/apt-get.cc:2028 cmdline/apt-get.cc:2036
msgid "Internal error, problem resolver broke stuff"
msgstr "Внутрішня помилка, вирішувач проблем все поламав"
-#: cmdline/apt-get.cc:2148
+#: cmdline/apt-get.cc:2136
msgid "Must specify at least one package to fetch source for"
msgstr ""
"Вкажіть як мінімум один пакунок, для якого необхідно завантажити вихідні "
"тексти"
-#: cmdline/apt-get.cc:2178 cmdline/apt-get.cc:2424
+#: cmdline/apt-get.cc:2166 cmdline/apt-get.cc:2412
#, c-format
msgid "Unable to find a source package for %s"
msgstr "Неможливо знайти пакунок з вихідними текстами для %s"
-#: cmdline/apt-get.cc:2227
+#: cmdline/apt-get.cc:2215
#, c-format
msgid "Skipping already downloaded file '%s'\n"
msgstr "Пропускаємо вже завантажений файл '%s'\n"
-#: cmdline/apt-get.cc:2262
+#: cmdline/apt-get.cc:2250
#, c-format
msgid "You don't have enough free space in %s"
msgstr "Недостатньо місця в %s"
-#: cmdline/apt-get.cc:2268
+#: cmdline/apt-get.cc:2256
#, c-format
msgid "Need to get %sB/%sB of source archives.\n"
msgstr "Необхідно завантажити %sB/%sB з архівів вихідних текстів.\n"
-#: cmdline/apt-get.cc:2271
+#: cmdline/apt-get.cc:2259
#, c-format
msgid "Need to get %sB of source archives.\n"
msgstr "Потрібно завантажити %sB архівів з вихідними текстами.\n"
-#: cmdline/apt-get.cc:2277
+#: cmdline/apt-get.cc:2265
#, c-format
msgid "Fetch source %s\n"
msgstr "Завантаження вихідних текстів %s\n"
-#: cmdline/apt-get.cc:2308
+#: cmdline/apt-get.cc:2296
msgid "Failed to fetch some archives."
msgstr "Деякі архіви не вдалося завантажити."
-#: cmdline/apt-get.cc:2336
+#: cmdline/apt-get.cc:2324
#, c-format
msgid "Skipping unpack of already unpacked source in %s\n"
msgstr ""
"Розпакування вихідних текстів пропущено, тому що в %s вже перебувають "
"розпаковані вихідні тексти\n"
-#: cmdline/apt-get.cc:2348
+#: cmdline/apt-get.cc:2336
#, c-format
msgid "Unpack command '%s' failed.\n"
msgstr "Команда розпакування '%s' завершилася невдало.\n"
-#: cmdline/apt-get.cc:2349
+#: cmdline/apt-get.cc:2337
#, c-format
msgid "Check if the 'dpkg-dev' package is installed.\n"
msgstr "Перевірте, чи встановлений пакунок 'dpkg-dev'.\n"
-#: cmdline/apt-get.cc:2366
+#: cmdline/apt-get.cc:2354
#, c-format
msgid "Build command '%s' failed.\n"
msgstr "Команда побудови '%s' закінчилася невдало.\n"
-#: cmdline/apt-get.cc:2385
+#: cmdline/apt-get.cc:2373
msgid "Child process failed"
msgstr "Породжений процес завершився невдало"
-#: cmdline/apt-get.cc:2401
+#: cmdline/apt-get.cc:2389
msgid "Must specify at least one package to check builddeps for"
msgstr ""
"Для перевірки залежностей для побудови необхідно вказати як мінімум один "
"пакунок"
-#: cmdline/apt-get.cc:2429
+#: cmdline/apt-get.cc:2417
#, c-format
msgid "Unable to get build-dependency information for %s"
msgstr "Неможливо одержати інформацію про залежності для побудови %s"
-#: cmdline/apt-get.cc:2449
+#: cmdline/apt-get.cc:2437
#, c-format
msgid "%s has no build depends.\n"
msgstr "%s не має залежностей для побудови.\n"
-#: cmdline/apt-get.cc:2501
+#: cmdline/apt-get.cc:2489
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because the package %s cannot be "
msgstr ""
"Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено"
-#: cmdline/apt-get.cc:2554
+#: cmdline/apt-get.cc:2542
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because no available versions of "
"Залежність типу %s для %s не може бути задоволена, бо ні одна з версій "
"пакунка %s не задовольняє умови"
-#: cmdline/apt-get.cc:2590
+#: cmdline/apt-get.cc:2578
#, c-format
msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
msgstr ""
"Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений "
"пакунок %s новіше, аніж треба"
-#: cmdline/apt-get.cc:2617
+#: cmdline/apt-get.cc:2605
#, c-format
msgid "Failed to satisfy %s dependency for %s: %s"
msgstr "Неможливо задовольнити залежність типу %s для пакунка %s: %s"
-#: cmdline/apt-get.cc:2633
+#: cmdline/apt-get.cc:2621
#, c-format
msgid "Build-dependencies for %s could not be satisfied."
msgstr "Залежності для побудови %s не можуть бути задоволені."
-#: cmdline/apt-get.cc:2638
+#: cmdline/apt-get.cc:2626
msgid "Failed to process build dependencies"
msgstr "Обробка залежностей для побудови закінчилася невдало"
-#: cmdline/apt-get.cc:2670
+#: cmdline/apt-get.cc:2658
msgid "Supported modules:"
msgstr "Підтримувані модулі:"
-#: cmdline/apt-get.cc:2711
+#: cmdline/apt-get.cc:2699
#, fuzzy
msgid ""
"Usage: apt-get [options] command\n"
"містять більше інформації.\n"
" This APT has Super Cow Powers.\n"
-#: cmdline/apt-get.cc:2879
+#: cmdline/apt-get.cc:2866
msgid ""
"NOTE: This is only a simulation!\n"
" apt-get needs root privileges for real execution.\n"
#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:843
#: apt-pkg/contrib/cdromutl.cc:157 apt-pkg/sourcelist.cc:166
#: apt-pkg/sourcelist.cc:172 apt-pkg/sourcelist.cc:327 apt-pkg/acquire.cc:419
-#: apt-pkg/init.cc:90 apt-pkg/init.cc:98 apt-pkg/clean.cc:33
+#: apt-pkg/init.cc:89 apt-pkg/init.cc:97 apt-pkg/clean.cc:33
#: apt-pkg/policy.cc:281 apt-pkg/policy.cc:287
#, c-format
msgid "Unable to read %s"
msgstr "Файл не знайдено"
#: methods/copy.cc:43 methods/gzip.cc:141 methods/gzip.cc:150
-#: methods/rred.cc:234 methods/rred.cc:243
+#: methods/rred.cc:483 methods/rred.cc:492
msgid "Failed to stat"
msgstr "Не вдалося одержати атрибути"
-#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:240
+#: methods/copy.cc:80 methods/gzip.cc:147 methods/rred.cc:489
msgid "Failed to set modification time"
msgstr "Не вдалося встановити час модифікації"
msgstr "Невірне посилання, локальні посилання повинні починатися з //"
#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:168
+#: methods/ftp.cc:167
msgid "Logging in"
msgstr "Логінюсь в"
-#: methods/ftp.cc:174
+#: methods/ftp.cc:173
msgid "Unable to determine the peer name"
msgstr "Неможливо визначити назву вузла"
-#: methods/ftp.cc:179
+#: methods/ftp.cc:178
msgid "Unable to determine the local name"
msgstr "Неможливо визначити локальну назву"
-#: methods/ftp.cc:210 methods/ftp.cc:238
+#: methods/ftp.cc:209 methods/ftp.cc:237
#, c-format
msgid "The server refused the connection and said: %s"
msgstr "Сервер розірвав з'єднання і мовив: %s"
-#: methods/ftp.cc:216
+#: methods/ftp.cc:215
#, c-format
msgid "USER failed, server said: %s"
msgstr "USER невдало, сервер мовив: %s"
-#: methods/ftp.cc:223
+#: methods/ftp.cc:222
#, c-format
msgid "PASS failed, server said: %s"
msgstr "PASS невдало, сервер мовив: %s"
-#: methods/ftp.cc:243
+#: methods/ftp.cc:242
msgid ""
"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
"is empty."
"Вказано проксі-сервер, але відсутній скрипт логіну, Acquire::ftp::ProxyLogin "
"пустий."
-#: methods/ftp.cc:271
+#: methods/ftp.cc:270
#, c-format
msgid "Login script command '%s' failed, server said: %s"
msgstr "Команда '%s'скрипту логіна не вдалася, сервер мовив: %s"
-#: methods/ftp.cc:297
+#: methods/ftp.cc:296
#, c-format
msgid "TYPE failed, server said: %s"
msgstr "TYPE невдало, сервер мовив: %s"
-#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226
+#: methods/ftp.cc:334 methods/ftp.cc:445 methods/rsh.cc:183 methods/rsh.cc:226
msgid "Connection timeout"
msgstr "Час з'єднання вичерпався"
-#: methods/ftp.cc:341
+#: methods/ftp.cc:340
msgid "Server closed the connection"
msgstr "Сервер закрив з'єднання"
-#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
+#: methods/ftp.cc:343 apt-pkg/contrib/fileutl.cc:543 methods/rsh.cc:190
msgid "Read error"
msgstr "Помилка читання"
-#: methods/ftp.cc:351 methods/rsh.cc:197
+#: methods/ftp.cc:350 methods/rsh.cc:197
msgid "A response overflowed the buffer."
msgstr "Відповідь переповнила буфер."
-#: methods/ftp.cc:368 methods/ftp.cc:380
+#: methods/ftp.cc:367 methods/ftp.cc:379
msgid "Protocol corruption"
msgstr "Спотворений протокол"
-#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
+#: methods/ftp.cc:451 apt-pkg/contrib/fileutl.cc:582 methods/rsh.cc:232
msgid "Write error"
msgstr "Помилка запису"
-#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735
+#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734
msgid "Could not create a socket"
msgstr "Неможливо створити сокет (socket)"
-#: methods/ftp.cc:704
+#: methods/ftp.cc:703
msgid "Could not connect data socket, connection timed out"
msgstr "Неможливо під'єднати сокет (socket) з даними, час з'єднання вичерпався"
-#: methods/ftp.cc:710
+#: methods/ftp.cc:709
msgid "Could not connect passive socket."
msgstr "Неможливо під'єднати пасивний сокет (passive socket)."
-#: methods/ftp.cc:728
+#: methods/ftp.cc:727
#, fuzzy
msgid "getaddrinfo was unable to get a listening socket"
msgstr "Виклик getaddrinfo не зміг отримати сокет"
-#: methods/ftp.cc:742
+#: methods/ftp.cc:741
msgid "Could not bind a socket"
msgstr "Неможливо приєднатися до сокета"
-#: methods/ftp.cc:746
+#: methods/ftp.cc:745
#, fuzzy
msgid "Could not listen on the socket"
msgstr "Не можливо утримувати з'єднання на сокеті"
-#: methods/ftp.cc:753
+#: methods/ftp.cc:752
msgid "Could not determine the socket's name"
msgstr "Не вдалося визначити назву сокета"
-#: methods/ftp.cc:785
+#: methods/ftp.cc:784
msgid "Unable to send PORT command"
msgstr "Неможливо відіслати команду PORT"
-#: methods/ftp.cc:795
+#: methods/ftp.cc:794
#, c-format
msgid "Unknown address family %u (AF_*)"
msgstr "Невідоме адресове сімейство %u (AF_*)"
-#: methods/ftp.cc:804
+#: methods/ftp.cc:803
#, c-format
msgid "EPRT failed, server said: %s"
msgstr "EPRT невдало, сервер мовив: %s"
-#: methods/ftp.cc:824
+#: methods/ftp.cc:823
msgid "Data socket connect timed out"
msgstr "Час з'єднання з сокетом даних вичерпався"
-#: methods/ftp.cc:831
+#: methods/ftp.cc:830
msgid "Unable to accept connection"
msgstr "Неможливо прийняти з'єднання"
-#: methods/ftp.cc:870 methods/http.cc:999 methods/rsh.cc:303
+#: methods/ftp.cc:869 methods/http.cc:997 methods/rsh.cc:303
msgid "Problem hashing file"
msgstr "Проблема хешування файла"
-#: methods/ftp.cc:883
+#: methods/ftp.cc:882
#, c-format
msgid "Unable to fetch file, server said '%s'"
msgstr "Неможливо завантажити файл, сервер мовив: '%s'"
-#: methods/ftp.cc:898 methods/rsh.cc:322
+#: methods/ftp.cc:897 methods/rsh.cc:322
msgid "Data socket timed out"
msgstr "Час з'єднання з сокетом (socket) з даними вичерпався"
-#: methods/ftp.cc:928
+#: methods/ftp.cc:927
#, c-format
msgid "Data transfer failed, server said '%s'"
msgstr "Передача даних обірвалася, сервер мовив '%s'"
#. Get the files information
-#: methods/ftp.cc:1005
+#: methods/ftp.cc:1002
msgid "Query"
msgstr "Черга"
-#: methods/ftp.cc:1117
+#: methods/ftp.cc:1114
msgid "Unable to invoke "
msgstr "Неможливо викликати "
msgid "Read error from %s process"
msgstr "Помилка читання з процесу %s"
-#: methods/http.cc:385
+#: methods/http.cc:384
msgid "Waiting for headers"
msgstr "Очікування на заголовки"
-#: methods/http.cc:531
+#: methods/http.cc:530
#, c-format
msgid "Got a single header line over %u chars"
msgstr "Отримано одну заголовкову лінію понад %u символів"
-#: methods/http.cc:539
+#: methods/http.cc:538
msgid "Bad header line"
msgstr "Невірна лінія заголовку"
-#: methods/http.cc:558 methods/http.cc:565
+#: methods/http.cc:557 methods/http.cc:564
msgid "The HTTP server sent an invalid reply header"
msgstr "HTTP сервер відіслав невірний заголовок 'reply'"
-#: methods/http.cc:594
+#: methods/http.cc:593
msgid "The HTTP server sent an invalid Content-Length header"
msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'"
-#: methods/http.cc:609
+#: methods/http.cc:608
msgid "The HTTP server sent an invalid Content-Range header"
msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'"
-#: methods/http.cc:611
+#: methods/http.cc:610
msgid "This HTTP server has broken range support"
msgstr "Цей HTTP сервер має поламану підтримку 'range'"
-#: methods/http.cc:635
+#: methods/http.cc:634
msgid "Unknown date format"
msgstr "Невідомий формат дати"
-#: methods/http.cc:790
+#: methods/http.cc:788
msgid "Select failed"
msgstr "Вибір не вдався"
-#: methods/http.cc:795
+#: methods/http.cc:793
msgid "Connection timed out"
msgstr "Час очікування з'єднання вийшов"
-#: methods/http.cc:818
+#: methods/http.cc:816
msgid "Error writing to output file"
msgstr "Помилка запису в вихідний файл"
-#: methods/http.cc:849
+#: methods/http.cc:847
#, fuzzy
msgid "Error writing to file"
msgstr "Помилка запису в файл"
-#: methods/http.cc:877
+#: methods/http.cc:875
#, fuzzy
msgid "Error writing to the file"
msgstr "Помилка запису в файл"
-#: methods/http.cc:891
+#: methods/http.cc:889
msgid "Error reading from server. Remote end closed connection"
msgstr "Помилка читання з сервера. Віддалена сторона закрила з'єднання"
-#: methods/http.cc:893
+#: methods/http.cc:891
msgid "Error reading from server"
msgstr "Помилка читання з сервера"
-#: methods/http.cc:984 apt-pkg/contrib/mmap.cc:215
+#: methods/http.cc:982 apt-pkg/contrib/mmap.cc:233
#, fuzzy
msgid "Failed to truncate file"
msgstr "Не вдалося записати файл %s"
-#: methods/http.cc:1149
+#: methods/http.cc:1147
msgid "Bad header data"
msgstr "Погана заголовкова інформація"
-#: methods/http.cc:1166 methods/http.cc:1221
+#: methods/http.cc:1164 methods/http.cc:1219
msgid "Connection failed"
msgstr "З'єднання не вдалося"
-#: methods/http.cc:1313
+#: methods/http.cc:1311
msgid "Internal error"
msgstr "Внутрішня помилка"
msgid "Can't mmap an empty file"
msgstr "Неможливо відобразити в пам'яті пустий файл"
-#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:187
+#: apt-pkg/contrib/mmap.cc:81 apt-pkg/contrib/mmap.cc:202
#, c-format
msgid "Couldn't make mmap of %lu bytes"
msgstr "Неможливо відобразити в пам'яті %lu байт"
-#: apt-pkg/contrib/mmap.cc:234
+#: apt-pkg/contrib/mmap.cc:252
#, c-format
msgid ""
"Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. "
"Current value: %lu. (man 5 apt.conf)"
msgstr ""
+#: apt-pkg/contrib/mmap.cc:347
+#, c-format
+msgid ""
+"The size of a MMap has already reached the defined limit of %lu bytes,abort "
+"the try to grow the MMap."
+msgstr ""
+
#. d means days, h means hours, min means minutes, s means seconds
#: apt-pkg/contrib/strutl.cc:346
#, c-format
msgid "Malformed line %u in source list %s (vendor id)"
msgstr "Спотворена лінія %u у переліку джерел %s (vendor id)"
-#: apt-pkg/packagemanager.cc:324 apt-pkg/packagemanager.cc:586
+#: apt-pkg/packagemanager.cc:321 apt-pkg/packagemanager.cc:576
#, c-format
msgid ""
"Could not perform immediate configuration on '%s'.Please see man 5 apt.conf "
"under APT::Immediate-Configure for details. (%d)"
msgstr ""
-#: apt-pkg/packagemanager.cc:440
+#: apt-pkg/packagemanager.cc:437
#, c-format
msgid ""
"This installation run will require temporarily removing the essential "
"погано, але якщо Ви дійсно бажаєте зробити це, активуйте параметр APT::Force-"
"LoopBreak."
-#: apt-pkg/packagemanager.cc:478
+#: apt-pkg/packagemanager.cc:475
#, c-format
msgid ""
"Could not perform immediate configuration on already unpacked '%s'.Please "
msgstr ""
"Будь-ласка, вставте диск з поміткою: '%s' в CD привід '%s' і натисніть Enter."
-#: apt-pkg/init.cc:133
+#: apt-pkg/init.cc:132
#, c-format
msgid "Packaging system '%s' is not supported"
msgstr "Система пакування '%s' не підтримується"
-#: apt-pkg/init.cc:149
+#: apt-pkg/init.cc:148
msgid "Unable to determine a suitable packaging system type"
msgstr "Неможливо визначити тип необхідної системи пакування "
msgid "rename failed, %s (%s -> %s)."
msgstr "Не вдалося перейменувати, %s (%s -> %s)."
-#: apt-pkg/acquire-item.cc:395
+#: apt-pkg/acquire-item.cc:396
msgid "MD5Sum mismatch"
msgstr "Невідповідність MD5Sum"
-#: apt-pkg/acquire-item.cc:649 apt-pkg/acquire-item.cc:1411
+#: apt-pkg/acquire-item.cc:657 apt-pkg/acquire-item.cc:1419
#, fuzzy
msgid "Hash Sum mismatch"
msgstr "Невідповідність MD5Sum"
-#: apt-pkg/acquire-item.cc:1106
+#: apt-pkg/acquire-item.cc:1114
#, fuzzy
msgid "There is no public key available for the following key IDs:\n"
msgstr "Відсутній публічний ключ для заданих ID ключа:\n"
-#: apt-pkg/acquire-item.cc:1216
+#: apt-pkg/acquire-item.cc:1224
#, c-format
msgid ""
"I wasn't able to locate a file for the %s package. This might mean you need "
"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч "
"виправити цей пакунок. (due to missing arch)"
-#: apt-pkg/acquire-item.cc:1275
+#: apt-pkg/acquire-item.cc:1283
#, c-format
msgid ""
"I wasn't able to locate file for the %s package. This might mean you need to "
"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч "
"виправити цей пакунок."
-#: apt-pkg/acquire-item.cc:1316
+#: apt-pkg/acquire-item.cc:1324
#, c-format
msgid ""
"The package index files are corrupted. No Filename: field for package %s."
msgstr ""
"Індексні файли пакунків пошкоджені. Немає поля Filename для пакунку %s."
-#: apt-pkg/acquire-item.cc:1403
+#: apt-pkg/acquire-item.cc:1411
msgid "Size mismatch"
msgstr "Невідповідність розміру"
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr "Записано %i записів з %i відсутніми і %i невідповідними файлами\n"
-#: apt-pkg/indexcopy.cc:530
-#, fuzzy, c-format
-#| msgid "Opening configuration file %s"
-msgid "Skipping nonexistent file %s"
-msgstr "Відкривається конфігураційний файл %s"
-
-#: apt-pkg/indexcopy.cc:536
-#, c-format
-msgid "Can't find authentication record for: %s"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:542
-#, fuzzy, c-format
-msgid "Hash mismatch for: %s"
-msgstr "Невідповідність MD5Sum"
-
#: apt-pkg/deb/dpkgpm.cc:49
#, fuzzy, c-format
msgid "Installing %s"
msgstr "Встановлено %s"
-#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:661
+#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:660
#, c-format
msgid "Configuring %s"
msgstr "Конфігурація %s"
-#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:668
+#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:667
#, c-format
msgid "Removing %s"
msgstr "Видаляється %s"
#: apt-pkg/deb/dpkgpm.cc:52
-#, fuzzy, c-format
-#| msgid "Completely removed %s"
-msgid "Completely removing %s"
-msgstr "Повністю видалено %s"
-
-#: apt-pkg/deb/dpkgpm.cc:53
#, c-format
msgid "Running post-installation trigger %s"
msgstr ""
-#: apt-pkg/deb/dpkgpm.cc:558
+#: apt-pkg/deb/dpkgpm.cc:557
#, fuzzy, c-format
msgid "Directory '%s' missing"
msgstr "Lists тека %spartial відсутня."
-#: apt-pkg/deb/dpkgpm.cc:654
+#: apt-pkg/deb/dpkgpm.cc:653
#, c-format
msgid "Preparing %s"
msgstr "Підготовка %s"
-#: apt-pkg/deb/dpkgpm.cc:655
+#: apt-pkg/deb/dpkgpm.cc:654
#, c-format
msgid "Unpacking %s"
msgstr "Розпакування %s"
-#: apt-pkg/deb/dpkgpm.cc:660
+#: apt-pkg/deb/dpkgpm.cc:659
#, c-format
msgid "Preparing to configure %s"
msgstr "Підготовка до конфігурації %s"
-#: apt-pkg/deb/dpkgpm.cc:662
+#: apt-pkg/deb/dpkgpm.cc:661
#, c-format
msgid "Installed %s"
msgstr "Встановлено %s"
-#: apt-pkg/deb/dpkgpm.cc:667
+#: apt-pkg/deb/dpkgpm.cc:666
#, c-format
msgid "Preparing for removal of %s"
msgstr "Підготовка до видалення %s"
-#: apt-pkg/deb/dpkgpm.cc:669
+#: apt-pkg/deb/dpkgpm.cc:668
#, c-format
msgid "Removed %s"
msgstr "Видалено %s"
-#: apt-pkg/deb/dpkgpm.cc:674
+#: apt-pkg/deb/dpkgpm.cc:673
#, c-format
msgid "Preparing to completely remove %s"
msgstr "Підготовка до повного видалення %s"
-#: apt-pkg/deb/dpkgpm.cc:675
+#: apt-pkg/deb/dpkgpm.cc:674
#, c-format
msgid "Completely removed %s"
msgstr "Повністю видалено %s"
-#: apt-pkg/deb/dpkgpm.cc:879
+#: apt-pkg/deb/dpkgpm.cc:878
msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
msgstr ""
"Неможливо записати в лог, проблема з openpty() (не змонтовано /dev/pts?)\n"
-#: apt-pkg/deb/dpkgpm.cc:909
+#: apt-pkg/deb/dpkgpm.cc:907
msgid "Running dpkg"
msgstr ""
msgid "Not locked"
msgstr ""
-#: methods/rred.cc:219
-msgid "Could not patch file"
-msgstr "Неможливо накласти латку на файл"
+#: methods/rred.cc:465
+#, c-format
+msgid ""
+"Could not patch %s with mmap and with file operation usage - the patch seems "
+"to be corrupt."
+msgstr ""
+
+#: methods/rred.cc:470
+#, c-format
+msgid ""
+"Could not patch %s with mmap (but no mmap specific fail) - the patch seems "
+"to be corrupt."
+msgstr ""
#: methods/rsh.cc:330
msgid "Connection closed prematurely"
msgstr "З'єднання завершено передчасно"
-#~ msgid " %4i %s\n"
-#~ msgstr " %4i %s\n"
+#~ msgid "Could not patch file"
+#~ msgstr "Неможливо накласти латку на файл"
#~ msgid "%4i %s\n"
#~ msgstr "%4i %s\n"
--- /dev/null
+_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".
--- /dev/null
+
+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
--- /dev/null
+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.
+
--- /dev/null
+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
--- /dev/null
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQBGqgOwliSD4VZixzQRAs6jAJ9p7Aiob9gzkUNCtoW8UPrBo0E/YwCdEaz0
+CQJszU6fRYX5jGWXSWzfc5c=
+=ugH0
+-----END PGP SIGNATURE-----
--- /dev/null
+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.
+
--- /dev/null
+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
--- /dev/null
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQBGqgOwliSD4VZixzQRAs6jAJ9p7Aiob9gzkUNCtoW8UPrBo0E/YwCdEaz0
+CQJszU6fRYX5jGWXSWzfc5c=
+=ugH0
+-----END PGP SIGNATURE-----
--- /dev/null
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ /
+
--- /dev/null
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ /
+
import os
import glob
import os.path
+import shutil
+import time
from subprocess import call, PIPE
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):
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()
-
-