]> git.saurik.com Git - apt.git/commitdiff
* merged the apt--install-recommends branch
authorMichael Vogt <michael.vogt@ubuntu.com>
Fri, 11 Aug 2006 10:45:33 +0000 (12:45 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Fri, 11 Aug 2006 10:45:33 +0000 (12:45 +0200)
* ABI break, bumped the version number

1  2 
apt-pkg/depcache.cc
apt-pkg/depcache.h
apt-pkg/init.h
apt-pkg/makefile
cmdline/apt-get.cc
configure.in
debian/changelog
methods/makefile

index 27b6134b4dfc22c9c8b1a65ed84807be0bcf5485,bfcb8e0eb8c5e828a3df94d873f228eacb7f6acd..abe2842ccef375868c4604ff7acf5bb1141ba0a7
@@@ -763,7 -598,7 +765,8 @@@ void pkgDepCache::MarkDelete(PkgIterato
  // ---------------------------------------------------------------------
  /* */
  void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
-                             unsigned long Depth, bool FromUser)
 -                            unsigned long Depth, bool ForceImportantDeps)
++                            unsigned long Depth, bool FromUser,
++                            bool ForceImportantDeps)
  {
     if (Depth > 100)
        return;
               std::clog << "Installing " << InstPkg.Name() 
                         << " as dep of " << Pkg.Name() 
                         << std::endl;
-          MarkInstall(InstPkg, true, Depth + 1, false);
 -          MarkInstall(InstPkg,true,Depth + 1, ForceImportantDeps);
++          MarkInstall(InstPkg,true,Depth + 1, false, ForceImportantDeps);
+           // Set the autoflag, after MarkInstall because MarkInstall unsets it
+           if (P->CurrentVer == 0)
+              PkgState[InstPkg->ID].Flags |= Flag::Auto;
         }
 -       
         continue;
        }
        
index d16b56bbc941d99e1b386fe7a0603376e0331769,042abb5cc1619b675b7b8cd6a1b48d5d9c334673..5cd5ea354fa353bf33fb4f7e9738d283f7bb35eb
@@@ -342,61 -185,13 +344,62 @@@ class pkgDepCache : protected pkgCache:
     inline StateCache &operator [](PkgIterator const &I) {return PkgState[I->ID];};
     inline unsigned char &operator [](DepIterator const &I) {return DepState[I->ID];};
  
 -   // Manipulators
 -   void MarkKeep(PkgIterator const &Pkg,bool Soft = false);
 +   /** \return A function identifying packages in the root set other
 +    *  than manually installed packages and essential packages, or \b
 +    *  NULL if an error occurs.
 +    *
 +    *  \todo Is this the best place for this function?  Perhaps the
 +    *  settings for mark-and-sweep should be stored in a single
 +    *  external class?
 +    */
 +   virtual InRootSetFunc *GetRootSetFunc();
 +
 +   /** \return \b true if the garbage collector should follow recommendations.
 +    */
 +   virtual bool MarkFollowsRecommends();
 +
 +   /** \return \b true if the garbage collector should follow suggestions.
 +    */
 +   virtual bool MarkFollowsSuggests();
 +
 +   /** \brief Update the Marked and Garbage fields of all packages.
 +    *
 +    *  This routine is implicitly invoked after all state manipulators
 +    *  and when an ActionGroup is destroyed.  It invokes #MarkRequired
 +    *  and #Sweep to do its dirty work.
 +    *
 +    *  \param rootFunc A predicate that returns \b true for packages
 +    *  that should be added to the root set.
 +    */
 +   bool MarkAndSweep(InRootSetFunc &rootFunc)
 +   {
 +     return MarkRequired(rootFunc) && Sweep();
 +   }
 +
 +   bool MarkAndSweep()
 +   {
 +     std::auto_ptr<InRootSetFunc> f(GetRootSetFunc());
 +     if(f.get() != NULL)
 +       return MarkAndSweep(*f.get());
 +     else
 +       return false;
 +   }
 +
 +   /** \name State Manipulators
 +    */
 +   // @{
 +   void MarkKeep(PkgIterator const &Pkg, bool Soft = false,
 +               bool FromUser = true);
     void MarkDelete(PkgIterator const &Pkg,bool Purge = false);
     void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true,
-                   unsigned long Depth = 0, bool FromUser = true);
 -                  unsigned long Depth = 0, bool ForceImportantDeps = false);
++                  unsigned long Depth = 0, bool FromUser = true,
++                  bool ForceImportantDeps = false);
     void SetReInstall(PkgIterator const &Pkg,bool To);
     void SetCandidateVersion(VerIterator TargetVer);
 +
 +   /** Set the "is automatically installed" flag of Pkg. */
 +   void MarkAuto(const PkgIterator &Pkg, bool Auto);
 +   // @}
     
     // This is for debuging
     void Update(OpProgress *Prog = 0);
diff --cc apt-pkg/init.h
index 0c6260c2fbad7bec25cfe10600bf4aa8464959c5,8255b406a6bd65d694ef7cdd68d2adda2ad6b54b..b036b86098ae88eaa2db3a2b6378f4211d803fb0
@@@ -18,7 -18,7 +18,7 @@@
  
  // See the makefile
  #define APT_PKG_MAJOR 3
- #define APT_PKG_MINOR 50
 -#define APT_PKG_MINOR 11
++#define APT_PKG_MINOR 51
  #define APT_PKG_RELEASE 0
      
  extern const char *pkgVersion;
index d03a19182fc0d8e81ae35bc3b08051130606ddc3,7e5feae53b4b11082c1d3973bab0772c5ce7085d..6cc1414b222ffe7c7dbeaa1ec3a6b96c09ba82a0
@@@ -13,7 -13,7 +13,7 @@@ include ../buildlib/defaults.ma
  # methods/makefile - FIXME
  LIBRARY=apt-pkg
  LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
- MAJOR=3.50
 -MAJOR=3.11
++MAJOR=3.51
  MINOR=0
  SLIBS=$(PTHREADLIB) $(INTLLIBS)
  APT_DOMAIN:=libapt-pkg$(MAJOR)
index d0330b08e2b308f55a86226b498e671daded907f,58976351cb73e236b31e231fa2065bef7eaf39fe..96e974acb2736e1983bd7c7cb11784744cb92acc
@@@ -2615,9 -2555,9 +2629,10 @@@ int main(int argc,const char *argv[]
        {0,"remove","APT::Get::Remove",0},
        {0,"only-source","APT::Get::Only-Source",0},
        {0,"arch-only","APT::Get::Arch-Only",0},
 +      {0,"auto-remove","APT::Get::AutomaticRemove",0},
        {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0},
        {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean},
+       {0,"fix-policy","APT::Get::Fix-Policy-Broken",0},
        {'c',"config-file",0,CommandLine::ConfigFile},
        {'o',"option",0,CommandLine::ArbItem},
        {0,0,0,0}};
diff --cc configure.in
index 5c573e72b0d7d6008769595ab0eb313bd3687638,f0b0d6703af0f057455389e7258eefc6230852fd..aa9abc1e6c2ccbb94c97f8b0bfc2a8d7b5a4253a
@@@ -18,7 -18,7 +18,7 @@@ AC_CONFIG_AUX_DIR(buildlib
  AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
  
  dnl -- SET THIS TO THE RELEASE VERSION --
- AC_DEFINE_UNQUOTED(VERSION,"0.6.45ubuntu1")
 -AC_DEFINE_UNQUOTED(VERSION,"0.6.45.1")
++AC_DEFINE_UNQUOTED(VERSION,"0.6.45ubuntu2")
  PACKAGE="apt"
  AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
  AC_SUBST(PACKAGE)
index b26aad6c026693b39a7cb51ae513d3db3b825c4f,65ec82cc1c37b25586ce04acbce9bf02c2128207..9469719066f792cdbe01fdbcb4963d63d58871ec
@@@ -1,4 -1,11 +1,14 @@@
 -apt (0.6.45.2) unstable; urgency=low
++apt (0.6.45ubuntu3) edgy; urgency=low
 -  * added "--install-recommends" to handle recommends as 
 -    dependencies (closes: #42266)
++  * ABI break
++  * merged latest apt--install-recommends
++  * added "--fix-policy" option to can be used as "--fix-broken" and
++    will install missing weak depends (recommends, and/or suggests 
++    depending on the settings)
+  --
 -apt (0.6.45.1) unstable; urgency=low
 +apt (0.6.45ubuntu2) edgy; urgency=low
  
    * debian/control:
      - switched to libdb4.4 for building (closes: #381019)
index 03a424411deb0877df7d50bd22b14bfdb7092c94,1e3b1ef850b128f8fd97ec77c7442cced44a0e34..2e3abe55cce5ec56a6d905ccfe5b3b8944821ab4
@@@ -7,7 -7,7 +7,7 @@@ include ../buildlib/defaults.ma
  BIN := $(BIN)/methods
  
  # FIXME..
- LIB_APT_PKG_MAJOR = 3.50
 -LIB_APT_PKG_MAJOR = 3.11
++LIB_APT_PKG_MAJOR = 3.51
  APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR)
  
  # The file method