Browse code

Update gcc, boost, lua, and ncurses.

Change-Id: I87bf961441d4d04372ee6836bce988c8c32f4052
Reviewed-on: http://photon-jenkins.eng.vmware.com/545
Tested-by: jenkins-photon <wangnan2015@hotmail.com>
Reviewed-by: suezzelur <anishs@vmware.com>

xiaolin-vmware authored on 2016/02/23 13:52:34
Showing 15 changed files
... ...
@@ -36,6 +36,7 @@ files using the TFTP protocol.
36 36
 
37 37
 %prep
38 38
 %setup
39
+sed -i "s/-g -Wall -D_REENTRANT/-g -Wall -D_REENTRANT -std=gnu89/" configure.ac
39 40
 
40 41
 %build
41 42
 %configure
... ...
@@ -1,14 +1,14 @@
1 1
 Summary:	Boost 
2 2
 Name:		boost
3
-Version:	1.56.0
4
-Release:	2%{?dist}
3
+Version:	1.60.0
4
+Release:	1%{?dist}
5 5
 License:	Boost Software License V1
6 6
 URL:		http://www.boost.org/
7 7
 Group:		System Environment/Security
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution:	Photon
10
-Source0:	http://downloads.sourceforge.net/boost/boost_1_56_0.tar.bz2
11
-%define sha1 boost=f94bb008900ed5ba1994a1072140590784b9b5df
10
+Source0:	http://downloads.sourceforge.net/boost/boost_1_60_0.tar.bz2
11
+%define sha1 boost=7f56ab507d3258610391b47fef6b11635861175a
12 12
 BuildRequires:	bzip2-devel
13 13
 
14 14
 %description
... ...
@@ -25,7 +25,7 @@ The boost-devel package contains libraries, header files and documentation
25 25
 for developing applications that use boost.
26 26
 
27 27
 %prep
28
-%setup -qn boost_1_56_0
28
+%setup -qn boost_1_60_0
29 29
 %build
30 30
 ./bootstrap.sh --prefix=%{buildroot}%{_prefix}
31 31
 ./b2 %{?_smp_mflags} stage threading=multi link=shared
... ...
@@ -1,22 +1,19 @@
1 1
 %define _use_internal_dependency_generator 0
2 2
 Summary:	Contains the GNU compiler collection
3 3
 Name:		gcc
4
-Version:	4.8.2
5
-Release:	6%{?dist}
4
+Version:	5.3.0
5
+Release:	1%{?dist}
6 6
 License:	GPLv2+
7 7
 URL:		http://gcc.gnu.org
8 8
 Group:		Development/Tools
9 9
 Vendor:		VMware, Inc.
10 10
 Distribution:	Photon
11 11
 Source0:	http://ftp.gnu.org/gnu/gcc/%{name}-%{version}/%{name}-%{version}.tar.bz2
12
-%define sha1 gcc=810fb70bd721e1d9f446b6503afe0a9088b62986
12
+%define sha1 gcc=0612270b103941da08376df4d0ef4e5662a2e9eb
13 13
 Requires:	libstdc++-devel
14 14
 Requires:	libgcc-devel
15 15
 Requires:	libgomp-devel
16 16
 Requires:	gmp
17
-Requires:   glibc-devel
18
-Requires:   linux-api-headers
19
-Requires:   binutils
20 17
 %description
21 18
 The GCC package contains the GNU compiler collection,
22 19
 which includes the C and C++ compilers.
... ...
@@ -72,27 +69,27 @@ This package contains development headers and static library for libgomp
72 72
 
73 73
 %prep
74 74
 %setup -q
75
-case `uname -m` in
76
-	i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;;
77
-esac
78
-sed -i -e /autogen/d -e /check.sh/d fixincludes/Makefile.in
79
-mv -v libmudflap/testsuite/libmudflap.c++/pass41-frag.cxx{,.disable}
75
+sed -i '/*cpp:/s/^/# /' `dirname $(gcc --print-libgcc-file-name)`/../specs
76
+sed -i '/Ofast:-D_FORTIFY_SOURCE=2/s/^/# /' `dirname $(gcc --print-libgcc-file-name)`/../specs
77
+
80 78
 install -vdm 755 ../gcc-build
81 79
 %build
82 80
 cd ../gcc-build
83 81
 SED=sed \
84 82
 ../%{name}-%{version}/configure \
85 83
 	--prefix=%{_prefix} \
84
+	--enable-languages=c,c++ \
86 85
 	--enable-shared \
87 86
 	--enable-threads=posix \
88 87
 	--enable-__cxa_atexit \
89 88
 	--enable-clocale=gnu \
90
-	--enable-languages=c,c++ \
89
+ 	--enable-languages=c,c++ \
91 90
 	--disable-multilib \
92 91
 	--disable-bootstrap \
93
-	--with-system-zlib \
94
-	--disable-silent-rules
95
-make %{?_smp_mflags}
92
+	--with-system-zlib
93
+#	--disable-silent-rules
94
+#sed -i '/-D_FORTIFY_SOURCE=2 for preprocessor/,+2d' `dirname $(gcc --print-libgcc-file-name)`/../specs
95
+make
96 96
 %install
97 97
 pushd ../gcc-build
98 98
 make DESTDIR=%{buildroot} install
... ...
@@ -29,7 +29,8 @@ Header files for doing development with libxslt.
29 29
 	--prefix=%{_prefix} \
30 30
 	--bindir=%{_bindir} \
31 31
 	--libdir=%{_libdir} \
32
-	--disable-static
32
+	--disable-static \
33
+	--without-python
33 34
 make %{?_smp_mflags}
34 35
 %install
35 36
 [ %{buildroot} != "/"] && rm -rf %{buildroot}/*
... ...
@@ -24,6 +24,8 @@ The lldpad package comes with utilities to manage an LLDP interface with support
24 24
 
25 25
 %prep
26 26
 %setup -q -n open-lldp-036e314
27
+sed -i "s/AM_CFLAGS = -Wall -Werror -Wextra -Wformat=2/AM_CFLAGS = -Wall -Werror -Wextra -Wformat=2 -std=gnu89/" Makefile.am
28
+sed -i "s/u8 arglen;/u8 arglen = 0;/g" lldp_util.c
27 29
 
28 30
 %build
29 31
 ./bootstrap.sh
30 32
new file mode 100644
... ...
@@ -0,0 +1,61 @@
0
+Submitted By:            Igor Živković <contact@igor-zivkovic.from.hr>
1
+Date:                    2013-06-19
2
+Initial Package Version: 5.2.2
3
+Upstream Status:         Rejected
4
+Origin:                  Arch Linux packages repository
5
+Description:             Adds the compilation of a shared library.
6
+
7
+diff -Naur lua-5.3.0.orig/Makefile lua-5.3.0/Makefile
8
+--- lua-5.3.0.orig/Makefile	2014-10-30 00:14:41.000000000 +0100
9
+@@ -52,7 +52,7 @@
10
+ all:	$(PLAT)
11
+ 
12
+ $(PLATS) clean:
13
+-	cd src && $(MAKE) $@
14
++	cd src && $(MAKE) $@ V=$(V) R=$(R)
15
+ 
16
+ test:	dummy
17
+ 	src/lua -v
18
+diff -Naur lua-5.3.0.orig/src/Makefile lua-5.3.0/src/Makefile
19
+--- lua-5.3.0.orig/src/Makefile	2015-01-05 17:04:52.000000000 +0100
20
+@@ -7,7 +7,7 @@
21
+ PLAT= none
22
+ 
23
+ CC= gcc -std=gnu99
24
+-CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
25
++CFLAGS= -fPIC -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
26
+ LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
27
+ LIBS= -lm $(SYSLIBS) $(MYLIBS)
28
+ 
29
+@@ -29,6 +29,7 @@
30
+ PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris
31
+ 
32
+ LUA_A=	liblua.a
33
++LUA_SO= liblua.so
34
+ CORE_O=	lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
35
+ 	lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
36
+ 	ltm.o lundump.o lvm.o lzio.o
37
+@@ -43,7 +44,7 @@
38
+ LUAC_O=	luac.o
39
+ 
40
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
41
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
42
++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
43
+ ALL_A= $(LUA_A)
44
+ 
45
+ # Targets start here.
46
+@@ -59,6 +60,12 @@
47
+ 	$(AR) $@ $(BASE_O)
48
+ 	$(RANLIB) $@
49
+ 
50
++$(LUA_SO): $(CORE_O) $(LIB_O)
51
++	$(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
52
++	ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
53
++	ln -sf $(LUA_SO).$(R) $(LUA_SO)
54
++
55
++
56
+ $(LUA_T): $(LUA_O) $(LUA_A)
57
+ 	$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
58
+ 
... ...
@@ -1,6 +1,6 @@
1 1
 Summary:	Programming language
2 2
 Name:		lua
3
-Version:	5.2.3
3
+Version:	5.3.2
4 4
 Release:	1%{?dist}
5 5
 License:	MIT
6 6
 URL:		http://www.lua.org
... ...
@@ -8,8 +8,8 @@ Group:		Development/Tools
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution: Photon
10 10
 Source0:	ttp://www.lua.org/ftp/%{name}-%{version}.tar.gz
11
-%define sha1 lua=926b7907bc8d274e063d42804666b40a3f3c124c
12
-Patch0:		lua-5.2.3-shared_library-1.patch
11
+%define sha1 lua=7a47adef554fdca7d0c5536148de34579134a973
12
+Patch0:		lua-5.3.2-shared_library-1.patch
13 13
 BuildRequires:	readline-devel
14 14
 Requires:	readline
15 15
 %description
... ...
@@ -27,19 +27,20 @@ Static libraries and header files for the support library for lua
27 27
 %setup -q
28 28
 %patch0 -p1
29 29
 sed -i '/#define LUA_ROOT/s:/usr/local/:/usr/:' src/luaconf.h
30
+sed -i 's/CFLAGS= -fPIC -O2 /CFLAGS= -fPIC -O2 -DLUA_COMPAT_MODULE /' src/Makefile
30 31
 %build
31 32
 make VERBOSE=1 %{?_smp_mflags} linux
32 33
 %install
33 34
 make %{?_smp_mflags} \
34 35
 	INSTALL_TOP=%{buildroot}/usr TO_LIB="liblua.so \
35
-	liblua.so.5.2 liblua.so.5.2.3" \
36
+	liblua.so.5.3 liblua.so.5.3.2" \
36 37
 	INSTALL_DATA="cp -d" \
37 38
 	INSTALL_MAN=%{buildroot}/usr/share/man/man1 \
38 39
 	install
39 40
 install -vdm 755 %{buildroot}%{_libdir}/pkgconfig
40 41
 cat > %{buildroot}%{_libdir}/pkgconfig/lua.pc <<- "EOF"
41
-	V=5.2
42
-	R=5.2.3
42
+	V=5.3
43
+	R=5.3.2
43 44
 
44 45
 	prefix=/usr
45 46
 	INSTALL_BIN=${prefix}/bin
... ...
@@ -57,7 +58,7 @@ cat > %{buildroot}%{_libdir}/pkgconfig/lua.pc <<- "EOF"
57 57
 	Libs: -L${libdir} -llua -lm
58 58
 	Cflags: -I${includedir}
59 59
 EOF
60
-rmdir %{buildroot}%{_libdir}/lua/5.2
60
+rmdir %{buildroot}%{_libdir}/lua/5.3
61 61
 rmdir %{buildroot}%{_libdir}/lua
62 62
 %clean
63 63
 rm -rf %{buildroot}
... ...
@@ -49,8 +49,8 @@ Requires:	%{name} = %{version}
49 49
 sed -i 's/gzip -d -c $^ | tar xf -/tar --no-same-owner -xf $^/' 3rdparty/Makefile.in
50 50
 sed -i 's/gzip -d -c $^ | tar xf -/tar --no-same-owner -xf $^/' 3rdparty/libprocess/3rdparty/Makefile.in
51 51
 ./configure \
52
-	CFLAGS="%{optflags}" \
53
-	CXXFLAGS="%{optflags}" \
52
+	CFLAGS="%{optflags} -Wno-deprecated-declarations"  \
53
+	CXXFLAGS="%{optflags} -Wno-deprecated-declarations" \
54 54
 	--disable-silent-rules \
55 55
 	--prefix=%{_prefix} \
56 56
 	--bindir=%{_bindir} \
... ...
@@ -1,15 +1,15 @@
1 1
 Summary:	Libraries for terminal handling of character screens
2 2
 Name:		ncurses
3
-Version:	5.9
4
-Release:	4%{?dist}
3
+Version:	6.0
4
+Release:	1%{?dist}
5 5
 License:	MIT
6 6
 URL:		http://www.gnu.org/software/ncurses
7 7
 Group:		Applications/System
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution: 	Photon
10 10
 Source0:	ftp://ftp.gnu.org/gnu/ncurses/%{name}-%{version}.tar.gz
11
-%define sha1 ncurses=3e042e5f2c7223bffdaac9646a533b8c758b65b5
12
-Provides:       libncurses.so.5()(64bit)
11
+%define sha1 ncurses=acd606135a5124905da770803c05f1f20dd3b21c
12
+Provides:       libncurses.so.6()(64bit)
13 13
 %description
14 14
 The Ncurses package contains libraries for terminal-independent
15 15
 handling of character screens.
... ...
@@ -47,14 +47,14 @@ ln -sfv libncurses.so %{buildroot}%{_libdir}/libcurses.so
47 47
 ln -sfv libncursesw.a %{buildroot}%{_libdir}/libcursesw.a
48 48
 ln -sfv libncurses.a %{buildroot}%{_libdir}/libcurses.a
49 49
 install -vdm 755  %{buildroot}%{_defaultdocdir}/%{name}-%{version}
50
-ln -sv %{_lib}/libncursesw.so.5.9 %{buildroot}%{_libdir}/libncurses.so.5
50
+ln -sv %{_lib}/libncursesw.so.6.0 %{buildroot}%{_libdir}/libncurses.so.6
51 51
 cp -v -R doc/* %{buildroot}%{_defaultdocdir}/%{name}-%{version}
52 52
 %post	-p /sbin/ldconfig
53 53
 %postun	-p /sbin/ldconfig
54 54
 %files
55 55
 %defattr(-,root,root)
56 56
 %{_bindir}/captoinfo
57
-%{_bindir}/ncursesw5-config
57
+%{_bindir}/ncursesw6-config
58 58
 %{_bindir}/clear
59 59
 %{_bindir}/tabs
60 60
 %{_bindir}/tic
... ...
@@ -64,46 +64,27 @@ cp -v -R doc/* %{buildroot}%{_defaultdocdir}/%{name}-%{version}
64 64
 %{_bindir}/tput
65 65
 %{_bindir}/infotocap
66 66
 %{_bindir}/toe
67
-%{_libdir}/libmenuw.so.5
68
-%{_libdir}/libformw.so.5.9
69
-%{_libdir}/libmenuw.so.5.9
70
-%{_libdir}/libpanelw.so.5
71
-%{_libdir}/libpanelw.so.5.9
72
-%{_libdir}/libformw.so.5
67
+%{_libdir}/libmenuw.so.*
68
+%{_libdir}/libformw.so.*
69
+%{_libdir}/libmenuw.so.*
70
+%{_libdir}/libpanelw.so.*
71
+%{_libdir}/libpanelw.so.*
72
+%{_libdir}/libformw.so.*
73 73
 %{_datadir}/tabset/*
74
-%{_docdir}/ncurses-5.9/html/*
75
-%{_docdir}/ncurses-5.9/*.doc
74
+%{_docdir}/ncurses-6.0/html/*
75
+%{_docdir}/ncurses-6.0/*.doc
76 76
 %{_mandir}/man7/*
77 77
 %{_mandir}/man1/*
78 78
 %{_mandir}/man5/*
79 79
 %{_mandir}/man3/*
80 80
 %{_datadir}/terminfo/*
81
-%{_libdir}/libncursesw.so.5
82
-%{_libdir}/libncursesw.so.5.9
83
-%{_libdir}/libncurses.so.5
81
+%{_libdir}/libncursesw.so.*
82
+%{_libdir}/libncursesw.so.*
83
+%{_libdir}/libncurses.so.*
84 84
 %{_libdir}/terminfo
85 85
 
86 86
 %files devel
87
-%{_includedir}/cursesm.h
88
-%{_includedir}/form.h
89
-%{_includedir}/cursslk.h
90
-%{_includedir}/ncurses.h
91
-%{_includedir}/cursesw.h
92
-%{_includedir}/termcap.h
93
-%{_includedir}/unctrl.h
94
-%{_includedir}/term.h
95
-%{_includedir}/eti.h
96
-%{_includedir}/ncurses_dll.h
97
-%{_includedir}/curses.h
98
-%{_includedir}/cursesapp.h
99
-%{_includedir}/menu.h
100
-%{_includedir}/tic.h
101
-%{_includedir}/panel.h
102
-%{_includedir}/etip.h
103
-%{_includedir}/term_entry.h
104
-%{_includedir}/cursesp.h
105
-%{_includedir}/nc_tparm.h
106
-%{_includedir}/cursesf.h
87
+%{_includedir}/*.h
107 88
 %{_libdir}/libncurses.a
108 89
 %{_libdir}/libformw.a
109 90
 %{_libdir}/libpanel.a
... ...
@@ -32,7 +32,7 @@ It contains the libraries and header files to create applications
32 32
 %prep
33 33
 %setup -q -n %{name}-%{version}
34 34
 %build
35
-./configure --prefix=/usr --with-gpm-support
35
+./configure --prefix=/usr --with-gpm-support --without-python
36 36
 make
37 37
 %install
38 38
 make DESTDIR=%{buildroot} install
... ...
@@ -15,8 +15,6 @@ BuildRequires: python-setuptools
15 15
 Requires:       python2
16 16
 Requires:		python2-libs
17 17
 
18
-BuildArch:      noarch
19
-
20 18
 %description
21 19
 This package is intended to be independently reusable in any Python project. It is maintained by the Zope Toolkit project.
22 20
 
... ...
@@ -57,7 +57,7 @@ mv db-5.3.28 db
57 57
 %build
58 58
 ./autogen.sh --noconfigure
59 59
 ./configure \
60
-	CPPFLAGS='-I/usr/include/nspr -I/usr/include/nss' \
60
+	CPPFLAGS='-I/usr/include/nspr -I/usr/include/nss -DLUA_COMPAT_APIINTCASTS' \
61 61
         --program-prefix= \
62 62
         --prefix=%{_prefix} \
63 63
         --exec-prefix=%{_prefix} \
... ...
@@ -35,7 +35,8 @@ sed -i -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' $(grep -rl '/etc/adjtime' .)
35 35
 ./configure \
36 36
 	--disable-nologin \
37 37
 	--disable-silent-rules \
38
-	--disable-static
38
+	--disable-static \
39
+	--without-python
39 40
 make %{?_smp_mflags}
40 41
 %install
41 42
 install -vdm 755 %{buildroot}%{_sharedstatedir}/hwclock
... ...
@@ -81,40 +81,8 @@ class ToolChainUtils(object):
81 81
         self.logger.info("Successfully prepared chroot:"+chrootID)
82 82
 
83 83
     def installToolChain(self,chrootID):
84
-        self.logger.info("Installing toolchain.....")
85
-        self.prepareBuildRoot(chrootID)
86
-        cmdUtils = CommandUtils()
87
-
88
-        rpmFiles = ""
89
-        packages = ""
90
-        for package in constants.listToolChainRPMPkgsToInstall:
91
-            pkgUtils=PackageUtils(self.logName,self.logPath)
92
-            rpmFile=pkgUtils.findRPMFileForGivenPackage(package)
93
-            if rpmFile is None:
94
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
95
-                if rpmFile is None:
96
-                    if package == "util-linux-devel":
97
-                        self.logger.info("No old verion of util-linux-devel exists, skip until the new version is built")
98
-                        continue
99
-                    if package == "flex-devel":
100
-                        self.logger.info("No old verion of flex-devel exists, skip until the new version is built")
101
-                        continue
102
-
103
-                    self.logger.error("Unable to find rpm "+ package +" in current and previous versions")
104
-                    raise Exception("Input Error")
105
-            rpmFiles += " " + rpmFile
106
-            packages += " " + package
84
+        self.installToolChain2(chrootID,constants.listToolChainRPMPkgsToInstall)
107 85
 
108
-        self.logger.debug("Installing toolchain rpms:" + packages)
109
-        cmd=self.rpmCommand + " -i --nodeps --force --root "+chrootID+" --define \'_dbpath /var/lib/rpm\' "+ rpmFiles
110
-        process = subprocess.Popen("%s" %cmd,shell=True,stdout=subprocess.PIPE)
111
-        retval = process.wait()
112
-        if retval != 0:
113
-            self.logger.error("Installing toolchain rpms failed")
114
-            raise Exception("RPM installation failed")
115
-        
116
-        self.logger.info("Installed toolchain successfully on chroot:"+chrootID)
117
-    
118 86
     def installCoreToolChainPackages(self,chrootID):
119 87
         self.logger.info("Installing toolchain.....")
120 88
         cmdUtils = CommandUtils()
... ...
@@ -197,35 +165,61 @@ class ToolChainUtils(object):
197 197
             raise e
198 198
                 
199 199
     def installToolChainRPMS(self,chrootID):
200
-        cmdUtils = CommandUtils()
200
+        self.installToolChain2(chrootID,constants.listToolChainRPMPkgsToBuild)
201
+
202
+    def installToolChain2(self,chrootID,packagesInToolChain):
203
+        self.logger.info("Installing toolchain.....")
201 204
         self.prepareBuildRoot(chrootID)
202
-        self.logger.info("Installing Tool Chain RPMS.......")
205
+        cmdUtils = CommandUtils()
206
+
203 207
         rpmFiles = ""
204 208
         packages = ""
205
-        for package in constants.listToolChainRPMPkgsToBuild:
209
+        for package in packagesInToolChain:
206 210
             pkgUtils=PackageUtils(self.logName,self.logPath)
207
-            rpmFile=pkgUtils.findRPMFileForGivenPackage(package)
208
-            if rpmFile is None:
209
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
210
-                if rpmFile is None:
211
+            currentRpmFile=pkgUtils.findRPMFileForGivenPackage(package)
212
+
213
+            prevPublishedRpmFile=None
214
+            if currentRpmFile is None or ("-devel" not in package and "-lib" not in package and "perl" not in package):
215
+                prevPublishedRpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
216
+                if prevPublishedRpmFile is None:
211 217
                     if package == "util-linux-devel":
212 218
                         self.logger.info("No old verion of util-linux-devel exists, skip until the new version is built")
213 219
                         continue
214 220
                     if package == "flex-devel":
215 221
                         self.logger.info("No old verion of flex-devel exists, skip until the new version is built")
216 222
                         continue
223
+
217 224
                     self.logger.error("Unable to find rpm "+ package +" in current and previous versions")
218 225
                     raise Exception("Input Error")
219
-            rpmFiles += " " + rpmFile
220
-            packages += " " + package
221 226
 
222
-        self.logger.debug("Installing rpms:"+packages)
227
+            if (currentRpmFile is not None) and (prevPublishedRpmFile is not None):
228
+                temp = currentRpmFile[len(package)+ 1:]
229
+                currentRpmVersion = temp[:temp.find('-')]
230
+                temp = prevPublishedRpmFile[len(package)+1:]
231
+                prevPublishedRpmVersion = temp[:temp.find('-')]
232
+                if(currentRpmVersion != prevPublishedRpmVersion):
233
+                    rpmFiles += " " + prevPublishedRpmFile
234
+                    packages += " " + package
235
+                rpmFiles += " " + currentRpmFile
236
+                packages += " " + package
237
+
238
+            else:
239
+                if  prevPublishedRpmFile is not None:
240
+                    rpmFiles += " " + prevPublishedRpmFile
241
+                    packages += " " + package
242
+
243
+                if currentRpmFile is not None:
244
+                    rpmFiles += " " + currentRpmFile
245
+                    packages += " " + package
246
+
247
+
248
+        self.logger.debug("Installing toolchain rpms:" + packages)
249
+        self.logger.debug("Installing toolchain rpms:" + rpmFiles)
223 250
         cmd=self.rpmCommand + " -i --nodeps --force --root "+chrootID+" --define \'_dbpath /var/lib/rpm\' "+ rpmFiles
224 251
         process = subprocess.Popen("%s" %cmd,shell=True,stdout=subprocess.PIPE)
225 252
         retval = process.wait()
226 253
         if retval != 0:
227
-            self.logger.error("Installing tool chain  failed")
254
+            self.logger.error("Installing toolchain rpms failed")
228 255
             raise Exception("RPM installation failed")
229
-            
230
-        self.logger.info("Successfully installed all Tool Chain RPMS in Chroot:"+chrootID)    
231
-    
256
+        
257
+        self.logger.info("Installed toolchain successfully on chroot:"+chrootID)
... ...
@@ -28,12 +28,12 @@ class constants(object):
28 28
     listCoreToolChainRPMPackages=["linux-api-headers", "glibc","glibc-devel",  "zlib","zlib-devel",  "file",
29 29
         "binutils","binutils-devel",  "gmp","gmp-devel", "mpfr", "mpfr-devel", "mpc",
30 30
         "libgcc","libgcc-devel","libstdc++","libstdc++-devel","libgomp","libgomp-devel","gcc",
31
-        "pkg-config","bash"]
31
+        "pkg-config", "ncurses", "readline","bash"]
32 32
     
33 33
     listToolChainRPMPkgsToInstall=["linux-api-headers", "glibc","glibc-devel",  "zlib","zlib-devel",  "file",
34 34
         "binutils","binutils-devel",  "gmp","gmp-devel", "mpfr", "mpfr-devel", "mpc",
35 35
         "libgcc","libgcc-devel","libstdc++","libstdc++-devel","libgomp","libgomp-devel","gcc",
36
-        "pkg-config", "ncurses", "bash", "bzip2", "sed","procps-ng","coreutils", "m4","grep",
36
+        "pkg-config", "ncurses", "bash", "bzip2", "bzip2-devel","sed","procps-ng","coreutils", "m4","grep",
37 37
         "readline","diffutils","gawk", "findutils", "gettext", "gzip","make",  "patch",
38 38
         "util-linux", "util-linux-devel", "tar", "xz","libtool", "flex", "flex-devel",  "bison",
39 39
         "lua","popt","nspr","sqlite-autoconf","nss","elfutils-libelf",