From: Mark Hatle <mark.hatle@windriver.com>
To: <yocto@yoctoproject.org>,
Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>,
<openembedded-devel@lists.openembedded.org>
Subject: Re: [yocto] RFC: OE-Core task rework
Date: Mon, 20 Aug 2012 15:45:07 -0500 [thread overview]
Message-ID: <5032A1D3.8090600@windriver.com> (raw)
In-Reply-To: <2404459.dJBf5OQotX@helios>
[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
>
next prev parent reply other threads:[~2012-08-20 20:57 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Mark Hatle [this message]
2012-08-21 8:49 ` [yocto] " Paul Eggleton
2012-08-21 8:53 ` Paul Eggleton
2012-08-21 17:34 ` Philip Balister
2012-08-28 7:05 ` Paul Eggleton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5032A1D3.8090600@windriver.com \
--to=mark.hatle@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=openembedded-devel@lists.openembedded.org \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox