#include <apt-pkg/algorithms.h>
#include <apt-pkg/error.h>
#include <apt-pkg/configuration.h>
+#include <apt-pkg/version.h>
#include <apt-pkg/sptr.h>
+
#include <apti18n.h>
-
+#include <sys/types.h>
+ #include <cstdlib>
+ #include <algorithm>
#include <iostream>
/*}}}*/
using namespace std;
DepIterator End;
D.GlobOr(Start,End);
if (Start->Type == pkgCache::Dep::Conflicts ||
+ Start->Type == pkgCache::Dep::DpkgBreaks ||
Start->Type == pkgCache::Dep::Obsoletes ||
End->Type == pkgCache::Dep::PreDepends)
{
cout << " Obsoletes:" << D.TargetPkg().Name();
else if (D->Type == pkgCache::Dep::Conflicts)
cout << " Conflicts:" << D.TargetPkg().Name();
+ else if (D->Type == pkgCache::Dep::DpkgBreaks)
+ cout << " Breaks:" << D.TargetPkg().Name();
else
cout << " Depends:" << D.TargetPkg().Name();
}
the necessary calculations to deal with the problems. */
bool pkgApplyStatus(pkgDepCache &Cache)
{
+ pkgDepCache::ActionGroup group(Cache);
+
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
{
if (I->VersionList == 0)
I->InstState == pkgCache::State::HoldReInstReq)
{
if (I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true)
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
else
{
// Is this right? Will dpkg choke on an upgrade?
if (Cache[I].CandidateVer != 0 &&
Cache[I].CandidateVerIter(Cache).Downloadable() == true)
- Cache.MarkInstall(I);
+ Cache.MarkInstall(I, false, 0, false);
else
return _error->Error(_("The package %s needs to be reinstalled, "
"but I can't find an archive for it."),I.Name());
case pkgCache::State::HalfConfigured:
if ((I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true) ||
I.State() != pkgCache::PkgIterator::NeedsUnpack)
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
else
{
if (Cache[I].CandidateVer != 0 &&
Cache[I].CandidateVerIter(Cache).Downloadable() == true)
- Cache.MarkInstall(I);
+ Cache.MarkInstall(I, true, 0, false);
else
Cache.MarkDelete(I);
}
on the result. */
bool pkgFixBroken(pkgDepCache &Cache)
{
+ pkgDepCache::ActionGroup group(Cache);
+
// Auto upgrade all broken packages
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
if (Cache[I].NowBroken() == true)
- Cache.MarkInstall(I,true);
+ Cache.MarkInstall(I, true, 0, false);
/* Fix packages that are in a NeedArchive state but don't have a
downloadable install version */
if (Cache[I].InstVerIter(Cache).Downloadable() == false)
continue;
- Cache.MarkInstall(I,true);
+ Cache.MarkInstall(I, true, 0, false);
}
pkgProblemResolver Fix(&Cache);
*/
bool pkgDistUpgrade(pkgDepCache &Cache)
{
+ pkgDepCache::ActionGroup group(Cache);
+
/* Auto upgrade all installed packages, this provides the basis
for the installation */
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
if (I->CurrentVer != 0)
- Cache.MarkInstall(I,true);
+ Cache.MarkInstall(I, true, 0, false);
/* Now, auto upgrade all essential packages - this ensures that
the essential packages are present and working */
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
- Cache.MarkInstall(I,true);
+ Cache.MarkInstall(I, true, 0, false);
/* We do it again over all previously installed packages to force
conflict resolution on them all. */
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
if (I->CurrentVer != 0)
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
pkgProblemResolver Fix(&Cache);
if (I->SelectedState == pkgCache::State::Hold)
{
Fix.Protect(I);
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
}
}
}
to install packages not marked for install */
bool pkgAllUpgrade(pkgDepCache &Cache)
{
+ pkgDepCache::ActionGroup group(Cache);
+
pkgProblemResolver Fix(&Cache);
if (Cache.BrokenCount() != 0)
continue;
if (I->CurrentVer != 0 && Cache[I].InstallVer != 0)
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
}
return Fix.ResolveByKeep();
the package is restored. */
bool pkgMinimizeUpgrade(pkgDepCache &Cache)
{
+ pkgDepCache::ActionGroup group(Cache);
+
if (Cache.BrokenCount() != 0)
return false;
continue;
// Keep it and see if that is OK
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
if (Cache.BrokenCount() != 0)
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
else
{
// If keep didnt actually do anything then there was no change..
installable */
bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg)
{
+ pkgDepCache::ActionGroup group(Cache);
+
if ((Flags[Pkg->ID] & Upgradable) == 0 || Cache[Pkg].Upgradable() == false)
return false;
if ((Flags[Pkg->ID] & Protected) == Protected)
Flags[Pkg->ID] &= ~Upgradable;
bool WasKept = Cache[Pkg].Keep();
- Cache.MarkInstall(Pkg,false);
+ Cache.MarkInstall(Pkg, false, 0, false);
// This must be a virtual package or something like that.
if (Cache[Pkg].InstVerIter(Cache).end() == true)
/* We let the algorithm deal with conflicts on its next iteration,
it is much smarter than us */
if (Start->Type == pkgCache::Dep::Conflicts ||
+ Start->Type == pkgCache::Dep::DpkgBreaks ||
Start->Type == pkgCache::Dep::Obsoletes)
break;
if (Fail == true)
{
if (WasKept == true)
- Cache.MarkKeep(Pkg);
+ Cache.MarkKeep(Pkg, false, false);
else
Cache.MarkDelete(Pkg);
return false;
upgrade packages to advoid problems. */
bool pkgProblemResolver::Resolve(bool BrokenFix)
{
+ pkgDepCache::ActionGroup group(Cache);
+
unsigned long Size = Cache.Head().PackageCount;
// Record which packages are marked for install
{
if (Cache[I].InstBroken() == true && BrokenFix == true)
{
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
if (Cache[I].Install() == true)
Again = true;
}
pkgCache::Version *OldVer = Cache[I].InstallVer;
Flags[I->ID] &= ReInstateTried;
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
if (Cache[I].InstBroken() == true ||
OldBreaks < Cache.BrokenCount())
{
if (OldVer == 0)
Cache.MarkDelete(I);
else
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
}
else
if (Debug == true)
{
if (Debug == true)
clog << " Or group keep for " << I.Name() << endl;
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
Change = true;
}
}
SPtrArray<pkgCache::Version *> VList = Start.AllTargets();
if (*VList == 0 && (Flags[I->ID] & Protected) != Protected &&
Start->Type != pkgCache::Dep::Conflicts &&
+ Start->Type != pkgCache::Dep::DpkgBreaks &&
Start->Type != pkgCache::Dep::Obsoletes &&
Cache[I].NowBroken() == false)
{
}
Change = true;
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
break;
}
if (Scores[I->ID] <= Scores[Pkg->ID] ||
((Cache[Start] & pkgDepCache::DepNow) == 0 &&
End->Type != pkgCache::Dep::Conflicts &&
+ End->Type != pkgCache::Dep::DpkgBreaks &&
End->Type != pkgCache::Dep::Obsoletes))
{
// Try a little harder to fix protected packages..
/* See if a keep will do, unless the package is protected,
then installing it will be necessary */
bool Installed = Cache[I].Install();
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
if (Cache[I].InstBroken() == false)
{
// Unwind operation will be keep now
// Restore
if (InOr == true && Installed == true)
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
if (Debug == true)
clog << " Holding Back " << I.Name() << " rather than change " << Start.TargetPkg().Name() << endl;
(Start->Type == pkgCache::Dep::Conflicts ||
Start->Type == pkgCache::Dep::Obsoletes))
continue;
-
+
+ if (Start->Type == pkgCache::Dep::DpkgBreaks)
+ {
+ /* Would it help if we upgraded? */
+ if (Cache[End] & pkgDepCache::DepGCVer) {
+ if (Debug)
+ clog << " Upgrading " << Pkg.Name() << " due to Breaks field in " << I.Name() << endl;
+ Cache.MarkInstall(Pkg, false, 0, false);
+ continue;
+ }
+ if (Debug)
+ clog << " Will not break " << Pkg.Name() << " as stated in Breaks field in " << I.Name() <<endl;
+ Cache.MarkKeep(I, false, false);
+ continue;
+ }
+
// Skip adding to the kill list if it is protected
if ((Flags[Pkg->ID] & Protected) != 0)
continue;
// Hm, nothing can possibly satisify this dep. Nuke it.
if (VList[0] == 0 &&
Start->Type != pkgCache::Dep::Conflicts &&
+ Start->Type != pkgCache::Dep::DpkgBreaks &&
Start->Type != pkgCache::Dep::Obsoletes &&
(Flags[I->ID] & Protected) != Protected)
{
// Restore
if (InOr == true && Installed == true)
- Cache.MarkInstall(I,false);
+ Cache.MarkInstall(I, false, 0, false);
if (Debug == true)
clog << " Holding Back " << I.Name() << " because I can't find " << Start.TargetPkg().Name() << endl;
{
if (Debug == true)
clog << " Fixing " << I.Name() << " via keep of " << J->Pkg.Name() << endl;
- Cache.MarkKeep(J->Pkg);
+ Cache.MarkKeep(J->Pkg, false, false);
}
if (Counter > 1)
return _error->Error(_("Unable to correct problems, you have held broken packages."));
}
+ // set the auto-flags (mvo: I'm not sure if we _really_ need this, but
+ // I didn't managed
+ pkgCache::PkgIterator I = Cache.PkgBegin();
+ for (;I.end() != true; I++) {
+ if (Cache[I].NewInstall() && !(Flags[I->ID] & PreInstalled)) {
+ if(_config->FindI("Debug::pkgAutoRemove",false)) {
+ std::clog << "Resolve installed new pkg: " << I.Name()
+ << " (now marking it as auto)" << std::endl;
+ }
+ Cache[I].Flags |= pkgCache::Flag::Auto;
+ }
+ }
+
+
return true;
}
/*}}}*/
system was non-broken previously. */
bool pkgProblemResolver::ResolveByKeep()
{
+ pkgDepCache::ActionGroup group(Cache);
+
unsigned long Size = Cache.Head().PackageCount;
if (Debug == true)
{
if (Debug == true)
clog << "Keeping package " << I.Name() << endl;
- Cache.MarkKeep(I);
+ Cache.MarkKeep(I, false, false);
if (Cache[I].InstBroken() == false)
{
K = PList - 1;
{
if (Debug == true)
clog << " Keeping Package " << Pkg.Name() << " due to dep" << endl;
- Cache.MarkKeep(Pkg);
+ Cache.MarkKeep(Pkg, false, false);
}
if (Cache[I].InstBroken() == false)
/* This is used to make sure protected packages are installed */
void pkgProblemResolver::InstallProtect()
{
+ pkgDepCache::ActionGroup group(Cache);
+
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
{
if ((Flags[I->ID] & Protected) == Protected)
{
if ((Flags[I->ID] & ToRemove) == ToRemove)
Cache.MarkDelete(I);
- else
- Cache.MarkInstall(I,false);
+ else
+ {
+ // preserver the information if the package was auto
+ // or manual installed
+ bool autoInst = (Cache[I].Flags & pkgCache::Flag::Auto);
+ Cache.MarkInstall(I, false, 0, !autoInst);
+ }
}
}
}
qsort(List,Count,sizeof(*List),PrioComp);
}
/*}}}*/
+
#include <dirent.h>
#include <unistd.h>
#include <stdio.h>
+ #include <algorithm>
#include "indexcopy.h"
search that short circuits when it his a package file in the dir.
This speeds it up greatly as the majority of the size is in the
binary-* sub dirs. */
-bool pkgCdrom::FindPackages(string CD,vector<string> &List,
- vector<string> &SList, vector<string> &SigList,
+bool pkgCdrom::FindPackages(string CD,
+ vector<string> &List,
+ vector<string> &SList,
+ vector<string> &SigList,
+ vector<string> &TransList,
string &InfoDir, pkgCdromStatus *log,
unsigned int Depth)
{
static ino_t Inodes[9];
+ DIR *D;
// if we have a look we "pulse" now
if(log)
if (_config->FindB("APT::CDROM::Thorough",false) == false)
return true;
}
+
+ // see if we find translatin indexes
+ if (stat("i18n",&Buf) == 0)
+ {
+ D = opendir("i18n");
+ for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
+ {
+ if(strstr(Dir->d_name,"Translation") != NULL)
+ {
+ if (_config->FindB("Debug::aptcdrom",false) == true)
+ std::clog << "found translations: " << Dir->d_name << "\n";
+ string file = Dir->d_name;
+ if(file.substr(file.size()-3,file.size()) == ".gz")
+ file = file.substr(0,file.size()-3);
+ TransList.push_back(CD+"i18n/"+ file);
+ }
+ }
+ closedir(D);
+ }
+
- DIR *D = opendir(".");
+ D = opendir(".");
if (D == 0)
return _error->Errno("opendir","Unable to read %s",CD.c_str());
Inodes[Depth] = Buf.st_ino;
// Descend
- if (FindPackages(CD + Dir->d_name,List,SList,SigList,InfoDir,log,Depth+1) == false)
+ if (FindPackages(CD + Dir->d_name,List,SList,SigList,TransList,InfoDir,log,Depth+1) == false)
break;
if (chdir(CD.c_str()) != 0)
vector<string> List;
vector<string> SourceList;
vector<string> SigList;
+ vector<string> TransList;
string StartDir = SafeGetCWD();
string InfoDir;
- if (FindPackages(CDROM,List,SourceList, SigList,InfoDir,log) == false)
+ if (FindPackages(CDROM,List,SourceList, SigList,TransList,InfoDir,log) == false)
{
log->Update("\n");
return false;
DropRepeats(List,"Packages");
DropRepeats(SourceList,"Sources");
DropRepeats(SigList,"Release.gpg");
+ DropRepeats(TransList,"");
if(log) {
msg.str("");
- ioprintf(msg, _("Found %i package indexes, %i source indexes and "
- "%i signatures\n"),
- List.size(), SourceList.size(), SigList.size());
+ ioprintf(msg, _("Found %i package indexes, %i source indexes, "
+ "%i translation indexes and %i signatures\n"),
+ List.size(), SourceList.size(), TransList.size(),
+ SigList.size());
log->Update(msg.str(), STEP_SCAN);
}
// Copy the package files to the state directory
PackageCopy Copy;
SourceCopy SrcCopy;
+ TranslationsCopy TransCopy;
if (Copy.CopyPackages(CDROM,Name,List, log) == false ||
- SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false)
+ SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false ||
+ TransCopy.CopyTranslations(CDROM,Name,TransList, log) == false)
return false;
// reduce the List so that it takes less space in sources.list
#include <ctype.h>
#include <string.h>
#include <stdio.h>
+ #include <algorithm>
#include <unistd.h>
#include <regex.h>
#include <errno.h>
#include <stdarg.h>
+#include <iconv.h>
#include "config.h"
using namespace std;
/*}}}*/
+// UTF8ToCodeset - Convert some UTF-8 string for some codeset /*{{{*/
+// ---------------------------------------------------------------------
+/* This is handy to use before display some information for enduser */
+bool UTF8ToCodeset(const char *codeset, const string &orig, string *dest)
+{
+ iconv_t cd;
+ const char *inbuf;
+ char *inptr, *outbuf, *outptr;
+ size_t insize, outsize;
+
+ cd = iconv_open(codeset, "UTF-8");
+ if (cd == (iconv_t)(-1)) {
+ // Something went wrong
+ if (errno == EINVAL)
+ _error->Error("conversion from 'UTF-8' to '%s' not available",
+ codeset);
+ else
+ perror("iconv_open");
+
+ // Clean the destination string
+ *dest = "";
+
+ return false;
+ }
+
+ insize = outsize = orig.size();
+ inbuf = orig.data();
+ inptr = (char *)inbuf;
+ outbuf = new char[insize+1];
+ outptr = outbuf;
+
+ iconv(cd, &inptr, &insize, &outptr, &outsize);
+ *outptr = '\0';
+
+ *dest = outbuf;
+ delete[] outbuf;
+
+ iconv_close(cd);
+
+ return true;
+}
+ /*}}}*/
// strstrip - Remove white space from the front and back of a string /*{{{*/
// ---------------------------------------------------------------------
/* This is handy to use when parsing a file. It also removes \n's left
#include <apti18n.h>
#include <config.h>
+ #include <cstdlib>
#include <sys/stat.h>
/*}}}*/
else
Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
Cnf.Set("APT::Build-Essential::", "build-essential");
+ Cnf.Set("APT::Install-Recommends", false);
+ Cnf.Set("APT::Install-Suggests", false);
Cnf.Set("Dir","/");
// State
bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str());
}
#endif
+
+ // Translation
+ Cnf.Set("APT::Acquire::Translation", "environment");
return true;
}
#include <errno.h>
#include <regex.h>
#include <sys/wait.h>
+#include <sstream>
/*}}}*/
using namespace std;
and verifies that the system is OK. */
bool CacheFile::CheckDeps(bool AllowBroken)
{
+ bool FixBroken = _config->FindB("APT::Get::Fix-Broken",false);
+
if (_error->PendingError() == true)
return false;
if (pkgApplyStatus(*DCache) == false)
return false;
+ if (_config->FindB("APT::Get::Fix-Policy-Broken",false) == true)
+ {
+ FixBroken = true;
+ if ((DCache->PolicyBrokenCount() > 0))
+ {
+ // upgrade all policy-broken packages with ForceImportantDeps=True
+ for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); I++)
+ if ((*DCache)[I].NowPolicyBroken() == true)
+ DCache->MarkInstall(I,true,0, false, true);
+ }
+ }
+
// Nothing is broken
if (DCache->BrokenCount() == 0 || AllowBroken == true)
return true;
// Attempt to fix broken things
- if (_config->FindB("APT::Get::Fix-Broken",false) == true)
+ if (FixBroken == true)
{
c1out << _("Correcting dependencies...") << flush;
if (pkgFixBroken(*DCache) == false || DCache->BrokenCount() != 0)
cerr << _("Unable to correct missing packages.") << endl;
return _error->Error(_("Aborting install."));
}
-
+
_system->UnLock();
int status_fd = _config->FindI("APT::Status-Fd",-1);
pkgPackageManager::OrderResult Res = PM->DoInstall(status_fd);
else
ExpectedInst++;
- // Install it with autoinstalling enabled.
- if (State.InstBroken() == true && BrokenFix == false)
+ // Install it with autoinstalling enabled (if we not respect the minial
+ // required deps or the policy)
+ if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false)
Cache.MarkInstall(Pkg,true);
+
return true;
}
/*}}}*/
return false;
bool Failed = false;
+ bool TransientNetworkFailure = false;
for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++)
{
if ((*I)->Status == pkgAcquire::Item::StatDone)
continue;
(*I)->Finished();
-
+
fprintf(stderr,_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(),
(*I)->ErrorText.c_str());
+
+ if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError)
+ {
+ TransientNetworkFailure = true;
+ continue;
+ }
+
Failed = true;
}
// Clean out any old list files
- if (!Failed && _config->FindB("APT::Get::List-Cleanup",true) == true)
+ if (!TransientNetworkFailure &&
+ _config->FindB("APT::Get::List-Cleanup",true) == true)
{
if (Fetcher.Clean(_config->FindDir("Dir::State::lists")) == false ||
Fetcher.Clean(_config->FindDir("Dir::State::lists") + "partial/") == false)
if (Cache.BuildCaches() == false)
return false;
- if (Failed == true)
+ if (TransientNetworkFailure == true)
+ _error->Warning(_("Some index files failed to download, they have been ignored, or old ones used instead."));
+ else if (Failed == true)
return _error->Error(_("Some index files failed to download, they have been ignored, or old ones used instead."));
-
+
return true;
}
/*}}}*/
+// DoAutomaticRemove - Remove all automatic unused packages /*{{{*/
+// ---------------------------------------------------------------------
+/* Remove unused automatic packages */
+bool DoAutomaticRemove(CacheFile &Cache)
+{
+ bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
+ bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", false);
+ bool hideAutoRemove = _config->FindB("APT::Get::HideAutoRemove");
+ pkgDepCache::ActionGroup group(*Cache);
+
+ if(Debug)
+ std::cout << "DoAutomaticRemove()" << std::endl;
+
+ if (_config->FindB("APT::Get::Remove",true) == false &&
+ doAutoRemove == true)
+ {
+ c1out << _("We are not supposed to delete stuff, can't start "
+ "AutoRemover") << std::endl;
+ doAutoRemove = false;
+ }
+
+ string autoremovelist, autoremoveversions;
+ // look over the cache to see what can be removed
+ for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg)
+ {
+ if (Cache[Pkg].Garbage)
+ {
+ if(Pkg.CurrentVer() != 0 || Cache[Pkg].Install())
+ if(Debug)
+ std::cout << "We could delete %s" << Pkg.Name() << std::endl;
+
+ // only show stuff in the list that is not yet marked for removal
+ if(Cache[Pkg].Delete() == false)
+ {
+ autoremovelist += string(Pkg.Name()) + " ";
+ autoremoveversions += string(Cache[Pkg].CandVersion) + "\n";
+ }
+ if (doAutoRemove)
+ {
+ if(Pkg.CurrentVer() != 0 &&
+ Pkg->CurrentState != pkgCache::State::ConfigFiles)
+ Cache->MarkDelete(Pkg, _config->FindB("APT::Get::Purge", false));
+ else
+ Cache->MarkKeep(Pkg, false, false);
+ }
+ }
+ }
+ if (!hideAutoRemove)
+ ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
+ if (!doAutoRemove && !hideAutoRemove && autoremovelist.size() > 0)
+ c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
+
+ // Now see if we destroyed anything
+ if (Cache->BrokenCount() != 0)
+ {
+ c1out << _("Hmm, seems like the AutoRemover destroyed something which really\n"
+ "shouldn't happen. Please file a bug report against apt.") << endl;
+ c1out << endl;
+ c1out << _("The following information may help to resolve the situation:") << endl;
+ c1out << endl;
+ ShowBroken(c1out,Cache,false);
+
+ return _error->Error(_("Internal Error, AutoRemover broke stuff"));
+ }
+ return true;
+}
+
// DoUpgrade - Upgrade all packages /*{{{*/
// ---------------------------------------------------------------------
/* Upgrade all packages without installing new packages or erasing old
return InstallPackages(Cache,true);
}
/*}}}*/
+// DoInstallTask - Install task from the command line /*{{{*/
+// ---------------------------------------------------------------------
+/* Install named task */
+bool TryInstallTask(pkgDepCache &Cache, pkgProblemResolver &Fix,
+ bool BrokenFix,
+ unsigned int& ExpectedInst,
+ const char *taskname)
+{
+ const char *start, *end;
+ pkgCache::PkgIterator Pkg;
+ char buf[64*1024];
+ regex_t Pattern;
+
+ // get the records
+ pkgRecords Recs(Cache);
+
+ // build regexp for the task
+ char S[300];
+ snprintf(S, sizeof(S), "^Task:.*[^a-z]%s[^a-z].*\n", taskname);
+ regcomp(&Pattern,S, REG_EXTENDED | REG_NOSUB | REG_NEWLINE);
+
+ bool found = false;
+ bool res = true;
+ for (Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++)
+ {
+ pkgCache::VerIterator ver = Cache[Pkg].CandidateVerIter(Cache);
+ if(ver.end())
+ continue;
+ pkgRecords::Parser &parser = Recs.Lookup(ver.FileList());
+ parser.GetRec(start,end);
+ strncpy(buf, start, end-start);
+ buf[end-start] = 0x0;
+ if (regexec(&Pattern,buf,0,0,0) != 0)
+ continue;
+ res &= TryToInstall(Pkg,Cache,Fix,false,BrokenFix,ExpectedInst);
+ found = true;
+ }
+
+ if(!found)
+ _error->Error(_("Couldn't find task %s"),taskname);
+
+ regfree(&Pattern);
+ return res;
+}
+
// DoInstall - Install packages from the command line /*{{{*/
// ---------------------------------------------------------------------
/* Install named packages */
if (Cache->BrokenCount() != 0)
BrokenFix = true;
+ unsigned int AutoMarkChanged = 0;
unsigned int ExpectedInst = 0;
unsigned int Packages = 0;
pkgProblemResolver Fix(Cache);
_config->Set("APT::Get::Purge", true);
DefRemove = true;
}
- for (const char **I = CmdL.FileList + 1; *I != 0; I++)
+ else if (strcasecmp(CmdL.FileList[0], "autoremove") == 0)
{
- // Duplicate the string
- unsigned int Length = strlen(*I);
- char S[300];
- if (Length >= sizeof(S))
- continue;
- strcpy(S,*I);
-
- // See if we are removing and special indicators..
- bool Remove = DefRemove;
- char *VerTag = 0;
- bool VerIsRel = false;
- while (Cache->FindPkg(S).end() == true)
+ _config->Set("APT::Get::AutomaticRemove", "true");
+ DefRemove = true;
+ }
+ // new scope for the ActionGroup
+ {
+ pkgDepCache::ActionGroup group(Cache);
+ for (const char **I = CmdL.FileList + 1; *I != 0; I++)
{
- // Handle an optional end tag indicating what to do
- if (Length >= 1 && S[Length - 1] == '-')
- {
- Remove = true;
- S[--Length] = 0;
+ // Duplicate the string
+ unsigned int Length = strlen(*I);
+ char S[300];
+ if (Length >= sizeof(S))
continue;
- }
-
- if (Length >= 1 && S[Length - 1] == '+')
+ strcpy(S,*I);
+
+ // See if we are removing and special indicators..
+ bool Remove = DefRemove;
+ char *VerTag = 0;
+ bool VerIsRel = false;
+ while (Cache->FindPkg(S).end() == true)
{
- Remove = false;
- S[--Length] = 0;
- continue;
- }
+ // Handle an optional end tag indicating what to do
+ if (Length >= 1 && S[Length - 1] == '-')
+ {
+ Remove = true;
+ S[--Length] = 0;
+ continue;
+ }
- char *Slash = strchr(S,'=');
- if (Slash != 0)
- {
- VerIsRel = false;
- *Slash = 0;
- VerTag = Slash + 1;
- }
+ if (Length >= 1 && S[Length - 1] == '+')
+ {
+ Remove = false;
+ S[--Length] = 0;
+ continue;
+ }
- Slash = strchr(S,'/');
- if (Slash != 0)
- {
- VerIsRel = true;
- *Slash = 0;
- VerTag = Slash + 1;
- }
+ char *Slash = strchr(S,'=');
+ if (Slash != 0)
+ {
+ VerIsRel = false;
+ *Slash = 0;
+ VerTag = Slash + 1;
+ }
- break;
- }
+ Slash = strchr(S,'/');
+ if (Slash != 0)
+ {
+ VerIsRel = true;
+ *Slash = 0;
+ VerTag = Slash + 1;
+ }
+
+ break;
+ }
- // Locate the package
- pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
- Packages++;
- if (Pkg.end() == true)
- {
- // Check if the name is a regex
- const char *I;
- for (I = S; *I != 0; I++)
- if (*I == '?' || *I == '*' || *I == '|' ||
- *I == '[' || *I == '^' || *I == '$')
- break;
- if (*I == 0)
- return _error->Error(_("Couldn't find package %s"),S);
+ // Locate the package
+ pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
+ Packages++;
+ if (Pkg.end() == true)
+ {
+ // Check if the name is a regex
+ const char *I;
+ for (I = S; *I != 0; I++)
+ if (*I == '?' || *I == '*' || *I == '|' ||
+ *I == '[' || *I == '^' || *I == '$')
+ break;
+ if (*I == 0)
+ return _error->Error(_("Couldn't find package %s"),S);
- // Regexs must always be confirmed
- ExpectedInst += 1000;
+ // Regexs must always be confirmed
+ ExpectedInst += 1000;
- // Compile the regex pattern
- regex_t Pattern;
- int Res;
- if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE |
- REG_NOSUB)) != 0)
- {
- char Error[300];
- regerror(Res,&Pattern,Error,sizeof(Error));
- return _error->Error(_("Regex compilation error - %s"),Error);
- }
+ // Compile the regex pattern
+ regex_t Pattern;
+ int Res;
+ if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE |
+ REG_NOSUB)) != 0)
+ {
+ char Error[300];
+ regerror(Res,&Pattern,Error,sizeof(Error));
+ return _error->Error(_("Regex compilation error - %s"),Error);
+ }
- // Run over the matches
- bool Hit = false;
- for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
- {
- if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0)
- continue;
+ // Run over the matches
+ bool Hit = false;
+ for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+ {
+ if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0)
+ continue;
- ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"),
- Pkg.Name(),S);
+ ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"),
+ Pkg.Name(),S);
+ if (VerTag != 0)
+ if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
+ return false;
+
+ Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,
+ ExpectedInst,false);
+ }
+ regfree(&Pattern);
+
+ if (Hit == false)
+ return _error->Error(_("Couldn't find package %s"),S);
+ }
+ else
+ {
if (VerTag != 0)
if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
return false;
-
- Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,
- ExpectedInst,false);
- }
- regfree(&Pattern);
-
- if (Hit == false)
- return _error->Error(_("Couldn't find package %s"),S);
- }
- else
- {
- if (VerTag != 0)
- if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
+ if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
return false;
- if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
- return false;
- }
- }
- /* If we are in the Broken fixing mode we do not attempt to fix the
- problems. This is if the user invoked install without -f and gave
- packages */
- if (BrokenFix == true && Cache->BrokenCount() != 0)
- {
- c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
- ShowBroken(c1out,Cache,false);
+ // see if we need to fix the auto-mark flag
+ // e.g. apt-get install foo
+ // where foo is marked automatic
+ if(!Remove &&
+ Cache[Pkg].Install() == false &&
+ (Cache[Pkg].Flags & pkgCache::Flag::Auto))
+ {
+ ioprintf(c1out,_("%s set to manual installed.\n"),
+ Pkg.Name());
+ Cache->MarkAuto(Pkg,false);
+ AutoMarkChanged++;
+ }
+ }
+ }
- return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
- }
+ /* If we are in the Broken fixing mode we do not attempt to fix the
+ problems. This is if the user invoked install without -f and gave
+ packages */
+ if (BrokenFix == true && Cache->BrokenCount() != 0)
+ {
+ c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
+ ShowBroken(c1out,Cache,false);
+
+ return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
+ }
- // Call the scored problem resolver
- Fix.InstallProtect();
- if (Fix.Resolve(true) == false)
- _error->Discard();
+ // Call the scored problem resolver
+ Fix.InstallProtect();
+ if (Fix.Resolve(true) == false)
+ _error->Discard();
- // Now we check the state of the packages,
- if (Cache->BrokenCount() != 0)
- {
- c1out <<
- _("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.") << endl;
- if (Packages == 1)
+ // Now we check the state of the packages,
+ if (Cache->BrokenCount() != 0)
{
- c1out << endl;
c1out <<
- _("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.") << endl;
- }
+ _("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.") << endl;
+ if (Packages == 1)
+ {
+ c1out << endl;
+ c1out <<
+ _("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.") << endl;
+ }
+
+ c1out << _("The following information may help to resolve the situation:") << endl;
+ c1out << endl;
+ ShowBroken(c1out,Cache,false);
+ return _error->Error(_("Broken packages"));
+ }
+ }
+ if (_config->FindB("APT::Get::AutomaticRemove")) {
+ if (!DoAutomaticRemove(Cache))
+ return false;
+ }
- c1out << _("The following information may help to resolve the situation:") << endl;
- c1out << endl;
- ShowBroken(c1out,Cache,false);
- return _error->Error(_("Broken packages"));
- }
-
/* Print out a list of packages that are going to be installed extra
to what the user asked */
if (Cache->InstCount() != ExpectedInst)
if (*J == 0) {
List += string(I.Name()) + " ";
- VersionsList += string(Cache[I].CandVersion) + "\n";
- }
+ VersionsList += string(Cache[I].CandVersion) + "\n";
+ }
}
ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList);
}
+ // if nothing changed in the cache, but only the automark information
+ // we write the StateFile here, otherwise it will be written in
+ // cache.commit()
+ if (AutoMarkChanged > 0 &&
+ Cache->DelCount() == 0 && Cache->InstCount() == 0 &&
+ Cache->BadCount() == 0)
+ Cache->writeStateFile(NULL);
+
// See if we need to prompt
if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
return InstallPackages(Cache,false,false);
if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false)
return false;
+ pkgDepCache::ActionGroup group(Cache);
+
// Install everything with the install flag set
pkgCache::PkgIterator I = Cache->PkgBegin();
for (;I.end() != true; I++)
I->Type != "tar")
continue;
+ // Dsc only mode only fetches .dsc files
+ if (_config->FindB("APT::Get::Dsc-Only",false) == true &&
+ I->Type != "dsc")
+ continue;
+
// don't download the same uri twice (should this be moved to
// the fetcher interface itself?)
if(queued.find(Last->Index().ArchiveURI(I->Path)) != queued.end())
_config->Set("APT::Get::Fix-Broken",false);
_config->Set("APT::Get::Force-Yes",false);
_config->Set("APT::Get::List-Cleanup",true);
+ _config->Set("APT::Get::AutomaticRemove",false);
}
/*}}}*/
// SigWinch - Window size change signal handler /*{{{*/
{0,"force-yes","APT::Get::force-yes",0},
{0,"print-uris","APT::Get::Print-URIs",0},
{0,"diff-only","APT::Get::Diff-Only",0},
- {0,"tar-only","APT::Get::tar-Only",0},
+ {0,"tar-only","APT::Get::Tar-Only",0},
+ {0,"dsc-only","APT::Get::Dsc-Only",0},
{0,"purge","APT::Get::Purge",0},
{0,"list-cleanup","APT::Get::List-Cleanup",0},
{0,"reinstall","APT::Get::ReInstall",0},
{0,"remove","APT::Get::Remove",0},
{0,"only-source","APT::Get::Only-Source",0},
{0,"arch-only","APT::Get::Arch-Only",0},
+ {0,"auto-remove","APT::Get::AutomaticRemove",0},
{0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0},
+ {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean},
+ {0,"fix-policy","APT::Get::Fix-Policy-Broken",0},
{'c',"config-file",0,CommandLine::ConfigFile},
{'o',"option",0,CommandLine::ArbItem},
{0,0,0,0}};
{"upgrade",&DoUpgrade},
{"install",&DoInstall},
{"remove",&DoInstall},
+ {"autoremove",&DoInstall},
{"dist-upgrade",&DoDistUpgrade},
{"dselect-upgrade",&DoDSelectUpgrade},
{"build-dep",&DoBuildDep},
-apt (0.6.47) UNRELEASED; urgency=low
+apt (0.7.2) unstable; urgency=low
+
+ * merged the debian/experimental changes back
+ into the debian/sid branch
+ * merged from Christian Perrier:
+ * mr.po: New Marathi translation Closes: #416806
+ * zh_CN.po: Updated by Eric Pareja Closes: #416822
+ * tl.po: Updated by Eric Pareja Closes: #416638
+ * gl.po: Updated by Jacobo Tarrio
+ Closes: #412828
+ * da.po: Updated by Claus Hindsgaul
+ Closes: #409483
+ * fr.po: Remove a non-breakable space for usability
+ issues. Closes: #408877
+ * ru.po: Updated Russian translation. Closes: #405476
+ * *.po: Unfuzzy after upstream typo corrections
+ * buildlib/archtable:
+ - added support for sh3/sh4 (closes: #424870)
+ - added support for m32r (closes: #394096)
+ * buildlib/systemtable:
+ - added support for lpia
+ * configure.in:
+ - check systemtable for architecture mapping too
+ * fix error in AutocleanInterval, closes: #319339
+ (thanks to Israel G. Lugo for the patch)
+ * add "purge" commandline argument, closes: #133421)
+ (thanks to Julien Danjou for the patch)
++ * add "purge" commandline argument, closes: #133421)
++ (thanks to Julien Danjou for the patch)
++ * fix FTBFS with gcc 4.3, closes: #417090
++ (thanks to Martin Michlmayr for the patch)
++ * add --dsc-only option, thanks to K. Richard Pixley
+
+ -- Michael Vogt <mvo@debian.org> Wed, 06 Jun 2007 23:19:50 +0200
+
+apt (0.7.1) experimental; urgency=low
+ * ABI library name change because its build against
+ new glibc
* implement SourceVer() in pkgRecords
(thanks to Daniel Burrows for the patch!)
* apt-pkg/algorithm.cc:
- fix error translation that causes trouble to lsb_release
* apt-pkg/acquire-item.cc:
- if decompression of a index fails, delete the index
- * [ABI] apt-pkg/acquire.{cc,h}:
+ * apt-pkg/acquire.{cc,h}:
- deal better with duplicated sources.list entries (avoid
double queuing of URLs) - this fixes hangs in bzip/gzip
* merged from Christian Perrier:
complete translations
* apt-pkg/policy.cc:
- allow multiple packages (thanks to David Foerster)
- * buildlib/archtable:
- - added support for sh3/sh4 (closes: #424870)
- - added support for m32r (closes: #394096)
- * buildlib/systemtable:
- - added support for lpia
- * configure.in:
- - check systemtable for architecture mapping too
- * fix error in AutocleanInterval, closes: #319339
- (thanks to Israel G. Lugo for the patch)
- * add "purge" commandline argument, closes: #133421)
- (thanks to Julien Danjou for the patch)
- * fix FTBFS with gcc 4.3, closes: #417090
- (thanks to Martin Michlmayr for the patch)
- * add --dsc-only option, thanks to K. Richard Pixley
-
- -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 18 Dec 2006 19:39:05 +0100
+
+ -- Michael Vogt <mvo@debian.org> Wed, 2 May 2007 13:43:44 +0200
+
+apt (0.7.0) experimental; urgency=low
+
+ * Package that contains tall the new features
+ * Removed all #pragma interface/implementation
+ * Branch that contains tall the new features:
+ * translated package descriptions
+ * task install support
+ * automatic dependency removal (thanks to Daniel Burrows)
+ * merged support for the new dpkg "Breaks" field
+ (thanks to Ian Jackson)
+ * handle network failures more gracefully on "update"
+ * support for unattended-upgrades (via unattended-upgrades
+ package)
+ * added apt-transport-https method
+
+ -- Michael Vogt <mvo@debian.org> Fri, 12 Jan 2007 20:48:07 +0100
apt (0.6.46.4-0.1) unstable; urgency=emergency
messages
* Merged from Christian Perrier bzr branch:
- - ca.po: Updated to 514t
- - be.po: Updated to 514t
- - it.po: Updated to 514t
- - hu.po: Updated to 514t
- - zh_TW.po: Updated to 514t
- - ar.po: Updated to 293t221u.
- - ru.po: Updated to 514t. Closes: #392466
- - nb.po: Updated to 514t. Closes: #392466
- - pt.po: Updated to 514t. Closes: #393199
- - fr.po: One spelling error corrected: s/accèder/accéder
- - km.po: Updated to 514t.
- - ko.po: Updated to 514t.
- - bg.po: Updated to 514t.
- - de.po: Updated to 514t.
- - en_GB.po: Updated to 514t.
-
- -- Michael Vogt <mvo@debian.org> Thu, 2 Nov 2006 11:37:58 +0100
+ - ca.po: Updated to 514t
+ - be.po: Updated to 514t
+ - it.po: Updated to 514t
+ - hu.po: Updated to 514t
+ - zh_TW.po: Updated to 514t
+ - ar.po: Updated to 293t221u.
+ - ru.po: Updated to 514t. Closes: #392466
+ - nb.po: Updated to 514t. Closes: #392466
+ - pt.po: Updated to 514t. Closes: #393199
+ - fr.po: One spelling error corrected: s/accèder/accéder
+ - km.po: Updated to 514t.
+ - ko.po: Updated to 514t.
+ - bg.po: Updated to 514t.
+ - de.po: Updated to 514t.
+ - en_GB.po: Updated to 514t.
+
+ -- Michael Vogt <mvo@debian.org> Thu, 2 Nov 2006 11:37:58 +0100
apt (0.6.46.2) unstable; urgency=low
+ * debian/control:
+ - depend on debian-archive-keyring to offer clean upgrade path
+ (closes: #386800)
* Merged from Christian Perrier bzr branch:
- es.po: Updated to 514t. Closes: #391661
- da.po: Updated to 514t. Closes: #391424
- cs.po: Updated. Closes: #391064
- es.po: Updated to 514t. Closes: #391661
- da.po: Updated to 514t. Closes: #391424
-
+
-- Michael Vogt <mvo@debian.org> Wed, 11 Oct 2006 09:03:15 +0200
apt (0.6.46.1) unstable; urgency=low
+ * merged "install-recommends" branch (ABI break):
+ - new "--install-recommends"
+ - install new recommends on "upgrade" if --install-recommends is
+ given
+ - new "--fix-policy" option to install all packages with unmet
+ important dependencies (usefull with --install-recommends to
+ see what not-installed recommends are on the system)
+ - fix of recommended packages display (only show CandidateVersion
+ fix or-group handling)
+ * merged "install-task" branch (use with "apt-get install taskname^")
* methods/gzip.cc:
- deal with empty files
- * Applied patch from Daniel Schepler to make apt bin-NMU able.
+ * Applied patch from Daniel Schepler to make apt bin-NMU able.
(closes: bug#359634)
* rebuild against current g++ because of:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289
* dz.po: New Dzongkha translation: 512t
* ro.po: Updated to 512t
* eu.po: Updated
+ * eu.po: Updated
+ * fix apt-get dist-upgrade
+ * fix warning if no /var/lib/apt/extended_states is present
+ * don't download Translations for deb-src sources.list lines
+ * apt-pkg/tagfile.cc:
+ - support not-mmapable files again
- -- Michael Vogt <mvo@debian.org> Thu, 27 Jul 2006 00:52:05 +0200
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 25 Jul 2006 11:55:22 +0200
-apt (0.6.44.2) unstable; urgency=low
-
- * apt-pkg/depcache.cc:
- - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
- * apt-pkg/acquire-item.cc:
- - fix missing chmod() in the new aquire code
- (thanks to Bastian Blank, Closes: #367425)
- * merged from
- http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
- * sk.po: Completed to 512t
- * eu.po: Completed to 512t
- * fr.po: Completed to 512t
- * sv.po: Completed to 512t
- * Update all PO and the POT. Gives 506t6f for formerly
- complete translations
-
- -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200
+apt (0.6.44.2exp1) experimental; urgency=low
+
+ * added support for i18n of the package descriptions
+ * added support for aptitude like auto-install tracking (a HUGE
+ HUGE thanks to Daniel Burrows who made this possible)
+ * synced with the http://people.debian.org/~mvo/bzr/apt/debian-sid branch
+ * build from http://people.debian.org/~mvo/bzr/apt/debian-experimental
+
+ -- Michael Vogt <mvo@debian.org> Mon, 3 Jul 2006 21:50:31 +0200
+
+apt (0.6.44.2) unstable; urgency=low
+
+ * apt-pkg/depcache.cc:
+ - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
+ * apt-pkg/acquire-item.cc:
+ - fix missing chmod() in the new aquire code
+ (thanks to Bastian Blank, Closes: #367425)
+ * merged from
+ http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
+ * sk.po: Completed to 512t
+ * eu.po: Completed to 512t
+ * fr.po: Completed to 512t
+ * sv.po: Completed to 512t
+ * Update all PO and the POT. Gives 506t6f for formerly
+ complete translations
+
+ -- Michael Vogt <mvo@debian.org> Wed, 14 Jun 2006 12:00:57 +0200
apt (0.6.44.1-0.1) unstable; urgency=low
apt (0.6.44.1) unstable; urgency=low
+ * apt-pkg/acquire-item.cc:
+ - fix reversed logic of the "Acquire::PDiffs" option
* merged from
http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
- po/LINGUAS: added "bg" Closes: #360262
- po/gl.po: Galician translation update. Closes: #366849
- po/hu.po: Hungarian translation update. Closes: #365448
- po/cs.po: Czech translation updated. Closes: #367244
+ * apt-pkg/contrib/sha256.cc:
+ - applied patch to fix unaligned access problem. Closes: #367417
+ (thanks to David Mosberger)
-- Michael Vogt <mvo@debian.org> Tue, 16 May 2006 21:51:16 +0200
apt (0.6.44) unstable; urgency=low
* apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large
+ * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256
+ (thanks to Anthony Towns)
+ * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations
+ (thanks to Anthony Towns)
+ * apt pdiff support from experimental merged
+ * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman)
* apt-pkg/deb/dpkgpm.cc:
- wording fixes (thanks to Matt Zimmerman)
- - fix error in dpkg interaction (closes: #364513,
- thanks to Martin Dickopp)
+ - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp)
* apt-pkg/tagfile.{cc,h}:
- use MMap to read the entries (thanks to Zephaniah E. Hull for the
patch) Closes: #350025
* cmdline/apt-cdrom.cc:
- fix some missing gettext() calls (closes: #334539)
* doc/apt-cache.8.xml: fix typo (closes: #334714)
-
+
-- Michael Vogt <mvo@debian.org> Wed, 19 Oct 2005 22:02:09 +0200
apt (0.6.41) unstable; urgency=low
* Add Welsh translation from Dafydd Harries
(daf@muse.19inch.net--2005/apt--main--0--patch-1)
* Change debian/bugscript to use #!/bin/bash (Closes: #313402)
+ * Fix a incorrect example in the man-page (closes: #282918)
-- Matt Zimmerman <mdz@ubuntu.com> Tue, 24 May 2005 14:38:25 -0700
<arg>check</arg>
<arg>clean</arg>
<arg>autoclean</arg>
+ <arg>autoremove</arg>
</group>
</cmdsynopsis>
</refsynopsisdiv>
<literal>APT::Clean-Installed</literal> will prevent installed packages from being
erased if it is set to off.</para></listitem>
</varlistentry>
+
+ <varlistentry><term>autoremove</term>
+ <listitem><para><literal>autoremove</literal> is used to remove packages that were automatically
+ installed to satisfy dependencies for some package and that are no more needed.</para></listitem>
+ </varlistentry>
</variablelist>
</refsect1>
Configuration Item: <literal>APT::Get::Remove</literal>.</para></listitem>
</varlistentry>
+ <varlistentry><term><option>--auto-remove</option></term>
+ <listitem><para>If the command is either <literal>install</literal> or <literal>remove</literal>,
+ then this option acts like running <literal>autoremove</literal> command, removing the unused
+ dependency packages. Configuration Item: <literal>APT::Get::AutomaticRemove</literal>.
+ </para></listitem>
+ </varlistentry>
+
<varlistentry><term><option>--only-source</option></term>
<listitem><para>Only has meaning for the
<literal>source</literal> and <literal>build-dep</literal>
Item: <literal>APT::Get::Only-Source</literal>.</para></listitem>
</varlistentry>
- <varlistentry><term><option>--diff-only</option></term><term><option>--tar-only</option></term>
- <listitem><para>Download only the diff or tar file of a source archive.
- Configuration Item: <literal>APT::Get::Diff-Only</literal> and
+ <varlistentry><term><option>--diff-only</option></term><term><option>--dsc-only</option></term><term><option>--tar-only</option></term>
+ <listitem><para>Download only the diff, dsc, or tar file of a source archive.
+ Configuration Item: <literal>APT::Get::Diff-Only</literal>, <literal>APT::Get::Dsc-Only</literal>, and
<literal>APT::Get::Tar-Only</literal>.</para></listitem>
</varlistentry>
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2007-06-06 23:30+0200\n"
-"POT-Creation-Date: 2007-06-08 23:06+0200\n"
++"POT-Creation-Date: 2007-06-08 23:11+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: cmdline/apt-cache.cc:135
+#: cmdline/apt-cache.cc:143
#, c-format
msgid "Package %s version %s has an unmet dep:\n"
msgstr ""
-#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615
-#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357
-#: cmdline/apt-cache.cc:1508
+#: cmdline/apt-cache.cc: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 ""
-#: cmdline/apt-cache.cc:232
+#: cmdline/apt-cache.cc:247
msgid "Total package names : "
msgstr ""
-#: cmdline/apt-cache.cc:272
+#: cmdline/apt-cache.cc:287
msgid " Normal packages: "
msgstr ""
-#: cmdline/apt-cache.cc:273
+#: cmdline/apt-cache.cc:288
msgid " Pure virtual packages: "
msgstr ""
-#: cmdline/apt-cache.cc:274
+#: cmdline/apt-cache.cc:289
msgid " Single virtual packages: "
msgstr ""
-#: cmdline/apt-cache.cc:275
+#: cmdline/apt-cache.cc:290
msgid " Mixed virtual packages: "
msgstr ""
-#: cmdline/apt-cache.cc:276
+#: cmdline/apt-cache.cc:291
msgid " Missing: "
msgstr ""
-#: cmdline/apt-cache.cc:278
+#: cmdline/apt-cache.cc:293
msgid "Total distinct versions: "
msgstr ""
-#: cmdline/apt-cache.cc:280
+#: cmdline/apt-cache.cc:295
+msgid "Total Distinct Descriptions: "
+msgstr ""
+
+#: cmdline/apt-cache.cc:297
msgid "Total dependencies: "
msgstr ""
-#: cmdline/apt-cache.cc:283
+#: cmdline/apt-cache.cc:300
msgid "Total ver/file relations: "
msgstr ""
-#: cmdline/apt-cache.cc:285
+#: cmdline/apt-cache.cc:302
+msgid "Total Desc/File relations: "
+msgstr ""
+
+#: cmdline/apt-cache.cc:304
msgid "Total Provides mappings: "
msgstr ""
-#: cmdline/apt-cache.cc:297
+#: cmdline/apt-cache.cc:316
msgid "Total globbed strings: "
msgstr ""
-#: cmdline/apt-cache.cc:311
+#: cmdline/apt-cache.cc:330
msgid "Total dependency version space: "
msgstr ""
-#: cmdline/apt-cache.cc:316
+#: cmdline/apt-cache.cc:335
msgid "Total slack space: "
msgstr ""
-#: cmdline/apt-cache.cc:324
+#: cmdline/apt-cache.cc:343
msgid "Total space accounted for: "
msgstr ""
-#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
+#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218
#, c-format
msgid "Package file %s is out of sync."
msgstr ""
-#: cmdline/apt-cache.cc:1231
+#: cmdline/apt-cache.cc:1293
msgid "You must give exactly one pattern"
msgstr ""
-#: cmdline/apt-cache.cc:1385
+#: cmdline/apt-cache.cc:1447
msgid "No packages found"
msgstr ""
-#: cmdline/apt-cache.cc:1462
+#: cmdline/apt-cache.cc:1524
msgid "Package files:"
msgstr ""
-#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
+#: 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:1470
+#: cmdline/apt-cache.cc:1532
#, c-format
msgid "%4i %s\n"
msgstr ""
#. Show any packages have explicit pins
-#: cmdline/apt-cache.cc:1482
+#: cmdline/apt-cache.cc:1544
msgid "Pinned packages:"
msgstr ""
-#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
+#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597
msgid "(not found)"
msgstr ""
#. Installed version
-#: cmdline/apt-cache.cc:1515
+#: cmdline/apt-cache.cc:1577
msgid " Installed: "
msgstr ""
-#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525
+#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587
msgid "(none)"
msgstr ""
#. Candidate Version
-#: cmdline/apt-cache.cc:1522
+#: cmdline/apt-cache.cc:1584
msgid " Candidate: "
msgstr ""
-#: cmdline/apt-cache.cc:1532
+#: cmdline/apt-cache.cc:1594
msgid " Package pin: "
msgstr ""
#. Show the priority tables
-#: cmdline/apt-cache.cc:1541
+#: cmdline/apt-cache.cc:1603
msgid " Version table:"
msgstr ""
-#: cmdline/apt-cache.cc:1556
+#: cmdline/apt-cache.cc:1618
#, c-format
msgid " %4i %s\n"
msgstr ""
-#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
+#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
- #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
- #: cmdline/apt-get.cc:2564 cmdline/apt-sortpkgs.cc:144
+ #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:551
-#: cmdline/apt-get.cc:2396 cmdline/apt-sortpkgs.cc:144
++#: cmdline/apt-get.cc:2573 cmdline/apt-sortpkgs.cc:144
#, c-format
msgid "%s %s for %s %s compiled on %s %s\n"
msgstr ""
-#: cmdline/apt-cache.cc:1659
+#: cmdline/apt-cache.cc:1721
msgid ""
"Usage: apt-cache [options] command\n"
" apt-cache [options] add file1 [file2 ...]\n"
" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
msgstr ""
-#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710
+#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:819
#, c-format
msgid "Unable to write to %s"
msgstr ""
msgid "Cannot get debconf version. Is debconf installed?"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341
+ #: ftparchive/apt-ftparchive.cc:168 ftparchive/apt-ftparchive.cc:342
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
+ #: ftparchive/apt-ftparchive.cc:170 ftparchive/apt-ftparchive.cc:184
+ #: ftparchive/apt-ftparchive.cc:207 ftparchive/apt-ftparchive.cc:257
+ #: ftparchive/apt-ftparchive.cc:271 ftparchive/apt-ftparchive.cc:293
#, c-format
msgid "Error processing directory %s"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:254
+ #: ftparchive/apt-ftparchive.cc:255
msgid "Source extension list is too long"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:371
+ #: ftparchive/apt-ftparchive.cc:372
msgid "Error writing header to contents file"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:401
+ #: ftparchive/apt-ftparchive.cc:402
#, c-format
msgid "Error processing contents %s"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:556
+ #: ftparchive/apt-ftparchive.cc:557
msgid ""
"Usage: apt-ftparchive [options] command\n"
"Commands: packages binarypath [overridefile [pathprefix]]\n"
" -o=? Set an arbitrary configuration option"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:762
+ #: ftparchive/apt-ftparchive.cc:763
msgid "No selections matched"
msgstr ""
- #: ftparchive/apt-ftparchive.cc:835
+ #: ftparchive/apt-ftparchive.cc:836
#, c-format
msgid "Some files are missing in the package file group `%s'"
msgstr ""
msgid "Failed to rename %s to %s"
msgstr ""
-#: cmdline/apt-get.cc:120
+#: cmdline/apt-get.cc:121
msgid "Y"
msgstr ""
- #: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1655
-#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1510
++#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1659
#, c-format
msgid "Regex compilation error - %s"
msgstr ""
-#: cmdline/apt-get.cc:237
+#: cmdline/apt-get.cc:238
msgid "The following packages have unmet dependencies:"
msgstr ""
-#: cmdline/apt-get.cc:327
+#: cmdline/apt-get.cc:328
#, c-format
msgid "but %s is installed"
msgstr ""
-#: cmdline/apt-get.cc:329
+#: cmdline/apt-get.cc:330
#, c-format
msgid "but %s is to be installed"
msgstr ""
-#: cmdline/apt-get.cc:336
+#: cmdline/apt-get.cc:337
msgid "but it is not installable"
msgstr ""
-#: cmdline/apt-get.cc:338
+#: cmdline/apt-get.cc:339
msgid "but it is a virtual package"
msgstr ""
-#: cmdline/apt-get.cc:341
+#: cmdline/apt-get.cc:342
msgid "but it is not installed"
msgstr ""
-#: cmdline/apt-get.cc:341
+#: cmdline/apt-get.cc:342
msgid "but it is not going to be installed"
msgstr ""
-#: cmdline/apt-get.cc:346
+#: cmdline/apt-get.cc:347
msgid " or"
msgstr ""
-#: cmdline/apt-get.cc:375
+#: cmdline/apt-get.cc:376
msgid "The following NEW packages will be installed:"
msgstr ""
-#: cmdline/apt-get.cc:401
+#: cmdline/apt-get.cc:402
msgid "The following packages will be REMOVED:"
msgstr ""
-#: cmdline/apt-get.cc:423
+#: cmdline/apt-get.cc:424
msgid "The following packages have been kept back:"
msgstr ""
-#: cmdline/apt-get.cc:444
+#: cmdline/apt-get.cc:445
msgid "The following packages will be upgraded:"
msgstr ""
-#: cmdline/apt-get.cc:465
+#: cmdline/apt-get.cc:466
msgid "The following packages will be DOWNGRADED:"
msgstr ""
-#: cmdline/apt-get.cc:485
+#: cmdline/apt-get.cc:486
msgid "The following held packages will be changed:"
msgstr ""
-#: cmdline/apt-get.cc:538
+#: cmdline/apt-get.cc:539
#, c-format
msgid "%s (due to %s) "
msgstr ""
-#: cmdline/apt-get.cc:546
+#: 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:577
+#: cmdline/apt-get.cc:578
#, c-format
msgid "%lu upgraded, %lu newly installed, "
msgstr ""
-#: cmdline/apt-get.cc:581
+#: cmdline/apt-get.cc:582
#, c-format
msgid "%lu reinstalled, "
msgstr ""
-#: cmdline/apt-get.cc:583
+#: cmdline/apt-get.cc:584
#, c-format
msgid "%lu downgraded, "
msgstr ""
-#: cmdline/apt-get.cc:585
+#: cmdline/apt-get.cc:586
#, c-format
msgid "%lu to remove and %lu not upgraded.\n"
msgstr ""
-#: cmdline/apt-get.cc:589
+#: cmdline/apt-get.cc:590
#, c-format
msgid "%lu not fully installed or removed.\n"
msgstr ""
-#: cmdline/apt-get.cc:649
+#: cmdline/apt-get.cc:664
msgid "Correcting dependencies..."
msgstr ""
-#: cmdline/apt-get.cc:652
+#: cmdline/apt-get.cc:667
msgid " failed."
msgstr ""
-#: cmdline/apt-get.cc:655
+#: cmdline/apt-get.cc:670
msgid "Unable to correct dependencies"
msgstr ""
-#: cmdline/apt-get.cc:658
+#: cmdline/apt-get.cc:673
msgid "Unable to minimize the upgrade set"
msgstr ""
-#: cmdline/apt-get.cc:660
+#: cmdline/apt-get.cc:675
msgid " Done"
msgstr ""
-#: cmdline/apt-get.cc:664
+#: cmdline/apt-get.cc:679
msgid "You might want to run `apt-get -f install' to correct these."
msgstr ""
-#: cmdline/apt-get.cc:667
+#: cmdline/apt-get.cc:682
msgid "Unmet dependencies. Try using -f."
msgstr ""
-#: cmdline/apt-get.cc:689
+#: cmdline/apt-get.cc:704
msgid "WARNING: The following packages cannot be authenticated!"
msgstr ""
-#: cmdline/apt-get.cc:693
+#: cmdline/apt-get.cc:708
msgid "Authentication warning overridden.\n"
msgstr ""
-#: cmdline/apt-get.cc:700
+#: cmdline/apt-get.cc:715
msgid "Install these packages without verification [y/N]? "
msgstr ""
-#: cmdline/apt-get.cc:702
+#: cmdline/apt-get.cc:717
msgid "Some packages could not be authenticated"
msgstr ""
-#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858
+#: 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:755
+#: cmdline/apt-get.cc:770
msgid "Internal error, InstallPackages was called with broken packages!"
msgstr ""
-#: cmdline/apt-get.cc:764
+#: cmdline/apt-get.cc:779
msgid "Packages need to be removed but remove is disabled."
msgstr ""
-#: cmdline/apt-get.cc:775
+#: cmdline/apt-get.cc:790
msgid "Internal error, Ordering didn't finish"
msgstr ""
- #: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1995 cmdline/apt-get.cc:2028
-#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1822 cmdline/apt-get.cc:1855
++#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032
msgid "Unable to lock the download directory"
msgstr ""
- #: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2076 cmdline/apt-get.cc:2312
-#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1903 cmdline/apt-get.cc:2144
++#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2321
#: apt-pkg/cachefile.cc:67
msgid "The list of sources could not be read."
msgstr ""
-#: cmdline/apt-get.cc:816
+#: cmdline/apt-get.cc:831
msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
msgstr ""
-#: cmdline/apt-get.cc:821
+#: cmdline/apt-get.cc:836
#, c-format
msgid "Need to get %sB/%sB of archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:824
+#: cmdline/apt-get.cc:839
#, c-format
msgid "Need to get %sB of archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:829
+#: cmdline/apt-get.cc:844
#, c-format
msgid "After unpacking %sB of additional disk space will be used.\n"
msgstr ""
-#: cmdline/apt-get.cc:832
+#: 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:2166
-#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1998
++#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2175
#, c-format
msgid "Couldn't determine free space in %s"
msgstr ""
-#: cmdline/apt-get.cc:849
+#: cmdline/apt-get.cc:864
#, c-format
msgid "You don't have enough free space in %s."
msgstr ""
-#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884
+#: 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:866
+#: cmdline/apt-get.cc:881
msgid "Yes, do as I say!"
msgstr ""
-#: cmdline/apt-get.cc:868
+#: cmdline/apt-get.cc:883
#, c-format
msgid ""
"You are about to do something potentially harmful.\n"
" ?] "
msgstr ""
-#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893
+#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908
msgid "Abort."
msgstr ""
-#: cmdline/apt-get.cc:889
+#: 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:2209
-#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2041
++#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2218
#, c-format
msgid "Failed to fetch %s %s\n"
msgstr ""
-#: cmdline/apt-get.cc:979
+#: cmdline/apt-get.cc:994
msgid "Some files failed to download"
msgstr ""
- #: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2218
-#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2050
++#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2227
msgid "Download complete and in download only mode"
msgstr ""
-#: cmdline/apt-get.cc:986
+#: 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:990
+#: cmdline/apt-get.cc:1005
msgid "--fix-missing and media swapping is not currently supported"
msgstr ""
-#: cmdline/apt-get.cc:995
+#: cmdline/apt-get.cc:1010
msgid "Unable to correct missing packages."
msgstr ""
-#: cmdline/apt-get.cc:996
+#: cmdline/apt-get.cc:1011
msgid "Aborting install."
msgstr ""
-#: cmdline/apt-get.cc:1030
+#: cmdline/apt-get.cc:1045
#, c-format
msgid "Note, selecting %s instead of %s\n"
msgstr ""
-#: cmdline/apt-get.cc:1040
+#: 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:1058
+#: cmdline/apt-get.cc:1073
#, c-format
msgid "Package %s is not installed, so not removed\n"
msgstr ""
-#: cmdline/apt-get.cc:1069
+#: cmdline/apt-get.cc:1084
#, c-format
msgid "Package %s is a virtual package provided by:\n"
msgstr ""
-#: cmdline/apt-get.cc:1081
+#: cmdline/apt-get.cc:1096
msgid " [Installed]"
msgstr ""
-#: cmdline/apt-get.cc:1086
+#: cmdline/apt-get.cc:1101
msgid "You should explicitly select one to install."
msgstr ""
-#: cmdline/apt-get.cc:1091
+#: cmdline/apt-get.cc:1106
#, c-format
msgid ""
"Package %s is not available, but is referred to by another package.\n"
"is only available from another source\n"
msgstr ""
-#: cmdline/apt-get.cc:1110
+#: cmdline/apt-get.cc:1125
msgid "However the following packages replace it:"
msgstr ""
-#: cmdline/apt-get.cc:1113
+#: cmdline/apt-get.cc:1128
#, c-format
msgid "Package %s has no installation candidate"
msgstr ""
-#: cmdline/apt-get.cc:1133
+#: cmdline/apt-get.cc:1148
#, c-format
msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
msgstr ""
-#: cmdline/apt-get.cc:1141
+#: cmdline/apt-get.cc:1156
#, c-format
msgid "%s is already the newest version.\n"
msgstr ""
-#: cmdline/apt-get.cc:1168
+#: cmdline/apt-get.cc:1185
#, c-format
msgid "Release '%s' for '%s' was not found"
msgstr ""
-#: cmdline/apt-get.cc:1170
+#: cmdline/apt-get.cc:1187
#, c-format
msgid "Version '%s' for '%s' was not found"
msgstr ""
-#: cmdline/apt-get.cc:1176
+#: cmdline/apt-get.cc:1193
#, c-format
msgid "Selected version %s (%s) for %s\n"
msgstr ""
-#: cmdline/apt-get.cc:1313
+#: cmdline/apt-get.cc:1330
msgid "The update command takes no arguments"
msgstr ""
-#: cmdline/apt-get.cc:1326
+#: cmdline/apt-get.cc:1343
msgid "Unable to lock the list directory"
msgstr ""
-#: cmdline/apt-get.cc:1384
+#: 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:1403
+#: cmdline/apt-get.cc:1433
+msgid "We are not supposed to delete stuff, can't start AutoRemover"
+msgstr ""
+
+#: cmdline/apt-get.cc:1465
+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:1736
++#: cmdline/apt-get.cc:1475 cmdline/apt-get.cc:1740
+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:1497 cmdline/apt-get.cc:1533
+#: cmdline/apt-get.cc:1543
+#, c-format
+msgid "Couldn't find task %s"
+msgstr ""
+
- #: cmdline/apt-get.cc:1642 cmdline/apt-get.cc:1678
++#: cmdline/apt-get.cc:1646 cmdline/apt-get.cc:1682
#, c-format
msgid "Couldn't find package %s"
msgstr ""
- #: cmdline/apt-get.cc:1665
-#: cmdline/apt-get.cc:1520
++#: cmdline/apt-get.cc:1669
#, c-format
msgid "Note, selecting %s for regex '%s'\n"
msgstr ""
- #: cmdline/apt-get.cc:1695
-#: cmdline/apt-get.cc:1550
++#: cmdline/apt-get.cc:1699
+#, c-format
+msgid "%s set to manual installed.\n"
+msgstr ""
+
- #: cmdline/apt-get.cc:1708
++#: cmdline/apt-get.cc:1712
msgid "You might want to run `apt-get -f install' to correct these:"
msgstr ""
- #: cmdline/apt-get.cc:1711
-#: cmdline/apt-get.cc:1553
++#: cmdline/apt-get.cc:1715
msgid ""
"Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
"solution)."
msgstr ""
- #: cmdline/apt-get.cc:1723
-#: cmdline/apt-get.cc:1565
++#: cmdline/apt-get.cc:1727
msgid ""
"Some packages could not be installed. This may mean that you have\n"
"requested an impossible situation or if you are using the unstable\n"
"or been moved out of Incoming."
msgstr ""
- #: cmdline/apt-get.cc:1731
-#: cmdline/apt-get.cc:1573
++#: cmdline/apt-get.cc:1735
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:1739
-#: cmdline/apt-get.cc:1578
-msgid "The following information may help to resolve the situation:"
-msgstr ""
-
-#: cmdline/apt-get.cc:1581
++#: cmdline/apt-get.cc:1743
msgid "Broken packages"
msgstr ""
- #: cmdline/apt-get.cc:1770
-#: cmdline/apt-get.cc:1607
++#: cmdline/apt-get.cc:1774
msgid "The following extra packages will be installed:"
msgstr ""
- #: cmdline/apt-get.cc:1859
-#: cmdline/apt-get.cc:1696
++#: cmdline/apt-get.cc:1863
msgid "Suggested packages:"
msgstr ""
- #: cmdline/apt-get.cc:1860
-#: cmdline/apt-get.cc:1697
++#: cmdline/apt-get.cc:1864
msgid "Recommended packages:"
msgstr ""
- #: cmdline/apt-get.cc:1888
-#: cmdline/apt-get.cc:1717
++#: cmdline/apt-get.cc:1892
msgid "Calculating upgrade... "
msgstr ""
- #: cmdline/apt-get.cc:1891 methods/ftp.cc:702 methods/connect.cc:101
-#: cmdline/apt-get.cc:1720 methods/ftp.cc:702 methods/connect.cc:101
++#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:101
msgid "Failed"
msgstr ""
- #: cmdline/apt-get.cc:1896
-#: cmdline/apt-get.cc:1725
++#: cmdline/apt-get.cc:1900
msgid "Done"
msgstr ""
- #: cmdline/apt-get.cc:1963 cmdline/apt-get.cc:1971
-#: cmdline/apt-get.cc:1790 cmdline/apt-get.cc:1798
++#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975
msgid "Internal error, problem resolver broke stuff"
msgstr ""
- #: cmdline/apt-get.cc:2071
-#: cmdline/apt-get.cc:1898
++#: cmdline/apt-get.cc:2075
msgid "Must specify at least one package to fetch source for"
msgstr ""
- #: cmdline/apt-get.cc:2101 cmdline/apt-get.cc:2330
-#: cmdline/apt-get.cc:1928 cmdline/apt-get.cc:2162
++#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2339
#, c-format
msgid "Unable to find a source package for %s"
msgstr ""
- #: cmdline/apt-get.cc:2145
-#: cmdline/apt-get.cc:1977
++#: cmdline/apt-get.cc:2154
#, c-format
msgid "Skipping already downloaded file '%s'\n"
msgstr ""
- #: cmdline/apt-get.cc:2169
-#: cmdline/apt-get.cc:2001
++#: cmdline/apt-get.cc:2178
#, c-format
msgid "You don't have enough free space in %s"
msgstr ""
- #: cmdline/apt-get.cc:2174
-#: cmdline/apt-get.cc:2006
++#: cmdline/apt-get.cc:2183
#, c-format
msgid "Need to get %sB/%sB of source archives.\n"
msgstr ""
- #: cmdline/apt-get.cc:2177
-#: cmdline/apt-get.cc:2009
++#: cmdline/apt-get.cc:2186
#, c-format
msgid "Need to get %sB of source archives.\n"
msgstr ""
- #: cmdline/apt-get.cc:2183
-#: cmdline/apt-get.cc:2015
++#: cmdline/apt-get.cc:2192
#, c-format
msgid "Fetch source %s\n"
msgstr ""
- #: cmdline/apt-get.cc:2214
-#: cmdline/apt-get.cc:2046
++#: cmdline/apt-get.cc:2223
msgid "Failed to fetch some archives."
msgstr ""
- #: cmdline/apt-get.cc:2242
-#: cmdline/apt-get.cc:2074
++#: cmdline/apt-get.cc:2251
#, c-format
msgid "Skipping unpack of already unpacked source in %s\n"
msgstr ""
- #: cmdline/apt-get.cc:2254
-#: cmdline/apt-get.cc:2086
++#: cmdline/apt-get.cc:2263
#, c-format
msgid "Unpack command '%s' failed.\n"
msgstr ""
- #: cmdline/apt-get.cc:2255
-#: cmdline/apt-get.cc:2087
++#: cmdline/apt-get.cc:2264
#, c-format
msgid "Check if the 'dpkg-dev' package is installed.\n"
msgstr ""
- #: cmdline/apt-get.cc:2272
-#: cmdline/apt-get.cc:2104
++#: cmdline/apt-get.cc:2281
#, c-format
msgid "Build command '%s' failed.\n"
msgstr ""
- #: cmdline/apt-get.cc:2291
-#: cmdline/apt-get.cc:2123
++#: cmdline/apt-get.cc:2300
msgid "Child process failed"
msgstr ""
- #: cmdline/apt-get.cc:2307
-#: cmdline/apt-get.cc:2139
++#: cmdline/apt-get.cc:2316
msgid "Must specify at least one package to check builddeps for"
msgstr ""
- #: cmdline/apt-get.cc:2335
-#: cmdline/apt-get.cc:2167
++#: cmdline/apt-get.cc:2344
#, c-format
msgid "Unable to get build-dependency information for %s"
msgstr ""
- #: cmdline/apt-get.cc:2355
-#: cmdline/apt-get.cc:2187
++#: cmdline/apt-get.cc:2364
#, c-format
msgid "%s has no build depends.\n"
msgstr ""
- #: cmdline/apt-get.cc:2407
-#: cmdline/apt-get.cc:2239
++#: cmdline/apt-get.cc:2416
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because the package %s cannot be "
"found"
msgstr ""
- #: cmdline/apt-get.cc:2459
-#: cmdline/apt-get.cc:2291
++#: cmdline/apt-get.cc:2468
#, 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:2494
-#: cmdline/apt-get.cc:2326
++#: cmdline/apt-get.cc:2503
#, c-format
msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
msgstr ""
- #: cmdline/apt-get.cc:2519
-#: cmdline/apt-get.cc:2351
++#: cmdline/apt-get.cc:2528
#, c-format
msgid "Failed to satisfy %s dependency for %s: %s"
msgstr ""
- #: cmdline/apt-get.cc:2533
-#: cmdline/apt-get.cc:2365
++#: cmdline/apt-get.cc:2542
#, c-format
msgid "Build-dependencies for %s could not be satisfied."
msgstr ""
- #: cmdline/apt-get.cc:2537
-#: cmdline/apt-get.cc:2369
++#: cmdline/apt-get.cc:2546
msgid "Failed to process build dependencies"
msgstr ""
- #: cmdline/apt-get.cc:2569
-#: cmdline/apt-get.cc:2401
++#: cmdline/apt-get.cc:2578
msgid "Supported modules:"
msgstr ""
- #: cmdline/apt-get.cc:2610
-#: cmdline/apt-get.cc:2442
++#: cmdline/apt-get.cc:2619
msgid ""
"Usage: apt-get [options] command\n"
" apt-get [options] install|remove pkg1 [pkg2 ...]\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"
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
+#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:752
+#: apt-pkg/pkgcachegen.cc:821 apt-pkg/pkgcachegen.cc:826
+#: apt-pkg/pkgcachegen.cc:949
msgid "Reading package lists"
msgstr ""
msgstr ""
#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141
-#: methods/gzip.cc:150
+#: 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 ""
msgid "Server closed the connection"
msgstr ""
- #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190
+ #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:472 methods/rsh.cc:190
msgid "Read error"
msgstr ""
msgid "Protocol corruption"
msgstr ""
- #: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232
+ #: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:511 methods/rsh.cc:232
msgid "Write error"
msgstr ""
msgid "Unable to accept connection"
msgstr ""
-#: methods/ftp.cc:864 methods/http.cc:959 methods/rsh.cc:303
+#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303
msgid "Problem hashing file"
msgstr ""
msgid "Read error from %s process"
msgstr ""
-#: methods/http.cc:377
+#: methods/http.cc:376
msgid "Waiting for headers"
msgstr ""
-#: methods/http.cc:523
+#: methods/http.cc:522
#, c-format
msgid "Got a single header line over %u chars"
msgstr ""
-#: methods/http.cc:531
+#: methods/http.cc:530
msgid "Bad header line"
msgstr ""
-#: methods/http.cc:550 methods/http.cc:557
+#: methods/http.cc:549 methods/http.cc:556
msgid "The HTTP server sent an invalid reply header"
msgstr ""
-#: methods/http.cc:586
+#: methods/http.cc:585
msgid "The HTTP server sent an invalid Content-Length header"
msgstr ""
-#: methods/http.cc:601
+#: methods/http.cc:600
msgid "The HTTP server sent an invalid Content-Range header"
msgstr ""
-#: methods/http.cc:603
+#: methods/http.cc:602
msgid "This HTTP server has broken range support"
msgstr ""
-#: methods/http.cc:627
+#: methods/http.cc:626
msgid "Unknown date format"
msgstr ""
-#: methods/http.cc:774
+#: methods/http.cc:773
msgid "Select failed"
msgstr ""
-#: methods/http.cc:779
+#: methods/http.cc:778
msgid "Connection timed out"
msgstr ""
-#: methods/http.cc:802
+#: methods/http.cc:801
msgid "Error writing to output file"
msgstr ""
-#: methods/http.cc:833
+#: methods/http.cc:832
msgid "Error writing to file"
msgstr ""
-#: methods/http.cc:861
+#: methods/http.cc:860
msgid "Error writing to the file"
msgstr ""
-#: methods/http.cc:875
+#: methods/http.cc:874
msgid "Error reading from server. Remote end closed connection"
msgstr ""
-#: methods/http.cc:877
+#: methods/http.cc:876
msgid "Error reading from server"
msgstr ""
-#: methods/http.cc:1108
+#: methods/http.cc:1107
msgid "Bad header data"
msgstr ""
-#: methods/http.cc:1125
+#: methods/http.cc:1124
msgid "Connection failed"
msgstr ""
-#: methods/http.cc:1216
+#: methods/http.cc:1215
msgid "Internal error"
msgstr ""
msgid "Couldn't make mmap of %lu bytes"
msgstr ""
- #: apt-pkg/contrib/strutl.cc:981
-#: apt-pkg/contrib/strutl.cc:939
++#: apt-pkg/contrib/strutl.cc:982
#, c-format
msgid "Selection %s not found"
msgstr ""
msgid "Failed to stat the cdrom"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:82
+ #: apt-pkg/contrib/fileutl.cc:83
#, c-format
msgid "Not using locking for read only lock file %s"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:87
+ #: apt-pkg/contrib/fileutl.cc:88
#, c-format
msgid "Could not open lock file %s"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:105
+ #: apt-pkg/contrib/fileutl.cc:106
#, c-format
msgid "Not using locking for nfs mounted lock file %s"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:109
+ #: apt-pkg/contrib/fileutl.cc:110
#, c-format
msgid "Could not get lock %s"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:377
+ #: apt-pkg/contrib/fileutl.cc:378
#, c-format
msgid "Waited for %s but it wasn't there"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:387
+ #: apt-pkg/contrib/fileutl.cc:388
#, c-format
msgid "Sub-process %s received a segmentation fault."
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:390
+ #: apt-pkg/contrib/fileutl.cc:391
#, c-format
msgid "Sub-process %s returned an error code (%u)"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:392
+ #: apt-pkg/contrib/fileutl.cc:393
#, c-format
msgid "Sub-process %s exited unexpectedly"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:436
+ #: apt-pkg/contrib/fileutl.cc:437
#, c-format
msgid "Could not open file %s"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:492
+ #: apt-pkg/contrib/fileutl.cc:493
#, c-format
msgid "read, still have %lu to read but none left"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:522
+ #: apt-pkg/contrib/fileutl.cc:523
#, c-format
msgid "write, still have %lu to write but couldn't"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:597
+ #: apt-pkg/contrib/fileutl.cc:598
msgid "Problem closing the file"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:603
+ #: apt-pkg/contrib/fileutl.cc:604
msgid "Problem unlinking the file"
msgstr ""
- #: apt-pkg/contrib/fileutl.cc:614
+ #: apt-pkg/contrib/fileutl.cc:615
msgid "Problem syncing the file"
msgstr ""
-#: apt-pkg/pkgcache.cc:126
+#: apt-pkg/pkgcache.cc:132
msgid "Empty package cache"
msgstr ""
-#: apt-pkg/pkgcache.cc:132
+#: apt-pkg/pkgcache.cc:138
msgid "The package cache file is corrupted"
msgstr ""
-#: apt-pkg/pkgcache.cc:137
+#: apt-pkg/pkgcache.cc:143
msgid "The package cache file is an incompatible version"
msgstr ""
-#: apt-pkg/pkgcache.cc:142
+#: apt-pkg/pkgcache.cc:148
#, c-format
msgid "This APT does not support the versioning system '%s'"
msgstr ""
-#: apt-pkg/pkgcache.cc:147
+#: apt-pkg/pkgcache.cc:153
msgid "The package cache was built for a different architecture"
msgstr ""
-#: apt-pkg/pkgcache.cc:218
+#: apt-pkg/pkgcache.cc:224
msgid "Depends"
msgstr ""
-#: apt-pkg/pkgcache.cc:218
+#: apt-pkg/pkgcache.cc:224
msgid "PreDepends"
msgstr ""
-#: apt-pkg/pkgcache.cc:218
+#: apt-pkg/pkgcache.cc:224
msgid "Suggests"
msgstr ""
-#: apt-pkg/pkgcache.cc:219
+#: apt-pkg/pkgcache.cc:225
msgid "Recommends"
msgstr ""
-#: apt-pkg/pkgcache.cc:219
+#: apt-pkg/pkgcache.cc:225
msgid "Conflicts"
msgstr ""
-#: apt-pkg/pkgcache.cc:219
+#: apt-pkg/pkgcache.cc:225
msgid "Replaces"
msgstr ""
-#: apt-pkg/pkgcache.cc:220
+#: apt-pkg/pkgcache.cc:226
msgid "Obsoletes"
msgstr ""
-#: apt-pkg/pkgcache.cc:231
+#: apt-pkg/pkgcache.cc:226
+msgid "Breaks"
+msgstr ""
+
+#: apt-pkg/pkgcache.cc:237
msgid "important"
msgstr ""
-#: apt-pkg/pkgcache.cc:231
+#: apt-pkg/pkgcache.cc:237
msgid "required"
msgstr ""
-#: apt-pkg/pkgcache.cc:231
+#: apt-pkg/pkgcache.cc:237
msgid "standard"
msgstr ""
-#: apt-pkg/pkgcache.cc:232
+#: apt-pkg/pkgcache.cc:238
msgid "optional"
msgstr ""
-#: apt-pkg/pkgcache.cc:232
+#: apt-pkg/pkgcache.cc:238
msgid "extra"
msgstr ""
-#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90
+#: apt-pkg/depcache.cc:98 apt-pkg/depcache.cc:127
msgid "Building dependency tree"
msgstr ""
-#: apt-pkg/depcache.cc:62
+#: apt-pkg/depcache.cc:99
msgid "Candidate versions"
msgstr ""
-#: apt-pkg/depcache.cc:91
+#: apt-pkg/depcache.cc:128
msgid "Dependency generation"
msgstr ""
+#: apt-pkg/depcache.cc:149 apt-pkg/depcache.cc:168 apt-pkg/depcache.cc:172
+msgid "Reading state information"
+msgstr ""
+
+#: apt-pkg/depcache.cc:196
+#, c-format
+msgid "Failed to open StateFile %s"
+msgstr ""
+
+#: apt-pkg/depcache.cc:202
+#, c-format
+msgid "Failed to write temporary StateFile %s"
+msgstr ""
+
#: apt-pkg/tagfile.cc:106
#, c-format
msgid "Unable to parse package file %s (1)"
msgid "Opening %s"
msgstr ""
- #: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450
-#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:427
++#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:451
#, c-format
msgid "Line %u too long in source list %s."
msgstr ""
msgid "Malformed line %u in source list %s (vendor id)"
msgstr ""
-#: apt-pkg/packagemanager.cc:402
+#: apt-pkg/packagemanager.cc:403
#, c-format
msgid ""
"This installation run will require temporarily removing the essential "
msgid "Index file type '%s' is not supported"
msgstr ""
- #: apt-pkg/algorithms.cc:248
-#: apt-pkg/algorithms.cc:243
++#: apt-pkg/algorithms.cc:254
#, c-format
msgid ""
"The package %s needs to be reinstalled, but I can't find an archive for it."
msgstr ""
- #: apt-pkg/algorithms.cc:1104
-#: apt-pkg/algorithms.cc:1068
++#: apt-pkg/algorithms.cc:1110
msgid ""
"Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
"held packages."
msgstr ""
- #: apt-pkg/algorithms.cc:1106
-#: apt-pkg/algorithms.cc:1070
++#: apt-pkg/algorithms.cc:1112
msgid "Unable to correct problems, you have held broken packages."
msgstr ""
msgid "Method %s did not start correctly"
msgstr ""
-#: apt-pkg/acquire-worker.cc:377
+#: apt-pkg/acquire-worker.cc:384
#, c-format
msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
msgstr ""
- #: apt-pkg/init.cc:125
-#: apt-pkg/init.cc:121
++#: apt-pkg/init.cc:126
#, c-format
msgid "Packaging system '%s' is not supported"
msgstr ""
- #: apt-pkg/init.cc:141
-#: apt-pkg/init.cc:137
++#: apt-pkg/init.cc:142
msgid "Unable to determine a suitable packaging system type"
msgstr ""
msgid "No priority (or zero) specified for pin"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:74
+#: apt-pkg/pkgcachegen.cc:76
msgid "Cache has an incompatible versioning system"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:117
+#: apt-pkg/pkgcachegen.cc:119
#, c-format
msgid "Error occurred while processing %s (NewPackage)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:129
+#: apt-pkg/pkgcachegen.cc:134
#, c-format
msgid "Error occurred while processing %s (UsePackage1)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:150
+#: apt-pkg/pkgcachegen.cc:157
+#, c-format
+msgid "Error occured while processing %s (NewFileDesc1)"
+msgstr ""
+
+#: apt-pkg/pkgcachegen.cc:182
#, c-format
msgid "Error occurred while processing %s (UsePackage2)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:154
+#: apt-pkg/pkgcachegen.cc:186
#, c-format
msgid "Error occurred while processing %s (NewFileVer1)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:184
+#: apt-pkg/pkgcachegen.cc:217
#, c-format
msgid "Error occurred while processing %s (NewVersion1)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:188
+#: apt-pkg/pkgcachegen.cc:221
#, c-format
msgid "Error occurred while processing %s (UsePackage3)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:192
+#: apt-pkg/pkgcachegen.cc:225
#, c-format
msgid "Error occurred while processing %s (NewVersion2)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:207
+#: apt-pkg/pkgcachegen.cc:249
+#, c-format
+msgid "Error occured while processing %s (NewFileDesc2)"
+msgstr ""
+
+#: apt-pkg/pkgcachegen.cc:255
msgid "Wow, you exceeded the number of package names this APT is capable of."
msgstr ""
-#: apt-pkg/pkgcachegen.cc:210
+#: apt-pkg/pkgcachegen.cc:258
msgid "Wow, you exceeded the number of versions this APT is capable of."
msgstr ""
-#: apt-pkg/pkgcachegen.cc:213
+#: apt-pkg/pkgcachegen.cc:261
+msgid "Wow, you exceeded the number of descriptions this APT is capable of."
+msgstr ""
+
+#: apt-pkg/pkgcachegen.cc:264
msgid "Wow, you exceeded the number of dependencies this APT is capable of."
msgstr ""
-#: apt-pkg/pkgcachegen.cc:241
+#: apt-pkg/pkgcachegen.cc:292
#, c-format
msgid "Error occurred while processing %s (FindPkg)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:254
+#: apt-pkg/pkgcachegen.cc:305
#, c-format
msgid "Error occurred while processing %s (CollectFileProvides)"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:260
+#: apt-pkg/pkgcachegen.cc:311
#, c-format
msgid "Package %s %s was not found while processing file dependencies"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:574
+#: apt-pkg/pkgcachegen.cc:682
#, c-format
msgid "Couldn't stat source package list %s"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:658
+#: apt-pkg/pkgcachegen.cc:767
msgid "Collecting File Provides"
msgstr ""
-#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
+#: apt-pkg/pkgcachegen.cc:894 apt-pkg/pkgcachegen.cc:901
msgid "IO Error saving source cache"
msgstr ""
-#: apt-pkg/acquire-item.cc:126
+#: apt-pkg/acquire-item.cc:127
#, c-format
msgid "rename failed, %s (%s -> %s)."
msgstr ""
- #: apt-pkg/acquire-item.cc:405 apt-pkg/acquire-item.cc:662
- #: apt-pkg/acquire-item.cc:1412
-#: apt-pkg/acquire-item.cc:243 apt-pkg/acquire-item.cc:952
++#: 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:1107
-#: apt-pkg/acquire-item.cc:647
++#: 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:1220
-#: apt-pkg/acquire-item.cc:760
++#: 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:1279
-#: apt-pkg/acquire-item.cc:819
++#: 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:1315
-#: apt-pkg/acquire-item.cc:855
++#: 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:1402
-#: apt-pkg/acquire-item.cc:942
++#: apt-pkg/acquire-item.cc:1401
msgid "Size mismatch"
msgstr ""
msgid "Vendor block %s contains no fingerprint"
msgstr ""
- #: apt-pkg/cdrom.cc:531
-#: apt-pkg/cdrom.cc:508
++#: apt-pkg/cdrom.cc:532
#, c-format
msgid ""
"Using CD-ROM mount point %s\n"
"Mounting CD-ROM\n"
msgstr ""
- #: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622
-#: apt-pkg/cdrom.cc:517 apt-pkg/cdrom.cc:599
++#: apt-pkg/cdrom.cc:541 apt-pkg/cdrom.cc:623
msgid "Identifying.. "
msgstr ""
- #: apt-pkg/cdrom.cc:565
-#: apt-pkg/cdrom.cc:542
++#: apt-pkg/cdrom.cc:566
#, c-format
msgid "Stored label: %s \n"
msgstr ""
- #: apt-pkg/cdrom.cc:585
-#: apt-pkg/cdrom.cc:562
++#: apt-pkg/cdrom.cc:586
#, c-format
msgid "Using CD-ROM mount point %s\n"
msgstr ""
- #: apt-pkg/cdrom.cc:603
-#: apt-pkg/cdrom.cc:580
++#: apt-pkg/cdrom.cc:604
msgid "Unmounting CD-ROM\n"
msgstr ""
- #: apt-pkg/cdrom.cc:607
-#: apt-pkg/cdrom.cc:584
++#: apt-pkg/cdrom.cc:608
msgid "Waiting for disc...\n"
msgstr ""
#. Mount the new CDROM
- #: apt-pkg/cdrom.cc:615
-#: apt-pkg/cdrom.cc:592
++#: apt-pkg/cdrom.cc:616
msgid "Mounting CD-ROM...\n"
msgstr ""
- #: apt-pkg/cdrom.cc:633
-#: apt-pkg/cdrom.cc:610
++#: apt-pkg/cdrom.cc:634
msgid "Scanning disc for index files..\n"
msgstr ""
- #: apt-pkg/cdrom.cc:673
-#: apt-pkg/cdrom.cc:648
++#: apt-pkg/cdrom.cc:674
#, c-format
-msgid "Found %i package indexes, %i source indexes and %i signatures\n"
+msgid ""
+"Found %i package indexes, %i source indexes, %i translation indexes and %i "
+"signatures\n"
msgstr ""
- #: apt-pkg/cdrom.cc:710
-#: apt-pkg/cdrom.cc:684
++#: apt-pkg/cdrom.cc:711
#, c-format
msgid "Found label '%s'\n"
msgstr ""
- #: apt-pkg/cdrom.cc:739
-#: apt-pkg/cdrom.cc:713
++#: apt-pkg/cdrom.cc:740
msgid "That is not a valid name, try again.\n"
msgstr ""
- #: apt-pkg/cdrom.cc:755
-#: apt-pkg/cdrom.cc:729
++#: apt-pkg/cdrom.cc:756
#, c-format
msgid ""
"This disc is called: \n"
"'%s'\n"
msgstr ""
- #: apt-pkg/cdrom.cc:759
-#: apt-pkg/cdrom.cc:733
++#: apt-pkg/cdrom.cc:760
msgid "Copying package lists..."
msgstr ""
- #: apt-pkg/cdrom.cc:785
-#: apt-pkg/cdrom.cc:757
++#: apt-pkg/cdrom.cc:786
msgid "Writing new source list\n"
msgstr ""
- #: apt-pkg/cdrom.cc:794
-#: apt-pkg/cdrom.cc:766
++#: apt-pkg/cdrom.cc:795
msgid "Source list entries for this disc are:\n"
msgstr ""
- #: apt-pkg/cdrom.cc:836
-#: apt-pkg/cdrom.cc:808
++#: apt-pkg/cdrom.cc:837
msgid "Unmounting CD-ROM...\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:261
+#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830
#, c-format
msgid "Wrote %i records.\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:263
+#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832
#, c-format
msgid "Wrote %i records with %i missing files.\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:266
+#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835
#, c-format
msgid "Wrote %i records with %i mismatched files\n"
msgstr ""
-#: apt-pkg/indexcopy.cc:269
+#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838
#, c-format
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr ""
msgid "Completely removed %s"
msgstr ""
+#: methods/rred.cc:219
+msgid "Could not patch file"
+msgstr ""
+
#: methods/rsh.cc:330
msgid "Connection closed prematurely"
msgstr ""