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 |