summaryrefslogtreecommitdiff
path: root/apt-pkg/orderlist.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2010-03-01 15:27:55 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2010-03-01 15:27:55 +0100
commit70ae240915df3ef89715d71d5fe7a6910cbf057e (patch)
tree727e35d94ad2dcafcdb7aa41375c299fbeeedba3 /apt-pkg/orderlist.cc
parent4a6d21639f807ae82d5a51a92c4bbbd0ca2a4494 (diff)
Remove and Unpack operations should not be ignored for pseudo packages -
they should trigger the remove/unpack of the "all" package. Otherwise - as this package has no dependencies - it will be triggered to late. The Configuration step doesn't need it as the "all" package is a dependency of the pseudo-package, so it will be configured before the pseudo packages are tried: So at this step the ignorance is okay. Also IsMissing() should report the status of the all package if an pseudo package is checked instead of always reporting no-miss.
Diffstat (limited to 'apt-pkg/orderlist.cc')
-rw-r--r--apt-pkg/orderlist.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc
index 2e7618b55..7c950292a 100644
--- a/apt-pkg/orderlist.cc
+++ b/apt-pkg/orderlist.cc
@@ -127,8 +127,9 @@ bool pkgOrderList::IsMissing(PkgIterator Pkg)
if (FileList[Pkg->ID].empty() == false)
return false;
+ // Missing Pseudo packages are missing if the real package is missing
if (pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == true)
- return false;
+ return IsMissing(Pkg.Group().FindPkg("all"));
return true;
}
@@ -203,7 +204,7 @@ bool pkgOrderList::OrderCritical()
{
PkgIterator P(Cache,*I);
if (IsNow(P) == true)
- clog << " " << P.Name() << ' ' << IsMissing(P) << ',' << IsFlag(P,After) << endl;
+ clog << " " << P.FullName() << ' ' << IsMissing(P) << ',' << IsFlag(P,After) << endl;
}
}
@@ -276,7 +277,7 @@ bool pkgOrderList::OrderUnpack(string *FileList)
{
PkgIterator P(Cache,*I);
if (IsNow(P) == true)
- clog << " " << P.Name() << ' ' << IsMissing(P) << ',' << IsFlag(P,After) << endl;
+ clog << " " << P.FullName() << ' ' << IsMissing(P) << ',' << IsFlag(P,After) << endl;
}
}
@@ -547,7 +548,7 @@ bool pkgOrderList::VisitNode(PkgIterator Pkg)
if (Debug == true)
{
for (int j = 0; j != Depth; j++) clog << ' ';
- clog << "Visit " << Pkg.Name() << endl;
+ clog << "Visit " << Pkg.FullName() << endl;
}
Depth++;
@@ -606,7 +607,7 @@ bool pkgOrderList::VisitNode(PkgIterator Pkg)
if (Debug == true)
{
for (int j = 0; j != Depth; j++) clog << ' ';
- clog << "Leave " << Pkg.Name() << ' ' << IsFlag(Pkg,Added) << ',' << IsFlag(Pkg,AddPending) << endl;
+ clog << "Leave " << Pkg.FullName() << ' ' << IsFlag(Pkg,Added) << ',' << IsFlag(Pkg,AddPending) << endl;
}
return true;