Code Search for Developers
 
 
  

init.cc from GreenSocs at Krugle


Show init.cc syntax highlighted

// -*- mode: cpp; mode: fold -*-
// Description								/*{{{*/
// $Id: init.cc,v 1.21 2004/02/27 00:46:44 mdz Exp $
/* ######################################################################

   Init - Initialize the package library
   
   ##################################################################### */
									/*}}}*/
// Include files							/*{{{*/
#include <apt-pkg/init.h>
#include <apt-pkg/fileutl.h>
#include <apt-pkg/error.h>

#include <apti18n.h>
#include <config.h>
#include <sys/stat.h>

//GreenSocs: Force link against debSys object
#include <apt-pkg/debsystem.h>
									/*}}}*/

#define Stringfy_(x) # x
#define Stringfy(x)  Stringfy_(x)
const char *pkgVersion = VERSION;
const char *pkgLibVersion = Stringfy(APT_PKG_MAJOR) "."
                            Stringfy(APT_PKG_MINOR) "." 
                            Stringfy(APT_PKG_RELEASE);
const char *pkgCPU = COMMON_CPU;
const char *pkgOS = COMMON_OS;
    
// pkgInitConfig - Initialize the configuration class			/*{{{*/
// ---------------------------------------------------------------------
/* Directories are specified in such a way that the FindDir function will
   understand them. That is, if they don't start with a / then their parent
   is prepended, this allows a fair degree of flexability. */
bool pkgInitConfig(Configuration &Cnf)
{
   // General APT things
   if (strcmp(COMMON_OS,"linux") == 0 ||
       strcmp(COMMON_OS,"unknown") == 0)
      Cnf.Set("APT::Architecture",COMMON_CPU);
   else
      Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
   Cnf.Set("APT::Build-Essential::", "build-essential");
   Cnf.Set("Dir","/");
   
   // State   
   Cnf.Set("Dir::State","var/lib/apt/");
   
   Cnf.Set("Dir::State::lists","lists/");
   Cnf.Set("Dir::State::cdroms","cdroms.list");
   
   // Cache
   Cnf.Set("Dir::Cache","var/cache/apt/");
   Cnf.Set("Dir::Cache::archives","archives/");
   Cnf.Set("Dir::Cache::srcpkgcache","srcpkgcache.bin");
   Cnf.Set("Dir::Cache::pkgcache","pkgcache.bin");
   
   // Configuration
   Cnf.Set("Dir::Etc","etc/apt/");
   Cnf.Set("Dir::Etc::sourcelist","sources.list");
   Cnf.Set("Dir::Etc::vendorlist","vendors.list");
   Cnf.Set("Dir::Etc::vendorparts","vendors.list.d");
   Cnf.Set("Dir::Etc::main","apt.conf");
   Cnf.Set("Dir::Etc::parts","apt.conf.d");
   Cnf.Set("Dir::Etc::preferences","preferences");
   Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
	      
   bool Res = true;
   
   // Read an alternate config file
   const char *Cfg = getenv("APT_CONFIG");
   if (Cfg != 0 && FileExists(Cfg) == true)
      Res &= ReadConfigFile(Cnf,Cfg);
   
   // Read the configuration parts dir
   string Parts = Cnf.FindDir("Dir::Etc::parts");
   if (FileExists(Parts) == true)
      Res &= ReadConfigDir(Cnf,Parts);
      
   // Read the main config file
   string FName = Cnf.FindFile("Dir::Etc::main");
   if (FileExists(FName) == true)
      Res &= ReadConfigFile(Cnf,FName);
   
   if (Res == false)
      return false;
   
   if (Cnf.FindB("Debug::pkgInitConfig",false) == true)
      Cnf.Dump();
   
#ifdef APT_DOMAIN
   if (Cnf.Exists("Dir::Locale"))
   {  
      bindtextdomain(APT_DOMAIN,Cnf.FindDir("Dir::Locale").c_str());
      bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str());
   }
#endif
   
   return true;
}
									/*}}}*/
// pkgInitSystem - Initialize the _system calss				/*{{{*/
// ---------------------------------------------------------------------
/* */
bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys)
{
//    Sys = 0;
//    string Label = Cnf.Find("Apt::System","");
//    if (Label.empty() == false)
//    {
//       Sys = pkgSystem::GetSystem(Label.c_str());
//       if (Sys == 0)
// 	 return _error->Error(_("Packaging system '%s' is not supported"),Label.c_str());
//    }
//    else
//    {
//       signed MaxScore = 0;
//       for (unsigned I = 0; I != pkgSystem::GlobalListLen; I++)
//       {
// 	 signed Score = pkgSystem::GlobalList[I]->Score(Cnf);
// 	 if (Score > MaxScore)
// 	 {
// 	    MaxScore = Score;
// 	    Sys = pkgSystem::GlobalList[I];
// 	 }
//       }
      
//       if (Sys == 0)
// 	 return _error->Error(_("Unable to determine a suitable packaging system type"));
//    }
   
//    return Sys->Initialize(Cnf);

   //GreenSocs: Force link against debSys object
   Sys = &debSys;
   return Sys->Initialize(Cnf);
}
									/*}}}*/




See more files for this project here

GreenSocs

To develop SystemC infrustructure, basic IP, patches and add on library code for eventual standerdization.\r\nThe GreenSocs project is made up of a number of contributions (sub projects). Please visit www.greensocs.com for more information.

Project homepage: http://sourceforge.net/projects/greensocs
Programming language(s): C,C++,Java,Perl,XML
License: other

  contrib/
    cdromutl.cc
    cdromutl.h
    cmndline.cc
    cmndline.h
    configuration.cc
    configuration.h
    crc-16.cc
    crc-16.h
    error.cc
    error.h
    fileutl.cc
    fileutl.h
    hashes.cc
    hashes.h
    md5.cc
    md5.h
    mmap.cc
    mmap.h
    progress.cc
    progress.h
    sha1.cc
    sha1.h
    sptr.h
    strutl.cc
    strutl.h
    system.h
  deb/
    debindexfile.cc
    debindexfile.h
    deblistparser.cc
    deblistparser.h
    debrecords.cc
    debrecords.h
    debsrcrecords.cc
    debsrcrecords.h
    debsystem.cc
    debsystem.h
    debversion.cc
    debversion.h
    dpkgpm.cc
    dpkgpm.h
  acquire-item.cc
  acquire-item.h
  acquire-method.cc
  acquire-method.h
  acquire-worker.cc
  acquire-worker.h
  acquire.cc
  acquire.h
  algorithms.cc
  algorithms.h
  cachefile.cc
  cachefile.h
  cacheiterators.h
  clean.cc
  clean.h
  depcache.cc
  depcache.h
  indexfile.cc
  indexfile.h
  init.cc
  init.h
  makefile
  orderlist.cc
  orderlist.h
  packagemanager.cc
  packagemanager.h
  pkgcache.cc
  pkgcache.h
  pkgcachegen.cc
  pkgcachegen.h
  pkgrecords.cc
  pkgrecords.h
  pkgsystem.cc
  pkgsystem.h
  policy.cc
  policy.h
  sourcelist.cc
  sourcelist.h
  srcrecords.cc
  srcrecords.h
  tagfile.cc
  tagfile.h
  version.cc
  version.h
  versionmatch.cc
  versionmatch.h