Users can control building of debuginfo & source rpms in build
environment with this change.
There are two ways to control the behavior:
1. By modifying following build parameters in build-config.json
"build-src-rpm" : <boolean>,
"build-dbginfo-rpm" : <boolean>,
If false, rpms won't be built and vice-versa.
2. Using environment variables:
BUILD_SRC_RPM=<1/0>
BUILD_DBGINFO_RPM=<1/0>
Either we can export these parameters or pass them as command line
argument to make command.
Change-Id: I9f1c493333fc4c22837b1b29e1cb203b13a01801
Signed-off-by: Shreenidhi Shedi <sshedi@vmware.com>
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/17204
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
| ... | ... |
@@ -12,8 +12,11 @@ |
| 12 | 12 |
"ph-docker-img-url" : "https://github.com/vmware/photon-docker-image/raw/ARCH/4.0-20220715/docker/photon-rootfs-4.0-fe8804ac9.tar.gz", |
| 13 | 13 |
"ph-builder-tag" : "photon_builder:4.0", |
| 14 | 14 |
|
| 15 |
- "target": "iso", |
|
| 16 |
- "compression-macro": "w19.zstdio" |
|
| 15 |
+ "build-src-rpm" : true, |
|
| 16 |
+ "build-dbginfo-rpm" : true, |
|
| 17 |
+ |
|
| 18 |
+ "target" : "iso", |
|
| 19 |
+ "compression-macro" : "w19.zstdio" |
|
| 17 | 20 |
}, |
| 18 | 21 |
"photon-path" : "", |
| 19 | 22 |
"stage-path" : "" , |
| ... | ... |
@@ -1086,10 +1086,15 @@ def initialize_constants(): |
| 1086 | 1086 |
Build_Config.setCommonDir(PurePath(photonDir, "common", "data")) |
| 1087 | 1087 |
constants.setStartSchedulerServer(configdict["photon-build-param"]['start-scheduler-server']) |
| 1088 | 1088 |
constants.setCompressionMacro(configdict["photon-build-param"]["compression-macro"]) |
| 1089 |
+ |
|
| 1089 | 1090 |
constants.phBuilderTag = configdict["photon-build-param"]["ph-builder-tag"] |
| 1091 |
+ |
|
| 1092 |
+ constants.buildSrcRpm = int(configdict["photon-build-param"]["build-src-rpm"]) |
|
| 1093 |
+ constants.buildDbgInfoRpm = int(configdict["photon-build-param"]["build-dbginfo-rpm"]) |
|
| 1094 |
+ |
|
| 1090 | 1095 |
constants.initialize() |
| 1091 | 1096 |
|
| 1092 |
- check_prerequesite["initialize-constants"]=True |
|
| 1097 |
+ check_prerequesite["initialize-constants"] = True |
|
| 1093 | 1098 |
|
| 1094 | 1099 |
|
| 1095 | 1100 |
def set_default_value_of_config(): |
| ... | ... |
@@ -1219,6 +1224,12 @@ def main(): |
| 1219 | 1219 |
if "PH_DOCKER_IMAGE_URL" in os.environ: |
| 1220 | 1220 |
configdict["photon-build-param"]["ph-docker-image-url"] = os.environ["PH_DOCKER_IMAGE_URL"] |
| 1221 | 1221 |
|
| 1222 |
+ if "BUILD_SRC_RPM" in os.environ: |
|
| 1223 |
+ configdict["photon-build-param"]["build-src-rpm"] = int(os.environ["BUILD_SRC_RPM"]) |
|
| 1224 |
+ |
|
| 1225 |
+ if "BUILD_DBGINFO_RPM" in os.environ: |
|
| 1226 |
+ configdict["photon-build-param"]["build-dbginfo-rpm"] = int(os.environ["BUILD_DBGINFO_RPM"]) |
|
| 1227 |
+ |
|
| 1222 | 1228 |
initialize_constants() |
| 1223 | 1229 |
|
| 1224 | 1230 |
configdict["packageName"]=None |
| ... | ... |
@@ -25,7 +25,16 @@ class PackageUtils(object): |
| 25 | 25 |
self.nodepsRPMPackageOptions = "--nodeps" |
| 26 | 26 |
|
| 27 | 27 |
self.rpmbuildBinary = "rpmbuild" |
| 28 |
- self.rpmbuildBuildallOption = "-ba --clean" |
|
| 28 |
+ self.rpmbuildBuildallOption = "--clean" |
|
| 29 |
+ |
|
| 30 |
+ if constants.buildSrcRpm: |
|
| 31 |
+ self.rpmbuildBuildallOption = f"-ba {self.rpmbuildBuildallOption}"
|
|
| 32 |
+ else: |
|
| 33 |
+ self.rpmbuildBuildallOption = f"-bb {self.rpmbuildBuildallOption}"
|
|
| 34 |
+ |
|
| 35 |
+ if not constants.buildDbgInfoRpm: |
|
| 36 |
+ self.rpmbuildBuildallOption = "-D \"debug_package %{nil}\" " + f"{self.rpmbuildBuildallOption}"
|
|
| 37 |
+ |
|
| 29 | 38 |
self.rpmbuildNocheckOption = "--nocheck" |
| 30 | 39 |
self.rpmbuildCheckOption = "-bi --clean" |
| 31 | 40 |
self.queryRpmPackageOptions = "-qa" |
| ... | ... |
@@ -143,7 +152,7 @@ class PackageUtils(object): |
| 143 | 143 |
if self.CheckForDbgSymbols(RpmsToCheck): |
| 144 | 144 |
raise Exception("Rpm sanity check error")
|
| 145 | 145 |
|
| 146 |
- logmsg = package + " build done - RPMs : [ " + logmsg + " ]\n" |
|
| 146 |
+ logmsg = package + " build done - RPMs : [ " + logmsg + "]\n" |
|
| 147 | 147 |
self.logger.info(logmsg) |
| 148 | 148 |
except Exception as e: |
| 149 | 149 |
self.logger.error("Failed while building rpm:" + package)
|