import platform class rpmMacro(object): def __init__(self): self.macroName = "" self.macroFlag = "" self.content = "" self.position = -1 self.endposition = -1 def setName(self, name): self.macroName = name def displayMacro(self): print("Macro:") print(self.macroName + " {}".format(self.macroFlag) + " {}".format(self.position) + " {}".format(self.endposition)) print(self.content) class dependentPackageData(object): def __init__(self): self.package = "" self.version = "" self.compare = "" class Package(object): def __init__(self, basePkg=None): self.summary = "" self.name = "" self.group = "" self.license = "" self.version = "" self.release = "" self.buildarch = platform.machine() self.distribution = "Photon" self.basePkgName = "" self.URL = "" self.sources = [] self.checksums = {} self.patches = [] self.buildrequires = [] self.buildprovides = [] self.checkbuildrequires = [] self.requires = [] self.provides = [] self.obsoletes = [] self.conflicts = [] self.descriptionMacro = None self.postMacro = None self.postunMacro = None self.filesMacro = None self.packageMacro = None if basePkg is not None: self.basePkgName = basePkg.name self.group = basePkg.group self.license = basePkg.license self.version = basePkg.version self.buildarch = basePkg.buildarch self.release = basePkg.release self.distribution = basePkg.distribution def updatePackageMacro(self, macro): if macro.macroName == "%post": self.postMacro = macro return True if macro.macroName == "%postun": self.postunMacro = macro return True if macro.macroName == "%files": self.filesMacro = macro return True if macro.macroName == "%description": self.descriptionMacro = macro return True return False