On Sat, Jul 28, 2012 at 10:03:11AM +0100, Jack Mitchell wrote: > On 26/07/2012 14:05, Richard Purdie wrote: > > This code was written by Christopher Larson <[email protected]> and > > allows generation of the LSB release data based upon the lsb_release > > command. It also includes a helper function to generate a string > > representing a given distribution. > > > > Signed-off-by: Richard Purdie <[email protected]> > > --- > > diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py > > new file mode 100644 > > index 0000000..a774169 > > --- a/dev/null > > +++ b/meta/lib/oe/lsb.py > > @@ -0,0 +1,28 @@ > > +def release_dict(): > > + """Return the output of lsb_release -a as a dictionary""" > > + from subprocess import PIPE > > + > > + try: > > + output, err = bb.process.run(['lsb_release', '-a'], stderr=PIPE) > > + except bb.process.CmdError as exc: > > + return > > + > > + data = {} > > + for line in output.splitlines(): > > + try: > > + key, value = line.split(":\t", 1) > > + except ValueError: > > + continue > > + else: > > + data[key] = value > > + return data > > + > > +def distro_identifier(adjust_hook=None): > > + """Return a distro identifier string based upon lsb_release -ri, > > + with optional adjustment via a hook""" > > + > > + lsb_data = release_dict() > > + distro_id, release = lsb_data['Distributor ID'], lsb_data['Release'] > > + if adjust_hook: > > + distro_id, release = adjust_hook(distro_id, release) > > + return '{0}-{1}'.format(distro_id, release) > > > > > > > > _______________________________________________ > > Openembedded-core mailing list > > [email protected] > > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core > > There is an unchecked error case here. I just had to fix this issue: > > ERROR: Execution of event handler 'oe_import_eh' failed > Traceback (most recent call last): > File "oe_import_eh(e)", line 4, in > oe_import_eh(e=<bb.event.ConfigParsed object at 0x3834f90>) > File "/mnt/yocto/poky.git/meta/lib/oe/lsb.py", line 25, in > distro_identifier(adjust_hook=None): > lsb_data = release_dict() > > distro_id, release = lsb_data['Distributor ID'], > lsb_data['Release'] > if adjust_hook: > TypeError: 'NoneType' object has no attribute '__getitem__' > > > by installing lsb_release. Archlinux 64. > > Should it check to see if it installed first and error otherwise? It > looks like it tries to do it here: > > + try: > + output, err = bb.process.run(['lsb_release', '-a'], stderr=PIPE) > + except bb.process.CmdError as exc: > + return > > > but it must be missing something.
Same here, interesting is that it failed only during 2nd build, 1st with this commit applied finished fine. Cheers, -- Martin 'JaMa' Jansa jabber: [email protected]
signature.asc
Description: Digital signature
_______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
