trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: April 2012

tde-config --version return of 'TDE: R14.0.0 [DEVELOPMENT]' causes build fail in kstreamripper

From: "David C. Rankin" <drankinatty@...>
Date: Mon, 02 Apr 2012 18:01:42 -0500
All,

  I know little about scons or python, but working with kstreamripper it became
apparent that the current 'tde-config --version' return was causing the build to
fail due to the string not including a '3' which causes a chain reaction of
failures:

==> Configuring - tde-kstreamripper...
scons: Reading SConscript files ...

scons: warning: The Options class is deprecated; use the Variables class instead.
File "/build/src/kstreamripper/admin/generic.py", line 61, in generate
** set the installation prefix for the project : /opt/trinity **
Checking for tde-config           :  tde-config was found
Checking for kde version          : IndexError: list index out of range:
  File "/build/src/kstreamripper/SConstruct", line 70:
    env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS,
tools=['default', 'generic', 'kde'], toolpath=['./', './admin'])
  File "/usr/lib/python2.7/site-packages/SCons/Environment.py", line 999:
    apply_tools(self, tools, toolpath)
  File "/usr/lib/python2.7/site-packages/SCons/Environment.py", line 105:
    env.Tool(tool)
  File "/usr/lib/python2.7/site-packages/SCons/Environment.py", line 1783:
    tool(self)
  File "/usr/lib/python2.7/site-packages/SCons/Tool/__init__.py", line 180:
    self.generate(env, *args, **kw)
  File "/build/src/kstreamripper/kde.py", line 416:
    detect_kde(env)
  File "/build/src/kstreamripper/kde.py", line 58:
    kde_version = os.popen("tde-config --version|grep
KDE").read().strip().split()[1]

  The error seems to boil down to the kstreamripper/kde.py check of the kde version:

17:44 nirvana:~/tde/tde/main/applications/kstreamripper> sed -n '58p' kde.py
        kde_version = os.popen("tde-config --version|grep
KDE").read().strip().split()[1]
17:44 nirvana:~/tde/tde/main/applications/kstreamripper> sed -n '416p' kde.py
                detect_kde(env)

  A quick check of what TDE return with 'tde-config --version' confirms the issue:

17:39 valkyrie:~> tde-config --version
Qt: 3.4.0
TDE: R14.0.0 [DEVELOPMENT]
tde-config: 1.0

  Basically, the python code is checking for the kde version as follows:

	print "Checking for kde version          : ",
	kde_version = os.popen("tde-config --version|grep KDE").read().strip().split()[1]
	try:
		env['KDEm1']=int(kde_version[0])
	except:
		pass
	try:
		env['KDEm2']=int(kde_version[2])
	except:
		pass
	try:
		env['KDEm3']=int(kde_version[4])
	except:
		pass
	if int(kde_version[0]) != 3 or int(kde_version[2]) < 2:
		print RED+kde_version
		print RED+"Your kde version can be too old"+NORMAL
		print RED+"Please make sure kde is at least 3.2"+NORMAL
	else:
		print GREEN+kde_version+NORMAL

  So it looks like when the check expects something for kde_version in the form
'3.5.10', instead it gets 'R14.0.0'. How to solve this? There isn't really a
file to patch since the tde-config --version info is returned dynamically.



-- 
David C. Rankin, J.D.,P.E.