Skip to content

Commit

Permalink
Bug 237: version compare with any version i.e alpha, +, a1, rc ...
Browse files Browse the repository at this point in the history
  • Loading branch information
hoangle committed Sep 5, 2014
1 parent d9f5e0c commit 6b9c262
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 66 deletions.
47 changes: 16 additions & 31 deletions install.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ def __init__(self):
self.DO_SYMLINKS = True
self.HOME = self.expand_path('~')
self.OFFLINE = False
self.INTERNET = True
self.WITH_CM_BUILD = False
self.INTERNET = True
self.WITH_CM_BUILD = False
# ------------------------------------------------------------------------------
self.NEED_TIPC_CONFIG = False
self.TIPC_CONFIG_VERSION = ''
Expand All @@ -125,7 +125,7 @@ def __init__(self):


if (sys.argv[0].count('/') >= 2 or len(sys.argv[0]) > len('./install.py')):
self.feedback('Error: Please invoke this sript from its own directory as "./install.py"', True)
self.feedback('Error: Please invoke this script from its own directory as "./install.py"', True)

# look in our VERSION file to get ASP_VERSION and ASP_REVISION
try:
Expand Down Expand Up @@ -382,13 +382,6 @@ def queueInstall(self):
# do we need reinstallation?
for qdep in self.installQueue:
if qdep.name in ('net-snmp', 'openhpi'):

# if not os.path.isfile('/usr/lib/libelf.so'):
# cmd = 'ln -fs /usr/lib/libelf.so.1 /usr/lib/libelf.so'
# self.debug('calling cmd: ' + cmd)
# ret_code = cli_cmd(cmd)


self.installQueue.append(dep)
continue
else:
Expand All @@ -406,15 +399,12 @@ def queueInstall(self):

if ret_code == 1:
# self.feedback('retcode = %s' %ret_code)

#wrong cmd
#if int(syscall('uname -r').split('.')[2]) < 15:
if int((syscall('uname -r').split('.')[2]).split('-')[0]) < 15:
if self.version_compare("2.7", syscall('uname -r')): # kernel version < 2.7
# do install
dep.installedver = 'None'
self.installQueue.append(dep)
else :
if(self.INTERNET == False) :
else:
if(self.INTERNET == False):
os.chdir(self.PRE_INSTALL_PKG)
syscall('cp -f tipc.ko /lib/modules/`uname -r`/extra/')
syscall('cp -f tipc.conf /etc/modprobe.d/')
Expand All @@ -426,35 +416,31 @@ def queueInstall(self):
if test_tipc == 1 :
self.feedback('Error: cannot install tipc. Please install tipc manually.', True)
else :
self.feedback('Install tipc successfully.')
self.feedback('Install tipc successfully.')
syscall('cp -f %s/%s/tipc_config.h /usr/include/linux/' %((os.path.dirname(self.WORKING_DIR)),PRE_INSTALL_PKG_NAME))
syscall('cp -f %s/%s/tipc.h /usr/include/linux/' %((os.path.dirname(self.WORKING_DIR)),PRE_INSTALL_PKG_NAME))
syscall('rm -rf %s/%s'%((os.path.dirname(self.WORKING_DIR)),PRE_INSTALL_PKG_NAME))
else :
else:
dep.installedver = 'None'
self.installQueue.append(dep)
self.NEED_TIPC_CONFIG = True
else: #ret_code == 0
#assert ret_code == 0
# self.feedback('retcode = %s' %ret_code)
self.NEED_TIPC_CONFIG = True
self.NEED_TIPC_CONFIG = True
else:
self.NEED_TIPC_CONFIG = True
dep.installedver = syscall('/sbin/modinfo tipc | grep \'^version\' | tr -s " " | cut -d\ -f 2') # fixme, does this work


elif dep.name == 'tipc-config' and self.NEED_TIPC_CONFIG:
cmd = 'which tipc-config 2>/dev/null'
self.debug('calling cmd: ' + cmd)
ret_code = cli_cmd(cmd)

if ret_code != 0:
# install tipc_config

cmd = '/sbin/modinfo tipc > /dev/null 2>&1;'
self.debug('calling cmd: ' + cmd)
ret_code = cli_cmd(cmd)
if ret_code != 0: # no tipc module installed
dep.installedver = 'None'
self.installQueue.append(dep)
self.installQueue.append(dep)
continue

TIPC_MODULE_VERSION = syscall('/sbin/modinfo tipc | grep \'^version\' | tr -s " " | cut -d\ -f 2')
Expand All @@ -467,13 +453,13 @@ def queueInstall(self):
self.TIPC_CONFIG_VERSION = dep.pkg_name
self.installQueue.append(dep)
continue

if TIPC_MINOR_VERSION == 5:
dep.installedver = 'Installed'
continue

elif TIPC_MINOR_VERSION == 6:
self.TIPC_CONFIG_VERSION = 'tipcutils-1.0.4.tar.gz'
self.TIPC_CONFIG_VERSION = 'tipcutils-1.0.4.tar.gz'
dep.pkg_name = self.TIPC_CONFIG_VERSION
elif TIPC_MINOR_VERSION == 7:
self.TIPC_CONFIG_VERSION = 'tipcutils-1.1.9.tar.gz'
Expand All @@ -486,7 +472,6 @@ def queueInstall(self):
self.installQueue.append(dep)
continue


else: #ret_code non zero
# tipc config installed
dep.installedver = 'Installed'
Expand Down Expand Up @@ -1085,7 +1070,7 @@ def doInstallation(self):
#myfile.write("CONFIG_TIPC=m\nCONFIG_TIPC_ADVANCED=y\nCONFIG_TIPC_NETID=4711\nCONFIG_TIPC_REMOTE_MNG=y\nCONFIG_TIPC_PORTS=8191\nCONFIG_TIPC_NODES=255\nCONFIG_TIPC_CLUSTERS=8\nCONFIG_TIPC_ZONES=4\nCONFIG_TIPC_REMOTES=8\nCONFIG_TIPC_PUBL=10000\nCONFIG_TIPC_SUBSCR=2000\nCONFIG_TIPC_LOG=0\nCONFIG_TIPC_UNICLUSTER_FRIENDLY=y\nCONFIG_TIPC_MULTIPLE_LINKS=y\nCONFIG_TIPC_CONFIG_SERVICE=y\nCONFIG_TIPC_SOCKET_API=y\n")
#myfile.close()
syscall('echo "CONFIG_TIPC=m\nCONFIG_TIPC_ADVANCED=y\nCONFIG_TIPC_NETID=4711\nCONFIG_TIPC_REMOTE_MNG=y\nCONFIG_TIPC_PORTS=8191\nCONFIG_TIPC_NODES=255\nCONFIG_TIPC_CLUSTERS=8\nCONFIG_TIPC_ZONES=4\nCONFIG_TIPC_REMOTES=8\nCONFIG_TIPC_PUBL=10000\nCONFIG_TIPC_SUBSCR=2000\nCONFIG_TIPC_LOG=0\nCONFIG_TIPC_UNICLUSTER_FRIENDLY=y\nCONFIG_TIPC_MULTIPLE_LINKS=y\nCONFIG_TIPC_CONFIG_SERVICE=y\nCONFIG_TIPC_SOCKET_API=y\nCONFIG_TIPC_SYSTEM_MSGS=y\nCONFIG_TIPC_DEBUG=y" >> .config')
self.feedback('make prepare and init module(might fail which is ok)')
self.feedback('make prepare and init module (might fail which is ok)')
#syscall('make prepare')
syscall('make modules_prepare 2>&1')
syscall('make init 2>&1')
Expand Down
65 changes: 30 additions & 35 deletions src/install/packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
import os
import objects
from common import *
from distutils.version import *

cmp_version = lambda x, y: LooseVersion(x).__cmp__(y) #Equal 0, greater 1, lesser -1

# ------------------------------------------------------------------------------

Expand All @@ -21,15 +23,11 @@ def __init__(self):


try:
self.gccVer = [int(x) for x in syscall('gcc --version')[0].split()[3].split(".")]
self.gccVer = syscall('gcc --version')[0].split()[3]
except IndexError: # Most likely no gcc installed
self.gccVer = None

self.kernelVerString = syscall('uname -r')
self.kernelVer = self.kernelVerString.split(".")
self.kernelVer[0] = int(self.kernelVer[0])
self.kernelVer[1] = int(self.kernelVer[1])
self.kernelVer[2] = int((self.kernelVer[2].split("-"))[0])


self.bit = determine_bit()
Expand Down Expand Up @@ -81,11 +79,10 @@ def tipcConfigBuild(self):

def openHpiSubagentBuildCmds(self,EXPORT,log):
squelchWarn = ""
if not self.gccVer:
if self.gccVer:
try:
self.gccVer = [int(x) for x in syscall('gcc --version')[0].split()[3].split(".")]
if self.gccVer[0] > 4 or (self.gccVer[0] == 4 and self.gccVer[1] > 5):
squelchWarn = "-Wno-error=unused-but-set-variable"
if cmp_version(self.gccVer, "4.5") > 0:
squelchWarn = "-Wno-error=unused-but-set-variable"
except Exception, e:
#assert e, "Cannot determine C compiler version"
pass
Expand Down Expand Up @@ -263,28 +260,29 @@ def load_install_deps(self):

TIPC = objects.BuildDep()
TIPC.name = 'tipc'
if self.kernelVer[0] == 2 and self.kernelVer[1] == 6:
if self.kernelVer[2] >= 39:
TIPC.version = '2.0'
TIPC.pkg_name = None
TIPC_CONFIG.version = '2.0.2'
TIPC_CONFIG.pkg_name = 'tipcutils-2.0.2.tar.gz' #default name, can change
elif self.kernelVer[2] >= 34:
TIPC.version = '2.0'
TIPC.pkg_name = None
TIPC_CONFIG.version = '2.0.0'
TIPC_CONFIG.pkg_name = 'tipcutils-2.0.0.tar.gz' #default name, can change
elif self.kernelVer[2] >= 16:
TIPC.version = '1.7.7'
TIPC.pkg_name = 'tipc-1.7.7.tar.gz'
TIPC_CONFIG.version = '1.1.9'
TIPC_CONFIG.pkg_name = 'tipcutils-1.1.9.tar.gz' #default name, can change
elif self.kernelVer[2] >= 9:
TIPC.version = '1.5.12'
TIPC.pkg_name = 'tipc-1.5.12.tar.gz'


if cmp_version(self.kernelVerString, "2.7") < 0:
if cmp_version(self.kernelVerString, "2.6.39") > 0:
TIPC.version = '2.0'
TIPC.pkg_name = None
TIPC_CONFIG.version = '2.0.2'
TIPC_CONFIG.pkg_name = 'tipcutils-2.0.2.tar.gz' #default name, can change
elif cmp_version(self.kernelVerString, "2.6.34") > 0:
TIPC.version = '2.0'
TIPC.pkg_name = None
TIPC_CONFIG.version = '2.0.0'
TIPC_CONFIG.pkg_name = 'tipcutils-2.0.0.tar.gz' #default name, can change
elif cmp_version(self.kernelVerString, "2.6.16") > 0:
TIPC.version = '1.7.7'
TIPC.pkg_name = 'tipc-1.7.7.tar.gz'
TIPC_CONFIG.version = '1.1.9'
TIPC_CONFIG.pkg_name = 'tipcutils-1.1.9.tar.gz' #default name, can change
elif cmp_version(self.kernelVerString, "2.6.9") > 0:
TIPC.version = '1.5.12'
TIPC.pkg_name = 'tipc-1.5.12.tar.gz'

log = self.log_string_for_dep(TIPC.name)

# tipc has a special case in install.py marked: # SPECIAL CASE, TIPC
#TIPC.ver_test_cmd = ':'

Expand All @@ -293,13 +291,10 @@ def load_install_deps(self):
'cp net/tipc/tipc.ko $PREFIX/modules',
'cp tools/tipc-config $PREFIX/bin',
'cp include/net/tipc/*.h $PREFIX/include']

if int(self.kernelVer[2]) < 16:
pass
else:

if cmp_version(self.kernelVerString, "2.6.16") > 0:
TIPC.build_cmds.append('mkdir -p $PREFIX/include/linux >/dev/null 2>&1')
TIPC.build_cmds.append('cp include/net/tipc/*.h $PREFIX/include/linux')


# ------------------------------------------------------------------------------
# TIPC_CONFIG
Expand Down

0 comments on commit 6b9c262

Please sign in to comment.