Index: site_scons/libdeps.py
--- site_scons/libdeps.py.orig
+++ site_scons/libdeps.py
@@ -61,7 +61,7 @@ syslibdeps_env_var = 'SYSLIBDEPS'
 missing_syslibdep = 'MISSING_LIBDEP_'
 
 class dependency(object):
-    Public, Private, Interface = range(3)
+    Public, Private, Interface = list(range(3))
 
     def __init__(self, value, dynamic, deptype):
         self.target_node = value
@@ -74,7 +74,7 @@ class dependency(object):
 class DependencyCycleError(SCons.Errors.UserError):
     """Exception representing a cycle discovered in library dependencies."""
 
-    def __init__(self, first_node ):
+    def __init__(self, first_node):
         super(DependencyCycleError, self).__init__()
         self.cycle_nodes = [first_node]
 
@@ -89,8 +89,8 @@ def __get_sorted_direct_libdeps(node):
         setattr(node.attributes, "libdeps_direct_sorted", direct_sorted)
     return direct_sorted
 
-def __get_libdeps(node):
 
+def __get_libdeps(node):
     """Given a SCons Node, return its library dependencies, topologically sorted.
 
     Computes the dependencies if they're not already cached.
@@ -122,7 +122,7 @@ def __get_libdeps(node):
                 marked.add(n.target_node)
                 tsorted.append(n.target_node)
 
-            except DependencyCycleError, e:
+            except DependencyCycleError as e:
                 if len(e.cycle_nodes) == 1 or e.cycle_nodes[0] != e.cycle_nodes[-1]:
                     e.cycle_nodes.insert(0, n.target_node)
                 raise
@@ -139,6 +139,7 @@ def __get_libdeps(node):
 
     return tsorted
 
+
 def __get_syslibdeps(node):
     """ Given a SCons Node, return its system library dependencies.
 
@@ -150,11 +151,11 @@ def __get_syslibdeps(node):
         for lib in __get_libdeps(node):
             for syslib in node.get_env().Flatten(lib.get_env().get(syslibdeps_env_var, [])):
                 if syslib:
-                    if type(syslib) in (str, unicode) and syslib.startswith(missing_syslibdep):
-                        print("Target '%s' depends on the availability of a "
+                    if type(syslib) is str and syslib.startswith(missing_syslibdep):
+                        print(("Target '%s' depends on the availability of a "
                               "system provided library for '%s', "
                               "but no suitable library was found during configuration." %
-                              (str(node), syslib[len(missing_syslibdep):]))
+                              (str(node), syslib[len(missing_syslibdep):])))
                         node.get_env().Exit(1)
                     syslibdeps.append(syslib)
         setattr(node.attributes, cached_var_name, syslibdeps)
@@ -170,18 +171,21 @@ def update_scanner(builder):
 
     if old_scanner:
         path_function = old_scanner.path_function
+
         def new_scanner(node, env, path=()):
             result = old_scanner.function(node, env, path)
             result.extend(__get_libdeps(node))
             return result
     else:
         path_function = None
+
         def new_scanner(node, env, path=()):
             return __get_libdeps(node)
 
     builder.target_scanner = SCons.Scanner.Scanner(function=new_scanner,
-                                                    path_function=path_function)
+                                                   path_function=path_function)
 
+
 def get_libdeps(source, target, env, for_signature):
     """Implementation of the special _LIBDEPS environment variable.
 
@@ -191,6 +195,7 @@ def get_libdeps(source, target, env, for_signature):
     target = env.Flatten([target])
     return __get_libdeps(target[0])
 
+
 def get_libdeps_objs(source, target, env, for_signature):
     objs = []
     for lib in get_libdeps(source, target, env, for_signature):
@@ -198,6 +203,7 @@ def get_libdeps_objs(source, target, env, for_signatur
         objs.extend(lib.sources)
     return objs
 
+
 def get_syslibdeps(source, target, env, for_signature):
     deps = __get_syslibdeps(target[0])
     lib_link_prefix = env.subst('$LIBLINKPREFIX')
@@ -209,7 +215,7 @@ def get_syslibdeps(source, target, env, for_signature)
         # they're believed to represent library short names, that should be prefixed with -l
         # or the compiler-specific equivalent.  I.e., 'm' becomes '-lm', but 'File("m.a") is passed
         # through whole cloth.
-        if type(d) in (str, unicode):
+        if type(d) is str:
             result.append('%s%s%s' % (lib_link_prefix, d, lib_link_suffix))
         else:
             result.append(d)
@@ -252,8 +258,8 @@ def libdeps_emitter(target, source, env):
     prereqs.extend(dependency(l, False, dependency.Private) for l in env.get(libdeps_env_var + '_PRIVATE', []) if l)
 
     for prereq in prereqs:
-        prereqWithIxes = SCons.Util.adjustixes(
-            prereq.target_node, lib_builder.get_prefix(env), lib_builder.get_suffix(env))
+        prereqWithIxes = SCons.Util.adjustixes(prereq.target_node, lib_builder.get_prefix(env),
+                                               lib_builder.get_suffix(env))
         prereq.target_node = lib_node_factory(prereqWithIxes)
 
     for t in target:
@@ -264,16 +270,16 @@ def libdeps_emitter(target, source, env):
     for dependent in env.get('LIBDEPS_DEPENDENTS', []):
         if dependent is None:
             continue
-        dependentWithIxes = SCons.Util.adjustixes(
-            dependent, lib_builder.get_prefix(env), lib_builder.get_suffix(env))
+        dependentWithIxes = SCons.Util.adjustixes(dependent, lib_builder.get_prefix(env),
+                                                  lib_builder.get_suffix(env))
         dependentNode = lib_node_factory(dependentWithIxes)
         __append_direct_libdeps(dependentNode, [dependency(target[0], False, dependency.Public)])
 
     for dependent in env.get('PROGDEPS_DEPENDENTS', []):
         if dependent is None:
             continue
-        dependentWithIxes = SCons.Util.adjustixes(
-            dependent, prog_builder.get_prefix(env), prog_builder.get_suffix(env))
+        dependentWithIxes = SCons.Util.adjustixes(dependent, prog_builder.get_prefix(env),
+                                                  prog_builder.get_suffix(env))
         dependentNode = prog_node_factory(dependentWithIxes)
         __append_direct_libdeps(dependentNode, [dependency(target[0], False, dependency.Public)])
 
@@ -372,9 +378,11 @@ def setup_environment(env, emitting_shared=False):
                 if 'init-no-global-side-effects' in env.Entry(lib).get_env().get('LIBDEPS_TAGS', []):
                     result.append(str(lib))
                 else:
-                    result.extend(env.subst('$LINK_WHOLE_ARCHIVE_LIB_START'
-                                            '$TARGET'
-                                            '$LINK_WHOLE_ARCHIVE_LIB_END', target=lib).split())
+                    result.extend(
+                        env.subst(
+                            '$LINK_WHOLE_ARCHIVE_LIB_START'
+                            '$TARGET'
+                            '$LINK_WHOLE_ARCHIVE_LIB_END', target=lib).split())
             return result
 
         env['_LIBDEPS_LIBS_WITH_TAGS'] = expand_libdeps_with_extraction_flags
@@ -394,6 +402,7 @@ def setup_environment(env, emitting_shared=False):
         except KeyError:
             pass
 
+
 def setup_conftests(conf):
     def FindSysLibDep(context, name, libs, **kwargs):
         var = "LIBDEPS_" + name.upper() + "_SYSLIBDEP"
@@ -406,4 +415,5 @@ def setup_conftests(conf):
                 return context.Result(result)
         context.env[var] = __missing_syslib(name)
         return context.Result(result)
+
     conf.AddTest('FindSysLibDep', FindSysLibDep)
