23197858 packages with pkg.depend.explicit-install cannot be installed when zones present s11u3-sru
authorshreyas.k.kulkarni@oracle.com
Wed, 22 Feb 2017 23:50:38 +0530
branchs11u3-sru
changeset 3520 1106d0037435
parent 3519 cc3242e6d4d5
child 3526 f34cedd88b2d
23197858 packages with pkg.depend.explicit-install cannot be installed when zones present
src/modules/client/pkg_solver.py
src/tests/cli/t_pkg_install.py
--- a/src/modules/client/pkg_solver.py	Wed Feb 22 23:49:16 2017 +0530
+++ b/src/modules/client/pkg_solver.py	Wed Feb 22 23:50:38 2017 +0530
@@ -21,7 +21,7 @@
 #
 
 #
-# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 """Provides the interfaces and exceptions needed to determine which packages
@@ -1828,8 +1828,7 @@
                         if pkg_name in self.__expl_install_dict and \
                             fmri in self.__expl_install_dict[pkg_name]:
                                 will_filter = False
-                        elif pkg_name in self.__installed_dict and \
-                            fmri == self.__installed_dict[pkg_name]:
+                        elif pkg_name in self.__installed_dict:
                                 will_filter = False
                 else:
                         will_filter = False
--- a/src/tests/cli/t_pkg_install.py	Wed Feb 22 23:49:16 2017 +0530
+++ b/src/tests/cli/t_pkg_install.py	Wed Feb 22 23:50:38 2017 +0530
@@ -11459,6 +11459,21 @@
                     close """,
         )
 
+        pkgs6 = (
+                """
+                    open [email protected],5.11-0.1.1.2
+                    add depend type=require fmri=pkg:/[email protected],5.11-0.1.1.2
+                    close """,
+                """
+                    open [email protected],5.11-0.1.1.2
+                    add set name=pkg.depend.explicit-install value=true
+                    close """,
+                """
+                    open [email protected],5.11-0.1.1.2
+                    add set name=pkg.depend.explicit-install value=true
+                    close """,
+        )
+
         def setUp(self):
                 pkg5unittest.SingleDepotTestCase.setUp(self)
                 self.pkgsend_bulk(self.rurl, self.pkgs)
@@ -11593,6 +11608,13 @@
                 self.pkgsend_bulk(self.rurl, self.pkgs5)
                 self.pkg("install -v [email protected]", exit=1)
 
+                # Test package with pkg.depend.explicit-install=true
+                # can be installed if a different version of it has already
+                # been installed.
+                self.pkgsend_bulk(self.rurl, self.pkgs6)
+                self.pkg("install [email protected]")
+                self.pkg("install p1")
+
         def test_02_updateReject(self):
                 self.image_create(self.rurl, prefix="")
                 self.pkgsend_bulk(self.rurl, self.pkgs2)