OSDN Git Service

Correct scheduling of new prerequisites when upgrading.
authorKeith Marshall <keithmarshall@users.sourceforge.net>
Sun, 15 Apr 2012 19:52:26 +0000 (19:52 +0000)
committerKeith Marshall <keithmarshall@users.sourceforge.net>
Sun, 15 Apr 2012 19:52:26 +0000 (19:52 +0000)
ChangeLog
src/pkgdeps.cpp

index 662b9c7..3353d3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2012-04-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
+       Correct scheduling of new prerequisites when upgrading.
+
+       * src/pkgdeps.cpp (pkgXmlDocument::ResolveDependencies):
+       [ACTION_UPGRADE && ACTION_PRIMARY]: Don't exclude scheduling for this
+       case of a prerequisite with no previously installed version; it may be
+       a delegated primary requirement of a meta-package.
+
+2012-04-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
        Don't require subsystem within user specified version bounds.
 
        * src/pkgdeps.cpp (pkgActionItem::ApplyBounds): Automatically consider
index bb80407..49080df 100644 (file)
@@ -463,12 +463,20 @@ pkgXmlDocument::ResolveDependencies( pkgXmlNode* package, pkgActionItem* rank )
          rank = Schedule( fallback, wanted, rank );
        }
 
+#      if 0
+       /* FIXME: this change in logic may introduce a regression; I (KDM)
+        * may need to re-evaluate the conceptual effect of PRIMARY actions
+        * vs. SECONDARY actions in this context, but this pre-v0.5 logic
+        * breaks the handling of meta-packages in v0.5
+        */
        else if( ((request & ACTION_MASK) == ACTION_INSTALL)
          /*
           * The required package is not installed, so when
           * we are performing an installation, ...
           */
        || ((request & (ACTION_PRIMARY | ACTION_INSTALL)) == ACTION_INSTALL) )
+#      endif
+       else if( (request & ACTION_INSTALL) == ACTION_INSTALL )
        {
          /* ...or when this is a new requirement of a package
           * which is being upgraded, then we must schedule it