* [PATCH] lib/oe/lsb: Add basic LSB functions @ 2012-07-26 13:05 Richard Purdie 2012-07-28 9:03 ` Jack Mitchell 0 siblings, 1 reply; 7+ messages in thread From: Richard Purdie @ 2012-07-26 13:05 UTC (permalink / raw) To: openembedded-core This code was written by Christopher Larson <chris_larson@mentor.com> 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 <richard.purdie@linuxfoundation.org> --- 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) ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] lib/oe/lsb: Add basic LSB functions 2012-07-26 13:05 [PATCH] lib/oe/lsb: Add basic LSB functions Richard Purdie @ 2012-07-28 9:03 ` Jack Mitchell 2012-07-28 9:16 ` Martin Jansa 0 siblings, 1 reply; 7+ messages in thread From: Jack Mitchell @ 2012-07-28 9:03 UTC (permalink / raw) To: openembedded-core On 26/07/2012 14:05, Richard Purdie wrote: > This code was written by Christopher Larson <chris_larson@mentor.com> 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 <richard.purdie@linuxfoundation.org> > --- > 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 > Openembedded-core@lists.openembedded.org > 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. Regards, Jack ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lib/oe/lsb: Add basic LSB functions 2012-07-28 9:03 ` Jack Mitchell @ 2012-07-28 9:16 ` Martin Jansa 2012-07-28 9:37 ` Martin Jansa 0 siblings, 1 reply; 7+ messages in thread From: Martin Jansa @ 2012-07-28 9:16 UTC (permalink / raw) To: ml, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 3055 bytes --] 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 <chris_larson@mentor.com> 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 <richard.purdie@linuxfoundation.org> > > --- > > 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 > > Openembedded-core@lists.openembedded.org > > 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: Martin.Jansa@gmail.com [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 205 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lib/oe/lsb: Add basic LSB functions 2012-07-28 9:16 ` Martin Jansa @ 2012-07-28 9:37 ` Martin Jansa 2012-07-28 9:58 ` Jack Mitchell 0 siblings, 1 reply; 7+ messages in thread From: Martin Jansa @ 2012-07-28 9:37 UTC (permalink / raw) To: ml, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 706 bytes --] On Sat, Jul 28, 2012 at 11:16:14AM +0200, Martin Jansa wrote: > > 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. Ah no, it was there also first time I've overlooked it as it's not fatal. -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 205 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lib/oe/lsb: Add basic LSB functions 2012-07-28 9:37 ` Martin Jansa @ 2012-07-28 9:58 ` Jack Mitchell 2012-07-30 19:50 ` Denys Dmytriyenko 0 siblings, 1 reply; 7+ messages in thread From: Jack Mitchell @ 2012-07-28 9:58 UTC (permalink / raw) To: openembedded-core On 28/07/2012 10:37, Martin Jansa wrote: > On Sat, Jul 28, 2012 at 11:16:14AM +0200, Martin Jansa wrote: >>> 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. > > Ah no, it was there also first time I've overlooked it as it's not > fatal. > It was fatal for me as it trashed my sstate folder naming and then refused to build some packages. The directory in my sstate was created as: ${NATIVELSBSTRING} Then when Bitbake tried to use shared state it expanded NATIVELSBSTRING to nothing and failed. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lib/oe/lsb: Add basic LSB functions 2012-07-28 9:58 ` Jack Mitchell @ 2012-07-30 19:50 ` Denys Dmytriyenko 2012-07-31 10:47 ` Richard Purdie 0 siblings, 1 reply; 7+ messages in thread From: Denys Dmytriyenko @ 2012-07-30 19:50 UTC (permalink / raw) To: ml, Patches and discussions about the oe-core layer On Sat, Jul 28, 2012 at 10:58:16AM +0100, Jack Mitchell wrote: > On 28/07/2012 10:37, Martin Jansa wrote: > >On Sat, Jul 28, 2012 at 11:16:14AM +0200, Martin Jansa wrote: > >>>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. > > > >Ah no, it was there also first time I've overlooked it as it's not > >fatal. > > > > It was fatal for me as it trashed my sstate folder naming and then > refused to build some packages. The directory in my sstate was > created as: > > ${NATIVELSBSTRING} > > Then when Bitbake tried to use shared state it expanded > NATIVELSBSTRING to nothing and failed. I have the same issue here - Gentoo/64. Can we get it fixed in the master, please? Thanks. -- Denys ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lib/oe/lsb: Add basic LSB functions 2012-07-30 19:50 ` Denys Dmytriyenko @ 2012-07-31 10:47 ` Richard Purdie 0 siblings, 0 replies; 7+ messages in thread From: Richard Purdie @ 2012-07-31 10:47 UTC (permalink / raw) To: Patches and discussions about the oe-core layer On Mon, 2012-07-30 at 15:50 -0400, Denys Dmytriyenko wrote: > On Sat, Jul 28, 2012 at 10:58:16AM +0100, Jack Mitchell wrote: > > On 28/07/2012 10:37, Martin Jansa wrote: > > >On Sat, Jul 28, 2012 at 11:16:14AM +0200, Martin Jansa wrote: > > >>>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. > > > > > >Ah no, it was there also first time I've overlooked it as it's not > > >fatal. > > > > > > > It was fatal for me as it trashed my sstate folder naming and then > > refused to build some packages. The directory in my sstate was > > created as: > > > > ${NATIVELSBSTRING} > > > > Then when Bitbake tried to use shared state it expanded > > NATIVELSBSTRING to nothing and failed. > > I have the same issue here - Gentoo/64. Can we get it fixed in the master, > please? Thanks. I've pushed something which should resolve the problem and at least set this to a known string ('Unknown'). Cheers, Richard ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-07-31 10:59 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-07-26 13:05 [PATCH] lib/oe/lsb: Add basic LSB functions Richard Purdie 2012-07-28 9:03 ` Jack Mitchell 2012-07-28 9:16 ` Martin Jansa 2012-07-28 9:37 ` Martin Jansa 2012-07-28 9:58 ` Jack Mitchell 2012-07-30 19:50 ` Denys Dmytriyenko 2012-07-31 10:47 ` Richard Purdie
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox