Trees | Indices | Help |
---|
|
1 # 2 # Copyright (c) 2008--2016 Red Hat, Inc. 3 # 4 # This software is licensed to you under the GNU General Public License, 5 # version 2 (GPLv2). There is NO WARRANTY for this software, express or 6 # implied, including the implied warranties of MERCHANTABILITY or FITNESS 7 # FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 8 # along with this software; if not, see 9 # http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 10 # 11 # Red Hat trademarks are not licensed under GPLv2. No permission is 12 # granted to use or replicate Red Hat trademarks that are incorporated 13 # in this software or its documentation. 14 # 15 # 16 # Converts headers to the intermediate format 17 # 18 19 import headerSource 20 import debPackage 21 2224 25 tagMap = headerSource.rpmBinaryPackage.tagMap.copy() 26 27 # Remove already-mapped tags 28 _already_mapped = [ 29 'rpm_version', 'payload_size', 'payload_format', 30 'package_group', 'build_time', 'build_host' 31 ] 32 for t in _already_mapped: 33 if t in tagMap: 34 del tagMap[t] 3597 98 # top-level package object creation -------------------------------------- 99 10036 - def populate(self, header, size, checksum_type, checksum, path=None, org_id=None, 37 channels=[]):38 39 # call to base class method 40 headerSource.rpmBinaryPackage.populate(self, header, size, checksum_type, checksum, path, 41 org_id, channels) 42 43 srpm = self.get('source_rpm', '') 44 if srpm == '': 45 self['source_rpm'] = None 46 47 group = self.get('package_group', '') 48 if group == '': 49 self['package_group'] = 'NoGroup' 50 51 return self5254 files = [] 55 for f in header.get('files', []): 56 fc = headerSource.rpmFile() 57 fc.populate(f) 58 files.append(fc) 59 self['files'] = files6062 mapping = { 63 'provides': headerSource.rpmProvides, 64 'requires': headerSource.rpmRequires, 65 'conflicts': headerSource.rpmConflicts, 66 'obsoletes': headerSource.rpmObsoletes, 67 'recommends': headerSource.rpmRecommends, 68 'supplements': headerSource.rpmSupplements, 69 'enhances': headerSource.rpmEnhances, 70 'suggests': headerSource.rpmSuggests, 71 } 72 73 for k, dclass in mapping.items(): 74 unique_deps = [] 75 l = [] 76 for dinfo in header.get(k, []): 77 hash = dinfo 78 if not len(hash['name']): 79 continue 80 dep_nv = (hash['name'], hash['version'], hash['flags']) 81 if dep_nv not in unique_deps: 82 unique_deps.append(dep_nv) 83 finst = dclass() 84 finst.populate(dinfo) 85 l.append(finst) 86 else: 87 continue 88 self[k] = l8991 l = [] 92 for cinfo in header.get('changelog', []): 93 cinst = headerSource.rpmChangeLog() 94 cinst.populate(cinfo) 95 l.append(cinst) 96 self['changelog'] = l101 -def create_package(header, size, checksum_type, checksum, relpath, org_id, header_start=None, 102 header_end=None, channels=[]):103 if header.packaging == 'rpm': 104 return headerSource.createPackage(header, size=size, 105 checksum_type=checksum_type, checksum=checksum, 106 relpath=relpath, org_id=org_id, header_start=header_start, 107 header_end=header_end, channels=channels) 108 if header.packaging == 'deb': 109 return debPackage.debBinaryPackage(header, size=size, checksum_type=checksum_type, checksum=checksum, path=relpath, 110 org_id=org_id, channels=channels) 111 if header.is_source: 112 raise NotImplementedError() 113 p = mpmBinaryPackage() 114 p.populate(header, size=size, checksum_type=checksum_type, checksum=checksum, path=relpath, 115 org_id=org_id, channels=channels) 116 return p117
Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Wed Mar 4 07:37:52 2020 | http://epydoc.sourceforge.net |