Package backend :: Package common :: Module rhn_rpm
[hide private]
[frames] | no frames]

Module rhn_rpm

source code

Classes [hide private]
  RPM_Header
Wrapper class for an rpm header - we need to store a flag is_source
  RPM_Package
  MatchIterator
Functions [hide private]
 
get_header_byte_range(package_file)
Return the start and end bytes of the rpm header object.
source code
 
get_header_struct_size(package_file)
Compute the size in bytes of the rpm header struct starting at the current position in package_file.
source code
 
get_package_header(filename=None, file_obj=None, fd=None)
Loads the package header from a file / stream / file descriptor Raises rpm.error if an error is found, or InvalidPacageError if package is busted
source code
 
headerLoad(data) source code
 
labelCompare(t1, t2) source code
 
nvre_compare(t1, t2) source code
 
hdrLabelCompare(hdr1, hdr2)
take two RPMs or headers and compare them for order
source code
 
sortRPMs(rpms)
Sorts a list of RPM files.
source code
 
getInstalledHeader(rpmName)
quieries the RPM DB for a header matching rpmName.
source code
Variables [hide private]
  PGPHASHALGO = {1: 'md5', 2: 'sha1', 3: 'ripemd160', 5: 'md2', ...
  SHARED_TS = None
hash(x)
  RPMBUILD_BUILD = 2
  RPMBUILD_CHECK = 8
  RPMBUILD_CLEAN = 16
  RPMBUILD_FILECHECK = 32
  RPMBUILD_INSTALL = 4
  RPMBUILD_ISICON = 4
  RPMBUILD_ISNO = 8
  RPMBUILD_ISPATCH = 2
  RPMBUILD_ISSOURCE = 1
  RPMBUILD_NONE = 0
  RPMBUILD_PACKAGEBINARY = 128
  RPMBUILD_PACKAGESOURCE = 64
  RPMBUILD_PKG_NODIRTOKENS = 1
  RPMBUILD_PKG_NONE = 0
  RPMBUILD_PREP = 1
  RPMBUILD_RMBUILD = 512
  RPMBUILD_RMSOURCE = 256
  RPMBUILD_RMSPEC = 2048
  RPMCALLBACK_CPIO_ERROR = 16384
  RPMCALLBACK_ELEM_PROGRESS = 524288
  RPMCALLBACK_INST_CLOSE_FILE = 8
  RPMCALLBACK_INST_OPEN_FILE = 4
  RPMCALLBACK_INST_PROGRESS = 1
  RPMCALLBACK_INST_START = 2
  RPMCALLBACK_INST_STOP = 262144
  RPMCALLBACK_REPACKAGE_PROGRESS = 1024
  RPMCALLBACK_REPACKAGE_START = 2048
  RPMCALLBACK_REPACKAGE_STOP = 4096
  RPMCALLBACK_SCRIPT_ERROR = 32768
  RPMCALLBACK_SCRIPT_START = 65536
  RPMCALLBACK_SCRIPT_STOP = 131072
  RPMCALLBACK_TRANS_PROGRESS = 16
  RPMCALLBACK_TRANS_START = 32
  RPMCALLBACK_TRANS_STOP = 64
  RPMCALLBACK_UNINST_PROGRESS = 128
  RPMCALLBACK_UNINST_START = 256
  RPMCALLBACK_UNINST_STOP = 512
  RPMCALLBACK_UNKNOWN = 0
  RPMCALLBACK_UNPACK_ERROR = 8192
  RPMDBI_BASENAMES = 1117
  RPMDBI_CONFLICTNAME = 1054
  RPMDBI_DIRNAMES = 1118
  RPMDBI_GROUP = 1016
  RPMDBI_INSTALLTID = 1128
  RPMDBI_INSTFILENAMES = 5040
  RPMDBI_LABEL = 2
  RPMDBI_NAME = 1000
  RPMDBI_OBSOLETENAME = 1090
  RPMDBI_PACKAGES = 0
  RPMDBI_PROVIDENAME = 1047
  RPMDBI_REQUIRENAME = 1049
  RPMDBI_SHA1HEADER = 269
  RPMDBI_SIGMD5 = 261
  RPMDBI_TRIGGERNAME = 1066
  RPMDEP_SENSE_CONFLICTS = 1
  RPMDEP_SENSE_REQUIRES = 0
  RPMFILE_CONFIG = 1
  RPMFILE_DOC = 2
  RPMFILE_GHOST = 64
  RPMFILE_ICON = 4
  RPMFILE_LICENSE = 128
  RPMFILE_MISSINGOK = 8
  RPMFILE_NOREPLACE = 16
  RPMFILE_PUBKEY = 2048
  RPMFILE_README = 256
  RPMFILE_SPECFILE = 32
  RPMFILE_STATE_NETSHARED = 3
  RPMFILE_STATE_NORMAL = 0
  RPMFILE_STATE_NOTINSTALLED = 2
  RPMFILE_STATE_REPLACED = 1
  RPMFILE_STATE_WRONGCOLOR = 4
  RPMLOG_ALERT = 1
  RPMLOG_CRIT = 2
  RPMLOG_DEBUG = 7
  RPMLOG_EMERG = 0
  RPMLOG_ERR = 3
  RPMLOG_INFO = 6
  RPMLOG_NOTICE = 5
  RPMLOG_WARNING = 4
  RPMMIRE_DEFAULT = 0
  RPMMIRE_GLOB = 3
  RPMMIRE_REGEX = 2
  RPMMIRE_STRCMP = 1
  RPMPROB_BADARCH = 0
  RPMPROB_BADOS = 1
  RPMPROB_BADRELOCATE = 3
  RPMPROB_CONFLICT = 5
  RPMPROB_DISKNODES = 10
  RPMPROB_DISKSPACE = 9
  RPMPROB_FILE_CONFLICT = 7
  RPMPROB_FILTER_DISKNODES = 256
  RPMPROB_FILTER_DISKSPACE = 128
  RPMPROB_FILTER_FORCERELOCATE = 8
  RPMPROB_FILTER_IGNOREARCH = 2
  RPMPROB_FILTER_IGNOREOS = 1
  RPMPROB_FILTER_OLDPACKAGE = 64
  RPMPROB_FILTER_REPLACENEWFILES = 16
  RPMPROB_FILTER_REPLACEOLDFILES = 32
  RPMPROB_FILTER_REPLACEPKG = 4
  RPMPROB_NEW_FILE_CONFLICT = 6
  RPMPROB_OBSOLETES = 11
  RPMPROB_OLDPACKAGE = 8
  RPMPROB_PKG_INSTALLED = 2
  RPMPROB_REQUIRES = 4
  RPMRC_FAIL = 2
  RPMRC_NOKEY = 4
  RPMRC_NOTFOUND = 1
  RPMRC_NOTTRUSTED = 3
  RPMRC_OK = 0
  RPMSENSE_ANY = 0
  RPMSENSE_CONFIG = 268435456
  RPMSENSE_EQUAL = 8
  RPMSENSE_FIND_PROVIDES = 32768
  RPMSENSE_FIND_REQUIRES = 16384
  RPMSENSE_GREATER = 4
  RPMSENSE_INTERP = 256
  RPMSENSE_KEYRING = 67108864
  RPMSENSE_LESS = 2
  RPMSENSE_POSTTRANS = 32
  RPMSENSE_PREREQ = 64
  RPMSENSE_PRETRANS = 128
  RPMSENSE_RPMLIB = 16777216
  RPMSENSE_SCRIPT_POST = 1024
  RPMSENSE_SCRIPT_POSTUN = 4096
  RPMSENSE_SCRIPT_PRE = 512
  RPMSENSE_SCRIPT_PREUN = 2048
  RPMSENSE_SCRIPT_VERIFY = 8192
  RPMSENSE_TRIGGERIN = 65536
  RPMSENSE_TRIGGERPOSTUN = 262144
  RPMSENSE_TRIGGERPREIN = 33554432
  RPMSENSE_TRIGGERUN = 131072
  RPMSPEC_ANYARCH = 1
  RPMSPEC_FORCE = 2
  RPMSPEC_NOLANG = 4
  RPMSPEC_NONE = 0
  RPMTAG_ARCH = 1022
  RPMTAG_ARCHIVESIZE = 1046
  RPMTAG_BASENAMES = 1117
  RPMTAG_BUGURL = 5012
  RPMTAG_BUILDARCHS = 1089
  RPMTAG_BUILDHOST = 1007
  RPMTAG_BUILDTIME = 1006
  RPMTAG_C = 1054
  RPMTAG_CHANGELOGNAME = 1081
  RPMTAG_CHANGELOGTEXT = 1082
  RPMTAG_CHANGELOGTIME = 1080
  RPMTAG_CLASSDICT = 1142
  RPMTAG_COLLECTIONS = 5029
  RPMTAG_CONFLICTFLAGS = 1053
  RPMTAG_CONFLICTNAME = 1054
  RPMTAG_CONFLICTNEVRS = 5044
  RPMTAG_CONFLICTS = 1054
  RPMTAG_CONFLICTVERSION = 1055
  RPMTAG_COOKIE = 1094
  RPMTAG_DBINSTANCE = 1195
  RPMTAG_DEPENDSDICT = 1145
  RPMTAG_DESCRIPTION = 1005
  RPMTAG_DIRINDEXES = 1116
  RPMTAG_DIRNAMES = 1118
  RPMTAG_DISTRIBUTION = 1010
  RPMTAG_DISTTAG = 1155
  RPMTAG_DISTURL = 1123
  RPMTAG_DSAHEADER = 267
  RPMTAG_E = 1003
  RPMTAG_ENHANCEFLAGS = 5057
  RPMTAG_ENHANCENAME = 5055
  RPMTAG_ENHANCES = 5055
  RPMTAG_ENHANCEVERSION = 5056
  RPMTAG_EPOCH = 1003
  RPMTAG_EPOCHNUM = 5019
  RPMTAG_EVR = 5013
  RPMTAG_EXCLUDEARCH = 1059
  RPMTAG_EXCLUDEOS = 1060
  RPMTAG_EXCLUSIVEARCH = 1061
  RPMTAG_EXCLUSIVEOS = 1062
  RPMTAG_FILECAPS = 5010
  RPMTAG_FILECLASS = 1141
  RPMTAG_FILECOLORS = 1140
  RPMTAG_FILECONTEXTS = 1147
  RPMTAG_FILEDEPENDSN = 1144
  RPMTAG_FILEDEPENDSX = 1143
  RPMTAG_FILEDEVICES = 1095
  RPMTAG_FILEDIGESTALGO = 5011
  RPMTAG_FILEDIGESTS = 1035
  RPMTAG_FILEFLAGS = 1037
  RPMTAG_FILEGROUPNAME = 1040
  RPMTAG_FILEINODES = 1096
  RPMTAG_FILELANGS = 1097
  RPMTAG_FILELINKTOS = 1036
  RPMTAG_FILEMD5S = 1035
  RPMTAG_FILEMODES = 1030
  RPMTAG_FILEMTIMES = 1034
  RPMTAG_FILENAMES = 5000
  RPMTAG_FILENLINKS = 5045
  RPMTAG_FILEPROVIDE = 5001
  RPMTAG_FILERDEVS = 1033
  RPMTAG_FILEREQUIRE = 5002
  RPMTAG_FILESIZES = 1028
  RPMTAG_FILESTATES = 1029
  RPMTAG_FILEUSERNAME = 1039
  RPMTAG_FILEVERIFYFLAGS = 1045
  RPMTAG_FSCONTEXTS = 1148
  RPMTAG_GIF = 1012
  RPMTAG_GROUP = 1016
  RPMTAG_HDRID = 269
  RPMTAG_HEADERCOLOR = 5017
  RPMTAG_HEADERI18NTABLE = 100
  RPMTAG_HEADERIMAGE = 61
  RPMTAG_HEADERIMMUTABLE = 63
  RPMTAG_HEADERREGIONS = 64
  RPMTAG_HEADERSIGNATURES = 62
  RPMTAG_ICON = 1043
  RPMTAG_INSTALLCOLOR = 1127
  RPMTAG_INSTALLTID = 1128
  RPMTAG_INSTALLTIME = 1008
  RPMTAG_INSTFILENAMES = 5040
  RPMTAG_INSTPREFIXES = 1099
  RPMTAG_LICENSE = 1014
  RPMTAG_LONGARCHIVESIZE = 271
  RPMTAG_LONGFILESIZES = 5008
  RPMTAG_LONGSIGSIZE = 270
  RPMTAG_LONGSIZE = 5009
  RPMTAG_N = 1000
  RPMTAG_NAME = 1000
  RPMTAG_NEVR = 5015
  RPMTAG_NEVRA = 5016
  RPMTAG_NOPATCH = 1052
  RPMTAG_NOSOURCE = 1051
  RPMTAG_NOT_FOUND = -1
  RPMTAG_NVR = 5014
  RPMTAG_NVRA = 1196
  RPMTAG_O = 1090
  RPMTAG_OBSOLETEFLAGS = 1114
  RPMTAG_OBSOLETENAME = 1090
  RPMTAG_OBSOLETENEVRS = 5043
  RPMTAG_OBSOLETES = 1090
  RPMTAG_OBSOLETEVERSION = 1115
  RPMTAG_OLDFILENAMES = 1027
  RPMTAG_OPTFLAGS = 1122
  RPMTAG_ORDERFLAGS = 5037
  RPMTAG_ORDERNAME = 5035
  RPMTAG_ORDERVERSION = 5036
  RPMTAG_ORIGBASENAMES = 1120
  RPMTAG_ORIGDIRINDEXES = 1119
  RPMTAG_ORIGDIRNAMES = 1121
  RPMTAG_ORIGFILENAMES = 5007
  RPMTAG_OS = 1021
  RPMTAG_P = 1047
  RPMTAG_PACKAGER = 1015
  RPMTAG_PATCH = 1019
  RPMTAG_PATCHESFLAGS = 1134
  RPMTAG_PATCHESNAME = 1133
  RPMTAG_PATCHESVERSION = 1135
  RPMTAG_PAYLOADCOMPRESSOR = 1125
  RPMTAG_PAYLOADFLAGS = 1126
  RPMTAG_PAYLOADFORMAT = 1124
  RPMTAG_PKGID = 261
  RPMTAG_PLATFORM = 1132
  RPMTAG_POLICIES = 1150
  RPMTAG_POLICYFLAGS = 5033
  RPMTAG_POLICYNAMES = 5030
  RPMTAG_POLICYTYPES = 5031
  RPMTAG_POLICYTYPESINDEXES = 5032
  RPMTAG_POSTIN = 1024
  RPMTAG_POSTINFLAGS = 5021
  RPMTAG_POSTINPROG = 1086
  RPMTAG_POSTTRANS = 1152
  RPMTAG_POSTTRANSFLAGS = 5025
  RPMTAG_POSTTRANSPROG = 1154
  RPMTAG_POSTUN = 1026
  RPMTAG_POSTUNFLAGS = 5023
  RPMTAG_POSTUNPROG = 1088
  RPMTAG_PREFIXES = 1098
  RPMTAG_PREIN = 1023
  RPMTAG_PREINFLAGS = 5020
  RPMTAG_PREINPROG = 1085
  RPMTAG_PRETRANS = 1151
  RPMTAG_PRETRANSFLAGS = 5024
  RPMTAG_PRETRANSPROG = 1153
  RPMTAG_PREUN = 1025
  RPMTAG_PREUNFLAGS = 5022
  RPMTAG_PREUNPROG = 1087
  RPMTAG_PROVIDEFLAGS = 1112
  RPMTAG_PROVIDENAME = 1047
  RPMTAG_PROVIDENEVRS = 5042
  RPMTAG_PROVIDES = 1047
  RPMTAG_PROVIDEVERSION = 1113
  RPMTAG_PUBKEYS = 266
  RPMTAG_R = 1002
  RPMTAG_RECOMMENDFLAGS = 5048
  RPMTAG_RECOMMENDNAME = 5046
  RPMTAG_RECOMMENDS = 5046
  RPMTAG_RECOMMENDVERSION = 5047
  RPMTAG_RECONTEXTS = 1149
  RPMTAG_RELEASE = 1002
  RPMTAG_REMOVETID = 1129
  RPMTAG_REQUIREFLAGS = 1048
  RPMTAG_REQUIRENAME = 1049
  RPMTAG_REQUIRENEVRS = 5041
  RPMTAG_REQUIRES = 1049
  RPMTAG_REQUIREVERSION = 1050
  RPMTAG_RPMVERSION = 1064
  RPMTAG_RSAHEADER = 268
  RPMTAG_SHA1HEADER = 269
  RPMTAG_SIGGPG = 262
  RPMTAG_SIGMD5 = 261
  RPMTAG_SIGPGP = 259
  RPMTAG_SIGSIZE = 257
  RPMTAG_SIZE = 1009
  RPMTAG_SOURCE = 1018
  RPMTAG_SOURCEPACKAGE = 1106
  RPMTAG_SOURCEPKGID = 1146
  RPMTAG_SOURCERPM = 1044
  RPMTAG_SUGGESTFLAGS = 5051
  RPMTAG_SUGGESTNAME = 5049
  RPMTAG_SUGGESTS = 5049
  RPMTAG_SUGGESTVERSION = 5050
  RPMTAG_SUMMARY = 1004
  RPMTAG_SUPPLEMENTFLAGS = 5054
  RPMTAG_SUPPLEMENTNAME = 5052
  RPMTAG_SUPPLEMENTS = 5052
  RPMTAG_SUPPLEMENTVERSION = 5053
  RPMTAG_TRIGGERCONDS = 5005
  RPMTAG_TRIGGERFLAGS = 1068
  RPMTAG_TRIGGERINDEX = 1069
  RPMTAG_TRIGGERNAME = 1066
  RPMTAG_TRIGGERSCRIPTFLAGS = 5027
  RPMTAG_TRIGGERSCRIPTPROG = 1092
  RPMTAG_TRIGGERSCRIPTS = 1065
  RPMTAG_TRIGGERTYPE = 5006
  RPMTAG_TRIGGERVERSION = 1067
  RPMTAG_URL = 1020
  RPMTAG_V = 1001
  RPMTAG_VCS = 5034
  RPMTAG_VENDOR = 1011
  RPMTAG_VERBOSE = 5018
  RPMTAG_VERIFYSCRIPT = 1079
  RPMTAG_VERIFYSCRIPTFLAGS = 5026
  RPMTAG_VERIFYSCRIPTPROG = 1091
  RPMTAG_VERSION = 1001
  RPMTAG_XPM = 1013
  RPMTRANS_FLAG_ADDINDEPS = 0
  RPMTRANS_FLAG_ALLFILES = 64
  RPMTRANS_FLAG_BUILD_PROBS = 2
  RPMTRANS_FLAG_JUSTDB = 8
  RPMTRANS_FLAG_KEEPOBSOLETE = 0
  RPMTRANS_FLAG_NOCONFIGS = 1073741824
  RPMTRANS_FLAG_NOCONTEXTS = 256
  RPMTRANS_FLAG_NODOCS = 32
  RPMTRANS_FLAG_NOFILEDIGEST = 134217728
  RPMTRANS_FLAG_NOMD5 = 134217728
  RPMTRANS_FLAG_NOPLUGINS = 128
  RPMTRANS_FLAG_NOPOST = 262144
  RPMTRANS_FLAG_NOPOSTUN = 4194304
  RPMTRANS_FLAG_NOPRE = 131072
  RPMTRANS_FLAG_NOPREUN = 2097152
  RPMTRANS_FLAG_NOSCRIPTS = 4
  RPMTRANS_FLAG_NOSUGGEST = 0
  RPMTRANS_FLAG_NOTRIGGERIN = 524288
  RPMTRANS_FLAG_NOTRIGGERPOSTUN = 8388608
  RPMTRANS_FLAG_NOTRIGGERPREIN = 65536
  RPMTRANS_FLAG_NOTRIGGERS = 16
  RPMTRANS_FLAG_NOTRIGGERUN = 1048576
  RPMTRANS_FLAG_REPACKAGE = 0
  RPMTRANS_FLAG_REVERSE = 0
  RPMTRANS_FLAG_TEST = 1
  RPMVSF_DEFAULT = 0
  RPMVSF_NEEDPAYLOAD = 2
  RPMVSF_NODSA = 262144
  RPMVSF_NODSAHEADER = 1024
  RPMVSF_NOHDRCHK = 1
  RPMVSF_NOMD5 = 131072
  RPMVSF_NOMD5HEADER = 512
  RPMVSF_NORSA = 524288
  RPMVSF_NORSAHEADER = 2048
  RPMVSF_NOSHA1 = 65536
  RPMVSF_NOSHA1HEADER = 256
  __package__ = 'backend.common'
Function Details [hide private]

get_header_byte_range(package_file)

source code 

Return the start and end bytes of the rpm header object.

For details of the rpm file format, see: http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html

sortRPMs(rpms)

source code 

Sorts a list of RPM files. They *must* exist.


Variables Details [hide private]

PGPHASHALGO

Value:
{1: 'md5',
 2: 'sha1',
 3: 'ripemd160',
 5: 'md2',
 6: 'tiger192',
 7: 'haval-5-160',
 8: 'sha256',
 9: 'sha384',
...