Browse code

build.py: add option to control building of debuginfo & src rpms

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>

Shreenidhi Shedi authored on 2022/08/11 03:25:34
Showing 4 changed files
... ...
@@ -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)
... ...
@@ -40,6 +40,8 @@ class constants(object):
40 40
     currentArch = buildArch
41 41
     hostRpmIsNotUsable = -1
42 42
     phBuilderTag = ""
43
+    buildSrcRpm = 0
44
+    buildDbgInfoRpm = 0
43 45
 
44 46
     noDepsPackageList = [
45 47
         "texinfo",