Revert use.unsatisfiable support for now.
authorZac Medico <zmedico@gentoo.org>
Wed, 24 Nov 2010 16:36:12 +0000 (08:36 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 24 Nov 2010 16:43:03 +0000 (08:43 -0800)
The current implementation doesn't provide anything to distinguish
it from use.mask, and it's arguable that another approach such as
an atom syntax extension (for optional dependencies) would be more
appropriate.

This reverts commit 93ee6a847be949e7752c3c052d3eb0619e408b43.

man/portage.5
pym/portage/dep/dep_check.py
pym/portage/package/ebuild/_config/UseManager.py
pym/portage/package/ebuild/config.py

index 8f48f792a22fd0803cb670a6ecfbeea4bca22fe7..8929a8ee4a92c6940f217e1ee7fc413e892a3cda 100644 (file)
@@ -36,12 +36,10 @@ package.unmask
 package.use
 package.use.force
 package.use.mask
-package.use.unsatisfiable
 parent
 profile.bashrc
 use.force
 use.mask
-use.unsatisfiable
 virtuals
 .fi
 .TP
@@ -338,26 +336,6 @@ a '\-'.
 x11\-libs/qt \-mysql
 .fi
 .TP
-.BR package.use.unsatisfiable
-Per\-package marking of USE flags as potentially unsatisfiable.
-
-.I Note:
-In a cascading profile setup, you can remove USE flags in children 
-profiles which were added by parent profiles by prefixing the flag with 
-a '\-'.
-
-.I Format:
-.nf
-\- comments begin with # (no inline comments)
-\- one DEPEND atom per line with space-delimited USE flags
-.fi
-
-.I Example:
-.nf
-# KDE is unstable on this architecture
-dev-vcs/subversion kde
-.fi
-.TP
 .BR parent
 This contains a path to the parent profile.  It may be either relative or 
 absolute.  The paths will be relative to the location of the profile.  Most 
@@ -408,22 +386,6 @@ doc
 \-mysql
 .fi
 .TP
-.BR use.unsatisfiable
-Some USE flags enable optional dependencies, which are allowed to be
-unsatisfiable in some configurations. This is useful for stable packages,
-which have optional dependencies on unstable packages.
-
-.I Note:
-In a cascading profile setup, you can remove USE flags in children 
-profiles which were added by parent profiles by prefixing the flag with 
-a '\-'.
-
-.I Format:
-.nf
-\- comments begin with # (no inline comments)
-\- one USE flag per line
-.fi
-.TP
 .BR virtuals
 This controls what packages will provide a virtual by default.  For example, 
 if a package needs to send e\-mail, it will need virtual/mta.  In the absence 
index 2f6cb76022f028d4bad4f59bee6eeddbf29dd661..fca1594a7fe5488c68a7cfc7b9a1745a313b7cdc 100644 (file)
@@ -512,7 +512,6 @@ def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None,
                # flags from a parent package that is being merged to a $ROOT that is
                # different from the one that mysettings represents.
                mymasks.update(mysettings.usemask)
-               mymasks.update(mysettings.useunsatisfiable)
                mymasks.update(mysettings.archlist())
                mymasks.discard(mysettings["ARCH"])
                useforce.update(mysettings.useforce)
index 5567e3578dbe5c24a15cd0a88ec1d5a3f40f8cf3..6c646526b73f321b3362c3adf9c5e66eb6d624ed 100644 (file)
@@ -22,11 +22,9 @@ class UseManager(object):
                #--------------------------------
                #       use.mask                        _usemask_list
                #       use.force                       _useforce_list
-               #       use.unsatisfiable               _useunsatisfiable_list
                #       package.use.mask                _pusemask_list
                #       package.use                     _pkgprofileuse
                #       package.use.force               _puseforce_list
-               #       package.use.unsatisfiable       _puseunsatisfiable_list
                #--------------------------------
                #       user config
                #--------------------------------
@@ -45,11 +43,9 @@ class UseManager(object):
 
                self._usemask_list = self._parse_profile_files_to_tuple("use.mask", profiles)
                self._useforce_list = self._parse_profile_files_to_tuple("use.force", profiles)
-               self._useunsatisfiable_list = self._parse_profile_files_to_tuple("use.unsatisfiable", profiles)
                self._pusemask_list = self._parse_profile_files_to_dict("package.use.mask", profiles)
                self._pkgprofileuse = self._parse_profile_files_to_dict("package.use", profiles, juststrings=True)
                self._puseforce_list = self._parse_profile_files_to_dict("package.use.force", profiles)
-               self._puseunsatisfiable_list = self._parse_profile_files_to_dict("package.use.unsatisfiable", profiles)
 
                self._pusedict = self._parse_user_files_to_extatomdict("package.use", abs_user_config, user_config)
 
@@ -149,25 +145,6 @@ class UseManager(object):
                                        useforce.extend(pkg_useforce)
                return frozenset(stack_lists(useforce, incremental=True))
 
-       def getUseUnsatisfiable(self, pkg=None):
-               if pkg is None:
-                       return frozenset(stack_lists(
-                               self._useunsatisfiable_list, incremental=True))
-
-               cp = getattr(pkg, "cp", None)
-               if cp is None:
-                       cp = cpv_getkey(remove_slot(pkg))
-               useunsatisfiable = []
-               for i, punsatisfiable_dict in enumerate(self._puseunsatisfiable_list):
-                       if self._useunsatisfiable_list[i]:
-                               useunsatisfiable.append(self._useunsatisfiable_list[i])
-                       cpdict = punsatisfiable_dict.get(cp)
-                       if cpdict:
-                               pkg_useunsatisfiable = ordered_by_atom_specificity(cpdict, pkg)
-                               if pkg_useunsatisfiable:
-                                       useunsatisfiable.extend(pkg_useunsatisfiable)
-               return frozenset(stack_lists(useunsatisfiable, incremental=True))
-
        def getPUSE(self, pkg):
                cp = getattr(pkg, "cp", None)
                if cp is None:
index a84e8fe84fbc0dccd1094b874e605824c825e8a0..22570a906891463318477734af4a02c4ed6dff62 100644 (file)
@@ -233,7 +233,6 @@ class config(object):
                        self._non_user_variables = clone._non_user_variables
                        self.usemask = clone.usemask
                        self.useforce = clone.useforce
-                       self.useunsatisfiable = clone.useunsatisfiable
                        self.puse = clone.puse
                        self.user_profile_dir = clone.user_profile_dir
                        self.local_config = clone.local_config
@@ -528,7 +527,6 @@ class config(object):
                        #Initialize all USE related variables we track ourselves.
                        self.usemask = self._use_manager.getUseMask()
                        self.useforce = self._use_manager.getUseForce()
-                       self.useunsatisfiable = self._use_manager.getUseUnsatisfiable()
                        self.configdict["conf"]["USE"] = \
                                self._use_manager.extract_global_USE_changes( \
                                        self.configdict["conf"].get("USE", ""))
@@ -937,7 +935,6 @@ class config(object):
                                " ".join(self.make_defaults_use)
                        self.usemask = self._use_manager.getUseMask()
                        self.useforce = self._use_manager.getUseForce()
-                       self.useunsatisfiable = self._use_manager.getUseUnsatisfiable()
                self.regenerate()
 
        class _lazy_vars(object):
@@ -1177,11 +1174,6 @@ class config(object):
                        self.usemask = usemask
                        has_changed = True
 
-               useunsatisfiable = self._use_manager.getUseUnsatisfiable(cpv_slot)
-               if useunsatisfiable != self.useunsatisfiable:
-                       self.useunsatisfiable = useunsatisfiable
-                       has_changed = True
-
                oldpuse = self.puse
                self.puse = self._use_manager.getPUSE(cpv_slot)
                if oldpuse != self.puse:
@@ -1413,9 +1405,6 @@ class config(object):
        def _getUseForce(self, pkg):
                return self._use_manager.getUseForce(pkg)
 
-       def _getUseUnsatisfiable(self, pkg):
-               return self._use_manager.getUseUnsatisfiable(pkg)
-
        def _getMaskAtom(self, cpv, metadata):
                """
                Take a package and return a matching package.mask atom, or None if no