Change-Id: Iadc1a592d6bed8cfaf86dae6c03443608a97b97b
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4705
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Divya Thaluru <dthaluru@vmware.com>
... | ... |
@@ -11,7 +11,7 @@ import docker |
11 | 11 |
|
12 | 12 |
class PackageBuilderBase(object): |
13 | 13 |
def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, |
14 |
- listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType): |
|
14 |
+ pkgBuildType): |
|
15 | 15 |
# will be initialized in buildPackageFunction() |
16 | 16 |
self.logName = None |
17 | 17 |
self.logPath = None |
... | ... |
@@ -22,8 +22,6 @@ class PackageBuilderBase(object): |
22 | 22 |
self.listNodepsPackages = ["glibc", "gmp", "zlib", "file", "binutils", "mpfr", |
23 | 23 |
"mpc", "gcc", "ncurses", "util-linux", "groff", "perl", |
24 | 24 |
"texinfo", "rpm", "openssl", "go"] |
25 |
- self.listBuildOptionPackages = listBuildOptionPackages |
|
26 |
- self.pkgBuildOptionFile = pkgBuildOptionFile |
|
27 | 25 |
self.pkgBuildType = pkgBuildType |
28 | 26 |
|
29 | 27 |
def buildPackagePrepareFunction(self, package, outputMap, threadName): |
... | ... |
@@ -122,13 +120,13 @@ class PackageBuilderBase(object): |
122 | 122 |
listInstalledPackages, listInstalledRPMs) |
123 | 123 |
|
124 | 124 |
class PackageBuilderContainer(object): |
125 |
- def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, listBuildOptionPackages, |
|
126 |
- pkgBuildOptionFile, pkgBuildType): |
|
125 |
+ def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, |
|
126 |
+ pkgBuildType): |
|
127 | 127 |
self.buildContainerImage = "photon_build_container:latest" |
128 | 128 |
self.dockerClient = docker.from_env(version="auto") |
129 | 129 |
|
130 | 130 |
self.base = PackageBuilderBase(mapPackageToCycles, listAvailableCyclicPackages, |
131 |
- listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType) |
|
131 |
+ pkgBuildType) |
|
132 | 132 |
|
133 | 133 |
def buildPackageFunction(self, package, outputMap, threadName): |
134 | 134 |
self.base.buildPackagePrepareFunction(package, outputMap, threadName) |
... | ... |
@@ -269,8 +267,6 @@ class PackageBuilderContainer(object): |
269 | 269 |
pkgUtils.buildRPMSForGivenPackageInContainer( |
270 | 270 |
self.base.package, |
271 | 271 |
containerID, |
272 |
- self.base.listBuildOptionPackages, |
|
273 |
- self.base.pkgBuildOptionFile, |
|
274 | 272 |
destLogPath) |
275 | 273 |
self.base.logger.info("BuildContainer-buildPackage: Successfully built the package: " + |
276 | 274 |
self.base.package) |
... | ... |
@@ -293,10 +289,10 @@ class PackageBuilderContainer(object): |
293 | 293 |
chrUtils.destroyChroot(chrootID) |
294 | 294 |
|
295 | 295 |
class PackageBuilderChroot(object): |
296 |
- def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, listBuildOptionPackages, |
|
297 |
- pkgBuildOptionFile, pkgBuildType): |
|
296 |
+ def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, |
|
297 |
+ pkgBuildType): |
|
298 | 298 |
self.base = PackageBuilderBase(mapPackageToCycles, listAvailableCyclicPackages, |
299 |
- listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType) |
|
299 |
+ pkgBuildType) |
|
300 | 300 |
|
301 | 301 |
def buildPackageFunction(self, package, outputMap, threadName): |
302 | 302 |
self.base.buildPackagePrepareFunction(package, outputMap, threadName) |
... | ... |
@@ -364,8 +360,6 @@ class PackageBuilderChroot(object): |
364 | 364 |
|
365 | 365 |
pkgUtils.adjustGCCSpecs(self.base.package, chrootID, self.base.logPath) |
366 | 366 |
pkgUtils.buildRPMSForGivenPackage(self.base.package, chrootID, |
367 |
- self.base.listBuildOptionPackages, |
|
368 |
- self.base.pkgBuildOptionFile, |
|
369 | 367 |
self.base.logPath) |
370 | 368 |
self.base.logger.info("Successfully built the package:" + self.base.package) |
371 | 369 |
except Exception as e: |
... | ... |
@@ -30,8 +30,6 @@ class PackageManager(object): |
30 | 30 |
self.mapOutputThread = {} |
31 | 31 |
self.mapThreadsLaunchTime = {} |
32 | 32 |
self.listAvailableCyclicPackages = [] |
33 |
- self.listBuildOptionPackages = [] |
|
34 |
- self.pkgBuildOptionFile = "" |
|
35 | 33 |
self.pkgBuildType = pkgBuildType |
36 | 34 |
if self.pkgBuildType == "container": |
37 | 35 |
self.dockerClient = docker.from_env(version="auto") |
... | ... |
@@ -130,15 +128,14 @@ class PackageManager(object): |
130 | 130 |
pkgCount = 0 |
131 | 131 |
try: |
132 | 132 |
tUtils = ToolChainUtils() |
133 |
- pkgCount = tUtils.buildCoreToolChainPackages(self.listBuildOptionPackages, |
|
134 |
- self.pkgBuildOptionFile) |
|
133 |
+ pkgCount = tUtils.buildCoreToolChainPackages() |
|
135 | 134 |
except Exception as e: |
136 | 135 |
self.logger.error("Unable to build tool chain") |
137 | 136 |
self.logger.error(e) |
138 | 137 |
raise e |
139 | 138 |
return pkgCount |
140 | 139 |
|
141 |
- def buildToolChainPackages(self, listBuildOptionPackages, pkgBuildOptionFile, buildThreads): |
|
140 |
+ def buildToolChainPackages(self, buildThreads): |
|
142 | 141 |
pkgCount = self.buildToolChain() |
143 | 142 |
if self.pkgBuildType == "container": |
144 | 143 |
# Stage 1 build container |
... | ... |
@@ -151,31 +148,26 @@ class PackageManager(object): |
151 | 151 |
#TODO: rebuild container only if anything in listToolChainPackages was built |
152 | 152 |
self.createBuildContainer() |
153 | 153 |
|
154 |
- def buildTestPackages(self, listBuildOptionPackages, pkgBuildOptionFile, buildThreads): |
|
154 |
+ def buildTestPackages(self, buildThreads): |
|
155 | 155 |
self.buildToolChain() |
156 | 156 |
self.buildGivenPackages(constants.listMakeCheckRPMPkgtoInstall, buildThreads) |
157 | 157 |
|
158 |
- def buildPackages(self, listPackages, listBuildOptionPackages, pkgBuildOptionFile, |
|
159 |
- buildThreads, pkgBuildType): |
|
160 |
- self.listBuildOptionPackages = listBuildOptionPackages |
|
161 |
- self.pkgBuildOptionFile = pkgBuildOptionFile |
|
158 |
+ def buildPackages(self, listPackages, buildThreads, pkgBuildType): |
|
162 | 159 |
self.pkgBuildType = pkgBuildType |
163 | 160 |
if constants.rpmCheck: |
164 | 161 |
constants.rpmCheck = False |
165 |
- self.buildToolChainPackages(listBuildOptionPackages, pkgBuildOptionFile, buildThreads) |
|
166 |
- self.buildTestPackages(listBuildOptionPackages, pkgBuildOptionFile, buildThreads) |
|
162 |
+ self.buildToolChainPackages(buildThreads) |
|
163 |
+ self.buildTestPackages(buildThreads) |
|
167 | 164 |
constants.rpmCheck = True |
168 | 165 |
self.buildGivenPackages(listPackages, buildThreads) |
169 | 166 |
else: |
170 |
- self.buildToolChainPackages(listBuildOptionPackages, pkgBuildOptionFile, buildThreads) |
|
167 |
+ self.buildToolChainPackages(buildThreads) |
|
171 | 168 |
self.buildGivenPackages(listPackages, buildThreads) |
172 | 169 |
|
173 | 170 |
def initializeThreadPool(self, statusEvent): |
174 | 171 |
ThreadPool.clear() |
175 | 172 |
ThreadPool.mapPackageToCycle = self.mapPackageToCycle |
176 | 173 |
ThreadPool.listAvailableCyclicPackages = self.listAvailableCyclicPackages |
177 |
- ThreadPool.listBuildOptionPackages = self.listBuildOptionPackages |
|
178 |
- ThreadPool.pkgBuildOptionFile = self.pkgBuildOptionFile |
|
179 | 174 |
ThreadPool.logger = self.logger |
180 | 175 |
ThreadPool.statusEvent = statusEvent |
181 | 176 |
ThreadPool.pkgBuildType = self.pkgBuildType |
... | ... |
@@ -156,34 +156,29 @@ class PackageUtils(object): |
156 | 156 |
def copyAdditionalBuildFiles(self, listAdditionalFiles, chrootID): |
157 | 157 |
cmdUtils = CommandUtils() |
158 | 158 |
for additionalFile in listAdditionalFiles: |
159 |
- source = additionalFile["src"].encode('utf-8') |
|
160 |
- destDir = chrootID + additionalFile["dst"].encode('utf-8') |
|
159 |
+ source = additionalFile["src"] |
|
160 |
+ destDir = chrootID + additionalFile["dst"] |
|
161 |
+ self.logger.info("Copying additional Source build files :" + source) |
|
161 | 162 |
if os.path.exists(source): |
162 | 163 |
if os.path.isfile(source): |
163 | 164 |
shutil.copy(source, destDir) |
164 | 165 |
else: |
165 | 166 |
shutil.copytree(source, destDir) |
166 | 167 |
|
167 |
- def getAdditionalBuildFiles(self, package, pkgBuildOptionFile): |
|
168 |
+ def getAdditionalBuildFiles(self, package): |
|
168 | 169 |
listAdditionalFiles = [] |
169 | 170 |
macros = [] |
170 |
- jsonData = open(pkgBuildOptionFile) |
|
171 |
- pkg_build_option_json = json.load(jsonData, object_pairs_hook=collections.OrderedDict) |
|
172 |
- jsonData.close() |
|
173 |
- pkgs_sorted = pkg_build_option_json.items() |
|
174 |
- for pkg in pkgs_sorted: |
|
175 |
- p = str(pkg[0].encode('utf-8')) |
|
176 |
- if p == package: |
|
177 |
- filelist = pkg[1]["files"] |
|
178 |
- for f in filelist: |
|
179 |
- listAdditionalFiles.append(f) |
|
180 |
- macrolist = pkg[1]["macros"] |
|
181 |
- for macro in macrolist: |
|
182 |
- macros.append(str(macro.encode('utf-8'))) |
|
171 |
+ if package in constants.buildOptions.keys(): |
|
172 |
+ pkg = constants.buildOptions[package] |
|
173 |
+ filelist = pkg["files"] |
|
174 |
+ for f in filelist: |
|
175 |
+ listAdditionalFiles.append(f) |
|
176 |
+ macrolist = pkg["macros"] |
|
177 |
+ for macro in macrolist: |
|
178 |
+ macros.append(macro) |
|
183 | 179 |
return listAdditionalFiles, macros |
184 | 180 |
|
185 |
- def buildRPMSForGivenPackage(self, package, chrootID, listBuildOptionPackages, |
|
186 |
- pkgBuildOptionFile, destLogPath=None): |
|
181 |
+ def buildRPMSForGivenPackage(self, package, chrootID, destLogPath=None): |
|
187 | 182 |
self.logger.info("Building rpm's for package:" + package) |
188 | 183 |
|
189 | 184 |
listSourcesFiles = SPECS.getData().getSources(package) |
... | ... |
@@ -201,11 +196,10 @@ class PackageUtils(object): |
201 | 201 |
# if os.geteuid()==0: |
202 | 202 |
self.copySourcesTobuildroot(listSourcesFiles, package, chrootSourcePath) |
203 | 203 |
self.copySourcesTobuildroot(listPatchFiles, package, chrootSourcePath) |
204 |
- |
|
205 | 204 |
macros = [] |
206 |
- if package in listBuildOptionPackages: |
|
207 |
- listAdditionalFiles, macros = self.getAdditionalBuildFiles(package, pkgBuildOptionFile) |
|
208 |
- self.copyAdditionalBuildFiles(listAdditionalFiles, chrootID) |
|
205 |
+ |
|
206 |
+ listAdditionalFiles, macros = self.getAdditionalBuildFiles(package) |
|
207 |
+ self.copyAdditionalBuildFiles(listAdditionalFiles, chrootID) |
|
209 | 208 |
|
210 | 209 |
#Adding rpm macros |
211 | 210 |
listRPMMacros = constants.userDefinedMacros |
... | ... |
@@ -411,18 +405,18 @@ class PackageUtils(object): |
411 | 411 |
# containerID.short_id) |
412 | 412 |
#self.logger.debug(listAdditionalFiles) |
413 | 413 |
for additionalFile in listAdditionalFiles: |
414 |
- source = additionalFile["src"].encode('utf-8') |
|
415 |
- destDir = additionalFile["dst"].encode('utf-8') |
|
414 |
+ source = additionalFile["src"] |
|
415 |
+ destDir = additionalFile["dst"] |
|
416 | 416 |
destPath = containerID.short_id + ":" + destDir |
417 | 417 |
#TODO: exit status of exec_run |
418 | 418 |
containerID.exec_run("mkdir -p " + destDir) |
419 | 419 |
if os.path.exists(source): |
420 | 420 |
copyCmd = "docker cp " + source |
421 | 421 |
if os.path.isfile(source): |
422 |
- self.logger.info("Copying addl source file: " + source) |
|
422 |
+ self.logger.info("Copying additional source file: " + source) |
|
423 | 423 |
copyCmd += " " + destPath |
424 | 424 |
else: |
425 |
- self.logger.info("Copying addl source file tree: " + source) |
|
425 |
+ self.logger.info("Copying additional source file tree: " + source) |
|
426 | 426 |
copyCmd += "/. " + destPath |
427 | 427 |
#TODO: cmd error code |
428 | 428 |
cmdUtils.runCommandInShell(copyCmd) |
... | ... |
@@ -555,8 +549,7 @@ class PackageUtils(object): |
555 | 555 |
self.logger.error("Failed while adjusting gcc specs") |
556 | 556 |
raise Exception("Failed while adjusting gcc specs") |
557 | 557 |
|
558 |
- def buildRPMSForGivenPackageInContainer(self, package, containerID, listBuildOptionPackages, |
|
559 |
- pkgBuildOptionFile, destLogPath=None): |
|
558 |
+ def buildRPMSForGivenPackageInContainer(self, package, containerID, destLogPath=None): |
|
560 | 559 |
self.logger.info("Building rpm's for package " + package + " in container " + |
561 | 560 |
containerID.short_id) |
562 | 561 |
|
... | ... |
@@ -585,9 +578,8 @@ class PackageUtils(object): |
585 | 585 |
self.copySourcesToContainer(listSourcesFiles, package, containerID, sourcePath) |
586 | 586 |
#TODO: mount it in, don't copy |
587 | 587 |
self.copySourcesToContainer(listPatchFiles, package, containerID, sourcePath) |
588 |
- if package in listBuildOptionPackages: |
|
589 |
- listAdditionalFiles, macros = self.getAdditionalBuildFiles(package, pkgBuildOptionFile) |
|
590 |
- self.copyAdditionalBuildFilesToContainer(listAdditionalFiles, containerID) |
|
588 |
+ listAdditionalFiles, macros = self.getAdditionalBuildFiles(package) |
|
589 |
+ self.copyAdditionalBuildFilesToContainer(listAdditionalFiles, containerID) |
|
591 | 590 |
|
592 | 591 |
# Add rpm macros |
593 | 592 |
listRPMMacros = constants.userDefinedMacros |
... | ... |
@@ -7,8 +7,6 @@ class ThreadPool(object): |
7 | 7 |
inactiveWorkerThreads = [] |
8 | 8 |
mapPackageToCycle = {} |
9 | 9 |
listAvailableCyclicPackages = [] |
10 |
- listBuildOptionPackages = [] |
|
11 |
- pkgBuildOptionFile = "" |
|
12 | 10 |
pkgBuildType = "chroot" |
13 | 11 |
logger = None |
14 | 12 |
statusEvent = None |
... | ... |
@@ -36,8 +34,6 @@ class ThreadPool(object): |
36 | 36 |
ThreadPool.mapPackageToCycle, |
37 | 37 |
ThreadPool.listAvailableCyclicPackages, |
38 | 38 |
ThreadPool.logger, |
39 |
- ThreadPool.listBuildOptionPackages, |
|
40 |
- ThreadPool.pkgBuildOptionFile, |
|
41 | 39 |
ThreadPool.pkgBuildType) |
42 | 40 |
ThreadPool.mapWorkerThreads[workerThreadName] = workerThread |
43 | 41 |
|
... | ... |
@@ -74,7 +74,7 @@ class ToolChainUtils(object): |
74 | 74 |
"Unable to determine the rpm file for package:" + package) |
75 | 75 |
return None |
76 | 76 |
|
77 |
- def buildCoreToolChainPackages(self, listBuildOptionPackages, pkgBuildOptionFile): |
|
77 |
+ def buildCoreToolChainPackages(self): |
|
78 | 78 |
self.logger.info("Building core toolchain packages.....") |
79 | 79 |
chrootID = None |
80 | 80 |
pkgCount = 0 |
... | ... |
@@ -97,8 +97,7 @@ class ToolChainUtils(object): |
97 | 97 |
raise Exception("creating chroot failed") |
98 | 98 |
self.installToolChainRPMS(chrootID, package, destLogPath) |
99 | 99 |
pkgUtils.adjustGCCSpecs(package, chrootID, destLogPath) |
100 |
- pkgUtils.buildRPMSForGivenPackage(package, chrootID, listBuildOptionPackages, |
|
101 |
- pkgBuildOptionFile, destLogPath) |
|
100 |
+ pkgUtils.buildRPMSForGivenPackage(package, chrootID, destLogPath) |
|
102 | 101 |
pkgCount += 1 |
103 | 102 |
chrUtils.destroyChroot(chrootID) |
104 | 103 |
chrootID = None |
... | ... |
@@ -7,15 +7,13 @@ import ThreadPool |
7 | 7 |
class WorkerThread(threading.Thread): |
8 | 8 |
|
9 | 9 |
def __init__(self, event, name, mapPackageToCycle, listAvailableCyclicPackages, logger, |
10 |
- listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType): |
|
10 |
+ pkgBuildType): |
|
11 | 11 |
threading.Thread.__init__(self) |
12 | 12 |
self.statusEvent = event |
13 | 13 |
self.name = name |
14 | 14 |
self.mapPackageToCycle = mapPackageToCycle |
15 | 15 |
self.listAvailableCyclicPackages = listAvailableCyclicPackages |
16 | 16 |
self.logger = logger |
17 |
- self.listBuildOptionPackages = listBuildOptionPackages |
|
18 |
- self.pkgBuildOptionFile = pkgBuildOptionFile |
|
19 | 17 |
self.pkgBuildType = pkgBuildType |
20 | 18 |
|
21 | 19 |
def run(self): |
... | ... |
@@ -31,14 +29,10 @@ class WorkerThread(threading.Thread): |
31 | 31 |
if self.pkgBuildType == "chroot": |
32 | 32 |
pkgBuilder = PackageBuilderChroot(self.mapPackageToCycle, |
33 | 33 |
self.listAvailableCyclicPackages, |
34 |
- self.listBuildOptionPackages, |
|
35 |
- self.pkgBuildOptionFile, |
|
36 | 34 |
self.pkgBuildType) |
37 | 35 |
elif self.pkgBuildType == "container": |
38 | 36 |
pkgBuilder = PackageBuilderContainer(self.mapPackageToCycle, |
39 | 37 |
self.listAvailableCyclicPackages, |
40 |
- self.listBuildOptionPackages, |
|
41 |
- self.pkgBuildOptionFile, |
|
42 | 38 |
self.pkgBuildType) |
43 | 39 |
pkgBuilder.buildPackageFunction(pkg, outputMap, pkg) |
44 | 40 |
if pkg not in outputMap or outputMap[pkg] == False: |
... | ... |
@@ -123,7 +123,7 @@ def main(): |
123 | 123 |
cmdUtils.runCommandInShell("mkdir -p "+options.sourceRpmPath) |
124 | 124 |
|
125 | 125 |
if not os.path.isdir(options.buildRootPath): |
126 |
- cmdUtils.runCommandInShell("mkdir -p "+options.buildRootPath) |
|
126 |
+ cmdUtils.runCommandInShell("mkdir -p " + options.buildRootPath) |
|
127 | 127 |
|
128 | 128 |
logger.info("Source Path :"+options.sourcePath) |
129 | 129 |
logger.info("Spec Path :" + options.specPath) |
... | ... |
@@ -134,9 +134,9 @@ def main(): |
134 | 134 |
logger.info("Publish X RPMS Path :" + options.publishXRPMSPath) |
135 | 135 |
|
136 | 136 |
if options.installPackage: |
137 |
- logger.info("Package to build:"+package) |
|
137 |
+ logger.info("Package to build:" + package) |
|
138 | 138 |
|
139 |
- listBuildOptionPackages = get_packages_with_build_options(options.pkgBuildOptionFile) |
|
139 |
+ get_packages_with_build_options(options.pkgBuildOptionFile) |
|
140 | 140 |
|
141 | 141 |
try: |
142 | 142 |
|
... | ... |
@@ -170,11 +170,9 @@ def main(): |
170 | 170 |
pkgManager = PackageManager() |
171 | 171 |
pkgManager.buildToolChainPackages(options.buildThreads) |
172 | 172 |
elif options.installPackage: |
173 |
- buildAPackage(package, listBuildOptionPackages, options.pkgBuildOptionFile, |
|
174 |
- options.buildThreads, options.pkgBuildType) |
|
173 |
+ buildAPackage(package, options.buildThreads, options.pkgBuildType) |
|
175 | 174 |
else: |
176 |
- buildPackagesForAllSpecs(listBuildOptionPackages, options.pkgBuildOptionFile, |
|
177 |
- logger, options.buildThreads, pkgInfoJsonFile, |
|
175 |
+ buildPackagesForAllSpecs(logger, options.buildThreads, pkgInfoJsonFile, |
|
178 | 176 |
options.pkgBuildType) |
179 | 177 |
except Exception as e: |
180 | 178 |
logger.error("Caught an exception") |
... | ... |
@@ -185,18 +183,15 @@ def main(): |
185 | 185 |
sys.exit(0) |
186 | 186 |
|
187 | 187 |
|
188 |
-def buildAPackage(package, listBuildOptionPackages, pkgBuildOptionFile, |
|
189 |
- buildThreads, pkgBuildType): |
|
188 |
+def buildAPackage(package, buildThreads, pkgBuildType): |
|
190 | 189 |
listPackages = [package] |
191 | 190 |
pkgManager = PackageManager(pkgBuildType=pkgBuildType) |
192 | 191 |
if constants.rpmCheck: |
193 | 192 |
constants.setTestForceRPMS(listPackages[:]) |
194 |
- pkgManager.buildPackages(listPackages, listBuildOptionPackages, pkgBuildOptionFile, |
|
195 |
- buildThreads, pkgBuildType) |
|
193 |
+ pkgManager.buildPackages(listPackages, buildThreads, pkgBuildType) |
|
196 | 194 |
|
197 | 195 |
|
198 |
-def buildPackagesForAllSpecs(listBuildOptionPackages, pkgBuildOptionFile, logger, |
|
199 |
- buildThreads, pkgInfoJsonFile, pkgBuildType): |
|
196 |
+def buildPackagesForAllSpecs(logger, buildThreads, pkgInfoJsonFile, pkgBuildType): |
|
200 | 197 |
listPackages = SPECS.getData().getListPackages() |
201 | 198 |
|
202 | 199 |
logger.info("List of packages to build:") |
... | ... |
@@ -204,29 +199,20 @@ def buildPackagesForAllSpecs(listBuildOptionPackages, pkgBuildOptionFile, logger |
204 | 204 |
if constants.rpmCheck: |
205 | 205 |
constants.setTestForceRPMS(listPackages[:]) |
206 | 206 |
pkgManager = PackageManager(pkgBuildType=pkgBuildType) |
207 |
- pkgManager.buildPackages(listPackages, listBuildOptionPackages, pkgBuildOptionFile, |
|
208 |
- buildThreads, pkgBuildType) |
|
207 |
+ pkgManager.buildPackages(listPackages, buildThreads, pkgBuildType) |
|
209 | 208 |
|
210 | 209 |
# Generating package info file which is required by installer |
211 |
- logger.info("Writing Package info to the file:"+pkgInfoJsonFile) |
|
210 |
+ logger.info("Writing Package info to the file:" + pkgInfoJsonFile) |
|
212 | 211 |
pkgInfo = PackageInfo() |
213 | 212 |
pkgInfo.loadPackagesData() |
214 | 213 |
pkgInfo.writePkgListToFile(pkgInfoJsonFile) |
215 | 214 |
|
216 | 215 |
|
217 | 216 |
def get_packages_with_build_options(pkg_build_options_file): |
218 |
- packages = [] |
|
219 | 217 |
if os.path.exists(pkg_build_options_file): |
220 |
- jsonData = open(pkg_build_options_file) |
|
221 |
- pkg_build_option_json = json.load(jsonData, object_pairs_hook=collections.OrderedDict) |
|
222 |
- jsonData.close() |
|
223 |
- pkgs_sorted = pkg_build_option_json.items() |
|
224 |
- for pkg in pkgs_sorted: |
|
225 |
- p = pkg[0].encode('utf-8') |
|
226 |
- packages.append(str(p)) |
|
227 |
- |
|
228 |
- return packages |
|
229 |
- |
|
218 |
+ with open(pkg_build_options_file) as jsonData: |
|
219 |
+ pkg_build_option_json = json.load(jsonData, object_pairs_hook=collections.OrderedDict) |
|
220 |
+ constants.setBuidOptions(pkg_build_option_json) |
|
230 | 221 |
|
231 | 222 |
def get_all_package_names(build_install_option): |
232 | 223 |
base_path = os.path.dirname(build_install_option) |
... | ... |
@@ -24,6 +24,7 @@ class constants(object): |
24 | 24 |
katBuild = None |
25 | 25 |
testForceRPMS = [] |
26 | 26 |
tmpDirPath = "/dev/shm" |
27 |
+ buildOptions = {} |
|
27 | 28 |
|
28 | 29 |
noDepsPackageList = [ |
29 | 30 |
"texinfo", |
... | ... |
@@ -532,3 +533,7 @@ class constants(object): |
532 | 532 |
@staticmethod |
533 | 533 |
def addMacro(macroName, macroValue): |
534 | 534 |
constants.userDefinedMacros[macroName] = macroValue |
535 |
+ |
|
536 |
+ @staticmethod |
|
537 |
+ def setBuidOptions(options): |
|
538 |
+ constants.buildOptions = options |