Openembedded Core Discussions
 help / color / mirror / Atom feed
* RFC: OE-Core task rework
@ 2012-08-15  9:46 Paul Eggleton
  2012-08-15 10:54 ` [yocto] " Koen Kooi
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Paul Eggleton @ 2012-08-15  9:46 UTC (permalink / raw)
  To: openembedded-core, openembedded-devel, yocto

Hi all,

There have been a few requests to review the task recipes (i.e. package 
groups) provided by OE-Core, and indeed these have not really been looked at 
seriously since OE-Core was created. Ideally I think we want them to be useful 
to a wide audience and provide useful units of functionality that can be added 
to an image without the person doing the selection having to manually select 
too many individual packages. Imagine presenting the list of tasks to someone 
in a UI for assembling images (such as Hob or Narcissus) and you can start to 
see that we have some work to do in this area.

I know various distros and users of OE-Core have created their own tasks or 
resurrected tasks from OE-Classic, and this is an opportunity to perhaps look 
at bringing some of these (or at least, parts of them) into the core. It is 
true that tasks will often be an expression of distro policy, and we also 
can't have any tasks in OE-Core that refer to packages that don't exist in OE-
Core; thus distros will always be extending the base tasks or adding their own 
- and that's fine. However, with some thought I believe we can come up with a 
set of tasks that are generally useful to most people using OE-Core.

For reference, I've compiled a list on the wiki of the current tasks in OE-
Core with links to the recipes and some notes:

  http://www.openembedded.org/wiki/OE-Core_Task_Rework

Some of the things I think we ought to consider/address as part of this 
exercise:

1) Do we rename "task" to something a little more understandable to the 
uninitiated, such as "package group"? The word "task" is already used in a 
much more natural sense within bitbake as a unit of work. Historically I 
believe we picked up this term from Debian but I'm not aware of significant use 
by other mainstream distributions.

2) Look at the existing tasks and:
 * evaluate their usefulness
 * remove any that are obsolete
 * adjust existing contents if needed
 * look for useful groups of packages that might be added

 We need to pay particular attention to task-core-boot and task-base as these 
are pulled in by default in any image that inherits from core-image.bbclass - 
if these are not generally working for people that are creating their own 
images, we need to change them such that they are.

3) Ensure all task recipes follow reasonable patterns:
 *  Fix recipe DESCRIPTIONs to make sense (and not contain Poky references)
 *  Ensure all individual packages have a decent SUMMARY/DESCRIPTION
 *  Try to make each task have a reasonable name - there are some current uses 
of "core" and "base" that don't actually convey any meaning; LSB specific tasks 
should be named as such, etc.
 *  Make all tasks inherit task.bbclass so that they get proper dbg/dev 
packages and any other common task functionality

4) Consider the usefulness of the existing PACKAGE_GROUP_ structure which 
converts some IMAGE_FEATURES into the addition of tasks to be installed (see 
classes/core-image.bbclass). At the very least we should probably rename this 
if we rename tasks to package groups, and there's a question as to how 
IMAGE_FEATURES scales - should every task be represented in there or only a 
select list? Would we be better off not trying to bring any tasks in via 
IMAGE_FEATURES at all and mostly leave that to control post-processing (e.g. 
package-management, debug-tweaks, etc.)?

Please reply with your thoughts. Once we've come to a consensus on the things 
we want to do (allowing plenty of time for discussion), I'll look at putting 
together a set of patches that makes the appropriate changes.

Thanks,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [yocto] RFC: OE-Core task rework
  2012-08-15  9:46 RFC: OE-Core task rework Paul Eggleton
@ 2012-08-15 10:54 ` Koen Kooi
  2012-08-15 12:57   ` Paul Eggleton
  2012-08-15 11:17 ` Jack Mitchell
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Koen Kooi @ 2012-08-15 10:54 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: openembedded-core, yocto, openembedded-devel


Op 15 aug. 2012, om 11:46 heeft Paul Eggleton <paul.eggleton@linux.intel.com> het volgende geschreven:
> 
> 2) Look at the existing tasks and:
> * evaluate their usefulness
> * remove any that are obsolete
> * adjust existing contents if needed
> * look for useful groups of packages that might be added
> 
> We need to pay particular attention to task-core-boot and task-base as these 
> are pulled in by default in any image that inherits from core-image.bbclass - 
> if these are not generally working for people that are creating their own 
> images, we need to change them such that they are.

Have a look at task-boot and task-basic in meta-oe: https://github.com/openembedded/meta-oe/tree/master/meta-oe/recipes-core/tasks

My pet peeve is the bloat oe-core forces onto qemu* builds in the name of "our testing team needs it!!!". Why am I forced to build an nfs server and distcc when setting MACHINE=qemusomething?

Keep things like that in mind when overhauling the tasks.

regards,

Koen


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15  9:46 RFC: OE-Core task rework Paul Eggleton
  2012-08-15 10:54 ` [yocto] " Koen Kooi
@ 2012-08-15 11:17 ` Jack Mitchell
  2012-08-15 12:59   ` Paul Eggleton
  2012-08-15 11:25 ` Phil Blundell
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Jack Mitchell @ 2012-08-15 11:17 UTC (permalink / raw)
  To: openembedded-core

On 15/08/12 10:46, Paul Eggleton wrote:
> Hi all,
>
> There have been a few requests to review the task recipes (i.e. package
> groups) provided by OE-Core, and indeed these have not really been looked at
> seriously since OE-Core was created. Ideally I think we want them to be useful
> to a wide audience and provide useful units of functionality that can be added
> to an image without the person doing the selection having to manually select
> too many individual packages. Imagine presenting the list of tasks to someone
> in a UI for assembling images (such as Hob or Narcissus) and you can start to
> see that we have some work to do in this area.
>
> I know various distros and users of OE-Core have created their own tasks or
> resurrected tasks from OE-Classic, and this is an opportunity to perhaps look
> at bringing some of these (or at least, parts of them) into the core. It is
> true that tasks will often be an expression of distro policy, and we also
> can't have any tasks in OE-Core that refer to packages that don't exist in OE-
> Core; thus distros will always be extending the base tasks or adding their own
> - and that's fine. However, with some thought I believe we can come up with a
> set of tasks that are generally useful to most people using OE-Core.
>
> For reference, I've compiled a list on the wiki of the current tasks in OE-
> Core with links to the recipes and some notes:
>
>    http://www.openembedded.org/wiki/OE-Core_Task_Rework
>
> Some of the things I think we ought to consider/address as part of this
> exercise:
>
> 1) Do we rename "task" to something a little more understandable to the
> uninitiated, such as "package group"? The word "task" is already used in a
> much more natural sense within bitbake as a unit of work. Historically I
> believe we picked up this term from Debian but I'm not aware of significant use
> by other mainstream distributions.
>

Do the 'tasks' do anything other than specify meta-data groups? If they 
don't include any glue or additional processes then I strongly agree 
that the name should be changed.

-- 

   Jack Mitchell (jack@embed.me.uk)
   Embedded Systems Engineer
   http://www.embed.me.uk

--




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15  9:46 RFC: OE-Core task rework Paul Eggleton
  2012-08-15 10:54 ` [yocto] " Koen Kooi
  2012-08-15 11:17 ` Jack Mitchell
@ 2012-08-15 11:25 ` Phil Blundell
  2012-08-15 13:08   ` Paul Eggleton
  2012-08-20 20:45 ` [yocto] " Mark Hatle
  2012-08-28  7:05 ` Paul Eggleton
  4 siblings, 1 reply; 15+ messages in thread
From: Phil Blundell @ 2012-08-15 11:25 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, 2012-08-15 at 10:46 +0100, Paul Eggleton wrote:
> 1) Do we rename "task" to something a little more understandable to the 
> uninitiated, such as "package group"? The word "task" is already used in a 
> much more natural sense within bitbake as a unit of work. Historically I 
> believe we picked up this term from Debian but I'm not aware of significant use 
> by other mainstream distributions.

Yeah, I think OE inherited it from Familiar, which in turn got it from
Debian.  But the meaning of the term has drifted slightly through the
generations and, as you say, it is no longer a very accurate reflection
of what the packages in question are doing.

It's never been totally obvious to me that there is much need for
tasks/package group recipes as such in oe-core itself; they're rather
more of a DISTRO policy thing and their presence in the metadata does
obviously have a cost in terms of parse time and memory usage.  It might
perhaps be worth exploring what they're actually being used for in
oe-core and whether those things could be better done in a different way
that doesn't involve having a .bb file for them.

p.





^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [yocto] RFC: OE-Core task rework
  2012-08-15 10:54 ` [yocto] " Koen Kooi
@ 2012-08-15 12:57   ` Paul Eggleton
  0 siblings, 0 replies; 15+ messages in thread
From: Paul Eggleton @ 2012-08-15 12:57 UTC (permalink / raw)
  To: Koen Kooi; +Cc: openembedded-core, yocto, openembedded-devel

On Wednesday 15 August 2012 12:54:17 Koen Kooi wrote:
> Op 15 aug. 2012, om 11:46 heeft Paul Eggleton 
<paul.eggleton@linux.intel.com> het volgende geschreven:
> > 2) Look at the existing tasks and:
> > * evaluate their usefulness
> > * remove any that are obsolete
> > * adjust existing contents if needed
> > * look for useful groups of packages that might be added
> > 
> > We need to pay particular attention to task-core-boot and task-base as
> > these are pulled in by default in any image that inherits from
> > core-image.bbclass - if these are not generally working for people that
> > are creating their own images, we need to change them such that they are.
> 
> Have a look at task-boot and task-basic in meta-oe:
> https://github.com/openembedded/meta-oe/tree/master/meta-oe/recipes-core/ta
> sks

OK, I've taken the opportunity to summarise the tasks in meta-oe on the 
following page:

 http://www.openembedded.org/wiki/Meta-oe_tasks

meta-oe's task-basic indeed contains much less than task-base; it provides an 
alternative (and possibly simpler) means of selecting between ssh or dropbear, 
although it prevents it being an image-level decision if that's something 
people care about. I'm not convinced it's appropriate to unconditionally 
install avahi, htop and cpufrequtils though - those look distro-specific to me.

For meta-oe's task-boot, it doesn't seem all that different from task-core-boot 
with the exception that task-core-boot imposes modutils-initscripts (should 
probably be fixed), and that task-boot mandates that the kernel be installed 
which is not always needed depending on how the bootloader works on whatever 
machine is being built for - although kernel.bbclass seems to indicate that 
currently the machine is supposed to influence this by setting RDEPENDS_kernel-
base which seems a little backwards to me.

I'd like to hear from other users of these tasks (Martin?)

> My pet peeve is the bloat oe-core forces onto qemu* builds in the name of
> "our testing team needs it!!!". Why am I forced to build an nfs server and
> distcc when setting MACHINE=qemusomething?

If you're referring to qemu-config (which depends on distcc, task-core-nfs-
server, oprofileui-server, rsync and bash) it's important to note that it only 
gets enabled for qemu* machines by the poky distro config via POKYQEMUDEPS, so 
this is not being used by OE-Core - in fact nothing in OE-Core refers to qemu-
config at all. I still have an open bug to fix this (#1690), and I agree it's 
egregious, but it's a Poky issue, not an OE-Core one. For the record, the 
reason for including them is not "our testing team needs it!!!" - it was the 
assumption made a long time ago that these things would be generally useful 
for development on emulated targets. Whether or not that assumption is still 
correct is another issue.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15 11:17 ` Jack Mitchell
@ 2012-08-15 12:59   ` Paul Eggleton
  0 siblings, 0 replies; 15+ messages in thread
From: Paul Eggleton @ 2012-08-15 12:59 UTC (permalink / raw)
  To: ml; +Cc: openembedded-core

On Wednesday 15 August 2012 12:17:40 Jack Mitchell wrote:
> > 1) Do we rename "task" to something a little more understandable to the
> > uninitiated, such as "package group"? The word "task" is already used in a
> > much more natural sense within bitbake as a unit of work. Historically I
> > believe we picked up this term from Debian but I'm not aware of
> > significant use by other mainstream distributions.
> 
> Do the 'tasks' do anything other than specify meta-data groups? If they
> don't include any glue or additional processes then I strongly agree
> that the name should be changed.

They don't, no. Usually they are just lists of packages, although sometimes 
there is some very basic logic to conditionally include/exclude some packages 
based on DISTRO_FEATURES, MACHINE_FEATURES, COMBINED_FEATURES etc. or allow 
substitution of default packages with others using variables.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15 11:25 ` Phil Blundell
@ 2012-08-15 13:08   ` Paul Eggleton
  2012-08-15 18:05     ` Mark Hatle
  0 siblings, 1 reply; 15+ messages in thread
From: Paul Eggleton @ 2012-08-15 13:08 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-core

On Wednesday 15 August 2012 12:25:23 Phil Blundell wrote:
> On Wed, 2012-08-15 at 10:46 +0100, Paul Eggleton wrote:
> > 1) Do we rename "task" to something a little more understandable to the
> > uninitiated, such as "package group"? The word "task" is already used in a
> > much more natural sense within bitbake as a unit of work. Historically I
> > believe we picked up this term from Debian but I'm not aware of
> > significant use by other mainstream distributions.
> 
> Yeah, I think OE inherited it from Familiar, which in turn got it from
> Debian.  But the meaning of the term has drifted slightly through the
> generations and, as you say, it is no longer a very accurate reflection
> of what the packages in question are doing.
> 
> It's never been totally obvious to me that there is much need for
> tasks/package group recipes as such in oe-core itself; they're rather
> more of a DISTRO policy thing and their presence in the metadata does
> obviously have a cost in terms of parse time and memory usage.  It might
> perhaps be worth exploring what they're actually being used for in
> oe-core and whether those things could be better done in a different way
> that doesn't involve having a .bb file for them.

I would say without checking that these days that cost is negligible. Off the 
top of my head, the benefits we get from using recipes for tasks as opposed to 
variables or some similar construct:

 * The tasks can be used and referred to on the target if desired, not just 
when you compose the image (i.e. task packages are produced and thus the 
package manager knows about them).

 * It should be slightly easier to find where tasks are defined within the 
metadata. In practice that's not always the case with the way we have named 
some of the tasks, hopefully that can be improved.

 * Related to the above, they can be customised in a visible manner using 
bbappends in your own layer.

 * If you inherit from task.bbclass you automatically get -dev and -dbg 
complements for the tasks defined by the recipe, which can sometimes be useful.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15 13:08   ` Paul Eggleton
@ 2012-08-15 18:05     ` Mark Hatle
  2012-08-15 19:12       ` Chris Larson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Hatle @ 2012-08-15 18:05 UTC (permalink / raw)
  To: openembedded-core

On 8/15/12 8:08 AM, Paul Eggleton wrote:
> On Wednesday 15 August 2012 12:25:23 Phil Blundell wrote:
>> On Wed, 2012-08-15 at 10:46 +0100, Paul Eggleton wrote:
>>> 1) Do we rename "task" to something a little more understandable to the
>>> uninitiated, such as "package group"? The word "task" is already used in a
>>> much more natural sense within bitbake as a unit of work. Historically I
>>> believe we picked up this term from Debian but I'm not aware of
>>> significant use by other mainstream distributions.
>>
>> Yeah, I think OE inherited it from Familiar, which in turn got it from
>> Debian.  But the meaning of the term has drifted slightly through the
>> generations and, as you say, it is no longer a very accurate reflection
>> of what the packages in question are doing.
>>
>> It's never been totally obvious to me that there is much need for
>> tasks/package group recipes as such in oe-core itself; they're rather
>> more of a DISTRO policy thing and their presence in the metadata does
>> obviously have a cost in terms of parse time and memory usage.  It might
>> perhaps be worth exploring what they're actually being used for in
>> oe-core and whether those things could be better done in a different way
>> that doesn't involve having a .bb file for them.
>
> I would say without checking that these days that cost is negligible. Off the
> top of my head, the benefits we get from using recipes for tasks as opposed to
> variables or some similar construct:
>
>   * The tasks can be used and referred to on the target if desired, not just
> when you compose the image (i.e. task packages are produced and thus the
> package manager knows about them).

I think this is a key advantage.  Again, if we think of these tasks as logical 
groups of functionality, it gives an image developer (or installer) the ability 
to say "I need booting, discrete commands, python, perl, and LSB compliance." 
and get a system in the end that -should- work.

The image/installer should always be able to specify individual recipes as well, 
but often inexperienced users won't know that they need two or three recipes 
(that don't have actual dependencies on each other) to get a functionally 
complete answer.

>   * It should be slightly easier to find where tasks are defined within the
> metadata. In practice that's not always the case with the way we have named
> some of the tasks, hopefully that can be improved.
>
>   * Related to the above, they can be customised in a visible manner using
> bbappends in your own layer.
>
>   * If you inherit from task.bbclass you automatically get -dev and -dbg
> complements for the tasks defined by the recipe, which can sometimes be useful.
>
> Cheers,
> Paul
>




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15 18:05     ` Mark Hatle
@ 2012-08-15 19:12       ` Chris Larson
  2012-08-15 19:30         ` Mark Hatle
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Larson @ 2012-08-15 19:12 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, Aug 15, 2012 at 11:05 AM, Mark Hatle <mark.hatle@windriver.com> wrote:
>>   * The tasks can be used and referred to on the target if desired, not
>> just
>> when you compose the image (i.e. task packages are produced and thus the
>> package manager knows about them).
>
>
> I think this is a key advantage.  Again, if we think of these tasks as
> logical groups of functionality, it gives an image developer (or installer)
> the ability to say "I need booting, discrete commands, python, perl, and LSB
> compliance." and get a system in the end that -should- work.
>
> The image/installer should always be able to specify individual recipes as
> well, but often inexperienced users won't know that they need two or three
> recipes (that don't have actual dependencies on each other) to get a
> functionally complete answer.

It seems like you're arguing in favor of the ability to add groups of
packages to an image, which no one disagrees with, and isn't really
relevant to the bit you're quoting. The bit that tasks add that
package groups / image features don't is the ability to add them after
the fact at runtime, not image creation time.
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15 19:12       ` Chris Larson
@ 2012-08-15 19:30         ` Mark Hatle
  0 siblings, 0 replies; 15+ messages in thread
From: Mark Hatle @ 2012-08-15 19:30 UTC (permalink / raw)
  To: openembedded-core

On 8/15/12 2:12 PM, Chris Larson wrote:
> On Wed, Aug 15, 2012 at 11:05 AM, Mark Hatle <mark.hatle@windriver.com> wrote:
>>>    * The tasks can be used and referred to on the target if desired, not
>>> just
>>> when you compose the image (i.e. task packages are produced and thus the
>>> package manager knows about them).
>>
>>
>> I think this is a key advantage.  Again, if we think of these tasks as
>> logical groups of functionality, it gives an image developer (or installer)
>> the ability to say "I need booting, discrete commands, python, perl, and LSB
>> compliance." and get a system in the end that -should- work.
>>
>> The image/installer should always be able to specify individual recipes as
>> well, but often inexperienced users won't know that they need two or three
>> recipes (that don't have actual dependencies on each other) to get a
>> functionally complete answer.
>
> It seems like you're arguing in favor of the ability to add groups of
> packages to an image, which no one disagrees with, and isn't really
> relevant to the bit you're quoting. The bit that tasks add that
> package groups / image features don't is the ability to add them after
> the fact at runtime, not image creation time.
>

It's both.. cross image creation, and on-target image creation (and updates). 
During runtime, some folks will want to add "features" to the system...  these 
are not what I would consider "image" features, but what we call task recipes today.

I.e. I have a base system, and a vendor says I need LSB compatibility -- 
assuming I have the right distro features set, I should be able to select one or 
more LSB "tasks" and suddenly I'm LSB compliant, without having to know all of 
the individual packages required.

--Mark



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [yocto] RFC: OE-Core task rework
  2012-08-15  9:46 RFC: OE-Core task rework Paul Eggleton
                   ` (2 preceding siblings ...)
  2012-08-15 11:25 ` Phil Blundell
@ 2012-08-20 20:45 ` Mark Hatle
  2012-08-21  8:49   ` Paul Eggleton
  2012-08-28  7:05 ` Paul Eggleton
  4 siblings, 1 reply; 15+ messages in thread
From: Mark Hatle @ 2012-08-20 20:45 UTC (permalink / raw)
  To: yocto, Patches and discussions about the oe-core layer,
	openembedded-devel

[resend, I had the original mail rejected by the oe list serves as being 
undeliverable.]

On 8/15/12 4:46 AM, Paul Eggleton wrote:
> Hi all,
>
> There have been a few requests to review the task recipes (i.e. package
> groups) provided by OE-Core, and indeed these have not really been looked at
> seriously since OE-Core was created. Ideally I think we want them to be useful
> to a wide audience and provide useful units of functionality that can be added
> to an image without the person doing the selection having to manually select
> too many individual packages. Imagine presenting the list of tasks to someone
> in a UI for assembling images (such as Hob or Narcissus) and you can start to
> see that we have some work to do in this area.
>
> I know various distros and users of OE-Core have created their own tasks or
> resurrected tasks from OE-Classic, and this is an opportunity to perhaps look
> at bringing some of these (or at least, parts of them) into the core. It is
> true that tasks will often be an expression of distro policy, and we also
> can't have any tasks in OE-Core that refer to packages that don't exist in OE-
> Core; thus distros will always be extending the base tasks or adding their own
> - and that's fine. However, with some thought I believe we can come up with a
> set of tasks that are generally useful to most people using OE-Core.
>
> For reference, I've compiled a list on the wiki of the current tasks in OE-
> Core with links to the recipes and some notes:
>
>    http://www.openembedded.org/wiki/OE-Core_Task_Rework
>
> Some of the things I think we ought to consider/address as part of this
> exercise:
>
> 1) Do we rename "task" to something a little more understandable to the
> uninitiated, such as "package group"? The word "task" is already used in a
> much more natural sense within bitbake as a unit of work. Historically I
> believe we picked up this term from Debian but I'm not aware of significant use
> by other mainstream distributions.

"group" or "packagegroup" or "package-group" is my suggestion for the existing 
'task' recipes.  From what I've seen, it should be a rename opportunity -- we 
can even provide/rprovide the old names....

> 2) Look at the existing tasks and:
>   * evaluate their usefulness
>   * remove any that are obsolete
>   * adjust existing contents if needed
>   * look for useful groups of packages that might be added
>
>   We need to pay particular attention to task-core-boot and task-base as these
> are pulled in by default in any image that inherits from core-image.bbclass -
> if these are not generally working for people that are creating their own
> images, we need to change them such that they are.

During the pre-oe-core Yocto Project development, a design was generated to 
roughly group the packages into functional areas.  For the most part, this 
design (as well as legacy elements) still exist.

I think the boot, base and others need to be evaluated for usefulness... but my 
feeling is most of them are close to being correct.

The original design attempted to group things into functionality, so that OE 
could be an "additive" distribution.  I.e., you don't start with a big blob of 
packages and remove them as necessary, but instead you start with small 
functional blocks and put them together to construct a system.  The tasks seemed 
to be the logical blocks, and the contents of these blocks were based on the 
early design.

Very roughly speaking the early design was:

filesystem
|        \
libc    libstdcxx
|           \
small cli    \
(busybox)     \
|              \
basic commands  python -- perl
|                 |         |
initscripts       |         |
multiuser         |         |
system services --+---------+
|
LSB functionality

(Lines indicate implicit dependencies)

The goal was that if you include a specific group, such as "multiuser" support, 
you would get all of the recipes necessary to enable multiuser support on the 
system.  I think this is a reasonable theory to consider when evaluating the 
existing groupings.

> 3) Ensure all task recipes follow reasonable patterns:
>   *  Fix recipe DESCRIPTIONs to make sense (and not contain Poky references)
>   *  Ensure all individual packages have a decent SUMMARY/DESCRIPTION
>   *  Try to make each task have a reasonable name - there are some current uses
> of "core" and "base" that don't actually convey any meaning; LSB specific tasks
> should be named as such, etc.

Yup, there is a logical grouping for the lsb specific tasks, as for others.  The 
naming needs to be made clear as to why it's there, and what it represents. Same 
with the summary and descriptions -- they should list the functionality provided 
by this group of components.

>   *  Make all tasks inherit task.bbclass so that they get proper dbg/dev
> packages and any other common task functionality
>
> 4) Consider the usefulness of the existing PACKAGE_GROUP_ structure which
> converts some IMAGE_FEATURES into the addition of tasks to be installed (see
> classes/core-image.bbclass). At the very least we should probably rename this
> if we rename tasks to package groups, and there's a question as to how
> IMAGE_FEATURES scales - should every task be represented in there or only a
> select list? Would we be better off not trying to bring any tasks in via
> IMAGE_FEATURES at all and mostly leave that to control post-processing (e.g.
> package-management, debug-tweaks, etc.)?

I'd certainly prefer that images were limited to selecting software from task 
(group) recipes only, and not providing their own.  An image should be able to 
change the selection based on an "image feature" or similar configuration, but 
the underlying tasks/groups, recipes, etc should all be 'generic' to a given 
distribution configuration.

I think if you go through the images today, a lot of that stuff is either old, 
or could be simplified by creating appropriate tasks/groups.

--Mark

> Please reply with your thoughts. Once we've come to a consensus on the things
> we want to do (allowing plenty of time for discussion), I'll look at putting
> together a set of patches that makes the appropriate changes.
>
> Thanks,
> Paul
>




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [yocto] RFC: OE-Core task rework
  2012-08-20 20:45 ` [yocto] " Mark Hatle
@ 2012-08-21  8:49   ` Paul Eggleton
  2012-08-21  8:53     ` Paul Eggleton
  2012-08-21 17:34     ` Philip Balister
  0 siblings, 2 replies; 15+ messages in thread
From: Paul Eggleton @ 2012-08-21  8:49 UTC (permalink / raw)
  To: yocto; +Cc: openembedded-devel,
	Patches and discussions about the oe-core layer

On Monday 20 August 2012 15:45:07 Mark Hatle wrote:
> > 1) Do we rename "task" to something a little more understandable to the
> > uninitiated, such as "package group"? The word "task" is already used in a
> > much more natural sense within bitbake as a unit of work. Historically I
> > believe we picked up this term from Debian but I'm not aware of
> > significant use by other mainstream distributions.
> 
> "group" or "packagegroup" or "package-group" is my suggestion for the
> existing 'task' recipes.  From what I've seen, it should be a rename
> opportunity -- we can even provide/rprovide the old names....

Indeed, and I think we would for compatibility purposes.
 
> > 2) Look at the existing tasks and:
> >   * evaluate their usefulness
> >   * remove any that are obsolete
> >   * adjust existing contents if needed
> >   * look for useful groups of packages that might be added
> >   
> >   We need to pay particular attention to task-core-boot and task-base as
> >   these> 
> > are pulled in by default in any image that inherits from
> > core-image.bbclass - if these are not generally working for people that
> > are creating their own images, we need to change them such that they are.
> 
> During the pre-oe-core Yocto Project development, a design was generated to
> roughly group the packages into functional areas.  For the most part, this
> design (as well as legacy elements) still exist.
> 
> I think the boot, base and others need to be evaluated for usefulness... but
> my feeling is most of them are close to being correct.

I think so as well. We may be pulling in one or two packages unconditionally 
where they should be optional (e.g. modutils-initscripts?) but most of it is 
pretty sensible.
 
> >   *  Try to make each task have a reasonable name - there are some current
> >   uses of "core" and "base" that don't actually convey any meaning; LSB
> >   specific tasks should be named as such, etc.
> 
> Yup, there is a logical grouping for the lsb specific tasks, as for others. 
> The naming needs to be made clear as to why it's there, and what it
> represents. Same with the summary and descriptions -- they should list the
> functionality provided by this group of components.

The main concern with LSB is that we have something called task-basic, which 
seems to be intended for LSB but does not state as much, and I know at least 
one person has tried to use it and then been a little puzzled as to why rpm 
has been pulled in when ipk packaging has been selected. Just naming some of 
these tasks more appropriately would help avoid such situations. In the 
specific case of task-basic there may be a case for creating a similar but not 
LSB-focused task that pulls in real shell utilities in preference to the light 
versions provided by busybox.

> > 4) Consider the usefulness of the existing PACKAGE_GROUP_ structure which
> > converts some IMAGE_FEATURES into the addition of tasks to be installed
> > (see classes/core-image.bbclass). At the very least we should probably
> > rename this if we rename tasks to package groups, and there's a question
> > as to how IMAGE_FEATURES scales - should every task be represented in
> > there or only a select list? Would we be better off not trying to bring
> > any tasks in via IMAGE_FEATURES at all and mostly leave that to control
> > post-processing (e.g. package-management, debug-tweaks, etc.)?
> 
> I'd certainly prefer that images were limited to selecting software from
> task (group) recipes only, and not providing their own.  An image should be
> able to change the selection based on an "image feature" or similar
> configuration, but the underlying tasks/groups, recipes, etc should all be
> 'generic' to a given distribution configuration.

The first part seems reasonable to me; but I'm still short of an answer as to 
what to do with the existing IMAGE_FEATURES code as mentioned above. At the 
moment aside from the special features such as debug-tweaks, these are just a 
thin layer on top of task recipes which doesn't add very much at all other 
than extra maintenance.

> I think if you go through the images today, a lot of that stuff is either
> old, or could be simplified by creating appropriate tasks/groups.

OK, that's a good point. I have another task on my list to clean up our image 
recipes and that would be a good segue into that.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [yocto] RFC: OE-Core task rework
  2012-08-21  8:49   ` Paul Eggleton
@ 2012-08-21  8:53     ` Paul Eggleton
  2012-08-21 17:34     ` Philip Balister
  1 sibling, 0 replies; 15+ messages in thread
From: Paul Eggleton @ 2012-08-21  8:53 UTC (permalink / raw)
  To: Mark Hatle
  Cc: yocto, openembedded-devel,
	Patches and discussions about the oe-core layer

On Tuesday 21 August 2012 09:49:37 Paul Eggleton wrote:
> The main concern with LSB is that we have something called task-basic,
> which  seems to be intended for LSB but does not state as much, and I know
> at least one person has tried to use it and then been a little puzzled as
> to why rpm has been pulled in when ipk packaging has been selected. Just
> naming some of these tasks more appropriately would help avoid such
> situations. In the specific case of task-basic there may be a case for
> creating a similar but not LSB-focused task that pulls in real shell
> utilities in preference to the light versions provided by busybox.

Ugh, sorry. I meant task-core-basic here - not to be confused with task-basic 
in meta-oe [1].

Cheers,
Paul

[1] http://www.openembedded.org/wiki/Meta-oe_tasks

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [yocto] RFC: OE-Core task rework
  2012-08-21  8:49   ` Paul Eggleton
  2012-08-21  8:53     ` Paul Eggleton
@ 2012-08-21 17:34     ` Philip Balister
  1 sibling, 0 replies; 15+ messages in thread
From: Philip Balister @ 2012-08-21 17:34 UTC (permalink / raw)
  To: Paul Eggleton
  Cc: yocto, openembedded-devel,
	Patches and discussions about the oe-core layer

On 08/21/2012 01:49 AM, Paul Eggleton wrote:
> On Monday 20 August 2012 15:45:07 Mark Hatle wrote:
...

>>
>> Yup, there is a logical grouping for the lsb specific tasks, as for others.
>> The naming needs to be made clear as to why it's there, and what it
>> represents. Same with the summary and descriptions -- they should list the
>> functionality provided by this group of components.
>
> The main concern with LSB is that we have something called task-basic, which
> seems to be intended for LSB but does not state as much, and I know at least
> one person has tried to use it and then been a little puzzled as to why rpm
> has been pulled in when ipk packaging has been selected. Just naming some of
> these tasks more appropriately would help avoid such situations. In the
> specific case of task-basic there may be a case for creating a similar but not
> LSB-focused task that pulls in real shell utilities in preference to the light
> versions provided by busybox.

I was seriously stumped by the presence of rpm in what I felt should 
have been a very basic image. If a task/group is targeted at lsb, it 
needs to have lsb plastered all over the name so the rest of us can 
avoid it :)

Philip

>
>>> 4) Consider the usefulness of the existing PACKAGE_GROUP_ structure which
>>> converts some IMAGE_FEATURES into the addition of tasks to be installed
>>> (see classes/core-image.bbclass). At the very least we should probably
>>> rename this if we rename tasks to package groups, and there's a question
>>> as to how IMAGE_FEATURES scales - should every task be represented in
>>> there or only a select list? Would we be better off not trying to bring
>>> any tasks in via IMAGE_FEATURES at all and mostly leave that to control
>>> post-processing (e.g. package-management, debug-tweaks, etc.)?
>>
>> I'd certainly prefer that images were limited to selecting software from
>> task (group) recipes only, and not providing their own.  An image should be
>> able to change the selection based on an "image feature" or similar
>> configuration, but the underlying tasks/groups, recipes, etc should all be
>> 'generic' to a given distribution configuration.
>
> The first part seems reasonable to me; but I'm still short of an answer as to
> what to do with the existing IMAGE_FEATURES code as mentioned above. At the
> moment aside from the special features such as debug-tweaks, these are just a
> thin layer on top of task recipes which doesn't add very much at all other
> than extra maintenance.
>
>> I think if you go through the images today, a lot of that stuff is either
>> old, or could be simplified by creating appropriate tasks/groups.
>
> OK, that's a good point. I have another task on my list to clean up our image
> recipes and that would be a good segue into that.
>
> Cheers,
> Paul
>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: RFC: OE-Core task rework
  2012-08-15  9:46 RFC: OE-Core task rework Paul Eggleton
                   ` (3 preceding siblings ...)
  2012-08-20 20:45 ` [yocto] " Mark Hatle
@ 2012-08-28  7:05 ` Paul Eggleton
  4 siblings, 0 replies; 15+ messages in thread
From: Paul Eggleton @ 2012-08-28  7:05 UTC (permalink / raw)
  To: openembedded-core; +Cc: yocto, openembedded-devel

On Wednesday 15 August 2012 10:46:49 Paul Eggleton wrote:
> Hi all,
> 
> There have been a few requests to review the task recipes (i.e. package
> groups) provided by OE-Core, and indeed these have not really been looked at
> seriously since OE-Core was created. Ideally I think we want them to be
> useful to a wide audience and provide useful units of functionality that
> can be added to an image without the person doing the selection having to
> manually select too many individual packages. Imagine presenting the list
> of tasks to someone in a UI for assembling images (such as Hob or
> Narcissus) and you can start to see that we have some work to do in this
> area.
> 
> I know various distros and users of OE-Core have created their own tasks or
> resurrected tasks from OE-Classic, and this is an opportunity to perhaps
> look at bringing some of these (or at least, parts of them) into the core.
> It is true that tasks will often be an expression of distro policy, and we
> also can't have any tasks in OE-Core that refer to packages that don't
> exist in OE- Core; thus distros will always be extending the base tasks or
> adding their own - and that's fine. However, with some thought I believe we
> can come up with a set of tasks that are generally useful to most people
> using OE-Core.
> 
> For reference, I've compiled a list on the wiki of the current tasks in OE-
> Core with links to the recipes and some notes:
> 
>   http://www.openembedded.org/wiki/OE-Core_Task_Rework
> 
> Some of the things I think we ought to consider/address as part of this
> exercise:
> 
> 1) Do we rename "task" to something a little more understandable to the
> uninitiated, such as "package group"? The word "task" is already used in a
> much more natural sense within bitbake as a unit of work. Historically I
> believe we picked up this term from Debian but I'm not aware of significant
> use by other mainstream distributions.
> 
> 2) Look at the existing tasks and:
>  * evaluate their usefulness
>  * remove any that are obsolete
>  * adjust existing contents if needed
>  * look for useful groups of packages that might be added
> 
>  We need to pay particular attention to task-core-boot and task-base as
> these are pulled in by default in any image that inherits from
> core-image.bbclass - if these are not generally working for people that are
> creating their own images, we need to change them such that they are.
> 
> 3) Ensure all task recipes follow reasonable patterns:
>  *  Fix recipe DESCRIPTIONs to make sense (and not contain Poky references)
>  *  Ensure all individual packages have a decent SUMMARY/DESCRIPTION
>  *  Try to make each task have a reasonable name - there are some current
> uses of "core" and "base" that don't actually convey any meaning; LSB
> specific tasks should be named as such, etc.
>  *  Make all tasks inherit task.bbclass so that they get proper dbg/dev
> packages and any other common task functionality
> 
> 4) Consider the usefulness of the existing PACKAGE_GROUP_ structure which
> converts some IMAGE_FEATURES into the addition of tasks to be installed (see
> classes/core-image.bbclass). At the very least we should probably rename
> this if we rename tasks to package groups, and there's a question as to how
> IMAGE_FEATURES scales - should every task be represented in there or only a
> select list? Would we be better off not trying to bring any tasks in via
> IMAGE_FEATURES at all and mostly leave that to control post-processing
> (e.g. package-management, debug-tweaks, etc.)?
> 
> Please reply with your thoughts. Once we've come to a consensus on the
> things we want to do (allowing plenty of time for discussion), I'll look at
> putting together a set of patches that makes the appropriate changes.

So, any further thoughts on this one?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-08-28  7:18 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-15  9:46 RFC: OE-Core task rework Paul Eggleton
2012-08-15 10:54 ` [yocto] " Koen Kooi
2012-08-15 12:57   ` Paul Eggleton
2012-08-15 11:17 ` Jack Mitchell
2012-08-15 12:59   ` Paul Eggleton
2012-08-15 11:25 ` Phil Blundell
2012-08-15 13:08   ` Paul Eggleton
2012-08-15 18:05     ` Mark Hatle
2012-08-15 19:12       ` Chris Larson
2012-08-15 19:30         ` Mark Hatle
2012-08-20 20:45 ` [yocto] " Mark Hatle
2012-08-21  8:49   ` Paul Eggleton
2012-08-21  8:53     ` Paul Eggleton
2012-08-21 17:34     ` Philip Balister
2012-08-28  7:05 ` Paul Eggleton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox