summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/acquire-method.cc4
-rw-r--r--apt-pkg/acquire-method.h4
-rw-r--r--apt-pkg/pkgcache.cc5
-rw-r--r--cmdline/apt-cache.cc23
-rw-r--r--methods/cdrom.cc9
5 files changed, 32 insertions, 13 deletions
diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc
index 1cebf9a71..fc060d83e 100644
--- a/apt-pkg/acquire-method.cc
+++ b/apt-pkg/acquire-method.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire-method.cc,v 1.11 1998/12/04 21:16:46 jgg Exp $
+// $Id: acquire-method.cc,v 1.12 1998/12/04 22:56:50 jgg Exp $
/* ######################################################################
Acquire Method
@@ -189,7 +189,7 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
// ---------------------------------------------------------------------
/* This sends a 403 Media Failure message to the APT and waits for it
to be ackd */
-void pkgAcqMethod::MediaFail(string Required,string Drive)
+bool pkgAcqMethod::MediaFail(string Required,string Drive)
{
char S[1024];
snprintf(S,sizeof(S),"403 Media Failure\nMedia: %s\nDrive: %s\n\n",
diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h
index 08c88265c..69ed28585 100644
--- a/apt-pkg/acquire-method.h
+++ b/apt-pkg/acquire-method.h
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire-method.h,v 1.5 1998/12/03 07:29:17 jgg Exp $
+// $Id: acquire-method.h,v 1.6 1998/12/04 22:56:51 jgg Exp $
/* ######################################################################
Acquire Method - Method helper class + functions
@@ -58,7 +58,7 @@ class pkgAcqMethod
void Fail(string Why, bool Transient = false);
void URIStart(FetchResult &Res);
void URIDone(FetchResult &Res,FetchResult *Alt = 0);
- void MediaFail(string Required,string Drive);
+ bool MediaFail(string Required,string Drive);
public:
diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc
index 06cad4b16..8b0e85ea3 100644
--- a/apt-pkg/pkgcache.cc
+++ b/apt-pkg/pkgcache.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: pkgcache.cc,v 1.18 1998/11/27 00:07:24 jgg Exp $
+// $Id: pkgcache.cc,v 1.19 1998/12/04 22:56:52 jgg Exp $
/* ######################################################################
Package Cache - Accessor code for the cache
@@ -379,9 +379,10 @@ void pkgCache::DepIterator::GlobOr(DepIterator &Start,DepIterator &End)
// Compute a single dependency element (glob or)
Start = *this;
End = *this;
- for (bool LastOR = true; end() == false && LastOR == true; (*this)++)
+ for (bool LastOR = true; end() == false && LastOR == true;)
{
LastOR = (Dep->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or;
+ (*this)++;
if (LastOR == true)
End = (*this);
}
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc
index 3bdeb373c..2e1d43ded 100644
--- a/cmdline/apt-cache.cc
+++ b/cmdline/apt-cache.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-cache.cc,v 1.13 1998/11/27 01:52:53 jgg Exp $
+// $Id: apt-cache.cc,v 1.14 1998/12/04 22:56:53 jgg Exp $
/* ######################################################################
apt-cache - Manages the cache files
@@ -32,25 +32,36 @@
/* */
bool UnMet(pkgCache &Cache)
{
+ bool Important = _config->FindB("Important",false);
+
for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++)
{
for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; V++)
{
bool Header = false;
- for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; D++)
+ for (pkgCache::DepIterator D = V.DependsList(); D.end() == false;)
{
// Collect or groups
pkgCache::DepIterator Start;
pkgCache::DepIterator End;
D.GlobOr(Start,End);
- // Skip everything but depends
+/* cout << "s: Check " << Start.TargetPkg().Name() << ',' <<
+ End.TargetPkg().Name() << endl;*/
+
+ // Skip conflicts and replaces
if (End->Type != pkgCache::Dep::PreDepends &&
End->Type != pkgCache::Dep::Depends &&
End->Type != pkgCache::Dep::Suggests &&
End->Type != pkgCache::Dep::Recommends)
continue;
+ // Important deps only
+ if (Important == true)
+ if (End->Type != pkgCache::Dep::PreDepends &&
+ End->Type != pkgCache::Dep::Depends)
+ continue;
+
// Verify the or group
bool OK = false;
pkgCache::DepIterator RealStart = Start;
@@ -330,7 +341,7 @@ bool DoAdd(CommandLine &CmdL)
return _error->Error("You must give at least one file name");
// Open the cache
- FileFd CacheF(_config->FindFile("Dir::Cache::srcpkgcache"),FileFd::WriteAny);
+ FileFd CacheF(_config->FindFile("Dir::Cache::pkgcache"),FileFd::WriteAny);
if (_error->PendingError() == true)
return false;
@@ -347,7 +358,8 @@ bool DoAdd(CommandLine &CmdL)
for (const char **I = CmdL.FileList + 1; *I != 0; I++)
{
Progress.OverallProgress(I - CmdL.FileList,Length,1,"Generating cache");
-
+ Progress.SubProgress(Length);
+
// Do the merge
FileFd TagF(*I,FileFd::ReadOnly);
debListParser Parser(TagF);
@@ -433,6 +445,7 @@ int main(int argc,const char *argv[])
{'p',"pkg-cache","Dir::Cache::pkgcache",CommandLine::HasArg},
{'s',"src-cache","Dir::Cache::srcpkgcache",CommandLine::HasArg},
{'q',"quiet","quiet",CommandLine::IntLevel},
+ {'i',"important","Important",0},
{'c',"config-file",0,CommandLine::ConfigFile},
{'o',"option",0,CommandLine::ArbItem},
{0,0,0,0}};
diff --git a/methods/cdrom.cc b/methods/cdrom.cc
index 0d1e8f031..933d88fc4 100644
--- a/methods/cdrom.cc
+++ b/methods/cdrom.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cdrom.cc,v 1.1 1998/12/03 07:29:21 jgg Exp $
+// $Id: cdrom.cc,v 1.2 1998/12/04 22:56:55 jgg Exp $
/* ######################################################################
CDROM URI method for APT
@@ -115,7 +115,12 @@ bool CDROMMethod::Fetch(FetchItem *Itm)
break;
UnmountCdrom(CDROM);
- MediaFail(Get.Host,CDROM);
+ if (MediaFail(Get.Host,CDROM) == false)
+ {
+ ID = "FAIL";
+ break;
+ }
+
MountCdrom(CDROM);
}