--- SConstruct.orig	2011-04-17 17:57:09 UTC
+++ SConstruct
@@ -2,13 +2,13 @@
 # -*- coding: utf-8 -*-
 
 import os
-import commands
+import subprocess as commands
 import string
 
 try:
 	from bzrlib import branch
 except ImportError:
-	print "bzrlib not installed"
+	print("bzrlib not installed")
 
 EnsureSConsVersion(0, 98, 1)
 
@@ -20,7 +20,7 @@ BUILD_LOCALE_PATH = BUILD_PATH + 'locale/'
 BUILD_FLAGS = {
 	'common'  : ['-I#', '-D_GNU_SOURCE', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_REENTRANT'],
 	'debug'   : ['-g', '-ggdb', '-Wall', '-D_DEBUG'], 
-	'release' : ['-O3', '-fomit-frame-pointer', '-DNDEBUG']
+	'release' : ['-fomit-frame-pointer', '-DNDEBUG']
 }
 
 # ----------------------------------------------------------------------
@@ -49,7 +49,7 @@ def check_cxx_version(context, name, major, minor):
 		or (string.atoi(ret[0]) > major)):
 			retval = 1
 	except ValueError:
-		print "No C++ compiler found!"
+		print("No C++ compiler found!")
 
 	context.Result(retval)
 	return retval
@@ -62,7 +62,7 @@ def check_bzr_revision(context):
 		b = branch.Branch.open('.')
 		revision = str(b.revno())
 	except:
-		print "failed"
+		print("failed")
 
 	context.env['BZR_REVISION'] = revision
 	context.Result(revision)
@@ -106,6 +106,7 @@ else:
 vars.AddVariables(
 	BoolVariable('debug', 'Compile the program with debug information', 0),
 	BoolVariable('release', 'Compile the program with optimizations', 0),
+	BoolVariable('libnotify', 'Enable notifications through libnotify', 1),
 	BoolVariable('profile', 'Compile the program with profiling information', 0),
 	PathVariable('PREFIX', 'Compile the program with PREFIX as the root for installation', '/usr/local', PathVariable.PathIsDir),
 	('FAKE_ROOT', 'Make scons install the program under a fake root', '')
@@ -121,24 +122,33 @@ env = Environment(ENV = os.environ, variables = vars, 
 env['mode'] = 'debug' if env.get('debug') else 'release'
 env['build_path'] = BUILD_PATH + env['mode'] + '/'
 
-if os.environ.has_key('CXX'):
+if 'CXX' in os.environ:
 	env['CXX'] = os.environ['CXX']
 else:
-	print 'CXX env variable is not set, attempting to use g++'
+	print('CXX env variable is not set, attempting to use g++')
 	env['CXX'] = 'g++'
 
-if os.environ.has_key('CC'):
+if 'CC' in os.environ:
 	env['CC'] = os.environ['CC']
 
-if os.environ.has_key('CXXFLAGS'):
-	env['CPPFLAGS'] = env['CXXFLAGS'] = os.environ['CXXFLAGS'].split()
+if 'CXXFLAGS' in os.environ:
+	env['CXXFLAGS'] = os.environ['CXXFLAGS'].split()
 
-if os.environ.has_key('LDFLAGS'):
+if 'CPPFLAGS' in os.environ:
+	env['CPPFLAGS'] = os.environ['CPPFLAGS'].split()
+
+if 'LDFLAGS' in os.environ:
 	env['LINKFLAGS'] = os.environ['LDFLAGS'].split()
 
-if os.environ.has_key('CFLAGS'):
+if 'CFLAGS' in os.environ:
 	env['CFLAGS'] = os.environ['CFLAGS'].split()
 
+if 'CPPPATH' in os.environ:
+	env['CPPPATH'] = os.environ['CPPPATH'].split()
+
+if 'LIBPATH' in os.environ:
+	env['LIBPATH'] = os.environ['LIBPATH'].split()
+
 env['CPPDEFINES'] = [] # Initialize as a list so Append doesn't concat strings
 
 env.SConsignFile('build/sconf/.sconsign')
@@ -185,33 +195,29 @@ conf = env.Configure(
 
 if not 'install' in COMMAND_LINE_TARGETS:
 
-	if not conf.CheckCXXVersion(env['CXX'], 4, 1):
-		print 'Compiler version check failed. g++ 4.1 or later is needed'
-		Exit(1)
-
 	if not conf.CheckPKGConfig():
-		print '\tpkg-config not found.'
+		print('\tpkg-config not found.')
 		Exit(1)
 
 	if not conf.CheckPKG('gtk+-2.0 >= 2.12'):
-		print '\tgtk+ >= 2.12 not found.'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tgtk+ >= 2.12 not found.')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	if not conf.CheckPKG('gthread-2.0 >= 2.4'):
-		print '\tgthread >= 2.4 not found.'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tgthread >= 2.4 not found.')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	if not conf.CheckPKG('libglade-2.0 >= 2.4'):
-		print '\tlibglade-2.0 >= 2.4 not found.'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tlibglade-2.0 >= 2.4 not found.')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	
 	if not conf.CheckCXXHeader('boost/version.hpp', '<>'):
-		print '\tboost not found.'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tboost not found.')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	if not conf.CheckHeader('time.h'):
@@ -224,53 +230,52 @@ if not 'install' in COMMAND_LINE_TARGETS:
 		Exit(1)
 
 	if not conf.CheckLibWithHeader('pthread', 'pthread.h', 'c'):
-		print '\tpthread library not found'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tpthread library not found')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	if not conf.CheckLibWithHeader('z', 'zlib.h', 'c'):
-		print '\tz library (gzip/z compression) not found'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tz library (gzip/z compression) not found')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	if not conf.CheckLibWithHeader('bz2', 'bzlib.h', 'c'):
-		print '\tbz2 library (bz2 compression) not found'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tbz2 library (bz2 compression) not found')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	# This needs to be before ssl check on *BSD systems
 	if not conf.CheckLib('crypto'):
-		print '\tcrypto library not found'
-		print '\tNote: This library may be a part of libssl on your system'
+		print('\tcrypto library not found')
+		print('\tNote: This library may be a part of libssl on your system')
 		Exit(1)
 
 	if not conf.CheckLibWithHeader('ssl', 'openssl/ssl.h', 'c'):
-		print '\tOpenSSL library (libssl) not found'
-		print '\tNote: You might have the lib but not the headers'
+		print('\tOpenSSL library (libssl) not found')
+		print('\tNote: You might have the lib but not the headers')
 		Exit(1)
 
 	# Needed for XFlush(). Headers shouldn't be needed since we include gdk/gdkx.h
 	if not conf.CheckLib('X11'):
-		print '\tX11 library not found'
+		print('\tX11 library not found')
 		Exit(1)
 
 	if not conf.CheckHeader('iconv.h'):
 		Exit(1)
-	elif conf.CheckLibWithHeader('iconv', 'iconv.h', 'c', 'iconv(0, (const char **)0, 0, (char**)0, 0);'):
-		conf.env.Append(CPPDEFINES = ('ICONV_CONST', 'const'))
 
 	if conf.CheckHeader(['sys/types.h', 'sys/socket.h', 'ifaddrs.h', 'net/if.h']):
 		conf.env.Append(CPPDEFINES = 'HAVE_IFADDRS_H')
 
 	# TODO: Implement a plugin system so libnotify doesn't have compile-time dependencies
-	if not conf.CheckPKG('libnotify >= 0.4.1'):
-		print '\tlibnotify >= 0.4.1 not found, disabling notifications.'
-		print '\tNote: You might have the lib but not the headers'
-	else:
-		conf.env.Append(CPPDEFINES = 'HAVE_LIBNOTIFY')
-		conf.env.ParseConfig('pkg-config --libs libnotify')
-		if conf.CheckPKG('libnotify >= 0.7'):
-			conf.env.Append(CPPDEFINES = 'HAVE_LIBNOTIFY_0_7')
+	if conf.env.get('libnotify'):
+		if not conf.CheckPKG('libnotify >= 0.4.1'):
+			print('\tlibnotify >= 0.4.1 not found, disabling notifications.')
+			print('\tNote: You might have the lib but not the headers')
+		else:
+			conf.env.Append(CPPDEFINES = 'HAVE_LIBNOTIFY')
+			conf.env.ParseConfig('pkg-config --libs libnotify')
+			if conf.CheckPKG('libnotify >= 0.7'):
+				conf.env.Append(CPPDEFINES = 'HAVE_LIBNOTIFY_0_7')
 
 	conf.CheckBZRRevision()
 
