Hello all,

I'm encountering a failure like below when using hashequiv. What is happening 
is recipe "A" is installing some files in do_install, and changing the group of 
those files. The group is defined by a different recipe ("B"). There is no 
dependency between A and B, so when A:do_package runs, the group is not present 
in A's pseudo database. OEOuthashBasic tries to lookup the owning group name of 
the file, and a KeyError is raised.

A workaround is to add:
    DEPENDS += "B"
to recipe A, so that the group ends up in A's pseudo database. This works, but 
seems really really hacky, since it's only necessary when hashequiv is active.

So why is the group name used in the hash, as opposed to the GID? (I also have 
the same question regarding user name vs UID). If the GID was used we wouldn't 
have this issue.

Thanks,
Chris


______________
ERROR: A-1.0-r0 do_package: Error executing a python function in 
exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:sstate_report_unihash(d)
     0003:
File: '/home/laplante/yocto/sources/poky/meta/classes/sstate.bbclass', lineno: 
802, function: sstate_report_unihash
     0798:    report_unihash = getattr(bb.parse.siggen, 'report_unihash', None)
     0799:
     0800:    if report_unihash:
     0801:        ss = sstate_state_fromvars(d)
 *** 0802:        report_unihash(os.getcwd(), ss['task'], d)
     0803:}
     0804:
     0805:#
     0806:# Shell function to decompress and prepare a package for installation
File: '/home/laplante/yocto/sources/poky/bitbake/lib/bb/siggen.py', lineno: 
485, function: report_unihash
     0481:
     0482:            if "." in self.method:
     0483:                (module, method) = self.method.rsplit('.', 1)
     0484:                locs['method'] = 
getattr(importlib.import_module(module), method)
 *** 0485:                outhash = bb.utils.better_eval('method(path, sigfile, 
task, d)', locs)
     0486:            else:
     0487:                outhash = bb.utils.better_eval(self.method + '(path, 
sigfile, task, d)', locs)
     0488:
     0489:            try:
File: '/home/laplante/yocto/sources/poky/bitbake/lib/bb/utils.py', lineno: 421, 
function: better_eval
     0417:    if extraglobals:
     0418:        ctx = copy.copy(ctx)
     0419:        for g in extraglobals:
     0420:            ctx[g] = extraglobals[g]
 *** 0421:    return eval(source, ctx, locals)
     0422:
     0423:@contextmanager
     0424:def fileslocked(files):
     0425:    """Context manager for locking and unlocking file locks."""
File: '<string>', lineno: 1, function: <module>
  File "<string>", line 1, in <module>

File: '/home/laplante/yocto/sources/poky/meta/lib/oe/sstatesig.py', lineno: 
553, function: OEOuthashBasic
     0549:            process(root)
     0550:            for f in files:
     0551:                if f == 'fixmepath':
     0552:                    continue
 *** 0553:                process(os.path.join(root, f))
     0554:    finally:
     0555:        os.chdir(prev_dir)
     0556:
     0557:    return h.hexdigest()
File: '/home/laplante/yocto/sources/poky/meta/lib/oe/sstatesig.py', lineno: 
516, function: process
     0512:                    add_perm(stat.S_IXOTH, 'x')
     0513:
     0514:                if include_owners:
     0515:                    update_hash(" %10s" % 
pwd.getpwuid(s.st_uid).pw_name)
 *** 0516:                    update_hash(" %10s" % 
grp.getgrgid(s.st_gid).gr_name)
     0517:
     0518:                update_hash(" ")
     0519:                if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode):
     0520:                    update_hash("%9s" % ("%d.%d" % 
(os.major(s.st_rdev), os.minor(s.st_rdev))))
Exception: KeyError: 'getgrgid(): gid not found: 3004'
______________
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to