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:36:12 +0000 (08:36 -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 602569ab64bb472389917c1cc2d431461afa5d5e..a3f7d38bef71ce039f9a0c6747c15704758ae92b 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
@@ -339,26 +337,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 
@@ -409,22 +387,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 99e2fea070ad821c6e1c6c35a765e17c00a2180e..ff206e536c97c6f21973c24b2c01716456aec98d 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 6c513c6965f42e6b36549b313637369bb50230e5..9d53888cea43fb2cee8c9da5b6faac260f4e2544 100644 (file)
@@ -205,7 +205,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
@@ -515,7 +514,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", ""))
@@ -891,7 +889,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):
@@ -1131,11 +1128,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:
@@ -1367,9 +1359,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