support/package-builder/constants.py
2820c61a
 from SpecData import SerializableSpecObjectsUtils
b5e09fac
 from Logger import Logger
2820c61a
 
 class constants(object):
     specPath=""
     sourcePath=""
     rpmPath=""
     logPath=""
4c54f74b
     dist=""
2c153d29
     buildNumber="0000000"
     releaseVersion="NNNnNNN"
2820c61a
     topDirPath=""
     specData=None
65584c99
     buildRootPath="/mnt"
2fcd8ac0
     prevPublishRPMRepo=""
062d56d1
     prevPublishXRPMRepo=""
3cc43c92
     pullsourcesConfig=""
42ffccb5
     buildPatch=False
     inputRPMSPath=""
bc90d582
     rpmCheck=False
d2526915
     sourceRpmPath=""
5a8b5eb5
     noDepsPackageList=["texinfo","bzip2","gettext","nspr","xz","bison","openjdk","go"]
55dba468
 
fb300e7c
     # These packages will be built in first order as build-core-toolchain stage
     listCoreToolChainPackages=[
21a45f16
         "filesystem",
55dba468
         "linux-api-headers",
         "glibc",
         "zlib",
         "file",
         "binutils",
         "gmp",
         "mpfr",
         "mpc",
         "libgcc",
         "libstdc++",
         "libgomp",
         "gcc",
         "pkg-config",
         "ncurses",
         "readline",
         "bash"]
 
fb300e7c
     # These packages will be built in a second stage to replace publish RPMS
     listToolChainPackages=[
21a45f16
         "filesystem",
55dba468
         "linux-api-headers",
         "glibc",
         "zlib",
         "file",
         "binutils",
         "gmp",
         "mpfr",
         "mpc",
         "gcc",
         "pkg-config",
         "ncurses",
         "bash",
         "bzip2",
         "sed",
         "procps-ng",
         "coreutils",
         "m4",
         "grep",
         "readline",
         "diffutils",
         "gawk",
         "findutils",
         "gettext",
         "gzip",
         "make",
         "patch",
         "util-linux",
         "tar",
         "xz",
         "libtool",
         "flex",
         "bison",
         "lua",
         "popt",
         "nspr",
9874e684
         "sqlite",
55dba468
         "nss",
fb300e7c
         "elfutils",
         "expat",
         "libffi",
55dba468
         "libpipeline",
         "gdbm",
         "perl",
         "texinfo",
         "autoconf",
         "automake",
fb300e7c
         "openssl",
         "python2",
         "rpm",
55dba468
         "groff",
         "man-pages",
fb300e7c
         "cpio"]
55dba468
 
fb300e7c
     # List or RPMS that will be installed in a chroot prior to build each
     # package. On a stage1 and stage2 published rpms will/might be used
     # after stage2 only local RPMS will be used
     listToolChainRPMsToInstall=[
21a45f16
         "filesystem",
55dba468
         "linux-api-headers",
         "glibc",
         "glibc-devel",
42e8b7da
         "glibc-iconv",
         "glibc-tools",
55dba468
         "zlib",
         "zlib-devel",
         "file",
         "binutils",
         "binutils-devel",
         "gmp",
         "gmp-devel",
         "mpfr",
         "mpfr-devel",
         "mpc",
         "libgcc",
         "libgcc-devel",
         "libstdc++",
         "libstdc++-devel",
         "libgomp",
         "libgomp-devel",
         "gcc",
         "pkg-config",
         "ncurses",
         "bash",
         "bzip2",
7fbd3a1e
         "bzip2-libs",
fb300e7c
         "bzip2-devel",
55dba468
         "sed",
         "ncurses-devel",
         "procps-ng",
         "coreutils",
         "m4",
         "grep",
         "readline",
         "diffutils",
         "gawk",
         "findutils",
         "gettext",
         "gzip",
         "make",
         "patch",
         "util-linux",
42e8b7da
         "util-linux-libs",
55dba468
         "util-linux-devel",
         "tar",
         "xz",
7fbd3a1e
         "xz-libs",
55dba468
         "libtool",
         "flex",
         "flex-devel",
         "bison",
         "readline-devel",
         "lua",
         "lua-devel",
         "popt",
         "popt-devel",
         "nspr",
7fbd3a1e
         "nspr-devel",
9874e684
         "sqlite",
fb300e7c
         "sqlite-libs",
55dba468
         "nss",
7fbd3a1e
         "nss-libs",
55dba468
         "nss-devel",
         "elfutils-libelf",
         "elfutils",
         "elfutils-libelf-devel",
         "elfutils-devel",
         "expat",
7fbd3a1e
         "expat-libs",
55dba468
         "libffi",
         "libpipeline",
         "gdbm",
         "perl",
         "texinfo",
         "autoconf",
         "automake",
         "openssl",
         "openssl-devel",
         "python2",
         "python2-libs",
         "python2-devel",
         "libcap",
         "rpm",
         "rpm-build",
         "rpm-devel",
fb300e7c
         "rpm-libs",
55dba468
         "groff",
         "man-pages",
fb300e7c
         "cpio",
         "go"]
 
27a75769
     perPackageToolChain = dict.fromkeys(["openjdk", "openjdk-doc", "openjdk-src", "openjdk-sample", "openjre" ], [
062d56d1
         "glib-devel",
         "icu-devel",
 	"openjdk",
 	"openjre",
         "icu",
         "harfbuzz",
         "harfbuzz-devel",
         "freetype2",
         "freetype2-devel",
         "alsa-lib",
         "alsa-lib-devel",
         "xcb-proto",
         "libXdmcp-devel",
         "libXau-devel",
         "util-macros",
         "xtrans",
         "libxcb-devel",
         "fontconfig-devel",
         "proto",
         "libXdmcp",
         "libxcb",
         "libXau",
         "fontconfig",
         "xtrans-devel",
         "libX11",
         "libX11-devel",
         "libXext",
         "libXext-devel",
         "libICE-devel",
         "libSM",
         "libICE",
         "libSM-devel",
         "libXt",
         "libXmu",
         "libXt-devel",
         "libXmu-devel",
         "libXrender",
         "libXrender-devel"
27a75769
 	])
     perPackageToolChain["apache-maven"] = ["apache-maven"]
fb300e7c
     # List of RPMs which are not published. They will be created during the
     # build process
     listOfRPMsProvidedAfterBuild=[
         "util-linux-devel",
         "flex-devel",
7fbd3a1e
         "nspr-devel",
42e8b7da
         "glibc-iconv",
         "glibc-tools",
7fbd3a1e
         "bzip2-libs",
         "expat-libs",
42e8b7da
         "util-linux-libs",
7fbd3a1e
         "nss-libs",
         "xz-libs",
9874e684
         "sqlite",
fb300e7c
         "sqlite-libs",
         "rpm-libs"]
55dba468
 
fb300e7c
     # List of packages that will be installed in addition for each
     # package to make check
b5e09fac
     listMakeCheckRPMPkgtoInstall=[
         "python2",
         "python2-devel",
         "python2-libs",
         "python2-tools",
         "libffi",
         "python-setuptools",
         "ca-certificates",
         "linux",
         "createrepo",
         "sudo",
         "ruby",
         "curl",
         "pcre-devel",
         "boost-devel",
         "which",
         "go",
         "e2fsprogs-devel",
         "shadow",
         "check",
         "libacl-devel",
         "device-mapper",
         "wget",
         "tar",
         "pkg-config",
         "git",
         "openssl",
2a807a3e
         "openssl-devel",
b5e09fac
         "net-tools",
         "less",
9874e684
         "iana-etc",
b5e09fac
         "yum-metadata-parser",
         "yum",
         "rpm-devel",
         "rpm",
         "libxml2",
         "python-xml",
         "libacl",
         "tzdata",
2a807a3e
         "libgcrypt-devel",
98f63cc4
         "Linux-PAM",
         "unzip"]
a5e4be9f
 
2820c61a
     @staticmethod
     def initialize(options):
4c54f74b
         constants.dist = options.dist
2c153d29
         constants.buildNumber = options.buildNumber
         constants.releaseVersion = options.releaseVersion
2820c61a
         constants.specPath = options.specPath
         constants.sourcePath = options.sourcePath
         constants.rpmPath = options.rpmPath
d2526915
         constants.sourceRpmPath = options.sourceRpmPath
2820c61a
         constants.topDirPath = options.topDirPath
         constants.logPath = options.logPath
062d56d1
         constants.prevPublishRPMRepo = options.publishRPMSPath
         constants.prevPublishXRPMRepo = options.publishXRPMSPath
d23d369f
         constants.buildRootPath=options.buildRootPath
2820c61a
         constants.specData = SerializableSpecObjectsUtils(constants.logPath)
         constants.specData.readSpecsAndConvertToSerializableObjects(constants.specPath)
3cc43c92
         constants.pullsourcesConfig = options.pullsourcesConfig
42ffccb5
         constants.inputRPMSPath=options.inputRPMSPath
9b2f8b85
         constants.updateRPMMacros()
b5e09fac
         constants.testForceRPMS=[]
         constants.rpmCheck = options.rpmCheck
         constants.rpmCheckStopOnError = options.rpmCheckStopOnError
         if constants.rpmCheck:
             constants.testLogger=Logger.getLogger("MakeCheckTest",constants.logPath)
 
9b2f8b85
     @staticmethod
     def updateRPMMacros():
         #adding distribution rpm macro
         constants.specData.addMacro("dist",constants.dist)
2820c61a
 
9b2f8b85
         #adding buildnumber rpm macro
         constants.specData.addMacro("photon_build_number",constants.buildNumber)
 
         #adding releasenumber rpm macro
         constants.specData.addMacro("photon_release_version",constants.releaseVersion)
 
         #adding kernelversion rpm macro
         kernelversion = constants.specData.getVersion("linux")
         constants.specData.addMacro("KERNEL_VERSION",kernelversion)
 
         #adding kernelrelease rpm macro
         kernelrelease = constants.specData.getRelease("linux")
         constants.specData.addMacro("KERNEL_RELEASE",kernelrelease)
2820c61a
         
9b2f8b85
         #adding kernelsubrelease rpm macro
         kernelversion = kernelversion.replace(".","")
         if kernelversion.isdigit():
             kernelversion = int(kernelversion) << 8
         kernelsubrelease = str(kernelversion)+kernelrelease
         kernelsubrelease = kernelsubrelease.replace(constants.dist,"")
         if kernelsubrelease:
             kernelsubrelease = "."+kernelsubrelease
b5e09fac
             constants.specData.addMacro("kernelsubrelease",kernelsubrelease)
 
     @staticmethod
     def setTestForceRPMS(listsPackages):
          constants.testForceRPMS=listsPackages