... | ... |
@@ -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" |