Re: untar builder fails with error
daggs <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <trinity-4d18be14-3736-418e-9e6a-474e00af9d52-1667633330084@3c-app-mailcom-bs05> |
Greetings Bill, unfortunatly no, I'm bounded to distros with scons 3.1.2 what strikes me strange is that the unpack works, the issue is with the emitter alone Dagg Sent: Friday, November 04, 2022 at 6:26 PM From: "Bill Deegan" <[email protected]> To: "SCons users mailing list" <[email protected]> Subject: Re: [Scons-users] untar builder fails with error Dagg, Can you try with SCons 4.4.0? -Bill On Fri, Nov 4, 2022 at 10:42 AM Mats Wichmann <[email protected] > wrote: On 11/4/22 08:33, daggs wrote: > Greetings, > > I"m trying to implement the untar builder from https://github.com/SCons/scons/wiki/UnTarBuilder on scons v3.1.2.bee7caf9defd6e108fc2998a2520ddb36a967691 (ubuntu 20.04) > and I'm getting this error: > AttributeError: 'TarInfo' object has no attribute 'target_peers': > File "/home/dagg/project/site_scons/build_utils.py", line 471: > env.Unpack(get_target(), deps_targets_list, > File "/usr/lib/scons/SCons/Environment.py", line 255: > return MethodWrapper.__call__(self, target, source, *args, **kw) > File "/usr/lib/scons/SCons/Environment.py", line 219: > return self.method(*nargs, **kwargs) > File "/usr/lib/scons/SCons/Builder.py", line 651: > return self._execute(env, target, source, OverrideWarner(kw), ekw) > File "/usr/lib/scons/SCons/Builder.py", line 570: > t.target_peers = tlist > Compilation failed > > has anyone encountered this issue? I cannot seem to be able to find target_peers in reference to python anywhere > > the builder looks like this: > import tarfile, os > > def message(target, source, env): > return "Unpacking..." > > def builder(target, source, env): > tar_file = tarfile.open(env['path']) > tar_file.extractall(env['target']) > tar_file.close() > > return None > > def content_emitter(target, source, env): > fn = os.path.basename(str(source[0])) > print("Reading content...") > tar_file = tarfile.open(str(source[0]), "r") > new_targets = [ ent for ent in tar_file.getmembers() if ent.isfile() ] > tar_file.close() > print("Done") > > return (new_targets, source) > > def generate(env, **kwargs): > unpacker = env.Builder( > action = env.Action(builder, message), > src_suffix = ".tar.bz2", > emitter = content_emitter, > ) > > env.Append(BUILDERS = { 'Unpack' : unpacker }) > > def exists(env): > return True > > Thanks, > > dagg I've used (a fork of) that one, but it's not been for like six years. Current scons certainly has a target_peers in the node class, and it's actively used by the ninja tool. Ninja support, of course, is much newer than SCons 3.1.2 - can't really tell the history without more prospecting, maybe someone else knows. _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users