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 |