[Scons-users] Clone error upgrading from 1.2.0 to 2.2.0

Marc Branchaud marcnarc at xiplink.com
Tue Sep 25 18:20:53 EDT 2012


Hi all,

I'm attempting to upgrade our SCons from 1.2.0.r3842 to 2.2.0, and I'm
getting an error on a call to env.Clone(): "TypeError: cannot semi_deepcopy a
BuilderDict".

Here's the stack below the Clone() call in my SConscript:

File "/usr/local/lib/scons-2.2.0/SCons/Environment.py", line 1387:
clone._dict = semi_deepcopy_dict(self._dict, ['BUILDERS'])
File "/usr/local/lib/scons-2.2.0/SCons/Util.py", line 451:
copy[key] = semi_deepcopy(val)
File "/usr/local/lib/scons-2.2.0/SCons/Util.py", line 466:
return copier(x)
File "/usr/local/lib/scons-2.2.0/SCons/Util.py", line 451:
copy[key] = semi_deepcopy(val)
File "/usr/local/lib/scons-2.2.0/SCons/Util.py", line 469:
return x.__semi_deepcopy__()
File "/usr/local/lib/scons-2.2.0/SCons/Environment.py", line 309:
raise TypeError( 'cannot semi_deepcopy a BuilderDict' )

This environment is cloned all over the place, so I'd really like this to
work! The original environment is created with several custom Builders:

e_default = Environment(
CXXTEST='#/build/unittest/cxxtest/cxxtestgen.py',
CXXTEST_DIR = '#/build/unittest/cxxtest',
GMAKE = 'gmake',
GZIP = 'gzip',
HOST_ARCH = host_arch,
HOST_NAME = host_name,
HOST_OS = host_os,
HOST_OSVER = host_osver,
HOST_OSVER_LONG = host_osver_long,
LAUNCH_DIR = GetLaunchDir(),
CRYPTO_FREE_PASS = False,
MAKE = 'make',
OBJCOPY = 'objcopy',
ROOT_DIR = os.getcwd(),
STRIP = 'strip',
READELF = 'readelf',
tools = ['default',
'AutoConfig',
'AutoReconf',
'cxxtest',
'DetokInstall',
'Make',
'OpenSSLConfig',
'SymLink',
'UnTar',
'UnZip',
'XsltProc'
],
USERNAME = os.environ['LOGNAME'],
USERGROUP = (grp.getgrgid(pwd.getpwuid(os.getuid())[3])[0]
if os.getuid() != 0
else 'wheel' if host_os == 'FreeBSD' else 'root'),
variables = vars
)

Do I need to account for some change since 1.2.0? Possibly the fix for issue
#2821?

Thanks,

M.


More information about the Scons-users mailing list