Change-Id: Id21c030ed8ee6fe677115679f12e5aedaca4912f
Reviewed-on: http://photon-jenkins.eng.vmware.com/560
Tested-by: jenkins-photon <wangnan2015@hotmail.com>
Reviewed-by: suezzelur <anishs@vmware.com>
| ... | ... |
@@ -56,7 +56,7 @@ clean-install clean-chroot build-updated-packages |
| 56 | 56 |
|
| 57 | 57 |
THREADS?=1 |
| 58 | 58 |
|
| 59 |
-all: iso minimal-iso docker-image ostree-host-iso live-iso cloud-image-all |
|
| 59 |
+all: iso minimal-iso docker-image ostree-host-iso live-iso cloud-image-all src-iso |
|
| 60 | 60 |
|
| 61 | 61 |
micro: micro-iso |
| 62 | 62 |
@: |
| ... | ... |
@@ -164,12 +164,30 @@ iso: check $(PHOTON_STAGE) $(PHOTON_PACKAGES) ostree-repo |
| 164 | 164 |
-w $(PHOTON_STAGE)/photon_iso \ |
| 165 | 165 |
-l $(PHOTON_STAGE)/LOGS \ |
| 166 | 166 |
-r $(PHOTON_STAGE)/RPMS \ |
| 167 |
+ -x $(PHOTON_STAGE)/SRPMS \ |
|
| 167 | 168 |
-p $(PHOTON_GENERATED_DATA_DIR)/$(FULL_PACKAGE_LIST_FILE) \ |
| 168 | 169 |
-o $(PHOTON_STAGE)/common/data \ |
| 169 | 170 |
-s $(PHOTON_DATA_DIR) \ |
| 170 | 171 |
-f > \ |
| 171 | 172 |
$(PHOTON_LOGS_DIR)/installer.log 2>&1 |
| 172 | 173 |
|
| 174 |
+src-iso: check $(PHOTON_STAGE) $(PHOTON_PACKAGES) |
|
| 175 |
+ @echo "Building Photon Full Source ISO..." |
|
| 176 |
+ @cd $(PHOTON_INSTALLER_DIR) && \ |
|
| 177 |
+ sudo $(PHOTON_INSTALLER) \ |
|
| 178 |
+ -j $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).src.iso \ |
|
| 179 |
+ -w $(PHOTON_STAGE)/photon_iso \ |
|
| 180 |
+ -l $(PHOTON_STAGE)/LOGS \ |
|
| 181 |
+ -r $(PHOTON_STAGE)/RPMS \ |
|
| 182 |
+ -x $(PHOTON_STAGE)/SRPMS \ |
|
| 183 |
+ -p $(PHOTON_GENERATED_DATA_DIR)/$(FULL_PACKAGE_LIST_FILE) \ |
|
| 184 |
+ -o $(PHOTON_STAGE)/common/data \ |
|
| 185 |
+ -s $(PHOTON_DATA_DIR) \ |
|
| 186 |
+ -u $(PHOTON_DATA_DIR)/pkg_info.json\ |
|
| 187 |
+ -z $(PHOTON_STAGE)/pkg_info.txt\ |
|
| 188 |
+ -f > \ |
|
| 189 |
+ $(PHOTON_LOGS_DIR)/sourceiso-installer.log 2>&1 |
|
| 190 |
+ |
|
| 173 | 191 |
pkgtree: |
| 174 | 192 |
@cd $(PHOTON_SPECDEPS_DIR) && \ |
| 175 | 193 |
$(PHOTON_SPECDEPS) -s $(PHOTON_SPECS_DIR) -i pkg -p $(pkg) |
| ... | ... |
@@ -198,6 +216,7 @@ packages: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTA |
| 198 | 198 |
-d $(PHOTON_DIST_TAG) \ |
| 199 | 199 |
-n $(PHOTON_BUILD_NUMBER) \ |
| 200 | 200 |
-v $(PHOTON_RELEASE_VERSION) \ |
| 201 |
+ -w $(PHOTON_DATA_DIR)/pkg_info.json\ |
|
| 201 | 202 |
$(PHOTON_RPMCHECK_OPTION) \ |
| 202 | 203 |
-t ${THREADS}
|
| 203 | 204 |
|
| 204 | 205 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,45 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+################################################# |
|
| 2 |
+# Title: mk-src-iso # |
|
| 3 |
+# Date: 2016-02-19 # |
|
| 4 |
+# Version: 1.0 # |
|
| 5 |
+# Author: dthaluru@vmware.com # |
|
| 6 |
+# Options: # |
|
| 7 |
+################################################# |
|
| 8 |
+# Overview |
|
| 9 |
+# Generates a photon source iso |
|
| 10 |
+# End |
|
| 11 |
+# |
|
| 12 |
+ |
|
| 13 |
+set +x # disable hashall |
|
| 14 |
+PRGNAME=${0##*/} # script name minus the path
|
|
| 15 |
+source config.inc # configuration parameters |
|
| 16 |
+source function.inc # commonn functions |
|
| 17 |
+LOGFILE=/var/log/"${PRGNAME}-${LOGFILE}" # set log file name
|
|
| 18 |
+ |
|
| 19 |
+ |
|
| 20 |
+# Grab the name of the iso file |
|
| 21 |
+if [ $# -lt 2 ] |
|
| 22 |
+then |
|
| 23 |
+ echo "Usage : " $0 " <output-iso-with-path> <srpms-path> <pkg-list-path>" |
|
| 24 |
+ exit 1 |
|
| 25 |
+fi |
|
| 26 |
+ISO_OUTPUT_NAME=$1 |
|
| 27 |
+SRPMS_PATH=$2 |
|
| 28 |
+SRPM_LIST=$3 |
|
| 29 |
+ |
|
| 30 |
+WORKINGDIR=${BUILDROOT}
|
|
| 31 |
+rm -r ${WORKINGDIR}/*
|
|
| 32 |
+( |
|
| 33 |
+cd ${SRPMS_PATH}
|
|
| 34 |
+mkdir ${WORKINGDIR}/SRPMS
|
|
| 35 |
+for srpm_name in $SRPM_LIST; do |
|
| 36 |
+ FILENAME="`find . -name "$srpm_name-[0-9]*" -type f`" |
|
| 37 |
+ if [ -n "$FILENAME" ]; then |
|
| 38 |
+ cp --parent $FILENAME ${WORKINGDIR}/SRPMS/;
|
|
| 39 |
+ fi |
|
| 40 |
+done |
|
| 41 |
+) |
|
| 42 |
+ |
|
| 43 |
+mkisofs -r -o $ISO_OUTPUT_NAME $WORKINGDIR/ |
|
| 44 |
+ |
| ... | ... |
@@ -14,6 +14,7 @@ import sys |
| 14 | 14 |
import os |
| 15 | 15 |
from jsonwrapper import JsonWrapper |
| 16 | 16 |
from packageselector import PackageSelector |
| 17 |
+import json |
|
| 17 | 18 |
|
| 18 | 19 |
def query_yes_no(question, default="no"): |
| 19 | 20 |
valid = {"yes": True, "y": True, "ye": True,
|
| ... | ... |
@@ -120,23 +121,43 @@ def get_live_cd_status_string(build_install_option): |
| 120 | 120 |
return "true" |
| 121 | 121 |
return "false" |
| 122 | 122 |
|
| 123 |
+def generate_pkginfo_text_file(list_rpms, pkg_info_json_file_path, pkg_info_text_file_path): |
|
| 124 |
+ if not os.path.isfile(pkg_info_json_file_path): |
|
| 125 |
+ return |
|
| 126 |
+ pkg_info_json_file = open(pkg_info_json_file_path,'r') |
|
| 127 |
+ data = json.load(pkg_info_json_file) |
|
| 128 |
+ pkg_info_json_file.close() |
|
| 129 |
+ list_lines = [] |
|
| 130 |
+ list_lines.append("#%{name},%{version},%{release},%{arch},%{sourcerpm}\n")
|
|
| 131 |
+ for rpm in list_rpms: |
|
| 132 |
+ if data.has_key(rpm): |
|
| 133 |
+ list_lines.append(data[rpm]["name"]+","+data[rpm]["version"]+","+data[rpm]["release"]+","+data[rpm]["arch"]+","+data[rpm]["sourcerpm"]+"\n") |
|
| 134 |
+ pkg_info_text_file = open(pkg_info_text_file_path,'w') |
|
| 135 |
+ pkg_info_text_file.writelines(list_lines) |
|
| 136 |
+ pkg_info_text_file.close() |
|
| 137 |
+ |
|
| 123 | 138 |
if __name__ == '__main__': |
| 124 | 139 |
usage = "Usage: %prog [options] <config file> <tools path>" |
| 125 | 140 |
parser = OptionParser(usage) |
| 126 | 141 |
|
| 127 | 142 |
parser.add_option("-i", "--iso-path", dest="iso_path")
|
| 143 |
+ parser.add_option("-j", "--src-iso-path", dest="src_iso_path")
|
|
| 128 | 144 |
parser.add_option("-v", "--vmdk-path", dest="vmdk_path")
|
| 129 | 145 |
parser.add_option("-w", "--working-directory", dest="working_directory", default="/mnt/photon-root")
|
| 130 | 146 |
parser.add_option("-l", "--log-path", dest="log_path", default="../stage/LOGS")
|
| 131 | 147 |
parser.add_option("-r", "--rpm-path", dest="rpm_path", default="../stage/RPMS")
|
| 148 |
+ parser.add_option("-x", "--srpm-path", dest="srpm_path", default="../stage/SRPMS")
|
|
| 132 | 149 |
parser.add_option("-o", "--output-data-path", dest="output_data_path", default="../stage/common/data/")
|
| 133 | 150 |
parser.add_option("-f", "--force", action="store_true", dest="force", default=False)
|
| 134 | 151 |
parser.add_option("-p", "--package-list-file", dest="package_list_file", default="../common/data/build_install_options_all.json")
|
| 135 | 152 |
parser.add_option("-m", "--stage-path", dest="stage_path", default="../stage")
|
| 136 | 153 |
parser.add_option("-c", "--dracut-configuration", dest="dracut_configuration_file", default="../common/data/dracut_configuration.json")
|
| 137 | 154 |
parser.add_option("-s", "--json-data-path", dest="json_data_path", default="../stage/common/data/")
|
| 155 |
+ parser.add_option("-u", "--pkginfo-json-file", dest="pkginfo_json_file", default="../common/data/pkg_info.json")
|
|
| 156 |
+ parser.add_option("-z", "--pkginfo-txt-file", dest="pkginfo_txt_file", default="../stage/pkg_info.txt")
|
|
| 157 |
+ |
|
| 138 | 158 |
(options, args) = parser.parse_args() |
| 139 |
- if options.iso_path: |
|
| 159 |
+ if options.iso_path or options.src_iso_path: |
|
| 140 | 160 |
# Check the arguments |
| 141 | 161 |
if (len(args)) != 0: |
| 142 | 162 |
parser.error("Incorrect arguments")
|
| ... | ... |
@@ -198,7 +219,7 @@ if __name__ == '__main__': |
| 198 | 198 |
|
| 199 | 199 |
config['packages'] = packages |
| 200 | 200 |
|
| 201 |
- if config['iso_system'] == True: |
|
| 201 |
+ if options.iso_path: |
|
| 202 | 202 |
if os.path.isfile(options.dracut_configuration_file): |
| 203 | 203 |
json_wrapper_package_list = JsonWrapper(options.dracut_configuration_file) |
| 204 | 204 |
dracut_configuration_list_json = json_wrapper_package_list.read() |
| ... | ... |
@@ -227,19 +248,27 @@ if __name__ == '__main__': |
| 227 | 227 |
package_installer.install(None) |
| 228 | 228 |
|
| 229 | 229 |
# Making the iso if needed |
| 230 |
- if config['iso_system']: |
|
| 230 |
+ if options.iso_path: |
|
| 231 | 231 |
rpm_list = " ".join(create_rpm_list_to_copy_in_iso(options.package_list_file, options.output_data_path)) |
| 232 | 232 |
files_to_copy = " ".join(create_additional_file_list_to_copy_in_iso(os.path.abspath(options.stage_path), options.package_list_file)) |
| 233 | 233 |
live_cd = get_live_cd_status_string(options.package_list_file) |
| 234 | 234 |
process = subprocess.Popen(['./mk-install-iso.sh', '-w', options.working_directory, options.iso_path, options.rpm_path, options.package_list_file, rpm_list, options.stage_path, files_to_copy, live_cd, options.json_data_path]) |
| 235 | 235 |
retval = process.wait() |
| 236 | 236 |
|
| 237 |
+ if options.src_iso_path: |
|
| 238 |
+ rpm_list = " ".join(create_rpm_list_to_copy_in_iso(options.package_list_file, options.output_data_path)) |
|
| 239 |
+ process = subprocess.Popen(['./mk-src-iso.sh', '-w', options.working_directory, options.src_iso_path, options.srpm_path, rpm_list]) |
|
| 240 |
+ retval = process.wait() |
|
| 241 |
+ list_rpms = rpm_list.split(" ")
|
|
| 242 |
+ list_rpms = list(set(list_rpms)) |
|
| 243 |
+ generate_pkginfo_text_file(list_rpms, options.pkginfo_json_file, options.pkginfo_txt_file) |
|
| 244 |
+ |
|
| 237 | 245 |
# Cleaning up for vmdk |
| 238 | 246 |
if 'vmdk_install' in config and config['vmdk_install']: |
| 239 | 247 |
process = subprocess.Popen(['./mk-clean-vmdk.sh', config['disk']['disk']]) |
| 240 | 248 |
process.wait() |
| 241 | 249 |
|
| 242 | 250 |
#Clean up the working directories |
| 243 |
- if (options.iso_path or options.vmdk_path): |
|
| 251 |
+ if (options.iso_path or options.vmdk_path or options.src_iso_path): |
|
| 244 | 252 |
process = subprocess.Popen(['rm', '-rf', options.working_directory]) |
| 245 | 253 |
retval = process.wait() |
| 246 | 254 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,44 @@ |
| 0 |
+import json |
|
| 1 |
+from Logger import Logger |
|
| 2 |
+from constants import constants |
|
| 3 |
+import os.path |
|
| 4 |
+from CommandUtils import CommandUtils |
|
| 5 |
+ |
|
| 6 |
+class SourcePackageInfo(object): |
|
| 7 |
+ sourcePkgList = {}
|
|
| 8 |
+ logger = None |
|
| 9 |
+ |
|
| 10 |
+ |
|
| 11 |
+ @staticmethod |
|
| 12 |
+ def setLogging(logName=None,logPath=None): |
|
| 13 |
+ if logName is None: |
|
| 14 |
+ logName = "SourcePackageInfo" |
|
| 15 |
+ if logPath is None: |
|
| 16 |
+ logPath = constants.logPath |
|
| 17 |
+ SourcePackageInfo.logger=Logger.getLogger(logName,logPath) |
|
| 18 |
+ |
|
| 19 |
+ @staticmethod |
|
| 20 |
+ def loadPkgInfoFromFile(filePath): |
|
| 21 |
+ SourcePackageInfo.logger.info("Loading source package list from the json file")
|
|
| 22 |
+ if not os.path.isfile(filePath): |
|
| 23 |
+ return |
|
| 24 |
+ pkgInfoFile = open(filePath,'r') |
|
| 25 |
+ SourcePackageInfo.sourcePkgList = json.load(pkgInfoFile) |
|
| 26 |
+ pkgInfoFile.close() |
|
| 27 |
+ |
|
| 28 |
+ @staticmethod |
|
| 29 |
+ def addSRPMData(packageName,version,release,arch,srpmFile): |
|
| 30 |
+ listPkgAttributes={"name":packageName,"version":version,"release":release,"arch":arch,"sourcerpm":srpmFile}
|
|
| 31 |
+ SourcePackageInfo.sourcePkgList[packageName]=listPkgAttributes |
|
| 32 |
+ SourcePackageInfo.logger.info("Added source package to the list:"+packageName)
|
|
| 33 |
+ |
|
| 34 |
+ @staticmethod |
|
| 35 |
+ def writePkgListToFile(fileName): |
|
| 36 |
+ SourcePackageInfo.logger.info("Writing source package list to the json file")
|
|
| 37 |
+ cmdUtils=CommandUtils() |
|
| 38 |
+ dirPath=os.path.basename(fileName) |
|
| 39 |
+ if not os.path.isdir(dirPath): |
|
| 40 |
+ cmdUtils.runCommandInShell("mkdir -p "+dirPath)
|
|
| 41 |
+ pkgInfoFile = open(fileName,'w+') |
|
| 42 |
+ json.dump(SourcePackageInfo.sourcePkgList, pkgInfoFile,indent=4) |
|
| 43 |
+ pkgInfoFile.close() |
| ... | ... |
@@ -6,6 +6,7 @@ from constants import constants |
| 6 | 6 |
import re |
| 7 | 7 |
from time import sleep |
| 8 | 8 |
import PullSources |
| 9 |
+from PackageInfo import SourcePackageInfo |
|
| 9 | 10 |
|
| 10 | 11 |
class PackageUtils(object): |
| 11 | 12 |
|
| ... | ... |
@@ -36,12 +37,16 @@ class PackageUtils(object): |
| 36 | 36 |
self.noDepsRPMFilesToInstallInAOneShot="" |
| 37 | 37 |
self.noDepsPackagesToInstallInAOneShot="" |
| 38 | 38 |
|
| 39 |
- def getRPMDestDir(self,rpmName,rpmDir): |
|
| 39 |
+ def getRPMArch(self,rpmName): |
|
| 40 | 40 |
arch="" |
| 41 | 41 |
if rpmName.find("x86_64") != -1:
|
| 42 |
- arch='x86_64' |
|
| 42 |
+ arch="x86_64" |
|
| 43 | 43 |
elif rpmName.find("noarch") != -1:
|
| 44 | 44 |
arch="noarch" |
| 45 |
+ return arch |
|
| 46 |
+ |
|
| 47 |
+ def getRPMDestDir(self,rpmName,rpmDir): |
|
| 48 |
+ arch = self.getRPMArch(rpmName) |
|
| 45 | 49 |
rpmDestDir=rpmDir+"/"+arch |
| 46 | 50 |
return rpmDestDir |
| 47 | 51 |
|
| ... | ... |
@@ -158,13 +163,19 @@ class PackageUtils(object): |
| 158 | 158 |
finally: |
| 159 | 159 |
if destLogPath is not None: |
| 160 | 160 |
shutil.copy2(chrootLogsFilePath, destLogPath) |
| 161 |
- |
|
| 161 |
+ self.logger.info("RPM build is successful")
|
|
| 162 |
+ arch = self.getRPMArch(listRPMFiles[0]) |
|
| 163 |
+ |
|
| 162 | 164 |
for rpmFile in listRPMFiles: |
| 163 | 165 |
self.copyRPM(chrootID+"/"+rpmFile, constants.rpmPath) |
| 164 |
- |
|
| 166 |
+ |
|
| 165 | 167 |
for srpmFile in listSRPMFiles: |
| 166 | 168 |
self.copyRPM(chrootID+"/"+srpmFile, constants.sourceRpmPath) |
| 169 |
+ srpmName = os.path.basename(srpmFile) |
|
| 170 |
+ package,version,release = self.findPackageInfoFromSourceRPMFile(srpmFile) |
|
| 171 |
+ SourcePackageInfo.addSRPMData(package,version,release,arch,srpmName) |
|
| 167 | 172 |
|
| 173 |
+ |
|
| 168 | 174 |
def buildRPM(self,specFile,logFile,chrootCmd): |
| 169 | 175 |
|
| 170 | 176 |
rpmBuildcmd= self.rpmbuildBinary+" "+self.rpmbuildBuildallOption+" "+self.rpmbuildDistOption |
| ... | ... |
@@ -242,7 +253,23 @@ class PackageUtils(object): |
| 242 | 242 |
version=rpmfile[versionindex+1:releaseindex] |
| 243 | 243 |
release=rpmfile[releaseindex+1:] |
| 244 | 244 |
return packageName,version,release |
| 245 |
- |
|
| 245 |
+ |
|
| 246 |
+ def findPackageInfoFromSourceRPMFile(self,sourcerpmfile): |
|
| 247 |
+ sourcerpmfile=os.path.basename(sourcerpmfile) |
|
| 248 |
+ sourcerpmfile=sourcerpmfile.replace(".src.rpm","")
|
|
| 249 |
+ releaseindex=sourcerpmfile.rfind("-")
|
|
| 250 |
+ if releaseindex == -1: |
|
| 251 |
+ self.logger.error("Invalid source rpm file:"+sourcerpmfile)
|
|
| 252 |
+ raise Exception("Invalid Source RPM")
|
|
| 253 |
+ versionindex=sourcerpmfile[0:releaseindex].rfind("-")
|
|
| 254 |
+ if versionindex == -1: |
|
| 255 |
+ self.logger.error("Invalid source rpm file:"+sourcerpmfile)
|
|
| 256 |
+ raise Exception("Invalid source RPM")
|
|
| 257 |
+ packageName=sourcerpmfile[0:versionindex] |
|
| 258 |
+ version=sourcerpmfile[versionindex+1:releaseindex] |
|
| 259 |
+ release=sourcerpmfile[releaseindex+1:] |
|
| 260 |
+ return packageName,version,release |
|
| 261 |
+ |
|
| 246 | 262 |
def findInstalledRPMPackages(self, chrootID): |
| 247 | 263 |
cmd = self.rpmBinary+" "+self.queryRpmPackageOptions |
| 248 | 264 |
chrootCmd=self.runInChrootCommand+" "+chrootID |
| ... | ... |
@@ -49,9 +49,12 @@ class ToolChainUtils(object): |
| 49 | 49 |
cmd=self.rpmbuildCommand+" -ba --nocheck --define \'_topdir "+chrootID+constants.topDirPath+"\' --define \'_dbpath "+chrootID+"/var/lib/rpm\' --define \'dist "+constants.dist+"\' --define \'photon_build_number "+constants.buildNumber+"\' --define \'photon_release_version "+constants.releaseVersion+"\' "+specFile |
| 50 | 50 |
self.logger.info(cmd) |
| 51 | 51 |
cmdUtils.runCommandInShell(cmd,self.logPath+"/filesystem.log") |
| 52 |
- filesystemrpmFile = cmdUtils.findFile(package+"-*.rpm", chrootID+constants.topDirPath+"/RPMS") |
|
| 52 |
+ filesystemrpmFile = cmdUtils.findFile(package+"-[0-9]*.rpm", chrootID+constants.topDirPath+"/RPMS") |
|
| 53 |
+ filesystemsrpmFile = cmdUtils.findFile(package+"-[0-9]*.src.rpm", chrootID+constants.topDirPath+"/SRPMS") |
|
| 53 | 54 |
if len(filesystemrpmFile) > 0: |
| 54 | 55 |
shutil.copy2(filesystemrpmFile[0],constants.rpmPath+"/x86_64/") |
| 56 |
+ if len(filesystemsrpmFile) > 0: |
|
| 57 |
+ shutil.copy2(filesystemsrpmFile[0],constants.sourceRpmPath+"/") |
|
| 55 | 58 |
rpmFile=pkgUtils.findRPMFileForGivenPackage(package) |
| 56 | 59 |
if rpmFile is None: |
| 57 | 60 |
self.logger.error("Cannot find filesystem rpm")
|
| ... | ... |
@@ -12,6 +12,7 @@ from SpecUtils import Specutils |
| 12 | 12 |
from StringUtils import StringUtils |
| 13 | 13 |
import collections |
| 14 | 14 |
import traceback |
| 15 |
+from PackageInfo import SourcePackageInfo |
|
| 15 | 16 |
|
| 16 | 17 |
def main(): |
| 17 | 18 |
usage = "Usage: %prog [options] <package name>" |
| ... | ... |
@@ -35,16 +36,18 @@ def main(): |
| 35 | 35 |
parser.add_option("-v", "--release-version", dest="releaseVersion", default="NNNnNNN")
|
| 36 | 36 |
parser.add_option("-u", "--enable-rpmcheck", dest="rpmCheck", default=False, action ="store_true")
|
| 37 | 37 |
parser.add_option("-a", "--source-rpm-path", dest="sourceRpmPath", default="../../stage/SRPMS")
|
| 38 |
+ parser.add_option("-w", "--pkginfo-file", dest="pkgInfoFile", default="../../common/data/pkg_info.json")
|
|
| 38 | 39 |
|
| 39 | 40 |
(options, args) = parser.parse_args() |
| 40 | 41 |
cmdUtils=CommandUtils() |
| 41 | 42 |
if not os.path.isdir(options.logPath): |
| 42 | 43 |
cmdUtils.runCommandInShell("mkdir -p "+options.logPath)
|
| 43 |
- |
|
| 44 |
+ |
|
| 44 | 45 |
logger=Logger.getLogger(options.logPath+"/Main") |
| 45 | 46 |
|
| 46 | 47 |
errorFlag=False |
| 47 | 48 |
package = None |
| 49 |
+ pkgInfoJsonFile=options.pkgInfoFile |
|
| 48 | 50 |
if not os.path.isdir(options.sourcePath): |
| 49 | 51 |
logger.error("Given Sources Path is not a directory:"+options.sourcePath)
|
| 50 | 52 |
errorFlag = True |
| ... | ... |
@@ -102,25 +105,10 @@ def main(): |
| 102 | 102 |
else: |
| 103 | 103 |
logger.info("Package to build:"+package)
|
| 104 | 104 |
|
| 105 |
- ''' |
|
| 106 |
- listPackages=["acl","attr","autoconf","automake","bash","bc","bindutils","binutils","bison","boost","btrfs-progs","bzip2","ca-certificates","cdrkit","check", |
|
| 107 |
- "cloud-init","cmake","coreutils","cpio","cracklib","createrepo","curl","cyrus-sasl","db","dbus","deltarpm","diffutils","docbook-xml","docbook-xsl", |
|
| 108 |
- "docker","dracut","e2fsprogs","elfutils","etcd","expat","file","filesystem","findutils","flex","gawk","gcc","gdb","gdbm","gettext","git", |
|
| 109 |
- "glib","glibc","glibmm","gmp","go","gobject-introspection","google-daemon","google-startup-scripts","gperf","gpgme","gptfdisk","grep","groff", |
|
| 110 |
- "grub","gtk-doc","gzip","haveged","hawkey","iana-etc","inetutils","intltool","iproute2","iptables","itstool","json-glib","kbd","kmod","krb5", |
|
| 111 |
- "kubernetes","less","libaio","libassuan","libcap","libdnet","libffi","libgpg-error","libgsystem","libhif","libmspack","libpcap","libpipeline", |
|
| 112 |
- "librepo","libselinux","libsepol","libsigc++","libsolv","libtool","libxml2","libxslt","libyaml","linux","linux-api-headers","Linux-PAM","lua", |
|
| 113 |
- "lvm2","lzo","m4","make","man-db","man-pages","mercurial","mpc","mpfr","nano","ncurses","nspr","nss","ntp","openldap","openssh","openssl", |
|
| 114 |
- "open-vm-tools","ostree","parted","patch","pcre","perl","perl-common-sense","perl-Config-IniFiles","perl-DBD-SQLite","perl-DBI","perl-DBIx-Simple", |
|
| 115 |
- "perl-Exporter-Tiny","perl-JSON-XS","perl-libintl","perl-List-MoreUtils","perl-Module-Install","perl-Module-ScanDeps","perl-Types-Serialiser", |
|
| 116 |
- "perl-WWW-Curl","perl-YAML","perl-YAML-Tiny","photon-release","pkg-config","popt","procps-ng","psmisc","pycurl","pygobject","python2", |
|
| 117 |
- "python-configobj","python-iniparse","python-jsonpatch","python-jsonpointer","python-prettytable","python-requests","python-setuptools", |
|
| 118 |
- "python-six","PyYAML","readline","rocket","rpm","rpm-ostree","rpm-ostree-toolbox","ruby","sed","shadow","sqlite-autoconf","strace","sudo", |
|
| 119 |
- "swig","systemd","tar","tcpdump","tcsh","tdnf","texinfo","thin-provisioning-tools","tzdata","unzip","urlgrabber","util-linux","vim","wget", |
|
| 120 |
- "which","xerces-c","XML-Parser","xml-security-c","xz","yum","yum-metadata-parser","zlib"] |
|
| 121 |
- ''' |
|
| 122 | 105 |
try: |
| 123 | 106 |
constants.initialize(options) |
| 107 |
+ SourcePackageInfo.setLogging() |
|
| 108 |
+ SourcePackageInfo.loadPkgInfoFromFile(pkgInfoJsonFile) |
|
| 124 | 109 |
if package == "packages_list": |
| 125 | 110 |
buildPackagesList(options.specPath, options.buildRootPath+"/../packages_list.csv") |
| 126 | 111 |
elif package == "sources_list": |
| ... | ... |
@@ -141,7 +129,9 @@ def main(): |
| 141 | 141 |
# print stacktrace |
| 142 | 142 |
traceback.print_exc() |
| 143 | 143 |
sys.exit(1) |
| 144 |
- |
|
| 144 |
+ |
|
| 145 |
+ logger.info("Writing Package info to the file:"+pkgInfoJsonFile)
|
|
| 146 |
+ SourcePackageInfo.writePkgListToFile(pkgInfoJsonFile) |
|
| 145 | 147 |
sys.exit(0) |
| 146 | 148 |
|
| 147 | 149 |
def buildToolChain(buildThreads): |