| ... | ... |
@@ -7,7 +7,6 @@ from PackageUtils import PackageUtils |
| 7 | 7 |
from ToolChainUtils import ToolChainUtils |
| 8 | 8 |
from Scheduler import Scheduler |
| 9 | 9 |
from ThreadPool import ThreadPool |
| 10 |
-import subprocess |
|
| 11 | 10 |
|
| 12 | 11 |
class PackageManager(object): |
| 13 | 12 |
|
| ... | ... |
@@ -54,8 +53,14 @@ class PackageManager(object): |
| 54 | 54 |
listDirectorys.append(dirEntryPath) |
| 55 | 55 |
pkgUtils = PackageUtils(self.logName,self.logPath) |
| 56 | 56 |
for rpmfile in listRPMFiles: |
| 57 |
- package = pkgUtils.findPackageNameFromRPMFile(rpmfile) |
|
| 58 |
- listAvailablePackages.append(package) |
|
| 57 |
+ package,version,release = pkgUtils.findPackageInfoFromRPMFile(rpmfile) |
|
| 58 |
+ if constants.specData.isRPMPackage(package): |
|
| 59 |
+ specVersion=constants.specData.getVersion(package) |
|
| 60 |
+ specRelease=constants.specData.getRelease(package) |
|
| 61 |
+ if version == specVersion and release == specRelease: |
|
| 62 |
+ listAvailablePackages.append(package) |
|
| 63 |
+ self.logger.info("List of Already built packages")
|
|
| 64 |
+ self.logger.info(listAvailablePackages) |
|
| 59 | 65 |
return listAvailablePackages |
| 60 | 66 |
|
| 61 | 67 |
def calculateParams(self,listPackages): |
| ... | ... |
@@ -193,6 +193,23 @@ class PackageUtils(object): |
| 193 | 193 |
raise Exception("Invalid RPM")
|
| 194 | 194 |
packageName=rpmfile[0:versionindex] |
| 195 | 195 |
return packageName |
| 196 |
+ |
|
| 197 |
+ def findPackageInfoFromRPMFile(self,rpmfile): |
|
| 198 |
+ rpmfile=os.path.basename(rpmfile) |
|
| 199 |
+ rpmfile=rpmfile.replace(".x86_64.rpm","")
|
|
| 200 |
+ rpmfile=rpmfile.replace(".noarch.rpm","")
|
|
| 201 |
+ releaseindex=rpmfile.rfind("-")
|
|
| 202 |
+ if releaseindex == -1: |
|
| 203 |
+ self.logger.error("Invalid rpm file:"+rpmfile)
|
|
| 204 |
+ raise Exception("Invalid RPM")
|
|
| 205 |
+ versionindex=rpmfile[0:releaseindex].rfind("-")
|
|
| 206 |
+ if versionindex == -1: |
|
| 207 |
+ self.logger.error("Invalid rpm file:"+rpmfile)
|
|
| 208 |
+ raise Exception("Invalid RPM")
|
|
| 209 |
+ packageName=rpmfile[0:versionindex] |
|
| 210 |
+ version=rpmfile[versionindex+1:releaseindex] |
|
| 211 |
+ release=rpmfile[releaseindex+1:] |
|
| 212 |
+ return packageName,version,release |
|
| 196 | 213 |
|
| 197 | 214 |
def findInstalledRPMPackages(self, chrootID): |
| 198 | 215 |
cmd = self.rpmBinary+" "+self.queryRpmPackageOptions |
| ... | ... |
@@ -99,6 +99,13 @@ class SerializableSpecObjectsUtils(object): |
| 99 | 99 |
self.logger.error("Could not able to find "+package+" package from specs")
|
| 100 | 100 |
raise Exception("Invalid package:"+package)
|
| 101 | 101 |
|
| 102 |
+ def isRPMPackage(self,package): |
|
| 103 |
+ if self.mapPackageToSpec.has_key(package): |
|
| 104 |
+ specName=self.mapPackageToSpec[package] |
|
| 105 |
+ if self.mapSerializableSpecObjects.has_key(specName): |
|
| 106 |
+ return True |
|
| 107 |
+ return False |
|
| 108 |
+ |
|
| 102 | 109 |
def getSecurityHardeningOption(self, package): |
| 103 | 110 |
specName=self.getSpecName(package) |
| 104 | 111 |
return self.mapSerializableSpecObjects[specName].securityHardening |
| ... | ... |
@@ -124,10 +124,8 @@ def main(): |
| 124 | 124 |
sys.exit(0) |
| 125 | 125 |
|
| 126 | 126 |
def buildToolChain(buildThreads): |
| 127 |
- listPackages=[] |
|
| 128 |
- listPackages.append(package) |
|
| 129 | 127 |
pkgManager = PackageManager() |
| 130 |
- pkgManager.buildPackages(listPackages, buildThreads) |
|
| 128 |
+ pkgManager.buildToolChainPackages(buildThreads) |
|
| 131 | 129 |
|
| 132 | 130 |
def buildPackageList(specPath): |
| 133 | 131 |
print "Package,Version,License,URL,Sources,Patches" |