All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: [PATCH 02/11] python-smartpm: Add support for excluding package from the install
Date: Wed, 14 Aug 2013 15:30:00 -0500	[thread overview]
Message-ID: <1376512209-11622-3-git-send-email-mark.hatle@windriver.com> (raw)
In-Reply-To: <1376512209-11622-1-git-send-email-mark.hatle@windriver.com>

Update smart to support a mechanism for excluding specific packages from the
install process.  An error will be generated if this package is required.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 .../smart-flag-exclude-packages.patch              | 70 ++++++++++++++++++++++
 .../python/python-smartpm_1.4.1.bb                 |  1 +
 2 files changed, 71 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-flag-exclude-packages.patch

diff --git a/meta/recipes-devtools/python/python-smartpm/smart-flag-exclude-packages.patch b/meta/recipes-devtools/python/python-smartpm/smart-flag-exclude-packages.patch
new file mode 100644
index 0000000..21a2874
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-flag-exclude-packages.patch
@@ -0,0 +1,70 @@
+Add exclude-packages flag support
+
+Allow configuring specific packages to be excluded.  This will allow
+users to specify things NOT to install, and if they are attempted an
+error will be generated.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+
+Index: smart-1.4.1/smart/const.py
+===================================================================
+--- smart-1.4.1.orig/smart/const.py
++++ smart-1.4.1/smart/const.py
+@@ -70,6 +70,7 @@ DATADIR     = "/var/lib/smart/"
+ USERDATADIR = "~/.smart/"
+ CONFFILE    = "config"
+ 
++LOCKED_EXCLUDE     = Enum('LOCKED_EXCLUDE')
+ LOCKED_INSTALL     = Enum('LOCKED_INSTALL')
+ LOCKED_REMOVE      = Enum('LOCKED_REMOVE')
+ LOCKED_CONFLICT    = Enum('LOCKED_CONFLICT')
+Index: smart-1.4.1/smart/transaction.py
+===================================================================
+--- smart-1.4.1.orig/smart/transaction.py
++++ smart-1.4.1/smart/transaction.py
+@@ -19,7 +19,7 @@
+ # along with Smart Package Manager; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ #
+-from smart.const import INSTALL, REMOVE, UPGRADE, FIX, REINSTALL, KEEP, LOCKED_INSTALL, LOCKED_CONFLICT, LOCKED_CONFLICT_BY, LOCKED_NO_COEXIST, LOCKED_SYSCONF, LOCKED_REMOVE
++from smart.const import INSTALL, REMOVE, UPGRADE, FIX, REINSTALL, KEEP, LOCKED_EXCLUDE, LOCKED_INSTALL, LOCKED_CONFLICT, LOCKED_CONFLICT_BY, LOCKED_NO_COEXIST, LOCKED_SYSCONF, LOCKED_REMOVE
+ from smart.cache import PreRequires, Package
+ from smart import *
+ 
+@@ -29,7 +29,9 @@ def lock_reason(pkg, lockvalue):
+     except TypeError:
+         reason = None
+         lockvalue = None
+-    if reason == LOCKED_INSTALL:
++    if reason == LOCKED_EXCLUDE:
++        return _("%s is to be excluded") % pkg
++    elif reason == LOCKED_INSTALL:
+         return _("%s is to be installed") % pkg
+     elif reason == LOCKED_CONFLICT:
+         return _("%s conflicts with %s") % (pkg, otherpkg)
+@@ -210,6 +212,10 @@ class Policy(object):
+                 self._sysconflocked.append(pkg)
+                 self._locked[pkg] = (LOCKED_SYSCONF, None)
+ 
++        for pkg in pkgconf.filterByFlag("exclude-packages", cache.getPackages()):
++            if pkg not in self._locked:
++                self._locked[pkg] = (LOCKED_EXCLUDE, None)
++
+     def runFinished(self):
+         self._priorities.clear()
+         for pkg in self._sysconflocked:
+Index: smart-1.4.1/smart/commands/flag.py
+===================================================================
+--- smart-1.4.1.orig/smart/commands/flag.py
++++ smart-1.4.1/smart/commands/flag.py
+@@ -47,6 +47,8 @@ Currently known flags are:
+   multi-version - Flagged packages may have more than one version
+                   installed in the system at the same time
+                   (backend dependent).
++  exclude-packages - Flagged packages will be excluded, if they are
++                  required, an error will be generated.
+   ignore-recommends - Flagged packages will not be installed, if
+                   they are only recommended by a package to be
+                   installed rather than required.
diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
index 70ac8bf..b3b471a 100644
--- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
+++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
@@ -28,6 +28,7 @@ SRC_URI = "\
           file://smart-channelsdir.patch \
           file://smart-conflict-provider.patch \
           file://smart-flag-ignore-recommends.patch \
+          file://smart-flag-exclude-packages.patch \
           "
 
 SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"
-- 
1.8.1.2.545.g2f19ada



  parent reply	other threads:[~2013-08-14 20:29 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-14 20:29 [PATCH 00/11] Update the way we control the construction of filesystems Mark Hatle
2013-08-14 20:29 ` [PATCH 01/11] image.bbclass: Add basic support for PACKAGE_EXCLUDE Mark Hatle
2013-08-14 20:30 ` Mark Hatle [this message]
2013-08-14 20:30 ` [PATCH 03/11] package_rpm.bbclass: Add support for PACKAGE_EXCLUDE to RPM installs Mark Hatle
2013-08-15 12:01   ` Paul Eggleton
2013-08-15 13:37     ` Mark Hatle
2013-08-14 20:30 ` [PATCH 04/11] python-smartpm: Add support to disable installing recommends Mark Hatle
2013-08-14 20:30 ` [PATCH 05/11] package_rpm.bbclass: NO_RECOMMENDATIONS support Mark Hatle
2013-08-14 20:30 ` [PATCH 06/11] package_deb.bbclass: Use the WORKDIR not SYSROOT for temp files Mark Hatle
2013-08-14 20:30 ` [PATCH 07/11] package_deb: Add support for NO_RECOMMENDATIONS and PACKAGE_EXCLUDE Mark Hatle
2013-08-14 20:30 ` [PATCH 08/11] opkg: Add --no-install-recommends option Mark Hatle
2013-08-19 18:08   ` Saul Wold
2013-08-19 18:32     ` Mark Hatle
2013-09-18 15:14       ` Paul Barker
2013-09-18 16:07         ` Richard Purdie
2013-09-18 16:35           ` Paul Barker
2013-09-18 16:48             ` Richard Purdie
2013-09-18 17:24               ` Paul Barker
2013-09-18 18:44                 ` Phil Blundell
2013-09-18 19:09                   ` Paul Barker
2013-09-18 20:33                 ` Richard Purdie
2013-09-18 20:51                   ` Paul Barker
2013-10-07 15:00         ` opkg-devel group (was: Re: [PATCH 08/11] opkg: Add --no-install-recommends option.) Andreas Oberritter
2013-10-07 16:08           ` Paul Barker
2013-08-14 20:30 ` [PATCH 09/11] package_ipk: Add support for NO_RECOMMENDATIONS Mark Hatle
2013-08-14 20:30 ` [PATCH 10/11] opkg: Add support for excluding packages from the install Mark Hatle
2013-08-14 20:30 ` [PATCH 11/11] package_ipk: Add support for PACKAGE_EXCLUDE Mark Hatle
2013-08-14 20:35 ` [PATCH 00/11] Update the way we control the construction of filesystems Burton, Ross
2013-08-14 20:41   ` Mark Hatle
2013-08-14 21:03     ` Burton, Ross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1376512209-11622-3-git-send-email-mark.hatle@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.