]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/init.cc
[cmdline/apt-get.cc]
[apt.git] / apt-pkg / init.cc
index 676b66d382c41f2bc0f9a9b23f87bdd6a3b6fee2..46017bf0ce3775c7be3c1525e15041a531cbcea0 100644 (file)
@@ -35,7 +35,7 @@ bool pkgInitConfig(Configuration &Cnf)
    // General APT things
    Cnf.Set("APT::Architecture", COMMON_ARCH);
    Cnf.Set("APT::Build-Essential::", "build-essential");
-   Cnf.Set("APT::Install-Recommends", false);
+   Cnf.Set("APT::Install-Recommends", true);
    Cnf.Set("APT::Install-Suggests", false);
    Cnf.Set("Dir","/");
    
@@ -67,32 +67,65 @@ bool pkgInitConfig(Configuration &Cnf)
    Cnf.Set("Dir::Etc::main","apt.conf");
    Cnf.Set("Dir::Etc::parts","apt.conf.d");
    Cnf.Set("Dir::Etc::preferences","preferences");
+   Cnf.Set("Dir::Etc::preferencesparts","preferences.d");
    Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
 
    // State   
    Cnf.Set("Dir::Log","var/log/apt");
    Cnf.Set("Dir::Log::Terminal","term.log");
-   
+
+   // Translation
+   Cnf.Set("APT::Acquire::Translation", "environment");
+
    bool Res = true;
    
    // Read an alternate config file
    const char *Cfg = getenv("APT_CONFIG");
-   if (Cfg != 0 && FileExists(Cfg) == true)
-      Res &= ReadConfigFile(Cnf,Cfg);
-   
+   if (Cfg != 0)
+   {
+      if (FileExists(Cfg) == true)
+        Res &= ReadConfigFile(Cnf,Cfg);
+      else
+        _error->WarningE("FileExists",_("Unable to read %s"),Cfg);
+   }
+
    // Read the configuration parts dir
    string Parts = Cnf.FindDir("Dir::Etc::parts");
    if (FileExists(Parts) == true)
       Res &= ReadConfigDir(Cnf,Parts);
-      
+   else
+      _error->WarningE("FileExists",_("Unable to read %s"),Parts.c_str());
+
    // 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;
-   
+
+   // we load all config files, now check the configs and setup post-defaults:
+   // * check for CompressionTypes setup
+   {
+      Configuration::Item const *Opts = _config->Tree("Acquire::CompressionTypes");
+      if (Opts != 0)
+        Opts = Opts->Child;
+      bool foundLzma=false, foundBzip2=false, foundGzip=false;
+      for (; Opts != 0; Opts = Opts->Next)
+      {
+        if (Opts->Value == "lzma") foundLzma = true;
+        else if (Opts->Value == "bz2") foundBzip2 = true;
+        else if (Opts->Value == "gz") foundGzip = true;
+      }
+      if (!foundBzip2) Cnf.Set("Acquire::CompressionTypes::bz2","bzip2");
+      if (!foundLzma) Cnf.Set("Acquire::CompressionTypes::lzma","lzma");
+      if (!foundGzip) Cnf.Set("Acquire::CompressionTypes::gz","gzip");
+      Cnf.CndSet("Dir::Bin::lzma", "/usr/bin/lzma");
+      Cnf.CndSet("Dir::Bin::bzip2", "/bin/bzip2");
+   }
+
+
+
    if (Cnf.FindB("Debug::pkgInitConfig",false) == true)
       Cnf.Dump();
    
@@ -104,9 +137,6 @@ bool pkgInitConfig(Configuration &Cnf)
    }
 #endif
 
-   // Translation
-   Cnf.Set("APT::Acquire::Translation", "environment");
-   
    return true;
 }
                                                                        /*}}}*/