* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.