summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:50:43 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:50:43 +0000
commitb50b2c97b3a8cf71aaecdcea6321433d576852a9 (patch)
treef98b6cf06815cb8e22626b9090b1041061727429 /apt-pkg
parent9c14e3d619e713aefa623986b5bbae81a1d6cc94 (diff)
Package Manager
Author: jgg Date: 1998-07-09 05:41:12 GMT Package Manager
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/packagemanager.cc94
-rw-r--r--apt-pkg/packagemanager.h5
2 files changed, 13 insertions, 86 deletions
diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
index ebf67b5ee..e3504f8bf 100644
--- a/apt-pkg/packagemanager.cc
+++ b/apt-pkg/packagemanager.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: packagemanager.cc,v 1.1 1998/07/07 04:17:01 jgg Exp $
+// $Id: packagemanager.cc,v 1.2 1998/07/09 05:41:12 jgg Exp $
/* ######################################################################
Package Manager - Abstacts the package manager
@@ -19,11 +19,8 @@
#include <pkglib/packagemanager.h>
#include <pkglib/orderlist.h>
#include <pkglib/depcache.h>
-#include <pkglib/sourcelist.h>
-#include <pkglib/aquire.h>
-#include <pkglib/controlcache.h>
#include <pkglib/error.h>
-#include <options.h>
+#include <pkglib/version.h>
/*}}}*/
// PM::PackageManager - Constructor /*{{{*/
@@ -44,75 +41,6 @@ pkgPackageManager::~pkgPackageManager()
delete [] FileNames;
}
/*}}}*/
-// PM::GetArchives - Puts the install archives in the aquire list /*{{{*/
-// ---------------------------------------------------------------------
-/* The Source list is used to convert the packages to install into
- URNs which are then passed to Aquire to convert to FileNames. */
-bool pkgPackageManager::GetArchives(pkgSourceList &List,pkgAquire &Engine)
-{
- pkgControlCache CCache(Cache);
- if (_error->PendingError() == true)
- return false;
-
- Engine.OutputDir(PKG_DEB_CA_ARCHIVES);
- pkgCache::PkgIterator I = Cache.PkgBegin();
- for (;I.end() != true; I++)
- {
- // Not interesting
- if ((Cache[I].InstallVer == (pkgCache::Version *)I.CurrentVer() &&
- I.State() != pkgCache::PkgIterator::NeedsUnpack) ||
- Cache[I].Delete() == true)
- continue;
-
- // Cross match with the source list.
- pkgSourceList::const_iterator Dist = List.MatchPkgFile(Cache[I].InstVerIter(Cache));
- if (Dist == List.end())
- {
- _error->Warning("Couldn't locate an archive source for package %s",I.Name());
- continue;
- }
-
- // Read in the info record
- pkgSPkgCtrlInfo Inf = CCache[Cache[I].InstVerIter(Cache)];
- if (Inf.isNull() == true)
- {
- _error->Warning("Couldn't locate info for package %s",I.Name());
- continue;
- }
-
- // Isolate the filename
- string File = Inf->Find("Filename")->Value();
- if (File.empty() == true)
- {
- _error->Warning("Couldn't locate an archive for package %s",I.Name());
- continue;
- }
-
- // Generate the get request.
- string URI = Dist->ArchiveURI(File);
-
- // Output file
- unsigned int Pos = File.rfind('/');
- if (Pos == File.length())
- return _error->Error("Malformed file line in package %s",I.Name());
-
- // Null pos isnt used in present package files
- if (Pos == string::npos)
- Pos = 0;
- else
- Pos++;
-
- if (Engine.Get(URI,string(File,Pos),
- Dist->ArchiveInfo(Cache[I].InstVerIter(Cache)),
- Cache[I].InstVerIter(Cache)->Size,
- Inf->Find("MD5sum")->Value(),
- &FileNames[I->ID]) == false)
- return false;
- }
-
- return true;
-}
- /*}}}*/
// PM::FixMissing - Keep all missing packages /*{{{*/
// ---------------------------------------------------------------------
/* This is called to correct the installation when packages could not
@@ -167,7 +95,7 @@ bool pkgPackageManager::CheckRConflicts(PkgIterator Pkg,DepIterator D,
{
for (;D.end() == false; D++)
{
- if (D->Type != pkgDEP_Conflicts)
+ if (D->Type != pkgCache::Dep::Conflicts)
continue;
if (D.ParentPkg() == Pkg)
@@ -270,7 +198,7 @@ bool pkgPackageManager::DepAdd(pkgOrderList &OList,PkgIterator Pkg,int Depth)
bool Bad = false;
for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); D.end() == false;)
{
- if (D->Type != pkgDEP_Depends && D->Type != pkgDEP_PreDepends)
+ if (D->Type != pkgCache::Dep::Depends && D->Type != pkgCache::Dep::PreDepends)
{
D++;
continue;
@@ -280,7 +208,7 @@ bool pkgPackageManager::DepAdd(pkgOrderList &OList,PkgIterator Pkg,int Depth)
Bad = true;
for (bool LastOR = true; D.end() == false && LastOR == true; D++)
{
- LastOR = (D->CompareOp & pkgOP_OR) == pkgOP_OR;
+ LastOR = (D->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or;
if (Bad == false)
continue;
@@ -380,7 +308,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg)
for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList();
D.end() == false; D++)
{
- if (D->Type == pkgDEP_PreDepends)
+ if (D->Type == pkgCache::Dep::PreDepends)
{
// Look for possible ok targets.
Version **VList = D.AllTargets();
@@ -421,7 +349,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg)
continue;
}
- if (D->Type == pkgDEP_Conflicts)
+ if (D->Type == pkgCache::Dep::Conflicts)
{
/* Look for conflicts. Two packages that are both in the install
state cannot conflict so we don't check.. */
@@ -474,18 +402,18 @@ bool pkgPackageManager::OrderInstall()
for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
{
// Consider all depends
- if ((I->Flags & pkgFLAG_Essential) == pkgFLAG_Essential)
+ if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
{
List->Flag(I,pkgOrderList::Immediate);
if (Cache[I].InstallVer != 0)
for (DepIterator D = Cache[I].InstVerIter(Cache).DependsList();
D.end() == false; D++)
- if (D->Type == pkgDEP_Depends || D->Type == pkgDEP_PreDepends)
+ if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
List->Flag(D.TargetPkg(),pkgOrderList::Immediate);
if (I->CurrentVer != 0)
for (DepIterator D = I.CurrentVer().DependsList();
D.end() == false; D++)
- if (D->Type == pkgDEP_Depends || D->Type == pkgDEP_PreDepends)
+ if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
List->Flag(D.TargetPkg(),pkgOrderList::Immediate);
}
@@ -498,7 +426,7 @@ bool pkgPackageManager::OrderInstall()
// Append it to the list
List->push_back(I);
- if ((I->Flags & pkgFLAG_ImmediateConf) == pkgFLAG_ImmediateConf)
+ if ((I->Flags & pkgCache::Flag::ImmediateConf) == pkgCache::Flag::ImmediateConf)
List->Flag(I,pkgOrderList::Immediate);
}
diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h
index 6020cbefd..5f1b34635 100644
--- a/apt-pkg/packagemanager.h
+++ b/apt-pkg/packagemanager.h
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: packagemanager.h,v 1.1 1998/07/07 04:17:01 jgg Exp $
+// $Id: packagemanager.h,v 1.2 1998/07/09 05:41:13 jgg Exp $
/* ######################################################################
Package Manager - Abstacts the package manager
@@ -72,8 +72,7 @@ class pkgPackageManager
public:
- // The three stages
- bool GetArchives(pkgSourceList &List,pkgAquire &Engine);
+ // Main action members
bool DoInstall();
bool FixMissing();