| ... | ... |
@@ -1,13 +1,14 @@ |
| 1 | 1 |
Summary: The package automatically configure source code |
| 2 | 2 |
Name: autoconf |
| 3 | 3 |
Version: 2.69 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: GPLv2 |
| 6 | 6 |
URL: http://www.gnu.org/software/autoconf |
| 7 | 7 |
Group: System Environment/Base |
| 8 | 8 |
Vendor: VMware, Inc. |
| 9 |
-Distribution: Photon |
|
| 10 |
-Source0: http://ftp.gnu.org/gnu/autoconf/%{name}-%{version}.tar.xz
|
|
| 9 |
+Distribution: Photon |
|
| 10 |
+Source0: http://ftp.gnu.org/gnu/autoconf/%{name}-%{version}.tar.xz
|
|
| 11 |
+Requires: perl |
|
| 11 | 12 |
%description |
| 12 | 13 |
The package contains programs for producing shell scripts that can |
| 13 | 14 |
automatically configure source code. |
| ... | ... |
@@ -27,5 +28,7 @@ rm -rf %{buildroot}%{_infodir}
|
| 27 | 27 |
%{_mandir}/*/*
|
| 28 | 28 |
%{_datarootdir}/autoconf/*
|
| 29 | 29 |
%changelog |
| 30 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 2.69-2 |
|
| 31 |
+- Adding perl packages to required packages |
|
| 30 | 32 |
* Wed Nov 5 2014 Divya Thaluru <dthaluru@vmware.com> 2.69-1 |
| 31 | 33 |
- Initial build. First version |
| ... | ... |
@@ -1,13 +1,14 @@ |
| 1 | 1 |
Summary: Programs for generating Makefiles |
| 2 | 2 |
Name: automake |
| 3 | 3 |
Version: 1.14.1 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: GPLv2+ |
| 6 | 6 |
URL: http://www.gnu.org/software/automake/ |
| 7 | 7 |
Group: System Environment/Base |
| 8 | 8 |
Vendor: VMware, Inc. |
| 9 |
-Distribution: Photon |
|
| 10 |
-Source0: http://ftp.gnu.org/gnu/automake/%{name}-%{version}.tar.xz
|
|
| 9 |
+Distribution: Photon |
|
| 10 |
+Source0: http://ftp.gnu.org/gnu/automake/%{name}-%{version}.tar.xz
|
|
| 11 |
+BuildRequires: autoconf |
|
| 11 | 12 |
%description |
| 12 | 13 |
Contains programs for generating Makefiles for use with Autoconf. |
| 13 | 14 |
%prep |
| ... | ... |
@@ -33,5 +34,7 @@ rm -rf %{buildroot}%{_infodir}
|
| 33 | 33 |
%{_defaultdocdir}/%{name}-%{version}/*
|
| 34 | 34 |
%{_mandir}/*/*
|
| 35 | 35 |
%changelog |
| 36 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 1.14.1-2 |
|
| 37 |
+- Adding autoconf package to build time requires packages |
|
| 36 | 38 |
* Wed Nov 5 2014 Divya Thaluru <dthaluru@vmware.com> 1.14.1-1 |
| 37 | 39 |
- Initial build. First version |
| ... | ... |
@@ -1,13 +1,14 @@ |
| 1 | 1 |
Summary: Programs that show the differences between files or directories |
| 2 | 2 |
Name: diffutils |
| 3 | 3 |
Version: 3.3 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: GPLv3+ |
| 6 | 6 |
URL: http://www.gnu.org/software/diffutils |
| 7 | 7 |
Group: System Environment/Base |
| 8 | 8 |
Vendor: VMware, Inc. |
| 9 |
-Distribution: Photon |
|
| 10 |
-Source0: http://ftp.gnu.org/gnu/diffutils/%{name}-%{version}.tar.xz
|
|
| 9 |
+Distribution: Photon |
|
| 10 |
+Source0: http://ftp.gnu.org/gnu/diffutils/%{name}-%{version}.tar.xz
|
|
| 11 |
+BuildRequires: coreutils |
|
| 11 | 12 |
%description |
| 12 | 13 |
The Diffutils package contains programs that show the |
| 13 | 14 |
differences between files or directories. |
| ... | ... |
@@ -30,5 +31,7 @@ make -k check |& tee %{_specdir}/%{name}-check-log || %{nocheck}
|
| 30 | 30 |
%{_bindir}/*
|
| 31 | 31 |
%{_mandir}/*/*
|
| 32 | 32 |
%changelog |
| 33 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 3.3-2 |
|
| 34 |
+- Adding coreutils package to build requires |
|
| 33 | 35 |
* Wed Nov 5 2014 Divya Thaluru <dthaluru@vmware.com> 3.3-1 |
| 34 | 36 |
- Initial build. First version |
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
Summary: A high-level scripting language |
| 2 | 2 |
Name: python2 |
| 3 | 3 |
Version: 2.7.9 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: PSF |
| 6 | 6 |
URL: http://www.python.org/ |
| 7 | 7 |
Group: System Environment/Programming |
| ... | ... |
@@ -31,6 +31,7 @@ Requires: sqlite-autoconf |
| 31 | 31 |
Requires: expat >= 2.1.0 |
| 32 | 32 |
Requires: libffi >= 3.0.13 |
| 33 | 33 |
Requires: ncurses |
| 34 |
+Requires: coreutils |
|
| 34 | 35 |
BuildRequires: expat >= 2.1.0 |
| 35 | 36 |
BuildRequires: libffi >= 3.0.13 |
| 36 | 37 |
BuildRequires: sqlite-autoconf |
| ... | ... |
@@ -182,5 +183,7 @@ rm -rf %{buildroot}/*
|
| 182 | 182 |
%{_bindir}/idle*
|
| 183 | 183 |
|
| 184 | 184 |
%changelog |
| 185 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 2.7.9-2 |
|
| 186 |
+- Adding coreutils package to run time required package |
|
| 185 | 187 |
* Mon Apr 6 2015 Divya Thaluru <dthaluru@vmware.com> 2.7.9-1 |
| 186 | 188 |
- Initial build. First version |
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
Summary: Command-line editing and history capabilities |
| 2 | 2 |
Name: readline |
| 3 | 3 |
Version: 6.3 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: GPLv3+ |
| 6 | 6 |
URL: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html |
| 7 | 7 |
Group: Applications/System |
| ... | ... |
@@ -10,6 +10,7 @@ Distribution: Photon |
| 10 | 10 |
Source0: http://ftp.gnu.org/gnu/readline/%{name}-%{version}.tar.gz
|
| 11 | 11 |
Patch: http://www.linuxfromscratch.org/patches/lfs/development/readline-6.3-upstream_fixes-3.patch |
| 12 | 12 |
BuildRequires: ncurses-devel |
| 13 |
+Requires: ncurses |
|
| 13 | 14 |
%description |
| 14 | 15 |
The Readline package is a set of libraries that offers command-line |
| 15 | 16 |
editing and history capabilities. |
| ... | ... |
@@ -92,5 +93,7 @@ rm -rf %{buildroot}%{_infodir}
|
| 92 | 92 |
%{_libdir}/libhistory.so
|
| 93 | 93 |
%{_libdir}/libreadline.so
|
| 94 | 94 |
%changelog |
| 95 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 6.3-2 |
|
| 96 |
+- Adding ncurses to run time require package |
|
| 95 | 97 |
* Wed Oct 22 2014 Divya Thaluru <dthaluru@vmware.com> 6.3-1 |
| 96 | 98 |
- Initial build. First version |
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
Summary: Package manager |
| 2 | 2 |
Name: rpm |
| 3 | 3 |
Version: 4.11.2 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: GPLv2+ |
| 6 | 6 |
URL: http://rpm.org |
| 7 | 7 |
Group: Applications/System |
| ... | ... |
@@ -13,7 +13,6 @@ Source2: rpm-system-configuring-scripts.tar.gz |
| 13 | 13 |
#Requires: nspr |
| 14 | 14 |
Requires: nss |
| 15 | 15 |
Requires: popt |
| 16 |
-Requires: perl-Module-ScanDeps |
|
| 17 | 16 |
Requires: lua |
| 18 | 17 |
Requires: elfutils-libelf |
| 19 | 18 |
BuildRequires: python2 |
| ... | ... |
@@ -108,5 +107,7 @@ rm -rf %{buildroot}
|
| 108 | 108 |
%{_libdir}/librpm.so
|
| 109 | 109 |
|
| 110 | 110 |
%changelog |
| 111 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 4.11.2-2 |
|
| 112 |
+- Removing perl-module-scandeps package from run time required packages |
|
| 111 | 113 |
* Tue Jan 13 2015 Divya Thaluru <dthaluru@vmware.com> 4.11.2-1 |
| 112 | 114 |
- Initial build. First version |
| ... | ... |
@@ -1,14 +1,13 @@ |
| 1 | 1 |
Summary: Reading, writing, and converting info pages |
| 2 | 2 |
Name: texinfo |
| 3 | 3 |
Version: 5.2 |
| 4 |
-Release: 1 |
|
| 4 |
+Release: 2 |
|
| 5 | 5 |
License: GPLv3+ |
| 6 | 6 |
URL: http://www.gnu.org/software/texinfo/ |
| 7 | 7 |
Group: Applications/System |
| 8 | 8 |
Vendor: VMware, Inc. |
| 9 | 9 |
Distribution: Photon |
| 10 | 10 |
Source0: %{name}-%{version}.tar.xz
|
| 11 |
-Requires: perl-libintl |
|
| 12 | 11 |
%description |
| 13 | 12 |
The Texinfo package contains programs for reading, writing, |
| 14 | 13 |
and converting info pages. |
| ... | ... |
@@ -46,5 +45,7 @@ make -k check |& tee %{_specdir}/%{name}-check-log || %{nocheck}
|
| 46 | 46 |
%lang(pt.us-ascii) %{_datarootdir}/locale/pt.us-ascii/LC_MESSAGES/texinfo_document.mo
|
| 47 | 47 |
%lang(pt_BR.us-ascii) %{_datarootdir}/locale/pt_BR.us-ascii/LC_MESSAGES/texinfo_document.mo
|
| 48 | 48 |
%changelog |
| 49 |
+* Wed Jun 3 2015 Divya Thaluru <dthaluru@vmware.com> 5.2-2 |
|
| 50 |
+- Removing perl-libintl package from run-time required packages |
|
| 49 | 51 |
* Wed Nov 5 2014 Divya Thaluru <dthaluru@vmware.com> 5.2-1 |
| 50 | 52 |
- Upgrade version |
| ... | ... |
@@ -21,7 +21,7 @@ class CommandUtils(object): |
| 21 | 21 |
if logfilePath is None: |
| 22 | 22 |
logfilePath=os.devnull |
| 23 | 23 |
logfile=open(logfilePath,"w") |
| 24 |
- process = subprocess.Popen("%s" %cmd,shell=True,stdout=logfile)
|
|
| 24 |
+ process = subprocess.Popen("%s" %cmd,shell=True,stdout=logfile,stderr=logfile)
|
|
| 25 | 25 |
retval = process.wait() |
| 26 | 26 |
logfile.close() |
| 27 | 27 |
if retval==0: |
| ... | ... |
@@ -20,7 +20,7 @@ class PackageBuilder(object): |
| 20 | 20 |
self.listAvailableCyclicPackages = listAvailableCyclicPackages |
| 21 | 21 |
self.listNodepsPackages = ["glibc","gmp","zlib","file","binutils","mpfr","mpc","gcc","ncurses","util-linux","groff","perl","texinfo","rpm","openssl","go"] |
| 22 | 22 |
|
| 23 |
- def prepareBuildRoot(self,chrootName): |
|
| 23 |
+ def prepareBuildRoot(self,chrootName,isToolChainPackage=False): |
|
| 24 | 24 |
chrootID=None |
| 25 | 25 |
try: |
| 26 | 26 |
chrUtils = ChrootUtils(self.logName,self.logPath) |
| ... | ... |
@@ -28,7 +28,10 @@ class PackageBuilder(object): |
| 28 | 28 |
if not returnVal: |
| 29 | 29 |
raise Exception("Unable to prepare build root")
|
| 30 | 30 |
tUtils=ToolChainUtils(self.logName,self.logPath) |
| 31 |
- tUtils.installToolChain(chrootID) |
|
| 31 |
+ if isToolChainPackage: |
|
| 32 |
+ tUtils.installCoreToolChainPackages(chrootID) |
|
| 33 |
+ else: |
|
| 34 |
+ tUtils.installToolChain(chrootID) |
|
| 32 | 35 |
except Exception as e: |
| 33 | 36 |
if chrootID is not None: |
| 34 | 37 |
chrUtils.destroyChroot(chrootID) |
| ... | ... |
@@ -58,7 +61,7 @@ class PackageBuilder(object): |
| 58 | 58 |
listInstalledPackages.append(packageName) |
| 59 | 59 |
return listInstalledPackages |
| 60 | 60 |
|
| 61 |
- def buildPackageThreadAPI(self,package,outputMap, threadName): |
|
| 61 |
+ def buildPackageThreadAPI(self,package,outputMap, threadName,): |
|
| 62 | 62 |
try: |
| 63 | 63 |
self.buildPackage(package) |
| 64 | 64 |
outputMap[threadName]=True |
| ... | ... |
@@ -71,8 +74,11 @@ class PackageBuilder(object): |
| 71 | 71 |
chrUtils = ChrootUtils(self.logName,self.logPath) |
| 72 | 72 |
chrootName="build-"+package |
| 73 | 73 |
chrootID=None |
| 74 |
+ isToolChainPackage=False |
|
| 75 |
+ if package in constants.listToolChainPackages: |
|
| 76 |
+ isToolChainPackage=True |
|
| 74 | 77 |
try: |
| 75 |
- chrootID = self.prepareBuildRoot(chrootName) |
|
| 78 |
+ chrootID = self.prepareBuildRoot(chrootName,isToolChainPackage) |
|
| 76 | 79 |
destLogPath=constants.logPath+"/build-"+package |
| 77 | 80 |
if not os.path.isdir(destLogPath): |
| 78 | 81 |
cmdUtils = CommandUtils() |
| ... | ... |
@@ -118,6 +124,8 @@ class PackageBuilder(object): |
| 118 | 118 |
noDeps = True |
| 119 | 119 |
if package in self.listNodepsPackages: |
| 120 | 120 |
noDeps=True |
| 121 |
+ if package in constants.noDepsPackageList: |
|
| 122 |
+ noDeps=True |
|
| 121 | 123 |
pkgUtils.installRPM(package,chrootID,noDeps,destLogPath) |
| 122 | 124 |
listInstalledPackages.append(package) |
| 123 | 125 |
self.logger.info("Installed the package:"+package)
|
| ... | ... |
@@ -86,7 +86,7 @@ class PackageManager(object): |
| 86 | 86 |
def buildToolChain(self): |
| 87 | 87 |
try: |
| 88 | 88 |
tUtils=ToolChainUtils() |
| 89 |
- tUtils.buildToolChain() |
|
| 89 |
+ tUtils.buildCoreToolChainPackages() |
|
| 90 | 90 |
except Exception as e: |
| 91 | 91 |
self.logger.error("Unable to build tool chain")
|
| 92 | 92 |
self.logger.error(e) |
| ... | ... |
@@ -107,32 +107,43 @@ class PackageManager(object): |
| 107 | 107 |
self.logger.info("Possible number of worker threads:"+str(numChroots))
|
| 108 | 108 |
return numChroots |
| 109 | 109 |
|
| 110 |
- def buildPackages (self, listPackages): |
|
| 111 |
- |
|
| 110 |
+ def buildToolChainPackages(self): |
|
| 112 | 111 |
if not self.buildToolChain(): |
| 113 | 112 |
return False |
| 114 |
- |
|
| 115 |
- returnVal=self.calculateParams(listPackages) |
|
| 116 |
- if not returnVal: |
|
| 117 |
- self.logger.error("Unable to set paramaters. Terminating the package manager.")
|
|
| 118 |
- return False |
|
| 113 |
+ return self.buildGivenPackages(constants.listToolChainPackages) |
|
| 119 | 114 |
|
| 120 |
- statusEvent=threading.Event() |
|
| 115 |
+ def buildPackages(self,listPackages): |
|
| 116 |
+ if not self.buildToolChainPackages(): |
|
| 117 |
+ return False |
|
| 118 |
+ return self.buildGivenPackages(listPackages) |
|
| 119 |
+ |
|
| 120 |
+ def initializeThreadPool(self,statusEvent): |
|
| 121 |
+ ThreadPool.clear() |
|
| 122 |
+ ThreadPool.mapPackageToCycle=self.mapPackageToCycle |
|
| 123 |
+ ThreadPool.listAvailableCyclicPackages=self.listAvailableCyclicPackages |
|
| 124 |
+ ThreadPool.logger=self.logger |
|
| 125 |
+ ThreadPool.statusEvent=statusEvent |
|
| 121 | 126 |
|
| 127 |
+ def initializeScheduler(self,statusEvent): |
|
| 122 | 128 |
Scheduler.setLog(self.logName, self.logPath) |
| 123 | 129 |
Scheduler.setParams(self.sortedPackageList, self.listOfPackagesAlreadyBuilt) |
| 124 | 130 |
Scheduler.setEvent(statusEvent) |
| 131 |
+ |
|
| 132 |
+ def buildGivenPackages (self, listPackages): |
|
| 133 |
+ returnVal=self.calculateParams(listPackages) |
|
| 134 |
+ if not returnVal: |
|
| 135 |
+ self.logger.error("Unable to set paramaters. Terminating the package manager.")
|
|
| 136 |
+ return False |
|
| 125 | 137 |
|
| 138 |
+ statusEvent=threading.Event() |
|
| 126 | 139 |
numWorkerThreads=self.calculatePossibleNumWorkerThreads() |
| 140 |
+ if numWorkerThreads > 8: |
|
| 141 |
+ numWorkerThreads = 8 |
|
| 127 | 142 |
if numWorkerThreads == 0: |
| 128 | 143 |
return False |
| 129 | 144 |
|
| 130 |
- ThreadPool.clear() |
|
| 131 |
- ThreadPool.mapPackageToCycle=self.mapPackageToCycle |
|
| 132 |
- ThreadPool.listAvailableCyclicPackages=self.listAvailableCyclicPackages |
|
| 133 |
- ThreadPool.logger=self.logger |
|
| 134 |
- ThreadPool.statusEvent=statusEvent |
|
| 135 |
- |
|
| 145 |
+ self.initializeScheduler(statusEvent) |
|
| 146 |
+ self.initializeThreadPool(statusEvent) |
|
| 136 | 147 |
|
| 137 | 148 |
i=0 |
| 138 | 149 |
while i < numWorkerThreads: |
| ... | ... |
@@ -142,8 +153,12 @@ class PackageManager(object): |
| 142 | 142 |
i = i + 1 |
| 143 | 143 |
|
| 144 | 144 |
statusEvent.wait() |
| 145 |
- |
|
| 146 | 145 |
Scheduler.stopScheduling=True |
| 146 |
+ self.logger.info("Waiting for all remaining worker threads")
|
|
| 147 |
+ listWorkerObjs=ThreadPool.getAllWorkerObjects() |
|
| 148 |
+ for w in listWorkerObjs: |
|
| 149 |
+ w.join() |
|
| 150 |
+ |
|
| 147 | 151 |
setFailFlag=False |
| 148 | 152 |
allPackagesBuilt=False |
| 149 | 153 |
|
| ... | ... |
@@ -163,9 +178,4 @@ class PackageManager(object): |
| 163 | 163 |
else: |
| 164 | 164 |
self.logger.error("Build stopped unexpectedly.Unknown error.")
|
| 165 | 165 |
|
| 166 |
- self.logger.info("Waiting for all remaining worker threads")
|
|
| 167 |
- listWorkerObjs=ThreadPool.getAllWorkerObjects() |
|
| 168 |
- for w in listWorkerObjs: |
|
| 169 |
- w.join() |
|
| 170 |
- |
|
| 171 | 166 |
self.logger.info("Terminated")
|
| ... | ... |
@@ -21,28 +21,6 @@ class ToolChainUtils(object): |
| 21 | 21 |
self.localegenConfig = "./locale-gen.conf" |
| 22 | 22 |
self.prepareBuildRootCmd="./prepare-build-root.sh" |
| 23 | 23 |
|
| 24 |
- self.listPkgsRequiredToBuildToolchain=["linux-api-headers", "glibc","glibc-devel", "zlib","zlib-devel", "file", |
|
| 25 |
- "binutils","binutils-devel", "gmp","gmp-devel", "mpfr", "mpfr-devel", "mpc", |
|
| 26 |
- "libgcc","libgcc-devel","libstdc++","libstdc++-devel","libgomp","libgomp-devel","gcc", |
|
| 27 |
- "pkg-config", "ncurses", "bash", "bzip2", "sed","ncurses-devel","procps-ng","coreutils", "m4","grep", |
|
| 28 |
- "readline", "diffutils","gawk", "findutils", "gettext", "gzip","make", "patch", |
|
| 29 |
- "util-linux", "tar", "xz","libtool", "flex", "bison", |
|
| 30 |
- "readline-devel", "lua","lua-devel","popt","popt-devel","nspr","sqlite-autoconf","nss","nss-devel", |
|
| 31 |
- "bzip2-devel","elfutils-libelf","elfutils","elfutils-libelf-devel","elfutils-devel", |
|
| 32 |
- "expat","libffi","libpipeline", "gdbm","perl","texinfo","autoconf","automake", |
|
| 33 |
- "openssl","openssl-devel","python2","python2-libs","python2-devel","rpm", |
|
| 34 |
- "groff", "man-db", "man-pages","cpio"] |
|
| 35 |
- |
|
| 36 |
- self.listPkgsToInstallToolChain=["linux-api-headers", "glibc","glibc-devel", "zlib","zlib-devel", "file", |
|
| 37 |
- "binutils","binutils-devel", "gmp","gmp-devel", "mpfr", "mpfr-devel", "mpc", |
|
| 38 |
- "libgcc","libgcc-devel","libstdc++","libstdc++-devel","libgomp","libgomp-devel","gcc", |
|
| 39 |
- "pkg-config", "ncurses", "bash", "bzip2", "sed","procps-ng","coreutils", "m4","grep", |
|
| 40 |
- "readline","diffutils","gawk", "findutils", "gettext", "gzip","make", "patch", |
|
| 41 |
- "util-linux", "tar", "xz","libtool", "flex", "bison", |
|
| 42 |
- "lua","popt","nspr","sqlite-autoconf","nss","elfutils-libelf", |
|
| 43 |
- "libpipeline", "gdbm","perl","texinfo","rpm", |
|
| 44 |
- "autoconf","automake", "groff", "man-db", "man-pages","elfutils","cpio"] |
|
| 45 |
- |
|
| 46 | 24 |
def prepareChroot(self,chrootID,toolsArchive=None): |
| 47 | 25 |
cmdUtils=CommandUtils() |
| 48 | 26 |
prepareChrootCmd=self.prepareBuildRootCmd+" "+chrootID+" "+constants.specPath+" "+constants.rpmPath+" "+constants.toolsPath |
| ... | ... |
@@ -60,18 +38,18 @@ class ToolChainUtils(object): |
| 60 | 60 |
cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/SPECS")
|
| 61 | 61 |
self.logger.info("Successfully prepared chroot:"+chrootID)
|
| 62 | 62 |
|
| 63 |
- def buildToolChain(self): |
|
| 64 |
- self.logger.info("Building Tool Chain .....")
|
|
| 63 |
+ def buildCoreToolChainPackages(self): |
|
| 64 |
+ self.logger.info("Building core tool chain packages.....")
|
|
| 65 | 65 |
chrootID=None |
| 66 | 66 |
chrUtils = ChrootUtils(self.logName,self.logPath) |
| 67 | 67 |
try: |
| 68 |
- chrootName="build-toolchain" |
|
| 68 |
+ chrootName="build-core-toolchain" |
|
| 69 | 69 |
returnVal,chrootID = chrUtils.createChroot(chrootName) |
| 70 | 70 |
if not returnVal: |
| 71 | 71 |
raise Exception("creating chroot failed")
|
| 72 | 72 |
self.prepareChroot(chrootID) |
| 73 | 73 |
pkgUtils=PackageUtils(self.logName,self.logPath) |
| 74 |
- for package in self.listPkgsRequiredToBuildToolchain: |
|
| 74 |
+ for package in constants.listCoreToolChainRPMPackages: |
|
| 75 | 75 |
rpmPkg=pkgUtils.findRPMFileForGivenPackage(package) |
| 76 | 76 |
if rpmPkg is None: |
| 77 | 77 |
pkgUtils.buildRPMSForGivenPackage(package, chrootID) |
| ... | ... |
@@ -91,7 +69,7 @@ class ToolChainUtils(object): |
| 91 | 91 |
self.logger.info("Installing toolchain.....")
|
| 92 | 92 |
self.prepareChroot(chrootID,"minimal") |
| 93 | 93 |
pkgUtils= PackageUtils(self.logName,self.logPath) |
| 94 |
- for package in self.listPkgsToInstallToolChain: |
|
| 94 |
+ for package in constants.listToolChainRPMPkgs: |
|
| 95 | 95 |
pkgUtils.installRPM(package, chrootID, True) |
| 96 | 96 |
cmdUtils=CommandUtils() |
| 97 | 97 |
cmdUtils.runCommandInShell("rm -rf "+ chrootID+"/tools")
|
| ... | ... |
@@ -111,7 +89,17 @@ class ToolChainUtils(object): |
| 111 | 111 |
raise Exception("Adjust tool chain script failed")
|
| 112 | 112 |
|
| 113 | 113 |
|
| 114 |
- |
|
| 114 |
+ def installCoreToolChainPackages(self,chrootID): |
|
| 115 |
+ self.logger.info("Installing toolchain.....")
|
|
| 116 |
+ self.prepareChroot(chrootID) |
|
| 117 |
+ pkgUtils= PackageUtils(self.logName,self.logPath) |
|
| 118 |
+ for package in constants.listCoreToolChainRPMPackages: |
|
| 119 |
+ pkgUtils.installRPM(package, chrootID, True) |
|
| 120 |
+ cmdUtils=CommandUtils() |
|
| 121 |
+ cmdUtils.runCommandInShell("rm "+ chrootID+"/"+constants.topDirPath+"/RPMS/x86_64/*")
|
|
| 122 |
+ cmdUtils.runCommandInShell("rm "+ chrootID+"/"+constants.topDirPath+"/RPMS/noarch/*")
|
|
| 123 |
+ self.logger.info("Installed core tool chain packages successfully on chroot:"+chrootID)
|
|
| 124 |
+ |
|
| 115 | 125 |
|
| 116 | 126 |
|
| 117 | 127 |
|
| ... | ... |
@@ -1,7 +1,6 @@ |
| 1 | 1 |
from PackageBuilder import PackageBuilder |
| 2 | 2 |
import threading |
| 3 | 3 |
import Scheduler |
| 4 |
-from constants import constants |
|
| 5 | 4 |
import ThreadPool |
| 6 | 5 |
|
| 7 | 6 |
class WorkerThread(threading.Thread): |
| ... | ... |
@@ -13,8 +12,7 @@ class WorkerThread(threading.Thread): |
| 13 | 13 |
self.mapPackageToCycle=mapPackageToCycle |
| 14 | 14 |
self.listAvailableCyclicPackages=listAvailableCyclicPackages |
| 15 | 15 |
self.logger=logger |
| 16 |
- |
|
| 17 |
- |
|
| 16 |
+ |
|
| 18 | 17 |
def run(self): |
| 19 | 18 |
buildThreadFailed=False |
| 20 | 19 |
ThreadPool.ThreadPool.makeWorkerThreadActive(self.name) |
| ... | ... |
@@ -25,7 +23,7 @@ class WorkerThread(threading.Thread): |
| 25 | 25 |
if pkg is None: |
| 26 | 26 |
break |
| 27 | 27 |
self.logger.info("Thread "+self.name+" is building package:"+ pkg)
|
| 28 |
- pkgBuilder = PackageBuilder(self.mapPackageToCycle,self.listAvailableCyclicPackages,"build-"+pkg,constants.logPath) |
|
| 28 |
+ pkgBuilder = PackageBuilder(self.mapPackageToCycle,self.listAvailableCyclicPackages,"build-"+pkg) |
|
| 29 | 29 |
t = threading.Thread(target=pkgBuilder.buildPackageThreadAPI,args=(pkg,outputMap,pkg)) |
| 30 | 30 |
t.start() |
| 31 | 31 |
t.join() |
| ... | ... |
@@ -66,10 +66,9 @@ def main(): |
| 66 | 66 |
|
| 67 | 67 |
constants.initialize(options) |
| 68 | 68 |
|
| 69 |
- listPackages1=["nano","swig","wget"] |
|
| 70 |
- |
|
| 71 | 69 |
pkgManager = PackageManager() |
| 72 | 70 |
pkgManager.buildPackages(listPackages) |
| 71 |
+ |
|
| 73 | 72 |
|
| 74 | 73 |
if __name__=="__main__": |
| 75 | 74 |
main() |
| 76 | 75 |
\ No newline at end of file |
| ... | ... |
@@ -11,7 +11,29 @@ class constants(object): |
| 11 | 11 |
specData=None |
| 12 | 12 |
testPath="test" |
| 13 | 13 |
buildRootPath="/mnt" |
| 14 |
+ noDepsPackageList=["texinfo","bzip2","gettext","man-db","nspr","xz","bison"] |
|
| 15 |
+ listToolChainPackages=["linux-api-headers", "glibc","zlib", "file", |
|
| 16 |
+ "binutils","gmp","mpfr", "mpc","gcc", "pkg-config", "ncurses", "bash", "bzip2", "sed","procps-ng","coreutils", "m4","grep", |
|
| 17 |
+ "readline", "diffutils","gawk", "findutils", "gettext", "gzip","make", "patch","util-linux", |
|
| 18 |
+ "tar", "xz","libtool", "flex", "bison", "lua","popt","nspr","sqlite-autoconf","nss", |
|
| 19 |
+ "elfutils", "expat","libffi","libpipeline", "gdbm","perl","texinfo","autoconf","automake", |
|
| 20 |
+ "openssl","python2","rpm", "groff", "man-db", "man-pages","cpio"] |
|
| 14 | 21 |
|
| 22 |
+ listCoreToolChainRPMPackages=["linux-api-headers", "glibc","glibc-devel", "zlib","zlib-devel", "file", |
|
| 23 |
+ "binutils","binutils-devel", "gmp","gmp-devel", "mpfr", "mpfr-devel", "mpc", |
|
| 24 |
+ "libgcc","libgcc-devel","libstdc++","libstdc++-devel","libgomp","libgomp-devel","gcc", |
|
| 25 |
+ "pkg-config","bash"] |
|
| 26 |
+ |
|
| 27 |
+ listToolChainRPMPkgs=["linux-api-headers", "glibc","glibc-devel", "zlib","zlib-devel", "file", |
|
| 28 |
+ "binutils","binutils-devel", "gmp","gmp-devel", "mpfr", "mpfr-devel", "mpc", |
|
| 29 |
+ "libgcc","libgcc-devel","libstdc++","libstdc++-devel","libgomp","libgomp-devel","gcc", |
|
| 30 |
+ "pkg-config", "ncurses", "bash", "bzip2", "sed","procps-ng","coreutils", "m4","grep", |
|
| 31 |
+ "readline","diffutils","gawk", "findutils", "gettext", "gzip","make", "patch", |
|
| 32 |
+ "util-linux", "tar", "xz","libtool", "flex", "bison", |
|
| 33 |
+ "lua","popt","nspr","sqlite-autoconf","nss","elfutils-libelf", |
|
| 34 |
+ "libpipeline", "gdbm","perl","texinfo","rpm", |
|
| 35 |
+ "autoconf","automake", "groff", "man-db", "man-pages","elfutils","cpio"] |
|
| 36 |
+ |
|
| 15 | 37 |
|
| 16 | 38 |
@staticmethod |
| 17 | 39 |
def initialize(options): |