![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community,
here is the log from the commit of package yum for openSUSE:Factory checked in at 2014-02-28 16:22:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yum (Old)
and /work/SRC/openSUSE:Factory/.yum.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yum"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yum/yum.changes 2014-01-03 14:50:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yum.new/yum.changes 2014-02-28 16:22:10.000000000 +0100
@@ -1,0 +2,10 @@
+Mon Feb 24 18:53:37 UTC 2014 - suse-tux@gmx.de
+
+- minor change to the suse-missing-tags patch in order to fix bnc#841280
+
+-------------------------------------------------------------------
+Mon Feb 24 15:12:21 CET 2014 - mls@suse.de
+
+- adapt suse-missing-tags tags to new rpm weak dependency tags
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yum.spec ++++++
--- /var/tmp/diff_new_pack.LZAhPS/_old 2014-02-28 16:22:10.000000000 +0100
+++ /var/tmp/diff_new_pack.LZAhPS/_new 2014-02-28 16:22:10.000000000 +0100
@@ -93,7 +93,7 @@
%setup -q
%patch1 -p1
%patch2 -p1
-%patch3 -p1
+%patch3
%patch6 -p1
%patch7 -p1
%patch8 -p1
++++++ yum-3.4.3-suse-missing-tags.patch ++++++
--- /var/tmp/diff_new_pack.LZAhPS/_old 2014-02-28 16:22:10.000000000 +0100
+++ /var/tmp/diff_new_pack.LZAhPS/_new 2014-02-28 16:22:10.000000000 +0100
@@ -1,125 +1,129 @@
-diff -ru a/yum/packages.py b/yum/packages.py
---- a/yum/packages.py 2011-06-28 22:27:22.000000000 +0200
-+++ b/yum/packages.py 2012-02-23 09:56:09.814485258 +0100
-@@ -1121,6 +1121,8 @@
+--- ./yum/mdparser.py.orig 2014-02-25 11:04:36.905061790 +0000
++++ ./yum/mdparser.py 2014-02-25 11:04:45.009061775 +0000
+@@ -155,7 +155,8 @@ class PrimaryEntry(BaseEntry):
+ p[name] = child.text
+
+ elif name in ('provides', 'requires', 'conflicts',
+- 'obsoletes'):
++ 'obsoletes',
++ 'suggests', 'enhances', 'recommends', 'supplements'):
+ self.prco[name] = self.getPrco(child)
+
+ elif name == 'header-range':
+--- ./yum/packages.py.orig 2014-02-25 11:04:36.910061790 +0000
++++ ./yum/packages.py 2014-02-25 12:31:03.379052610 +0000
+@@ -54,6 +54,14 @@ except ImportError:
+ import pwd
+ import grp
+
++# check if rpm has the new weakdeps tags
++_new_weakdeps = False
++try:
++ if rpm.RPMTAG_ENHANCENAME:
++ _new_weakdeps = True
++except:
++ pass
++
+ def comparePoEVR(po1, po2):
+ """
+ Compare two Package or PackageEVR objects.
+@@ -412,6 +420,10 @@ class RpmBase(object):
+ self.prco['conflicts'] = [] # (name, flag, (e,v,r))
+ self.prco['requires'] = [] # (name, flag, (e,v,r))
+ self.prco['provides'] = [] # (name, flag, (e,v,r))
++ self.prco['suggests'] = [] # (name, flag, (e,v,r))
++ self.prco['enhances'] = [] # (name, flag, (e,v,r))
++ self.prco['recommends'] = [] # (name, flag, (e,v,r))
++ self.prco['supplements'] = [] # (name, flag, (e,v,r))
+ self.files = {}
+ self.files['file'] = []
+ self.files['dir'] = []
+@@ -615,6 +627,10 @@ class RpmBase(object):
+ provides = property(fget=lambda self: self.returnPrco('provides'))
+ obsoletes = property(fget=lambda self: self.returnPrco('obsoletes'))
+ conflicts = property(fget=lambda self: self.returnPrco('conflicts'))
++ suggests = property(fget=lambda self: self.returnPrco('suggests'))
++ enhances = property(fget=lambda self: self.returnPrco('enhances'))
++ recommends = property(fget=lambda self: self.returnPrco('recommends'))
++ supplements = property(fget=lambda self: self.returnPrco('supplements'))
+ provides_names = property(fget=lambda self: self.returnPrcoNames('provides'))
+ requires_names = property(fget=lambda self: self.returnPrcoNames('requires'))
+ conflicts_names = property(fget=lambda self: self.returnPrcoNames('conflicts'))
+@@ -1122,6 +1138,10 @@ class YumAvailablePackage(PackageObject,
msg += self._dump_requires()
msg += self._dump_pco('conflicts')
msg += self._dump_pco('obsoletes')
-+ msg += self._dump_suggests_and_recommends()
-+ msg += self._dump_enhances_and_supplements()
++ msg += self._dump_pco('suggests')
++ msg += self._dump_pco('enhances')
++ msg += self._dump_pco('recommends')
++ msg += self._dump_pco('supplements')
msg += self._dump_files(True)
if msg[-1] != '\n':
msg += """\n"""
-@@ -1173,11 +1175,110 @@
+@@ -1358,6 +1378,17 @@ class YumHeaderPackage(YumAvailablePacka
+ def _get_hdr(self):
+ return self.hdr
- def _requires_with_pre(self):
- raise NotImplementedError()
--
-+
-+ # Rather than trying to stuff enhances, suggests, supplements and recommends
-+ # into yum like the other tags, I'll save my sanity and just do it by hand.
-+ def _dump_suggests_and_recommends(self):
-+ msg = ""
-+ suggests = ""
-+ recommends = ""
-+ names = self.hdr[rpm.RPMTAG_SUGGESTSNAME]
-+ if not names:
-+ return msg
++ def _filter_deps(self, name, flag, vers, andmask, resmask):
++ newname = []
++ newflag = []
++ newvers = []
++ for (n, f, v) in zip(name, flag, vers):
++ if f & andmask == resmask:
++ newname.append(n)
++ newflag.append(f)
++ newvers.append(v)
++ return (newname, newflag, newvers)
+
-+ if type(names).__name__ != 'list':
-+ names = [names]
-+
-+ flags = self.hdr[rpm.RPMTAG_SUGGESTSFLAGS]
-+ if type(flags).__name__ != 'list':
-+ flags = [flags]
-+
-+ versions = self.hdr[rpm.RPMTAG_SUGGESTSVERSION]
-+ if type(versions).__name__ != 'list':
-+ versions = [versions]
+ def _populatePrco(self):
+ "Populate the package object with the needed PRCO interface."
+
+@@ -1383,6 +1414,33 @@ class YumHeaderPackage(YumAvailablePacka
+
+ prcotype = tag2prco[tag]
+ self.prco[prcotype] = map(misc.share_data, zip(name,flag,vers))
+
-+ for i in range(len(names)):
-+ name = names[i]
-+ if name.startswith('rpmlib('):
-+ continue
-+ flag = flags[i]
-+ flagstr = flagToString(flag)
-+ (e,v,r) = stringToVersion(versions[i])
-+ entry = '''