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

William Deegan bill at baddogconsulting.com
Wed Sep 26 02:04:15 EDT 2012


Marc,
On Sep 25, 2012, at 3:20 PM, Marc Branchaud <marcnarc at xiplink.com> wrote:


> 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?


Did you check the changes and/or release notes for 1.3.0, 2.0, 2.1, and/or 2.2?

-Bill


More information about the Scons-users mailing list