Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
yum
yum-3.4.3-suse-missing-tags.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File yum-3.4.3-suse-missing-tags.patch of Package yum
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 @@ 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_files(True) if msg[-1] != '\n': msg += """\n""" @@ -1173,11 +1175,110 @@ 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 + + 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] + + 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 = ''' <rpm:entry name="%s"''' % misc.to_xml(name, attrib=True) + if flagstr: + entry += ''' flags="%s"''' % misc.to_xml(flagstr, attrib=True) + if e: + entry += ''' epoch="%s"''' % misc.to_xml(e, attrib=True) + if v: + entry += ''' ver="%s"''' % misc.to_xml(v, attrib=True) + if r: + entry += ''' rel="%s"''' % misc.to_xml(r, attrib=True) + entry += "/>\n" + if flag & rpm.RPMSENSE_STRONG: + recommends += entry + else: + suggests += entry + if suggests: + msg += "\n <rpm:suggests>\n" + msg += suggests + msg += " </rpm:suggests>\n" + if recommends: + msg += "\n <rpm:recommends>\n" + msg += recommends + msg += " </rpm:recommends>\n" + + return msg + + def _dump_enhances_and_supplements(self): + msg, enhances, supplements = "", "", "" + names = self.hdr[rpm.RPMTAG_ENHANCESNAME] + if not names: + return msg + if type(names).__name__ != 'list': + names = [names] + + flags = self.hdr[rpm.RPMTAG_ENHANCESFLAGS] + if type(flags).__name__ != 'list': + flags = [flags] + + versions = self.hdr[rpm.RPMTAG_ENHANCESVERSION] + if type(versions).__name__ != 'list': + versions = [versions] + + 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 = ''' <rpm:entry name="%s"''' % misc.to_xml(name, attrib=True) + if flagstr: + entry += ''' flags="%s"''' % misc.to_xml(flagstr, attrib=True) + if e: + entry += ''' epoch="%s"''' % misc.to_xml(e, attrib=True) + if v: + entry += ''' ver="%s"''' % misc.to_xml(v, attrib=True) + if r: + entry += ''' rel="%s"''' % misc.to_xml(r, attrib=True) + entry += "/>\n" + if flag & rpm.RPMSENSE_STRONG: + supplements += entry + else: + enhances += entry + if supplements: + msg += "\n <rpm:supplements>\n" + msg += supplements + msg += " </rpm:supplements>\n" + if enhances: + msg += "\n <rpm:enhances>\n" + msg += enhances + msg += " </rpm:enhances>\n" + return msg + def _dump_requires(self): """returns deps in XML format""" mylist = self._requires_with_pre() - msg = "" if mylist: msg = "\n <rpm:requires>\n"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor