summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-inst/contrib/extracttar.cc2
-rw-r--r--apt-inst/deb/debfile.cc10
-rw-r--r--apt-pkg/acquire-item.cc80
-rw-r--r--apt-pkg/acquire-item.h15
-rw-r--r--apt-pkg/acquire-method.cc21
-rw-r--r--apt-pkg/acquire-method.h15
-rw-r--r--apt-pkg/cdrom.cc4
-rw-r--r--apt-pkg/deb/debsrcrecords.cc2
-rw-r--r--apt-pkg/deb/dpkgpm.cc515
-rw-r--r--apt-pkg/deb/dpkgpm.h36
-rw-r--r--apt-pkg/depcache.cc1
-rw-r--r--apt-pkg/init.cc14
-rw-r--r--apt-pkg/init.h2
-rw-r--r--apt-pkg/makefile2
-rw-r--r--apt-pkg/pkgcachegen.cc4
-rw-r--r--apt-pkg/pkgrecords.cc4
-rw-r--r--apt-pkg/tagfile.cc2
-rw-r--r--buildlib/config.h.in7
-rw-r--r--cmdline/apt-cache.cc4
-rw-r--r--cmdline/apt-cdrom.cc4
-rw-r--r--cmdline/apt-config.cc4
-rw-r--r--cmdline/apt-extracttemplates.cc4
-rw-r--r--cmdline/apt-get.cc31
-rwxr-xr-xcmdline/apt-key6
-rwxr-xr-xcmdline/apt-report-mirror-failure24
-rw-r--r--cmdline/apt-sortpkgs.cc4
-rw-r--r--cmdline/makefile8
-rw-r--r--configure.in13
-rw-r--r--debian/apt.conf.autoremove9
-rw-r--r--debian/apt.conf.ubuntu10
-rw-r--r--debian/apt.dirs3
-rw-r--r--debian/apt.logrotate8
-rw-r--r--debian/apt.postinst4
-rw-r--r--debian/changelog774
-rw-r--r--debian/control10
-rwxr-xr-xdebian/rules8
-rw-r--r--doc/examples/configure-index25
-rw-r--r--doc/examples/sources.list12
-rw-r--r--ftparchive/apt-ftparchive.cc4
-rw-r--r--methods/connect.cc18
-rw-r--r--methods/http.cc16
-rw-r--r--methods/http.h6
-rw-r--r--methods/http_main.cc15
-rw-r--r--methods/https.cc28
-rw-r--r--methods/makefile27
-rw-r--r--methods/mirror.cc282
-rw-r--r--methods/mirror.h51
-rw-r--r--mirror-failure.py23
-rw-r--r--po/LINGUAS2
-rw-r--r--po/ar.po2566
-rw-r--r--po/ku.po2665
-rw-r--r--po/uk.po2897
-rw-r--r--share/debian-archive.gpg.movedbin0 -> 2717 bytes
-rw-r--r--test/fake-status16
-rwxr-xr-xtest/pre-upload-check.py119
-rw-r--r--test/testkeys/mvo.key1182
-rw-r--r--test/testsources.list/sources.list.all-gpg-broken2
-rw-r--r--test/testsources.list/sources.list.all-gpg-ok2
-rw-r--r--test/testsources.list/sources.list.all-release-broken1
-rw-r--r--test/testsources.list/sources.list.all-release-ok1
-rw-r--r--test/testsources.list/sources.list.md5-package-broken2
-rw-r--r--test/testsources.list/sources.list.md5-package-ok2
-rw-r--r--test/testsources.list/sources.list.md5-release-broken1
-rw-r--r--test/testsources.list/sources.list.md5-release-ok1
-rw-r--r--test/testsources.list/sources.list.sha1-release-broken1
-rw-r--r--test/testsources.list/sources.list.sha1-release-ok1
-rw-r--r--test/testsources.list/sources.list.sha256-package-broken2
-rw-r--r--test/testsources.list/sources.list.sha256-package-ok2
-rw-r--r--test/testsources.list/sources.list.sha256-release-broken1
-rw-r--r--test/testsources.list/sources.list.sha256-release-ok1
70 files changed, 3190 insertions, 8448 deletions
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc
index 8a535967f..68c871a5d 100644
--- a/apt-inst/contrib/extracttar.cc
+++ b/apt-inst/contrib/extracttar.cc
@@ -332,7 +332,7 @@ bool ExtractTar::Go(pkgDirStream &Stream)
}
// And finish up
- if (Itm.Size != 0 && BadRecord == false)
+ if (Itm.Size >= 0 && BadRecord == false)
if (Stream.FinishedFile(Itm,Fd) == false)
return false;
diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc
index 9d83120f8..cd7a88808 100644
--- a/apt-inst/deb/debfile.cc
+++ b/apt-inst/deb/debfile.cc
@@ -44,8 +44,10 @@ debDebFile::debDebFile(FileFd &File) : File(File), AR(File)
return;
}
- if (!CheckMember("data.tar.gz") && !CheckMember("data.tar.bz2")) {
- _error->Error(_("This is not a valid DEB archive, it has no '%s' or '%s' member"), "data.tar.gz", "data.tar.bz2");
+ if (!CheckMember("data.tar.gz") &&
+ !CheckMember("data.tar.bz2") &&
+ !CheckMember("data.tar.lzma")) {
+ _error->Error(_("This is not a valid DEB archive, it has no '%s', '%s' or '%s' member"), "data.tar.gz", "data.tar.bz2", "data.tar.lzma");
return;
}
}
@@ -130,6 +132,10 @@ bool debDebFile::ExtractArchive(pkgDirStream &Stream)
Member = AR.FindMember("data.tar.bz2");
Compressor = "bzip2";
}
+ if (Member == 0) {
+ Member = AR.FindMember("data.tar.lzma");
+ Compressor = "lzma";
+ }
if (Member == 0)
return _error->Error(_("Internal error, could not locate member"));
if (File.Seek(Member->Start) == false)
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index 6e7c75032..3e6262c96 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -63,6 +63,7 @@ void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
{
Status = StatIdle;
ErrorText = LookupTag(Message,"Message");
+ UsedMirror = LookupTag(Message,"UsedMirror");
if (QueueCounter <= 1)
{
/* This indicates that the file is not available right now but might
@@ -75,10 +76,17 @@ void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
Dequeue();
return;
}
-
+
Status = StatError;
Dequeue();
}
+
+ // report mirror failure back to LP if we actually use a mirror
+ string FailReason = LookupTag(Message, "FailReason");
+ if(FailReason.size() != 0)
+ ReportMirrorFailure(FailReason);
+ else
+ ReportMirrorFailure(ErrorText);
}
/*}}}*/
// Acquire::Item::Start - Item has begun to download /*{{{*/
@@ -100,7 +108,7 @@ void pkgAcquire::Item::Done(string Message,unsigned long Size,string Hash,
{
// We just downloaded something..
string FileName = LookupTag(Message,"Filename");
- // we only inform the Log class if it was actually not a local thing
+ UsedMirror = LookupTag(Message,"UsedMirror");
if (Complete == false && !Local && FileName == DestFile)
{
if (Owner->Log != 0)
@@ -109,7 +117,6 @@ void pkgAcquire::Item::Done(string Message,unsigned long Size,string Hash,
if (FileSize == 0)
FileSize= Size;
-
Status = StatDone;
ErrorText = string();
Owner->Dequeue(this);
@@ -132,6 +139,49 @@ void pkgAcquire::Item::Rename(string From,string To)
}
/*}}}*/
+void pkgAcquire::Item::ReportMirrorFailure(string FailCode)
+{
+ // we only act if a mirror was used at all
+ if(UsedMirror.empty())
+ return;
+#if 0
+ std::cerr << "\nReportMirrorFailure: "
+ << UsedMirror
+ << " Uri: " << DescURI()
+ << " FailCode: "
+ << FailCode << std::endl;
+#endif
+ const char *Args[40];
+ unsigned int i = 0;
+ string report = _config->Find("Methods::Mirror::ProblemReporting",
+ "/usr/lib/apt/apt-report-mirror-failure");
+ if(!FileExists(report))
+ return;
+ Args[i++] = report.c_str();
+ Args[i++] = UsedMirror.c_str();
+ Args[i++] = DescURI().c_str();
+ Args[i++] = FailCode.c_str();
+ Args[i++] = NULL;
+ pid_t pid = ExecFork();
+ if(pid < 0)
+ {
+ _error->Error("ReportMirrorFailure Fork failed");
+ return;
+ }
+ else if(pid == 0)
+ {
+ execvp(Args[0], (char**)Args);
+ std::cerr << "Could not exec " << Args[0] << std::endl;
+ _exit(100);
+ }
+ if(!ExecWait(pid, "report-mirror-failure"))
+ {
+ _error->Warning("Couldn't report problem to '%s'",
+ _config->Find("Methods::Mirror::ProblemReporting").c_str());
+ }
+}
+
+
// AcqDiffIndex::AcqDiffIndex - Constructor
// ---------------------------------------------------------------------
@@ -590,7 +640,6 @@ string pkgAcqIndex::Custom600Headers()
struct stat Buf;
if (stat(Final.c_str(),&Buf) != 0)
return "\nIndex-File: true";
-
return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
}
/*}}}*/
@@ -646,6 +695,7 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
Status = StatAuthError;
ErrorText = _("Hash Sum mismatch");
Rename(DestFile,DestFile + ".FAILED");
+ ReportMirrorFailure("HashChecksumFailure");
return;
}
// Done, move it into position
@@ -674,8 +724,10 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
{
// The files timestamp matches
if (StringToBool(LookupTag(Message,"Alt-IMS-Hit"),false) == true)
+ {
+ unlink(FileName.c_str());
return;
-
+ }
Decompression = true;
Local = true;
DestFile += ".decomp";
@@ -694,7 +746,10 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
// The files timestamp matches
if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == true)
+ {
+ unlink(FileName.c_str());
return;
+ }
if (FileName == DestFile)
Erase = true;
@@ -966,18 +1021,18 @@ void pkgAcqMetaIndex::RetrievalDone(string Message)
// see if the download was a IMSHit
IMSHit = StringToBool(LookupTag(Message,"IMS-Hit"),false);
-
Complete = true;
string FinalFile = _config->FindDir("Dir::State::lists");
FinalFile += URItoFileName(RealURI);
- // The files timestamp matches
- if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == false)
- {
- // Move it into position
+ // If we get a IMS hit we can remove the empty file in partial
+ // othersie we move the file in place
+ if (IMSHit)
+ unlink(DestFile.c_str());
+ else
Rename(DestFile,FinalFile);
- }
+
chmod(FinalFile.c_str(),0644);
DestFile = FinalFile;
}
@@ -1050,7 +1105,7 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify)
// Queue Packages file (either diff or full packages files, depending
// on the users option)
- if(_config->FindB("Acquire::PDiffs",true) == true)
+ if(_config->FindB("Acquire::PDiffs",false) == true)
new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description,
(*Target)->ShortDesc, ExpectedIndexHash);
else
@@ -1174,6 +1229,7 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
}
// gpgv method failed
+ ReportMirrorFailure("GPGFailure");
_error->Warning("GPG error: %s: %s",
Desc.Description.c_str(),
LookupTag(Message,"Message").c_str());
diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h
index edd910230..802d8d1ff 100644
--- a/apt-pkg/acquire-item.h
+++ b/apt-pkg/acquire-item.h
@@ -142,6 +142,7 @@ class pkgAcquire::Item
* download progress indicator's overall statistics.
*/
bool Local;
+ string UsedMirror;
/** \brief The number of fetch queues into which this item has been
* inserted.
@@ -242,6 +243,17 @@ class pkgAcquire::Item
/** \return \b true if this object is being fetched from a trusted source. */
virtual bool IsTrusted() {return false;};
+
+ // report mirror problems
+ /** \brief Report mirror problem
+ *
+ * This allows reporting mirror failures back to a centralized
+ * server. The apt-report-mirror-failure script is called for this
+ *
+ * \param FailCode A short failure string that is send
+ */
+ void ReportMirrorFailure(string FailCode);
+
/** \brief Initialize an item.
*
@@ -543,7 +555,8 @@ class pkgAcqIndex : public pkgAcquire::Item
* (".bz2" is used if bzip2 is installed, ".gz" otherwise).
*/
pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc,
- string ShortDesc, HashString ExpectedHash, string compressExt="");
+ string ShortDesc, HashString ExpectedHash,
+ string compressExt="");
};
/** \brief An acquire item that is responsible for fetching a
diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc
index bc29417f7..26f992bcf 100644
--- a/apt-pkg/acquire-method.cc
+++ b/apt-pkg/acquire-method.cc
@@ -96,12 +96,11 @@ void pkgAcqMethod::Fail(string Err,bool Transient)
}
char S[1024];
+ char *End = S;
if (Queue != 0)
{
- snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n"
- "Message: %s %s\n",Queue->Uri.c_str(),Err.c_str(),
- FailExtra.c_str());
-
+ End += snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n"
+ "Message: %s %s\n",Queue->Uri.c_str(), Err.c_str(), IP.c_str());
// Dequeue
FetchItem *Tmp = Queue;
Queue = Queue->Next;
@@ -110,10 +109,14 @@ void pkgAcqMethod::Fail(string Err,bool Transient)
QueueBack = Queue;
}
else
- snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: <UNKNOWN>\n"
- "Message: %s %s\n",Err.c_str(),
- FailExtra.c_str());
-
+ {
+ End += snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: <UNKNOWN>\n"
+ "Message: %s\n",Err.c_str());
+ }
+ if(FailReason.empty() == false)
+ End += snprintf(End,sizeof(S)-50 - (End - S),"FailReason: %s\n",FailReason.c_str());
+ if (UsedMirror.empty() == false)
+ End += snprintf(End,sizeof(S)-50 - (End - S),"UsedMirror: %s\n",UsedMirror.c_str());
// Set the transient flag
if (Transient == true)
strcat(S,"Transient-Failure: true\n\n");
@@ -184,6 +187,8 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
End += snprintf(End,sizeof(S)-50 - (End - S),"SHA1-Hash: %s\n",Res.SHA1Sum.c_str());
if (Res.SHA256Sum.empty() == false)
End += snprintf(End,sizeof(S)-50 - (End - S),"SHA256-Hash: %s\n",Res.SHA256Sum.c_str());
+ if (UsedMirror.empty() == false)
+ End += snprintf(End,sizeof(S)-50 - (End - S),"UsedMirror: %s\n",UsedMirror.c_str());
if (Res.GPGVOutput.size() > 0)
End += snprintf(End,sizeof(S)-50 - (End - S),"GPGVOutput:\n");
for (vector<string>::iterator I = Res.GPGVOutput.begin();
diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h
index e02eab018..18c2cf009 100644
--- a/apt-pkg/acquire-method.h
+++ b/apt-pkg/acquire-method.h
@@ -59,7 +59,9 @@ class pkgAcqMethod
vector<string> Messages;
FetchItem *Queue;
FetchItem *QueueBack;
- string FailExtra;
+ string FailReason;
+ string UsedMirror;
+ string IP;
// Handlers for messages
virtual bool Configuration(string Message);
@@ -68,14 +70,14 @@ class pkgAcqMethod
// Outgoing messages
void Fail(bool Transient = false);
inline void Fail(const char *Why, bool Transient = false) {Fail(string(Why),Transient);};
- void Fail(string Why, bool Transient = false);
- void URIStart(FetchResult &Res);
- void URIDone(FetchResult &Res,FetchResult *Alt = 0);
+ virtual void Fail(string Why, bool Transient = false);
+ virtual void URIStart(FetchResult &Res);
+ virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0);
+
bool MediaFail(string Required,string Drive);
virtual void Exit() {};
public:
-
enum CnfFlags {SingleInstance = (1<<0),
Pipeline = (1<<1), SendConfig = (1<<2),
LocalOnly = (1<<3), NeedsCleanup = (1<<4),
@@ -85,7 +87,8 @@ class pkgAcqMethod
void Status(const char *Format,...);
int Run(bool Single = false);
- inline void SetFailExtraMsg(string Msg) {FailExtra = Msg;};
+ inline void SetFailReason(string Msg) {FailReason = Msg;};
+ inline void SetIP(string aIP) {IP = aIP;};
pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
virtual ~pkgAcqMethod() {};
diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc
index 4a688a5e1..96106c7a9 100644
--- a/apt-pkg/cdrom.cc
+++ b/apt-pkg/cdrom.cc
@@ -668,8 +668,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
DropRepeats(TransList,"");
if(log) {
msg.str("");
- ioprintf(msg, _("Found %i package indexes, %i source indexes, "
- "%i translation indexes and %i signatures\n"),
+ ioprintf(msg, _("Found %lu package indexes, %lu source indexes, "
+ "%lu translation indexes and %lu signatures\n"),
List.size(), SourceList.size(), TransList.size(),
SigList.size());
log->Update(msg.str(), STEP_SCAN);
diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc
index fcd9bb901..ace4e00b5 100644
--- a/apt-pkg/deb/debsrcrecords.cc
+++ b/apt-pkg/deb/debsrcrecords.cc
@@ -137,7 +137,7 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List)
break;
F.Type = string(F.Path,Tmp+1,Pos-Tmp);
- if (F.Type == "gz" || F.Type == "bz2")
+ if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma")
{
Pos = Tmp-1;
continue;
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index a63c4e412..dad8da9ed 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -12,11 +12,14 @@
#include <apt-pkg/error.h>
#include <apt-pkg/configuration.h>
#include <apt-pkg/depcache.h>
+#include <apt-pkg/pkgrecords.h>
#include <apt-pkg/strutl.h>
+#include <apti18n.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <sys/select.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
@@ -25,16 +28,25 @@
#include <sstream>
#include <map>
+#include <termios.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <pty.h>
+
#include <config.h>
#include <apti18n.h>
/*}}}*/
using namespace std;
+
+
// DPkgPM::pkgDPkgPM - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
-pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) : pkgPackageManager(Cache)
+pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache)
+ : pkgPackageManager(Cache), dpkgbuf_pos(0), PackagesDone(0),
+ PackagesTotal(0), term_out(NULL)
{
}
/*}}}*/
@@ -323,7 +335,170 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf)
return true;
}
+
+ /*}}}*/
+// DPkgPM::DoStdin - Read stdin and pass to slave pty /*{{{*/
+// ---------------------------------------------------------------------
+/*
+*/
+void pkgDPkgPM::DoStdin(int master)
+{
+ char input_buf[256] = {0,};
+ int len = read(0, input_buf, sizeof(input_buf));
+ write(master, input_buf, len);
+}
+ /*}}}*/
+// DPkgPM::DoTerminalPty - Read the terminal pty and write log /*{{{*/
+// ---------------------------------------------------------------------
+/*
+ * read the terminal pty and write log
+ */
+void pkgDPkgPM::DoTerminalPty(int master)
+{
+ char term_buf[1024] = {0,};
+
+ int len=read(master, term_buf, sizeof(term_buf));
+ if(len <= 0)
+ return;
+ write(1, term_buf, len);
+ if(term_out)
+ fwrite(term_buf, len, sizeof(char), term_out);
+}
/*}}}*/
+// DPkgPM::ProcessDpkgStatusBuf /*{{{*/
+// ---------------------------------------------------------------------
+/*
+ */
+void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
+{
+ // the status we output
+ ostringstream status;
+
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "got from dpkg '" << line << "'" << std::endl;
+
+
+ /* dpkg sends strings like this:
+ 'status: <pkg>: <pkg qstate>'
+ errors look like this:
+ 'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data
+ and conffile-prompt like this
+ 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited
+
+ */
+ char* list[5];
+ // dpkg sends multiline error messages sometimes (see
+ // #374195 for a example. we should support this by
+ // either patching dpkg to not send multiline over the
+ // statusfd or by rewriting the code here to deal with
+ // it. for now we just ignore it and not crash
+ TokSplitString(':', line, list, sizeof(list)/sizeof(list[0]));
+ char *pkg = list[1];
+ char *action = _strstrip(list[2]);
+ if( pkg == NULL || action == NULL)
+ {
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "ignoring line: not enough ':'" << std::endl;
+ return;
+ }
+
+ if(strncmp(action,"error",strlen("error")) == 0)
+ {
+ status << "pmerror:" << list[1]
+ << ":" << (PackagesDone/float(PackagesTotal)*100.0)
+ << ":" << list[3]
+ << endl;
+ if(OutStatusFd > 0)
+ write(OutStatusFd, status.str().c_str(), status.str().size());
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "send: '" << status.str() << "'" << endl;
+ pkgFailures++;
+ WriteApportReport(list[1], list[3]);
+ return;
+ }
+ if(strncmp(action,"conffile",strlen("conffile")) == 0)
+ {
+ status << "pmconffile:" << list[1]
+ << ":" << (PackagesDone/float(PackagesTotal)*100.0)
+ << ":" << list[3]
+ << endl;
+ if(OutStatusFd > 0)
+ write(OutStatusFd, status.str().c_str(), status.str().size());
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "send: '" << status.str() << "'" << endl;
+ return;
+ }
+
+ vector<struct DpkgState> &states = PackageOps[pkg];
+ const char *next_action = NULL;
+ if(PackageOpsDone[pkg] < states.size())
+ next_action = states[PackageOpsDone[pkg]].state;
+ // check if the package moved to the next dpkg state
+ if(next_action && (strcmp(action, next_action) == 0))
+ {
+ // only read the translation if there is actually a next
+ // action
+ const char *translation = _(states[PackageOpsDone[pkg]].str);
+ char s[200];
+ snprintf(s, sizeof(s), translation, pkg);
+
+ // we moved from one dpkg state to a new one, report that
+ PackageOpsDone[pkg]++;
+ PackagesDone++;
+ // build the status str
+ status << "pmstatus:" << pkg
+ << ":" << (PackagesDone/float(PackagesTotal)*100.0)
+ << ":" << s
+ << endl;
+ if(OutStatusFd > 0)
+ write(OutStatusFd, status.str().c_str(), status.str().size());
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "send: '" << status.str() << "'" << endl;
+ }
+ if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+ std::clog << "(parsed from dpkg) pkg: " << pkg
+ << " action: " << action << endl;
+}
+
+// DPkgPM::DoDpkgStatusFd /*{{{*/
+// ---------------------------------------------------------------------
+/*
+ */
+void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
+{
+ char *p, *q;
+ int len;
+
+ len=read(statusfd, &dpkgbuf[dpkgbuf_pos], sizeof(dpkgbuf)-dpkgbuf_pos);
+ dpkgbuf_pos += len;
+ if(len <= 0)
+ return;
+
+ // process line by line if we have a buffer
+ p = q = dpkgbuf;
+ while((q=(char*)memchr(p, '\n', dpkgbuf+dpkgbuf_pos-p)) != NULL)
+ {
+ *q = 0;
+ ProcessDpkgStatusLine(OutStatusFd, p);
+ p=q+1; // continue with next line
+ }
+
+ // now move the unprocessed bits (after the final \n that is now a 0x0)
+ // to the start and update dpkgbuf_pos
+ p = (char*)memrchr(dpkgbuf, 0, dpkgbuf_pos);
+ if(p == NULL)
+ return;
+
+ // we are interessted in the first char *after* 0x0
+ p++;
+
+ // move the unprocessed tail to the start and update pos
+ memmove(dpkgbuf, p, p-dpkgbuf);
+ dpkgbuf_pos = dpkgbuf+dpkgbuf_pos-p;
+}
+ /*}}}*/
+
+
// DPkgPM::Go - Run the sequence /*{{{*/
// ---------------------------------------------------------------------
/* This globs the operations and calls dpkg
@@ -344,9 +519,6 @@ bool pkgDPkgPM::Go(int OutStatusFd)
if (RunScriptsWithPkgs("DPkg::Pre-Install-Pkgs") == false)
return false;
- // prepare the progress reporting
- int Done = 0;
- int Total = 0;
// map the dpkg states to the operations that are performed
// (this is sorted in the same way as Item::Ops)
static const struct DpkgState DpkgStatesOpMap[][5] = {
@@ -378,15 +550,6 @@ bool pkgDPkgPM::Go(int OutStatusFd)
},
};
- // the dpkg states that the pkg will run through, the string is
- // the package, the vector contains the dpkg states that the package
- // will go through
- map<string,vector<struct DpkgState> > PackageOps;
- // the dpkg states that are already done; the string is the package
- // the int is the state that is already done (e.g. a package that is
- // going to be install is already in state "half-installed")
- map<string,unsigned int> PackageOpsDone;
-
// init the PackageOps map, go over the list of packages that
// that will be [installed|configured|removed|purged] and add
// them to the PackageOps map (the dpkg states it goes through)
@@ -398,10 +561,30 @@ bool pkgDPkgPM::Go(int OutStatusFd)
for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; i++)
{
PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]);
- Total++;
+ PackagesTotal++;
}
}
+ // create log
+ string logdir = _config->FindDir("Dir::Log");
+ if(not FileExists(logdir))
+ return _error->Error(_("Directory '%s' missing"), logdir.c_str());
+ string logfile_name = flCombine(logdir,
+ _config->Find("Dir::Log::Terminal"));
+ if (!logfile_name.empty())
+ {
+ term_out = fopen(logfile_name.c_str(),"a");
+ chmod(logfile_name.c_str(), 0600);
+ // output current time
+ char outstr[200];
+ time_t t = time(NULL);
+ struct tm *tmp = localtime(&t);
+ strftime(outstr, sizeof(outstr), "%F %T", tmp);
+ fprintf(term_out, "\nLog started: ");
+ fprintf(term_out, outstr);
+ fprintf(term_out, "\n");
+ }
+
// this loop is runs once per operation
for (vector<Item>::iterator I = List.begin(); I != List.end();)
{
@@ -516,7 +699,30 @@ bool pkgDPkgPM::Go(int OutStatusFd)
it doesn't die but we do! So we must also ignore it */
sighandler_t old_SIGQUIT = signal(SIGQUIT,SIG_IGN);
sighandler_t old_SIGINT = signal(SIGINT,SIG_IGN);
-
+
+ struct termios tt;
+ struct winsize win;
+ int master;
+ int slave;
+
+ // FIXME: setup sensible signal handling (*ick*)
+ tcgetattr(0, &tt);
+ ioctl(0, TIOCGWINSZ, (char *)&win);
+ if (openpty(&master, &slave, NULL, &tt, &win) < 0)
+ {
+ const char *s = _("Can not write log, openpty() "
+ "failed (/dev/pts not mounted?)\n");
+ fprintf(stderr, "%s",s);
+ fprintf(term_out, "%s",s);
+ master = slave = -1;
+ } else {
+ struct termios rtt;
+ rtt = tt;
+ cfmakeraw(&rtt);
+ rtt.c_lflag &= ~ECHO;
+ tcsetattr(0, TCSAFLUSH, &rtt);
+ }
+
// Fork dpkg
pid_t Child;
_config->Set("APT::Keep-Fds::",fd[1]);
@@ -525,8 +731,18 @@ bool pkgDPkgPM::Go(int OutStatusFd)
// This is the child
if (Child == 0)
{
+ if(slave >= 0 && master >= 0)
+ {
+ setsid();
+ ioctl(slave, TIOCSCTTY, 0);
+ close(master);
+ dup2(slave, 0);
+ dup2(slave, 1);
+ dup2(slave, 2);
+ close(slave);
+ }
close(fd[0]); // close the read end of the pipe
-
+
if (chdir(_config->FindDir("DPkg::Run-Directory","/").c_str()) != 0)
_exit(100);
@@ -545,7 +761,8 @@ bool pkgDPkgPM::Go(int OutStatusFd)
if (fcntl(STDIN_FILENO,F_SETFL,Flags & (~(long)O_NONBLOCK)) < 0)
_exit(100);
}
-
+
+
/* No Job Control Stop Env is a magic dpkg var that prevents it
from using sigstop */
putenv("DPKG_NO_TSTP=yes");
@@ -562,16 +779,17 @@ bool pkgDPkgPM::Go(int OutStatusFd)
// we read from dpkg here
int _dpkgin = fd[0];
- fcntl(_dpkgin, F_SETFL, O_NONBLOCK);
close(fd[1]); // close the write end of the pipe
- // the read buffers for the communication with dpkg
- char line[1024] = {0,};
- char buf[2] = {0,0};
-
// the result of the waitpid call
int res;
+ if(slave > 0)
+ close(slave);
+ // setups fds
+ fd_set rfds;
+ struct timeval tv;
+ int select_ret;
while ((res=waitpid(Child,&Status, WNOHANG)) != Child) {
if(res < 0) {
// FIXME: move this to a function or something, looks ugly here
@@ -585,127 +803,36 @@ bool pkgDPkgPM::Go(int OutStatusFd)
signal(SIGINT,old_SIGINT);
return _error->Errno("waitpid","Couldn't wait for subprocess");
}
-
- // read a single char, make sure that the read can't block
- // (otherwise we may leave zombies)
- int len = read(_dpkgin, buf, 1);
-
- // nothing to read, wait a bit for more
- if(len <= 0)
- {
- usleep(1000);
- continue;
- }
-
- // sanity check (should never happen)
- if(strlen(line) >= sizeof(line)-10)
- {
- _error->Error("got a overlong line from dpkg: '%s'",line);
- line[0]=0;
- }
- // append to line, check if we got a complete line
- strcat(line, buf);
- if(buf[0] != '\n')
- continue;
-
- if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
- std::clog << "got from dpkg '" << line << "'" << std::endl;
-
- // the status we output
- ostringstream status;
-
- /* dpkg sends strings like this:
- 'status: <pkg>: <pkg qstate>'
- errors look like this:
- 'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data
- and conffile-prompt like this
- 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited
-
- */
- char* list[5];
- // dpkg sends multiline error messages sometimes (see
- // #374195 for a example. we should support this by
- // either patching dpkg to not send multiline over the
- // statusfd or by rewriting the code here to deal with
- // it. for now we just ignore it and not crash
- TokSplitString(':', line, list, sizeof(list)/sizeof(list[0]));
- char *pkg = list[1];
- char *action = _strstrip(list[2]);
- if( pkg == NULL || action == NULL)
- {
- if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
- std::clog << "ignoring line: not enough ':'" << std::endl;
- // reset the line buffer
- line[0]=0;
- continue;
- }
- if(strncmp(action,"error",strlen("error")) == 0)
- {
- status << "pmerror:" << list[1]
- << ":" << (Done/float(Total)*100.0)
- << ":" << list[3]
- << endl;
- if(OutStatusFd > 0)
- write(OutStatusFd, status.str().c_str(), status.str().size());
- line[0]=0;
- if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
- std::clog << "send: '" << status.str() << "'" << endl;
+ // wait for input or output here
+ FD_ZERO(&rfds);
+ FD_SET(0, &rfds);
+ FD_SET(_dpkgin, &rfds);
+ if(master >= 0)
+ FD_SET(master, &rfds);
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+ select_ret = select(max(master, _dpkgin)+1, &rfds, NULL, NULL, &tv);
+ if (select_ret < 0)
+ std::cerr << "Error in select()" << std::endl;
+ else if (select_ret == 0)
continue;
- }
- if(strncmp(action,"conffile",strlen("conffile")) == 0)
- {
- status << "pmconffile:" << list[1]
- << ":" << (Done/float(Total)*100.0)
- << ":" << list[3]
- << endl;
- if(OutStatusFd > 0)
- write(OutStatusFd, status.str().c_str(), status.str().size());
- line[0]=0;
- if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
- std::clog << "send: '" << status.str() << "'" << endl;
- continue;
- }
-
- vector<struct DpkgState> &states = PackageOps[pkg];
- const char *next_action = NULL;
- if(PackageOpsDone[pkg] < states.size())
- next_action = states[PackageOpsDone[pkg]].state;
- // check if the package moved to the next dpkg state
- if(next_action && (strcmp(action, next_action) == 0))
- {
- // only read the translation if there is actually a next
- // action
- const char *translation = _(states[PackageOpsDone[pkg]].str);
- char s[200];
- snprintf(s, sizeof(s), translation, pkg);
-
- // we moved from one dpkg state to a new one, report that
- PackageOpsDone[pkg]++;
- Done++;
- // build the status str
- status << "pmstatus:" << pkg
- << ":" << (Done/float(Total)*100.0)
- << ":" << s
- << endl;
- if(OutStatusFd > 0)
- write(OutStatusFd, status.str().c_str(), status.str().size());
- if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
- std::clog << "send: '" << status.str() << "'" << endl;
-
- }
- if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
- std::clog << "(parsed from dpkg) pkg: " << pkg
- << " action: " << action << endl;
- // reset the line buffer
- line[0]=0;
+ if(master >= 0 && FD_ISSET(master, &rfds))
+ DoTerminalPty(master);
+ if(master >= 0 && FD_ISSET(0, &rfds))
+ DoStdin(master);
+ if(FD_ISSET(_dpkgin, &rfds))
+ DoDpkgStatusFd(_dpkgin, OutStatusFd);
}
close(_dpkgin);
// Restore sig int/quit
signal(SIGQUIT,old_SIGQUIT);
signal(SIGINT,old_SIGINT);
+
+ if(master >= 0 && slave >= 0)
+ tcsetattr(0, TCSAFLUSH, &tt);
// Check for an error code.
if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0)
@@ -725,10 +852,16 @@ bool pkgDPkgPM::Go(int OutStatusFd)
else
_error->Error("Sub-process %s exited unexpectedly",Args[0]);
- if(stopOnError)
+ if(stopOnError)
+ {
+ if(term_out)
+ fclose(term_out);
return false;
+ }
}
}
+ if(term_out)
+ fclose(term_out);
if (RunScripts("DPkg::Post-Invoke") == false)
return false;
@@ -743,3 +876,115 @@ void pkgDPkgPM::Reset()
List.erase(List.begin(),List.end());
}
/*}}}*/
+// pkgDpkgPM::WriteApportReport - write out error report pkg failure /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg)
+{
+ string pkgname, reportfile, srcpkgname, pkgver, arch;
+ string::size_type pos;
+ FILE *report;
+
+ if (_config->FindB("Dpkg::ApportFailureReport",true) == false)
+ return;
+
+ // only report the first error if we are in StopOnError=false mode
+ // to prevent bogus reports
+ if((_config->FindB("Dpkg::StopOnError",true) == false) && pkgFailures > 1)
+ return;
+
+ // get the pkgname and reportfile
+ pkgname = flNotDir(pkgpath);
+ pos = pkgname.find('_');
+ if(pos != string::npos)
+ pkgname = pkgname.substr(0, pos);
+
+ // find the package versin and source package name
+ pkgCache::PkgIterator Pkg = Cache.FindPkg(pkgname);
+ if (Pkg.end() == true)
+ return;
+ pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
+ pkgver = Ver.VerStr();
+ if (Ver.end() == true)
+ return;
+ pkgRecords Recs(Cache);
+ pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
+ srcpkgname = Parse.SourcePkg();
+ if(srcpkgname.empty())
+ srcpkgname = pkgname;
+
+ // if the file exists already, we check:
+ // - if it was reported already (touched by apport).
+ // If not, we do nothing, otherwise
+ // we overwrite it. This is the same behaviour as apport
+ // - if we have a report with the same pkgversion already
+ // then we skip it
+ reportfile = flCombine("/var/crash",pkgname+".0.crash");
+ if(FileExists(reportfile))
+ {
+ struct stat buf;
+ char strbuf[255];
+
+ // check atime/mtime
+ stat(reportfile.c_str(), &buf);
+ if(buf.st_mtime > buf.st_atime)
+ return;
+
+ // check if the existing report is the same version
+ report = fopen(reportfile.c_str(),"r");
+ while(fgets(strbuf, sizeof(strbuf), report) != NULL)
+ {
+ if(strstr(strbuf,"Package:") == strbuf)
+ {
+ char pkgname[255], version[255];
+ if(sscanf(strbuf, "Package: %s %s", pkgname, version) == 2)
+ if(strcmp(pkgver.c_str(), version) == 0)
+ {
+ fclose(report);
+ return;
+ }
+ }
+ }
+ fclose(report);
+ }
+
+ // now write the report
+ arch = _config->Find("APT::Architecture");
+ report = fopen(reportfile.c_str(),"w");
+ if(report == NULL)
+ return;
+ if(_config->FindB("DPkgPM::InitialReportOnly",false) == true)
+ chmod(reportfile.c_str(), 0);
+ else
+ chmod(reportfile.c_str(), 0600);
+ fprintf(report, "ProblemType: Package\n");
+ fprintf(report, "Architecture: %s\n", arch.c_str());
+ time_t now = time(NULL);
+ fprintf(report, "Date: %s" , ctime(&now));
+ fprintf(report, "Package: %s %s\n", pkgname.c_str(), pkgver.c_str());
+ fprintf(report, "SourcePackage: %s\n", srcpkgname.c_str());
+ fprintf(report, "ErrorMessage:\n %s\n", errormsg);
+
+ // ensure that the log is flushed
+ if(term_out)
+ fflush(term_out);
+
+ // attach terminal log it if we have it
+ string logfile_name = _config->FindFile("Dir::Log::Terminal");
+ if (!logfile_name.empty())
+ {
+ FILE *log = NULL;
+ char buf[1024];
+
+ fprintf(report, "DpkgTerminalLog:\n");
+ log = fopen(logfile_name.c_str(),"r");
+ if(log != NULL)
+ {
+ while( fgets(buf, sizeof(buf), log) != NULL)
+ fprintf(report, " %s", buf);
+ fclose(log);
+ }
+ }
+ fclose(report);
+}
+ /*}}}*/
diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h
index 7da729904..debde36a3 100644
--- a/apt-pkg/deb/dpkgpm.h
+++ b/apt-pkg/deb/dpkgpm.h
@@ -12,21 +12,44 @@
#include <apt-pkg/packagemanager.h>
#include <vector>
+#include <map>
#include <stdio.h>
using std::vector;
+using std::map;
+
class pkgDPkgPM : public pkgPackageManager
{
+ private:
+
+ // the buffer we use for the dpkg status-fd reading
+ char dpkgbuf[1024];
+ int dpkgbuf_pos;
+ FILE *term_out;
+
protected:
+ int pkgFailures;
- // used for progress reporting
+ // progress reporting
struct DpkgState
{
const char *state; // the dpkg state (e.g. "unpack")
const char *str; // the human readable translation of the state
};
-
+
+ // the dpkg states that the pkg will run through, the string is
+ // the package, the vector contains the dpkg states that the package
+ // will go through
+ map<string,vector<struct DpkgState> > PackageOps;
+ // the dpkg states that are already done; the string is the package
+ // the int is the state that is already done (e.g. a package that is
+ // going to be install is already in state "half-installed")
+ map<string,unsigned int> PackageOpsDone;
+ // progress reporting
+ unsigned int PackagesDone;
+ unsigned int PackagesTotal;
+
struct Item
{
enum Ops {Install, Configure, Remove, Purge} Op;
@@ -44,6 +67,15 @@ class pkgDPkgPM : public pkgPackageManager
bool RunScriptsWithPkgs(const char *Cnf);
bool SendV2Pkgs(FILE *F);
+ // apport integration
+ void WriteApportReport(const char *pkgpath, const char *errormsg);
+
+ // input processing
+ void DoStdin(int master);
+ void DoTerminalPty(int master);
+ void DoDpkgStatusFd(int statusfd, int OutStatusFd);
+ void ProcessDpkgStatusLine(int OutStatusFd, char *line);
+
// The Actuall installation implementation
virtual bool Install(PkgIterator Pkg,string File);
virtual bool Configure(PkgIterator Pkg);
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index c21872449..d447d175e 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -1397,3 +1397,4 @@ bool pkgDepCache::Sweep()
return true;
}
+
diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc
index 2f15486d9..73b3c83de 100644
--- a/apt-pkg/init.cc
+++ b/apt-pkg/init.cc
@@ -24,8 +24,6 @@ const char *pkgVersion = VERSION;
const char *pkgLibVersion = Stringfy(APT_PKG_MAJOR) "."
Stringfy(APT_PKG_MINOR) "."
Stringfy(APT_PKG_RELEASE);
-const char *pkgCPU = COMMON_CPU;
-const char *pkgOS = COMMON_OS;
// pkgInitConfig - Initialize the configuration class /*{{{*/
// ---------------------------------------------------------------------
@@ -35,11 +33,7 @@ const char *pkgOS = COMMON_OS;
bool pkgInitConfig(Configuration &Cnf)
{
// General APT things
- if (strcmp(COMMON_OS,"linux") == 0 ||
- strcmp(COMMON_OS,"unknown") == 0)
- Cnf.Set("APT::Architecture",COMMON_CPU);
- else
- Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
+ Cnf.Set("APT::Architecture", COMMON_ARCH);
Cnf.Set("APT::Build-Essential::", "build-essential");
Cnf.Set("APT::Install-Recommends", false);
Cnf.Set("APT::Install-Suggests", false);
@@ -57,6 +51,7 @@ bool pkgInitConfig(Configuration &Cnf)
Cnf.Set("Dir::State::lists","lists/");
Cnf.Set("Dir::State::cdroms","cdroms.list");
+ Cnf.Set("Dir::State::mirrors","mirrors/");
// Cache
Cnf.Set("Dir::Cache","var/cache/apt/");
@@ -74,6 +69,10 @@ bool pkgInitConfig(Configuration &Cnf)
Cnf.Set("Dir::Etc::parts","apt.conf.d");
Cnf.Set("Dir::Etc::preferences","preferences");
Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
+
+ // State
+ Cnf.Set("Dir::Log","var/log/apt");
+ Cnf.Set("Dir::Log::Terminal","term.log");
bool Res = true;
@@ -105,7 +104,6 @@ bool pkgInitConfig(Configuration &Cnf)
bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str());
}
#endif
-
// Translation
Cnf.Set("APT::Acquire::Translation", "environment");
diff --git a/apt-pkg/init.h b/apt-pkg/init.h
index 801c7cfd0..23e951eff 100644
--- a/apt-pkg/init.h
+++ b/apt-pkg/init.h
@@ -23,8 +23,6 @@
extern const char *pkgVersion;
extern const char *pkgLibVersion;
-extern const char *pkgOS;
-extern const char *pkgCPU;
bool pkgInitConfig(Configuration &Cnf);
bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys);
diff --git a/apt-pkg/makefile b/apt-pkg/makefile
index 78c24fe83..b327dbf64 100644
--- a/apt-pkg/makefile
+++ b/apt-pkg/makefile
@@ -15,7 +15,7 @@ LIBRARY=apt-pkg
LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
MAJOR=4.5
MINOR=0
-SLIBS=$(PTHREADLIB) $(INTLLIBS)
+SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil
APT_DOMAIN:=libapt-pkg$(MAJOR)
# Source code for the contributed non-core things
diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc
index 4e186f466..d00cd4e64 100644
--- a/apt-pkg/pkgcachegen.cc
+++ b/apt-pkg/pkgcachegen.cc
@@ -781,7 +781,7 @@ static bool BuildCache(pkgCacheGenerator &Gen,
bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress,
MMap **OutMap,bool AllowMem)
{
- unsigned long MapSize = _config->FindI("APT::Cache-Limit",16*1024*1024);
+ unsigned long MapSize = _config->FindI("APT::Cache-Limit",24*1024*1024);
vector<pkgIndexFile *> Files;
for (vector<metaIndex *>::const_iterator i = List.begin();
@@ -928,7 +928,7 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress,
/* */
bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap)
{
- unsigned long MapSize = _config->FindI("APT::Cache-Limit",12*1024*1024);
+ unsigned long MapSize = _config->FindI("APT::Cache-Limit",20*1024*1024);
vector<pkgIndexFile *> Files;
unsigned long EndOfSource = Files.size();
if (_system->AddStatusFiles(Files) == false)
diff --git a/apt-pkg/pkgrecords.cc b/apt-pkg/pkgrecords.cc
index e506de73a..a5dab22ff 100644
--- a/apt-pkg/pkgrecords.cc
+++ b/apt-pkg/pkgrecords.cc
@@ -23,8 +23,8 @@
pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache),
Files(Cache.HeaderP->PackageFileCount)
{
- for (pkgCache::PkgFileIterator I = Cache.FileBegin();
- I.end() == false; I++)
+ for (pkgCache::PkgFileIterator I = Cache.FileBegin();
+ I.end() == false; I++)
{
const pkgIndexFile::Type *Type = pkgIndexFile::Type::GetType(I.IndexType());
if (Type == 0)
diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc
index 893cb8ee7..0ae6950f3 100644
--- a/apt-pkg/tagfile.cc
+++ b/apt-pkg/tagfile.cc
@@ -407,6 +407,7 @@ static const char *iTFRewritePackageOrder[] = {
"Section",
"Installed-Size",
"Maintainer",
+ "Original-Maintainer",
"Architecture",
"Source",
"Version",
@@ -436,6 +437,7 @@ static const char *iTFRewriteSourceOrder[] = {"Package",
"Priority",
"Section",
"Maintainer",
+ "Original-Maintainer",
"Build-Depends",
"Build-Depends-Indep",
"Build-Conflicts",
diff --git a/buildlib/config.h.in b/buildlib/config.h.in
index 8a65a229a..eddb16246 100644
--- a/buildlib/config.h.in
+++ b/buildlib/config.h.in
@@ -32,11 +32,8 @@
/* If there is no socklen_t, define this for the netdb shim */
#undef NEED_SOCKLEN_T_DEFINE
-/* Define the cpu name string */
-#undef COMMON_CPU
-
-/* Define the on name string */
-#undef COMMON_OS
+/* Define the arch name string */
+#undef COMMON_ARCH
/* The version number string */
#undef VERSION
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc
index cc4c1559e..c0655da40 100644
--- a/cmdline/apt-cache.cc
+++ b/cmdline/apt-cache.cc
@@ -1711,8 +1711,8 @@ bool GenCaches(CommandLine &Cmd)
/* */
bool ShowHelp(CommandLine &Cmd)
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return true;
diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc
index 7434a7225..379a433ea 100644
--- a/cmdline/apt-cdrom.cc
+++ b/cmdline/apt-cdrom.cc
@@ -135,8 +135,8 @@ bool DoIdent(CommandLine &)
/* */
int ShowHelp()
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return 0;
diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc
index 34365dc2e..63fa0867c 100644
--- a/cmdline/apt-config.cc
+++ b/cmdline/apt-config.cc
@@ -67,8 +67,8 @@ bool DoDump(CommandLine &CmdL)
/* */
int ShowHelp()
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return 0;
diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc
index c87b436ba..6d580cc28 100644
--- a/cmdline/apt-extracttemplates.cc
+++ b/cmdline/apt-extracttemplates.cc
@@ -222,8 +222,8 @@ bool DebFile::ParseInfo()
/* */
int ShowHelp(void)
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return 0;
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index fb1bb248e..e7b7d5204 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -2116,6 +2116,33 @@ bool DoSource(CommandLine &CmdL)
if (Last == 0)
return _error->Error(_("Unable to find a source package for %s"),Src.c_str());
+ string srec = Last->AsStr();
+ string::size_type pos = srec.find("\nVcs-");
+ while (pos != string::npos)
+ {
+ pos += strlen("\nVcs-");
+ string vcs = srec.substr(pos,srec.find(":",pos)-pos);
+ if(vcs == "Browser")
+ {
+ pos = srec.find("\nVcs-", pos);
+ continue;
+ }
+ pos += vcs.length()+2;
+ string::size_type epos = srec.find("\n", pos);
+ string uri = srec.substr(pos,epos-pos).c_str();
+ ioprintf(c1out, _("NOTICE: '%s' packaging is maintained in "
+ "the '%s' version control system at:\n"
+ "%s\n"),
+ Src.c_str(), vcs.c_str(), uri.c_str());
+ if(vcs == "Bzr")
+ ioprintf(c1out,_("Please use:\n"
+ "bzr get %s\n"
+ "to retrieve the latest (possible unreleased) "
+ "updates to the package.\n"),
+ uri.c_str());
+ break;
+ }
+
// Back track
vector<pkgSrcRecords::File> Lst;
if (Last->Files(Lst) == false)
@@ -2582,8 +2609,8 @@ bool DoMoo(CommandLine &CmdL)
/* */
bool ShowHelp(CommandLine &CmdL)
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
{
diff --git a/cmdline/apt-key b/cmdline/apt-key
index 90ecae2cf..7c1aad0cf 100755
--- a/cmdline/apt-key
+++ b/cmdline/apt-key
@@ -9,14 +9,14 @@ GPG_CMD="gpg --no-options --no-default-keyring --secret-keyring /etc/apt/secring
GPG="$GPG_CMD --keyring /etc/apt/trusted.gpg"
-ARCHIVE_KEYRING=/usr/share/keyrings/debian-archive-keyring.gpg
-REMOVED_KEYS=/usr/share/keyrings/debian-archive-removed-keys.gpg
+ARCHIVE_KEYRING=/usr/share/keyrings/ubuntu-archive-keyring.gpg
+REMOVED_KEYS=/usr/share/keyrings/ubuntu-archive-removed-keys.gpg
update() {
if [ ! -f $ARCHIVE_KEYRING ]; then
echo >&2 "ERROR: Can't find the archive-keyring"
- echo >&2 "Is the debian-archive-keyring package installed?"
+ echo >&2 "Is the ubuntu-keyring package installed?"
exit 1
fi
diff --git a/cmdline/apt-report-mirror-failure b/cmdline/apt-report-mirror-failure
new file mode 100755
index 000000000..1567e78e3
--- /dev/null
+++ b/cmdline/apt-report-mirror-failure
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+import sys
+import urllib
+import apt_pkg
+
+apt_pkg.init()
+url = apt_pkg.Config.Find("Acquire::Mirror::ReportFailures", None)
+ #"http://people.ubuntu.com:9000/mirror-failure")
+ #"http://localhost:9000/mirror-failure")
+if not url:
+ sys.exit(0)
+
+print "Reporting mirror failure to '%s'" % url
+
+data = {}
+data['mirror'] = sys.argv[1]
+data['failurl'] = sys.argv[2]
+data['error'] = sys.argv[3]
+f = urllib.urlopen(url, urllib.urlencode(data))
+f.read()
+f.close()
+
+
diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc
index 8909c3826..7b2a74aed 100644
--- a/cmdline/apt-sortpkgs.cc
+++ b/cmdline/apt-sortpkgs.cc
@@ -141,8 +141,8 @@ bool DoIt(string InFile)
/* */
int ShowHelp()
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return 0;
diff --git a/cmdline/makefile b/cmdline/makefile
index 49035be44..c795921c1 100644
--- a/cmdline/makefile
+++ b/cmdline/makefile
@@ -14,7 +14,7 @@ include $(PROGRAM_H)
# The apt-get program
PROGRAM=apt-get
-SLIBS = -lapt-pkg
+SLIBS = -lapt-pkg -lutil
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-get.cc acqprogress.cc
include $(PROGRAM_H)
@@ -58,3 +58,9 @@ SOURCE=apt-mark
TO=$(BIN)
TARGET=program
include $(COPY_H)
+
+# The apt-key program
+SOURCE=apt-report-mirror-failure
+TO=$(BIN)
+TARGET=program
+include $(COPY_H)
diff --git a/configure.in b/configure.in
index ad913f53e..d1a684eb2 100644
--- a/configure.in
+++ b/configure.in
@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.7.4")
+AC_DEFINE_UNQUOTED(VERSION,"0.7.6ubuntu3")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)
@@ -80,20 +80,13 @@ dnl Converts the ARCH to be something singular for this general CPU family
dnl This is often the dpkg architecture string.
dnl First check against the full canonical canoncial-system-type in $target
dnl and if that fails, just look for the cpu
-AC_MSG_CHECKING(system architecture)
+AC_MSG_CHECKING(debian architecture)
archset="`dpkg-architecture -qDEB_HOST_ARCH`"
if test "x$archset" = "x"; then
AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
fi
AC_MSG_RESULT($archset)
-AC_DEFINE_UNQUOTED(COMMON_CPU,"$archset")
-
-dnl Get a common name for the host OS - this is primarily only for HURD and is
-dnl non fatal if it fails
-AC_MSG_CHECKING(system OS)
-osset="`dpkg-architecture -qDEB_HOST_ARCH_OS`"
-AC_MSG_RESULT($osset)
-AC_DEFINE_UNQUOTED(COMMON_OS,"$osset")
+AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
dnl We use C99 types if at all possible
AC_CACHE_CHECK([for C99 integer types],c9x_ints,[
diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove
index 98143ce9a..63b69d5f6 100644
--- a/debian/apt.conf.autoremove
+++ b/debian/apt.conf.autoremove
@@ -4,5 +4,14 @@ APT
{
"^linux-image.*";
"^linux-restricted-modules.*";
+ "^linux-ubuntu-modules-.*";
+ };
+
+ Never-MarkAuto-Sections
+ {
+ "metapackages";
+ "restricted/metapackages";
+ "universe/metapackages";
+ "multiverse/metapackages";
};
};
diff --git a/debian/apt.conf.ubuntu b/debian/apt.conf.ubuntu
new file mode 100644
index 000000000..0489faf98
--- /dev/null
+++ b/debian/apt.conf.ubuntu
@@ -0,0 +1,10 @@
+APT
+{
+ Install-Recommends-Sections
+ {
+ "metapackages";
+ "restricted/metapackages";
+ "universe/metapackages";
+ "multiverse/metapackages";
+ };
+};
diff --git a/debian/apt.dirs b/debian/apt.dirs
index 1543e8bb1..2db8dca9a 100644
--- a/debian/apt.dirs
+++ b/debian/apt.dirs
@@ -4,7 +4,10 @@ usr/lib/dpkg/methods/apt
etc/apt
etc/apt/apt.conf.d
etc/apt/sources.list.d
+etc/logrotate.d
var/cache/apt/archives/partial
var/lib/apt/lists/partial
+var/lib/apt/mirrors/partial
var/lib/apt/periodic
+var/log/apt
usr/share/bug/apt
diff --git a/debian/apt.logrotate b/debian/apt.logrotate
new file mode 100644
index 000000000..3e924d383
--- /dev/null
+++ b/debian/apt.logrotate
@@ -0,0 +1,8 @@
+/var/log/apt/term.log {
+ rotate 6
+ monthly
+ compress
+ missingok
+ notifempty
+}
+
diff --git a/debian/apt.postinst b/debian/apt.postinst
index 88fb932df..df0433057 100644
--- a/debian/apt.postinst
+++ b/debian/apt.postinst
@@ -17,11 +17,9 @@ case "$1" in
configure)
if ! test -f /etc/apt/trusted.gpg; then
- cp /usr/share/apt/debian-archive.gpg /etc/apt/trusted.gpg
+ cp /usr/share/apt/ubuntu-archive.gpg /etc/apt/trusted.gpg
fi
- apt-key update
-
;;
abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/debian/changelog b/debian/changelog
index 8961a0257..710472d67 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,17 +1,92 @@
-apt (0.7.5) UNRELEASED; urgency=low
+apt (0.7.6ubuntu4) gutsy; urgency=low
+
+ * cmdline/apt-get.cc:
+ - remove YnPrompt when a XS-Vcs- tag is found, improve the
+ notice (LP: #129575)
+ * methods/copy.cc:
+ - take hashes here too
+ * apt-pkg/acquire-worker.cc:
+ - only pass on computed hash if we recived one from the method
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 08 Aug 2007 19:30:29 +0200
+
+apt (0.7.6ubuntu3) gutsy; urgency=low
+
+ * apt-pkg/deb/dpkgpm.cc:
+ - fix packagename extraction when writting apport reports
+ * apt-pkg/pkgcachegen.cc:
+ - increase default mmap size (LP: #125640)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 07 Aug 2007 09:52:00 +0200
+
+apt (0.7.6ubuntu2) gutsy; urgency=low
+
+ * doc/examples/sources.list:
+ - change example source to gutsy
+ * apt-pkg/deb/dpkgpm.cc:
+ - do not break if no /dev/pts is available
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 06 Aug 2007 15:17:57 +0200
+
+apt (0.7.6ubuntu1) gutsy; urgency=low
+
+ * apt-inst/contrib/extracttar.cc:
+ - fix fd leak for zero size files (thanks to Bill Broadley for
+ reporting this bug)
+ * apt-pkg/acquire-item.cc:
+ - remove zero size files on I-M-S hit
+ * methods/https.cc:
+ - only send LastModified if we actually have one
+ - send range request with if-range
+ - delete failed downloads
+ (thanks to Thom May for his help here)
+ * apt-pkg/deb/dpkgpm.{cc,h}:
+ - merged dpkg-log branch, this lets you specify a
+ Dir::Log::Terminal file to log dpkg output to
+ (ABI break)
+ - when writting apport reports, attach the dpkg
+ terminal log too
+ * merged apt--sha256 branch to fully support the new
+ sha256 checksums in the Packages and Release files
+ (ABI break)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 02 Aug 2007 11:55:54 +0200
+
+apt (0.7.6) unstable; urgency=low
+
+ * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong
+ directory downloading on non-linux architectures (closes: #435597)
+
+ -- Otavio Salvador <otavio@debian.org> Wed, 01 Aug 2007 19:49:51 -0300
+
+apt (0.7.5) unstable; urgency=low
[ Otavio Salvador ]
- * Applied patch from Guillem Jover <guillem.jover@nokia.com> to use
+ * Applied patch from Guillem Jover <guillem@debian.org> to use
dpkg-architecture to get the host architecture (closes: #407187)
+ * Applied patch from Guillem Jover <guillem@debian.org> to add
+ support to add lzma support (closes: #408201)
[ Michael Vogt ]
* apt-pkg/depcache.cc:
- support a list of sections for:
APT::Install-Recommends-Sections
APT::Never-MarkAuto-Sections
+ * methods/makefile:
+ - install lzma symlink method (for full lzma support)
+ * debian/control:
+ - suggest "lzma"
-- Otavio Salvador <otavio@ossystems.com.br> Wed, 25 Jul 2007 20:16:46 -0300
+apt (0.7.4ubuntu1) gutsy; urgency=low
+
+ * debian/apt.conf.ubuntu, apt.conf.autoremove:
+ - Change metapackages to {restricted,universe,multiverse}/metapackages
+ in Install-Recommends-Sections and Never-MarkAuto-Sections
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 26 Jul 2007 10:42:29 +0200
+
apt (0.7.4) unstable; urgency=low
[ Michael Vogt ]
@@ -71,6 +146,90 @@ apt (0.7.3) unstable; urgency=low
which disappeared from the BZR repositories
-- Michael Vogt <mvo@debian.org> Sun, 01 Jul 2007 12:31:29 +0200
+
+apt (0.7.2ubuntu7) gutsy; urgency=low
+
+ * fix build-dependencies
+ * fixes in the auto-mark code (thanks to Daniel
+ Burrows)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 9 Jul 2007 19:02:54 +0200
+
+apt (0.7.2ubuntu6) gutsy; urgency=low
+
+ [ Michael Vogt]
+ * cmdline/apt-get.cc:
+ - make the XS-Vcs-$foo warning more copy'n'paste
+ friendly (thanks to Matt Zimmerman)
+ - ignore the Vcs-Browser tag (Fixes LP: #121770)
+ * debian/apt.conf.autoremove:
+ - added "linux-ubuntu-modules" to APT::NeverAutoRemove
+
+ [ Sarah Hobbs ]
+ * Change metapackages to *metapackages in Install-Recommends-Section
+ and Never-MarkAuto-Section of debian/apt.conf.autoremove, so that
+ the Recommends of metapackages in universe and multiverse will get
+ installed.
+ * Also make this change in doc/examples/configure-index.
+ * Added a Build Dependancies of automake, docbook-xsl, xsltproc, xmlto,
+ docbook to fix FTBFS.
+ * Added in previous changelog entries, as those who uploaded did not
+ actually commit to Bzr.
+
+ -- Sarah Hobbs <hobbsee@ubuntu.com> Mon, 09 Jul 2007 01:15:57 +1000
+
+apt (0.7.2ubuntu5) gutsy; urgency=low
+
+ * Rerun autoconf to fix the FTBFS.
+
+ -- Michael Bienia <geser@ubuntu.com> Fri, 06 Jul 2007 19:17:33 +0200
+
+apt (0.7.2ubuntu4) gutsy; urgency=low
+
+ * Rebuild for the libcurl4 -> libcurl3 transition mess.
+
+ -- Steve Kowalik <stevenk@ubuntu.com> Fri, 6 Jul 2007 12:44:05 +1000
+
+apt (0.7.2ubuntu3) gutsy; urgency=low
+
+ * cmdline/apt-get.cc:
+ - fix InstallTask code when a pkgRecord ends
+ with a single '\n' (thanks to Soren Hansen for reporting)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 27 Jun 2007 13:33:38 +0200
+
+apt (0.7.2ubuntu2) gutsy; urgency=low
+
+ * fixed compile errors with g++ 4.3 (thanks to
+ Daniel Burrows, closes: #429378)
+ * fix FTFBFS by changing build-depends to
+ libcurl4-gnutls-dev (closes: #428363)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Jun 2007 13:47:03 +0200
+
+apt (0.7.2ubuntu1) gutsy; urgency=low
+
+ * apt-pkg/deb/dpkgpm.cc:
+ - apport integration added, this means that a apport
+ report is written on dpkg failures
+ * cmdline/apt-get.cc:
+ - merged http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/
+ this will warn when Vcs- headers are found on apt-get source
+ (Fixes LP:#115959)
+ * merged from debian/unstable, remaining changes:
+ - maintainer field changed
+ - merged the apt--mirror branch
+ http://people.ubuntu.com/~mvo/bzr/apt/apt--mirror/
+ - apport reporting on package install/upgrade/remove failure
+ - support for "Originial-Maintainer" field
+ - merged apt--xs-vcs-bzr branch
+ (http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/)
+ - use ubuntu archive keyring by default
+ - debian/apt.conf.autoremove
+ + install recommands for section "metapackages"
+ + do not mark direct dependencies of "metapackages" as autoremoved
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 14 Jun 2007 10:38:36 +0200
apt (0.7.2-0.1) unstable; urgency=low
@@ -138,12 +297,16 @@ apt (0.7.1) experimental; urgency=low
* methods/cdrom.cc:
- only umount if it was mounted by the method before
* po/gl.po:
- - fix error translation that causes trouble to lsb_release
+ - fix error in translation that causes trouble to lsb_release
+ (LP#79165)
* apt-pkg/acquire-item.cc:
- if decompression of a index fails, delete the index
* apt-pkg/acquire.{cc,h}:
- deal better with duplicated sources.list entries (avoid
double queuing of URLs) - this fixes hangs in bzip/gzip
+ (LP#102511)
+ * Fix broken use of awk in apt-key that caused removal of the wrong keys
+ from the keyring. Closes: #412572
* merged from Christian Perrier:
* mr.po: New Marathi translation Closes: #416806
* zh_CN.po: Updated by Eric Pareja Closes: #416822
@@ -167,6 +330,93 @@ apt (0.7.1) experimental; urgency=low
-- Michael Vogt <mvo@debian.org> Wed, 2 May 2007 13:43:44 +0200
+apt (0.6.46.4ubuntu10) feisty; urgency=low
+
+ * apt-pkg/depcache.cc:
+ - added "APT::Never-MarkAuto-Section" and consider dependencies
+ of packages in this section manual (LP#59893)
+ - ensure proper permissions in the extended_state file (LP#67037)
+ * debian/apt.conf.ubuntu:
+ - added APT::Never-MarkAuto-Section "metapackages" (LP#59893)
+ * cmdline/apt-get.cc:
+ - "apt-get install foo" on a already installed package foo will
+ clean the automatic installed flag (LP#72007)
+ - do not show packages already marked for removal as auto-installed
+ (LP#64493)
+ - applied patch to (optionally) hide the auto-remove information
+ (thanks to Frode M. Døving) (LP#69148)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 14 Mar 2007 13:32:32 +0100
+
+apt (0.6.46.4ubuntu9) feisty; urgency=low
+
+ * debian/control:
+ - set XS-Vcs-Bzr header
+ - Set Ubuntu maintainer address
+ * apt-pkg/cdrom.cc:
+ - only unmount if APT::CDROM::NoMount is false
+ - only umount if it was mounted by the method before
+ * cmdline/apt-get.cc:
+ - fix version output in autoremove list (LP#68941)
+ * apt-pkg/packagemanager.cc:
+ - do not spin 100% cpu in FixMissing() (LP#84476)
+ * apt-pkg/indexfile.cc:
+ - fix problem overwriting APT::Acquire::Translation
+ * doc/examples/configure-index:
+ - document APT::Acquire::Translation
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 13 Mar 2007 15:24:39 +0100
+
+apt (0.6.46.4ubuntu8) feisty; urgency=low
+
+ * fix segfault in the pkgRecords destructor
+ * Bump ABI version
+ * debian/control:
+ - make the libcurl3-gnutls-dev versionized (LP#86614)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 26 Feb 2007 14:26:33 +0100
+
+apt (0.6.46.4ubuntu7) feisty; urgency=low
+
+ * Merged the apt--mirror branch. This means that a new 'mirror'
+ method is available that will allow dynamic mirror updates.
+ The sources.list entry looks something like this:
+ "deb mirror://mirrors.lp.net/get_mirror feisty main restricted"
+
+ It also supports error reporting to a configurable url for mirror
+ problems/failures.
+ * Bump ABI version
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 6 Feb 2007 11:38:06 +0100
+
+apt (0.6.46.4ubuntu6) feisty; urgency=low
+
+ * methods/http.cc:
+ - send apt version in User-Agent
+ * apt-pkg/deb/debrecords.cc:
+ - fix SHA1Hash() return value
+ * apt-pkg/algorithms.cc:
+ - fix resolver bug on removal triggered by weak-dependencies
+ with or-groups
+ - fix segfault (lp: #76530)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 20 Dec 2006 11:04:36 +0100
+
+apt (0.6.46.4ubuntu5) feisty; urgency=low
+
+ * added apt-transport-https package to provide a optional
+ https transport (apt-https spec)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Dec 2006 16:23:43 +0100
+
+apt (0.6.46.4ubuntu4) feisty; urgency=low
+
+ * apt-pkg/algorithms.cc:
+ - only increase the score of installed applications if they
+ are not obsolete
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 18 Dec 2006 19:39:05 +0100
+
apt (0.7.0) experimental; urgency=low
* Package that contains tall the new features
@@ -184,6 +434,29 @@ apt (0.7.0) experimental; urgency=low
-- Michael Vogt <mvo@debian.org> Fri, 12 Jan 2007 20:48:07 +0100
+apt (0.6.46.4ubuntu3) feisty; urgency=low
+
+ * apt-pkg/algorithm.cc:
+ - use clog for all debugging
+ * apt-pkg/depcache.cc:
+ - never mark Required package for autoremoval (lp: #75882)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 18 Dec 2006 11:56:05 +0100
+
+apt (0.6.46.4ubuntu2) feisty; urgency=low
+
+ * apt-pkg/algorithms.cc: add missing call to MarkKeep
+ so that dist-upgrade isn't broken by unsatisfiable Breaks.
+ (thanks to Ian Jackson)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Dec 2006 23:07:24 +0100
+
+apt (0.6.46.4ubuntu1) feisty; urgency=low
+
+ * merged with debian
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Dec 2006 12:13:14 +0100
+
apt (0.6.46.4-0.1) unstable; urgency=emergency
* NMU
@@ -230,6 +503,26 @@ apt (0.6.46.3-0.1) unstable; urgency=high
-- Andreas Barth <aba@not.so.argh.org> Tue, 5 Dec 2006 10:34:56 +0000
+apt (0.6.46.3ubuntu2) feisty; urgency=low
+
+ * apt-pkg/algorithms.cc: add missing call to MarkKeep
+ so that dist-upgrade isn't broken by unsatisfiable Breaks.
+
+ -- Ian Jackson <iwj@ubuntu.com> Thu, 7 Dec 2006 15:46:52 +0000
+
+apt (0.6.46.3ubuntu1) feisty; urgency=low
+
+ * doc/apt-get.8.xml:
+ - documented autoremove, thanks to Vladimír Lapá%Gč%@ek
+ (lp: #62919)
+ * fix broken i18n in the dpkg progress reporting, thanks to
+ Frans Pop and Steinar Gunderson. (closes: #389261)
+ * po/en_GB.po:
+ - typo (lp: #61270)
+ * add apt-secure.8 to "See also" section
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 23 Nov 2006 07:24:12 +0100
+
apt (0.6.46.3) unstable; urgency=low
* apt-pkg/deb/dpkgpm.cc:
@@ -304,10 +597,46 @@ apt (0.6.46) unstable; urgency=low
* debian/control:
- switched to libdb4.4 for building (closes: #381019)
* cmdline/apt-get.cc:
- - show only the recommends/suggests for the candidate-version, not for all
- versions of the package (closes: #257054)
- - properly handle recommends/suggests or-groups when printing the list of
- suggested/recommends packages (closes: #311619)
+ - fix in the TryInstallTask() code to make sure that all package
+ there are marked manual install (lp: #61684)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 28 Sep 2006 00:34:20 +0200
+
+apt (0.6.45ubuntu14) edgy; urgency=low
+
+ * cmdline/apt-get.cc:
+ - fix in the TryInstallTask() code to make sure that all package
+ there are marked manual install (lp: #61684)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 28 Sep 2006 00:34:20 +0200
+
+apt (0.6.45ubuntu13) edgy; urgency=low
+
+ * no-changes upload to make apt rebuild against latest g++ and
+ fix synaptic FTBFS (see bug: #62461 for details)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 26 Sep 2006 22:33:10 +0200
+
+apt (0.6.45ubuntu12) edgy; urgency=low
+
+ * apt-pkg/depcache.cc:
+ - fix in the sweep() code, set garbage flag for packages scheduled
+ for removal too
+ - do not change the autoFlag in MarkKeep(), this can lead to suprising
+ side effects
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 21 Sep 2006 00:58:24 +0200
+
+apt (0.6.45ubuntu11) edgy; urgency=low
+
+ * removed "installtask" and change it so that tasknames can be given
+ with "apt-get install taskname^"
+ * improve the writeStateFile() code
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 20 Sep 2006 14:14:24 +0200
+
+apt (0.6.45ubuntu10) edgy; urgency=low
+
* methods/http.cc:
- check more careful for incorrect proxy settings (closes: #378868)
* methods/gzip.cc:
@@ -332,8 +661,113 @@ apt (0.6.46) unstable; urgency=low
caseinsensitive (closes: #384182)
- reverted MMap use in the tagfile because it does not work
across pipes (closes: #383487)
+ * added "installtask" command
+ * added new ubuntu specific rewrite rule for "Original-Maintainer"
- -- Michael Vogt <mvo@debian.org> Thu, 21 Sep 2006 10:25:03 +0200
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Sep 2006 15:07:51 +0200
+
+apt (0.6.45ubuntu9) edgy; urgency=low
+
+ * cmdline/apt-get.cc:
+ - if --no-remove is given, do not run the AutoRemove code
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 13 Sep 2006 11:54:20 +0200
+
+apt (0.6.45ubuntu8) edgy; urgency=low
+
+ * apt-pkg/algorithm.cc:
+ - fix pkgProblemResolver.InstallProtect() to preserve the auto-install
+ information (lp: #59457)
+ * cmdline/apt-get.cc:
+ - fix typo in autoremove information (lp: #59420)
+ * install apt-mark to modify the automatically install information for
+ packages
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 8 Sep 2006 20:07:22 +0200
+
+apt (0.6.45ubuntu7) edgy; urgency=low
+
+ * apt-pkg/depcache.cc:
+ - fix a bug in the install-recommends-section code
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Sep 2006 18:22:38 +0200
+
+apt (0.6.45ubuntu6) edgy; urgency=low
+
+ [Michael Vogt]
+ * cmdline/apt-get.cc:
+ - always show auto-removable packages and give a hint how to remove
+ them
+ * debian/apt.conf.ubuntu:
+ - exlucde linux-image and linux-restricted-modules from ever being
+ auto-removed
+ - added "metapackages" as the section we want to install recommends
+ by default
+ * apt-pkg/depcache.cc:
+ - added support to turn install-recommends selectively on/off by
+ section
+ [Ian Jackson]
+ * Tests pass without code changes! Except that we need this:
+ * Bump cache file major version to force rebuild so that Breaks
+ dependencies are included.
+ * Don't depend on or suggest any particular dpkg or dpkg-dev versions;
+ --auto-deconfigure is very very old and dpkg-dev's Breaks support
+ is more or less orthogonal.
+ * Initial draft of `Breaks' implementation. Appears to compile,
+ but as yet *completely untested*.
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 7 Sep 2006 11:50:52 +0200
+
+apt (0.6.45ubuntu5) edgy; urgency=low
+
+ * apt-pkg/pkgcachegen.cc:
+ - increase the APT::Cache-Limit to deal with the increased demand due
+ to the translated descriptions
+ * apt-pkg/deb/dpkgpm.cc:
+ - pass "--auto-deconfigure" to dpkg on install to support the
+ new "breaks" in dpkg
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 15 Aug 2006 12:06:26 +0200
+
+apt (0.6.45ubuntu4) edgy; urgency=low
+
+ * cmdline/apt-get.cc:
+ - fix in the new --fix-polciy code
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 14 Aug 2006 21:08:11 +0200
+
+apt (0.6.45ubuntu3) edgy; urgency=low
+
+ * ABI break
+ * merged latest apt--install-recommends (closes: #559000)
+ * added "--fix-policy" option to can be used as "--fix-broken" and
+ will install missing weak depends (recommends, and/or suggests
+ depending on the settings)
+ * merged the apt--ddtp branch
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 11 Aug 2006 12:53:23 +0200
+
+apt (0.6.45ubuntu2) edgy; urgency=low
+
+ * debian/control:
+ - switched to libdb4.4 for building (closes: #381019)
+ * cmdline/apt-get.cc:
+ - show only the recommends/suggests for the candidate-version, not for all
+ versions of the package (closes: #257054)
+ - properly handle recommends/suggests or-groups when printing the list of
+ suggested/recommends packages (closes: #311619)
+ * merged "apt--install-recommends" branch:
+ - added "{no-}install-recommends" commandline option
+ - added APT::Install-{Recommends,Suggests} option
+ - currently Install-Recommends defaults to "False"
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 9 Aug 2006 23:38:46 +0200
+
+apt (0.6.45ubuntu1) edgy; urgency=low
+
+ * merged with debian/unstable
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 1 Aug 2006 15:43:22 +0200
apt (0.6.45) unstable; urgency=low
@@ -371,42 +805,57 @@ apt (0.6.45) unstable; urgency=low
* dz.po: New Dzongkha translation: 512t
* ro.po: Updated to 512t
* eu.po: Updated
- * eu.po: Updated
- * fix apt-get dist-upgrade
- * fix warning if no /var/lib/apt/extended_states is present
- * don't download Translations for deb-src sources.list lines
- * apt-pkg/tagfile.cc:
- - support not-mmapable files again
- -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 25 Jul 2006 11:55:22 +0200
+ -- Michael Vogt <mvo@debian.org> Thu, 27 Jul 2006 00:52:05 +0200
-apt (0.6.44.2exp1) experimental; urgency=low
+apt (0.6.44.2ubuntu4) edgy; urgency=low
- * added support for i18n of the package descriptions
- * added support for aptitude like auto-install tracking (a HUGE
- HUGE thanks to Daniel Burrows who made this possible)
- * synced with the http://people.debian.org/~mvo/bzr/apt/debian-sid branch
- * build from http://people.debian.org/~mvo/bzr/apt/debian-experimental
+ * Make apt-get dselect-upgrade happy again
- -- Michael Vogt <mvo@debian.org> Mon, 3 Jul 2006 21:50:31 +0200
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 21 Jul 2006 11:03:02 +0200
-apt (0.6.44.2) unstable; urgency=low
+apt (0.6.44.2ubuntu3) edgy; urgency=low
- * apt-pkg/depcache.cc:
- - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
- * apt-pkg/acquire-item.cc:
- - fix missing chmod() in the new aquire code
- (thanks to Bastian Blank, Closes: #367425)
- * merged from
- http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
- * sk.po: Completed to 512t
- * eu.po: Completed to 512t
- * fr.po: Completed to 512t
- * sv.po: Completed to 512t
- * Update all PO and the POT. Gives 506t6f for formerly
- complete translations
+ * Close extended_states file after writing it.
+
+ -- Colin Watson <cjwatson@ubuntu.com> Tue, 18 Jul 2006 00:12:13 +0100
+
+apt (0.6.44.2ubuntu2) edgy; urgency=low
+
+ * create a empty extended_states file if none exists already
- -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 4 Jul 2006 09:23:03 +0200
+
+apt (0.6.44.2ubuntu1) edgy; urgency=low
+
+ * merged with debian/unstable
+ * merged the "auto-mark" branch to support aptitude like
+ marking of automatically installed dependencies and added
+ "apt-get remove --auto-remove" to remove unused auto-installed
+ packages again
+ * changed library version from 3.11 to 3.50 to make it clearly
+ different from the debian version (we are ABI incompatible because
+ of the auto-mark patch)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 3 Jul 2006 18:30:46 +0200
+
+apt (0.6.44.2) unstable; urgency=low
+
+ * apt-pkg/depcache.cc:
+ - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
+ * apt-pkg/acquire-item.cc:
+ - fix missing chmod() in the new aquire code
+ (thanks to Bastian Blank, Closes: #367425)
+ * merged from
+ http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
+ * sk.po: Completed to 512t
+ * eu.po: Completed to 512t
+ * fr.po: Completed to 512t
+ * sv.po: Completed to 512t
+ * Update all PO and the POT. Gives 506t6f for formerly
+ complete translations
+
+ -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200
apt (0.6.44.1-0.1) unstable; urgency=low
@@ -468,6 +917,26 @@ apt (0.6.44) unstable; urgency=low
-- Michael Vogt <mvo@debian.org> Mon, 8 May 2006 22:28:53 +0200
+apt (0.6.43.3ubuntu3) dapper; urgency=low
+
+ * methods/http.cc:
+ - fix the user-agent string
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 26 May 2006 18:09:32 +0200
+
+apt (0.6.43.3ubuntu2) dapper; urgency=low
+
+ * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 18 Apr 2006 13:24:40 +0200
+
+apt (0.6.43.3ubuntu1) dapper; urgency=low
+
+ * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large in
+ the status-fd (ubuntu #28954)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 28 Mar 2006 20:34:46 +0200
+
apt (0.6.43.3) unstable; urgency=low
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-186:
@@ -477,16 +946,46 @@ apt (0.6.43.3) unstable; urgency=low
* pl.po: Completed to 512t. Closes: #349514
* sk.po: Completed to 512t. Closes: #349474
* gl.po: Completed to 512 strings Closes: #349407
+ * vi.po: Completed to 512 strings
* sv.po: Completed to 512 strings Closes: #349210
* ru.po: Completed to 512 strings Closes: #349154
* da.po: Completed to 512 strings Closes: #349084
* fr.po: Completed to 512 strings
+ * LINGUAS: Add Welsh
+ * *.po: Updated from sources (512 strings)
* vi.po: Completed to 511 strings Closes: #348968
- * zh_CN.po: Completed to 512t. Closes: #353936
- * it.po: Completed to 512t. Closes: #352803
- * pt_BR.po: Completed to 512t. Closes: #352419
+ * apt-pkg/deb/deblistparser.cc:
+ - don't explode on a DepCompareOp in a Provides line, but warn about
+ it and ignore it otherwise (thanks to James Troup for reporting it)
+ * cmdline/apt-get.cc:
+ - don't lock the lists directory in DoInstall, breaks --print-uri
+ (thanks to James Troup for reporting it)
+ * debian/apt.dirs: create /etc/apt/sources.list.d
+ * make apt-cache madison work without deb-src entries (#352583)
+ * cmdline/apt-get.cc: only run the list-cleaner if a update was
+ successfull
+ * apt-get update errors are only warnings nowdays
+ * be more careful with the signature file on network failures
+
+ -- Michael Vogt <mvo@debian.org> Wed, 22 Feb 2006 10:13:04 +0100
+
+apt (0.6.43.2ubuntu1) dapper; urgency=low
+
+ * Merge bubulle@debian.org--2005/apt--main--0 up to patch-182:
+ * ca.po: Completed to 512t. Closes: #351592
+ * eu.po: Completed to 512t. Closes: #350483
+ * ja.po: Completed to 512t. Closes: #349806
+ * pl.po: Completed to 512t. Closes: #349514
+ * sk.po: Completed to 512t. Closes: #349474
+ * gl.po: Completed to 512 strings Closes: #349407
+ * vi.po: Completed to 512 strings
+ * sv.po: Completed to 512 strings Closes: #349210
+ * ru.po: Completed to 512 strings Closes: #349154
+ * da.po: Completed to 512 strings Closes: #349084
+ * fr.po: Completed to 512 strings
* LINGUAS: Add Welsh
* *.po: Updated from sources (512 strings)
+ * vi.po: Completed to 511 strings Closes: #348968
* apt-pkg/deb/deblistparser.cc:
- don't explode on a DepCompareOp in a Provides line, but warn about
it and ignore it otherwise (thanks to James Troup for reporting it)
@@ -497,8 +996,10 @@ apt (0.6.43.3) unstable; urgency=low
* make apt-cache madison work without deb-src entries (#352583)
* cmdline/apt-get.cc: only run the list-cleaner if a update was
successfull
+ * apt-get update errors are only warnings nowdays
+ * be more careful with the signature file on network failures
- -- Michael Vogt <mvo@debian.org> Wed, 22 Feb 2006 10:13:04 +0100
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 20 Feb 2006 22:27:48 +0100
apt (0.6.43.2) unstable; urgency=low
@@ -523,8 +1024,26 @@ apt (0.6.43.2) unstable; urgency=low
-- Michael Vogt <mvo@debian.org> Thu, 19 Jan 2006 00:06:33 +0100
-apt (0.6.43.1) unstable; urgency=low
+apt (0.6.43.1ubuntu1) dapper; urgency=low
+ * Merge bubulle@debian.org--2005/apt--main--0 up to patch-159:
+ - en_GB.po, de.po: fix spaces errors in "Ign " translations
+ Closes: #347258
+ - makefile: make update-po a pre-requisite of clean target so
+ that POT and PO files are always up-to-date
+ - sv.po: Completed to 511t. Closes: #346450
+ - sk.po: Completed to 511t. Closes: #346369
+ - fr.po: Completed to 511t
+ - *.po: Updated from sources (511 strings)
+ * add patch to fix http download corruption problem (thanks to
+ Petr Vandrovec, closes: #280844, #290694)
+ * added APT::Periodic::Unattended-Upgrade (requires the package
+ "unattended-upgrade")
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 10 Jan 2006 17:09:31 +0100
+
+apt (0.6.43.1) unstable; urgency=low
+
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-148:
* fr.po: Completed to 510 strings
* it.po: Completed to 510t
@@ -546,6 +1065,19 @@ apt (0.6.43.1) unstable; urgency=low
-- Michael Vogt <mvo@debian.org> Fri, 6 Jan 2006 01:17:08 +0100
+apt (0.6.43ubuntu2) dapper; urgency=low
+
+ * merged some missing bits that wheren't merged by baz in the previous
+ upload (*grumble*)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 8 Dec 2005 18:35:58 +0100
+
+apt (0.6.43ubuntu1) dapper; urgency=low
+
+ * merged with debian
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 25 Nov 2005 11:36:29 +0100
+
apt (0.6.43) unstable; urgency=medium
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-132:
@@ -566,6 +1098,22 @@ apt (0.6.43) unstable; urgency=medium
-- Michael Vogt <mvo@debian.org> Tue, 29 Nov 2005 00:17:07 +0100
+apt (0.6.42.3ubuntu2) dapper; urgency=low
+
+ * Merge bubulle@debian.org--2005/apt--main--0 up to patch-131:
+ * zh_CN.po: Completed to 507 strings(Closes: #338267)
+ * gl.po: Completed to 510 strings (Closes: #338356)
+ * added support for "/etc/apt/sources.list.d" directory
+ (closes: #66325)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 14 Nov 2005 15:30:12 +0100
+
+apt (0.6.42.3ubuntu1) dapper; urgency=low
+
+ * synced with debian
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 10 Nov 2005 05:05:56 +0100
+
apt (0.6.42.3) unstable; urgency=low
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-129:
@@ -613,13 +1161,13 @@ apt (0.6.42) unstable; urgency=low
- unmount the cdrom when apt failed to locate any package files
* allow cdrom failures and fallback to other sources in that case
(closes: #44135)
- * better error text when dpkg-source fails
+ * better error text when dpkg-source fails
* Merge bubulle@debian.org--2005/apt--main--0 up to patch-115:
- patch-99: Added Galician translation
- patch-100: Completed Danish translation (Closes: #325686)
- patch-104: French translation completed
- patch-109: Italian translation completed
- - patch-112: Swedish translation update
+ - patch-112: Swedish translation update
- patch-115: Basque translation completed (Closes: #333299)
* applied french man-page update (thanks to Philippe Batailler)
(closes: #316638, #327456)
@@ -633,9 +1181,9 @@ apt (0.6.42) unstable; urgency=low
* apt-pkg/contrib/md5.cc:
- fix a alignment problem on sparc64 that gives random bus errors
(thanks to Fabbione for providing a test-case)
- * init the default ScreenWidth to 79 columns by default
+ * init the default ScreenWidth to 79 columns by default
(Closes: #324921)
- * cmdline/apt-cdrom.cc:
+ * cmdline/apt-cdrom.cc:
- fix some missing gettext() calls (closes: #334539)
* doc/apt-cache.8.xml: fix typo (closes: #334714)
@@ -646,8 +1194,8 @@ apt (0.6.41) unstable; urgency=low
* improved the support for "error" and "conffile" reporting from
dpkg, added the format to README.progress-reporting
* added README.progress-reporting to the apt-doc package
- * improved the network timeout handling, if a index file from a
- sources.list times out or EAI_AGAIN is returned from getaddrinfo,
+ * improved the network timeout handling, if a index file from a
+ sources.list times out or EAI_AGAIN is returned from getaddrinfo,
don't try to get the other files from that entry
* Support architecture-specific extra overrides
(closes: #225947). Thanks to Anthony Towns for idea and
@@ -655,10 +1203,10 @@ apt (0.6.41) unstable; urgency=low
* Javier Fernandez-Sanguino Pen~a:
- Added a first version of an apt-secure.8 manpage, and modified
apt-key and apt.end accordingly. Also added the 'update'
- argument to apt-key which was previously not documented
+ argument to apt-key which was previously not documented
(Closes: #322120)
* Andreas Pakulat:
- - added example apt-ftparchive.conf file to doc/examples
+ - added example apt-ftparchive.conf file to doc/examples
(closes: #322483)
* Fix a incorrect example in the man-page (closes: #282918)
* Fix a bug for very long lines in the apt-cdrom code (closes: #280356)
@@ -667,10 +1215,84 @@ apt (0.6.41) unstable; urgency=low
* Change pkgPolicy::Pin from private to protected to let subclasses
access it too (closes: #321799)
* add default constructor for PrvIterator (closes: #322267)
- * Reread status configuration on debSystem::Initialize()
+ * Reread status configuration on debSystem::Initialize()
(needed for apt-proxy, thanks to Otavio for this patch)
-
+
-- Michael Vogt <mvo@debian.org> Mon, 5 Sep 2005 22:59:03 +0200
+
+apt (0.6.40.1ubuntu8) breezy; urgency=low
+
+ * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-62:
+ - fix for a bad memory/file leak in the mmap code (ubuntu #15603)
+ * po/de.po, po/fr.po:
+ - updated the translations
+ * po/makefile:
+ - create a single pot file in each domain dir to make rosetta happy
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 28 Sep 2005 10:16:06 +0200
+
+apt (0.6.40.1ubuntu7) breezy; urgency=low
+
+ * updated the pot/po files , no code changes
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 27 Sep 2005 18:38:16 +0200
+
+apt (0.6.40.1ubuntu6) breezy; urgency=low
+
+ * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-56:
+ - make it possible for apt to handle a failed MediaChange event and
+ fall back to other sources (ubuntu #13713)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 13 Sep 2005 22:09:50 +0200
+
+apt (0.6.40.1ubuntu5) breezy; urgency=low
+
+ * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-{50,51}.
+ This adds media-change reporting to the apt status-fd (ubuntu #15213)
+ * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-55:
+ apt-pkg/cdrom.cc:
+ - unmount the cdrom when apt failed to locate any package files
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 12 Sep 2005 15:44:26 +0200
+
+apt (0.6.40.1ubuntu4) breezy; urgency=low
+
+ * debian/apt.cron.daily:
+ - fix a embarrassing typo
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 7 Sep 2005 10:10:37 +0200
+
+apt (0.6.40.1ubuntu3) breezy; urgency=low
+
+ * debian/apt.cron.daily:
+ - use the ctime as well when figuring what packages need to
+ be removed. This fixes the problem that packages copied with
+ "cp -a" (e.g. from the installer) have old mtimes (ubuntu #14504)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 6 Sep 2005 18:30:46 +0200
+
+apt (0.6.40.1ubuntu2) breezy; urgency=low
+
+ * improved the support for "error" and "conffile" reporting from
+ dpkg, added the format to README.progress-reporting
+ * added README.progress-reporting to the apt-doc package
+ * Do md5sum checking for file and cdrom method (closes: #319142)
+ * Change pkgPolicy::Pin from private to protected to let subclasses
+ access it too (closes: #321799)
+ * methods/connect.cc:
+ - send failure reason for EAI_AGAIN (TmpResolveFailure) to acuire-item
+ * apt-pkg/acquire-item.cc:
+ - fail early if a FailReason is TmpResolveFailure (avoids hangs during
+ the install when no network is available)
+ * merged michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 23 Aug 2005 19:44:55 +0200
+
+apt (0.6.40.1ubuntu1) breezy; urgency=low
+
+ * Synchronize with Debian
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 5 Aug 2005 14:20:56 +0200
apt (0.6.40.1) unstable; urgency=low
@@ -681,6 +1303,12 @@ apt (0.6.40.1) unstable; urgency=low
-- Michael Vogt <mvo@debian.org> Fri, 5 Aug 2005 13:24:58 +0200
+apt (0.6.40ubuntu1) breezy; urgency=low
+
+ * Synchronize with Debian
+
+ -- Matt Zimmerman <mdz@ubuntu.com> Thu, 4 Aug 2005 15:53:22 -0700
+
apt (0.6.40) unstable; urgency=low
* Patch from Jordi Mallach to mark some additional strings for translation
@@ -696,6 +1324,39 @@ apt (0.6.40) unstable; urgency=low
-- Matt Zimmerman <mdz@debian.org> Thu, 28 Jul 2005 11:57:32 -0700
+apt (0.6.39ubuntu4) breezy; urgency=low
+
+ * Fix keyring paths in apt-key, apt.postinst (I swear I remember doing this
+ before...)
+
+ -- Matt Zimmerman <mdz@ubuntu.com> Wed, 29 Jun 2005 08:39:17 -0700
+
+apt (0.6.39ubuntu3) breezy; urgency=low
+
+ * Fix keyring locations for Ubuntu in apt-key too.
+
+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 29 Jun 2005 14:45:36 +0100
+
+apt (0.6.39ubuntu2) breezy; urgency=low
+
+ * Install ubuntu-archive.gpg rather than debian-archive.gpg as
+ /etc/apt/trusted.gpg.
+
+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 29 Jun 2005 11:53:34 +0100
+
+apt (0.6.39ubuntu1) breezy; urgency=low
+
+ * Michael Vogt
+ - Change debian/bugscript to use #!/bin/bash (Closes: #313402)
+ - Fix a incorrect example in the man-page (closes: #282918)
+ - Support architecture-specific extra overrides
+ (closes: #225947). Thanks to Anthony Towns for idea and
+ the patch, thanks to Colin Watson for testing it.
+ - better report network timeouts from the methods to the acuire code,
+ only timeout once per sources.list line
+
+ -- Matt Zimmerman <mdz@ubuntu.com> Tue, 28 Jun 2005 11:52:24 -0700
+
apt (0.6.39) unstable; urgency=low
* Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6
@@ -706,7 +1367,14 @@ apt (0.6.39) unstable; urgency=low
* Update priority of apt-utils to important, to match the override file
* Install only one keyring on each branch (Closes: #316119)
- -- Matt Zimmerman <mdz@debian.org> Tue, 28 Jun 2005 11:51:09 -0700
+ -- Matt Zimmerman <mdz@debian.org> Tue, 28 Jun 2005 11:35:21 -0700
+
+apt (0.6.38ubuntu1) breezy; urgency=low
+
+ * First release from Ubuntu branch
+ * Merge with --main--0, switch back to Ubuntu keyring
+
+ -- Matt Zimmerman <mdz@ubuntu.com> Sat, 25 Jun 2005 16:52:41 -0700
apt (0.6.38) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 76e5b1a19..6c1453857 100644
--- a/debian/control
+++ b/debian/control
@@ -1,20 +1,22 @@
Source: apt
Section: admin
Priority: important
-Maintainer: APT Development Team <deity@lists.debian.org>
+Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: APT Development Team <deity@lists.debian.org>
Uploaders: Jason Gunthorpe <jgg@debian.org>, Adam Heath <doogie@debian.org>, Matt Zimmerman <mdz@debian.org>, Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>
Standards-Version: 3.7.2.2
Build-Depends: debhelper (>= 5.0), libdb4.4-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5)
Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1)
-XS-Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/
+XS-Vcs-Bzr: http://code.launchpad.net/~ubuntu-core-dev/apt/ubuntu
Package: apt
Architecture: any
-Depends: ${shlibs:Depends}, debian-archive-keyring
+Depends: ${shlibs:Depends}
Priority: important
Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
Provides: ${libapt-pkg:provides}
-Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2
+Recommends: ubuntu-keyring
+Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, lzma, gnupg
Section: admin
Description: Advanced front-end for dpkg
This is Debian's next generation front-end for the dpkg package manager.
diff --git a/debian/rules b/debian/rules
index 473821f16..a46169a7b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -209,9 +209,11 @@ apt: build debian/shlibs.local
cp -r $(BLD)/locale debian/$@/usr/share/
cp debian/bugscript debian/$@/usr/share/bug/apt/script
+ cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt
- cp share/debian-archive.gpg debian/$@/usr/share/$@
+ cp share/ubuntu-archive.gpg debian/$@/usr/share/$@
cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove
+ cp debian/apt.conf.ubuntu debian/$@/etc/apt/apt.conf.d/01ubuntu
# head -n 500 ChangeLog > debian/ChangeLog
# make rosetta happy and remove pot files in po/ (but leave stuff
@@ -219,6 +221,10 @@ apt: build debian/shlibs.local
rm -f build/po/*.pot
rm -f po/*.pot
+ # move the mirror failure script in place
+ mv debian/$@/usr/bin/apt-report-mirror-failure \
+ debian/$@/usr/lib/apt/apt-report-mirror-failure \
+
dh_installexamples -p$@ $(BLD)/docs/examples/*
dh_installman -p$@
dh_installcron -p$@
diff --git a/doc/examples/configure-index b/doc/examples/configure-index
index ab3657a58..a4a955b6a 100644
--- a/doc/examples/configure-index
+++ b/doc/examples/configure-index
@@ -100,6 +100,9 @@ APT
Install-Recommends "false";
Install-Suggests "false";
+ // install recommends automatically for packages in this section
+ Install-Recommends-Section { "metapackages"; "universe/metapackages"; };
+
// consider dependencies of packages in this section manual
Never-MarkAuto-Sections {"metapackages"; "universe/metapackages"; };
@@ -186,6 +189,20 @@ Acquire
{
Options {"--ignore-time-conflict";} // not very usefull on a normal system
};
+
+ mirror
+ {
+ RefreshInterval "360"; // refresh interval in minutes
+ MaxAge "90"; // max age for a mirror file in days before
+ // it gets deleted
+ // mirror failure reporting script
+ ProblemReporting "/usr/lib/apt/apt-report-mirror-failure";
+ // mirror failure reporting url
+ ReportFailures "http://example.com/mirror-failure";
+ };
+
+ // translations can be set here to "none", "environment" or "$locale"
+ Translation "none";
};
// Directory layout
@@ -199,6 +216,7 @@ Dir "/"
userstatus "status.user";
status "/var/lib/dpkg/status";
cdroms "cdroms.list";
+ mirrors "mirrors/";
};
// Location of the cache dir
@@ -227,6 +245,11 @@ Dir "/"
apt-get "/usr/bin/apt-get";
apt-cache "/usr/bin/apt-cache";
};
+
+ // Location of the logfile
+ Log "var/log/apt" {
+ Terminal "term.log";
+ };
};
// Things that effect the APT dselect method
@@ -289,9 +312,9 @@ Debug
Acquire::Http "false"; // Show http command traffic
Acquire::Https "false"; // Show https debug
Acquire::gpgv "false"; // Show the gpgv traffic
+ Acquire::Mirror "false"; // Show debugging of the mirror method
aptcdrom "false"; // Show found package files
IdentCdrom "false";
-
}
/* Whatever you do, do not use this configuration file!! Take out ONLY
diff --git a/doc/examples/sources.list b/doc/examples/sources.list
index 9af1c3c4c..b93306724 100644
--- a/doc/examples/sources.list
+++ b/doc/examples/sources.list
@@ -1,9 +1,11 @@
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
-deb http://http.us.debian.org/debian stable main contrib non-free
-deb http://security.debian.org stable/updates main contrib non-free
+deb http://us.archive.ubuntu.com/ubuntu gutsy main restricted
+deb-src http://us.archive.ubuntu.com/ubuntu gutsy main restricted
-# Uncomment if you want the apt-get source function to work
-#deb-src http://http.us.debian.org/debian stable main contrib non-free
-#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
+deb http://security.ubuntu.com/ubuntu gutsy-security main restricted
+deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted
+
+deb http://us.archive.ubuntu.com/ubuntu gutsy-updates main restricted
+deb-src http://us.archive.ubuntu.com/ubuntu gutsy-updates main restricted
diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc
index 290326ec3..3b1e80631 100644
--- a/ftparchive/apt-ftparchive.cc
+++ b/ftparchive/apt-ftparchive.cc
@@ -544,8 +544,8 @@ void LoadBinDir(vector<PackageMap> &PkgList,Configuration &Setup)
/* */
bool ShowHelp(CommandLine &CmdL)
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return true;
diff --git a/methods/connect.cc b/methods/connect.cc
index 8c2ac6d56..145001fb3 100644
--- a/methods/connect.cc
+++ b/methods/connect.cc
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
+#include <sstream>
// Internet stuff
#include <netinet/in.h>
@@ -67,12 +68,10 @@ static bool DoConnect(struct addrinfo *Addr,string Host,
wrong this will get tacked onto the end of the error message */
if (LastHostAddr->ai_next != 0)
{
- char Name2[NI_MAXHOST + NI_MAXSERV + 10];
- snprintf(Name2,sizeof(Name2),_("[IP: %s %s]"),Name,Service);
- Owner->SetFailExtraMsg(string(Name2));
- }
- else
- Owner->SetFailExtraMsg("");
+ std::stringstream ss;
+ ioprintf(ss, _("[IP: %s %s]"),Name,Service);
+ Owner->SetIP(ss.str());
+ }
// Get a socket
if ((Fd = socket(Addr->ai_family,Addr->ai_socktype,
@@ -89,7 +88,7 @@ static bool DoConnect(struct addrinfo *Addr,string Host,
/* This implements a timeout for connect by opening the connection
nonblocking */
if (WaitFd(Fd,true,TimeOut) == false) {
- Owner->SetFailExtraMsg("\nFailReason: Timeout");
+ Owner->SetFailReason("Timeout");
return _error->Error(_("Could not connect to %s:%s (%s), "
"connection timed out"),Host.c_str(),Service,Name);
}
@@ -104,7 +103,7 @@ static bool DoConnect(struct addrinfo *Addr,string Host,
{
errno = Err;
if(errno == ECONNREFUSED)
- Owner->SetFailExtraMsg("\nFailReason: ConnectionRefused");
+ Owner->SetFailReason("ConnectionRefused");
return _error->Errno("connect",_("Could not connect to %s:%s (%s)."),Host.c_str(),
Service,Name);
}
@@ -164,12 +163,13 @@ bool Connect(string Host,int Port,const char *Service,int DefPort,int &Fd,
DefPort = 0;
continue;
}
+ Owner->SetFailReason("ResolveFailure");
return _error->Error(_("Could not resolve '%s'"),Host.c_str());
}
if (Res == EAI_AGAIN)
{
- Owner->SetFailExtraMsg("\nFailReason: TmpResolveFailure");
+ Owner->SetFailReason("TmpResolveFailure");
return _error->Error(_("Temporary failure resolving '%s'"),
Host.c_str());
}
diff --git a/methods/http.cc b/methods/http.cc
index d4e231fbe..6aa4261ff 100644
--- a/methods/http.cc
+++ b/methods/http.cc
@@ -38,7 +38,6 @@
#include <stdio.h>
#include <errno.h>
#include <string.h>
-#include <iostream>
#include <apti18n.h>
// Internet stuff
@@ -715,7 +714,7 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out)
Req += string("Authorization: Basic ") +
Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n";
- Req += "User-Agent: Debian APT-HTTP/1.3 ("VERSION")\r\n\r\n";
+ Req += "User-Agent: Ubuntu APT-HTTP/1.3 ("VERSION")\r\n\r\n";
if (Debug == true)
cerr << Req << endl;
@@ -916,6 +915,9 @@ int HttpMethod::DealWithHeaders(FetchResult &Res,ServerState *Srv)
failure */
if (Srv->Result < 200 || Srv->Result >= 300)
{
+ char err[255];
+ snprintf(err,sizeof(err)-1,"HttpError%i",Srv->Result);
+ SetFailReason(err);
_error->Error("%u %s",Srv->Result,Srv->Code);
if (Srv->HaveContent == true)
return 4;
@@ -991,7 +993,7 @@ void HttpMethod::SigTerm(int)
depth. */
bool HttpMethod::Fetch(FetchItem *)
{
- if (Server == 0)
+ if (Server == 0)
return true;
// Queue the requests
@@ -1236,13 +1238,5 @@ int HttpMethod::Loop()
}
/*}}}*/
-int main()
-{
- setlocale(LC_ALL, "");
-
- HttpMethod Mth;
-
- return Mth.Loop();
-}
diff --git a/methods/http.h b/methods/http.h
index 6753a9901..dec5cd80f 100644
--- a/methods/http.h
+++ b/methods/http.h
@@ -13,7 +13,7 @@
#define MAXLEN 360
-#include <iostream>
+
using std::cout;
using std::endl;
@@ -134,7 +134,6 @@ class HttpMethod : public pkgAcqMethod
bool ServerDie(ServerState *Srv);
int DealWithHeaders(FetchResult &Res,ServerState *Srv);
- virtual bool Fetch(FetchItem *);
virtual bool Configuration(string Message);
// In the event of a fatal signal this file will be closed and timestamped.
@@ -142,6 +141,9 @@ class HttpMethod : public pkgAcqMethod
static int FailFd;
static time_t FailTime;
static void SigTerm(int);
+
+ protected:
+ virtual bool Fetch(FetchItem *);
public:
friend class ServerState;
diff --git a/methods/http_main.cc b/methods/http_main.cc
new file mode 100644
index 000000000..2c46ab19d
--- /dev/null
+++ b/methods/http_main.cc
@@ -0,0 +1,15 @@
+#include <apt-pkg/fileutl.h>
+#include <apt-pkg/acquire-method.h>
+
+#include "connect.h"
+#include "rfc2553emu.h"
+#include "http.h"
+
+
+int main()
+{
+ setlocale(LC_ALL, "");
+
+ HttpMethod Mth;
+ return Mth.Loop();
+}
diff --git a/methods/https.cc b/methods/https.cc
index d48ac97fb..e6717e63a 100644
--- a/methods/https.cc
+++ b/methods/https.cc
@@ -107,6 +107,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
struct stat SBuf;
struct curl_slist *headers=NULL;
char curl_errorstr[CURL_ERROR_SIZE];
+ long curl_responsecode;
// TODO:
// - http::Timeout
@@ -159,8 +160,11 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
// set time values
- curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
- curl_easy_setopt(curl, CURLOPT_TIMEVALUE, Itm->LastModified);
+ if(Itm->LastModified > 0)
+ {
+ curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
+ curl_easy_setopt(curl, CURLOPT_TIMEVALUE, Itm->LastModified);
+ }
// speed limit
int dlLimit = _config->FindI("Acquire::http::Dl-Limit",0)*1024;
@@ -178,8 +182,14 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, curl_errorstr);
// In this case we send an if-range query with a range header
- if (stat(Itm->DestFile.c_str(),&SBuf) >= 0 && SBuf.st_size > 0)
- curl_easy_setopt(curl, CURLOPT_RESUME_FROM, (long)SBuf.st_size);
+ if (stat(Itm->DestFile.c_str(),&SBuf) >= 0 && SBuf.st_size > 0)
+ {
+ char Buf[1000];
+ sprintf(Buf,"Range: bytes=%li-\r\nIf-Range: %s\r\n",
+ (long)SBuf.st_size - 1,
+ TimeRFC1123(SBuf.st_mtime).c_str());
+ headers = curl_slist_append(headers, Buf);
+ }
// go for it - if the file exists, append on it
File = new FileFd(Itm->DestFile, FileFd::WriteAny);
@@ -190,14 +200,17 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
// get it!
CURLcode success = curl_easy_perform(curl);
-
+ curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &curl_responsecode);
// cleanup
- if(success != 0) {
+ if(success != 0)
+ {
+ unlink(File->Name().c_str());
_error->Error(curl_errorstr);
Fail();
return true;
}
+ File->Close();
if (Res.Size == 0)
Res.Size = File->Size();
@@ -210,7 +223,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
Res.Filename = File->Name();
Res.LastModified = Buf.st_mtime;
Res.IMSHit = false;
- if (Itm->LastModified != 0 && Buf.st_mtime >= Itm->LastModified)
+ if (curl_responsecode == 304)
{
Res.IMSHit = true;
Res.LastModified = Itm->LastModified;
@@ -227,7 +240,6 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
URIDone(Res);
// cleanup
- File->Close();
Res.Size = 0;
delete File;
curl_slist_free_all(headers);
diff --git a/methods/makefile b/methods/makefile
index 16900116a..b7c595754 100644
--- a/methods/makefile
+++ b/methods/makefile
@@ -49,7 +49,14 @@ include $(PROGRAM_H)
PROGRAM=http
SLIBS = -lapt-pkg $(SOCKETLIBS)
LIB_MAKES = apt-pkg/makefile
-SOURCE = http.cc rfc2553emu.cc connect.cc
+SOURCE = http.cc http_main.cc rfc2553emu.cc connect.cc
+include $(PROGRAM_H)
+
+# The https method
+PROGRAM=https
+SLIBS = -lapt-pkg -lcurl
+LIB_MAKES = apt-pkg/makefile
+SOURCE = https.cc
include $(PROGRAM_H)
# The https method
@@ -80,9 +87,16 @@ LIB_MAKES = apt-pkg/makefile
SOURCE = rsh.cc
include $(PROGRAM_H)
-# SSH and vzip2 method symlink
-binary: $(BIN)/ssh $(BIN)/bzip2
-veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2
+# The mirror method
+PROGRAM=mirror
+SLIBS = -lapt-pkg $(SOCKETLIBS)
+LIB_MAKES = apt-pkg/makefile
+SOURCE = mirror.cc http.cc rfc2553emu.cc connect.cc
+include $(PROGRAM_H)
+
+# SSH and bzip2,lzma method symlinks
+binary: $(BIN)/ssh $(BIN)/bzip2 $(BIN)/lzma
+veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2 clean-$(BIN)/lzma
$(BIN)/ssh:
echo "Installing ssh method link"
ln -fs rsh $(BIN)/ssh
@@ -92,5 +106,10 @@ clean-$(BIN)/ssh:
$(BIN)/bzip2:
echo "Installing bzip2 method link"
ln -fs gzip $(BIN)/bzip2
+$(BIN)/lzma:
+ echo "Installing lzma method link"
+ ln -fs gzip $(BIN)/lzma
clean-$(BIN)/bzip2:
-rm $(BIN)/bzip2
+clean-$(BIN)/lzma:
+ -rm $(BIN)/lzma
diff --git a/methods/mirror.cc b/methods/mirror.cc
new file mode 100644
index 000000000..9fe64fd70
--- /dev/null
+++ b/methods/mirror.cc
@@ -0,0 +1,282 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+// $Id: mirror.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $
+/* ######################################################################
+
+ Mirror Aquire Method - This is the Mirror aquire method for APT.
+
+ ##################################################################### */
+ /*}}}*/
+// Include Files /*{{{*/
+#include <apt-pkg/fileutl.h>
+#include <apt-pkg/acquire-method.h>
+#include <apt-pkg/acquire-item.h>
+#include <apt-pkg/acquire.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/hashes.h>
+#include <apt-pkg/sourcelist.h>
+
+#include <fstream>
+#include <iostream>
+#include <stdarg.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <dirent.h>
+
+using namespace std;
+
+#include "mirror.h"
+#include "http.h"
+#include "apti18n.h"
+ /*}}}*/
+
+/* Done:
+ * - works with http (only!)
+ * - always picks the first mirror from the list
+ * - call out to problem reporting script
+ * - supports "deb mirror://host/path/to/mirror-list/// dist component"
+ * - uses pkgAcqMethod::FailReason() to have a string representation
+ * of the failure that is also send to LP
+ *
+ * TODO:
+ * - deal with runing as non-root because we can't write to the lists
+ dir then -> use the cached mirror file
+ * - better method to download than having a pkgAcquire interface here
+ * and better error handling there!
+ * - support more than http
+ * - testing :)
+ */
+
+MirrorMethod::MirrorMethod()
+ : HttpMethod(), HasMirrorFile(false)
+{
+};
+
+// HttpMethod::Configuration - Handle a configuration message /*{{{*/
+// ---------------------------------------------------------------------
+/* We stash the desired pipeline depth */
+bool MirrorMethod::Configuration(string Message)
+{
+ if (pkgAcqMethod::Configuration(Message) == false)
+ return false;
+ Debug = _config->FindB("Debug::Acquire::mirror",false);
+
+ return true;
+}
+ /*}}}*/
+
+// clean the mirrors dir based on ttl information
+bool MirrorMethod::Clean(string Dir)
+{
+ vector<metaIndex *>::const_iterator I;
+
+ if(Debug)
+ clog << "MirrorMethod::Clean(): " << Dir << endl;
+
+ // read sources.list
+ pkgSourceList list;
+ list.ReadMainList();
+
+ DIR *D = opendir(Dir.c_str());
+ if (D == 0)
+ return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
+
+ string StartDir = SafeGetCWD();
+ if (chdir(Dir.c_str()) != 0)
+ {
+ closedir(D);
+ return _error->Errno("chdir",_("Unable to change to %s"),Dir.c_str());
+ }
+
+ for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
+ {
+ // Skip some files..
+ if (strcmp(Dir->d_name,"lock") == 0 ||
+ strcmp(Dir->d_name,"partial") == 0 ||
+ strcmp(Dir->d_name,".") == 0 ||
+ strcmp(Dir->d_name,"..") == 0)
+ continue;
+
+ // see if we have that uri
+ for(I=list.begin(); I != list.end(); I++)
+ {
+ string uri = (*I)->GetURI();
+ if(uri.substr(0,strlen("mirror://")) != string("mirror://"))
+ continue;
+ string BaseUri = uri.substr(0,uri.size()-1);
+ if (URItoFileName(BaseUri) == Dir->d_name)
+ break;
+ }
+ // nothing found, nuke it
+ if (I == list.end())
+ unlink(Dir->d_name);
+ };
+
+ chdir(StartDir.c_str());
+ closedir(D);
+ return true;
+}
+
+
+bool MirrorMethod::GetMirrorFile(string mirror_uri_str)
+{
+ /*
+ - a mirror_uri_str looks like this:
+ mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors/dists/feisty/Release.gpg
+
+ - the matching source.list entry
+ deb mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors feisty main
+
+ - we actually want to go after:
+ http://people.ubuntu.com/~mvo/apt/mirror/mirrors
+
+ And we need to save the BaseUri for later:
+ - mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors
+
+ FIXME: what if we have two similar prefixes?
+ mirror://people.ubuntu.com/~mvo/mirror
+ mirror://people.ubuntu.com/~mvo/mirror2
+ then mirror_uri_str looks like:
+ mirror://people.ubuntu.com/~mvo/apt/mirror/dists/feisty/Release.gpg
+ mirror://people.ubuntu.com/~mvo/apt/mirror2/dists/feisty/Release.gpg
+ we search sources.list and find:
+ mirror://people.ubuntu.com/~mvo/apt/mirror
+ in both cases! So we need to apply some domain knowledge here :( and
+ check for /dists/ or /Release.gpg as suffixes
+ */
+ if(Debug)
+ std::cerr << "GetMirrorFile: " << mirror_uri_str << std::endl;
+
+ // read sources.list and find match
+ vector<metaIndex *>::const_iterator I;
+ pkgSourceList list;
+ list.ReadMainList();
+ for(I=list.begin(); I != list.end(); I++)
+ {
+ string uristr = (*I)->GetURI();
+ if(Debug)
+ std::cerr << "Checking: " << uristr << std::endl;
+ if(uristr.substr(0,strlen("mirror://")) != string("mirror://"))
+ continue;
+ // find matching uri in sources.list
+ if(mirror_uri_str.substr(0,uristr.size()) == uristr)
+ {
+ if(Debug)
+ std::cerr << "found BaseURI: " << uristr << std::endl;
+ BaseUri = uristr.substr(0,uristr.size()-1);
+ }
+ }
+ string fetch = BaseUri;
+ fetch.replace(0,strlen("mirror://"),"http://");
+
+ // get new file
+ MirrorFile = _config->FindDir("Dir::State::mirrors") + URItoFileName(BaseUri);
+
+ if(Debug)
+ {
+ cerr << "base-uri: " << BaseUri << endl;
+ cerr << "mirror-file: " << MirrorFile << endl;
+ }
+
+ // check the file, if it is not older than RefreshInterval just use it
+ // otherwise try to get a new one
+ if(FileExists(MirrorFile))
+ {
+ struct stat buf;
+ time_t t,now,refresh;
+ if(stat(MirrorFile.c_str(), &buf) != 0)
+ return false;
+ t = std::max(buf.st_mtime, buf.st_ctime);
+ now = time(NULL);
+ refresh = 60*_config->FindI("Acquire::Mirror::RefreshInterval",360);
+ if(t + refresh > now)
+ {
+ if(Debug)
+ clog << "Mirror file is in RefreshInterval" << endl;
+ HasMirrorFile = true;
+ return true;
+ }
+ if(Debug)
+ clog << "Mirror file " << MirrorFile << " older than " << refresh << "min, re-download it" << endl;
+ }
+
+ // not that great to use pkgAcquire here, but we do not have
+ // any other way right now
+ pkgAcquire Fetcher;
+ new pkgAcqFile(&Fetcher, fetch, "", 0, "", "", "", MirrorFile);
+ bool res = (Fetcher.Run() == pkgAcquire::Continue);
+ if(res)
+ HasMirrorFile = true;
+ Fetcher.Shutdown();
+ return res;
+}
+
+bool MirrorMethod::SelectMirror()
+{
+ // FIXME: make the mirror selection more clever, do not
+ // just use the first one!
+ ifstream in(MirrorFile.c_str());
+ getline(in, Mirror);
+ if(Debug)
+ cerr << "Using mirror: " << Mirror << endl;
+
+ UsedMirror = Mirror;
+ return true;
+}
+
+// MirrorMethod::Fetch - Fetch an item /*{{{*/
+// ---------------------------------------------------------------------
+/* This adds an item to the pipeline. We keep the pipeline at a fixed
+ depth. */
+bool MirrorMethod::Fetch(FetchItem *Itm)
+{
+ // select mirror only once per session
+ if(!HasMirrorFile)
+ {
+ Clean(_config->FindDir("Dir::State::mirrors"));
+ GetMirrorFile(Itm->Uri);
+ SelectMirror();
+ }
+
+ for (FetchItem *I = Queue; I != 0; I = I->Next)
+ {
+ if(I->Uri.find("mirror://") != string::npos)
+ I->Uri.replace(0,BaseUri.size(),Mirror);
+ }
+
+ // now run the real fetcher
+ return HttpMethod::Fetch(Itm);
+};
+
+void MirrorMethod::Fail(string Err,bool Transient)
+{
+ if(Queue->Uri.find("http://") != string::npos)
+ Queue->Uri.replace(0,Mirror.size(), BaseUri);
+ pkgAcqMethod::Fail(Err, Transient);
+}
+
+void MirrorMethod::URIStart(FetchResult &Res)
+{
+ if(Queue->Uri.find("http://") != string::npos)
+ Queue->Uri.replace(0,Mirror.size(), BaseUri);
+ pkgAcqMethod::URIStart(Res);
+}
+
+void MirrorMethod::URIDone(FetchResult &Res,FetchResult *Alt)
+{
+ if(Queue->Uri.find("http://") != string::npos)
+ Queue->Uri.replace(0,Mirror.size(), BaseUri);
+ pkgAcqMethod::URIDone(Res, Alt);
+}
+
+
+int main()
+{
+ setlocale(LC_ALL, "");
+
+ MirrorMethod Mth;
+
+ return Mth.Loop();
+}
+
+
diff --git a/methods/mirror.h b/methods/mirror.h
new file mode 100644
index 000000000..798f5a9b5
--- /dev/null
+++ b/methods/mirror.h
@@ -0,0 +1,51 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $
+// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $
+/* ######################################################################
+
+ MIRROR Aquire Method - This is the MIRROR aquire method for APT.
+
+ ##################################################################### */
+ /*}}}*/
+
+#ifndef APT_MIRROR_H
+#define APT_MIRROR_H
+
+
+#include <iostream>
+
+using std::cout;
+using std::cerr;
+using std::endl;
+
+#include "http.h"
+
+class MirrorMethod : public HttpMethod
+{
+ FetchResult Res;
+ // we simply transform between BaseUri and Mirror
+ string BaseUri; // the original mirror://... url
+ string Mirror; // the selected mirror uri (http://...)
+ string MirrorFile; //
+ bool HasMirrorFile;
+
+ bool Debug;
+
+ protected:
+ bool GetMirrorFile(string uri);
+ bool SelectMirror();
+ bool Clean(string dir);
+
+ // we need to overwrite those to transform the url back
+ virtual void Fail(string Why, bool Transient = false);
+ virtual void URIStart(FetchResult &Res);
+ virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0);
+ virtual bool Configuration(string Message);
+
+ public:
+ MirrorMethod();
+ virtual bool Fetch(FetchItem *Itm);
+};
+
+
+#endif
diff --git a/mirror-failure.py b/mirror-failure.py
new file mode 100644
index 000000000..e7d2bbf54
--- /dev/null
+++ b/mirror-failure.py
@@ -0,0 +1,23 @@
+# File: cgihttpserver-example-1.py
+
+import CGIHTTPServer
+import BaseHTTPServer
+
+class Handler(CGIHTTPServer.CGIHTTPRequestHandler):
+ #cgi_directories = ["/cgi"]
+ def do_POST(self):
+ print "do_POST"
+ #print self.command
+ #print self.path
+ #print self.headers
+ print self.client_address
+ data = self.rfile.read(int(self.headers["content-length"]))
+ print data
+ self.wfile.write("200 Ok\n");
+
+PORT = 8000
+
+httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler)
+print "serving at port", PORT
+httpd.serve_forever()
+
diff --git a/po/LINGUAS b/po/LINGUAS
index 24fc64ef2..eaf179bd7 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-bg bs ca cs cy da de el en_GB es eu fi fr gl he hu it ja ko ku nb nl nn pl pt pt_BR ro ru sk sl sv tl uk vi zh_CN zh_TW
+bg bs ca cs cy da de el en_GB es eu fi fr gl he hu it ja ko nb nl nn pl pt pt_BR ro ru sk sl sv tl vi zh_CN zh_TW
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100644
index 8a0b74706..000000000
--- a/po/ar.po
+++ /dev/null
@@ -1,2566 +0,0 @@
-# translation of apt_po.po to Arabic
-# This file is put in the public domain.
-#
-# Ossama M. Khayat <okhayat@yahoo.com>, 2005, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: apt_po\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-10-11 20:34+0200\n"
-"PO-Revision-Date: 2006-10-20 21:28+0300\n"
-"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
-"Language-Team: Arabic <support@arabeyes.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Arabic\n"
-"X-Poedit-Country: Lebanon\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: cmdline/apt-cache.cc:135
-#, c-format
-msgid "Package %s version %s has an unmet dep:\n"
-msgstr "الحزمة %s النسخة %s لها معتمد غير مستوفى:\n"
-
-#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615
-#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357
-#: cmdline/apt-cache.cc:1508
-#, c-format
-msgid "Unable to locate package %s"
-msgstr "تعذر العثور على الحزمة %s"
-
-#: cmdline/apt-cache.cc:232
-msgid "Total package names : "
-msgstr "أسماء الحزم الكلية :"
-
-#: cmdline/apt-cache.cc:272
-msgid " Normal packages: "
-msgstr " الحزم العادية:"
-
-#: cmdline/apt-cache.cc:273
-msgid " Pure virtual packages: "
-msgstr "الحزمة الوهمية تماماً:"
-
-#: cmdline/apt-cache.cc:274
-msgid " Single virtual packages: "
-msgstr " الحزمة الوهمية المفردة:"
-
-#: cmdline/apt-cache.cc:275
-msgid " Mixed virtual packages: "
-msgstr " الحزم الوهمية المختلطة:"
-
-#: cmdline/apt-cache.cc:276
-msgid " Missing: "
-msgstr " مفقودة:"
-
-#: cmdline/apt-cache.cc:278
-msgid "Total distinct versions: "
-msgstr "مجموع النسخ الفريدة:"
-
-#: cmdline/apt-cache.cc:280
-msgid "Total dependencies: "
-msgstr "مجموع المعتمدات:"
-
-#: cmdline/apt-cache.cc:283
-msgid "Total ver/file relations: "
-msgstr "مجموع علاقات النسخ/الملفات:"
-
-#: cmdline/apt-cache.cc:285
-msgid "Total Provides mappings: "
-msgstr "مجموع علاقات النسخ/الملفات:"
-
-#: cmdline/apt-cache.cc:297
-msgid "Total globbed strings: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:311
-msgid "Total dependency version space: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:316
-msgid "Total slack space: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:324
-msgid "Total space accounted for: "
-msgstr "مجموع المساحة المحسوب حسابها:"
-
-#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
-#, c-format
-msgid "Package file %s is out of sync."
-msgstr ""
-
-#: cmdline/apt-cache.cc:1231
-msgid "You must give exactly one pattern"
-msgstr "يجب أن تعطي صيغة واحدة بالضبط"
-
-#: cmdline/apt-cache.cc:1385
-msgid "No packages found"
-msgstr "لم يُعثر على أية حزم"
-
-#: cmdline/apt-cache.cc:1462
-msgid "Package files:"
-msgstr "ملفات الحزم:"
-
-#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
-msgid "Cache is out of sync, can't x-ref a package file"
-msgstr ""
-
-#: cmdline/apt-cache.cc:1470
-#, c-format
-msgid "%4i %s\n"
-msgstr "%4i %s\n"
-
-#. Show any packages have explicit pins
-#: cmdline/apt-cache.cc:1482
-msgid "Pinned packages:"
-msgstr "الحزم المُدبّسة:"
-
-#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
-msgid "(not found)"
-msgstr "(غير موجود)"
-
-#. Installed version
-#: cmdline/apt-cache.cc:1515
-msgid " Installed: "
-msgstr " مُثبّت:"
-
-#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525
-msgid "(none)"
-msgstr "(لاشيء)"
-
-#. Candidate Version
-#: cmdline/apt-cache.cc:1522
-msgid " Candidate: "
-msgstr " مرشّح: "
-
-#: cmdline/apt-cache.cc:1532
-msgid " Package pin: "
-msgstr ""
-
-#. Show the priority tables
-#: cmdline/apt-cache.cc:1541
-msgid " Version table:"
-msgstr " جدول النسخ:"
-
-#: cmdline/apt-cache.cc:1556
-#, c-format
-msgid " %4i %s\n"
-msgstr " %4i %s\n"
-
-#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
-#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144
-#, c-format
-msgid "%s %s for %s %s compiled on %s %s\n"
-msgstr "%s %s لـ%s %s مُجمّع على %s %s\n"
-
-#: cmdline/apt-cache.cc:1659
-msgid ""
-"Usage: apt-cache [options] command\n"
-" apt-cache [options] add file1 [file2 ...]\n"
-" apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
-" apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
-"\n"
-"apt-cache is a low-level tool used to manipulate APT's binary\n"
-"cache files, and query information from them\n"
-"\n"
-"Commands:\n"
-" add - Add a package file to the source cache\n"
-" gencaches - Build both the package and source cache\n"
-" showpkg - Show some general information for a single package\n"
-" showsrc - Show source records\n"
-" stats - Show some basic statistics\n"
-" dump - Show the entire file in a terse form\n"
-" dumpavail - Print an available file to stdout\n"
-" unmet - Show unmet dependencies\n"
-" search - Search the package list for a regex pattern\n"
-" show - Show a readable record for the package\n"
-" depends - Show raw dependency information for a package\n"
-" rdepends - Show reverse dependency information for a package\n"
-" pkgnames - List the names of all packages\n"
-" dotty - Generate package graphs for GraphVis\n"
-" xvcg - Generate package graphs for xvcg\n"
-" policy - Show policy settings\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -p=? The package cache.\n"
-" -s=? The source cache.\n"
-" -q Disable progress indicator.\n"
-" -i Show only important deps for the unmet command.\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"
-msgstr ""
-
-#: cmdline/apt-cdrom.cc:78
-msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'"
-msgstr "الرجاء كتابة اسم لهذا القرص، مثال 'Debian 2.1r1 Disk 1'"
-
-#: cmdline/apt-cdrom.cc:93
-msgid "Please insert a Disc in the drive and press enter"
-msgstr "الرجاء إدخال قرص في السواقة وضغط الزر enter"
-
-#: cmdline/apt-cdrom.cc:117
-msgid "Repeat this process for the rest of the CDs in your set."
-msgstr "كرر هذه العملية لباقي الأقراص المدمجة في المجموعة."
-
-#: cmdline/apt-config.cc:41
-msgid "Arguments not in pairs"
-msgstr ""
-
-#: cmdline/apt-config.cc:76
-msgid ""
-"Usage: apt-config [options] command\n"
-"\n"
-"apt-config is a simple tool to read the APT config file\n"
-"\n"
-"Commands:\n"
-" shell - Shell mode\n"
-" dump - Show the configuration\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-
-#: cmdline/apt-extracttemplates.cc:98
-#, c-format
-msgid "%s not a valid DEB package."
-msgstr "%s ليس حزمة DEB صالحة."
-
-#: cmdline/apt-extracttemplates.cc:232
-msgid ""
-"Usage: apt-extracttemplates file1 [file2 ...]\n"
-"\n"
-"apt-extracttemplates is a tool to extract config and template info\n"
-"from debian packages\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" -t Set the temp dir\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-
-#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710
-#, c-format
-msgid "Unable to write to %s"
-msgstr "تعذرت الكتابة إلى %s"
-
-#: cmdline/apt-extracttemplates.cc:310
-msgid "Cannot get debconf version. Is debconf installed?"
-msgstr "تعذر الحصول على نسخة debconf. هل هي مثبتة؟"
-
-#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341
-msgid "Package extension list is too long"
-msgstr "قائمة توسيعات الحزمة طويلة جداً"
-
-#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183
-#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256
-#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292
-#, c-format
-msgid "Error processing directory %s"
-msgstr "خطأ في معالجة الدليل %s"
-
-#: ftparchive/apt-ftparchive.cc:254
-msgid "Source extension list is too long"
-msgstr "قائمة توسيعات المصدر طويلة جداً"
-
-#: ftparchive/apt-ftparchive.cc:371
-msgid "Error writing header to contents file"
-msgstr "خطأ في كتابة الترويسة إلى ملف المحتويات"
-
-#: ftparchive/apt-ftparchive.cc:401
-#, c-format
-msgid "Error processing contents %s"
-msgstr "خطأ في معالجة المحتويات %s"
-
-#: ftparchive/apt-ftparchive.cc:556
-msgid ""
-"Usage: apt-ftparchive [options] command\n"
-"Commands: packages binarypath [overridefile [pathprefix]]\n"
-" sources srcpath [overridefile [pathprefix]]\n"
-" contents path\n"
-" release path\n"
-" generate config [groups]\n"
-" clean config\n"
-"\n"
-"apt-ftparchive generates index files for Debian archives. It supports\n"
-"many styles of generation from fully automated to functional replacements\n"
-"for dpkg-scanpackages and dpkg-scansources\n"
-"\n"
-"apt-ftparchive generates Package files from a tree of .debs. The\n"
-"Package file contains the contents of all the control fields from\n"
-"each package as well as the MD5 hash and filesize. An override file\n"
-"is supported to force the value of Priority and Section.\n"
-"\n"
-"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n"
-"The --source-override option can be used to specify a src override file\n"
-"\n"
-"The 'packages' and 'sources' command should be run in the root of the\n"
-"tree. BinaryPath should point to the base of the recursive search and \n"
-"override file should contain the override flags. Pathprefix is\n"
-"appended to the filename fields if present. Example usage from the \n"
-"Debian archive:\n"
-" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
-" dists/potato/main/binary-i386/Packages\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" --md5 Control MD5 generation\n"
-" -s=? Source override file\n"
-" -q Quiet\n"
-" -d=? Select the optional caching database\n"
-" --no-delink Enable delinking debug mode\n"
-" --contents Control contents file generation\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:762
-msgid "No selections matched"
-msgstr "لم تُطابق أية تحديدات"
-
-#: ftparchive/apt-ftparchive.cc:835
-#, c-format
-msgid "Some files are missing in the package file group `%s'"
-msgstr "بعض الملفات مفقودة في مجموعة ملف الحزمة `%s'"
-
-#: ftparchive/cachedb.cc:47
-#, c-format
-msgid "DB was corrupted, file renamed to %s.old"
-msgstr "قاعدة البيانات كانت فاسدة، فتم تغيير اسمها إلى %s.old"
-
-#: ftparchive/cachedb.cc:65
-#, c-format
-msgid "DB is old, attempting to upgrade %s"
-msgstr "قاعدة البيانات قديمة، محاولة ترقية %s"
-
-#: ftparchive/cachedb.cc:76
-msgid ""
-"DB format is invalid. If you upgraded from a older version of apt, please "
-"remove and re-create the database."
-msgstr ""
-
-#: ftparchive/cachedb.cc:81
-#, c-format
-msgid "Unable to open DB file %s: %s"
-msgstr "تعذر فتح ملف قاعدة البيانات %s: %s"
-
-#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193
-#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272
-#, c-format
-msgid "Failed to stat %s"
-msgstr ""
-
-#: ftparchive/cachedb.cc:242
-msgid "Archive has no control record"
-msgstr ""
-
-#: ftparchive/cachedb.cc:448
-msgid "Unable to get a cursor"
-msgstr ""
-
-#: ftparchive/writer.cc:79
-#, c-format
-msgid "W: Unable to read directory %s\n"
-msgstr "W: تعذرت قراءة الدليل %s\n"
-
-#: ftparchive/writer.cc:84
-#, c-format
-msgid "W: Unable to stat %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:135
-msgid "E: "
-msgstr "E: "
-
-#: ftparchive/writer.cc:137
-msgid "W: "
-msgstr "W: "
-
-#: ftparchive/writer.cc:144
-msgid "E: Errors apply to file "
-msgstr ""
-
-#: ftparchive/writer.cc:161 ftparchive/writer.cc:191
-#, c-format
-msgid "Failed to resolve %s"
-msgstr ""
-
-#: ftparchive/writer.cc:173
-msgid "Tree walking failed"
-msgstr ""
-
-#: ftparchive/writer.cc:198
-#, c-format
-msgid "Failed to open %s"
-msgstr "فشل فتح %s"
-
-#: ftparchive/writer.cc:257
-#, c-format
-msgid " DeLink %s [%s]\n"
-msgstr " DeLink %s [%s]\n"
-
-#: ftparchive/writer.cc:265
-#, c-format
-msgid "Failed to readlink %s"
-msgstr ""
-
-#: ftparchive/writer.cc:269
-#, c-format
-msgid "Failed to unlink %s"
-msgstr ""
-
-#: ftparchive/writer.cc:276
-#, c-format
-msgid "*** Failed to link %s to %s"
-msgstr "*** فشل ربط %s بـ%s"
-
-#: ftparchive/writer.cc:286
-#, c-format
-msgid " DeLink limit of %sB hit.\n"
-msgstr ""
-
-#: ftparchive/writer.cc:390
-msgid "Archive had no package field"
-msgstr ""
-
-#: ftparchive/writer.cc:398 ftparchive/writer.cc:613
-#, c-format
-msgid " %s has no override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:443 ftparchive/writer.cc:701
-#, c-format
-msgid " %s maintainer is %s not %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:623
-#, c-format
-msgid " %s has no source override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:627
-#, c-format
-msgid " %s has no binary override entry either\n"
-msgstr ""
-
-#: ftparchive/contents.cc:317
-#, c-format
-msgid "Internal error, could not locate member %s"
-msgstr "خطأ داخلي، تعذر العثور على العضو %s"
-
-#: ftparchive/contents.cc:353 ftparchive/contents.cc:384
-msgid "realloc - Failed to allocate memory"
-msgstr "realloc - فشل تعيين الذاكرة"
-
-#: ftparchive/override.cc:38 ftparchive/override.cc:146
-#, c-format
-msgid "Unable to open %s"
-msgstr "تعذر فتح %s"
-
-#: ftparchive/override.cc:64 ftparchive/override.cc:170
-#, c-format
-msgid "Malformed override %s line %lu #1"
-msgstr ""
-
-#: ftparchive/override.cc:78 ftparchive/override.cc:182
-#, c-format
-msgid "Malformed override %s line %lu #2"
-msgstr ""
-
-#: ftparchive/override.cc:92 ftparchive/override.cc:195
-#, c-format
-msgid "Malformed override %s line %lu #3"
-msgstr ""
-
-#: ftparchive/override.cc:131 ftparchive/override.cc:205
-#, c-format
-msgid "Failed to read the override file %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:75
-#, c-format
-msgid "Unknown compression algorithm '%s'"
-msgstr ""
-
-#: ftparchive/multicompress.cc:105
-#, c-format
-msgid "Compressed output %s needs a compression set"
-msgstr ""
-
-#: ftparchive/multicompress.cc:172 methods/rsh.cc:91
-msgid "Failed to create IPC pipe to subprocess"
-msgstr ""
-
-#: ftparchive/multicompress.cc:198
-msgid "Failed to create FILE*"
-msgstr ""
-
-#: ftparchive/multicompress.cc:201
-msgid "Failed to fork"
-msgstr ""
-
-#: ftparchive/multicompress.cc:215
-msgid "Compress child"
-msgstr ""
-
-#: ftparchive/multicompress.cc:238
-#, c-format
-msgid "Internal error, failed to create %s"
-msgstr "خطأ داخلي، تعذر إنشاء %s"
-
-#: ftparchive/multicompress.cc:289
-msgid "Failed to create subprocess IPC"
-msgstr ""
-
-#: ftparchive/multicompress.cc:324
-msgid "Failed to exec compressor "
-msgstr ""
-
-#: ftparchive/multicompress.cc:363
-msgid "decompressor"
-msgstr ""
-
-#: ftparchive/multicompress.cc:406
-msgid "IO to subprocess/file failed"
-msgstr ""
-
-#: ftparchive/multicompress.cc:458
-msgid "Failed to read while computing MD5"
-msgstr ""
-
-#: ftparchive/multicompress.cc:475
-#, c-format
-msgid "Problem unlinking %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188
-#, c-format
-msgid "Failed to rename %s to %s"
-msgstr "فشل تغيير اسم %s إلى %s"
-
-#: cmdline/apt-get.cc:120
-msgid "Y"
-msgstr "Y"
-
-#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506
-#, c-format
-msgid "Regex compilation error - %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:237
-msgid "The following packages have unmet dependencies:"
-msgstr ""
-
-#: cmdline/apt-get.cc:327
-#, c-format
-msgid "but %s is installed"
-msgstr "إلا أن %s مثبت"
-
-#: cmdline/apt-get.cc:329
-#, c-format
-msgid "but %s is to be installed"
-msgstr "إلا أنه سيتم تثبيت %s"
-
-#: cmdline/apt-get.cc:336
-msgid "but it is not installable"
-msgstr "إلا أنه غير قابل للتثبيت"
-
-#: cmdline/apt-get.cc:338
-msgid "but it is a virtual package"
-msgstr "إلا أنها حزمة وهمية"
-
-#: cmdline/apt-get.cc:341
-msgid "but it is not installed"
-msgstr "إلا أنها غير مثبتة"
-
-#: cmdline/apt-get.cc:341
-msgid "but it is not going to be installed"
-msgstr "إلا أنه لن يتم تثبيتها"
-
-#: cmdline/apt-get.cc:346
-msgid " or"
-msgstr " أو"
-
-#: cmdline/apt-get.cc:375
-msgid "The following NEW packages will be installed:"
-msgstr "سيتم تثبيت الحزم الجديدة التالية:"
-
-#: cmdline/apt-get.cc:401
-msgid "The following packages will be REMOVED:"
-msgstr "سيتم إزالة الحزم التالية:"
-
-#: cmdline/apt-get.cc:423
-msgid "The following packages have been kept back:"
-msgstr "سيتم الإبقاء على الحزم التالية:"
-
-#: cmdline/apt-get.cc:444
-msgid "The following packages will be upgraded:"
-msgstr "ستتم ترقية الحزم التالية:"
-
-#: cmdline/apt-get.cc:465
-msgid "The following packages will be DOWNGRADED:"
-msgstr "سيتم تثبيط الحزم التالية:"
-
-#: cmdline/apt-get.cc:485
-msgid "The following held packages will be changed:"
-msgstr "سيتم تغيير الحزم المبقاة التالية:"
-
-#: cmdline/apt-get.cc:538
-#, c-format
-msgid "%s (due to %s) "
-msgstr "%s (بسبب %s) "
-
-#: cmdline/apt-get.cc:546
-msgid ""
-"WARNING: The following essential packages will be removed.\n"
-"This should NOT be done unless you know exactly what you are doing!"
-msgstr ""
-"تحذير: ستتم إزالة الحزم الأساسية التالية.\n"
-"لا يجب أن تقوم بهذا إلى إن كنت تعرف تماماً ما تقوم به!"
-
-#: cmdline/apt-get.cc:577
-#, c-format
-msgid "%lu upgraded, %lu newly installed, "
-msgstr "%lu سيتم ترقيتها، %lu مثبتة حديثاً، "
-
-#: cmdline/apt-get.cc:581
-#, c-format
-msgid "%lu reinstalled, "
-msgstr "%lu أعيد تثبيتها، "
-
-#: cmdline/apt-get.cc:583
-#, c-format
-msgid "%lu downgraded, "
-msgstr "%lu مثبطة، "
-
-#: cmdline/apt-get.cc:585
-#, c-format
-msgid "%lu to remove and %lu not upgraded.\n"
-msgstr "%lu لإزالتها و %lu لم يتم ترقيتها.\n"
-
-#: cmdline/apt-get.cc:589
-#, c-format
-msgid "%lu not fully installed or removed.\n"
-msgstr "%lu غير مثبتة بالكامل أو مزالة.\n"
-
-#: cmdline/apt-get.cc:649
-msgid "Correcting dependencies..."
-msgstr "تصحيح المعتمدات..."
-
-#: cmdline/apt-get.cc:652
-msgid " failed."
-msgstr " فشل."
-
-#: cmdline/apt-get.cc:655
-msgid "Unable to correct dependencies"
-msgstr "لم يمكن تصحيح المعتمدات"
-
-#: cmdline/apt-get.cc:658
-msgid "Unable to minimize the upgrade set"
-msgstr "لم يمكن تقليص مجموعة الترقية"
-
-#: cmdline/apt-get.cc:660
-msgid " Done"
-msgstr " تم"
-
-#: cmdline/apt-get.cc:664
-msgid "You might want to run `apt-get -f install' to correct these."
-msgstr "قد ترغب بتنفيذ الأمر `apt-get -f install' لتصحيح هذه."
-
-#: cmdline/apt-get.cc:667
-msgid "Unmet dependencies. Try using -f."
-msgstr "مُعتمدات غير مستوفاة. حاول استخدام -f."
-
-#: cmdline/apt-get.cc:689
-msgid "WARNING: The following packages cannot be authenticated!"
-msgstr "تحذير: تعذرت المصادقة على الحزم التالية!"
-
-#: cmdline/apt-get.cc:693
-msgid "Authentication warning overridden.\n"
-msgstr "تم غض النظر عن تحذير المصادقة.\n"
-
-#: cmdline/apt-get.cc:700
-msgid "Install these packages without verification [y/N]? "
-msgstr "تثبيت هذه الحزم دون التحقق منها [y/N]؟ "
-
-#: cmdline/apt-get.cc:702
-msgid "Some packages could not be authenticated"
-msgstr "تعذرت المصادقة على بعض الحزم"
-
-#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858
-msgid "There are problems and -y was used without --force-yes"
-msgstr "هناك مشاكل وتم استخدام -y دون --force-yes"
-
-#: cmdline/apt-get.cc:755
-msgid "Internal error, InstallPackages was called with broken packages!"
-msgstr "خطأ داخلي، تم طلب InstallPackages مع وجود حزم معطوبة!"
-
-#: cmdline/apt-get.cc:764
-msgid "Packages need to be removed but remove is disabled."
-msgstr "حزم بحاجة للإزالة لكن الإزالة مُعطّلة."
-
-#: cmdline/apt-get.cc:775
-msgid "Internal error, Ordering didn't finish"
-msgstr "خطأ داخلي، لم تنته عملية الترتيب"
-
-#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851
-msgid "Unable to lock the download directory"
-msgstr "تعذر قَفْل دليل التنزيل"
-
-#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135
-#: apt-pkg/cachefile.cc:67
-msgid "The list of sources could not be read."
-msgstr "تعذرت قراءة قائمة المصادر."
-
-#: cmdline/apt-get.cc:816
-msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
-msgstr "يا للغرابة.. لم تتطابق الأحجام، الرجاء مراسلة apt@packages.debian.org"
-
-#: cmdline/apt-get.cc:821
-#, c-format
-msgid "Need to get %sB/%sB of archives.\n"
-msgstr "بحاجة إلى جلب %sب/%sب من الأرشيف.\n"
-
-#: cmdline/apt-get.cc:824
-#, c-format
-msgid "Need to get %sB of archives.\n"
-msgstr "بحاجة إلى جلب %sب من الأرشيف.\n"
-
-#: cmdline/apt-get.cc:829
-#, c-format
-msgid "After unpacking %sB of additional disk space will be used.\n"
-msgstr "بعد الاستخراج %sب من المساحة الإضافيّة سيتمّ استخدامها.\n"
-
-#: cmdline/apt-get.cc:832
-#, c-format
-msgid "After unpacking %sB disk space will be freed.\n"
-msgstr "بعد الاستخراج %sب من المساحة ستفرّغ.\n"
-
-#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989
-#, c-format
-msgid "Couldn't determine free space in %s"
-msgstr "تعذر حساب المساحة الحرة في %s"
-
-#: cmdline/apt-get.cc:849
-#, c-format
-msgid "You don't have enough free space in %s."
-msgstr "ليس هناك مساحة كافية في %s."
-
-#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884
-msgid "Trivial Only specified but this is not a trivial operation."
-msgstr ""
-
-#: cmdline/apt-get.cc:866
-msgid "Yes, do as I say!"
-msgstr "نعم، افعل ما أقوله!"
-
-#: cmdline/apt-get.cc:868
-#, c-format
-msgid ""
-"You are about to do something potentially harmful.\n"
-"To continue type in the phrase '%s'\n"
-" ?] "
-msgstr ""
-"أنت على وشك أن تقوم بشيء ضارّ جداً\n"
-"كي تستمر اكتب العبارة '%s'\n"
-" ؟] "
-
-#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893
-msgid "Abort."
-msgstr "إجهاض."
-
-#: cmdline/apt-get.cc:889
-msgid "Do you want to continue [Y/n]? "
-msgstr "هل تريد الاستمرار [Y/n]؟"
-
-#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032
-#, c-format
-msgid "Failed to fetch %s %s\n"
-msgstr "فشل إحضار %s %s\n"
-
-#: cmdline/apt-get.cc:979
-msgid "Some files failed to download"
-msgstr "فشل تنزيل بعض الملفات"
-
-#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041
-msgid "Download complete and in download only mode"
-msgstr "اكتمل التنزيل وفي وضع التنزيل فقط"
-
-#: cmdline/apt-get.cc:986
-msgid ""
-"Unable to fetch some archives, maybe run apt-get update or try with --fix-"
-"missing?"
-msgstr ""
-"تعذر إحضار بعض الأرشيف، ربما يمكنك محاولة تنفيذ apt-get update أو إضافة --"
-"fix-missing؟"
-
-#: cmdline/apt-get.cc:990
-msgid "--fix-missing and media swapping is not currently supported"
-msgstr "--fix-missing وتبديل الأوساط غير مدعومة حالياً"
-
-#: cmdline/apt-get.cc:995
-msgid "Unable to correct missing packages."
-msgstr "تعذر تصحيح الحزم المفقودة."
-
-#: cmdline/apt-get.cc:996
-msgid "Aborting install."
-msgstr "إجهاض التثبيت."
-
-#: cmdline/apt-get.cc:1030
-#, c-format
-msgid "Note, selecting %s instead of %s\n"
-msgstr "لاحظ، تحديد %s بدلاً من %s\n"
-
-#: cmdline/apt-get.cc:1040
-#, c-format
-msgid "Skipping %s, it is already installed and upgrade is not set.\n"
-msgstr "تخطّي %s، حيث أنها مثبتة ولم يتمّ تعيين الترقية.\n"
-
-#: cmdline/apt-get.cc:1058
-#, c-format
-msgid "Package %s is not installed, so not removed\n"
-msgstr "الحزمة %s غير مُثبّتة، لذلك لن تُزال\n"
-
-#: cmdline/apt-get.cc:1069
-#, c-format
-msgid "Package %s is a virtual package provided by:\n"
-msgstr "الحزمة %s وهميّة وتوفّرها:\n"
-
-#: cmdline/apt-get.cc:1081
-msgid " [Installed]"
-msgstr " [مُثبّتة]"
-
-#: cmdline/apt-get.cc:1086
-msgid "You should explicitly select one to install."
-msgstr "يجب اختيار واحدة بالتحديد لتثبيتها."
-
-#: cmdline/apt-get.cc:1091
-#, c-format
-msgid ""
-"Package %s is not available, but is referred to by another package.\n"
-"This may mean that the package is missing, has been obsoleted, or\n"
-"is only available from another source\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1110
-msgid "However the following packages replace it:"
-msgstr "على أيّ فإن الحزم التالية تحلّ مكانها:"
-
-#: cmdline/apt-get.cc:1113
-#, c-format
-msgid "Package %s has no installation candidate"
-msgstr "الحزمة %s ليس لها مرشح تثبيت"
-
-#: cmdline/apt-get.cc:1133
-#, c-format
-msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
-msgstr "إعادة تثبيت %s غير ممكنة، حيث أنّه لا يمكن تنزيلها.\n"
-
-#: cmdline/apt-get.cc:1141
-#, c-format
-msgid "%s is already the newest version.\n"
-msgstr "%s هي النسخة الأحدث.\n"
-
-#: cmdline/apt-get.cc:1168
-#, c-format
-msgid "Release '%s' for '%s' was not found"
-msgstr "تعذر العثور على الإصدارة '%s' للحزمة '%s'"
-
-#: cmdline/apt-get.cc:1170
-#, c-format
-msgid "Version '%s' for '%s' was not found"
-msgstr "تعذر العثور على النسخة '%s' للحزمة '%s'"
-
-#: cmdline/apt-get.cc:1176
-#, c-format
-msgid "Selected version %s (%s) for %s\n"
-msgstr "النسخة المحددة %s (%s) للإصدارة %s\n"
-
-#: cmdline/apt-get.cc:1313
-msgid "The update command takes no arguments"
-msgstr "لا يقبل الأمر update أية مُعطيات"
-
-#: cmdline/apt-get.cc:1326
-msgid "Unable to lock the list directory"
-msgstr "تعذر قفل دليل القائمة"
-
-#: cmdline/apt-get.cc:1384
-msgid ""
-"Some index files failed to download, they have been ignored, or old ones "
-"used instead."
-msgstr ""
-
-#: cmdline/apt-get.cc:1403
-msgid "Internal error, AllUpgrade broke stuff"
-msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء"
-
-#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529
-#, c-format
-msgid "Couldn't find package %s"
-msgstr "تعذر العثور على الحزمة %s"
-
-#: cmdline/apt-get.cc:1516
-#, c-format
-msgid "Note, selecting %s for regex '%s'\n"
-msgstr "لاحظ، تحديد %s بسبب صيغة regex '%s'\n"
-
-#: cmdline/apt-get.cc:1546
-msgid "You might want to run `apt-get -f install' to correct these:"
-msgstr "قد ترغب بتشغيل `apt-get -f install' لتصحيح هذه:"
-
-#: cmdline/apt-get.cc:1549
-msgid ""
-"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
-"solution)."
-msgstr ""
-"مُعتمدات غير مستوفاة. جرب 'apt-get -f install' بدون أسماء حزم (أو حدّد حلاً)."
-
-#: cmdline/apt-get.cc:1561
-msgid ""
-"Some packages could not be installed. This may mean that you have\n"
-"requested an impossible situation or if you are using the unstable\n"
-"distribution that some required packages have not yet been created\n"
-"or been moved out of Incoming."
-msgstr ""
-
-#: cmdline/apt-get.cc:1569
-msgid ""
-"Since you only requested a single operation it is extremely likely that\n"
-"the package is simply not installable and a bug report against\n"
-"that package should be filed."
-msgstr ""
-
-#: cmdline/apt-get.cc:1574
-msgid "The following information may help to resolve the situation:"
-msgstr "قد تساعد المعلومات التالية في حل المشكلة:"
-
-#: cmdline/apt-get.cc:1577
-msgid "Broken packages"
-msgstr "حزم معطوبة"
-
-#: cmdline/apt-get.cc:1603
-msgid "The following extra packages will be installed:"
-msgstr "سيتم تثبيت الحزم الإضافيّة التالية:"
-
-#: cmdline/apt-get.cc:1692
-msgid "Suggested packages:"
-msgstr "الحزم المقترحة:"
-
-#: cmdline/apt-get.cc:1693
-msgid "Recommended packages:"
-msgstr "الحزم المستحسنة:"
-
-#: cmdline/apt-get.cc:1713
-msgid "Calculating upgrade... "
-msgstr "حساب الترقية..."
-
-#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101
-msgid "Failed"
-msgstr "فشل"
-
-#: cmdline/apt-get.cc:1721
-msgid "Done"
-msgstr "تمّ"
-
-#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794
-msgid "Internal error, problem resolver broke stuff"
-msgstr ""
-
-#: cmdline/apt-get.cc:1894
-msgid "Must specify at least one package to fetch source for"
-msgstr "يجب تحديد حزمة واحدة على الأقل لجلب مصدرها"
-
-#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153
-#, c-format
-msgid "Unable to find a source package for %s"
-msgstr "تعذر العثور على مصدر الحزمة %s"
-
-#: cmdline/apt-get.cc:1968
-#, c-format
-msgid "Skipping already downloaded file '%s'\n"
-msgstr "تخطي الملف '%s' المنزل مسبقاً\n"
-
-#: cmdline/apt-get.cc:1992
-#, c-format
-msgid "You don't have enough free space in %s"
-msgstr "ليس هناك مساحة كافية في %s"
-
-#: cmdline/apt-get.cc:1997
-#, c-format
-msgid "Need to get %sB/%sB of source archives.\n"
-msgstr "يجب جلب %sب/%sب من الأرشيفات المصدرية.\n"
-
-#: cmdline/apt-get.cc:2000
-#, c-format
-msgid "Need to get %sB of source archives.\n"
-msgstr "يجب جلب %sب من الأرشيفات المصدريّة.\n"
-
-#: cmdline/apt-get.cc:2006
-#, c-format
-msgid "Fetch source %s\n"
-msgstr "إحضار المصدر %s\n"
-
-#: cmdline/apt-get.cc:2037
-msgid "Failed to fetch some archives."
-msgstr "فشل إحضار بعض الأرشيفات."
-
-#: cmdline/apt-get.cc:2065
-#, c-format
-msgid "Skipping unpack of already unpacked source in %s\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2077
-#, c-format
-msgid "Unpack command '%s' failed.\n"
-msgstr "أمر فك الحزمة '%s' فشل.\n"
-
-#: cmdline/apt-get.cc:2078
-#, c-format
-msgid "Check if the 'dpkg-dev' package is installed.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2095
-#, c-format
-msgid "Build command '%s' failed.\n"
-msgstr "أمر البناء '%s' فشل.\n"
-
-#: cmdline/apt-get.cc:2114
-msgid "Child process failed"
-msgstr ""
-
-#: cmdline/apt-get.cc:2130
-msgid "Must specify at least one package to check builddeps for"
-msgstr ""
-
-#: cmdline/apt-get.cc:2158
-#, c-format
-msgid "Unable to get build-dependency information for %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:2178
-#, c-format
-msgid "%s has no build depends.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2230
-#, c-format
-msgid ""
-"%s dependency for %s cannot be satisfied because the package %s cannot be "
-"found"
-msgstr ""
-
-#: cmdline/apt-get.cc:2282
-#, c-format
-msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
-msgstr ""
-
-#: cmdline/apt-get.cc:2317
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-
-#: cmdline/apt-get.cc:2342
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:2356
-#, c-format
-msgid "Build-dependencies for %s could not be satisfied."
-msgstr ""
-
-#: cmdline/apt-get.cc:2360
-msgid "Failed to process build dependencies"
-msgstr ""
-
-#: cmdline/apt-get.cc:2392
-msgid "Supported modules:"
-msgstr "الوحدات المدعومة:"
-
-#: cmdline/apt-get.cc:2433
-msgid ""
-"Usage: apt-get [options] command\n"
-" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
-" apt-get [options] source pkg1 [pkg2 ...]\n"
-"\n"
-"apt-get is a simple command line interface for downloading and\n"
-"installing packages. The most frequently used commands are update\n"
-"and install.\n"
-"\n"
-"Commands:\n"
-" update - Retrieve new lists of packages\n"
-" upgrade - Perform an upgrade\n"
-" install - Install new packages (pkg is libc6 not libc6.deb)\n"
-" remove - Remove packages\n"
-" source - Download source archives\n"
-" build-dep - Configure build-dependencies for source packages\n"
-" dist-upgrade - Distribution upgrade, see apt-get(8)\n"
-" dselect-upgrade - Follow dselect selections\n"
-" clean - Erase downloaded archive files\n"
-" autoclean - Erase old downloaded archive files\n"
-" check - Verify that there are no broken dependencies\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -q Loggable output - no progress indicator\n"
-" -qq No output except for errors\n"
-" -d Download only - do NOT install or unpack archives\n"
-" -s No-act. Perform ordering simulation\n"
-" -y Assume Yes to all queries and do not prompt\n"
-" -f Attempt to continue if the integrity check fails\n"
-" -m Attempt to continue if archives are unlocatable\n"
-" -u Show a list of upgraded packages as well\n"
-" -b Build the source package after fetching it\n"
-" -V Show verbose version numbers\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n"
-"pages for more information and options.\n"
-" This APT has Super Cow Powers.\n"
-msgstr ""
-
-#: cmdline/acqprogress.cc:55
-msgid "Hit "
-msgstr ""
-
-#: cmdline/acqprogress.cc:79
-msgid "Get:"
-msgstr "جلب:"
-
-#: cmdline/acqprogress.cc:110
-msgid "Ign "
-msgstr "تجاهل"
-
-#: cmdline/acqprogress.cc:114
-msgid "Err "
-msgstr "خطأ"
-
-#: cmdline/acqprogress.cc:135
-#, c-format
-msgid "Fetched %sB in %s (%sB/s)\n"
-msgstr "جلب %sب في %s (%sب/ث)\n"
-
-#: cmdline/acqprogress.cc:225
-#, c-format
-msgid " [Working]"
-msgstr " [يعمل]"
-
-#: cmdline/acqprogress.cc:271
-#, c-format
-msgid ""
-"Media change: please insert the disc labeled\n"
-" '%s'\n"
-"in the drive '%s' and press enter\n"
-msgstr ""
-"تغيير الوسط: الرجاء إدخال القرص المُسمّى\n"
-" '%s'\n"
-"في السوّاقة '%s' وضغط مفتاح الإدخال\n"
-
-#: cmdline/apt-sortpkgs.cc:86
-msgid "Unknown package record!"
-msgstr "سجل حزمة مجهول!"
-
-#: cmdline/apt-sortpkgs.cc:150
-msgid ""
-"Usage: apt-sortpkgs [options] file1 [file2 ...]\n"
-"\n"
-"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n"
-"to indicate what kind of file it is.\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" -s Use source file sorting\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-
-#: dselect/install:32
-msgid "Bad default setting!"
-msgstr "إعداد افتراضيّ سيّء!"
-
-#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93
-#: dselect/install:104 dselect/update:45
-msgid "Press enter to continue."
-msgstr "اضغط مفتاح الإدخال للاستمرار."
-
-#: dselect/install:100
-msgid "Some errors occurred while unpacking. I'm going to configure the"
-msgstr "حدثت بعض الأخطاء أثناء فك الحزمة. سأقوم بتهيئة "
-
-#: dselect/install:101
-msgid "packages that were installed. This may result in duplicate errors"
-msgstr "الحزم التي تم تثبيتها. قد يتسبب هذا بظهر أخطاء متكررة"
-
-#: dselect/install:102
-msgid "or errors caused by missing dependencies. This is OK, only the errors"
-msgstr "أو أخطاء سبّبتها المُعتمدات المفقودة. لا بأس بهذا، فقط الأخطاء"
-
-#: dselect/install:103
-msgid ""
-"above this message are important. Please fix them and run [I]nstall again"
-msgstr "أعلى هذه الرسالة مهمّة. الرجاء تصحيحها وتشغيل التثبيت مجدداً"
-
-#: dselect/update:30
-msgid "Merging available information"
-msgstr "دمج المعلومات المتوفرة"
-
-#: apt-inst/contrib/extracttar.cc:117
-msgid "Failed to create pipes"
-msgstr ""
-
-#: apt-inst/contrib/extracttar.cc:144
-msgid "Failed to exec gzip "
-msgstr "فشل تنفيذ gzip"
-
-#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207
-msgid "Corrupted archive"
-msgstr "أرشيف فاسد"
-
-#: apt-inst/contrib/extracttar.cc:196
-msgid "Tar checksum failed, archive corrupted"
-msgstr "فشل تحقّق Checksum لملف Tar، الأرشيف فاسد"
-
-#: apt-inst/contrib/extracttar.cc:299
-#, c-format
-msgid "Unknown TAR header type %u, member %s"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:73
-msgid "Invalid archive signature"
-msgstr "توقيع الأرشيف غير صالح"
-
-#: apt-inst/contrib/arfile.cc:81
-msgid "Error reading archive member header"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:93 apt-inst/contrib/arfile.cc:105
-msgid "Invalid archive member header"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:131
-msgid "Archive is too short"
-msgstr "الأرشيف قصير جداً"
-
-#: apt-inst/contrib/arfile.cc:135
-msgid "Failed to read the archive headers"
-msgstr "فشلت قراءة ترويسات الأرشيف"
-
-#: apt-inst/filelist.cc:384
-msgid "DropNode called on still linked node"
-msgstr ""
-
-#: apt-inst/filelist.cc:416
-msgid "Failed to locate the hash element!"
-msgstr ""
-
-#: apt-inst/filelist.cc:463
-msgid "Failed to allocate diversion"
-msgstr ""
-
-#: apt-inst/filelist.cc:468
-msgid "Internal error in AddDiversion"
-msgstr "خطأ داخلي في AddDiversion"
-
-#: apt-inst/filelist.cc:481
-#, c-format
-msgid "Trying to overwrite a diversion, %s -> %s and %s/%s"
-msgstr ""
-
-#: apt-inst/filelist.cc:510
-#, c-format
-msgid "Double add of diversion %s -> %s"
-msgstr ""
-
-#: apt-inst/filelist.cc:553
-#, c-format
-msgid "Duplicate conf file %s/%s"
-msgstr "ملف تهيئة مُزدوج %s/%s"
-
-#: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53
-#, c-format
-msgid "Failed to write file %s"
-msgstr "فشلت كتابة الملف %s"
-
-#: apt-inst/dirstream.cc:96 apt-inst/dirstream.cc:104
-#, c-format
-msgid "Failed to close file %s"
-msgstr "فشل إغلاق الملف %s"
-
-#: apt-inst/extract.cc:96 apt-inst/extract.cc:167
-#, c-format
-msgid "The path %s is too long"
-msgstr "المسار %s طويل جداً"
-
-#: apt-inst/extract.cc:127
-#, c-format
-msgid "Unpacking %s more than once"
-msgstr "فكّ تحزيم %s أكثر من مرّة"
-
-#: apt-inst/extract.cc:137
-#, c-format
-msgid "The directory %s is diverted"
-msgstr ""
-
-#: apt-inst/extract.cc:147
-#, c-format
-msgid "The package is trying to write to the diversion target %s/%s"
-msgstr ""
-
-#: apt-inst/extract.cc:157 apt-inst/extract.cc:300
-msgid "The diversion path is too long"
-msgstr ""
-
-#: apt-inst/extract.cc:243
-#, c-format
-msgid "The directory %s is being replaced by a non-directory"
-msgstr ""
-
-#: apt-inst/extract.cc:283
-msgid "Failed to locate node in its hash bucket"
-msgstr ""
-
-#: apt-inst/extract.cc:287
-msgid "The path is too long"
-msgstr "المسار طويل جداً"
-
-#: apt-inst/extract.cc:417
-#, c-format
-msgid "Overwrite package match with no version for %s"
-msgstr ""
-
-#: apt-inst/extract.cc:434
-#, c-format
-msgid "File %s/%s overwrites the one in the package %s"
-msgstr ""
-
-#: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750
-#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324
-#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38
-#, c-format
-msgid "Unable to read %s"
-msgstr "تعذرت قراءة %s"
-
-#: apt-inst/extract.cc:494
-#, c-format
-msgid "Unable to stat %s"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:55 apt-inst/deb/dpkgdb.cc:61
-#, c-format
-msgid "Failed to remove %s"
-msgstr "تعذرت إزالة %s"
-
-#: apt-inst/deb/dpkgdb.cc:110 apt-inst/deb/dpkgdb.cc:112
-#, c-format
-msgid "Unable to create %s"
-msgstr "تعذر إنشاء %s"
-
-#: apt-inst/deb/dpkgdb.cc:118
-#, c-format
-msgid "Failed to stat %sinfo"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:123
-msgid "The info and temp directories need to be on the same filesystem"
-msgstr ""
-
-#. Build the status cache
-#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643
-#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717
-#: apt-pkg/pkgcachegen.cc:840
-msgid "Reading package lists"
-msgstr "قراءة قوائم الحزم"
-
-#: apt-inst/deb/dpkgdb.cc:180
-#, c-format
-msgid "Failed to change to the admin dir %sinfo"
-msgstr "فشل تغيير دليل الإدارة إلى %sinfo"
-
-#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355
-#: apt-inst/deb/dpkgdb.cc:448
-msgid "Internal error getting a package name"
-msgstr "خطأ داخلي أثناء الحصول على اسم الحزمة"
-
-#: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386
-msgid "Reading file listing"
-msgstr "قراءة سرد الملفات"
-
-#: apt-inst/deb/dpkgdb.cc:216
-#, c-format
-msgid ""
-"Failed to open the list file '%sinfo/%s'. If you cannot restore this file "
-"then make it empty and immediately re-install the same version of the "
-"package!"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242
-#, c-format
-msgid "Failed reading the list file %sinfo/%s"
-msgstr "فشلت قراءة ملف القائمة %sinfo/%s"
-
-#: apt-inst/deb/dpkgdb.cc:266
-msgid "Internal error getting a node"
-msgstr "خطأ داخلي أثناء الحصول على node"
-
-#: apt-inst/deb/dpkgdb.cc:309
-#, c-format
-msgid "Failed to open the diversions file %sdiversions"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:324
-msgid "The diversion file is corrupted"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:331 apt-inst/deb/dpkgdb.cc:336
-#: apt-inst/deb/dpkgdb.cc:341
-#, c-format
-msgid "Invalid line in the diversion file: %s"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:362
-msgid "Internal error adding a diversion"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:383
-msgid "The pkg cache must be initialized first"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:443
-#, c-format
-msgid "Failed to find a Package: header, offset %lu"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:465
-#, c-format
-msgid "Bad ConfFile section in the status file. Offset %lu"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:470
-#, c-format
-msgid "Error parsing MD5. Offset %lu"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47
-#, c-format
-msgid "This is not a valid DEB archive, missing '%s' member"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:52
-#, c-format
-msgid "This is not a valid DEB archive, it has no '%s' or '%s' member"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:112
-#, c-format
-msgid "Couldn't change to %s"
-msgstr "تعذر التغيير إلى %s"
-
-#: apt-inst/deb/debfile.cc:138
-msgid "Internal error, could not locate member"
-msgstr "خطأ داخلي، تعذر العثور على العضو"
-
-#: apt-inst/deb/debfile.cc:171
-msgid "Failed to locate a valid control file"
-msgstr "فشل العثور على ملف تحكّم صالح"
-
-#: apt-inst/deb/debfile.cc:256
-msgid "Unparsable control file"
-msgstr ""
-
-#: methods/cdrom.cc:114
-#, c-format
-msgid "Unable to read the cdrom database %s"
-msgstr "تعذرت قراءة قاعدة بيانات القرص المدمج %s"
-
-#: methods/cdrom.cc:123
-msgid ""
-"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update "
-"cannot be used to add new CD-ROMs"
-msgstr ""
-"الرجاء استخدام apt-cdrom لتعريف APT بهذا القرص المدمج. لا يمكن استخدام apt-"
-"get update لإضافة أقراص مدمجة جديدة."
-
-#: methods/cdrom.cc:131
-msgid "Wrong CD-ROM"
-msgstr "القرص المدمج الخطأ"
-
-#: methods/cdrom.cc:164
-#, c-format
-msgid "Unable to unmount the CD-ROM in %s, it may still be in use."
-msgstr "تعذر فكّ القرص المدمج من %s، إذ قد يكون لا يزال قيد الاستخدام."
-
-#: methods/cdrom.cc:169
-msgid "Disk not found."
-msgstr "لم يُعثر على القرص."
-
-#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264
-msgid "File not found"
-msgstr "لم يُعثر على الملف"
-
-#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141
-#: methods/gzip.cc:150
-msgid "Failed to stat"
-msgstr "فشيل تنفيذ stat"
-
-#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147
-msgid "Failed to set modification time"
-msgstr "فشل تعيين وقت التعديل"
-
-#: methods/file.cc:44
-msgid "Invalid URI, local URIS must not start with //"
-msgstr ""
-
-#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:162
-msgid "Logging in"
-msgstr "تسجيل الدخول"
-
-#: methods/ftp.cc:168
-msgid "Unable to determine the peer name"
-msgstr ""
-
-#: methods/ftp.cc:173
-msgid "Unable to determine the local name"
-msgstr ""
-
-#: methods/ftp.cc:204 methods/ftp.cc:232
-#, c-format
-msgid "The server refused the connection and said: %s"
-msgstr "رفض الخادم اتصالنا بالرد: %s"
-
-#: methods/ftp.cc:210
-#, c-format
-msgid "USER failed, server said: %s"
-msgstr "فشل USER، ردّ الخادم: %s"
-
-#: methods/ftp.cc:217
-#, c-format
-msgid "PASS failed, server said: %s"
-msgstr "فشل PASS، ردّ الخادم: %s"
-
-#: methods/ftp.cc:237
-msgid ""
-"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
-"is empty."
-msgstr ""
-"تم تحديد خادم بروكسي ولكن دون نص تسجيل دخول برمجي، Acquire::ftp::ProxyLogin "
-"فارغ."
-
-#: methods/ftp.cc:265
-#, c-format
-msgid "Login script command '%s' failed, server said: %s"
-msgstr "فشل أمر نص تسجيل الدخول البرمجي '%s'، ردّ الخادم: %s"
-
-#: methods/ftp.cc:291
-#, c-format
-msgid "TYPE failed, server said: %s"
-msgstr "فشل TYPE، ردّ الخادم: %s"
-
-#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226
-msgid "Connection timeout"
-msgstr "انتهى وقت الاتصال"
-
-#: methods/ftp.cc:335
-msgid "Server closed the connection"
-msgstr "أغلق الخادم الاتصال"
-
-#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190
-msgid "Read error"
-msgstr "خطأ في القراءة"
-
-#: methods/ftp.cc:345 methods/rsh.cc:197
-msgid "A response overflowed the buffer."
-msgstr ""
-
-#: methods/ftp.cc:362 methods/ftp.cc:374
-msgid "Protocol corruption"
-msgstr ""
-
-#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232
-msgid "Write error"
-msgstr "خطأ في الكتابة"
-
-#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729
-msgid "Could not create a socket"
-msgstr ""
-
-#: methods/ftp.cc:698
-msgid "Could not connect data socket, connection timed out"
-msgstr ""
-
-#: methods/ftp.cc:704
-msgid "Could not connect passive socket."
-msgstr ""
-
-#: methods/ftp.cc:722
-msgid "getaddrinfo was unable to get a listening socket"
-msgstr ""
-
-#: methods/ftp.cc:736
-msgid "Could not bind a socket"
-msgstr ""
-
-#: methods/ftp.cc:740
-msgid "Could not listen on the socket"
-msgstr ""
-
-#: methods/ftp.cc:747
-msgid "Could not determine the socket's name"
-msgstr ""
-
-#: methods/ftp.cc:779
-msgid "Unable to send PORT command"
-msgstr "تعذر إرسال الأمر PORT"
-
-#: methods/ftp.cc:789
-#, c-format
-msgid "Unknown address family %u (AF_*)"
-msgstr ""
-
-#: methods/ftp.cc:798
-#, c-format
-msgid "EPRT failed, server said: %s"
-msgstr "فشل EPRT، ردّ الخادم: %s"
-
-#: methods/ftp.cc:818
-msgid "Data socket connect timed out"
-msgstr ""
-
-#: methods/ftp.cc:825
-msgid "Unable to accept connection"
-msgstr "تعذر قبول الاتصال"
-
-#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303
-msgid "Problem hashing file"
-msgstr ""
-
-#: methods/ftp.cc:877
-#, c-format
-msgid "Unable to fetch file, server said '%s'"
-msgstr "تعذر إحضار الملف، ردّ الخادم '%s'"
-
-#: methods/ftp.cc:892 methods/rsh.cc:322
-msgid "Data socket timed out"
-msgstr ""
-
-#: methods/ftp.cc:922
-#, c-format
-msgid "Data transfer failed, server said '%s'"
-msgstr "فشل نقل البيانات، ردّ الخادم '%s'"
-
-#. Get the files information
-#: methods/ftp.cc:997
-msgid "Query"
-msgstr "استعلام"
-
-#: methods/ftp.cc:1109
-msgid "Unable to invoke "
-msgstr ""
-
-#: methods/connect.cc:64
-#, c-format
-msgid "Connecting to %s (%s)"
-msgstr "الاتصال بـ%s (%s)"
-
-#: methods/connect.cc:71
-#, c-format
-msgid "[IP: %s %s]"
-msgstr "[IP: %s %s]"
-
-#: methods/connect.cc:80
-#, c-format
-msgid "Could not create a socket for %s (f=%u t=%u p=%u)"
-msgstr ""
-
-#: methods/connect.cc:86
-#, c-format
-msgid "Cannot initiate the connection to %s:%s (%s)."
-msgstr "تعذر تمهيد الاتصال بـ%s:%s (%s)."
-
-#: methods/connect.cc:93
-#, c-format
-msgid "Could not connect to %s:%s (%s), connection timed out"
-msgstr "تعذر الاتصال بـ%s:%s (%s)، انتهى وقت الاتصال"
-
-#: methods/connect.cc:108
-#, c-format
-msgid "Could not connect to %s:%s (%s)."
-msgstr "تعذر الاتصال بـ%s:%s (%s)."
-
-#. We say this mainly because the pause here is for the
-#. ssh connection that is still going
-#: methods/connect.cc:136 methods/rsh.cc:425
-#, c-format
-msgid "Connecting to %s"
-msgstr "الاتصال بـ%s"
-
-#: methods/connect.cc:167
-#, c-format
-msgid "Could not resolve '%s'"
-msgstr ""
-
-#: methods/connect.cc:173
-#, c-format
-msgid "Temporary failure resolving '%s'"
-msgstr ""
-
-#: methods/connect.cc:176
-#, c-format
-msgid "Something wicked happened resolving '%s:%s' (%i)"
-msgstr ""
-
-#: methods/connect.cc:223
-#, c-format
-msgid "Unable to connect to %s %s:"
-msgstr "تعذر الاتصال بـ%s %s:"
-
-#: methods/gpgv.cc:65
-#, c-format
-msgid "Couldn't access keyring: '%s'"
-msgstr ""
-
-#: methods/gpgv.cc:100
-msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
-msgstr ""
-
-#: methods/gpgv.cc:204
-msgid ""
-"Internal error: Good signature, but could not determine key fingerprint?!"
-msgstr ""
-
-#: methods/gpgv.cc:209
-msgid "At least one invalid signature was encountered."
-msgstr ""
-
-#: methods/gpgv.cc:213
-#, c-format
-msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
-msgstr ""
-
-#: methods/gpgv.cc:218
-msgid "Unknown error executing gpgv"
-msgstr ""
-
-#: methods/gpgv.cc:249
-msgid "The following signatures were invalid:\n"
-msgstr ""
-
-#: methods/gpgv.cc:256
-msgid ""
-"The following signatures couldn't be verified because the public key is not "
-"available:\n"
-msgstr ""
-
-#: methods/gzip.cc:64
-#, c-format
-msgid "Couldn't open pipe for %s"
-msgstr ""
-
-#: methods/gzip.cc:109
-#, c-format
-msgid "Read error from %s process"
-msgstr ""
-
-#: methods/http.cc:376
-msgid "Waiting for headers"
-msgstr "بانتظار الترويسات"
-
-#: methods/http.cc:522
-#, c-format
-msgid "Got a single header line over %u chars"
-msgstr ""
-
-#: methods/http.cc:530
-msgid "Bad header line"
-msgstr "سطر ترويسة سيء"
-
-#: methods/http.cc:549 methods/http.cc:556
-msgid "The HTTP server sent an invalid reply header"
-msgstr "أرسل خادم http ترويسة ردّ غير صالحة"
-
-#: methods/http.cc:585
-msgid "The HTTP server sent an invalid Content-Length header"
-msgstr "أرسل خادم http ترويسة طول محتويات (ِContent-Length) غير صالحة"
-
-#: methods/http.cc:600
-msgid "The HTTP server sent an invalid Content-Range header"
-msgstr "أرسل خادم http ترويسة مدى محتويات (ِContent-Range) غير صالحة"
-
-#: methods/http.cc:602
-msgid "This HTTP server has broken range support"
-msgstr "خادم http له دعم مدى معطوب"
-
-#: methods/http.cc:626
-msgid "Unknown date format"
-msgstr "نسق تاريخ مجهول"
-
-#: methods/http.cc:773
-msgid "Select failed"
-msgstr "فشل التحديد"
-
-#: methods/http.cc:778
-msgid "Connection timed out"
-msgstr "انتهى وقت الاتصال"
-
-#: methods/http.cc:801
-msgid "Error writing to output file"
-msgstr "خطأ في الكتابة إلى ملف المُخرجات"
-
-#: methods/http.cc:832
-msgid "Error writing to file"
-msgstr "خطأ في الكتابة إلى الملف"
-
-#: methods/http.cc:860
-msgid "Error writing to the file"
-msgstr "خطأ في الكتابة إلى الملف"
-
-#: methods/http.cc:874
-msgid "Error reading from server. Remote end closed connection"
-msgstr "خطأ في القراءة من الخادم. أقفل الطرف الآخر الاتصال"
-
-#: methods/http.cc:876
-msgid "Error reading from server"
-msgstr "خطأ في القراءة من الخادم"
-
-#: methods/http.cc:1107
-msgid "Bad header data"
-msgstr "بيانات ترويسة سيئة"
-
-#: methods/http.cc:1124
-msgid "Connection failed"
-msgstr "فشل الاتصال"
-
-#: methods/http.cc:1215
-msgid "Internal error"
-msgstr "خطأ داخلي"
-
-#: apt-pkg/contrib/mmap.cc:82
-msgid "Can't mmap an empty file"
-msgstr ""
-
-#: apt-pkg/contrib/mmap.cc:87
-#, c-format
-msgid "Couldn't make mmap of %lu bytes"
-msgstr ""
-
-#: apt-pkg/contrib/strutl.cc:938
-#, c-format
-msgid "Selection %s not found"
-msgstr "تعذر العثور على التحديد %s"
-
-#: apt-pkg/contrib/configuration.cc:436
-#, c-format
-msgid "Unrecognized type abbreviation: '%c'"
-msgstr "اختصار نوع مجهول: '%c'"
-
-#: apt-pkg/contrib/configuration.cc:494
-#, c-format
-msgid "Opening configuration file %s"
-msgstr "فتح ملف التهيئة %s"
-
-#: apt-pkg/contrib/configuration.cc:512
-#, c-format
-msgid "Line %d too long (max %d)"
-msgstr "السطر %d طويل جداً (أقصاه %d)"
-
-#: apt-pkg/contrib/configuration.cc:608
-#, c-format
-msgid "Syntax error %s:%u: Block starts with no name."
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:627
-#, c-format
-msgid "Syntax error %s:%u: Malformed tag"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:644
-#, c-format
-msgid "Syntax error %s:%u: Extra junk after value"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:684
-#, c-format
-msgid "Syntax error %s:%u: Directives can only be done at the top level"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:691
-#, c-format
-msgid "Syntax error %s:%u: Too many nested includes"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:695 apt-pkg/contrib/configuration.cc:700
-#, c-format
-msgid "Syntax error %s:%u: Included from here"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:704
-#, c-format
-msgid "Syntax error %s:%u: Unsupported directive '%s'"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:738
-#, c-format
-msgid "Syntax error %s:%u: Extra junk at end of file"
-msgstr ""
-
-#: apt-pkg/contrib/progress.cc:154
-#, c-format
-msgid "%c%s... Error!"
-msgstr "%c%s... خطأ!"
-
-#: apt-pkg/contrib/progress.cc:156
-#, c-format
-msgid "%c%s... Done"
-msgstr "%c%s... تمّ"
-
-#: apt-pkg/contrib/cmndline.cc:80
-#, c-format
-msgid "Command line option '%c' [from %s] is not known."
-msgstr "خيار سطر الأمر '%c' [من %s] مجهول."
-
-#: apt-pkg/contrib/cmndline.cc:106 apt-pkg/contrib/cmndline.cc:114
-#: apt-pkg/contrib/cmndline.cc:122
-#, c-format
-msgid "Command line option %s is not understood"
-msgstr "خيار سطر الأمر %s غير مفهوم"
-
-#: apt-pkg/contrib/cmndline.cc:127
-#, c-format
-msgid "Command line option %s is not boolean"
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:166 apt-pkg/contrib/cmndline.cc:187
-#, c-format
-msgid "Option %s requires an argument."
-msgstr "الخيار %s يتطلّب مُعطى."
-
-#: apt-pkg/contrib/cmndline.cc:201 apt-pkg/contrib/cmndline.cc:207
-#, c-format
-msgid "Option %s: Configuration item specification must have an =<val>."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:237
-#, c-format
-msgid "Option %s requires an integer argument, not '%s'"
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:268
-#, c-format
-msgid "Option '%s' is too long"
-msgstr "الخيار '%s' طويل جداً"
-
-#: apt-pkg/contrib/cmndline.cc:301
-#, c-format
-msgid "Sense %s is not understood, try true or false."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:351
-#, c-format
-msgid "Invalid operation %s"
-msgstr "عمليّة غير صالحة %s"
-
-#: apt-pkg/contrib/cdromutl.cc:55
-#, c-format
-msgid "Unable to stat the mount point %s"
-msgstr ""
-
-#: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44
-#, c-format
-msgid "Unable to change to %s"
-msgstr ""
-
-#: apt-pkg/contrib/cdromutl.cc:190
-msgid "Failed to stat the cdrom"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:82
-#, c-format
-msgid "Not using locking for read only lock file %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:87
-#, c-format
-msgid "Could not open lock file %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:105
-#, c-format
-msgid "Not using locking for nfs mounted lock file %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:109
-#, c-format
-msgid "Could not get lock %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:377
-#, c-format
-msgid "Waited for %s but it wasn't there"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:387
-#, c-format
-msgid "Sub-process %s received a segmentation fault."
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:390
-#, c-format
-msgid "Sub-process %s returned an error code (%u)"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:392
-#, c-format
-msgid "Sub-process %s exited unexpectedly"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:436
-#, c-format
-msgid "Could not open file %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:492
-#, c-format
-msgid "read, still have %lu to read but none left"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:522
-#, c-format
-msgid "write, still have %lu to write but couldn't"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:597
-msgid "Problem closing the file"
-msgstr "مشكلة في إغلاق الملف"
-
-#: apt-pkg/contrib/fileutl.cc:603
-msgid "Problem unlinking the file"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:614
-msgid "Problem syncing the file"
-msgstr "مشكلة في مزامنة الملف"
-
-#: apt-pkg/pkgcache.cc:126
-msgid "Empty package cache"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:132
-msgid "The package cache file is corrupted"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:137
-msgid "The package cache file is an incompatible version"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:142
-#, c-format
-msgid "This APT does not support the versioning system '%s'"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:147
-msgid "The package cache was built for a different architecture"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:218
-msgid "Depends"
-msgstr "يعتمد"
-
-#: apt-pkg/pkgcache.cc:218
-msgid "PreDepends"
-msgstr "يعتمد مسبقاً"
-
-#: apt-pkg/pkgcache.cc:218
-msgid "Suggests"
-msgstr "يستحسن"
-
-#: apt-pkg/pkgcache.cc:219
-msgid "Recommends"
-msgstr "يقترح"
-
-#: apt-pkg/pkgcache.cc:219
-msgid "Conflicts"
-msgstr "يعارض"
-
-#: apt-pkg/pkgcache.cc:219
-msgid "Replaces"
-msgstr "يستبدل"
-
-#: apt-pkg/pkgcache.cc:220
-msgid "Obsoletes"
-msgstr "يُلغي"
-
-#: apt-pkg/pkgcache.cc:231
-msgid "important"
-msgstr "مهم"
-
-#: apt-pkg/pkgcache.cc:231
-msgid "required"
-msgstr "مطلوب"
-
-#: apt-pkg/pkgcache.cc:231
-msgid "standard"
-msgstr "قياسي"
-
-#: apt-pkg/pkgcache.cc:232
-msgid "optional"
-msgstr "اختياري"
-
-#: apt-pkg/pkgcache.cc:232
-msgid "extra"
-msgstr "إضافي"
-
-#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90
-msgid "Building dependency tree"
-msgstr ""
-
-#: apt-pkg/depcache.cc:62
-msgid "Candidate versions"
-msgstr ""
-
-#: apt-pkg/depcache.cc:91
-msgid "Dependency generation"
-msgstr ""
-
-#: apt-pkg/tagfile.cc:106
-#, c-format
-msgid "Unable to parse package file %s (1)"
-msgstr ""
-
-#: apt-pkg/tagfile.cc:193
-#, c-format
-msgid "Unable to parse package file %s (2)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:94
-#, c-format
-msgid "Malformed line %lu in source list %s (URI)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:96
-#, c-format
-msgid "Malformed line %lu in source list %s (dist)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:99
-#, c-format
-msgid "Malformed line %lu in source list %s (URI parse)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:105
-#, c-format
-msgid "Malformed line %lu in source list %s (absolute dist)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:112
-#, c-format
-msgid "Malformed line %lu in source list %s (dist parse)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:203
-#, c-format
-msgid "Opening %s"
-msgstr "فتح %s"
-
-#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426
-#, c-format
-msgid "Line %u too long in source list %s."
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:240
-#, c-format
-msgid "Malformed line %u in source list %s (type)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:244
-#, c-format
-msgid "Type '%s' is not known on line %u in source list %s"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255
-#, c-format
-msgid "Malformed line %u in source list %s (vendor id)"
-msgstr ""
-
-#: apt-pkg/packagemanager.cc:402
-#, c-format
-msgid ""
-"This installation run will require temporarily removing the essential "
-"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if "
-"you really want to do it, activate the APT::Force-LoopBreak option."
-msgstr ""
-
-#: apt-pkg/pkgrecords.cc:37
-#, c-format
-msgid "Index file type '%s' is not supported"
-msgstr ""
-
-#: apt-pkg/algorithms.cc:241
-#, c-format
-msgid ""
-"The package %s needs to be reinstalled, but I can't find an archive for it."
-msgstr ""
-
-#: apt-pkg/algorithms.cc:1059
-msgid ""
-"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
-"held packages."
-msgstr ""
-
-#: apt-pkg/algorithms.cc:1061
-msgid "Unable to correct problems, you have held broken packages."
-msgstr ""
-
-#: apt-pkg/acquire.cc:62
-#, c-format
-msgid "Lists directory %spartial is missing."
-msgstr ""
-
-#: apt-pkg/acquire.cc:66
-#, c-format
-msgid "Archive directory %spartial is missing."
-msgstr ""
-
-#. only show the ETA if it makes sense
-#. two days
-#: apt-pkg/acquire.cc:823
-#, c-format
-msgid "Retrieving file %li of %li (%s remaining)"
-msgstr ""
-
-#: apt-pkg/acquire.cc:825
-#, c-format
-msgid "Retrieving file %li of %li"
-msgstr ""
-
-#: apt-pkg/acquire-worker.cc:113
-#, c-format
-msgid "The method driver %s could not be found."
-msgstr ""
-
-#: apt-pkg/acquire-worker.cc:162
-#, c-format
-msgid "Method %s did not start correctly"
-msgstr ""
-
-#: apt-pkg/acquire-worker.cc:377
-#, c-format
-msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
-msgstr "الرجاء إدخال القرص المُسمّى '%s' في السوّاقة '%s' وضغط مفتاح الإدخال."
-
-#: apt-pkg/init.cc:120
-#, c-format
-msgid "Packaging system '%s' is not supported"
-msgstr "نظام الحزم '%s' غير مدعوم"
-
-#: apt-pkg/init.cc:136
-msgid "Unable to determine a suitable packaging system type"
-msgstr ""
-
-#: apt-pkg/clean.cc:61
-#, c-format
-msgid "Unable to stat %s."
-msgstr ""
-
-#: apt-pkg/srcrecords.cc:48
-msgid "You must put some 'source' URIs in your sources.list"
-msgstr ""
-
-#: apt-pkg/cachefile.cc:73
-msgid "The package lists or status file could not be parsed or opened."
-msgstr ""
-
-#: apt-pkg/cachefile.cc:77
-msgid "You may want to run apt-get update to correct these problems"
-msgstr "قد يساعدك تنفيذ الأمر apt-get update في تصحيح هذه المشاكل"
-
-#: apt-pkg/policy.cc:269
-msgid "Invalid record in the preferences file, no Package header"
-msgstr ""
-
-#: apt-pkg/policy.cc:291
-#, c-format
-msgid "Did not understand pin type %s"
-msgstr ""
-
-#: apt-pkg/policy.cc:299
-msgid "No priority (or zero) specified for pin"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:74
-msgid "Cache has an incompatible versioning system"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:117
-#, c-format
-msgid "Error occurred while processing %s (NewPackage)"
-msgstr "حدث خطأ أثناء معالجة %s (NewPackage)"
-
-#: apt-pkg/pkgcachegen.cc:129
-#, c-format
-msgid "Error occurred while processing %s (UsePackage1)"
-msgstr "حدث خطأ أثناء معالجة %s (UserPackage1)"
-
-#: apt-pkg/pkgcachegen.cc:150
-#, c-format
-msgid "Error occurred while processing %s (UsePackage2)"
-msgstr "حدث خطأ أثناء معالجة %s (UserPackage2)"
-
-#: apt-pkg/pkgcachegen.cc:154
-#, c-format
-msgid "Error occurred while processing %s (NewFileVer1)"
-msgstr "حدث خطأ أثناء معالجة %s (NewFileVer1)"
-
-#: apt-pkg/pkgcachegen.cc:184
-#, c-format
-msgid "Error occurred while processing %s (NewVersion1)"
-msgstr "حدث خطأ أثناء معالجة %s (NewVersion1)"
-
-#: apt-pkg/pkgcachegen.cc:188
-#, c-format
-msgid "Error occurred while processing %s (UsePackage3)"
-msgstr "حدث خطأ أثناء معالجة %s (UsePackage3)"
-
-#: apt-pkg/pkgcachegen.cc:192
-#, c-format
-msgid "Error occurred while processing %s (NewVersion2)"
-msgstr "حدث خطأ أثناء معالجة %s (NewVersion2)"
-
-#: apt-pkg/pkgcachegen.cc:207
-msgid "Wow, you exceeded the number of package names this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:210
-msgid "Wow, you exceeded the number of versions this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:213
-msgid "Wow, you exceeded the number of dependencies this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:241
-#, c-format
-msgid "Error occurred while processing %s (FindPkg)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:254
-#, c-format
-msgid "Error occurred while processing %s (CollectFileProvides)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:260
-#, c-format
-msgid "Package %s %s was not found while processing file dependencies"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:574
-#, c-format
-msgid "Couldn't stat source package list %s"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:658
-msgid "Collecting File Provides"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
-msgid "IO Error saving source cache"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:126
-#, c-format
-msgid "rename failed, %s (%s -> %s)."
-msgstr "فشل إعادة التسمية ، %s (%s -> %s)."
-
-#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945
-msgid "MD5Sum mismatch"
-msgstr "MD5Sum غير متطابقة"
-
-#: apt-pkg/acquire-item.cc:640
-msgid "There is no public key available for the following key IDs:\n"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:753
-#, c-format
-msgid ""
-"I wasn't able to locate a file for the %s package. This might mean you need "
-"to manually fix this package. (due to missing arch)"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:812
-#, c-format
-msgid ""
-"I wasn't able to locate file for the %s package. This might mean you need to "
-"manually fix this package."
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:848
-#, c-format
-msgid ""
-"The package index files are corrupted. No Filename: field for package %s."
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:935
-msgid "Size mismatch"
-msgstr "الحجم غير متطابق"
-
-#: apt-pkg/vendorlist.cc:66
-#, c-format
-msgid "Vendor block %s contains no fingerprint"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:507
-#, c-format
-msgid ""
-"Using CD-ROM mount point %s\n"
-"Mounting CD-ROM\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598
-msgid "Identifying.. "
-msgstr "جاري التعرف..."
-
-#: apt-pkg/cdrom.cc:541
-#, c-format
-msgid "Stored label: %s \n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:561
-#, c-format
-msgid "Using CD-ROM mount point %s\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:579
-msgid "Unmounting CD-ROM\n"
-msgstr "فك تركيب القرص المدمج\n"
-
-#: apt-pkg/cdrom.cc:583
-msgid "Waiting for disc...\n"
-msgstr "بانتظار القرص...\n"
-
-#. Mount the new CDROM
-#: apt-pkg/cdrom.cc:591
-msgid "Mounting CD-ROM...\n"
-msgstr "تركيب القرص...\n"
-
-#: apt-pkg/cdrom.cc:609
-msgid "Scanning disc for index files..\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:647
-#, c-format
-msgid "Found %i package indexes, %i source indexes and %i signatures\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:710
-msgid "That is not a valid name, try again.\n"
-msgstr "هذا الاسم غير صالح، حاول مجدداً.\n"
-
-#: apt-pkg/cdrom.cc:726
-#, c-format
-msgid ""
-"This disc is called: \n"
-"'%s'\n"
-msgstr ""
-"هذا القرص مسمى: \n"
-"'%s'\n"
-
-#: apt-pkg/cdrom.cc:730
-msgid "Copying package lists..."
-msgstr "نسخ قوائم الحزم..."
-
-#: apt-pkg/cdrom.cc:754
-msgid "Writing new source list\n"
-msgstr "كتابة لائحة المصادر الجديدة\n"
-
-#: apt-pkg/cdrom.cc:763
-msgid "Source list entries for this disc are:\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:803
-msgid "Unmounting CD-ROM..."
-msgstr "فك تركيب القرص المدمج..."
-
-#: apt-pkg/indexcopy.cc:261
-#, c-format
-msgid "Wrote %i records.\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:263
-#, c-format
-msgid "Wrote %i records with %i missing files.\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:266
-#, c-format
-msgid "Wrote %i records with %i mismatched files\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:269
-#, c-format
-msgid "Wrote %i records with %i missing files and %i mismatched files\n"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:358
-#, c-format
-msgid "Preparing %s"
-msgstr "تحضير %s"
-
-#: apt-pkg/deb/dpkgpm.cc:359
-#, c-format
-msgid "Unpacking %s"
-msgstr "فتح %s"
-
-#: apt-pkg/deb/dpkgpm.cc:364
-#, c-format
-msgid "Preparing to configure %s"
-msgstr "التحضير لتهيئة %s"
-
-#: apt-pkg/deb/dpkgpm.cc:365
-#, c-format
-msgid "Configuring %s"
-msgstr "تهيئة %s"
-
-#: apt-pkg/deb/dpkgpm.cc:366
-#, c-format
-msgid "Installed %s"
-msgstr "تم تثبيت %s"
-
-#: apt-pkg/deb/dpkgpm.cc:371
-#, c-format
-msgid "Preparing for removal of %s"
-msgstr "التحضير لإزالة %s"
-
-#: apt-pkg/deb/dpkgpm.cc:372
-#, c-format
-msgid "Removing %s"
-msgstr "إزالة %s"
-
-#: apt-pkg/deb/dpkgpm.cc:373
-#, c-format
-msgid "Removed %s"
-msgstr "تم إزالة %s"
-
-#: apt-pkg/deb/dpkgpm.cc:378
-#, c-format
-msgid "Preparing to completely remove %s"
-msgstr "التحضير لإزالة %s بالكامل"
-
-#: apt-pkg/deb/dpkgpm.cc:379
-#, c-format
-msgid "Completely removed %s"
-msgstr "تمت إزالة %s بالكامل"
-
-#: methods/rsh.cc:330
-msgid "Connection closed prematurely"
-msgstr ""
-
-#~ msgid "File date has changed %s"
-#~ msgstr "تغير تاريخ الملف %s"
diff --git a/po/ku.po b/po/ku.po
deleted file mode 100644
index b6b13c8b1..000000000
--- a/po/ku.po
+++ /dev/null
@@ -1,2665 +0,0 @@
-# Kurdish translation for apt
-# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006
-# This file is distributed under the same license as the apt package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: apt\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-07-06 06:51+0200\n"
-"PO-Revision-Date: 2006-09-16 17:51+0100\n"
-"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n"
-"Language-Team: Kurdish <ku@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: cmdline/apt-cache.cc:143
-#, c-format
-msgid "Package %s version %s has an unmet dep:\n"
-msgstr ""
-
-#: cmdline/apt-cache.cc:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640
-#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018
-#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570
-#, c-format
-msgid "Unable to locate package %s"
-msgstr "Pakêt nehate dîtin %s"
-
-#: cmdline/apt-cache.cc:247
-msgid "Total package names : "
-msgstr "Navên paketan bi giştî :"
-
-#: cmdline/apt-cache.cc:287
-msgid " Normal packages: "
-msgstr " Pakêtên normal:"
-
-#: cmdline/apt-cache.cc:288
-msgid " Pure virtual packages: "
-msgstr " Pakêtên farazî yên safî:"
-
-#: cmdline/apt-cache.cc:289
-msgid " Single virtual packages: "
-msgstr " Pakêta tenê ya farazî:"
-
-#: cmdline/apt-cache.cc:290
-msgid " Mixed virtual packages: "
-msgstr " Pakêtên hevbeş yên farazî:"
-
-#: cmdline/apt-cache.cc:291
-msgid " Missing: "
-msgstr " Winda: "
-
-#: cmdline/apt-cache.cc:293
-msgid "Total distinct versions: "
-msgstr "Guhertoyên vekirî yên giştî:"
-
-#: cmdline/apt-cache.cc:295
-#, fuzzy
-msgid "Total Distinct Descriptions: "
-msgstr "Guhertoyên vekirî yên giştî:"
-
-#: cmdline/apt-cache.cc:297
-msgid "Total dependencies: "
-msgstr "Bindestên giştî:"
-
-#: cmdline/apt-cache.cc:300
-msgid "Total ver/file relations: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:302
-#, fuzzy
-msgid "Total Desc/File relations: "
-msgstr "Guhertoyên vekirî yên giştî:"
-
-#: cmdline/apt-cache.cc:304
-msgid "Total Provides mappings: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:316
-msgid "Total globbed strings: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:330
-msgid "Total dependency version space: "
-msgstr ""
-
-#: cmdline/apt-cache.cc:335
-msgid "Total slack space: "
-msgstr "Cihê giştî yê sist:"
-
-#: cmdline/apt-cache.cc:343
-msgid "Total space accounted for: "
-msgstr "Cihê giştî yê veqetandî: "
-
-#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218
-#, c-format
-msgid "Package file %s is out of sync."
-msgstr "Pakêta dosya %s li derveyî demê ye."
-
-#: cmdline/apt-cache.cc:1293
-msgid "You must give exactly one pattern"
-msgstr "Pêwist e tu mînakekê bidî"
-
-#: cmdline/apt-cache.cc:1447
-msgid "No packages found"
-msgstr "Pakêt nayên dîtin"
-
-#: cmdline/apt-cache.cc:1524
-msgid "Package files:"
-msgstr "Pelgehên Pakêt:"
-
-#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617
-msgid "Cache is out of sync, can't x-ref a package file"
-msgstr ""
-
-#: cmdline/apt-cache.cc:1532
-#, c-format
-msgid "%4i %s\n"
-msgstr "%4i %s\n"
-
-#. Show any packages have explicit pins
-#: cmdline/apt-cache.cc:1544
-msgid "Pinned packages:"
-msgstr ""
-
-#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597
-msgid "(not found)"
-msgstr "(nehate dîtin)"
-
-#. Installed version
-#: cmdline/apt-cache.cc:1577
-msgid " Installed: "
-msgstr " Sazkirî: "
-
-#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587
-msgid "(none)"
-msgstr "(ne tiştek)"
-
-#. Candidate Version
-#: cmdline/apt-cache.cc:1584
-msgid " Candidate: "
-msgstr " Berendam: "
-
-#: cmdline/apt-cache.cc:1594
-msgid " Package pin: "
-msgstr " Destika pakêtê:"
-
-#. Show the priority tables
-#: cmdline/apt-cache.cc:1603
-msgid " Version table:"
-msgstr " Tabloya guhertoyan:"
-
-#: cmdline/apt-cache.cc:1618
-#, c-format
-msgid " %4i %s\n"
-msgstr " %4i %s\n"
-
-#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
-#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2584 cmdline/apt-sortpkgs.cc:144
-#, c-format
-msgid "%s %s for %s %s compiled on %s %s\n"
-msgstr "%s %s ji bo %s %s komkirî di %s %s de\n"
-
-#: cmdline/apt-cache.cc:1721
-msgid ""
-"Usage: apt-cache [options] command\n"
-" apt-cache [options] add file1 [file2 ...]\n"
-" apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
-" apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
-"\n"
-"apt-cache is a low-level tool used to manipulate APT's binary\n"
-"cache files, and query information from them\n"
-"\n"
-"Commands:\n"
-" add - Add a package file to the source cache\n"
-" gencaches - Build both the package and source cache\n"
-" showpkg - Show some general information for a single package\n"
-" showsrc - Show source records\n"
-" stats - Show some basic statistics\n"
-" dump - Show the entire file in a terse form\n"
-" dumpavail - Print an available file to stdout\n"
-" unmet - Show unmet dependencies\n"
-" search - Search the package list for a regex pattern\n"
-" show - Show a readable record for the package\n"
-" depends - Show raw dependency information for a package\n"
-" rdepends - Show reverse dependency information for a package\n"
-" pkgnames - List the names of all packages\n"
-" dotty - Generate package graphs for GraphVis\n"
-" xvcg - Generate package graphs for xvcg\n"
-" policy - Show policy settings\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -p=? The package cache.\n"
-" -s=? The source cache.\n"
-" -q Disable progress indicator.\n"
-" -i Show only important deps for the unmet command.\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"
-msgstr ""
-
-#: cmdline/apt-cdrom.cc:78
-msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'"
-msgstr "Ji kerema xwe re navekî li vî Dîsketî bike, wekî 'Debian 2.1r1 Disk 1'"
-
-#: cmdline/apt-cdrom.cc:93
-msgid "Please insert a Disc in the drive and press enter"
-msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne"
-
-#: cmdline/apt-cdrom.cc:117
-msgid "Repeat this process for the rest of the CDs in your set."
-msgstr ""
-
-#: cmdline/apt-config.cc:41
-msgid "Arguments not in pairs"
-msgstr ""
-
-#: cmdline/apt-config.cc:76
-msgid ""
-"Usage: apt-config [options] command\n"
-"\n"
-"apt-config is a simple tool to read the APT config file\n"
-"\n"
-"Commands:\n"
-" shell - Shell mode\n"
-" dump - Show the configuration\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-"Bikaranîn: apt-config [vebijark] ferman\n"
-"apt-config, amûra xwendina dosyeya mîhengên APTê ye\n"
-"\n"
-"Ferman\n"
-" shell - moda shell\n"
-" dump - Mîhengan nîşan dide\n"
-"\n"
-"Vebijark:\n"
-" -h Ev dosyeya alîkariyê ye.\n"
-" -c=? Dosyeya mîhengan nîşan dide\n"
-" -o=? Rê li ber vedike ku tu karibe li gorî dilê xwe vebijarkan diyar bike. "
-"mînak -o dir::cache=/tmp\n"
-
-#: cmdline/apt-extracttemplates.cc:98
-#, c-format
-msgid "%s not a valid DEB package."
-msgstr "%s ne paketeke DEB ya derbasdar e."
-
-#: cmdline/apt-extracttemplates.cc:232
-msgid ""
-"Usage: apt-extracttemplates file1 [file2 ...]\n"
-"\n"
-"apt-extracttemplates is a tool to extract config and template info\n"
-"from debian packages\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" -t Set the temp dir\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-
-#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:815
-#, c-format
-msgid "Unable to write to %s"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: cmdline/apt-extracttemplates.cc:310
-msgid "Cannot get debconf version. Is debconf installed?"
-msgstr "Guhertoya debconf nehate stendin. debconf sazkirî ye?"
-
-#: ftparchive/apt-ftparchive.cc:164 ftparchive/apt-ftparchive.cc:338
-msgid "Package extension list is too long"
-msgstr "Lîsteya dirêjahiya pakêtê zêde dirêj e"
-
-#: ftparchive/apt-ftparchive.cc:166 ftparchive/apt-ftparchive.cc:180
-#: ftparchive/apt-ftparchive.cc:203 ftparchive/apt-ftparchive.cc:253
-#: ftparchive/apt-ftparchive.cc:267 ftparchive/apt-ftparchive.cc:289
-#, c-format
-msgid "Error processing directory %s"
-msgstr "Di şixulandina pêrista %s de çewtî"
-
-#: ftparchive/apt-ftparchive.cc:251
-msgid "Source extension list is too long"
-msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e"
-
-#: ftparchive/apt-ftparchive.cc:368
-msgid "Error writing header to contents file"
-msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî"
-
-#: ftparchive/apt-ftparchive.cc:398
-#, c-format
-msgid "Error processing contents %s"
-msgstr "Dema şixulandina naveroka %s çewtî"
-
-#: ftparchive/apt-ftparchive.cc:553
-msgid ""
-"Usage: apt-ftparchive [options] command\n"
-"Commands: packages binarypath [overridefile [pathprefix]]\n"
-" sources srcpath [overridefile [pathprefix]]\n"
-" contents path\n"
-" release path\n"
-" generate config [groups]\n"
-" clean config\n"
-"\n"
-"apt-ftparchive generates index files for Debian archives. It supports\n"
-"many styles of generation from fully automated to functional replacements\n"
-"for dpkg-scanpackages and dpkg-scansources\n"
-"\n"
-"apt-ftparchive generates Package files from a tree of .debs. The\n"
-"Package file contains the contents of all the control fields from\n"
-"each package as well as the MD5 hash and filesize. An override file\n"
-"is supported to force the value of Priority and Section.\n"
-"\n"
-"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n"
-"The --source-override option can be used to specify a src override file\n"
-"\n"
-"The 'packages' and 'sources' command should be run in the root of the\n"
-"tree. BinaryPath should point to the base of the recursive search and \n"
-"override file should contain the override flags. Pathprefix is\n"
-"appended to the filename fields if present. Example usage from the \n"
-"Debian archive:\n"
-" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
-" dists/potato/main/binary-i386/Packages\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" --md5 Control MD5 generation\n"
-" -s=? Source override file\n"
-" -q Quiet\n"
-" -d=? Select the optional caching database\n"
-" --no-delink Enable delinking debug mode\n"
-" --contents Control contents file generation\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:759
-msgid "No selections matched"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:832
-#, c-format
-msgid "Some files are missing in the package file group `%s'"
-msgstr "Di koma pelgehên pakêta '%s' de hin pelgeh kêm in"
-
-#: ftparchive/cachedb.cc:43
-#, c-format
-msgid "DB was corrupted, file renamed to %s.old"
-msgstr "DB xerabe ye, navê dosyeyê weke %s.old hate guherandin"
-
-#: ftparchive/cachedb.cc:61
-#, c-format
-msgid "DB is old, attempting to upgrade %s"
-msgstr "Danegir kevn e, ji bo bilindkirina %s hewl dide"
-
-#: ftparchive/cachedb.cc:72
-msgid ""
-"DB format is invalid. If you upgraded from a older version of apt, please "
-"remove and re-create the database."
-msgstr ""
-
-#: ftparchive/cachedb.cc:77
-#, c-format
-msgid "Unable to open DB file %s: %s"
-msgstr "Danegira %s nehate vekirin: %s"
-
-#: ftparchive/cachedb.cc:123 apt-inst/extract.cc:178 apt-inst/extract.cc:190
-#: apt-inst/extract.cc:207 apt-inst/deb/dpkgdb.cc:117 methods/gpgv.cc:272
-#, c-format
-msgid "Failed to stat %s"
-msgstr ""
-
-#: ftparchive/cachedb.cc:238
-msgid "Archive has no control record"
-msgstr "Tomara kontrola arşîvê tuneye"
-
-#: ftparchive/cachedb.cc:444
-msgid "Unable to get a cursor"
-msgstr ""
-
-#: ftparchive/writer.cc:75
-#, c-format
-msgid "W: Unable to read directory %s\n"
-msgstr "W: pelrêça %s nayê xwendin\n"
-
-#: ftparchive/writer.cc:80
-#, c-format
-msgid "W: Unable to stat %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:131
-msgid "E: "
-msgstr "E: "
-
-#: ftparchive/writer.cc:133
-msgid "W: "
-msgstr "W: "
-
-#: ftparchive/writer.cc:140
-msgid "E: Errors apply to file "
-msgstr ""
-
-#: ftparchive/writer.cc:157 ftparchive/writer.cc:187
-#, c-format
-msgid "Failed to resolve %s"
-msgstr "%s ji hev nehate veçirandin"
-
-#: ftparchive/writer.cc:169
-msgid "Tree walking failed"
-msgstr ""
-
-#: ftparchive/writer.cc:194
-#, c-format
-msgid "Failed to open %s"
-msgstr "%s venebû"
-
-#: ftparchive/writer.cc:253
-#, c-format
-msgid " DeLink %s [%s]\n"
-msgstr ""
-
-#: ftparchive/writer.cc:261
-#, c-format
-msgid "Failed to readlink %s"
-msgstr ""
-
-#: ftparchive/writer.cc:265
-#, c-format
-msgid "Failed to unlink %s"
-msgstr ""
-
-#: ftparchive/writer.cc:272
-#, c-format
-msgid "*** Failed to link %s to %s"
-msgstr ""
-
-#: ftparchive/writer.cc:282
-#, c-format
-msgid " DeLink limit of %sB hit.\n"
-msgstr ""
-
-#: ftparchive/writer.cc:386
-msgid "Archive had no package field"
-msgstr "Di arşîvê de qada pakêtê tuneye"
-
-#: ftparchive/writer.cc:394 ftparchive/writer.cc:609
-#, c-format
-msgid " %s has no override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:439 ftparchive/writer.cc:697
-#, c-format
-msgid " %s maintainer is %s not %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:619
-#, c-format
-msgid " %s has no source override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:623
-#, c-format
-msgid " %s has no binary override entry either\n"
-msgstr ""
-
-#: ftparchive/contents.cc:317
-#, c-format
-msgid "Internal error, could not locate member %s"
-msgstr ""
-
-#: ftparchive/contents.cc:353 ftparchive/contents.cc:384
-msgid "realloc - Failed to allocate memory"
-msgstr ""
-
-#: ftparchive/override.cc:34 ftparchive/override.cc:142
-#, c-format
-msgid "Unable to open %s"
-msgstr "%s venebû"
-
-#: ftparchive/override.cc:60 ftparchive/override.cc:166
-#, c-format
-msgid "Malformed override %s line %lu #1"
-msgstr ""
-
-#: ftparchive/override.cc:74 ftparchive/override.cc:178
-#, c-format
-msgid "Malformed override %s line %lu #2"
-msgstr ""
-
-#: ftparchive/override.cc:88 ftparchive/override.cc:191
-#, c-format
-msgid "Malformed override %s line %lu #3"
-msgstr ""
-
-#: ftparchive/override.cc:127 ftparchive/override.cc:201
-#, c-format
-msgid "Failed to read the override file %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:71
-#, c-format
-msgid "Unknown compression algorithm '%s'"
-msgstr ""
-
-#: ftparchive/multicompress.cc:101
-#, c-format
-msgid "Compressed output %s needs a compression set"
-msgstr ""
-
-#: ftparchive/multicompress.cc:168 methods/rsh.cc:91
-msgid "Failed to create IPC pipe to subprocess"
-msgstr ""
-
-#: ftparchive/multicompress.cc:194
-msgid "Failed to create FILE*"
-msgstr ""
-
-#: ftparchive/multicompress.cc:197
-msgid "Failed to fork"
-msgstr ""
-
-#: ftparchive/multicompress.cc:211
-msgid "Compress child"
-msgstr ""
-
-#: ftparchive/multicompress.cc:234
-#, c-format
-msgid "Internal error, failed to create %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:285
-msgid "Failed to create subprocess IPC"
-msgstr ""
-
-#: ftparchive/multicompress.cc:320
-msgid "Failed to exec compressor "
-msgstr ""
-
-#: ftparchive/multicompress.cc:359
-msgid "decompressor"
-msgstr ""
-
-#: ftparchive/multicompress.cc:402
-msgid "IO to subprocess/file failed"
-msgstr ""
-
-#: ftparchive/multicompress.cc:454
-msgid "Failed to read while computing MD5"
-msgstr ""
-
-#: ftparchive/multicompress.cc:471
-#, c-format
-msgid "Problem unlinking %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:486 apt-inst/extract.cc:185
-#, c-format
-msgid "Failed to rename %s to %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:121
-msgid "Y"
-msgstr "E"
-
-#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1672
-#, c-format
-msgid "Regex compilation error - %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:238
-msgid "The following packages have unmet dependencies:"
-msgstr ""
-
-#: cmdline/apt-get.cc:328
-#, c-format
-msgid "but %s is installed"
-msgstr "lê %s sazkirî ye"
-
-#: cmdline/apt-get.cc:330
-#, c-format
-msgid "but %s is to be installed"
-msgstr "lê %s dê were sazkirin"
-
-#: cmdline/apt-get.cc:337
-msgid "but it is not installable"
-msgstr "lê sazkirina wê ne gengaz e"
-
-#: cmdline/apt-get.cc:339
-msgid "but it is a virtual package"
-msgstr "lê paketeke farazî ye"
-
-#: cmdline/apt-get.cc:342
-msgid "but it is not installed"
-msgstr "lê ne sazkirî ye"
-
-#: cmdline/apt-get.cc:342
-msgid "but it is not going to be installed"
-msgstr "lê dê neyê sazkirin"
-
-#: cmdline/apt-get.cc:347
-msgid " or"
-msgstr " û"
-
-#: cmdline/apt-get.cc:376
-msgid "The following NEW packages will be installed:"
-msgstr "Ev pakêtên NÛ dê werine sazkirin:"
-
-#: cmdline/apt-get.cc:402
-msgid "The following packages will be REMOVED:"
-msgstr "Ev pakêt dê werine RAKIRIN:"
-
-#: cmdline/apt-get.cc:424
-msgid "The following packages have been kept back:"
-msgstr ""
-
-#: cmdline/apt-get.cc:445
-msgid "The following packages will be upgraded:"
-msgstr "Ev paket dê werine bilindkirin:"
-
-#: cmdline/apt-get.cc:466
-msgid "The following packages will be DOWNGRADED:"
-msgstr ""
-
-#: cmdline/apt-get.cc:486
-msgid "The following held packages will be changed:"
-msgstr ""
-
-#: cmdline/apt-get.cc:539
-#, c-format
-msgid "%s (due to %s) "
-msgstr "%s (ji ber %s)"
-
-#: cmdline/apt-get.cc:547
-msgid ""
-"WARNING: The following essential packages will be removed.\n"
-"This should NOT be done unless you know exactly what you are doing!"
-msgstr ""
-
-#: cmdline/apt-get.cc:578
-#, c-format
-msgid "%lu upgraded, %lu newly installed, "
-msgstr ""
-
-#: cmdline/apt-get.cc:582
-#, c-format
-msgid "%lu reinstalled, "
-msgstr "%lu ji nû ve sazkirî"
-
-#: cmdline/apt-get.cc:584
-#, c-format
-msgid "%lu downgraded, "
-msgstr ""
-
-#: cmdline/apt-get.cc:586
-#, c-format
-msgid "%lu to remove and %lu not upgraded.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:590
-#, c-format
-msgid "%lu not fully installed or removed.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:664
-msgid "Correcting dependencies..."
-msgstr "Bindestî tên serrastkirin..."
-
-#: cmdline/apt-get.cc:667
-msgid " failed."
-msgstr " neserketî."
-
-#: cmdline/apt-get.cc:670
-msgid "Unable to correct dependencies"
-msgstr ""
-
-#: cmdline/apt-get.cc:673
-msgid "Unable to minimize the upgrade set"
-msgstr ""
-
-#: cmdline/apt-get.cc:675
-msgid " Done"
-msgstr " Temam"
-
-#: cmdline/apt-get.cc:679
-msgid "You might want to run `apt-get -f install' to correct these."
-msgstr ""
-
-#: cmdline/apt-get.cc:682
-msgid "Unmet dependencies. Try using -f."
-msgstr ""
-
-#: cmdline/apt-get.cc:704
-msgid "WARNING: The following packages cannot be authenticated!"
-msgstr ""
-
-#: cmdline/apt-get.cc:708
-msgid "Authentication warning overridden.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:715
-msgid "Install these packages without verification [y/N]? "
-msgstr ""
-
-#: cmdline/apt-get.cc:717
-msgid "Some packages could not be authenticated"
-msgstr ""
-
-#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873
-msgid "There are problems and -y was used without --force-yes"
-msgstr ""
-
-#: cmdline/apt-get.cc:770
-msgid "Internal error, InstallPackages was called with broken packages!"
-msgstr ""
-
-#: cmdline/apt-get.cc:779
-msgid "Packages need to be removed but remove is disabled."
-msgstr ""
-
-#: cmdline/apt-get.cc:790
-msgid "Internal error, Ordering didn't finish"
-msgstr ""
-
-#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:2010 cmdline/apt-get.cc:2043
-msgid "Unable to lock the download directory"
-msgstr "Pelrêça daxistinê nayê quflekirin"
-
-#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2091 cmdline/apt-get.cc:2332
-#: apt-pkg/cachefile.cc:63
-msgid "The list of sources could not be read."
-msgstr ""
-
-#: cmdline/apt-get.cc:831
-msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
-msgstr ""
-
-#: cmdline/apt-get.cc:836
-#, c-format
-msgid "Need to get %sB/%sB of archives.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:839
-#, c-format
-msgid "Need to get %sB of archives.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:844
-#, c-format
-msgid "After unpacking %sB of additional disk space will be used.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:847
-#, c-format
-msgid "After unpacking %sB disk space will be freed.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2186
-#, c-format
-msgid "Couldn't determine free space in %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:864
-#, c-format
-msgid "You don't have enough free space in %s."
-msgstr ""
-
-#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899
-msgid "Trivial Only specified but this is not a trivial operation."
-msgstr ""
-
-#: cmdline/apt-get.cc:881
-msgid "Yes, do as I say!"
-msgstr ""
-
-#: cmdline/apt-get.cc:883
-#, c-format
-msgid ""
-"You are about to do something potentially harmful.\n"
-"To continue type in the phrase '%s'\n"
-" ?] "
-msgstr ""
-
-#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908
-msgid "Abort."
-msgstr ""
-
-#: cmdline/apt-get.cc:904
-msgid "Do you want to continue [Y/n]? "
-msgstr ""
-
-#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2229
-#, c-format
-msgid "Failed to fetch %s %s\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:994
-msgid "Some files failed to download"
-msgstr ""
-
-#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2238
-msgid "Download complete and in download only mode"
-msgstr ""
-
-#: cmdline/apt-get.cc:1001
-msgid ""
-"Unable to fetch some archives, maybe run apt-get update or try with --fix-"
-"missing?"
-msgstr ""
-
-#: cmdline/apt-get.cc:1005
-msgid "--fix-missing and media swapping is not currently supported"
-msgstr ""
-
-#: cmdline/apt-get.cc:1010
-msgid "Unable to correct missing packages."
-msgstr ""
-
-#: cmdline/apt-get.cc:1011
-msgid "Aborting install."
-msgstr ""
-
-#: cmdline/apt-get.cc:1045
-#, c-format
-msgid "Note, selecting %s instead of %s\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1055
-#, c-format
-msgid "Skipping %s, it is already installed and upgrade is not set.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1073
-#, c-format
-msgid "Package %s is not installed, so not removed\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1084
-#, c-format
-msgid "Package %s is a virtual package provided by:\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1096
-msgid " [Installed]"
-msgstr " [Sazkirî]"
-
-#: cmdline/apt-get.cc:1101
-msgid "You should explicitly select one to install."
-msgstr ""
-
-#: cmdline/apt-get.cc:1106
-#, c-format
-msgid ""
-"Package %s is not available, but is referred to by another package.\n"
-"This may mean that the package is missing, has been obsoleted, or\n"
-"is only available from another source\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1125
-msgid "However the following packages replace it:"
-msgstr ""
-
-#: cmdline/apt-get.cc:1128
-#, c-format
-msgid "Package %s has no installation candidate"
-msgstr ""
-
-#: cmdline/apt-get.cc:1148
-#, c-format
-msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1156
-#, c-format
-msgid "%s is already the newest version.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1185
-#, c-format
-msgid "Release '%s' for '%s' was not found"
-msgstr ""
-
-#: cmdline/apt-get.cc:1187
-#, c-format
-msgid "Version '%s' for '%s' was not found"
-msgstr ""
-
-#: cmdline/apt-get.cc:1193
-#, c-format
-msgid "Selected version %s (%s) for %s\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1330
-msgid "The update command takes no arguments"
-msgstr ""
-
-#: cmdline/apt-get.cc:1343
-msgid "Unable to lock the list directory"
-msgstr ""
-
-#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412
-msgid ""
-"Some index files failed to download, they have been ignored, or old ones "
-"used instead."
-msgstr ""
-
-#: cmdline/apt-get.cc:1433
-msgid "We are not supposed to delete stuff, can't start AutoRemover"
-msgstr ""
-
-#: cmdline/apt-get.cc:1465
-#, fuzzy
-msgid ""
-"The following packages were automatically installed and are no longer "
-"required:"
-msgstr "Ev pakêtên NÛ dê werine sazkirin:"
-
-#: cmdline/apt-get.cc:1467
-msgid "Use 'apt-get autoremove' to remove them."
-msgstr ""
-
-#: cmdline/apt-get.cc:1472
-msgid ""
-"Hmm, seems like the AutoRemover destroyed something which really\n"
-"shouldn't happen. Please file a bug report against apt."
-msgstr ""
-
-#: cmdline/apt-get.cc:1475 cmdline/apt-get.cc:1753
-msgid "The following information may help to resolve the situation:"
-msgstr ""
-
-#: cmdline/apt-get.cc:1479
-msgid "Internal Error, AutoRemover broke stuff"
-msgstr ""
-
-#: cmdline/apt-get.cc:1498
-msgid "Internal error, AllUpgrade broke stuff"
-msgstr ""
-
-#: cmdline/apt-get.cc:1544
-#, fuzzy, c-format
-msgid "Couldn't find task %s"
-msgstr "Danegira %s nehate vekirin: %s"
-
-#: cmdline/apt-get.cc:1659 cmdline/apt-get.cc:1695
-#, c-format
-msgid "Couldn't find package %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:1682
-#, c-format
-msgid "Note, selecting %s for regex '%s'\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:1712
-#, fuzzy, c-format
-msgid "%s set to manual installed.\n"
-msgstr "lê %s dê were sazkirin"
-
-#: cmdline/apt-get.cc:1725
-msgid "You might want to run `apt-get -f install' to correct these:"
-msgstr ""
-
-#: cmdline/apt-get.cc:1728
-msgid ""
-"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
-"solution)."
-msgstr ""
-
-#: cmdline/apt-get.cc:1740
-msgid ""
-"Some packages could not be installed. This may mean that you have\n"
-"requested an impossible situation or if you are using the unstable\n"
-"distribution that some required packages have not yet been created\n"
-"or been moved out of Incoming."
-msgstr ""
-
-#: cmdline/apt-get.cc:1748
-msgid ""
-"Since you only requested a single operation it is extremely likely that\n"
-"the package is simply not installable and a bug report against\n"
-"that package should be filed."
-msgstr ""
-
-#: cmdline/apt-get.cc:1756
-msgid "Broken packages"
-msgstr "Paketên şikestî"
-
-#: cmdline/apt-get.cc:1785
-msgid "The following extra packages will be installed:"
-msgstr ""
-
-#: cmdline/apt-get.cc:1874
-msgid "Suggested packages:"
-msgstr "Paketên tên pêşniyaz kirin:"
-
-#: cmdline/apt-get.cc:1875
-msgid "Recommended packages:"
-msgstr "Paketên tên tawsiyê kirin:"
-
-#: cmdline/apt-get.cc:1903
-msgid "Calculating upgrade... "
-msgstr ""
-
-#: cmdline/apt-get.cc:1906 methods/ftp.cc:702 methods/connect.cc:101
-msgid "Failed"
-msgstr "Serneket"
-
-#: cmdline/apt-get.cc:1911
-msgid "Done"
-msgstr "Temam"
-
-#: cmdline/apt-get.cc:1978 cmdline/apt-get.cc:1986
-msgid "Internal error, problem resolver broke stuff"
-msgstr ""
-
-#: cmdline/apt-get.cc:2086
-msgid "Must specify at least one package to fetch source for"
-msgstr ""
-
-#: cmdline/apt-get.cc:2116 cmdline/apt-get.cc:2350
-#, c-format
-msgid "Unable to find a source package for %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:2165
-#, c-format
-msgid "Skipping already downloaded file '%s'\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2189
-#, c-format
-msgid "You don't have enough free space in %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:2194
-#, c-format
-msgid "Need to get %sB/%sB of source archives.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2197
-#, c-format
-msgid "Need to get %sB of source archives.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2203
-#, c-format
-msgid "Fetch source %s\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2234
-msgid "Failed to fetch some archives."
-msgstr ""
-
-#: cmdline/apt-get.cc:2262
-#, c-format
-msgid "Skipping unpack of already unpacked source in %s\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2274
-#, c-format
-msgid "Unpack command '%s' failed.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2275
-#, c-format
-msgid "Check if the 'dpkg-dev' package is installed.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2292
-#, c-format
-msgid "Build command '%s' failed.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2311
-msgid "Child process failed"
-msgstr ""
-
-#: cmdline/apt-get.cc:2327
-msgid "Must specify at least one package to check builddeps for"
-msgstr ""
-
-#: cmdline/apt-get.cc:2355
-#, c-format
-msgid "Unable to get build-dependency information for %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:2375
-#, c-format
-msgid "%s has no build depends.\n"
-msgstr ""
-
-#: cmdline/apt-get.cc:2427
-#, c-format
-msgid ""
-"%s dependency for %s cannot be satisfied because the package %s cannot be "
-"found"
-msgstr ""
-
-#: cmdline/apt-get.cc:2479
-#, c-format
-msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
-msgstr ""
-
-#: cmdline/apt-get.cc:2514
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-
-#: cmdline/apt-get.cc:2539
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: %s"
-msgstr ""
-
-#: cmdline/apt-get.cc:2553
-#, c-format
-msgid "Build-dependencies for %s could not be satisfied."
-msgstr ""
-
-#: cmdline/apt-get.cc:2557
-msgid "Failed to process build dependencies"
-msgstr ""
-
-#: cmdline/apt-get.cc:2589
-msgid "Supported modules:"
-msgstr ""
-
-#: cmdline/apt-get.cc:2630
-msgid ""
-"Usage: apt-get [options] command\n"
-" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
-" apt-get [options] source pkg1 [pkg2 ...]\n"
-"\n"
-"apt-get is a simple command line interface for downloading and\n"
-"installing packages. The most frequently used commands are update\n"
-"and install.\n"
-"\n"
-"Commands:\n"
-" update - Retrieve new lists of packages\n"
-" upgrade - Perform an upgrade\n"
-" install - Install new packages (pkg is libc6 not libc6.deb)\n"
-" remove - Remove packages\n"
-" purge - Remove and purge packages\n"
-" source - Download source archives\n"
-" build-dep - Configure build-dependencies for source packages\n"
-" dist-upgrade - Distribution upgrade, see apt-get(8)\n"
-" dselect-upgrade - Follow dselect selections\n"
-" clean - Erase downloaded archive files\n"
-" autoclean - Erase old downloaded archive files\n"
-" check - Verify that there are no broken dependencies\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -q Loggable output - no progress indicator\n"
-" -qq No output except for errors\n"
-" -d Download only - do NOT install or unpack archives\n"
-" -s No-act. Perform ordering simulation\n"
-" -y Assume Yes to all queries and do not prompt\n"
-" -f Attempt to continue if the integrity check fails\n"
-" -m Attempt to continue if archives are unlocatable\n"
-" -u Show a list of upgraded packages as well\n"
-" -b Build the source package after fetching it\n"
-" -V Show verbose version numbers\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n"
-"pages for more information and options.\n"
-" This APT has Super Cow Powers.\n"
-msgstr ""
-
-#: cmdline/acqprogress.cc:55
-msgid "Hit "
-msgstr ""
-
-#: cmdline/acqprogress.cc:79
-msgid "Get:"
-msgstr ""
-
-#: cmdline/acqprogress.cc:110
-msgid "Ign "
-msgstr ""
-
-#: cmdline/acqprogress.cc:114
-msgid "Err "
-msgstr ""
-
-#: cmdline/acqprogress.cc:135
-#, c-format
-msgid "Fetched %sB in %s (%sB/s)\n"
-msgstr ""
-
-#: cmdline/acqprogress.cc:225
-#, c-format
-msgid " [Working]"
-msgstr " [Dixebite]"
-
-#: cmdline/acqprogress.cc:271
-#, c-format
-msgid ""
-"Media change: please insert the disc labeled\n"
-" '%s'\n"
-"in the drive '%s' and press enter\n"
-msgstr ""
-
-#: cmdline/apt-sortpkgs.cc:86
-msgid "Unknown package record!"
-msgstr ""
-
-#: cmdline/apt-sortpkgs.cc:150
-msgid ""
-"Usage: apt-sortpkgs [options] file1 [file2 ...]\n"
-"\n"
-"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n"
-"to indicate what kind of file it is.\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" -s Use source file sorting\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-
-#: dselect/install:32
-msgid "Bad default setting!"
-msgstr ""
-
-#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93
-#: dselect/install:104 dselect/update:45
-msgid "Press enter to continue."
-msgstr ""
-
-#: dselect/install:100
-msgid "Some errors occurred while unpacking. I'm going to configure the"
-msgstr ""
-
-#: dselect/install:101
-msgid "packages that were installed. This may result in duplicate errors"
-msgstr ""
-
-#: dselect/install:102
-msgid "or errors caused by missing dependencies. This is OK, only the errors"
-msgstr ""
-
-#: dselect/install:103
-msgid ""
-"above this message are important. Please fix them and run [I]nstall again"
-msgstr ""
-
-#: dselect/update:30
-msgid "Merging available information"
-msgstr ""
-
-#: apt-inst/contrib/extracttar.cc:114
-#, fuzzy
-msgid "Failed to create pipes"
-msgstr "%s ji hev nehate veçirandin"
-
-#: apt-inst/contrib/extracttar.cc:141
-#, fuzzy
-msgid "Failed to exec gzip "
-msgstr "%s ji hev nehate veçirandin"
-
-#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204
-msgid "Corrupted archive"
-msgstr ""
-
-#: apt-inst/contrib/extracttar.cc:193
-msgid "Tar checksum failed, archive corrupted"
-msgstr ""
-
-#: apt-inst/contrib/extracttar.cc:296
-#, c-format
-msgid "Unknown TAR header type %u, member %s"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:70
-msgid "Invalid archive signature"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:78
-msgid "Error reading archive member header"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:90 apt-inst/contrib/arfile.cc:102
-msgid "Invalid archive member header"
-msgstr ""
-
-#: apt-inst/contrib/arfile.cc:128
-#, fuzzy
-msgid "Archive is too short"
-msgstr "Tomara kontrola arşîvê tuneye"
-
-#: apt-inst/contrib/arfile.cc:132
-msgid "Failed to read the archive headers"
-msgstr ""
-
-#: apt-inst/filelist.cc:380
-msgid "DropNode called on still linked node"
-msgstr ""
-
-#: apt-inst/filelist.cc:412
-msgid "Failed to locate the hash element!"
-msgstr ""
-
-#: apt-inst/filelist.cc:459
-#, fuzzy
-msgid "Failed to allocate diversion"
-msgstr "%s venebû"
-
-#: apt-inst/filelist.cc:464
-msgid "Internal error in AddDiversion"
-msgstr ""
-
-#: apt-inst/filelist.cc:477
-#, c-format
-msgid "Trying to overwrite a diversion, %s -> %s and %s/%s"
-msgstr ""
-
-#: apt-inst/filelist.cc:506
-#, c-format
-msgid "Double add of diversion %s -> %s"
-msgstr ""
-
-#: apt-inst/filelist.cc:549
-#, c-format
-msgid "Duplicate conf file %s/%s"
-msgstr ""
-
-#: apt-inst/dirstream.cc:41 apt-inst/dirstream.cc:46 apt-inst/dirstream.cc:49
-#, fuzzy, c-format
-msgid "Failed to write file %s"
-msgstr "%s ji hev nehate veçirandin"
-
-#: apt-inst/dirstream.cc:92 apt-inst/dirstream.cc:100
-#, fuzzy, c-format
-msgid "Failed to close file %s"
-msgstr "%s venebû"
-
-#: apt-inst/extract.cc:93 apt-inst/extract.cc:164
-#, fuzzy, c-format
-msgid "The path %s is too long"
-msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e"
-
-#: apt-inst/extract.cc:124
-#, c-format
-msgid "Unpacking %s more than once"
-msgstr ""
-
-#: apt-inst/extract.cc:134
-#, c-format
-msgid "The directory %s is diverted"
-msgstr ""
-
-#: apt-inst/extract.cc:144
-#, c-format
-msgid "The package is trying to write to the diversion target %s/%s"
-msgstr ""
-
-#: apt-inst/extract.cc:154 apt-inst/extract.cc:297
-#, fuzzy
-msgid "The diversion path is too long"
-msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e"
-
-#: apt-inst/extract.cc:240
-#, c-format
-msgid "The directory %s is being replaced by a non-directory"
-msgstr ""
-
-#: apt-inst/extract.cc:280
-msgid "Failed to locate node in its hash bucket"
-msgstr ""
-
-#: apt-inst/extract.cc:284
-msgid "The path is too long"
-msgstr ""
-
-#: apt-inst/extract.cc:414
-#, c-format
-msgid "Overwrite package match with no version for %s"
-msgstr ""
-
-#: apt-inst/extract.cc:431
-#, c-format
-msgid "File %s/%s overwrites the one in the package %s"
-msgstr ""
-
-#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:748
-#: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320
-#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34
-#, fuzzy, c-format
-msgid "Unable to read %s"
-msgstr "%s venebû"
-
-#: apt-inst/extract.cc:491
-#, fuzzy, c-format
-msgid "Unable to stat %s"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: apt-inst/deb/dpkgdb.cc:51 apt-inst/deb/dpkgdb.cc:57
-#, fuzzy, c-format
-msgid "Failed to remove %s"
-msgstr "%s ji hev nehate veçirandin"
-
-#: apt-inst/deb/dpkgdb.cc:106 apt-inst/deb/dpkgdb.cc:108
-#, fuzzy, c-format
-msgid "Unable to create %s"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: apt-inst/deb/dpkgdb.cc:114
-#, fuzzy, c-format
-msgid "Failed to stat %sinfo"
-msgstr "%s venebû"
-
-#: apt-inst/deb/dpkgdb.cc:119
-msgid "The info and temp directories need to be on the same filesystem"
-msgstr ""
-
-#. Build the status cache
-#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:748
-#: apt-pkg/pkgcachegen.cc:817 apt-pkg/pkgcachegen.cc:822
-#: apt-pkg/pkgcachegen.cc:945
-#, fuzzy
-msgid "Reading package lists"
-msgstr "Paketên şikestî"
-
-#: apt-inst/deb/dpkgdb.cc:176
-#, c-format
-msgid "Failed to change to the admin dir %sinfo"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:197 apt-inst/deb/dpkgdb.cc:351
-#: apt-inst/deb/dpkgdb.cc:444
-msgid "Internal error getting a package name"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:382
-msgid "Reading file listing"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:212
-#, c-format
-msgid ""
-"Failed to open the list file '%sinfo/%s'. If you cannot restore this file "
-"then make it empty and immediately re-install the same version of the "
-"package!"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:225 apt-inst/deb/dpkgdb.cc:238
-#, c-format
-msgid "Failed reading the list file %sinfo/%s"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:262
-msgid "Internal error getting a node"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:305
-#, c-format
-msgid "Failed to open the diversions file %sdiversions"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:320
-msgid "The diversion file is corrupted"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:327 apt-inst/deb/dpkgdb.cc:332
-#: apt-inst/deb/dpkgdb.cc:337
-#, c-format
-msgid "Invalid line in the diversion file: %s"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:358
-msgid "Internal error adding a diversion"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:379
-msgid "The pkg cache must be initialized first"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:439
-#, c-format
-msgid "Failed to find a Package: header, offset %lu"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:461
-#, c-format
-msgid "Bad ConfFile section in the status file. Offset %lu"
-msgstr ""
-
-#: apt-inst/deb/dpkgdb.cc:466
-#, c-format
-msgid "Error parsing MD5. Offset %lu"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:38 apt-inst/deb/debfile.cc:43
-#, c-format
-msgid "This is not a valid DEB archive, missing '%s' member"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:48
-#, c-format
-msgid "This is not a valid DEB archive, it has no '%s' or '%s' member"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:108
-#, c-format
-msgid "Couldn't change to %s"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:134
-msgid "Internal error, could not locate member"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:167
-msgid "Failed to locate a valid control file"
-msgstr ""
-
-#: apt-inst/deb/debfile.cc:252
-msgid "Unparsable control file"
-msgstr ""
-
-#: methods/cdrom.cc:114
-#, fuzzy, c-format
-msgid "Unable to read the cdrom database %s"
-msgstr "Pakêt nehate dîtin %s"
-
-#: methods/cdrom.cc:123
-msgid ""
-"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update "
-"cannot be used to add new CD-ROMs"
-msgstr ""
-
-#: methods/cdrom.cc:131
-msgid "Wrong CD-ROM"
-msgstr ""
-
-#: methods/cdrom.cc:166
-#, c-format
-msgid "Unable to unmount the CD-ROM in %s, it may still be in use."
-msgstr ""
-
-#: methods/cdrom.cc:171
-#, fuzzy
-msgid "Disk not found."
-msgstr "(nehate dîtin)"
-
-#: methods/cdrom.cc:179 methods/file.cc:79 methods/rsh.cc:264
-#, fuzzy
-msgid "File not found"
-msgstr "(nehate dîtin)"
-
-#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141
-#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243
-#, fuzzy
-msgid "Failed to stat"
-msgstr "%s venebû"
-
-#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147
-#: methods/rred.cc:240
-msgid "Failed to set modification time"
-msgstr ""
-
-#: methods/file.cc:44
-msgid "Invalid URI, local URIS must not start with //"
-msgstr ""
-
-#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:162
-msgid "Logging in"
-msgstr ""
-
-#: methods/ftp.cc:168
-msgid "Unable to determine the peer name"
-msgstr ""
-
-#: methods/ftp.cc:173
-#, fuzzy
-msgid "Unable to determine the local name"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: methods/ftp.cc:204 methods/ftp.cc:232
-#, c-format
-msgid "The server refused the connection and said: %s"
-msgstr ""
-
-#: methods/ftp.cc:210
-#, c-format
-msgid "USER failed, server said: %s"
-msgstr ""
-
-#: methods/ftp.cc:217
-#, c-format
-msgid "PASS failed, server said: %s"
-msgstr ""
-
-#: methods/ftp.cc:237
-msgid ""
-"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
-"is empty."
-msgstr ""
-
-#: methods/ftp.cc:265
-#, c-format
-msgid "Login script command '%s' failed, server said: %s"
-msgstr ""
-
-#: methods/ftp.cc:291
-#, c-format
-msgid "TYPE failed, server said: %s"
-msgstr ""
-
-#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226
-msgid "Connection timeout"
-msgstr ""
-
-#: methods/ftp.cc:335
-msgid "Server closed the connection"
-msgstr ""
-
-#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:469 methods/rsh.cc:190
-msgid "Read error"
-msgstr ""
-
-#: methods/ftp.cc:345 methods/rsh.cc:197
-msgid "A response overflowed the buffer."
-msgstr ""
-
-#: methods/ftp.cc:362 methods/ftp.cc:374
-msgid "Protocol corruption"
-msgstr ""
-
-#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:508 methods/rsh.cc:232
-msgid "Write error"
-msgstr ""
-
-#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729
-msgid "Could not create a socket"
-msgstr ""
-
-#: methods/ftp.cc:698
-msgid "Could not connect data socket, connection timed out"
-msgstr ""
-
-#: methods/ftp.cc:704
-msgid "Could not connect passive socket."
-msgstr ""
-
-#: methods/ftp.cc:722
-msgid "getaddrinfo was unable to get a listening socket"
-msgstr ""
-
-#: methods/ftp.cc:736
-msgid "Could not bind a socket"
-msgstr ""
-
-#: methods/ftp.cc:740
-msgid "Could not listen on the socket"
-msgstr ""
-
-#: methods/ftp.cc:747
-msgid "Could not determine the socket's name"
-msgstr ""
-
-#: methods/ftp.cc:779
-msgid "Unable to send PORT command"
-msgstr ""
-
-#: methods/ftp.cc:789
-#, c-format
-msgid "Unknown address family %u (AF_*)"
-msgstr ""
-
-#: methods/ftp.cc:798
-#, c-format
-msgid "EPRT failed, server said: %s"
-msgstr ""
-
-#: methods/ftp.cc:818
-msgid "Data socket connect timed out"
-msgstr ""
-
-#: methods/ftp.cc:825
-msgid "Unable to accept connection"
-msgstr ""
-
-#: methods/ftp.cc:864 methods/http.cc:959 methods/rsh.cc:303
-msgid "Problem hashing file"
-msgstr ""
-
-#: methods/ftp.cc:877
-#, fuzzy, c-format
-msgid "Unable to fetch file, server said '%s'"
-msgstr "Danegira %s nehate vekirin: %s"
-
-#: methods/ftp.cc:892 methods/rsh.cc:322
-msgid "Data socket timed out"
-msgstr ""
-
-#: methods/ftp.cc:922
-#, c-format
-msgid "Data transfer failed, server said '%s'"
-msgstr ""
-
-#. Get the files information
-#: methods/ftp.cc:997
-msgid "Query"
-msgstr ""
-
-#: methods/ftp.cc:1109
-#, fuzzy
-msgid "Unable to invoke "
-msgstr "%s venebû"
-
-#: methods/connect.cc:64
-#, c-format
-msgid "Connecting to %s (%s)"
-msgstr ""
-
-#: methods/connect.cc:71
-#, c-format
-msgid "[IP: %s %s]"
-msgstr ""
-
-#: methods/connect.cc:80
-#, c-format
-msgid "Could not create a socket for %s (f=%u t=%u p=%u)"
-msgstr ""
-
-#: methods/connect.cc:86
-#, c-format
-msgid "Cannot initiate the connection to %s:%s (%s)."
-msgstr ""
-
-#: methods/connect.cc:93
-#, c-format
-msgid "Could not connect to %s:%s (%s), connection timed out"
-msgstr ""
-
-#: methods/connect.cc:108
-#, c-format
-msgid "Could not connect to %s:%s (%s)."
-msgstr ""
-
-#. We say this mainly because the pause here is for the
-#. ssh connection that is still going
-#: methods/connect.cc:136 methods/rsh.cc:425
-#, c-format
-msgid "Connecting to %s"
-msgstr ""
-
-#: methods/connect.cc:167
-#, fuzzy, c-format
-msgid "Could not resolve '%s'"
-msgstr "%s ji hev nehate veçirandin"
-
-#: methods/connect.cc:173
-#, c-format
-msgid "Temporary failure resolving '%s'"
-msgstr ""
-
-#: methods/connect.cc:176
-#, c-format
-msgid "Something wicked happened resolving '%s:%s' (%i)"
-msgstr ""
-
-#: methods/connect.cc:223
-#, fuzzy, c-format
-msgid "Unable to connect to %s %s:"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: methods/gpgv.cc:65
-#, c-format
-msgid "Couldn't access keyring: '%s'"
-msgstr ""
-
-#: methods/gpgv.cc:100
-msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
-msgstr ""
-
-#: methods/gpgv.cc:204
-msgid ""
-"Internal error: Good signature, but could not determine key fingerprint?!"
-msgstr ""
-
-#: methods/gpgv.cc:209
-msgid "At least one invalid signature was encountered."
-msgstr ""
-
-#: methods/gpgv.cc:213
-#, c-format
-msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
-msgstr ""
-
-#: methods/gpgv.cc:218
-msgid "Unknown error executing gpgv"
-msgstr ""
-
-#: methods/gpgv.cc:249
-#, fuzzy
-msgid "The following signatures were invalid:\n"
-msgstr "Ev pakêtên NÛ dê werine sazkirin:"
-
-#: methods/gpgv.cc:256
-msgid ""
-"The following signatures couldn't be verified because the public key is not "
-"available:\n"
-msgstr ""
-
-#: methods/gzip.cc:64
-#, c-format
-msgid "Couldn't open pipe for %s"
-msgstr ""
-
-#: methods/gzip.cc:109
-#, c-format
-msgid "Read error from %s process"
-msgstr ""
-
-#: methods/http.cc:377
-msgid "Waiting for headers"
-msgstr ""
-
-#: methods/http.cc:523
-#, c-format
-msgid "Got a single header line over %u chars"
-msgstr ""
-
-#: methods/http.cc:531
-msgid "Bad header line"
-msgstr ""
-
-#: methods/http.cc:550 methods/http.cc:557
-msgid "The HTTP server sent an invalid reply header"
-msgstr ""
-
-#: methods/http.cc:586
-msgid "The HTTP server sent an invalid Content-Length header"
-msgstr ""
-
-#: methods/http.cc:601
-msgid "The HTTP server sent an invalid Content-Range header"
-msgstr ""
-
-#: methods/http.cc:603
-msgid "This HTTP server has broken range support"
-msgstr ""
-
-#: methods/http.cc:627
-msgid "Unknown date format"
-msgstr ""
-
-#: methods/http.cc:774
-#, fuzzy
-msgid "Select failed"
-msgstr " neserketî."
-
-#: methods/http.cc:779
-msgid "Connection timed out"
-msgstr ""
-
-#: methods/http.cc:802
-#, fuzzy
-msgid "Error writing to output file"
-msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî"
-
-#: methods/http.cc:833
-#, fuzzy
-msgid "Error writing to file"
-msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî"
-
-#: methods/http.cc:861
-#, fuzzy
-msgid "Error writing to the file"
-msgstr "Dema li dosyeya naverokê joreagahî dihate nivîsîn çewtî"
-
-#: methods/http.cc:875
-msgid "Error reading from server. Remote end closed connection"
-msgstr ""
-
-#: methods/http.cc:877
-msgid "Error reading from server"
-msgstr ""
-
-#: methods/http.cc:1108
-msgid "Bad header data"
-msgstr ""
-
-#: methods/http.cc:1125
-msgid "Connection failed"
-msgstr ""
-
-#: methods/http.cc:1216
-msgid "Internal error"
-msgstr ""
-
-#: apt-pkg/contrib/mmap.cc:78
-msgid "Can't mmap an empty file"
-msgstr ""
-
-#: apt-pkg/contrib/mmap.cc:83
-#, c-format
-msgid "Couldn't make mmap of %lu bytes"
-msgstr ""
-
-#: apt-pkg/contrib/strutl.cc:978
-#, c-format
-msgid "Selection %s not found"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:434
-#, c-format
-msgid "Unrecognized type abbreviation: '%c'"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:492
-#, c-format
-msgid "Opening configuration file %s"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:510
-#, c-format
-msgid "Line %d too long (max %lu)"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:606
-#, c-format
-msgid "Syntax error %s:%u: Block starts with no name."
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:625
-#, c-format
-msgid "Syntax error %s:%u: Malformed tag"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:642
-#, c-format
-msgid "Syntax error %s:%u: Extra junk after value"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:682
-#, c-format
-msgid "Syntax error %s:%u: Directives can only be done at the top level"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:689
-#, c-format
-msgid "Syntax error %s:%u: Too many nested includes"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:693 apt-pkg/contrib/configuration.cc:698
-#, c-format
-msgid "Syntax error %s:%u: Included from here"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:702
-#, c-format
-msgid "Syntax error %s:%u: Unsupported directive '%s'"
-msgstr ""
-
-#: apt-pkg/contrib/configuration.cc:736
-#, c-format
-msgid "Syntax error %s:%u: Extra junk at end of file"
-msgstr ""
-
-#: apt-pkg/contrib/progress.cc:152
-#, c-format
-msgid "%c%s... Error!"
-msgstr ""
-
-#: apt-pkg/contrib/progress.cc:154
-#, c-format
-msgid "%c%s... Done"
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:77
-#, c-format
-msgid "Command line option '%c' [from %s] is not known."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111
-#: apt-pkg/contrib/cmndline.cc:119
-#, c-format
-msgid "Command line option %s is not understood"
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:124
-#, c-format
-msgid "Command line option %s is not boolean"
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:163 apt-pkg/contrib/cmndline.cc:184
-#, c-format
-msgid "Option %s requires an argument."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:198 apt-pkg/contrib/cmndline.cc:204
-#, c-format
-msgid "Option %s: Configuration item specification must have an =<val>."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:234
-#, c-format
-msgid "Option %s requires an integer argument, not '%s'"
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:265
-#, fuzzy, c-format
-msgid "Option '%s' is too long"
-msgstr "Lîsteya dirêjahiya çavkaniyê zêde dirêj e"
-
-#: apt-pkg/contrib/cmndline.cc:298
-#, c-format
-msgid "Sense %s is not understood, try true or false."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:348
-#, c-format
-msgid "Invalid operation %s"
-msgstr ""
-
-#: apt-pkg/contrib/cdromutl.cc:52
-#, fuzzy, c-format
-msgid "Unable to stat the mount point %s"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/acquire.cc:424 apt-pkg/clean.cc:40
-#, fuzzy, c-format
-msgid "Unable to change to %s"
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: apt-pkg/contrib/cdromutl.cc:187
-msgid "Failed to stat the cdrom"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:80
-#, c-format
-msgid "Not using locking for read only lock file %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:85
-#, fuzzy, c-format
-msgid "Could not open lock file %s"
-msgstr "Danegira %s nehate vekirin: %s"
-
-#: apt-pkg/contrib/fileutl.cc:103
-#, c-format
-msgid "Not using locking for nfs mounted lock file %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:107
-#, c-format
-msgid "Could not get lock %s"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:375
-#, c-format
-msgid "Waited for %s but it wasn't there"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:385
-#, c-format
-msgid "Sub-process %s received a segmentation fault."
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:388
-#, c-format
-msgid "Sub-process %s returned an error code (%u)"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:390
-#, c-format
-msgid "Sub-process %s exited unexpectedly"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:434
-#, fuzzy, c-format
-msgid "Could not open file %s"
-msgstr "Danegira %s nehate vekirin: %s"
-
-#: apt-pkg/contrib/fileutl.cc:490
-#, c-format
-msgid "read, still have %lu to read but none left"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:520
-#, c-format
-msgid "write, still have %lu to write but couldn't"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:595
-msgid "Problem closing the file"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:601
-msgid "Problem unlinking the file"
-msgstr ""
-
-#: apt-pkg/contrib/fileutl.cc:612
-msgid "Problem syncing the file"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:132
-msgid "Empty package cache"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:138
-msgid "The package cache file is corrupted"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:143
-msgid "The package cache file is an incompatible version"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:148
-#, c-format
-msgid "This APT does not support the versioning system '%s'"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:153
-msgid "The package cache was built for a different architecture"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:224
-msgid "Depends"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:224
-msgid "PreDepends"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:224
-msgid "Suggests"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:225
-#, fuzzy
-msgid "Recommends"
-msgstr "Paketên tên tawsiyê kirin:"
-
-#: apt-pkg/pkgcache.cc:225
-msgid "Conflicts"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:225
-msgid "Replaces"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:226
-msgid "Obsoletes"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:226
-msgid "Breaks"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:237
-msgid "important"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:237
-msgid "required"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:237
-msgid "standard"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:238
-msgid "optional"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:238
-msgid "extra"
-msgstr ""
-
-#: apt-pkg/depcache.cc:100 apt-pkg/depcache.cc:129
-msgid "Building dependency tree"
-msgstr ""
-
-#: apt-pkg/depcache.cc:101
-#, fuzzy
-msgid "Candidate versions"
-msgstr " Berendam: "
-
-#: apt-pkg/depcache.cc:130
-msgid "Dependency generation"
-msgstr ""
-
-#: apt-pkg/depcache.cc:151 apt-pkg/depcache.cc:170 apt-pkg/depcache.cc:174
-msgid "Reading state information"
-msgstr ""
-
-#: apt-pkg/depcache.cc:198
-#, fuzzy, c-format
-msgid "Failed to open StateFile %s"
-msgstr "%s venebû"
-
-#: apt-pkg/depcache.cc:204
-#, fuzzy, c-format
-msgid "Failed to write temporary StateFile %s"
-msgstr "%s ji hev nehate veçirandin"
-
-#: apt-pkg/tagfile.cc:102
-#, fuzzy, c-format
-msgid "Unable to parse package file %s (1)"
-msgstr "Pakêt nehate dîtin %s"
-
-#: apt-pkg/tagfile.cc:189
-#, fuzzy, c-format
-msgid "Unable to parse package file %s (2)"
-msgstr "Pakêt nehate dîtin %s"
-
-#: apt-pkg/sourcelist.cc:90
-#, c-format
-msgid "Malformed line %lu in source list %s (URI)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:92
-#, c-format
-msgid "Malformed line %lu in source list %s (dist)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:95
-#, c-format
-msgid "Malformed line %lu in source list %s (URI parse)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:101
-#, c-format
-msgid "Malformed line %lu in source list %s (absolute dist)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:108
-#, c-format
-msgid "Malformed line %lu in source list %s (dist parse)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:199
-#, c-format
-msgid "Opening %s"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:216 apt-pkg/cdrom.cc:448
-#, c-format
-msgid "Line %u too long in source list %s."
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:236
-#, c-format
-msgid "Malformed line %u in source list %s (type)"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:240
-#, c-format
-msgid "Type '%s' is not known on line %u in source list %s"
-msgstr ""
-
-#: apt-pkg/sourcelist.cc:248 apt-pkg/sourcelist.cc:251
-#, c-format
-msgid "Malformed line %u in source list %s (vendor id)"
-msgstr ""
-
-#: apt-pkg/packagemanager.cc:399
-#, c-format
-msgid ""
-"This installation run will require temporarily removing the essential "
-"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if "
-"you really want to do it, activate the APT::Force-LoopBreak option."
-msgstr ""
-
-#: apt-pkg/pkgrecords.cc:32
-#, c-format
-msgid "Index file type '%s' is not supported"
-msgstr ""
-
-#: apt-pkg/algorithms.cc:247
-#, c-format
-msgid ""
-"The package %s needs to be reinstalled, but I can't find an archive for it."
-msgstr ""
-
-#: apt-pkg/algorithms.cc:1103
-msgid ""
-"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
-"held packages."
-msgstr ""
-
-#: apt-pkg/algorithms.cc:1105
-msgid "Unable to correct problems, you have held broken packages."
-msgstr ""
-
-#: apt-pkg/acquire.cc:59
-#, c-format
-msgid "Lists directory %spartial is missing."
-msgstr ""
-
-#: apt-pkg/acquire.cc:63
-#, c-format
-msgid "Archive directory %spartial is missing."
-msgstr ""
-
-#. only show the ETA if it makes sense
-#. two days
-#: apt-pkg/acquire.cc:827
-#, c-format
-msgid "Retrieving file %li of %li (%s remaining)"
-msgstr ""
-
-#: apt-pkg/acquire.cc:829
-#, c-format
-msgid "Retrieving file %li of %li"
-msgstr ""
-
-#: apt-pkg/acquire-worker.cc:110
-#, c-format
-msgid "The method driver %s could not be found."
-msgstr ""
-
-#: apt-pkg/acquire-worker.cc:159
-#, c-format
-msgid "Method %s did not start correctly"
-msgstr ""
-
-#: apt-pkg/acquire-worker.cc:381
-#, fuzzy, c-format
-msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
-msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne"
-
-#: apt-pkg/init.cc:126
-#, c-format
-msgid "Packaging system '%s' is not supported"
-msgstr ""
-
-#: apt-pkg/init.cc:142
-msgid "Unable to determine a suitable packaging system type"
-msgstr ""
-
-#: apt-pkg/clean.cc:57
-#, fuzzy, c-format
-msgid "Unable to stat %s."
-msgstr "Nivîsandin ji bo %s ne pêkane"
-
-#: apt-pkg/srcrecords.cc:44
-msgid "You must put some 'source' URIs in your sources.list"
-msgstr ""
-
-#: apt-pkg/cachefile.cc:69
-msgid "The package lists or status file could not be parsed or opened."
-msgstr ""
-
-#: apt-pkg/cachefile.cc:73
-msgid "You may want to run apt-get update to correct these problems"
-msgstr ""
-
-#: apt-pkg/policy.cc:267
-msgid "Invalid record in the preferences file, no Package header"
-msgstr ""
-
-#: apt-pkg/policy.cc:289
-#, c-format
-msgid "Did not understand pin type %s"
-msgstr ""
-
-#: apt-pkg/policy.cc:297
-msgid "No priority (or zero) specified for pin"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:72
-msgid "Cache has an incompatible versioning system"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:115
-#, c-format
-msgid "Error occurred while processing %s (NewPackage)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:130
-#, c-format
-msgid "Error occurred while processing %s (UsePackage1)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:153
-#, c-format
-msgid "Error occurred while processing %s (NewFileDesc1)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:178
-#, c-format
-msgid "Error occurred while processing %s (UsePackage2)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:182
-#, c-format
-msgid "Error occurred while processing %s (NewFileVer1)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:213
-#, c-format
-msgid "Error occurred while processing %s (NewVersion1)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:217
-#, c-format
-msgid "Error occurred while processing %s (UsePackage3)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:221
-#, c-format
-msgid "Error occurred while processing %s (NewVersion2)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:245
-#, c-format
-msgid "Error occurred while processing %s (NewFileDesc2)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:251
-msgid "Wow, you exceeded the number of package names this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:254
-msgid "Wow, you exceeded the number of versions this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:257
-msgid "Wow, you exceeded the number of descriptions this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:260
-msgid "Wow, you exceeded the number of dependencies this APT is capable of."
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:288
-#, c-format
-msgid "Error occurred while processing %s (FindPkg)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:301
-#, c-format
-msgid "Error occurred while processing %s (CollectFileProvides)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:307
-#, c-format
-msgid "Package %s %s was not found while processing file dependencies"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:678
-#, c-format
-msgid "Couldn't stat source package list %s"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:763
-msgid "Collecting File Provides"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:890 apt-pkg/pkgcachegen.cc:897
-msgid "IO Error saving source cache"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:127
-#, c-format
-msgid "rename failed, %s (%s -> %s)."
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:406 apt-pkg/acquire-item.cc:661
-#: apt-pkg/acquire-item.cc:1411
-msgid "MD5Sum mismatch"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:1106
-msgid "There is no public key available for the following key IDs:\n"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:1219
-#, c-format
-msgid ""
-"I wasn't able to locate a file for the %s package. This might mean you need "
-"to manually fix this package. (due to missing arch)"
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:1278
-#, c-format
-msgid ""
-"I wasn't able to locate file for the %s package. This might mean you need to "
-"manually fix this package."
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:1314
-#, c-format
-msgid ""
-"The package index files are corrupted. No Filename: field for package %s."
-msgstr ""
-
-#: apt-pkg/acquire-item.cc:1401
-msgid "Size mismatch"
-msgstr ""
-
-#: apt-pkg/vendorlist.cc:66
-#, c-format
-msgid "Vendor block %s contains no fingerprint"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:529
-#, c-format
-msgid ""
-"Using CD-ROM mount point %s\n"
-"Mounting CD-ROM\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:538 apt-pkg/cdrom.cc:620
-msgid "Identifying.. "
-msgstr ""
-
-#: apt-pkg/cdrom.cc:563
-#, c-format
-msgid "Stored label: %s \n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:583
-#, c-format
-msgid "Using CD-ROM mount point %s\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:601
-msgid "Unmounting CD-ROM\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:605
-msgid "Waiting for disc...\n"
-msgstr ""
-
-#. Mount the new CDROM
-#: apt-pkg/cdrom.cc:613
-msgid "Mounting CD-ROM...\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:631
-msgid "Scanning disc for index files..\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:671
-#, c-format
-msgid ""
-"Found %i package indexes, %i source indexes, %i translation indexes and %i "
-"signatures\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:708
-#, c-format
-msgid "Found label '%s'\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:737
-msgid "That is not a valid name, try again.\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:753
-#, c-format
-msgid ""
-"This disc is called: \n"
-"'%s'\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:757
-msgid "Copying package lists..."
-msgstr ""
-
-#: apt-pkg/cdrom.cc:783
-msgid "Writing new source list\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:792
-msgid "Source list entries for this disc are:\n"
-msgstr ""
-
-#: apt-pkg/cdrom.cc:834
-msgid "Unmounting CD-ROM...\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830
-#, c-format
-msgid "Wrote %i records.\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832
-#, c-format
-msgid "Wrote %i records with %i missing files.\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835
-#, c-format
-msgid "Wrote %i records with %i mismatched files\n"
-msgstr ""
-
-#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838
-#, c-format
-msgid "Wrote %i records with %i missing files and %i mismatched files\n"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:355
-#, c-format
-msgid "Preparing %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:356
-#, c-format
-msgid "Unpacking %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:361
-#, c-format
-msgid "Preparing to configure %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:362
-#, c-format
-msgid "Configuring %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:363
-#, fuzzy, c-format
-msgid "Installed %s"
-msgstr " Sazkirî: "
-
-#: apt-pkg/deb/dpkgpm.cc:368
-#, c-format
-msgid "Preparing for removal of %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:369
-#, c-format
-msgid "Removing %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:370
-#, c-format
-msgid "Removed %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:375
-#, c-format
-msgid "Preparing to completely remove %s"
-msgstr ""
-
-#: apt-pkg/deb/dpkgpm.cc:376
-#, c-format
-msgid "Completely removed %s"
-msgstr ""
-
-#: methods/rred.cc:219
-#, fuzzy
-msgid "Could not patch file"
-msgstr "Danegira %s nehate vekirin: %s"
-
-#: methods/rsh.cc:330
-msgid "Connection closed prematurely"
-msgstr ""
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100644
index 6291cb807..000000000
--- a/po/uk.po
+++ /dev/null
@@ -1,2897 +0,0 @@
-# translation of apt-all.po to Українська
-# This file is put in the public domain.
-#
-# Artem Bondarenko <artem.brz@gmail.com>, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: apt-all\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-07-06 06:51+0200\n"
-"PO-Revision-Date: 2006-07-29 15:57+0300\n"
-"Last-Translator: Artem Bondarenko <artem.brz@gmail.com>\n"
-"Language-Team: Українська <uk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.1\n"
-
-#: cmdline/apt-cache.cc:143
-#, c-format
-msgid "Package %s version %s has an unmet dep:\n"
-msgstr "Пакунок %s версії %s має незадоволену залежність:\n"
-
-#: cmdline/apt-cache.cc:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640
-#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018
-#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570
-#, c-format
-msgid "Unable to locate package %s"
-msgstr "Не можу знайти пакунок %s"
-
-#: cmdline/apt-cache.cc:247
-msgid "Total package names : "
-msgstr "Всього імен пакунків : "
-
-#: cmdline/apt-cache.cc:287
-msgid " Normal packages: "
-msgstr " Нормальних пакунків: "
-
-#: cmdline/apt-cache.cc:288
-msgid " Pure virtual packages: "
-msgstr " Чисто віртуальних пакунків: "
-
-#: cmdline/apt-cache.cc:289
-msgid " Single virtual packages: "
-msgstr " Окремих віртуальних пакунків: "
-
-#: cmdline/apt-cache.cc:290
-msgid " Mixed virtual packages: "
-msgstr " Змішаних віртуальних пакунків: "
-
-#: cmdline/apt-cache.cc:291
-msgid " Missing: "
-msgstr " Пропущено: "
-
-#: cmdline/apt-cache.cc:293
-msgid "Total distinct versions: "
-msgstr "Всього унікальних версій: "
-
-#: cmdline/apt-cache.cc:295
-#, fuzzy
-msgid "Total Distinct Descriptions: "
-msgstr "Всього унікальних версій: "
-
-#: cmdline/apt-cache.cc:297
-msgid "Total dependencies: "
-msgstr "Всього залежностей: "
-
-#: cmdline/apt-cache.cc:300
-msgid "Total ver/file relations: "
-msgstr "Всього відносин Версія/Файл: "
-
-#: cmdline/apt-cache.cc:302
-#, fuzzy
-msgid "Total Desc/File relations: "
-msgstr "Всього відносин Версія/Файл: "
-
-#: cmdline/apt-cache.cc:304
-msgid "Total Provides mappings: "
-msgstr "Всього відносин Provides: "
-
-#: cmdline/apt-cache.cc:316
-msgid "Total globbed strings: "
-msgstr "Всього розгорнутих рядків: "
-
-#: cmdline/apt-cache.cc:330
-msgid "Total dependency version space: "
-msgstr "Всього інформації про залежності: "
-
-#: cmdline/apt-cache.cc:335
-msgid "Total slack space: "
-msgstr "Порожнього місця в кеші: "
-
-#: cmdline/apt-cache.cc:343
-msgid "Total space accounted for: "
-msgstr "Загальний простір полічений для: "
-
-#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218
-#, c-format
-msgid "Package file %s is out of sync."
-msgstr "Перелік пакунків %s розсинхронізований."
-
-#: cmdline/apt-cache.cc:1293
-msgid "You must give exactly one pattern"
-msgstr "Ви повинні задати рівно один шаблон"
-
-#: cmdline/apt-cache.cc:1447
-msgid "No packages found"
-msgstr "Не знайдено жодного пакунка"
-
-#: cmdline/apt-cache.cc:1524
-msgid "Package files:"
-msgstr "Переліки пакунків:"
-
-#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617
-msgid "Cache is out of sync, can't x-ref a package file"
-msgstr "Кеш не синхронізований, неможливо знайти посилання на перелік пакунків"
-
-#: cmdline/apt-cache.cc:1532
-#, c-format
-msgid "%4i %s\n"
-msgstr "%4i %s\n"
-
-#. Show any packages have explicit pins
-#: cmdline/apt-cache.cc:1544
-msgid "Pinned packages:"
-msgstr "Зафіксовані пакунки:"
-
-#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597
-msgid "(not found)"
-msgstr "(не знайдено)"
-
-#. Installed version
-#: cmdline/apt-cache.cc:1577
-msgid " Installed: "
-msgstr " Встановлено: "
-
-#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587
-msgid "(none)"
-msgstr "(відсутній)"
-
-#. Candidate Version
-#: cmdline/apt-cache.cc:1584
-msgid " Candidate: "
-msgstr " Кандидат: "
-
-#: cmdline/apt-cache.cc:1594
-msgid " Package pin: "
-msgstr " Фіксатор(pin) пакунка: "
-
-#. Show the priority tables
-#: cmdline/apt-cache.cc:1603
-msgid " Version table:"
-msgstr " Таблиця версій:"
-
-#: cmdline/apt-cache.cc:1618
-#, c-format
-msgid " %4i %s\n"
-msgstr " %4i %s\n"
-
-#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
-#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2584 cmdline/apt-sortpkgs.cc:144
-#, c-format
-msgid "%s %s for %s %s compiled on %s %s\n"
-msgstr "%s %s для %s %s скомпільовано %s %s\n"
-
-#: cmdline/apt-cache.cc:1721
-msgid ""
-"Usage: apt-cache [options] command\n"
-" apt-cache [options] add file1 [file2 ...]\n"
-" apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
-" apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
-"\n"
-"apt-cache is a low-level tool used to manipulate APT's binary\n"
-"cache files, and query information from them\n"
-"\n"
-"Commands:\n"
-" add - Add a package file to the source cache\n"
-" gencaches - Build both the package and source cache\n"
-" showpkg - Show some general information for a single package\n"
-" showsrc - Show source records\n"
-" stats - Show some basic statistics\n"
-" dump - Show the entire file in a terse form\n"
-" dumpavail - Print an available file to stdout\n"
-" unmet - Show unmet dependencies\n"
-" search - Search the package list for a regex pattern\n"
-" show - Show a readable record for the package\n"
-" depends - Show raw dependency information for a package\n"
-" rdepends - Show reverse dependency information for a package\n"
-" pkgnames - List the names of all packages\n"
-" dotty - Generate package graphs for GraphVis\n"
-" xvcg - Generate package graphs for xvcg\n"
-" policy - Show policy settings\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -p=? The package cache.\n"
-" -s=? The source cache.\n"
-" -q Disable progress indicator.\n"
-" -i Show only important deps for the unmet command.\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"
-msgstr ""
-"Використання: apt-cache [options] command\n"
-" або: apt-cache [options] add file1 [file1 ...]\n"
-" або: apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
-" або: apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
-"\n"
-"apt-cache - низькорівневий інструмент, що використається для керування\n"
-"двійковими кеш-файлами APT'а, а також для добування інформації з них\n"
-"Команди:\n"
-" add - додати файл пакунка в кеш джерел\n"
-" gencaches - побудувати обидва кеша пакунків - бінарних і з вихідними "
-"текстами\n"
-" showpkg - загальна інформація про конкретний пакунок\n"
-" stats - основна статистика\n"
-" dump - показати весь файл у стислій формі\n"
-" dumpavail - видати на stdout список доступних пакунків\n"
-" unmet - показати незадоволені залежності\n"
-" search - знайти пакунки, назва яких задовольняє регулярний вираз\n"
-" show - показати інформацію про пакунок в зрозумілій формі\n"
-" depends - показати інформацію про залежності пакунка построково\n"
-" rdepends - показати інформацію про зворотні залежності пакунка\n"
-" pkgnames - показати імена всіх пакунків\n"
-" dotty - генерувати граф залежностей пакунків у форматі GraphVis\n"
-" xvcg - генерувати граф залежностей пакунків у форматі xvcg\n"
-" policy - показати поточну політику вибору пакунків\n"
-"\n"
-"Опції:\n"
-" -h Цей текст.\n"
-" -p=? Кеш пакунків.\n"
-" -s=? Кеш джерел.\n"
-" -q Не показувати індикатор прогресу.\n"
-" -i Показувати тільки важливі залежності для команди unmet.\n"
-" -c=? Читати зазначений файл конфігурації.\n"
-" -o=? Встановити довільну опцію конфігурації, наприклад, -o dir::cache=/"
-"tmp\n"
-"Подробиці в сторінках керівництва apt-cache(8) і apt.conf(5).\n"
-
-#: cmdline/apt-cdrom.cc:78
-msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'"
-msgstr "Задайте назву для цього диска, наприклад 'Debian 2.1r1 Disk 1'"
-
-#: cmdline/apt-cdrom.cc:93
-msgid "Please insert a Disc in the drive and press enter"
-msgstr "Вставте диск у пристрій і натисніть Ввід"
-
-#: cmdline/apt-cdrom.cc:117
-msgid "Repeat this process for the rest of the CDs in your set."
-msgstr "Повторіть цей процес для інших наявних CD."
-
-#: cmdline/apt-config.cc:41
-msgid "Arguments not in pairs"
-msgstr "Непарні аргументи"
-
-#: cmdline/apt-config.cc:76
-msgid ""
-"Usage: apt-config [options] command\n"
-"\n"
-"apt-config is a simple tool to read the APT config file\n"
-"\n"
-"Commands:\n"
-" shell - Shell mode\n"
-" dump - Show the configuration\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-"Використання: apt-config [options] command\n"
-"\n"
-"apt-config - простий інструмент для читання конфігураційного файлу APT\n"
-"\n"
-"Команди:\n"
-" shell - режим shell\n"
-" dump - показати конфігурацію\n"
-"\n"
-"Опції:\n"
-" -h Цей текст.\n"
-" -с=? Читати зазначений конфігураційний файл.\n"
-" -o=? Встановити довільну опцію, наприклад, -o dir::cache=/tmp\n"
-
-#: cmdline/apt-extracttemplates.cc:98
-#, c-format
-msgid "%s not a valid DEB package."
-msgstr "%s не є правильним DEB-пакунком."
-
-#: cmdline/apt-extracttemplates.cc:232
-msgid ""
-"Usage: apt-extracttemplates file1 [file2 ...]\n"
-"\n"
-"apt-extracttemplates is a tool to extract config and template info\n"
-"from debian packages\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" -t Set the temp dir\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-"Використання: apt-extracttemplates file1 [file2 ...]\n"
-"\n"
-"apt-extracttemplates витягує з пакунків Debian конфігураційні скрипти\n"
-"і файли-шаблони\n"
-"\n"
-"Опції:\n"
-" -h Цей текст\n"
-" -t Встановити теку для тимчасових файлів\n"
-" -c=? Читати зазначений конфігураційний файл\n"
-" -o=? Вказати довільну опцію, наприклад, -o dir::cache=/tmp\n"
-
-#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:815
-#, c-format
-msgid "Unable to write to %s"
-msgstr "Неможливо записати в %s"
-
-#: cmdline/apt-extracttemplates.cc:310
-msgid "Cannot get debconf version. Is debconf installed?"
-msgstr "Неможливо визначити версію debconf. Він встановлений?"
-
-#: ftparchive/apt-ftparchive.cc:164 ftparchive/apt-ftparchive.cc:338
-msgid "Package extension list is too long"
-msgstr "Список розширень, припустимих для пакунків, занадто довгий"
-
-#: ftparchive/apt-ftparchive.cc:166 ftparchive/apt-ftparchive.cc:180
-#: ftparchive/apt-ftparchive.cc:203 ftparchive/apt-ftparchive.cc:253
-#: ftparchive/apt-ftparchive.cc:267 ftparchive/apt-ftparchive.cc:289
-#, c-format
-msgid "Error processing directory %s"
-msgstr "Помилка обробки течи %s"
-
-#: ftparchive/apt-ftparchive.cc:251
-msgid "Source extension list is too long"
-msgstr ""
-"Список розширень, припустимих для пакунків з вихідними текстами, занадто "
-"довгий"
-
-#: ftparchive/apt-ftparchive.cc:368
-msgid "Error writing header to contents file"
-msgstr "Помилка запису заголовка в повний перелік вмісту пакунків (Contents)"
-
-#: ftparchive/apt-ftparchive.cc:398
-#, c-format
-msgid "Error processing contents %s"
-msgstr "помилка обробки повного переліку вмісту пакунків (Contents) %s"
-
-#: ftparchive/apt-ftparchive.cc:553
-msgid ""
-"Usage: apt-ftparchive [options] command\n"
-"Commands: packages binarypath [overridefile [pathprefix]]\n"
-" sources srcpath [overridefile [pathprefix]]\n"
-" contents path\n"
-" release path\n"
-" generate config [groups]\n"
-" clean config\n"
-"\n"
-"apt-ftparchive generates index files for Debian archives. It supports\n"
-"many styles of generation from fully automated to functional replacements\n"
-"for dpkg-scanpackages and dpkg-scansources\n"
-"\n"
-"apt-ftparchive generates Package files from a tree of .debs. The\n"
-"Package file contains the contents of all the control fields from\n"
-"each package as well as the MD5 hash and filesize. An override file\n"
-"is supported to force the value of Priority and Section.\n"
-"\n"
-"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n"
-"The --source-override option can be used to specify a src override file\n"
-"\n"
-"The 'packages' and 'sources' command should be run in the root of the\n"
-"tree. BinaryPath should point to the base of the recursive search and \n"
-"override file should contain the override flags. Pathprefix is\n"
-"appended to the filename fields if present. Example usage from the \n"
-"Debian archive:\n"
-" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
-" dists/potato/main/binary-i386/Packages\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" --md5 Control MD5 generation\n"
-" -s=? Source override file\n"
-" -q Quiet\n"
-" -d=? Select the optional caching database\n"
-" --no-delink Enable delinking debug mode\n"
-" --contents Control contents file generation\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option"
-msgstr ""
-"Використання: apt-ftparchive [параметри] команда\n"
-"Команди: packages binarypath [overridefile [pathprefix]]\n"
-" sources srcpath [overridefile [pathprefix]]\n"
-" contents path\n"
-" release path\n"
-" generate config [groups]\n"
-" clean config\n"
-"\n"
-"apt-ftparchive генерує індексні файли архівів Debian. Він підтримує\n"
-"безліч стилів генерації: від повністю автоматичного до функціональної "
-"заміни\n"
-"програм dpkg-scanpackages і dpkg-scansources\n"
-"\n"
-"apt-ftparchive генерує файли Package (переліки пакунків) для дерева\n"
-"тек, що містять файли .deb. Файл Package містить у собі керуючі\n"
-"поля кожного пакунка, а також хеш MD5 і розмір файлу. Значення керуючих\n"
-"полів \"пріоритет\" (Priority) і \"секція\" (Section) можуть бути змінені з\n"
-"допомогою файлу override.\n"
-"\n"
-"Крім того, apt-ftparchive може генерувати файли Sources з дерева\n"
-"тек, що містять файли .dsc. Для вказівки файлу override у цьому \n"
-"режимі можна використати параметр --source-override.\n"
-"\n"
-"Команди 'packages' і 'sources' треба виконувати, перебуваючи в кореневій "
-"теці\n"
-"дерева, що ви хочете обробити. BinaryPath повинен вказувати на місце,\n"
-"з якого починається рекурсивний обхід, а файл перепризначень (override)\n"
-"повинен містити запис про перепризначення керуючих полів. Якщо був "
-"зазначений\n"
-"Pathprefix, то його значення додається до керуючих полів, що містять\n"
-"імена файлів. Приклад використання для архіву Debian:\n"
-" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
-" dists/potato/main/binary-i386/Packages\n"
-"\n"
-"Параметри:\n"
-" -h Цей текст\n"
-" --md5 Керування генерацією MD5-хешів\n"
-" -s=? Вказати файл перепризначень (override) для пакунків з вихідними "
-"текстами\n"
-" -q Не виводити повідомлення в процесі роботи\n"
-" -d=? Вказати кешуючу базу даних (не обов'язково)\n"
-" --no-delink Включити режим налагодження процесу видалення файлів\n"
-" --contents Керування генерацією повного переліку вмісту пакунків\n"
-" (файлу Contents)\n"
-" -c=? Використати зазначений конфігураційний файл\n"
-" -o=? Вказати довільний параметр конфігурації"
-
-#: ftparchive/apt-ftparchive.cc:759
-msgid "No selections matched"
-msgstr "Збігів не виявлено"
-
-#: ftparchive/apt-ftparchive.cc:832
-#, c-format
-msgid "Some files are missing in the package file group `%s'"
-msgstr "У групі пакунків '%s' відсутні деякі файли"
-
-#: ftparchive/cachedb.cc:43
-#, c-format
-msgid "DB was corrupted, file renamed to %s.old"
-msgstr "БД була пошкоджена, файл перейменований в %s.old"
-
-#: ftparchive/cachedb.cc:61
-#, c-format
-msgid "DB is old, attempting to upgrade %s"
-msgstr "DB застаріла, намагаюсь оновити %s"
-
-#: ftparchive/cachedb.cc:72
-msgid ""
-"DB format is invalid. If you upgraded from a older version of apt, please "
-"remove and re-create the database."
-msgstr ""
-"Формати DB не є правильним. Якщо ви оновилися зі старої версії apt, будь-"
-"ласка видаліть і наново створіть базу."
-
-#: ftparchive/cachedb.cc:77
-#, c-format
-msgid "Unable to open DB file %s: %s"
-msgstr "Не вдалося відкрити DB файл %s: %s"
-
-#: ftparchive/cachedb.cc:123 apt-inst/extract.cc:178 apt-inst/extract.cc:190
-#: apt-inst/extract.cc:207 apt-inst/deb/dpkgdb.cc:117 methods/gpgv.cc:272
-#, c-format
-msgid "Failed to stat %s"
-msgstr "Не вдалося одержати атрибути %s"
-
-#: ftparchive/cachedb.cc:238
-msgid "Archive has no control record"
-msgstr "В архіві немає поля control"
-
-#: ftparchive/cachedb.cc:444
-msgid "Unable to get a cursor"
-msgstr "Неможливо одержати курсор"
-
-#: ftparchive/writer.cc:75
-#, c-format
-msgid "W: Unable to read directory %s\n"
-msgstr "W: Не вдалося прочитати теку %s\n"
-
-#: ftparchive/writer.cc:80
-#, c-format
-msgid "W: Unable to stat %s\n"
-msgstr "W: Неможливо прочитати атрибути %s\n"
-
-#: ftparchive/writer.cc:131
-msgid "E: "
-msgstr "E: "
-
-#: ftparchive/writer.cc:133
-msgid "W: "
-msgstr "W: "
-
-#: ftparchive/writer.cc:140
-msgid "E: Errors apply to file "
-msgstr "E: Помилки відносяться до файлу"
-
-#: ftparchive/writer.cc:157 ftparchive/writer.cc:187
-#, c-format
-msgid "Failed to resolve %s"
-msgstr "Не вдалося піти по посиланню %s"
-
-#: ftparchive/writer.cc:169
-msgid "Tree walking failed"
-msgstr "Не вдалося зробити обхід дерева"
-
-#: ftparchive/writer.cc:194
-#, c-format
-msgid "Failed to open %s"
-msgstr "Не вдалося відкрити %s"
-
-#: ftparchive/writer.cc:253
-#, c-format
-msgid " DeLink %s [%s]\n"
-msgstr "DeLink %s [%s]\n"
-
-#: ftparchive/writer.cc:261
-#, c-format
-msgid "Failed to readlink %s"
-msgstr "Не вдалося прочитати посилання %s"
-
-#: ftparchive/writer.cc:265
-#, c-format
-msgid "Failed to unlink %s"
-msgstr "Не вдалося видалити %s"
-
-#: ftparchive/writer.cc:272
-#, c-format
-msgid "*** Failed to link %s to %s"
-msgstr "*** Не вдалося створити посилання %s на %s"
-
-#: ftparchive/writer.cc:282
-#, c-format
-msgid " DeLink limit of %sB hit.\n"
-msgstr "Перевищено ліміт в %s в DeLink.\n"
-
-#: ftparchive/writer.cc:386
-msgid "Archive had no package field"
-msgstr "В архіві немає поля package"
-
-#: ftparchive/writer.cc:394 ftparchive/writer.cc:609
-#, c-format
-msgid " %s has no override entry\n"
-msgstr " Відсутній запис про перепризначення для %s\n"
-
-#: ftparchive/writer.cc:439 ftparchive/writer.cc:697
-#, c-format
-msgid " %s maintainer is %s not %s\n"
-msgstr " пакунок %s супроводжує %s, а не %s\n"
-
-#: ftparchive/writer.cc:619
-#, c-format
-msgid " %s has no source override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:623
-#, c-format
-msgid " %s has no binary override entry either\n"
-msgstr ""
-
-#: ftparchive/contents.cc:317
-#, c-format
-msgid "Internal error, could not locate member %s"
-msgstr "Внутрішня помилка, не можу знайти складову частину %s"
-
-#: ftparchive/contents.cc:353 ftparchive/contents.cc:384
-msgid "realloc - Failed to allocate memory"
-msgstr "realloc - не вдалося виділити пам'ять"
-
-#: ftparchive/override.cc:34 ftparchive/override.cc:142
-#, c-format
-msgid "Unable to open %s"
-msgstr "Не вдалося відкрити %s"
-
-#: ftparchive/override.cc:60 ftparchive/override.cc:166
-#, c-format
-msgid "Malformed override %s line %lu #1"
-msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #1"
-
-#: ftparchive/override.cc:74 ftparchive/override.cc:178
-#, c-format
-msgid "Malformed override %s line %lu #2"
-msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #2"
-
-#: ftparchive/override.cc:88 ftparchive/override.cc:191
-#, c-format
-msgid "Malformed override %s line %lu #3"
-msgstr "Спотворений запис про перепризначення (override) %s на рядку %lu #3"
-
-#: ftparchive/override.cc:127 ftparchive/override.cc:201
-#, c-format
-msgid "Failed to read the override file %s"
-msgstr "Не вдалося прочитати файл перепризначень (override)%s"
-
-#: ftparchive/multicompress.cc:71
-#, c-format
-msgid "Unknown compression algorithm '%s'"
-msgstr "Невідомий алгоритм стиснення '%s'"
-
-#: ftparchive/multicompress.cc:101
-#, c-format
-msgid "Compressed output %s needs a compression set"
-msgstr "Для отримання стиснутого виводу %s необхідно ввімкнути пакування"
-
-#: ftparchive/multicompress.cc:168 methods/rsh.cc:91
-msgid "Failed to create IPC pipe to subprocess"
-msgstr "Не вдалося створити IPC-канал для породженого процесу"
-
-#: ftparchive/multicompress.cc:194
-msgid "Failed to create FILE*"
-msgstr "Не вдалося створити FILE*"
-
-#: ftparchive/multicompress.cc:197
-msgid "Failed to fork"
-msgstr "Не вдалося виконати породжений процес"
-
-#: ftparchive/multicompress.cc:211
-msgid "Compress child"
-msgstr "Процес-нащадок, що виконує пакування"
-
-#: ftparchive/multicompress.cc:234
-#, c-format
-msgid "Internal error, failed to create %s"
-msgstr "Внутрішня помилка, не вдалося створити %s"
-
-#: ftparchive/multicompress.cc:285
-msgid "Failed to create subprocess IPC"
-msgstr "Не вдалося створити IPC з породженим процесом"
-
-#: ftparchive/multicompress.cc:320
-msgid "Failed to exec compressor "
-msgstr "Не вдалося виконати компресор "
-
-#: ftparchive/multicompress.cc:359
-msgid "decompressor"
-msgstr "декомпресор"
-
-#: ftparchive/multicompress.cc:402
-msgid "IO to subprocess/file failed"
-msgstr "Помилка уведення/виводу в підпроцес/файл"
-
-#: ftparchive/multicompress.cc:454
-msgid "Failed to read while computing MD5"
-msgstr "Помилка читання під час обчислення MD5"
-
-#: ftparchive/multicompress.cc:471
-#, c-format
-msgid "Problem unlinking %s"
-msgstr "Не вдалося видалити %s"
-
-#: ftparchive/multicompress.cc:486 apt-inst/extract.cc:185
-#, c-format
-msgid "Failed to rename %s to %s"
-msgstr "Не вдалося перейменувати %s в %s"
-
-#: cmdline/apt-get.cc:121
-msgid "Y"
-msgstr "Т"
-
-#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1672
-#, c-format
-msgid "Regex compilation error - %s"
-msgstr "Помилка компіляції регулярного виразу - %s"
-
-#: cmdline/apt-get.cc:238
-msgid "The following packages have unmet dependencies:"
-msgstr "Пакунки, що мають незадоволені залежності:"
-
-#: cmdline/apt-get.cc:328
-#, c-format
-msgid "but %s is installed"
-msgstr "але %s вже встановлений"
-
-#: cmdline/apt-get.cc:330
-#, c-format
-msgid "but %s is to be installed"
-msgstr "але %s буде встановлений"
-
-#: cmdline/apt-get.cc:337
-msgid "but it is not installable"
-msgstr "але він не може бути встановлений"
-
-#: cmdline/apt-get.cc:339
-msgid "but it is a virtual package"
-msgstr "але це віртуальний пакунок"
-
-#: cmdline/apt-get.cc:342
-msgid "but it is not installed"
-msgstr "але він не встановлений"
-
-#: cmdline/apt-get.cc:342
-msgid "but it is not going to be installed"
-msgstr "але він не буде встановлений"
-
-#: cmdline/apt-get.cc:347
-msgid " or"
-msgstr " чи"
-
-#: cmdline/apt-get.cc:376
-msgid "The following NEW packages will be installed:"
-msgstr "НОВІ пакунки, які будуть встановлені:"
-
-#: cmdline/apt-get.cc:402
-msgid "The following packages will be REMOVED:"
-msgstr "Пакунки, які будуть ВИДАЛЕНІ:"
-
-#: cmdline/apt-get.cc:424
-msgid "The following packages have been kept back:"
-msgstr "Пакунки, які будуть залишені в незмінному вигляді:"
-
-#: cmdline/apt-get.cc:445
-msgid "The following packages will be upgraded:"
-msgstr "Пакунки, які будуть ОНОВЛЕНІ:"
-
-#: cmdline/apt-get.cc:466
-msgid "The following packages will be DOWNGRADED:"
-msgstr "Пакунки, будуть замінені на більш СТАРІ версії:"
-
-#: cmdline/apt-get.cc:486
-msgid "The following held packages will be changed:"
-msgstr "Пакунки, які повинні були б залишитися без змін, але будуть замінені:"
-
-#: cmdline/apt-get.cc:539
-#, c-format
-msgid "%s (due to %s) "
-msgstr "%s (внаслідок %s) "
-
-#: cmdline/apt-get.cc:547
-msgid ""
-"WARNING: The following essential packages will be removed.\n"
-"This should NOT be done unless you know exactly what you are doing!"
-msgstr ""
-"УВАГА: Ці істотно важливі пакунки будуть вилучені.\n"
-"НЕ РОБІТЬ цього, якщо ви НЕ уявляєте собі всі можливі наслідки!"
-
-#: cmdline/apt-get.cc:578
-#, c-format
-msgid "%lu upgraded, %lu newly installed, "
-msgstr "оновлено %lu, встановлено %lu нових пакунків, "
-
-#: cmdline/apt-get.cc:582
-#, c-format
-msgid "%lu reinstalled, "
-msgstr " %lu перевстановлено, "
-
-#: cmdline/apt-get.cc:584
-#, c-format
-msgid "%lu downgraded, "
-msgstr "%lu пакунків замінено на старі версії, "
-
-#: cmdline/apt-get.cc:586
-#, c-format
-msgid "%lu to remove and %lu not upgraded.\n"
-msgstr "для видалення відмічено %lu пакунків, і %lu пакунків не оновлено.\n"
-
-#: cmdline/apt-get.cc:590
-#, c-format
-msgid "%lu not fully installed or removed.\n"
-msgstr "не встановлено до кінця чи видалено %lu пакунків.\n"
-
-#: cmdline/apt-get.cc:664
-msgid "Correcting dependencies..."
-msgstr "Виправлення залежностей..."
-
-#: cmdline/apt-get.cc:667
-msgid " failed."
-msgstr " невдача."
-
-#: cmdline/apt-get.cc:670
-msgid "Unable to correct dependencies"
-msgstr "Неможливо скоригувати залежності"
-
-#: cmdline/apt-get.cc:673
-msgid "Unable to minimize the upgrade set"
-msgstr "Неможливо мінімізувати набір оновлень"
-
-#: cmdline/apt-get.cc:675
-msgid " Done"
-msgstr " Виконано"
-
-#: cmdline/apt-get.cc:679
-msgid "You might want to run `apt-get -f install' to correct these."
-msgstr ""
-"Можливо, для виправлення цих помилок ви захочете скористатися 'apt-get -f "
-"install'."
-
-#: cmdline/apt-get.cc:682
-msgid "Unmet dependencies. Try using -f."
-msgstr "Незадоволені залежності. Спробуйте використати -f."
-
-#: cmdline/apt-get.cc:704
-msgid "WARNING: The following packages cannot be authenticated!"
-msgstr "УВАГА: Наступні пакунки неможливо автентифікувати!"
-
-#: cmdline/apt-get.cc:708
-msgid "Authentication warning overridden.\n"
-msgstr "Автентифікаційне попередження не прийнято до уваги.\n"
-
-#: cmdline/apt-get.cc:715
-msgid "Install these packages without verification [y/N]? "
-msgstr "Встановити ці пакунки без перевірки [т/Н]? "
-
-#: cmdline/apt-get.cc:717
-msgid "Some packages could not be authenticated"
-msgstr "Деякі пакунки неможливо автентифікувати"
-
-#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873
-msgid "There are problems and -y was used without --force-yes"
-msgstr "Існують проблеми, а опція -y використана без --force-yes"
-
-#: cmdline/apt-get.cc:770
-msgid "Internal error, InstallPackages was called with broken packages!"
-msgstr ""
-"Внутрішня помилка, InstallPackages була викликана з непрацездатними "
-"пакунками!"
-
-#: cmdline/apt-get.cc:779
-msgid "Packages need to be removed but remove is disabled."
-msgstr "Пакунки необхідно видалити, але видалення заборонене."
-
-#: cmdline/apt-get.cc:790
-msgid "Internal error, Ordering didn't finish"
-msgstr "Внутрішня помилка, Ordering не завершилася"
-
-#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:2010 cmdline/apt-get.cc:2043
-msgid "Unable to lock the download directory"
-msgstr "Неможливо заблокувати теку для завантаження"
-
-#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2091 cmdline/apt-get.cc:2332
-#: apt-pkg/cachefile.cc:63
-msgid "The list of sources could not be read."
-msgstr "Неможливо прочитати перелік джерел."
-
-#: cmdline/apt-get.cc:831
-msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
-msgstr "Дивно.. Розбіжність розмірів, напишіть на apt@packages.debian.org"
-
-#: cmdline/apt-get.cc:836
-#, c-format
-msgid "Need to get %sB/%sB of archives.\n"
-msgstr "Необхідно завантажити %sB/%sB архівів.\n"
-
-#: cmdline/apt-get.cc:839
-#, c-format
-msgid "Need to get %sB of archives.\n"
-msgstr "Необхідно завантажити %sB архівів.\n"
-
-#: cmdline/apt-get.cc:844
-#, c-format
-msgid "After unpacking %sB of additional disk space will be used.\n"
-msgstr "Після розпакування об'єм зайнятого дискового простору зросте на %sB.\n"
-
-#: cmdline/apt-get.cc:847
-#, c-format
-msgid "After unpacking %sB disk space will be freed.\n"
-msgstr ""
-"Після розпакування об'єм зайнятого дискового простору зменшиться на %sB.\n"
-
-#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2186
-#, c-format
-msgid "Couldn't determine free space in %s"
-msgstr "Не вдалося визначити кількість вільного місця в %s"
-
-#: cmdline/apt-get.cc:864
-#, c-format
-msgid "You don't have enough free space in %s."
-msgstr "Недостатньо вільного місця в %s."
-
-#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899
-msgid "Trivial Only specified but this is not a trivial operation."
-msgstr ""
-"Запитане виконання тільки тривіальних операцій, але це не тривіальна "
-"операція."
-
-#: cmdline/apt-get.cc:881
-msgid "Yes, do as I say!"
-msgstr "Так, робити, як я скажу!"
-
-#: cmdline/apt-get.cc:883
-#, c-format
-msgid ""
-"You are about to do something potentially harmful.\n"
-"To continue type in the phrase '%s'\n"
-" ?] "
-msgstr ""
-"Те, що ви хочете зробити, може мати небажані наслідки.\n"
-"Щоб продовжити, введіть фразу: '%s'\n"
-" ?] "
-
-#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908
-msgid "Abort."
-msgstr "Перервано."
-
-#: cmdline/apt-get.cc:904
-msgid "Do you want to continue [Y/n]? "
-msgstr "Бажаєте продовжити [Т/н]? "
-
-#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2229
-#, c-format
-msgid "Failed to fetch %s %s\n"
-msgstr "Не вдалося завантажити %s %s\n"
-
-#: cmdline/apt-get.cc:994
-msgid "Some files failed to download"
-msgstr "Деякі файли не вдалося завантажити"
-
-#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2238
-msgid "Download complete and in download only mode"
-msgstr "Вказано режим \"тільки завантаження\", і завантаження завершено"
-
-#: cmdline/apt-get.cc:1001
-msgid ""
-"Unable to fetch some archives, maybe run apt-get update or try with --fix-"
-"missing?"
-msgstr ""
-"Неможливо завантажити деякі архіви, імовірно треба виконати apt-get update "
-"або спробувати повторити запуск з ключем --fix-missing?"
-
-#: cmdline/apt-get.cc:1005
-msgid "--fix-missing and media swapping is not currently supported"
-msgstr "--fix-missing і зміна носія в даний момент не підтримується"
-
-#: cmdline/apt-get.cc:1010
-msgid "Unable to correct missing packages."
-msgstr "Неможливо виправити втрачені пакунки."
-
-#: cmdline/apt-get.cc:1011
-msgid "Aborting install."
-msgstr "Переривається встановлення."
-
-#: cmdline/apt-get.cc:1045
-#, c-format
-msgid "Note, selecting %s instead of %s\n"
-msgstr "Помітьте, замість %2$s вибирається %1$s\n"
-
-#: cmdline/apt-get.cc:1055
-#, c-format
-msgid "Skipping %s, it is already installed and upgrade is not set.\n"
-msgstr ""
-"Пропускається %s - пакунок вже встановлений, і опція upgrade не "
-"встановлена.\n"
-
-#: cmdline/apt-get.cc:1073
-#, c-format
-msgid "Package %s is not installed, so not removed\n"
-msgstr "Пакунок %s не встановлений, тому не може бути видалений\n"
-
-#: cmdline/apt-get.cc:1084
-#, c-format
-msgid "Package %s is a virtual package provided by:\n"
-msgstr "Пакунок %s - віртуальний, його функції надаються пакунками:\n"
-
-#: cmdline/apt-get.cc:1096
-msgid " [Installed]"
-msgstr " [Встановлено]"
-
-#: cmdline/apt-get.cc:1101
-msgid "You should explicitly select one to install."
-msgstr "Ви повинні явно вказати, який саме ви хочете встановити."
-
-#: cmdline/apt-get.cc:1106
-#, c-format
-msgid ""
-"Package %s is not available, but is referred to by another package.\n"
-"This may mean that the package is missing, has been obsoleted, or\n"
-"is only available from another source\n"
-msgstr ""
-"Пакунок %s недоступний, але згадується у переліку залежностей іншого "
-"пакунка.\n"
-"Це може означати, що пакунок відсутній, застарів, або доступний з джерел, не "
-"згаданих в sources.list\n"
-
-#: cmdline/apt-get.cc:1125
-msgid "However the following packages replace it:"
-msgstr "Однак наступні пакунки можуть його замінити:"
-
-#: cmdline/apt-get.cc:1128
-#, c-format
-msgid "Package %s has no installation candidate"
-msgstr "Для пакунка %s не знайдені кандидати на встановлення"
-
-#: cmdline/apt-get.cc:1148
-#, c-format
-msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
-msgstr "Перевстановлення %s неможливе, бо він не може бути завантаженим.\n"
-
-#: cmdline/apt-get.cc:1156
-#, c-format
-msgid "%s is already the newest version.\n"
-msgstr "Вже встановлена найновіша версія %s.\n"
-
-#: cmdline/apt-get.cc:1185
-#, c-format
-msgid "Release '%s' for '%s' was not found"
-msgstr "Реліз '%s' для '%s' не знайдений"
-
-#: cmdline/apt-get.cc:1187
-#, c-format
-msgid "Version '%s' for '%s' was not found"
-msgstr "Версія '%s' для '%s' не знайдена"
-
-#: cmdline/apt-get.cc:1193
-#, c-format
-msgid "Selected version %s (%s) for %s\n"
-msgstr "Обрана версія %s (%s) для %s\n"
-
-#: cmdline/apt-get.cc:1330
-msgid "The update command takes no arguments"
-msgstr "Команді update не потрібні аргументи"
-
-#: cmdline/apt-get.cc:1343
-msgid "Unable to lock the list directory"
-msgstr "Неможливо заблокувати теку з переліками пакунків"
-
-#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412
-msgid ""
-"Some index files failed to download, they have been ignored, or old ones "
-"used instead."
-msgstr ""
-"Деякі індексні файли не завантажилися, вони були зігноровані або замість них "
-"були використані старі версії."
-
-#: cmdline/apt-get.cc:1433
-msgid "We are not supposed to delete stuff, can't start AutoRemover"
-msgstr ""
-
-#: cmdline/apt-get.cc:1465
-#, fuzzy
-msgid ""
-"The following packages were automatically installed and are no longer "
-"required:"
-msgstr "НОВІ пакунки, які будуть встановлені:"
-
-#: cmdline/apt-get.cc:1467
-msgid "Use 'apt-get autoremove' to remove them."
-msgstr ""
-
-#: cmdline/apt-get.cc:1472
-msgid ""
-"Hmm, seems like the AutoRemover destroyed something which really\n"
-"shouldn't happen. Please file a bug report against apt."
-msgstr ""
-
-#: cmdline/apt-get.cc:1475 cmdline/apt-get.cc:1753
-msgid "The following information may help to resolve the situation:"
-msgstr "Наступна інформація можливо допоможе Вам:"
-
-#: cmdline/apt-get.cc:1479
-#, fuzzy
-msgid "Internal Error, AutoRemover broke stuff"
-msgstr "Внутрішня помилка, вирішувач проблем все поламав"
-
-#: cmdline/apt-get.cc:1498
-msgid "Internal error, AllUpgrade broke stuff"
-msgstr "Внутрішня помилка, AllUpgrade все поламав"
-
-#: cmdline/apt-get.cc:1544
-#, fuzzy, c-format
-msgid "Couldn't find task %s"
-msgstr "Не можу знайти пакунок %s"
-
-#: cmdline/apt-get.cc:1659 cmdline/apt-get.cc:1695
-#, c-format
-msgid "Couldn't find package %s"
-msgstr "Не можу знайти пакунок %s"
-
-#: cmdline/apt-get.cc:1682
-#, c-format
-msgid "Note, selecting %s for regex '%s'\n"
-msgstr "Помітьте, регулярний вираз %2$s призводить до вибору %1$s\n"
-
-#: cmdline/apt-get.cc:1712
-#, fuzzy, c-format
-msgid "%s set to manual installed.\n"
-msgstr "але %s буде встановлений"
-
-#: cmdline/apt-get.cc:1725
-msgid "You might want to run `apt-get -f install' to correct these:"
-msgstr ""
-"Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f "
-"install':"
-
-#: cmdline/apt-get.cc:1728
-msgid ""
-"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
-"solution)."
-msgstr ""
-"Незадоволені залежності. Спробуйте виконати 'apt-get -f install', не "
-"вказуючи імені пакунка (або знайдіть інше рішення)."
-
-#: cmdline/apt-get.cc:1740
-msgid ""
-"Some packages could not be installed. This may mean that you have\n"
-"requested an impossible situation or if you are using the unstable\n"
-"distribution that some required packages have not yet been created\n"
-"or been moved out of Incoming."
-msgstr ""
-"Деякі пакунки неможливо встановити. Можливо, Ви просите неможливого,\n"
-"або ж використаєте нестабільний дистрибутив, і запитані Вами пакунки\n"
-"ще не створені або були вилучені з Incoming."
-
-#: cmdline/apt-get.cc:1748
-msgid ""
-"Since you only requested a single operation it is extremely likely that\n"
-"the package is simply not installable and a bug report against\n"
-"that package should be filed."
-msgstr ""
-"Так як Ви просили виконати тільки одну операцію, те найімовірніше, що\n"
-"пакунок просто не може бути встановлений через помилки в самому пакунку.\n"
-"Необхідно відіслати звіт про цю помилку."
-
-#: cmdline/apt-get.cc:1756
-msgid "Broken packages"
-msgstr "Зламані пакунки"
-
-#: cmdline/apt-get.cc:1785
-msgid "The following extra packages will be installed:"
-msgstr "Будуть встановлені наступні додаткові пакунки:"
-
-#: cmdline/apt-get.cc:1874
-msgid "Suggested packages:"
-msgstr "Пропоновані пакунки:"
-
-#: cmdline/apt-get.cc:1875
-msgid "Recommended packages:"
-msgstr "Рекомендовані пакунки:"
-
-#: cmdline/apt-get.cc:1903
-msgid "Calculating upgrade... "
-msgstr "Обчислення оновлень... "
-
-#: cmdline/apt-get.cc:1906 methods/ftp.cc:702 methods/connect.cc:101
-msgid "Failed"
-msgstr "Невдача"
-
-#: cmdline/apt-get.cc:1911
-msgid "Done"
-msgstr "Виконано"
-
-#: cmdline/apt-get.cc:1978 cmdline/apt-get.cc:1986
-msgid "Internal error, problem resolver broke stuff"
-msgstr "Внутрішня помилка, вирішувач проблем все поламав"
-
-#: cmdline/apt-get.cc:2086
-msgid "Must specify at least one package to fetch source for"
-msgstr ""
-"Вкажіть як мінімум один пакунок, для якого необхідно завантажити вихідні "
-"тексти"
-
-#: cmdline/apt-get.cc:2116 cmdline/apt-get.cc:2350
-#, c-format
-msgid "Unable to find a source package for %s"
-msgstr "Неможливо знайти пакунок з вихідними текстами для %s"
-
-#: cmdline/apt-get.cc:2165
-#, c-format
-msgid "Skipping already downloaded file '%s'\n"
-msgstr "Пропускаємо вже завантажений файл '%s'\n"
-
-#: cmdline/apt-get.cc:2189
-#, c-format
-msgid "You don't have enough free space in %s"
-msgstr "Недостатньо місця в %s"
-
-#: cmdline/apt-get.cc:2194
-#, c-format
-msgid "Need to get %sB/%sB of source archives.\n"
-msgstr "Необхідно завантажити %sB/%sB з архівів вихідних текстів.\n"
-
-#: cmdline/apt-get.cc:2197
-#, c-format
-msgid "Need to get %sB of source archives.\n"
-msgstr "Потрібно завантажити %sB архівів з вихідними текстами.\n"
-
-#: cmdline/apt-get.cc:2203
-#, c-format
-msgid "Fetch source %s\n"
-msgstr "Завантаження вихідних текстів %s\n"
-
-#: cmdline/apt-get.cc:2234
-msgid "Failed to fetch some archives."
-msgstr "Деякі архіви не вдалося завантажити."
-
-#: cmdline/apt-get.cc:2262
-#, c-format
-msgid "Skipping unpack of already unpacked source in %s\n"
-msgstr ""
-"Розпакування вихідних текстів пропущено, тому що в %s вже перебувають "
-"розпаковані вихідні тексти\n"
-
-#: cmdline/apt-get.cc:2274
-#, c-format
-msgid "Unpack command '%s' failed.\n"
-msgstr "Команда розпакування '%s' завершилася невдало.\n"
-
-#: cmdline/apt-get.cc:2275
-#, c-format
-msgid "Check if the 'dpkg-dev' package is installed.\n"
-msgstr "Перевірте, чи встановлений пакунок 'dpkg-dev'.\n"
-
-#: cmdline/apt-get.cc:2292
-#, c-format
-msgid "Build command '%s' failed.\n"
-msgstr "Команда побудови '%s' закінчилася невдало.\n"
-
-#: cmdline/apt-get.cc:2311
-msgid "Child process failed"
-msgstr "Породжений процес завершився невдало"
-
-#: cmdline/apt-get.cc:2327
-msgid "Must specify at least one package to check builddeps for"
-msgstr ""
-"Для перевірки залежностей для побудови необхідно вказати як мінімум один "
-"пакунок"
-
-#: cmdline/apt-get.cc:2355
-#, c-format
-msgid "Unable to get build-dependency information for %s"
-msgstr "Неможливо одержати інформацію про залежності для побудови %s"
-
-#: cmdline/apt-get.cc:2375
-#, c-format
-msgid "%s has no build depends.\n"
-msgstr "%s не має залежностей для побудови.\n"
-
-#: cmdline/apt-get.cc:2427
-#, c-format
-msgid ""
-"%s dependency for %s cannot be satisfied because the package %s cannot be "
-"found"
-msgstr ""
-"Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено"
-
-#: cmdline/apt-get.cc:2479
-#, c-format
-msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
-msgstr ""
-"Залежність типу %s для %s не може бути задоволена, бо ні одна з версій "
-"пакунка %s не задовольняє умови"
-
-#: cmdline/apt-get.cc:2514
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений "
-"пакунок %s новіше, аніж треба"
-
-#: cmdline/apt-get.cc:2539
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: %s"
-msgstr "Неможливо задовольнити залежність типу %s для пакунка %s: %s"
-
-#: cmdline/apt-get.cc:2553
-#, c-format
-msgid "Build-dependencies for %s could not be satisfied."
-msgstr "Залежності для побудови %s не можуть бути задоволені."
-
-#: cmdline/apt-get.cc:2557
-msgid "Failed to process build dependencies"
-msgstr "Обробка залежностей для побудови закінчилася невдало"
-
-#: cmdline/apt-get.cc:2589
-msgid "Supported modules:"
-msgstr "Підтримувані модулі:"
-
-#: cmdline/apt-get.cc:2630
-#, fuzzy
-msgid ""
-"Usage: apt-get [options] command\n"
-" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
-" apt-get [options] source pkg1 [pkg2 ...]\n"
-"\n"
-"apt-get is a simple command line interface for downloading and\n"
-"installing packages. The most frequently used commands are update\n"
-"and install.\n"
-"\n"
-"Commands:\n"
-" update - Retrieve new lists of packages\n"
-" upgrade - Perform an upgrade\n"
-" install - Install new packages (pkg is libc6 not libc6.deb)\n"
-" remove - Remove packages\n"
-" purge - Remove and purge packages\n"
-" source - Download source archives\n"
-" build-dep - Configure build-dependencies for source packages\n"
-" dist-upgrade - Distribution upgrade, see apt-get(8)\n"
-" dselect-upgrade - Follow dselect selections\n"
-" clean - Erase downloaded archive files\n"
-" autoclean - Erase old downloaded archive files\n"
-" check - Verify that there are no broken dependencies\n"
-"\n"
-"Options:\n"
-" -h This help text.\n"
-" -q Loggable output - no progress indicator\n"
-" -qq No output except for errors\n"
-" -d Download only - do NOT install or unpack archives\n"
-" -s No-act. Perform ordering simulation\n"
-" -y Assume Yes to all queries and do not prompt\n"
-" -f Attempt to continue if the integrity check fails\n"
-" -m Attempt to continue if archives are unlocatable\n"
-" -u Show a list of upgraded packages as well\n"
-" -b Build the source package after fetching it\n"
-" -V Show verbose version numbers\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-"See the apt-get(8), sources.list(5) and apt.conf(5) manual\n"
-"pages for more information and options.\n"
-" This APT has Super Cow Powers.\n"
-msgstr ""
-"Використання: apt-get [options] command\n"
-" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
-" apt-get [options] source pkg1 [pkg2 ...]\n"
-"\n"
-"apt-get - простий інтерфейс командного рядка для завантаження й\n"
-"встановлення пакунків. Найбільш часто використовувані команди - update \n"
-"і install.\n"
-"\n"
-"Команди:\n"
-" update - завантажити нові переліки пакунків\n"
-" upgrade - виконати оновлення пакунків\n"
-" install - встановити нові пакунки (назва пакунка вказується\n"
-" як libc6, а не libc6.deb)\n"
-" remove - видалити пакунок\n"
-" source - завантажити архіви з вихідними текстами\n"
-" build-dep - завантажити все необхідне для побудови зазначеного\n"
-" пакунку з вихідних текстів\n"
-" dist-upgrade - оновити всю систему, докладніше - в apt-get(8)\n"
-" dselect-upgrade - керуватися вибором, зробленим в dselect'і\n"
-" clean - видалити завантажені архіви\n"
-" autoclean - видалити старі завантажені архіви\n"
-" check - перевірити наявність порушених залежностей\n"
-"\n"
-"Опції:\n"
-" -h Цей текст.\n"
-" -q Виводити повідомлення, придатні для запису у файл журналу.\n"
-" Не виводити індикатор прогресу\n"
-" -qq Виводити тільки повідомлення про помилки\n"
-" -d Тільки завантажити - не встановлювати й не розпаковувати архіви\n"
-" -s Не виконувати дії насправді. Імітація роботи\n"
-" -y Відповідати \"Так\" на всі питання. Самі питання при цьому не "
-"виводяться\n"
-" -f Продовжувати, навіть якщо перевірка цілісності не пройшла\n"
-" -m Продовжувати, навіть якщо місце розташування архівів невідомо\n"
-" -u Показувати список оновлюваних пакунків\n"
-" -b Компілювати пакунок з вихідних текстів після їхнього завантаження\n"
-" -V Показувати версії пакунків\n"
-" -c=? Читати зазначений файл конфігурації\n"
-" -o=? Встановити довільну опцію, наприклад, -o dir::cache=/tmp\n"
-"Сторінки керівництва apt-get(8), sources.list(5) і apt.conf(5)\n"
-"містять більше інформації.\n"
-" This APT has Super Cow Powers.\n"
-
-#: cmdline/acqprogress.cc:55
-msgid "Hit "
-msgstr "В кеші "
-
-#: cmdline/acqprogress.cc:79
-msgid "Get:"
-msgstr "Отр:"
-
-#: cmdline/acqprogress.cc:110
-msgid "Ign "
-msgstr "Ігн "
-
-#: cmdline/acqprogress.cc:114
-msgid "Err "
-msgstr "Пом "
-
-#: cmdline/acqprogress.cc:135
-#, c-format
-msgid "Fetched %sB in %s (%sB/s)\n"
-msgstr "Отримано %sB за %sB (%sB/s)\n"
-
-#: cmdline/acqprogress.cc:225
-#, c-format
-msgid " [Working]"
-msgstr " [Йде робота]"
-
-#: cmdline/acqprogress.cc:271
-#, c-format
-msgid ""
-"Media change: please insert the disc labeled\n"
-" '%s'\n"
-"in the drive '%s' and press enter\n"
-msgstr ""
-"Зміна носія: вставте диск з міткою '%s' у пристрій '%s' і натисніть Ввід\n"
-
-#: cmdline/apt-sortpkgs.cc:86
-msgid "Unknown package record!"
-msgstr "Запис про невідомий пакунок!"
-
-#: cmdline/apt-sortpkgs.cc:150
-msgid ""
-"Usage: apt-sortpkgs [options] file1 [file2 ...]\n"
-"\n"
-"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n"
-"to indicate what kind of file it is.\n"
-"\n"
-"Options:\n"
-" -h This help text\n"
-" -s Use source file sorting\n"
-" -c=? Read this configuration file\n"
-" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-msgstr ""
-"Використання: apt-sortpkgs [options] file1 [file2 ...]\n"
-"\n"
-"apt-sortpkgs - простий інструмент для сортування переліків пакунків. Опція -"
-"s\n"
-"використається, щоб вказати тип списку.\n"
-"\n"
-"Опції:\n"
-" -h цей текст\n"
-" -s сортувати список файлів з вихідними текстами\n"
-" -c=? читати зазначений файл конфігурації\n"
-" -o=? встановити довільну опцію, наприклад, -o dir::cache=/tmp\n"
-
-#: dselect/install:32
-msgid "Bad default setting!"
-msgstr "Неправильне значення по замовчуванню!"
-
-#: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:93
-#: dselect/install:104 dselect/update:45
-msgid "Press enter to continue."
-msgstr "Для продовження натисніть Ввід."
-
-#: dselect/install:100
-msgid "Some errors occurred while unpacking. I'm going to configure the"
-msgstr ""
-"Під час розпакування виникли помилки. Буде продовжено процес налаштування"
-
-#: dselect/install:101
-msgid "packages that were installed. This may result in duplicate errors"
-msgstr "встановлених пакунків. Це може призвести до повторення помилок або"
-
-#: dselect/install:102
-msgid "or errors caused by missing dependencies. This is OK, only the errors"
-msgstr "виникненню нових через незадоволені залежності. Це нормально,"
-
-#: dselect/install:103
-msgid ""
-"above this message are important. Please fix them and run [I]nstall again"
-msgstr ""
-"важливі тільки помилки, зазначені вище. Виправте їх і виконаєте установку ще "
-"раз"
-
-#: dselect/update:30
-msgid "Merging available information"
-msgstr "Об'єднання інформації про доступні пакунки"
-
-#: apt-inst/contrib/extracttar.cc:114
-msgid "Failed to create pipes"
-msgstr "Не вдалося створити канали (pipes)"
-
-#: apt-inst/contrib/extracttar.cc:141
-msgid "Failed to exec gzip "
-msgstr "Не вдалося виконати компресор gzip"
-
-#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204
-msgid "Corrupted archive"
-msgstr "Пошкоджений архів"
-
-#: apt-inst/contrib/extracttar.cc:193
-msgid "Tar checksum failed, archive corrupted"
-msgstr "Контрольна сума tar архіва невірна, архів пошкоджений"
-
-#: apt-inst/contrib/extracttar.cc:296
-#, c-format
-msgid "Unknown TAR header type %u, member %s"
-msgstr "Невідомий тип заголовку TAR %u, член %s"
-
-#: apt-inst/contrib/arfile.cc:70
-msgid "Invalid archive signature"
-msgstr "Невірний підпис архіву"
-
-#: apt-inst/contrib/arfile.cc:78
-msgid "Error reading archive member header"
-msgstr "Неможливо прочитати заголовок \"member\" архіву"
-
-#: apt-inst/contrib/arfile.cc:90 apt-inst/contrib/arfile.cc:102
-msgid "Invalid archive member header"
-msgstr "Невірний заголовок \"member\" архіву"
-
-#: apt-inst/contrib/arfile.cc:128
-msgid "Archive is too short"
-msgstr "Архів занадто малий"
-
-#: apt-inst/contrib/arfile.cc:132
-msgid "Failed to read the archive headers"
-msgstr "Не вдалося прочитати заголовки архіву"
-
-#: apt-inst/filelist.cc:380
-#, fuzzy
-msgid "DropNode called on still linked node"
-msgstr "DropNode викликаний для вузла, який ще використовується"
-
-#: apt-inst/filelist.cc:412
-msgid "Failed to locate the hash element!"
-msgstr "Не вдалося знайти елемент хешу!"
-
-#: apt-inst/filelist.cc:459
-#, fuzzy
-msgid "Failed to allocate diversion"
-msgstr "Не вдалося створити diversion"
-
-#: apt-inst/filelist.cc:464
-msgid "Internal error in AddDiversion"
-msgstr "Внутрішня помилка в AddDiversion"
-
-#: apt-inst/filelist.cc:477
-#, fuzzy, c-format
-msgid "Trying to overwrite a diversion, %s -> %s and %s/%s"
-msgstr "Спроба зміни diversion, %s -> %s і %s/%s"
-
-#: apt-inst/filelist.cc:506
-#, fuzzy, c-format
-msgid "Double add of diversion %s -> %s"
-msgstr "Подвійне додавання diversion %s -> %s"
-
-#: apt-inst/filelist.cc:549
-#, c-format
-msgid "Duplicate conf file %s/%s"
-msgstr "Копія конфігураційного файлу %s/%s"
-
-#: apt-inst/dirstream.cc:41 apt-inst/dirstream.cc:46 apt-inst/dirstream.cc:49
-#, c-format
-msgid "Failed to write file %s"
-msgstr "Не вдалося записати файл %s"
-
-#: apt-inst/dirstream.cc:92 apt-inst/dirstream.cc:100
-#, c-format
-msgid "Failed to close file %s"
-msgstr "Не вдалося закрити файл %s"
-
-#: apt-inst/extract.cc:93 apt-inst/extract.cc:164
-#, c-format
-msgid "The path %s is too long"
-msgstr "Шлях %s занадто довгий"
-
-#: apt-inst/extract.cc:124
-#, c-format
-msgid "Unpacking %s more than once"
-msgstr "Розпакування %s більш ніж один раз"
-
-#: apt-inst/extract.cc:134
-#, fuzzy, c-format
-msgid "The directory %s is diverted"
-msgstr "Тека %s входить до переліку diverted"
-
-#: apt-inst/extract.cc:144
-#, fuzzy, c-format
-msgid "The package is trying to write to the diversion target %s/%s"
-msgstr "Пакет пробує писати у diversion %s/%s"
-
-#: apt-inst/extract.cc:154 apt-inst/extract.cc:297
-#, fuzzy
-msgid "The diversion path is too long"
-msgstr "Шлях diversion занадто довгий"
-
-#: apt-inst/extract.cc:240
-#, c-format
-msgid "The directory %s is being replaced by a non-directory"
-msgstr "Тека %s замінюється не текою"
-
-#: apt-inst/extract.cc:280
-#, fuzzy
-msgid "Failed to locate node in its hash bucket"
-msgstr "Не вдалося розмістити вузол у хеші"
-
-#: apt-inst/extract.cc:284
-msgid "The path is too long"
-msgstr "Шлях занадто довгий"
-
-#: apt-inst/extract.cc:414
-#, fuzzy, c-format
-msgid "Overwrite package match with no version for %s"
-msgstr "Файли заміняються вмістом пакета %s без версії"
-
-#: apt-inst/extract.cc:431
-#, fuzzy, c-format
-msgid "File %s/%s overwrites the one in the package %s"
-msgstr "Файл %s/%s перезаписує інший з пакету %s"
-
-#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:748
-#: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320
-#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34
-#, c-format
-msgid "Unable to read %s"
-msgstr "Неможливо прочитати %s"
-
-#: apt-inst/extract.cc:491
-#, c-format
-msgid "Unable to stat %s"
-msgstr "Неможливо прочитати атрибути %s"
-
-#: apt-inst/deb/dpkgdb.cc:51 apt-inst/deb/dpkgdb.cc:57
-#, c-format
-msgid "Failed to remove %s"
-msgstr "Невдача видалення %s"
-
-#: apt-inst/deb/dpkgdb.cc:106 apt-inst/deb/dpkgdb.cc:108
-#, c-format
-msgid "Unable to create %s"
-msgstr "Неможливо створити %s"
-
-#: apt-inst/deb/dpkgdb.cc:114
-#, c-format
-msgid "Failed to stat %sinfo"
-msgstr "Не вдалося прочитати атрибути %sinfo"
-
-#: apt-inst/deb/dpkgdb.cc:119
-msgid "The info and temp directories need to be on the same filesystem"
-msgstr "Теки info і temp повинні бути на тій самій файловій системі"
-
-#. Build the status cache
-#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:748
-#: apt-pkg/pkgcachegen.cc:817 apt-pkg/pkgcachegen.cc:822
-#: apt-pkg/pkgcachegen.cc:945
-msgid "Reading package lists"
-msgstr "Читання переліків пакетів"
-
-#: apt-inst/deb/dpkgdb.cc:176
-#, c-format
-msgid "Failed to change to the admin dir %sinfo"
-msgstr "Невдача зміни до адмінової теки %sinfo"
-
-#: apt-inst/deb/dpkgdb.cc:197 apt-inst/deb/dpkgdb.cc:351
-#: apt-inst/deb/dpkgdb.cc:444
-msgid "Internal error getting a package name"
-msgstr "Внутрішня помилка отримання назви пакунку"
-
-#: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:382
-msgid "Reading file listing"
-msgstr "Читання переліку файлів"
-
-#: apt-inst/deb/dpkgdb.cc:212
-#, c-format
-msgid ""
-"Failed to open the list file '%sinfo/%s'. If you cannot restore this file "
-"then make it empty and immediately re-install the same version of the "
-"package!"
-msgstr ""
-"Не вдалося відкрити list файл '%sinfo/%s'. Якщо Ви не можете відновити цей "
-"файл, тоді зробіть його пустим і негайно реінсталюйте ту ж саму версію "
-"пакунка!"
-
-#: apt-inst/deb/dpkgdb.cc:225 apt-inst/deb/dpkgdb.cc:238
-#, c-format
-msgid "Failed reading the list file %sinfo/%s"
-msgstr "Невдача читання list файла %sinfo/%s"
-
-#: apt-inst/deb/dpkgdb.cc:262
-#, fuzzy
-msgid "Internal error getting a node"
-msgstr "Внутрішня помилка при отриманні Node"
-
-#: apt-inst/deb/dpkgdb.cc:305
-#, fuzzy, c-format
-msgid "Failed to open the diversions file %sdiversions"
-msgstr "Не вдалося відкрити файл diversions %sdiversions"
-
-#: apt-inst/deb/dpkgdb.cc:320
-#, fuzzy
-msgid "The diversion file is corrupted"
-msgstr "Файл diversions пошкоджений"
-
-#: apt-inst/deb/dpkgdb.cc:327 apt-inst/deb/dpkgdb.cc:332
-#: apt-inst/deb/dpkgdb.cc:337
-#, fuzzy, c-format
-msgid "Invalid line in the diversion file: %s"
-msgstr "Невірна лінія в файлі diversions: %s"
-
-#: apt-inst/deb/dpkgdb.cc:358
-#, fuzzy
-msgid "Internal error adding a diversion"
-msgstr "Внутрішня помилка при додаванні diversion"
-
-#: apt-inst/deb/dpkgdb.cc:379
-msgid "The pkg cache must be initialized first"
-msgstr "Кеш пакунків повинен бути ініціалізованим першим"
-
-#: apt-inst/deb/dpkgdb.cc:439
-#, fuzzy, c-format
-msgid "Failed to find a Package: header, offset %lu"
-msgstr "Не вдалося знайти пакунок: заголовок, зсув %lu"
-
-#: apt-inst/deb/dpkgdb.cc:461
-#, fuzzy, c-format
-msgid "Bad ConfFile section in the status file. Offset %lu"
-msgstr "Погана секція ConfFile у статусному файлі. Зсув %lu"
-
-#: apt-inst/deb/dpkgdb.cc:466
-#, fuzzy, c-format
-msgid "Error parsing MD5. Offset %lu"
-msgstr "Помилка обробки MD5. Зсув %lu"
-
-#: apt-inst/deb/debfile.cc:38 apt-inst/deb/debfile.cc:43
-#, c-format
-msgid "This is not a valid DEB archive, missing '%s' member"
-msgstr "Невірний DEB архів, відсутній член '%s'"
-
-#: apt-inst/deb/debfile.cc:48
-#, c-format
-msgid "This is not a valid DEB archive, it has no '%s' or '%s' member"
-msgstr "Невірний DEB архів, відсутній член '%s' чи '%s'"
-
-#: apt-inst/deb/debfile.cc:108
-#, c-format
-msgid "Couldn't change to %s"
-msgstr "Неможливо змінити %s"
-
-#: apt-inst/deb/debfile.cc:134
-msgid "Internal error, could not locate member"
-msgstr "Внутрішня помилка, не можу знайти member"
-
-#: apt-inst/deb/debfile.cc:167
-msgid "Failed to locate a valid control file"
-msgstr "Не вдалося знайти правильний контрольний (control) файл"
-
-#: apt-inst/deb/debfile.cc:252
-msgid "Unparsable control file"
-msgstr "Контрольний файл не можливо обробити"
-
-#: methods/cdrom.cc:114
-#, c-format
-msgid "Unable to read the cdrom database %s"
-msgstr "Неможливо прочитати базу %s з cdrom'у"
-
-#: methods/cdrom.cc:123
-msgid ""
-"Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update "
-"cannot be used to add new CD-ROMs"
-msgstr ""
-"Будь-ласка використовуйте apt-cdrom, щоб APT розпізнав цей CD-ROM, apt-get "
-"update не може бути використаним для додання нових CD"
-
-#: methods/cdrom.cc:131
-msgid "Wrong CD-ROM"
-msgstr "Невірний CD-ROM"
-
-#: methods/cdrom.cc:166
-#, c-format
-msgid "Unable to unmount the CD-ROM in %s, it may still be in use."
-msgstr "Неможливо демонтувати CDROM в %s, можливо він все ще використовується."
-
-#: methods/cdrom.cc:171
-msgid "Disk not found."
-msgstr "Диск не знайдено."
-
-#: methods/cdrom.cc:179 methods/file.cc:79 methods/rsh.cc:264
-msgid "File not found"
-msgstr "Файл не знайдено"
-
-#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141
-#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243
-msgid "Failed to stat"
-msgstr "Не вдалося одержати атрибути"
-
-#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147
-#: methods/rred.cc:240
-msgid "Failed to set modification time"
-msgstr "Не вдалося встановити час модифікації"
-
-#: methods/file.cc:44
-msgid "Invalid URI, local URIS must not start with //"
-msgstr "Невірне посилання, локальні посилання повинні починатися з //"
-
-#. Login must be before getpeername otherwise dante won't work.
-#: methods/ftp.cc:162
-msgid "Logging in"
-msgstr "Логінюсь в"
-
-#: methods/ftp.cc:168
-msgid "Unable to determine the peer name"
-msgstr "Неможливо визначити назву вузла"
-
-#: methods/ftp.cc:173
-msgid "Unable to determine the local name"
-msgstr "Неможливо визначити локальну назву"
-
-#: methods/ftp.cc:204 methods/ftp.cc:232
-#, c-format
-msgid "The server refused the connection and said: %s"
-msgstr "Сервер розірвав з'єднання і мовив: %s"
-
-#: methods/ftp.cc:210
-#, c-format
-msgid "USER failed, server said: %s"
-msgstr "USER невдало, сервер мовив: %s"
-
-#: methods/ftp.cc:217
-#, c-format
-msgid "PASS failed, server said: %s"
-msgstr "PASS невдало, сервер мовив: %s"
-
-#: methods/ftp.cc:237
-msgid ""
-"A proxy server was specified but no login script, Acquire::ftp::ProxyLogin "
-"is empty."
-msgstr ""
-"Вказано проксі-сервер, але відсутній скрипт логіну, Acquire::ftp::ProxyLogin "
-"пустий."
-
-#: methods/ftp.cc:265
-#, c-format
-msgid "Login script command '%s' failed, server said: %s"
-msgstr "Команда '%s'скрипту логіна не вдалася, сервер мовив: %s"
-
-#: methods/ftp.cc:291
-#, c-format
-msgid "TYPE failed, server said: %s"
-msgstr "TYPE невдало, сервер мовив: %s"
-
-#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226
-msgid "Connection timeout"
-msgstr "Час з'єднання вичерпався"
-
-#: methods/ftp.cc:335
-msgid "Server closed the connection"
-msgstr "Сервер закрив з'єднання"
-
-#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:469 methods/rsh.cc:190
-msgid "Read error"
-msgstr "Помилка читання"
-
-#: methods/ftp.cc:345 methods/rsh.cc:197
-msgid "A response overflowed the buffer."
-msgstr "Відповідь переповнила буфер."
-
-#: methods/ftp.cc:362 methods/ftp.cc:374
-msgid "Protocol corruption"
-msgstr "Спотворений протокол"
-
-#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:508 methods/rsh.cc:232
-msgid "Write error"
-msgstr "Помилка запису"
-
-#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729
-msgid "Could not create a socket"
-msgstr "Неможливо створити сокет (socket)"
-
-#: methods/ftp.cc:698
-msgid "Could not connect data socket, connection timed out"
-msgstr "Неможливо під'єднати сокет (socket) з даними, час з'єднання вичерпався"
-
-#: methods/ftp.cc:704
-msgid "Could not connect passive socket."
-msgstr "Неможливо під'єднати пасивний сокет (passive socket)."
-
-#: methods/ftp.cc:722
-#, fuzzy
-msgid "getaddrinfo was unable to get a listening socket"
-msgstr "Виклик getaddrinfo не зміг отримати сокет"
-
-#: methods/ftp.cc:736
-msgid "Could not bind a socket"
-msgstr "Неможливо приєднатися до сокета"
-
-#: methods/ftp.cc:740
-#, fuzzy
-msgid "Could not listen on the socket"
-msgstr "Не можливо утримувати з'єднання на сокеті"
-
-#: methods/ftp.cc:747
-msgid "Could not determine the socket's name"
-msgstr "Не вдалося визначити назву сокета"
-
-#: methods/ftp.cc:779
-msgid "Unable to send PORT command"
-msgstr "Неможливо відіслати команду PORT"
-
-#: methods/ftp.cc:789
-#, c-format
-msgid "Unknown address family %u (AF_*)"
-msgstr "Невідоме адресове сімейство %u (AF_*)"
-
-#: methods/ftp.cc:798
-#, c-format
-msgid "EPRT failed, server said: %s"
-msgstr "EPRT невдало, сервер мовив: %s"
-
-#: methods/ftp.cc:818
-msgid "Data socket connect timed out"
-msgstr "Час з'єднання з сокетом даних вичерпався"
-
-#: methods/ftp.cc:825
-msgid "Unable to accept connection"
-msgstr "Неможливо прийняти з'єднання"
-
-#: methods/ftp.cc:864 methods/http.cc:959 methods/rsh.cc:303
-msgid "Problem hashing file"
-msgstr "Проблема хешування файла"
-
-#: methods/ftp.cc:877
-#, c-format
-msgid "Unable to fetch file, server said '%s'"
-msgstr "Неможливо завантажити файл, сервер мовив: '%s'"
-
-#: methods/ftp.cc:892 methods/rsh.cc:322
-msgid "Data socket timed out"
-msgstr "Час з'єднання з сокетом (socket) з даними вичерпався"
-
-#: methods/ftp.cc:922
-#, c-format
-msgid "Data transfer failed, server said '%s'"
-msgstr "Передача даних обірвалася, сервер мовив '%s'"
-
-#. Get the files information
-#: methods/ftp.cc:997
-msgid "Query"
-msgstr "Черга"
-
-#: methods/ftp.cc:1109
-msgid "Unable to invoke "
-msgstr "Неможливо викликати "
-
-#: methods/connect.cc:64
-#, c-format
-msgid "Connecting to %s (%s)"
-msgstr "З'єднання з %s (%s)"
-
-#: methods/connect.cc:71
-#, c-format
-msgid "[IP: %s %s]"
-msgstr "[IP: %s %s]"
-
-#: methods/connect.cc:80
-#, c-format
-msgid "Could not create a socket for %s (f=%u t=%u p=%u)"
-msgstr "Неможливо створити сокет для %s (f=%u t=%u p=%u)"
-
-#: methods/connect.cc:86
-#, c-format
-msgid "Cannot initiate the connection to %s:%s (%s)."
-msgstr "Неможливо ініціалізувати з'єднання з %s:%s (%s)."
-
-#: methods/connect.cc:93
-#, c-format
-msgid "Could not connect to %s:%s (%s), connection timed out"
-msgstr "Неможливо з'єднатися з %s:%s (%s), час з'єднання вичерпався"
-
-#: methods/connect.cc:108
-#, c-format
-msgid "Could not connect to %s:%s (%s)."
-msgstr "Не можливо під'єднатися до %s:%s (%s)."
-
-#. We say this mainly because the pause here is for the
-#. ssh connection that is still going
-#: methods/connect.cc:136 methods/rsh.cc:425
-#, c-format
-msgid "Connecting to %s"
-msgstr "З'єднання з %s"
-
-#: methods/connect.cc:167
-#, c-format
-msgid "Could not resolve '%s'"
-msgstr "Не можу знайти IP адрес для %s"
-
-#: methods/connect.cc:173
-#, c-format
-msgid "Temporary failure resolving '%s'"
-msgstr "Тимчасова помилка при отриманні IP адреси '%s'"
-
-#: methods/connect.cc:176
-#, c-format
-msgid "Something wicked happened resolving '%s:%s' (%i)"
-msgstr "Сталося щось дивне при спробі отримати IP адрес для '%s:%s' (%i)"
-
-#: methods/connect.cc:223
-#, c-format
-msgid "Unable to connect to %s %s:"
-msgstr "Не можливо під'єднатися до %s %s:"
-
-#: methods/gpgv.cc:65
-#, fuzzy, c-format
-msgid "Couldn't access keyring: '%s'"
-msgstr "Неможливо отримати доступ до keyring: '%s'"
-
-#: methods/gpgv.cc:100
-msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
-msgstr ""
-"E: Перелік аргументів з Acquire::gpgv::Options занадто довгий. Відміна."
-
-#: methods/gpgv.cc:204
-msgid ""
-"Internal error: Good signature, but could not determine key fingerprint?!"
-msgstr ""
-"Внутрішня помилка: Вірний підпис (signature), але не можливо визначити його "
-"відбиток?!"
-
-#: methods/gpgv.cc:209
-msgid "At least one invalid signature was encountered."
-msgstr "Знайдено як мінімум один невірний підпис."
-
-#: methods/gpgv.cc:213
-#, c-format
-msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
-msgstr "Неможливо виконати '%s' для перевірки підпису, gnupg встановлено?"
-
-#: methods/gpgv.cc:218
-msgid "Unknown error executing gpgv"
-msgstr "Невідома помилка виконання gpgv"
-
-#: methods/gpgv.cc:249
-msgid "The following signatures were invalid:\n"
-msgstr "Слідуючі підписи були невірними:\n"
-
-#: methods/gpgv.cc:256
-msgid ""
-"The following signatures couldn't be verified because the public key is not "
-"available:\n"
-msgstr ""
-"Слідуючі підписи не можуть бути перевірені, тому що, публічний ключ "
-"відсутній:\n"
-
-#: methods/gzip.cc:64
-#, c-format
-msgid "Couldn't open pipe for %s"
-msgstr "Неможливо відкрити канал (pipe) для %s"
-
-#: methods/gzip.cc:109
-#, c-format
-msgid "Read error from %s process"
-msgstr "Помилка читання з процесу %s"
-
-#: methods/http.cc:377
-msgid "Waiting for headers"
-msgstr "Очікування на заголовки"
-
-#: methods/http.cc:523
-#, c-format
-msgid "Got a single header line over %u chars"
-msgstr "Отримано одну заголовкову лінію понад %u символів"
-
-#: methods/http.cc:531
-msgid "Bad header line"
-msgstr "Невірна лінія заголовку"
-
-#: methods/http.cc:550 methods/http.cc:557
-msgid "The HTTP server sent an invalid reply header"
-msgstr "HTTP сервер відіслав невірний заголовок 'reply'"
-
-#: methods/http.cc:586
-msgid "The HTTP server sent an invalid Content-Length header"
-msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'"
-
-#: methods/http.cc:601
-msgid "The HTTP server sent an invalid Content-Range header"
-msgstr "HTTP сервер відіслав невірний заголовок 'Content-Length'"
-
-#: methods/http.cc:603
-msgid "This HTTP server has broken range support"
-msgstr "Цей HTTP сервер має поламану підтримку 'range'"
-
-#: methods/http.cc:627
-msgid "Unknown date format"
-msgstr "Невідомий формат дати"
-
-#: methods/http.cc:774
-msgid "Select failed"
-msgstr "Вибір не вдався"
-
-#: methods/http.cc:779
-msgid "Connection timed out"
-msgstr "Час очікування з'єднання вийшов"
-
-#: methods/http.cc:802
-msgid "Error writing to output file"
-msgstr "Помилка запису в вихідний файл"
-
-#: methods/http.cc:833
-#, fuzzy
-msgid "Error writing to file"
-msgstr "Помилка запису в файл"
-
-#: methods/http.cc:861
-#, fuzzy
-msgid "Error writing to the file"
-msgstr "Помилка запису в файл"
-
-#: methods/http.cc:875
-msgid "Error reading from server. Remote end closed connection"
-msgstr "Помилка читання з сервера. Віддалена сторона закрила з'єднання"
-
-#: methods/http.cc:877
-msgid "Error reading from server"
-msgstr "Помилка читання з сервера"
-
-#: methods/http.cc:1108
-msgid "Bad header data"
-msgstr "Погана заголовкова інформація"
-
-#: methods/http.cc:1125
-msgid "Connection failed"
-msgstr "З'єднання не вдалося"
-
-#: methods/http.cc:1216
-msgid "Internal error"
-msgstr "Внутрішня помилка"
-
-#: apt-pkg/contrib/mmap.cc:78
-msgid "Can't mmap an empty file"
-msgstr "Неможливо відобразити в пам'яті пустий файл"
-
-#: apt-pkg/contrib/mmap.cc:83
-#, c-format
-msgid "Couldn't make mmap of %lu bytes"
-msgstr "Неможливо відобразити в пам'яті %lu байт"
-
-#: apt-pkg/contrib/strutl.cc:978
-#, c-format
-msgid "Selection %s not found"
-msgstr "Вибір %s не знайдено"
-
-#: apt-pkg/contrib/configuration.cc:434
-#, c-format
-msgid "Unrecognized type abbreviation: '%c'"
-msgstr "Нерозпізнаваний тип абревіатури: '%c'"
-
-#: apt-pkg/contrib/configuration.cc:492
-#, c-format
-msgid "Opening configuration file %s"
-msgstr "Відкривається конфігураційний файл %s"
-
-#: apt-pkg/contrib/configuration.cc:510
-#, fuzzy, c-format
-msgid "Line %d too long (max %lu)"
-msgstr "Лінія %d занадто довга (максимум %d)"
-
-#: apt-pkg/contrib/configuration.cc:606
-#, c-format
-msgid "Syntax error %s:%u: Block starts with no name."
-msgstr "Синтаксова помилка %s:%u: Блок починається без назви."
-
-#: apt-pkg/contrib/configuration.cc:625
-#, c-format
-msgid "Syntax error %s:%u: Malformed tag"
-msgstr "Синтаксова помилка %s:%u: спотворений тег"
-
-#: apt-pkg/contrib/configuration.cc:642
-#, c-format
-msgid "Syntax error %s:%u: Extra junk after value"
-msgstr "Синтаксова помилка %s:%u: зайві символи після величини"
-
-#: apt-pkg/contrib/configuration.cc:682
-#, fuzzy, c-format
-msgid "Syntax error %s:%u: Directives can only be done at the top level"
-msgstr ""
-"Синтаксова помилка %s:%u: Директиви можуть бути виконані тільки на "
-"найвищому рівні"
-
-#: apt-pkg/contrib/configuration.cc:689
-#, c-format
-msgid "Syntax error %s:%u: Too many nested includes"
-msgstr "Синтаксова помилка %s:%u: Забагато вмонтованих включень"
-
-#: apt-pkg/contrib/configuration.cc:693 apt-pkg/contrib/configuration.cc:698
-#, c-format
-msgid "Syntax error %s:%u: Included from here"
-msgstr "Синтаксова помилка %s:%u: Включена звідси"
-
-#: apt-pkg/contrib/configuration.cc:702
-#, c-format
-msgid "Syntax error %s:%u: Unsupported directive '%s'"
-msgstr "Синтаксова помилка %s:%u: Директива '%s' не підтримується"
-
-#: apt-pkg/contrib/configuration.cc:736
-#, c-format
-msgid "Syntax error %s:%u: Extra junk at end of file"
-msgstr "Синтаксова помилка %s:%u: зайві символи в кінці файла"
-
-#: apt-pkg/contrib/progress.cc:152
-#, c-format
-msgid "%c%s... Error!"
-msgstr "%c%s... Помилка!"
-
-#: apt-pkg/contrib/progress.cc:154
-#, c-format
-msgid "%c%s... Done"
-msgstr "%c%s... Виконано"
-
-#: apt-pkg/contrib/cmndline.cc:77
-#, c-format
-msgid "Command line option '%c' [from %s] is not known."
-msgstr "Невідомий параметр '%c' [з %s] командного рядка."
-
-#: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111
-#: apt-pkg/contrib/cmndline.cc:119
-#, c-format
-msgid "Command line option %s is not understood"
-msgstr "Незрозумілий параметр %s командного рядка"
-
-#: apt-pkg/contrib/cmndline.cc:124
-#, c-format
-msgid "Command line option %s is not boolean"
-msgstr "Не логічний параметр %s командного рядка"
-
-#: apt-pkg/contrib/cmndline.cc:163 apt-pkg/contrib/cmndline.cc:184
-#, c-format
-msgid "Option %s requires an argument."
-msgstr "Параметр %s потребує аргумента."
-
-#: apt-pkg/contrib/cmndline.cc:198 apt-pkg/contrib/cmndline.cc:204
-#, c-format
-msgid "Option %s: Configuration item specification must have an =<val>."
-msgstr ""
-
-#: apt-pkg/contrib/cmndline.cc:234
-#, c-format
-msgid "Option %s requires an integer argument, not '%s'"
-msgstr "Параметр %s потребує integer аргумент, але не '%s'"
-
-#: apt-pkg/contrib/cmndline.cc:265
-#, c-format
-msgid "Option '%s' is too long"
-msgstr "Параметр '%s' занадто довгий"
-
-#: apt-pkg/contrib/cmndline.cc:298
-#, c-format
-msgid "Sense %s is not understood, try true or false."
-msgstr "Незрозумілий вираз %s , спробуйте true чи false."
-
-#: apt-pkg/contrib/cmndline.cc:348
-#, c-format
-msgid "Invalid operation %s"
-msgstr "Невірна дія %s"
-
-#: apt-pkg/contrib/cdromutl.cc:52
-#, c-format
-msgid "Unable to stat the mount point %s"
-msgstr "Неможливо прочитати атрибути точки монтування %s"
-
-#: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/acquire.cc:424 apt-pkg/clean.cc:40
-#, c-format
-msgid "Unable to change to %s"
-msgstr "Неможливо зробити зміни у %s"
-
-#: apt-pkg/contrib/cdromutl.cc:187
-msgid "Failed to stat the cdrom"
-msgstr "Не вдалося прочитати атрибути cdrom"
-
-#: apt-pkg/contrib/fileutl.cc:80
-#, c-format
-msgid "Not using locking for read only lock file %s"
-msgstr ""
-"Блокування не використовується, так як файл блокування %s доступний тільки "
-"для читання"
-
-#: apt-pkg/contrib/fileutl.cc:85
-#, c-format
-msgid "Could not open lock file %s"
-msgstr "Не можливо відкрити lock файл %s"
-
-#: apt-pkg/contrib/fileutl.cc:103
-#, c-format
-msgid "Not using locking for nfs mounted lock file %s"
-msgstr ""
-"Блокування не використовується, так як файл блокування %s знаходиться на "
-"файловій системі nfs"
-
-#: apt-pkg/contrib/fileutl.cc:107
-#, fuzzy, c-format
-msgid "Could not get lock %s"
-msgstr "Не можливо отримати lock %s"
-
-#: apt-pkg/contrib/fileutl.cc:375
-#, c-format
-msgid "Waited for %s but it wasn't there"
-msgstr "Очікується на %s але його тут немає"
-
-#: apt-pkg/contrib/fileutl.cc:385
-#, c-format
-msgid "Sub-process %s received a segmentation fault."
-msgstr "Підпроцес %s отримав segmentation fault."
-
-#: apt-pkg/contrib/fileutl.cc:388
-#, c-format
-msgid "Sub-process %s returned an error code (%u)"
-msgstr "Підпроцес %s повернув код помилки (%u)"
-
-#: apt-pkg/contrib/fileutl.cc:390
-#, c-format
-msgid "Sub-process %s exited unexpectedly"
-msgstr "Підпроцес %s раптово завершився"
-
-#: apt-pkg/contrib/fileutl.cc:434
-#, c-format
-msgid "Could not open file %s"
-msgstr "Не можливо відкрити файл %s"
-
-#: apt-pkg/contrib/fileutl.cc:490
-#, c-format
-msgid "read, still have %lu to read but none left"
-msgstr ""
-"помилка при читанні. мали прочитати ще %lu байт, але нічого більше нема"
-
-#: apt-pkg/contrib/fileutl.cc:520
-#, c-format
-msgid "write, still have %lu to write but couldn't"
-msgstr "помилка при записі, мали прочитати ще %lu байт, але не змогли"
-
-#: apt-pkg/contrib/fileutl.cc:595
-msgid "Problem closing the file"
-msgstr "Проблема з закриттям файла"
-
-#: apt-pkg/contrib/fileutl.cc:601
-msgid "Problem unlinking the file"
-msgstr "Проблема з роз'єднанням файла"
-
-#: apt-pkg/contrib/fileutl.cc:612
-msgid "Problem syncing the file"
-msgstr "Проблема з синхронізацією файла"
-
-#: apt-pkg/pkgcache.cc:132
-msgid "Empty package cache"
-msgstr "Кеш пакунків пустий"
-
-#: apt-pkg/pkgcache.cc:138
-msgid "The package cache file is corrupted"
-msgstr "Файл кешу пакунків пошкоджений"
-
-#: apt-pkg/pkgcache.cc:143
-msgid "The package cache file is an incompatible version"
-msgstr "Файл кешу пакунків має несумісну версію"
-
-#: apt-pkg/pkgcache.cc:148
-#, c-format
-msgid "This APT does not support the versioning system '%s'"
-msgstr "APT не підтримує систему призначення версій '%s'"
-
-#: apt-pkg/pkgcache.cc:153
-msgid "The package cache was built for a different architecture"
-msgstr "Кеш пакунків був побудований для іншої архітектури"
-
-#: apt-pkg/pkgcache.cc:224
-msgid "Depends"
-msgstr "Залежності (Depends)"
-
-#: apt-pkg/pkgcache.cc:224
-msgid "PreDepends"
-msgstr "Пре-Залежності (PreDepends)"
-
-#: apt-pkg/pkgcache.cc:224
-msgid "Suggests"
-msgstr "Пропонує (Suggests)"
-
-#: apt-pkg/pkgcache.cc:225
-msgid "Recommends"
-msgstr "Рекомендує"
-
-#: apt-pkg/pkgcache.cc:225
-msgid "Conflicts"
-msgstr "Конфлікти"
-
-#: apt-pkg/pkgcache.cc:225
-msgid "Replaces"
-msgstr "Заміняє (Replaces)"
-
-#: apt-pkg/pkgcache.cc:226
-msgid "Obsoletes"
-msgstr "Застарілі (Obsoletes)"
-
-#: apt-pkg/pkgcache.cc:226
-msgid "Breaks"
-msgstr ""
-
-#: apt-pkg/pkgcache.cc:237
-msgid "important"
-msgstr "Важливі (Important)"
-
-#: apt-pkg/pkgcache.cc:237
-msgid "required"
-msgstr "Необхідні (Required)"
-
-#: apt-pkg/pkgcache.cc:237
-msgid "standard"
-msgstr "Стандартні (Standard)"
-
-#: apt-pkg/pkgcache.cc:238
-msgid "optional"
-msgstr "Необов'язкові (Optional)"
-
-#: apt-pkg/pkgcache.cc:238
-msgid "extra"
-msgstr "Додаткові (Extra)"
-
-#: apt-pkg/depcache.cc:100 apt-pkg/depcache.cc:129
-msgid "Building dependency tree"
-msgstr "Побудова дерева залежностей"
-
-#: apt-pkg/depcache.cc:101
-msgid "Candidate versions"
-msgstr "Версії кандидатів"
-
-#: apt-pkg/depcache.cc:130
-msgid "Dependency generation"
-msgstr "Ґенерація залежностей"
-
-#: apt-pkg/depcache.cc:151 apt-pkg/depcache.cc:170 apt-pkg/depcache.cc:174
-#, fuzzy
-msgid "Reading state information"
-msgstr "Об'єднання інформації про доступні пакунки"
-
-#: apt-pkg/depcache.cc:198
-#, fuzzy, c-format
-msgid "Failed to open StateFile %s"
-msgstr "Не вдалося відкрити %s"
-
-#: apt-pkg/depcache.cc:204
-#, fuzzy, c-format
-msgid "Failed to write temporary StateFile %s"
-msgstr "Не вдалося записати файл %s"
-
-#: apt-pkg/tagfile.cc:102
-#, c-format
-msgid "Unable to parse package file %s (1)"
-msgstr "Неможливо обробити файл %s пакунку (1)"
-
-#: apt-pkg/tagfile.cc:189
-#, c-format
-msgid "Unable to parse package file %s (2)"
-msgstr "Неможливо обробити файл %s пакунку (2)"
-
-#: apt-pkg/sourcelist.cc:90
-#, c-format
-msgid "Malformed line %lu in source list %s (URI)"
-msgstr "Спотворена лінія %lu у переліку джерел %s (проблема в URI)"
-
-#: apt-pkg/sourcelist.cc:92
-#, c-format
-msgid "Malformed line %lu in source list %s (dist)"
-msgstr ""
-"Спотворена лінія %lu у переліку джерел %s (проблема в назві дистрибутиву)"
-
-#: apt-pkg/sourcelist.cc:95
-#, c-format
-msgid "Malformed line %lu in source list %s (URI parse)"
-msgstr "Спотворена лінія %lu у переліку джерел %s (обробка URI)"
-
-#: apt-pkg/sourcelist.cc:101
-#, c-format
-msgid "Malformed line %lu in source list %s (absolute dist)"
-msgstr "Спотворена лінія %lu у переліку джерел %s (absolute dist)"
-
-#: apt-pkg/sourcelist.cc:108
-#, c-format
-msgid "Malformed line %lu in source list %s (dist parse)"
-msgstr "Спотворена лінія %lu у переліку джерел %s (dist parse)"
-
-#: apt-pkg/sourcelist.cc:199
-#, c-format
-msgid "Opening %s"
-msgstr "Відкриття %s"
-
-#: apt-pkg/sourcelist.cc:216 apt-pkg/cdrom.cc:448
-#, c-format
-msgid "Line %u too long in source list %s."
-msgstr "Лінія %u занадто довга в переліку джерел %s."
-
-#: apt-pkg/sourcelist.cc:236
-#, c-format
-msgid "Malformed line %u in source list %s (type)"
-msgstr "Спотворена лінія %u у переліку джерел %s (тип)"
-
-#: apt-pkg/sourcelist.cc:240
-#, c-format
-msgid "Type '%s' is not known on line %u in source list %s"
-msgstr "Невідомий тип '%s' в лінії %u в переліку джерел %s"
-
-#: apt-pkg/sourcelist.cc:248 apt-pkg/sourcelist.cc:251
-#, c-format
-msgid "Malformed line %u in source list %s (vendor id)"
-msgstr "Спотворена лінія %u у переліку джерел %s (vendor id)"
-
-#: apt-pkg/packagemanager.cc:399
-#, c-format
-msgid ""
-"This installation run will require temporarily removing the essential "
-"package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if "
-"you really want to do it, activate the APT::Force-LoopBreak option."
-msgstr ""
-"Для виконання даного встановлення потрібне тимчасове видалення важливого "
-"пакету %s через конфлікти/петлеві пре-залежності (Pre-Depends loop). Це "
-"погано, але якщо Ви дійсно бажаєте зробити це, активуйте параметр APT::Force-"
-"LoopBreak."
-
-#: apt-pkg/pkgrecords.cc:32
-#, c-format
-msgid "Index file type '%s' is not supported"
-msgstr "Тип '%s' індексного файлу не підтримується"
-
-#: apt-pkg/algorithms.cc:247
-#, c-format
-msgid ""
-"The package %s needs to be reinstalled, but I can't find an archive for it."
-msgstr ""
-"Пакунок %s повинен бути перевстановленим, але я не можу знайти архіву для "
-"нього."
-
-#: apt-pkg/algorithms.cc:1103
-msgid ""
-"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
-"held packages."
-msgstr ""
-"Помилка, pkgProblemResolver::Resolve згенерував зупинку, це може бути "
-"пов'язано з зафіксованими пакунками."
-
-#: apt-pkg/algorithms.cc:1105
-msgid "Unable to correct problems, you have held broken packages."
-msgstr "Неможливо усунути проблеми, Ви маєте поламані зафіксовані пакунки."
-
-#: apt-pkg/acquire.cc:59
-#, c-format
-msgid "Lists directory %spartial is missing."
-msgstr "Lists тека %spartial відсутня."
-
-#: apt-pkg/acquire.cc:63
-#, c-format
-msgid "Archive directory %spartial is missing."
-msgstr "Архівна тека %spartial відсутня."
-
-#. only show the ETA if it makes sense
-#. two days
-#: apt-pkg/acquire.cc:827
-#, fuzzy, c-format
-msgid "Retrieving file %li of %li (%s remaining)"
-msgstr "Завантажується файл %li з %li (%s залишилось)"
-
-#: apt-pkg/acquire.cc:829
-#, fuzzy, c-format
-msgid "Retrieving file %li of %li"
-msgstr "Завантажується файл %li з %li"
-
-#: apt-pkg/acquire-worker.cc:110
-#, c-format
-msgid "The method driver %s could not be found."
-msgstr "Драйвер для метода %s не знайдено."
-
-#: apt-pkg/acquire-worker.cc:159
-#, c-format
-msgid "Method %s did not start correctly"
-msgstr "Метод %s не стартував коректно"
-
-#: apt-pkg/acquire-worker.cc:381
-#, c-format
-msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
-msgstr ""
-"Будь-ласка, вставте диск з поміткою: '%s' в CD привід '%s' і натисніть Enter."
-
-#: apt-pkg/init.cc:126
-#, c-format
-msgid "Packaging system '%s' is not supported"
-msgstr "Система пакування '%s' не підтримується"
-
-#: apt-pkg/init.cc:142
-msgid "Unable to determine a suitable packaging system type"
-msgstr "Неможливо визначити тип необхідної системи пакування "
-
-#: apt-pkg/clean.cc:57
-#, c-format
-msgid "Unable to stat %s."
-msgstr "Неможливо прочитати атрибути %s."
-
-#: apt-pkg/srcrecords.cc:44
-msgid "You must put some 'source' URIs in your sources.list"
-msgstr "Ви повинні записати певні 'source' посилання в твій sources.list"
-
-#: apt-pkg/cachefile.cc:69
-msgid "The package lists or status file could not be parsed or opened."
-msgstr "Не можу обробити чи відкрити перелік пакунків чи status файл."
-
-#: apt-pkg/cachefile.cc:73
-msgid "You may want to run apt-get update to correct these problems"
-msgstr "Можливо, для виправлення цих помилок Ви захочете запустити apt-get"
-
-#: apt-pkg/policy.cc:267
-msgid "Invalid record in the preferences file, no Package header"
-msgstr "Невірний запис в preferences файлі, відсутній заголовок Package"
-
-#: apt-pkg/policy.cc:289
-#, c-format
-msgid "Did not understand pin type %s"
-msgstr "Не зрозумів тип %s для pin"
-
-#: apt-pkg/policy.cc:297
-msgid "No priority (or zero) specified for pin"
-msgstr "Не встановлено пріоритету (або встановлено 0) для pin"
-
-#: apt-pkg/pkgcachegen.cc:72
-msgid "Cache has an incompatible versioning system"
-msgstr "Кеш має несумісну систему призначення версій"
-
-#: apt-pkg/pkgcachegen.cc:115
-#, c-format
-msgid "Error occurred while processing %s (NewPackage)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (NewPackage)"
-
-#: apt-pkg/pkgcachegen.cc:130
-#, c-format
-msgid "Error occurred while processing %s (UsePackage1)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage1)"
-
-#: apt-pkg/pkgcachegen.cc:153
-#, fuzzy, c-format
-msgid "Error occurred while processing %s (NewFileDesc1)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)"
-
-#: apt-pkg/pkgcachegen.cc:178
-#, c-format
-msgid "Error occurred while processing %s (UsePackage2)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage2)"
-
-#: apt-pkg/pkgcachegen.cc:182
-#, c-format
-msgid "Error occurred while processing %s (NewFileVer1)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)"
-
-#: apt-pkg/pkgcachegen.cc:213
-#, c-format
-msgid "Error occurred while processing %s (NewVersion1)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (NewVersion1)"
-
-#: apt-pkg/pkgcachegen.cc:217
-#, c-format
-msgid "Error occurred while processing %s (UsePackage3)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (UsePackage3)"
-
-#: apt-pkg/pkgcachegen.cc:221
-#, c-format
-msgid "Error occurred while processing %s (NewVersion2)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (NewVersion2)"
-
-#: apt-pkg/pkgcachegen.cc:245
-#, fuzzy, c-format
-msgid "Error occurred while processing %s (NewFileDesc2)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (NewFileVer1)"
-
-#: apt-pkg/pkgcachegen.cc:251
-msgid "Wow, you exceeded the number of package names this APT is capable of."
-msgstr "Ви перевищили кількість імен пакунків, які APT може обробити."
-
-#: apt-pkg/pkgcachegen.cc:254
-msgid "Wow, you exceeded the number of versions this APT is capable of."
-msgstr "Ви перевищили кількість версій, які APT може обробити."
-
-#: apt-pkg/pkgcachegen.cc:257
-#, fuzzy
-msgid "Wow, you exceeded the number of descriptions this APT is capable of."
-msgstr "Ви перевищили кількість версій, які APT може обробити."
-
-#: apt-pkg/pkgcachegen.cc:260
-msgid "Wow, you exceeded the number of dependencies this APT is capable of."
-msgstr "Ви перевищили кількість залежностей які APT може обробити."
-
-#: apt-pkg/pkgcachegen.cc:288
-#, c-format
-msgid "Error occurred while processing %s (FindPkg)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (FindPkg)"
-
-#: apt-pkg/pkgcachegen.cc:301
-#, c-format
-msgid "Error occurred while processing %s (CollectFileProvides)"
-msgstr "Помилка, яка була викликана внаслідок обробки %s (CollectFileProvides)"
-
-#: apt-pkg/pkgcachegen.cc:307
-#, c-format
-msgid "Package %s %s was not found while processing file dependencies"
-msgstr "Пакунок %s %s не був знайдений під час обробки залежностей файла"
-
-#: apt-pkg/pkgcachegen.cc:678
-#, c-format
-msgid "Couldn't stat source package list %s"
-msgstr "Не вдалося прочитати атрибути переліку вихідних текстів%s"
-
-#: apt-pkg/pkgcachegen.cc:763
-#, fuzzy
-msgid "Collecting File Provides"
-msgstr "Збирання інформації про файлів "
-
-#: apt-pkg/pkgcachegen.cc:890 apt-pkg/pkgcachegen.cc:897
-msgid "IO Error saving source cache"
-msgstr "Помилка IO під час збереження джерельного кешу"
-
-#: apt-pkg/acquire-item.cc:127
-#, c-format
-msgid "rename failed, %s (%s -> %s)."
-msgstr "Не вдалося перейменувати, %s (%s -> %s)."
-
-#: apt-pkg/acquire-item.cc:406 apt-pkg/acquire-item.cc:661
-#: apt-pkg/acquire-item.cc:1411
-msgid "MD5Sum mismatch"
-msgstr "Невідповідність MD5Sum"
-
-#: apt-pkg/acquire-item.cc:1106
-#, fuzzy
-msgid "There is no public key available for the following key IDs:\n"
-msgstr "Відсутній публічний ключ для заданих ID ключа:\n"
-
-#: apt-pkg/acquire-item.cc:1219
-#, c-format
-msgid ""
-"I wasn't able to locate a file for the %s package. This might mean you need "
-"to manually fix this package. (due to missing arch)"
-msgstr ""
-"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч "
-"виправити цей пакунок. (due to missing arch)"
-
-#: apt-pkg/acquire-item.cc:1278
-#, c-format
-msgid ""
-"I wasn't able to locate file for the %s package. This might mean you need to "
-"manually fix this package."
-msgstr ""
-"Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч "
-"виправити цей пакунок."
-
-#: apt-pkg/acquire-item.cc:1314
-#, c-format
-msgid ""
-"The package index files are corrupted. No Filename: field for package %s."
-msgstr ""
-"Індексні файли пакунків пошкоджені. Немає поля Filename для пакунку %s."
-
-#: apt-pkg/acquire-item.cc:1401
-msgid "Size mismatch"
-msgstr "Невідповідність розміру"
-
-#: apt-pkg/vendorlist.cc:66
-#, c-format
-msgid "Vendor block %s contains no fingerprint"
-msgstr "Блок постачальника %s не містить відбитку (fingerprint)"
-
-#: apt-pkg/cdrom.cc:529
-#, c-format
-msgid ""
-"Using CD-ROM mount point %s\n"
-"Mounting CD-ROM\n"
-msgstr ""
-"Використовується точка монтування CDROM: %s\n"
-"Монтування CD-ROM\n"
-
-#: apt-pkg/cdrom.cc:538 apt-pkg/cdrom.cc:620
-msgid "Identifying.. "
-msgstr "Ідентифікація.. "
-
-#: apt-pkg/cdrom.cc:563
-#, c-format
-msgid "Stored label: %s \n"
-msgstr "Записано мітку: %s \n"
-
-#: apt-pkg/cdrom.cc:583
-#, c-format
-msgid "Using CD-ROM mount point %s\n"
-msgstr "Використовується точка монтування CDROM: %s\n"
-
-#: apt-pkg/cdrom.cc:601
-msgid "Unmounting CD-ROM\n"
-msgstr "Демонтується CD-ROM\n"
-
-#: apt-pkg/cdrom.cc:605
-msgid "Waiting for disc...\n"
-msgstr "Чекаю на диск...\n"
-
-#. Mount the new CDROM
-#: apt-pkg/cdrom.cc:613
-msgid "Mounting CD-ROM...\n"
-msgstr "Монтується CD-ROM...\n"
-
-#: apt-pkg/cdrom.cc:631
-msgid "Scanning disc for index files..\n"
-msgstr "Диск сканується на індексні файли..\n"
-
-#: apt-pkg/cdrom.cc:671
-#, fuzzy, c-format
-msgid ""
-"Found %i package indexes, %i source indexes, %i translation indexes and %i "
-"signatures\n"
-msgstr "Знайдено %i індексів пакунків, %i індексів джерел і %i підписів\n"
-
-#: apt-pkg/cdrom.cc:708
-#, fuzzy, c-format
-msgid "Found label '%s'\n"
-msgstr "Записано мітку: %s \n"
-
-#: apt-pkg/cdrom.cc:737
-msgid "That is not a valid name, try again.\n"
-msgstr "Не є вірною назвою, спробуйте ще.\n"
-
-#: apt-pkg/cdrom.cc:753
-#, c-format
-msgid ""
-"This disc is called: \n"
-"'%s'\n"
-msgstr ""
-"Цей диск зветься: \n"
-"'%s'\n"
-
-#: apt-pkg/cdrom.cc:757
-msgid "Copying package lists..."
-msgstr "Копіюються переліки пакунків..."
-
-#: apt-pkg/cdrom.cc:783
-msgid "Writing new source list\n"
-msgstr "Записується новий перелік джерел\n"
-
-#: apt-pkg/cdrom.cc:792
-msgid "Source list entries for this disc are:\n"
-msgstr "Перелік джерел для цього диску:\n"
-
-#: apt-pkg/cdrom.cc:834
-#, fuzzy
-msgid "Unmounting CD-ROM...\n"
-msgstr "Демонтується CD-ROM..."
-
-#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830
-#, c-format
-msgid "Wrote %i records.\n"
-msgstr "Записано %i записів.\n"
-
-#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832
-#, c-format
-msgid "Wrote %i records with %i missing files.\n"
-msgstr "Записано %i записів з %i відсутніми файлами.\n"
-
-#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835
-#, c-format
-msgid "Wrote %i records with %i mismatched files\n"
-msgstr "Записано %i записів з %i невідповідними файлам\n"
-
-#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838
-#, c-format
-msgid "Wrote %i records with %i missing files and %i mismatched files\n"
-msgstr "Записано %i записів з %i відсутніми і %i невідповідними файлами\n"
-
-#: apt-pkg/deb/dpkgpm.cc:355
-#, c-format
-msgid "Preparing %s"
-msgstr "Підготовка %s"
-
-#: apt-pkg/deb/dpkgpm.cc:356
-#, c-format
-msgid "Unpacking %s"
-msgstr "Розпакування %s"
-
-#: apt-pkg/deb/dpkgpm.cc:361
-#, c-format
-msgid "Preparing to configure %s"
-msgstr "Підготовка до конфігурації %s"
-
-#: apt-pkg/deb/dpkgpm.cc:362
-#, c-format
-msgid "Configuring %s"
-msgstr "Конфігурація %s"
-
-#: apt-pkg/deb/dpkgpm.cc:363
-#, c-format
-msgid "Installed %s"
-msgstr "Встановлено %s"
-
-#: apt-pkg/deb/dpkgpm.cc:368
-#, c-format
-msgid "Preparing for removal of %s"
-msgstr "Підготовка до видалення %s"
-
-#: apt-pkg/deb/dpkgpm.cc:369
-#, c-format
-msgid "Removing %s"
-msgstr "Видаляється %s"
-
-#: apt-pkg/deb/dpkgpm.cc:370
-#, c-format
-msgid "Removed %s"
-msgstr "Видалено %s"
-
-#: apt-pkg/deb/dpkgpm.cc:375
-#, c-format
-msgid "Preparing to completely remove %s"
-msgstr "Підготовка до повного видалення %s"
-
-#: apt-pkg/deb/dpkgpm.cc:376
-#, c-format
-msgid "Completely removed %s"
-msgstr "Повністю видалено %s"
-
-#: methods/rred.cc:219
-msgid "Could not patch file"
-msgstr "Неможливо накласти латку на файл"
-
-#: methods/rsh.cc:330
-msgid "Connection closed prematurely"
-msgstr "З'єднання завершено передчасно"
diff --git a/share/debian-archive.gpg.moved b/share/debian-archive.gpg.moved
new file mode 100644
index 000000000..bb5ed5033
--- /dev/null
+++ b/share/debian-archive.gpg.moved
Binary files differ
diff --git a/test/fake-status b/test/fake-status
new file mode 100644
index 000000000..e1f5c1f36
--- /dev/null
+++ b/test/fake-status
@@ -0,0 +1,16 @@
+Package: libglib2.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 1376
+Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
+Architecture: amd64
+Source: glib2.0
+Version: 2.13.7-1ubuntu1
+Description: The GLib library of C routines
+ GLib is a library containing many useful C routines for things such
+ as trees, hashes, lists, and strings. It is a useful general-purpose
+ C library used by projects such as GTK+, GIMP, and GNOME.
+ .
+ This package contains the shared libraries.
+Original-Maintainer: Loic Minier <lool@dooz.org>
diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py
new file mode 100755
index 000000000..837a25023
--- /dev/null
+++ b/test/pre-upload-check.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+
+import sys
+import os
+import glob
+import os.path
+from subprocess import call, PIPE
+
+import unittest
+
+stdout = os.open("/dev/null",0) #sys.stdout
+stderr = os.open("/dev/null",0) # sys.stderr
+
+class testAuthentication(unittest.TestCase):
+
+ # some class wide data
+ apt = "apt-get"
+ args = [] # ["-q", "-q", "-o","Debug::pkgAcquire::Auth=true"]
+ pkg = "libglib2.0-data"
+ pkgver = "2.13.6-1ubuntu1"
+ pkgpath = "/var/cache/apt/archives/libglib2.0-data_2.13.6-1ubuntu1_all.deb"
+
+ def setUp(self):
+ for f in glob.glob("testkeys/*,key"):
+ call(["apt-key", "add", f], stdout=stdout, stderr=stderr)
+
+ def _cleanup(self):
+ " make sure we get new lists and no i-m-s "
+ call(["rm","-f", "/var/lib/apt/lists/*"])
+ if os.path.exists(self.pkgpath):
+ os.unlink(self.pkgpath)
+
+ def _expectedRes(self, resultstr):
+ if resultstr == 'ok':
+ return 0
+ elif resultstr == 'broken':
+ return 100
+
+
+ def testPackages(self):
+ for f in glob.glob("testsources.list/sources.list*package*"):
+ self._cleanup()
+ (prefix, testtype, result) = f.split("-")
+ expected_res = self._expectedRes(result)
+ # update first
+ call([self.apt,"update",
+ "-o","Dir::Etc::sourcelist=./%s" % f]+self.args,
+ stdout=stdout, stderr=stderr)
+ # then get the pkg
+ cmd = ["install", "-y", "-d", "--reinstall",
+ "%s=%s" % (self.pkg, self.pkgver),
+ "-o","Dir::state::Status=./fake-status"]
+ res = call([self.apt, "-o","Dir::Etc::sourcelist=./%s" % f]+cmd+self.args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(res == expected_res,
+ "test '%s' failed (got %s expected %s" % (f,res,expected_res))
+
+
+ def testGPG(self):
+ for f in glob.glob("testsources.list/sources.list*gpg*"):
+ self._cleanup()
+ (prefix, testtype, result) = f.split("-")
+ expected_res = self._expectedRes(result)
+ # update first
+ call([self.apt,"update",
+ "-o","Dir::Etc::sourcelist=./%s" % f]+self.args,
+ stdout=stdout, stderr=stderr)
+ # then get the pkg
+ cmd = ["install", "-y", "-d", "--reinstall",
+ "%s=%s" % (self.pkg, self.pkgver),
+ "-o","Dir::state::Status=./fake-status"]
+ res = call([self.apt, "-o","Dir::Etc::sourcelist=./%s" % f]+
+ cmd+self.args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(res == expected_res,
+ "test '%s' failed (got %s expected %s" % (f,res,expected_res))
+
+ def testRelease(self):
+ for f in glob.glob("testsources.list/sources.list*release*"):
+ self._cleanup()
+ (prefix, testtype, result) = f.split("-")
+ expected_res = self._expectedRes(result)
+ cmd = ["update"]
+ res = call([self.apt,"-o","Dir::Etc::sourcelist=./%s" % f]+cmd+self.args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(res == expected_res,
+ "test '%s' failed (got %s expected %s" % (f,res,expected_res))
+
+
+class testPythonApt(unittest.TestCase):
+ " test if python-apt is still working and if we not accidently broke the ABI "
+
+ def testPythonApt(self):
+ import apt
+ cache = apt.Cache()
+ cache.update()
+ pkg = cache["apt"]
+ self.assert_(pkg.name == 'apt')
+
+class testAptInstall(unittest.TestCase):
+ " test if installing still works "
+
+ apt = "apt-get"
+ pkg = "coreutils"
+
+ def testInstall(self):
+ res = call([self.apt,"-y","install","--reinstall",self.pkg],
+ stdout=stdout, stderr=stderr)
+ self.assert_(res == 0,
+ "installing %s failed (got %s)" % (self.pkg, res))
+
+if __name__ == "__main__":
+ print "Runing simple testsuit on current apt-get and libapt"
+ if len(sys.argv) > 1 and sys.argv[1] == "-v":
+ stdout = sys.stdout
+ stderr = sys.stderr
+ unittest.main()
+
+
diff --git a/test/testkeys/mvo.key b/test/testkeys/mvo.key
new file mode 100644
index 000000000..e1ab50119
--- /dev/null
+++ b/test/testkeys/mvo.key
@@ -0,0 +1,1182 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+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
+XGNZaqeIRgQTEQIABgUCPxVtRQAKCRC7VaR/yQHDPnjcAJ9es1zm1Kbba+MQpMJ/
+W7LoojAEQACg/qe/YgPY8kc3XIT3GTAxt4uU2NqIRgQTEQIABgUCPxZZigAKCRDn
+yduv41bvwEH/AKDAx7U7T+mag4+nQgJt3fVtBaBotgCfUc8zZ1GoO+4nl6J16HaS
+383ZMoOIRgQSEQIABgUCPxcIVwAKCRB3+BUzuw7ox4LhAJ985s36sd3XVShLnNSs
+oWwBCASHuwCeMR+G2M9etc91AwWmWTAa7Cm5oyqIRgQTEQIABgUCPxZaGQAKCRD0
+tLDMeX6/q2ixAJ9s5BGe4RAXi6h8crxOe69xY8Z2UgCfa95gIjyGx/78TvCxTld1
+rN6qsQCIRgQQEQIABgUCPxe0rAAKCRBGzFxj8xilakodAJ44FYFEomCpZ8fZiY/9
+kuQaxxSvagCgulF5/z2p5KjhzG3WB/ujP+VIhSSIRgQTEQIABgUCPxfUcgAKCRBT
+trgdwTzuB6pxAJ95M7TpYjim9ooeyC1t8escuno0LACeOe4iq+6JWhZcow3us448
+Duvc+IKJAQEEExECAMEFAj8Whg2GFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBl
+bmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9z
+aWduaW5ncy9ub3Rlcy5FQTcxQjI5NjQ1OTc0RDhCMzQzRTgyMUU5NjI0ODNFMTU2
+NjJDNzM0LmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9w
+Z3AvcG9saWN5L3YxLjEvAAoJEKseS2BGdWseknkAn1m1/xMVTIsJr18NZWVWaduY
+SisWAJ9zpOZlUDvxUgygPf8qxpw/+QjhLYkB1wQTAQIAwQUCPxaF/4YUgAAAAAAa
+AGNzaWduYXR1cmUtbm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4u
+ZGUvfmJiL2NvbnRhY3QvcGdwL3NpZ25pbmdzL25vdGVzLkVBNzFCMjk2NDU5NzRE
+OEIzNDNFODIxRTk2MjQ4M0UxNTY2MkM3MzQuYXNjIjMaaHR0cDovL3d3dy5wZW5n
+dWluLmRlL35iYi9jb250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZRS
+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
+CRCUT8anamoLvKHtAJ0TyFAX6asPnzbpFBjLtY6bzFqeBgCeMUofVcspoa/0/YBa
+A8hSD9Qd/I6IRgQTEQIABgUCPxvrDwAKCRDYDvNai7Unr5ilAJ46rCD0b3Ywssdg
+c/bBBUS9kgUzkACguVCo26BCv86vOgOBe2wQr9qEPZKIRgQQEQIABgUCPyfZIgAK
+CRBvI4vCT9paDCFcAJ96KZRIVSLr+IrMrYoHd/H4r/R9uQCgioG+kSWctJYlqMxo
+4fatptDbM4CIRgQSEQIABgUCPyfefgAKCRCfzyzNPz5kJqT2AJ9qA0P5h9X1TZ2t
+ckVTEt1NRX9ydQCeOsbIvSvlfxdI72Bbpb6Uj8k1uwaIRgQTEQIABgUCPygYAgAK
+CRAEMjbrEHMZdzbaAJ9TNJBBoYV7cPOsEtIm4546RqsOgwCePRaDLbRQ+zojgFYE
+0l7c5G2kacOIjQQTEQIATQUCPyjtT0YaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo
+b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ
+EKR5zcRatGBq87MAn0fdtv+HO8PkzE0jwcJTFq2mBMVAAKC/cq4wlxqxRnnHq0QB
+vHPbR1ZKv4kBYwQTAQIATQUCPyjtWUYaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo
+b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ
+EPl8+eM6S39dX/sH/3xKPJriQO+GAhgL206tg3CC0HD7szn4zstqcokgLuIDhnBU
+dnEHq8RH5Cm9y31wfSJBhs3dhJD6cLEBKxZmO05T2eklYeGyhRzL2MH7PAj5oIHx
+Xds7ue9k1OJbBlEugj0SQaO3twWv8DM68ynpSV89r7vYQXDIB+rDJBSUy38f2Sf6
+QEf31nThMgOo3zxg0HTnFqTZxF/Zxl+qXb29g/LIVo9Ro95AI62DDLbeBbo3ofX6
+pb9+iLLBO7gEp+jzLYWITpbS3yG3N+3kxJUSxHFkTVVnKUWdkkF2ba5VcdWOU8h0
+qCjds6Bd6AL9r1d9+OTAGNJo1/hKJmHB5i71HAmIjQQTEQIATQUCPyjtZEYaaHR0
+cDovL3d3dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5
+c2lnbmluZy52ZXIxLjAudHh0AAoJEHkFdo91hPXYWbwAn0wIO2rpKpKPbfLlYPLR
+qogcYL7MAJ43Jo7qeNvX7+R1Y2egJKUMtJv/GIhGBBMRAgAGBQI/KO1zAAoJEPnQ
+FPA4yYWN1J0An2MMMdigRu72LLgPs9y+N/OcBo53AKDR4YObuiiSusq05/0/IpRP
+SpyFUohGBBMRAgAGBQI/KO1+AAoJEF0Pf0ng5J80GzgAoOw2yq4lnPopbXJT7NbT
+SzYUdQhpAKD5nJtD1PBQfMEWX7+E9Q2eeq5LMIicBBMBAgAGBQI/KO2JAAoJEBuw
+i78qkjIl634EAI1vXWW3JV4mRLWURiatAXE6ELl1t6zkcacP+VfsSpABqKw+/6Ga
+rnpnS4/9Eg4RC9F1uHcx3HrZiWoJMdrmJX89QHuCF7t4d7DJk9HOSlL3LkGCe9m+
+Z1rflATrtr1MykMly8P2w8GeEsegeP/qpXA5M0IT5R5Ydq8/bcDayvBXiEYEExEC
+AAYFAj8tVsEACgkQLJg+WtKKVdaquQCg1IXH52P/zc3SAg2BS9fwUrFfT6sAoLLv
+pZMGtQr4Ls1ENx1vLn2/5tYSiEYEEhECAAYFAj8ueAkACgkQEgljnRFKqFzSIACg
+4Czty3NmmCDd7ZytqaDYpnluyZQAoNXXygq5k5mFRSrYBNbKLQ2pTmcpiEYEExEC
+AAYFAj8tjjgACgkQTvSphPLKucgE6gCgh9l3Htk/cN9inNeozu2BxwCVnTcAn34l
+GxnITs3t11dr5fgeWntxWojQiEYEExECAAYFAj8zVvQACgkQyg4WnCj6OIrOcwCf
+WFi3qRdARzOjOzHc7e3wkE2Y1HIAn0sI6DnpFArA2q0B4+QATJtwNWNYiEYEEhEC
+AAYFAj8fL+EACgkQ2tp5zXiKP0wi6gCfZqoOI9vrerzDqwaHpusmhWZNHf4AoLxr
+H4N+VDTFpyf2fcF6kOjTdOI8iEYEExECAAYFAj85JnEACgkQRcAhR2mr3VTtWgCf
+RkvdJ+JLLABz0Rf8jUElesJAKg4An0T9vtCGack3TYp20xrkVjB1Y5E5iI4EExEC
+AE4FAj8fB3FHGmh0dHA6Ly93d3cubWF0aGVtYXRpay51bmktYmllbGVmZWxkLmRl
+L35tbXV0ei9zaWduLXBvbGljeS0yMDAzLTA3Lmh0bWwACgkQ3oWD+L2/6Dit8ACf
+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
+RQAKCRC7VaR/yQHDPgwwAKDDo5Oczmfsy/K+rNhp0EdN8tTpYQCgyJyfezJ3lACl
+gkZe3KJSjcWvsI6IRgQTEQIABgUCPxZZiQAKCRDnyduv41bvwB61AJ9WP2XS6gBZ
+e8fgWb0oSNupfrL1TwCgvDsfeZ8+228+PuOBa9EmPqn4Z8yIRgQSEQIABgUCPxcI
+VgAKCRB3+BUzuw7ox3SyAJ9lEoZio+Jqvu7yDsMy0v2W9H8BrwCaAu226tR8QQgp
+efrzX7CFlqUp2oCIRgQTEQIABgUCPxZaFQAKCRD0tLDMeX6/q79tAJ95QA3Y7Vha
+p/yq3/sU6rGdWv1gHACdGOlr2jlePeNjyM8XP7m/aTyTA3aIRgQQEQIABgUCPxe0
+rgAKCRBGzFxj8xilarPqAJ9CVDPJRDwCTEzyxU/aXPUcD2IIQgCfUwWviRTpr4Sl
+hYQSLPInA8XRL3mIRgQTEQIABgUCPxfUbwAKCRBTtrgdwTzuBxZAAKChuDlCWIgR
+y0RLB43upNulVEMhPgCgy3nvJsoNNdGtApgalnD3PCtADC6JAQEEExECAMEFAj8W
+hgyGFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3
+dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5FQTcx
+QjI5NjQ1OTc0RDhCMzQzRTgyMUU5NjI0ODNFMTU2NjJDNzM0LmFzYyIzGmh0dHA6
+Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJ
+EKseS2BGdWsetVoAoKC8/BexDahmSBm6ByFHjdnUNnqjAKCnraKOQoRD9mHRkhYL
+hs6Kb6B/e4kB1wQTAQIAwQUCPxaF+YYUgAAAAAAaAGNzaWduYXR1cmUtbm90ZXNA
+cGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3QvcGdw
+L3NpZ25pbmdzL25vdGVzLkVBNzFCMjk2NDU5NzREOEIzNDNFODIxRTk2MjQ4M0Ux
+NTY2MkM3MzQuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0
+L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZQoyQgAp7zbUXdSJjC99c1U2Tf8
+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
+nl2OKb0xyan4c34SAiXW7tkAnjjlXUeZ1phjKkwCOxSGpzVL2dg2iEYEExECAAYF
+Aj8nsWsACgkQ5ihPJ4ZiSrvw6wCfSqPnCQUf0RCBxTHwNeXoHZLNsgoAn0mmdV02
+e4GTUkP6hcahi8uktaz4iEYEEBECAAYFAj8n2R0ACgkQbyOLwk/aWgz6EACeP7lN
+/AdK/F47D/RLEj0iFa3hoUcAnitXQcHBCa2V7nsdLGgBu+0RFrTFiEYEEhECAAYF
+Aj8n3nwACgkQn88szT8+ZCYVUQCeI/GFVLQVfpjbILxq3QzePIvUd54An3yCiNfm
+ou1ZfGQXR9ut54CFWGZniEYEExECAAYFAj8oGAIACgkQBDI26xBzGXcQUwCeIPT4
+RnjFVbpIu9/yB90/4XxGSJ8An1Q12NxzY3nguYjjeFZwPSfhV9zliI0EExECAE0F
+Aj8o7UxGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz
+aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRCkec3EWrRgatzEAJ9NnEz0
+qdxIzRMKnwzIl5bT7iO/RgCgjxUaa4hVcZzWdpiAONJGlAbQALKJAWMEEwECAE0F
+Aj8o7VZGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz
+aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRD5fPnjOkt/XQzwB/wOFo/i
+eiHUOP0ZyKPlt7VBeaXIAGH0xpxZi+XJ0D5PwZmHylTIdlzJ2tlulJfU3pX1dOWm
+uIa1YZsuP+ai+u9dk1QkGgSe5XAYXxqzvmbec8Rxdg0gDEdp3okAhPp9NyKtkxI+
+HNi4EgqDPIqZ1GVhk6k2Z6dfDe+QesI4FA0XIq2d1NFbCPiVenBeE0O6uQxsIvnS
+HRm2PFOn1rWSgkznx25Ue9QLJP2utuxSd5cSJTL3x4E5eYDY2nXsorBOi7+SAiIo
+Gdoj2V4y/5kOoyqnIotEeq4IGLuIedOCrv2Vvpn5Km+VXmyJRugOygMfafuLpPan
+DBbDLjWk5ySNUaYEiI0EExECAE0FAj8o7WBGGmh0dHA6Ly93d3cudHJhc2gubmV0
+L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4
+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
+=CfD6
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/test/testsources.list/sources.list.all-gpg-broken b/test/testsources.list/sources.list.all-gpg-broken
new file mode 100644
index 000000000..110f31884
--- /dev/null
+++ b/test/testsources.list/sources.list.all-gpg-broken
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ /
+
diff --git a/test/testsources.list/sources.list.all-gpg-ok b/test/testsources.list/sources.list.all-gpg-ok
new file mode 100644
index 000000000..2e9a4458a
--- /dev/null
+++ b/test/testsources.list/sources.list.all-gpg-ok
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ /
+
diff --git a/test/testsources.list/sources.list.all-release-broken b/test/testsources.list/sources.list.all-release-broken
new file mode 100644
index 000000000..5e138323a
--- /dev/null
+++ b/test/testsources.list/sources.list.all-release-broken
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-release-broken/ /
diff --git a/test/testsources.list/sources.list.all-release-ok b/test/testsources.list/sources.list.all-release-ok
new file mode 100644
index 000000000..8bcceeee8
--- /dev/null
+++ b/test/testsources.list/sources.list.all-release-ok
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-release-ok/ /
diff --git a/test/testsources.list/sources.list.md5-package-broken b/test/testsources.list/sources.list.md5-package-broken
new file mode 100644
index 000000000..3ba43181e
--- /dev/null
+++ b/test/testsources.list/sources.list.md5-package-broken
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-package-broken/ /
+
diff --git a/test/testsources.list/sources.list.md5-package-ok b/test/testsources.list/sources.list.md5-package-ok
new file mode 100644
index 000000000..9bf207780
--- /dev/null
+++ b/test/testsources.list/sources.list.md5-package-ok
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-package-ok/ /
+
diff --git a/test/testsources.list/sources.list.md5-release-broken b/test/testsources.list/sources.list.md5-release-broken
new file mode 100644
index 000000000..1c8f1dd79
--- /dev/null
+++ b/test/testsources.list/sources.list.md5-release-broken
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-release-broken/ /
diff --git a/test/testsources.list/sources.list.md5-release-ok b/test/testsources.list/sources.list.md5-release-ok
new file mode 100644
index 000000000..f27e04f16
--- /dev/null
+++ b/test/testsources.list/sources.list.md5-release-ok
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-release-ok/ /
diff --git a/test/testsources.list/sources.list.sha1-release-broken b/test/testsources.list/sources.list.sha1-release-broken
new file mode 100644
index 000000000..29a277899
--- /dev/null
+++ b/test/testsources.list/sources.list.sha1-release-broken
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha1-release-broken/ /
diff --git a/test/testsources.list/sources.list.sha1-release-ok b/test/testsources.list/sources.list.sha1-release-ok
new file mode 100644
index 000000000..6f95d0247
--- /dev/null
+++ b/test/testsources.list/sources.list.sha1-release-ok
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha1-release-ok/ /
diff --git a/test/testsources.list/sources.list.sha256-package-broken b/test/testsources.list/sources.list.sha256-package-broken
new file mode 100644
index 000000000..d6d284b9c
--- /dev/null
+++ b/test/testsources.list/sources.list.sha256-package-broken
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-package-broken/ /
+
diff --git a/test/testsources.list/sources.list.sha256-package-ok b/test/testsources.list/sources.list.sha256-package-ok
new file mode 100644
index 000000000..c2d7570d1
--- /dev/null
+++ b/test/testsources.list/sources.list.sha256-package-ok
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-package-ok/ /
+
diff --git a/test/testsources.list/sources.list.sha256-release-broken b/test/testsources.list/sources.list.sha256-release-broken
new file mode 100644
index 000000000..713a4d9c8
--- /dev/null
+++ b/test/testsources.list/sources.list.sha256-release-broken
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-release-broken/ /
diff --git a/test/testsources.list/sources.list.sha256-release-ok b/test/testsources.list/sources.list.sha256-release-ok
new file mode 100644
index 000000000..93b44e366
--- /dev/null
+++ b/test/testsources.list/sources.list.sha256-release-ok
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-release-ok/ /