OE-Core Task Rework

From Openembedded.org
Jump to: navigation, search

Aims

See the following thread (cross-posted to OE/Yocto mailing lists): [1] [2] [3]

Existing tasks

Key:

# - enabled/disabled by appropriate MACHINE_FEATURES or DISTRO_FEATURES
 % - substitutable using a variable in distro config (e.g. VIRTUAL_RUNTIME_*)

Note: recipe descriptions are extracted from the DESCRIPTION field in the recipe, and as you can see they need improvement.

Task package RDEPENDS RRECOMMENDS Comments
task-base
Merge machine and distro options to create a basic machine task/package
task-base task-distro-base
task-machine-base
sysfsutils
module-init-tools
task-base-apm#
task-base-acpi#
task-base-keyboard#
task-base-phone#
task-base-alsa#
task-base-ext2#
task-base-irda#
task-base-pci#
task-base-pcmcia#
task-base-usbgadget#
task-base-usbhost#
task-base-bluetooth#
task-base-nfs#
task-base-cramfs#
task-base-smbfs#
task-base-ipv6#
task-base-ppp#
task-base-raid#
task-base-zeroconf#
kernel-module-nls-utf8
kernel-module-input
kernel-module-uinput
kernel-module-rtc-dev
kernel-module-rtc-proc
kernel-module-rtc-sysfs
kernel-module-unix
task-base-extended task-base
task-base-wifi#
task-base-bluetooth#
task-base-3g#
Intended to add bluetooth/3g/wifi packages if it is possible to plug in an adapter for these into the machine (determined by availability of pci/usb/pcmcia etc.) Along with task-core-boot, this task is installed by default in any image that inherits from core-image.bbclass (unless the image sets its own value for IMAGE_INSTALL - e.g. core-image-minimal does this).
task-distro-base ${DISTRO_EXTRA_RDEPENDS} ${DISTRO_EXTRA_RRECOMMENDS}
task-machine-base ${MACHINE_EXTRA_RDEPENDS} ${MACHINE_EXTRA_RRECOMMENDS}
task-base-alsa# alsa-utils-alsactl
alsa-utils-alsamixer
alsa-state%
kernel-module-snd-mixer-oss
kernel-module-snd-pcm-oss
task-base-acpi# acpid
libacpi
task-base-apm# apm%
apmd
task-base-ext2# hdparm
e2fsprogs
e2fsprogs-e2fsck
e2fsprogs-mke2fs
task-base-vfat# kernel-module-msdos
kernel-module-vfat
kernel-module-nls-iso8859-1
kernel-module-nls-cp437
task-base-ipsec# openswan We don't actually have openswan in OE-Core, thus if ipsec is in DISTRO_FEATURES and no other layer is enabled that does contain it -> fail!
task-base-irda# irda-utils kernel-module-pxaficp-ir
kernel-module-irda
kernel-module-ircomm
kernel-module-ircomm-tty
kernel-module-irlan
kernel-module-irnet#
kernel-module-irport
kernel-module-irtty
kernel-module-irtty-sir
kernel-module-sir-dev
kernel-module-ir-usb#
task-base-keyboard# keymaps
task-base-pci# pciutils
task-base-pcmcia# pcmciautils kernel-module-pcmcia
kernel-module-airo-cs
kernel-module-pcnet-cs
kernel-module-serial-cs
kernel-module-ide-cs
kernel-module-ide-disk
kernel-module-hostap-cs#
kernel-module-orinoco-cs#
kernel-module-spectrum-cs#
task-base-phone# ofono
task-base-screen#
task-base-serial# setserial
lrzsz
task-base-touchscreen#
task-base-usbgadget# kernel-module-pxa27x_udc
kernel-module-gadgetfs
kernel-module-g-file-storage
kernel-module-g-serial
kernel-module-g-ether
task-base-usbhost# usbutils kernel-module-uhci-hcd
kernel-module-ohci-hcd
kernel-module-ehci-hcd
kernel-module-usbcore
kernel-module-usbhid
kernel-module-usbnet
kernel-module-sd-mod
kernel-module-scsi-mod
kernel-module-usbmouse
kernel-module-mousedev
kernel-module-usbserial
kernel-module-usb-storage
task-base-uboot# Obsolete?
task-base-redboot# Obsolete?
task-base-apex# Obsolete?
task-base-bluetooth# bluez4 kernel-module-bluetooth
kernel-module-l2cap
kernel-module-rfcomm
kernel-module-hci-vhci
kernel-module-bnep
kernel-module-hidp
kernel-module-hci-uart
kernel-module-sco
kernel-module-hci-usb#
kernel-module-bluetooth3c-cs#
kernel-module-bluecard-cs#
kernel-module-bluetoothuart-cs#
kernel-module-dtl1-cs#
task-base-wifi# wireless-tools
hostap-utils#
wpa-supplicant
kernel-module-zd1211rw#
kernel-module-ieee80211-crypt
kernel-module-ieee80211-crypt-ccmp
kernel-module-ieee80211-crypt-tkip
kernel-module-ieee80211-crypt-wep
kernel-module-ecb
kernel-module-arc4
kernel-module-crypto_algapi
kernel-module-cryptomgr
kernel-module-michael-mic
kernel-module-aes-generic
kernel-module-aes
task-base-3g# ofono kernel-module-cdc-acm
kernel-module-cdc-wdm
task-base-cramfs# kernel-module-cramfs
task-base-ipv6# kernel-module-ipv6
task-base-nfs# portmap kernel-module-nfs
task-base-ppp# ppp
ppp-dialin
kernel-module-ppp-async
kernel-module-ppp-deflate
kernel-module-ppp-generic
kernel-module-ppp-mppe
kernel-module-slhc
task-base-smbfs# kernel-module-cifs
kernel-module-smbfs
task-base-raid# Doesn't do anything - maybe could bring in mdadm?
task-base-zeroconf# avahi-daemon
task-core-apps-x11-pimlico
X11 Pimlico Appications List
task-core-apps-x11-pimlico evolution-data-server
contacts
dates
tasks
gaku
Almost certain to be removed with the imminent removal of pimlico apps Recipe deleted in latest master.
task-core-basic
Create Basic Image Tasks
task-core-basic task-core-base-utils
task-core-basic-libs
task-core-basic-utils
task-core-basic-extended
task-core-dev-utils
task-core-multiuser
task-core-initscripts
task-core-rpm
task-core-sys-services
Note: this was intended for LSB, possibly to be renamed
task-core-base-utils busybox Poorly named and doesn't seem particularly useful
task-core-basic-libs glib-2.0
task-core-basic-utils bash
acl
attr
bc
coreutils
cpio
e2fsprogs
ed
file
findutils
gawk
gmp
grep
makedevs
mc
mktemp
ncurses
net-tools
pax
popt
procps
psmisc
sed
tar
time
udev
util-linux
zlib
task-core-basic-extended iproute2
iputils
iptables
module-init-tools
openssl
task-core-dev-utils byacc
diffutils
m4
make
patch
task-core-multiuser cracklib
gzip
libuser
libpam
shadow
sudo
task-core-initscripts initscripts
sysvinit
ethtool
mingetty
sysklogd
task-core-rpm beecrypt
rpm
zypper
task-core-sys-services at
bzip2
cronie
dbus
dbus-glib
python-dbus
elfutils
gzip
less
libcap
libevent
lighttpd
logrotate
nfs-utils
pciutils
libpcre
rpcbind
sysfsutils
tcp-wrappers
tzdata
task-core-boot
Task for OpenedHand Poky - minimal bootable image
task-core-boot base-files
base-passwd
busybox
initscripts%
keymaps#
modutils-initscripts
netbase
tinylogin%
sysvinit%
udev%
update-alternatives-cworth%
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}
${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS} Packages that are essential in order to boot. The main task installed by most images in OE-Core and any image that inherits from core-image.bbclass.
task-core-clutter
Clutter Tasks for OpenedHand Poky
task-core-clutter-core clutter-1.8
clutter-gst-1.8
clutter-gtk-1.8
task-core-clutter-apps Commented out
task-core-clutter-tests Commented out
task-core-console
Tasks for core console applications
task-core-apps-console avahi-daemon
dbus
portmap
psplash%
psplash is not really an application...
task-core-gtk-directfb
gkt+ over directfb without x11
task-core-gtk-directfb
task-core-gtk-directfb-base directfb
directfb-examples
pango
pango-modules
fontconfig
gtk+
gtk-demo
dropbear
tslib
tslib-calibrate
tslib-tests
task-core-lsb
Create Small Image Tasks
task-core-lsb task-core-sys-extended
task-core-db
task-core-misc
task-core-perl
task-core-python
task-core-tcl
task-core-lsb-perl-add
task-core-lsb-python-add
task-core-lsb-graphic-add
task-core-lsb-runtime-add
task-core-lsb-command-add
task-core-sys-extended binutils
binutils-symlinks
chkconfig
curl
dhcp-client
diffutils
gamin
hdparm
libaio
libxml2
lrzsz
lzo
mc
mdadm
minicom
neon
parted
pth%
quota
screen
setserial
sysstat
unzip
watchdog
which
xinetd
zip
lsbinitscripts
task-core-db db
sqlite3
task-core-misc elfutils
gettext
gettext-runtime
groff
lsb
lsbsetup
lsbtest
lsof
man
man-pages
ncurses
strace
libusb1
usbutils
zlib
task-core-perl gdbm
perl
zlib
task-core-python expat
gdbm
gmp
ncurses
openssl
python
readline
zip
task-core-tcl tcl
task-core-lsb-perl-add perl-modules
perl-misc
perl-pod
task-core-lsb-python-add python-modules
python-misc
task-core-lsb-graphic-add libqtcore4
libqtgui4
libqtsql4
libqtsvg4
libqtxml4
libqtnetwork4
libxt
libxxf86vm
libdrm
libglu
libxi
libxtst
qt4-plugin-sqldriver-sqlite
libx11-locale
xorg-minimal-fonts
gdk-pixbuf-loader-ico
gdk-pixbuf-loader-bmp
gdk-pixbuf-loader-ani
gdk-pixbuf-xlib
liberation-fonts
gtk+
atk
libasound
libqtopengl4#
task-core-lsb-runtime-add ldd
pam-plugin-wheel
e2fsprogs-mke2fs
mkfontdir
liburi-perl
libxml-parser-perl
libxml-perl
libxml-sax-perl
eglibc-localedatas
eglibc-gconvs
eglibc-charmaps
eglibc-binaries
eglibc-localedata-posix
eglibc-extra-nss
eglibc-pcprofile
eglibc-pic
eglibc-utils
task-core-lsb-command-add localedef
fontconfig-utils
mailx
msmtp
chkconfig
xdg-utils
foomatic-filters
cups
ghostscript
task-core-nfs
NFS tasks for Poky
task-core-nfs-server nfs-utils
nfs-utils-client
glibc-utils%
task-core-qt
Qt Tasks for Poky
task-core-qt-demos quicky%
fotowall%
Contents entirely controlled by QTDEMOS variable
task-core-sdk
Software Development Tasks for OpenedHand Poky
task-core-sdk autoconf
automake
binutils
binutils-symlinks
coreutils
cpp
cpp-symlinks
ccache
diffutils
gcc
gcc-symlinks
g++
g++-symlinks
gettext
make
intltool
libstdc++
libstdc++-dev
libtool
perl-module-re
perl-module-text-wrap
pkgconfig
findutils
quilt
less
distcc
ldd
file
tcl
libgomp
libgomp-dev
task-core-sdk-gmae
Gnome Mobile And Embedded Software Development Kit for OE-Core
task-core-sdk-gmae task-core-sdk
libglade-dev
dbus-dev%
dbus-glib-dev%
gtk+-dev%
gstreamer-dev%
bluez4-dev%
gconf-dev%
avahi-dev%
telepathy-glib-dev%
evolution-data-server-dev%
libecal-dev%
libebook-dev%
libxi-dev%
libsqlite3-dev%
galago-daemon%
gnome-desktop%
gssdp%
gupnp%
gupnp-av%
gupnp-tools%
gypsy%
libart-lgpl%
libgalago%
libtelepathy%
pulseaudio%
telepathy-glib%
telepathy-idle%
telepathy-mission-control%
telepathy-python%
valgrind%
lttng-ust-dev%
Contents mostly controlled by SDK-GMAE and SDK-EXTRAS variables
task-core-ssh-dropbear
Dropbear SSH task for Poky
task-core-ssh-dropbear dropbear
task-core-ssh-openssh
OpenSSH SSH task for Poky
task-core-ssh-openssh openssh
task-core-standalone-gmae-sdk-target
Gnome Mobile And Embedded Software Development Kit for OE-Core
task-core-standalone-gmae-sdk-target task-core-standalone-sdk-target
libglade-dev
dbus-dev%
dbus-glib-dev%
gtk+-dev%
gstreamer-dev%
bluez4-dev%
gconf-dev%
avahi-dev%
telepathy-glib-dev%
evolution-data-server-dev%
libecal-dev%
libebook-dev%
libxi-dev%
libsqlite3-dev%
galago-daemon%
gnome-desktop%
gssdp%
gupnp%
gupnp-av%
gupnp-tools%
gypsy%
libart-lgpl%
libgalago%
libtelepathy%
pulseaudio%
telepathy-glib%
telepathy-idle%
telepathy-mission-control%
telepathy-python%
valgrind%
lttng-ust-dev%
Contents mostly controlled by SDK-GMAE and SDK-EXTRAS variables
task-core-standalone-sdk-target
Target packages for the standalone SDK
task-core-standalone-sdk-target libgcc
libgcc-dev
libstdc++
libstdc++-dev
libsegfault
eglibc
eglibc-dbg
eglibc-dev
eglibc-utils
eglibc-thread-db
eglibc-localedata-i18n
eglibc-gconv-ibm850
eglibc-gconv-cp1252
eglibc-gconv-iso8859-1
eglibc-gconv-iso8859-15
task-core-tools-debug
Debug tools tasks for OE-Core
task-core-tools-debug gdb
gdbserver
tcf-agent
openssh-sftp-server
rsync
strace
libc-mtrace%
task-core-tools-profile
Profile tools tasks for OE-Core
task-core-tools-profile oprofile%
oprofileui-server%
powertop%
latencytop%
lttng-control%
lttng-viewer%
lttng-ust%
systemtap%
valgrind%
perf
trace-cmd
kernel-module-oprofile
blktrace
sysprof
Contents controlled by PROFILETOOLS, LTTNGUST, SYSTEMTAP and VALGRIND variables; the last three are to avoid pulling these packages in on platforms where they don't work.
task-core-tools-testapps
Test apps task for OE-Core
task-core-tools-testapps blktool
fstests
tslib-calibrate
tslib-tests
lrzsz
kexec%
alsa-utils-amixer
alsa-utils-aplay
owl-video
gst-meta-video
gst-meta-audio
mesa-demos
x11perf
xrestop
xwininfo
xprop
xvideo-tests
clutter-box2d
ltp
task-core-x11
Tasks for core X11 applications
task-core-apps-x11-core leafpad
pcmanfm%
matchbox-terminal
sato-screenshot
task-core-apps-x11-games oh-puzzles
task-core-x11-base dbus
pointercal
matchbox-wm
matchbox-keyboard
matchbox-keyboard-applet
matchbox-keyboard-im
matchbox-panel-2
matchbox-desktop
matchbox-session
xserver-kdrive-fbdev%
x11-common%
xserver-nodm-init%
liberation-fonts
xauth
xhost
xset
xrandr
This is probably useless - replace with task-core-x11-mini and move other bits to sato-specific tasks
task-core-x11-mini
Tasks for core X11 applications
task-core-x11-mini dbus
pointercal
matchbox-terminal
matchbox-wm
mini-x-session
xserver-kdrive-fbdev%
x11-common%
xserver-nodm-init%
liberation-fonts
xauth
xhost
xset
xrandr
Contents partially controlled by XSERVER and other variables
task-core-x11-sato
Sato Tasks for Poky
task-core-x11-sato matchbox-desktop
matchbox-session-sato
matchbox-keyboard
matchbox-stroke
matchbox-config-gtk
xcursor-transparent-theme
sato-icon-theme
settings-daemon
gtk-sato-engine
gthumb
x11vnc
libsdl
gaku
connman-gnome%
task-qt4e
QT4 Embedded base Image Feed
task-qt4e
task-qt4e-base qt4-embedded
libqt-embedded3support4
libqt-embeddedclucene4
libqt-embeddedcore4
libqt-embeddeddbus4
libqt-embeddedgui4
libqt-embeddedhelp4
libqt-embeddedmultimedia4
libqt-embeddednetwork4
libqt-embeddedscript4
libqt-embeddedscripttools4
libqt-embeddedsql4
libqt-embeddedsvg4
libqt-embeddedtest4
libqt-embeddedwebkit4
libqt-embeddedxml4
qt4-embedded-fonts-ttf-dejavu
qt4-embedded-fonts-ttf-vera
qt4-embedded-plugin-iconengine-svgicon
qt4-embedded-plugin-imageformat-gif
qt4-embedded-plugin-imageformat-ico
qt4-embedded-plugin-imageformat-jpeg
qt4-embedded-plugin-imageformat-mng
qt4-embedded-plugin-imageformat-svg
qt4-embedded-plugin-imageformat-tiff
qt4-embedded-plugin-mousedriver-tslib
qt4-embedded-plugin-phonon-backend-gstreamer
qt4-embedded-plugin-script-dbus
qt4-embedded-plugin-sqldriver-sqlite
tslib
tslib-calibrate
tslib-tests
qt4-embedded-demos
qt4-embedded-examples
qt-demo-init
qt4-embedded-assistant
libqt-embeddedxmlpatterns4
task-qte-toolchain-host-nativesdk
Host packages for Qt Embedded SDK
task-qte-toolchain-host-nativesdk pkgconfig-nativesdk
qemu-nativesdk
qemu-helper-nativesdk
pseudo-nativesdk
unfs-server-nativesdk
opkg-nativesdk
libtool-nativesdk
autoconf-nativesdk
automake-nativesdk
qt4-tools-nativesdk
task-qte-toolchain-target
Target packages for Qt Embedded SDK
task-qte-toolchain-target task-core-standalone-sdk-target
qt4-embedded-mkspecs
libqt-embeddedmultimedia4-dev
libqt-embeddedphonon4-dev
libqt-embedded3support4-dev
libqt-embeddedclucene4-dev
libqt-embeddedcore4-dev
libqt-embeddeddbus4-dev
libqt-embeddeddesignercomponents4-dev
libqt-embeddeddesigner4-dev
libqt-embeddeduitools4-dev
libqt-embeddedgui4-dev
libqt-embeddedhelp4-dev
libqt-embeddednetwork4-dev
libqt-embeddedscript4-dev
libqt-embeddedscripttools4-dev
libqt-embeddedsql4-dev
libqt-embeddedsvg4-dev
libqt-embeddedtest4-dev
libqt-embeddedwebkit4-dev
libqt-embeddedxml4-dev
libsqlite3-dev
expat-dev
task-sdk-host-nativesdk
Host packages for the standalone SDK or external toolchain
task-sdk-host-nativesdk pkgconfig-nativesdk
qemu-nativesdk
qemu-helper-nativesdk
pseudo-nativesdk
unfs-server-nativesdk
opkg-nativesdk
libtool-nativesdk
autoconf-nativesdk
automake-nativesdk
task-self-hosted
Create Basic Image Tasks
task-self-hosted task-self-hosted-debug
task-self-hosted-sdk
task-self-hosted-extended
task-self-hosted-graphics
task-self-hosted-host-tools
Intended to pull in the packages for build-appliance-image - i.e. packages required to actually run the build system on the target.
task-self-hosted-debug gdb
gdbserver
rsync
strace
tcf-agent
task-self-hosted-sdk autoconf
automake
binutils
binutils-symlinks
ccache
coreutils
cpp
cpp-symlinks
distcc
eglibc-utils
eglibc-gconv-ibm850
file
findutils
g++
g++-symlinks
gcc
gcc-symlinks
intltool
ldd
less
libstdc++
libstdc++-dev
libtool
make
mktemp
perl-module-re
perl-module-text-wrap
pkgconfig
quilt
sed
task-self-hosted-extended bzip2
chkconfig
chrpath
cpio
curl
diffstat
diffutils
elfutils
expat
gamin
gawk
gdbm
gettext
gettext-runtime
git
grep
groff
gzip
hicolor-icon-theme
libaio
libusb1
libxml2
lrzsz
lsof
lzo
man
man-pages
mdadm
minicom
mtools
ncurses
neon
nfs-utils
nfs-utils-client
openssl
opkg
opkg-utils
patch
perl
perl-dev
perl-modules
perl-pod
pth%
python
python-compile
python-compiler
python-compression
python-core
python-curses
python-datetime
python-distutils
python-elementtree
python-email
python-fcntl
python-logging
python-misc
python-multiprocessing
python-netclient
python-netserver
python-pickle
python-pkgutil
python-re
python-rpm
python-shell
python-sqlite3
python-subprocess
python-textutils
python-unixadmin
python-xmlrpc
quota
readline
rpm
setserial
socat
subversion
sudo
sysstat
tar
tcl
texi2html
texinfo
unzip
usbutils
watchdog
wget
which
xinetd
zip
zlib
task-self-hosted-graphics builder
libgl
libgl-dev
libglu
libglu-dev
libsdl
libsdl-dev
libx11-dev
python-pygtk
gtk-theme-clearlooks
task-self-hosted-host-tools connman
connman-plugin-ethernet
dhcp-client
e2fsprogs
e2fsprogs-e2fsck
e2fsprogs-fsck
e2fsprogs-mke2fs
e2fsprogs-tune2fs
genext2fs
hdparm
iptables
kernel-module-tun
kernel-module-iptable-raw
kernel-module-iptable-nat
kernel-module-iptable-mangle
kernel-module-iptable-filter
lsb
mc
parted
pseudo
screen
vte

The previous table was mostly assembled using this script (with a bunch of editing afterwards, of course - you also have to force on all DISTRO_FEATURES/MACHINE_FEATURES if processing tasks like task-base that look at those variables):

#!/bin/bash
# Hacked up OE task info extraction script

extractvalue() {
    grep "^$1=" $tempfile | sed -e "s/^$1=\"//" -e 's/"$//' -E -e "s/[ \t]+/ /g"
}

if [ -z "$1" ] ; then
    echo "Please specify a recipe"
    exit 1
fi

tempfile=`mktemp`
bitbake -e $1 > $tempfile

PACKAGES=`extractvalue PACKAGES`
maindesc=`extractvalue DESCRIPTION`
cgiturl="http://cgit.openembedded.org/openembedded-core/tree/"
recipe=`extractvalue FILE | sed 's!^.*/meta!meta!'`

echo "!colspan=\"5\"|''[${cgiturl}${recipe} $1]''<BR>$maindesc"
echo "|-"
for pkg in $PACKAGES ; do
    echo "$pkg" | grep -q -- '-dev$' && continue
    echo "$pkg" | grep -q -- '-dbg$' && continue
    echo "$pkg" | grep -q -- '-doc$' && continue
    echo "$pkg" | grep -q -- '-staticdev$' && continue
    echo "$pkg" | grep -q -- '-locale$' && continue
    deps=`extractvalue RDEPENDS_$pkg | sed 's/ /<BR>/g'`
    recs=`extractvalue RRECOMMENDS_$pkg | sed 's/ /<BR>/g'`
    echo "||$pkg||$deps||$recs||"
    echo "|-"
done

rm $tempfile


See also meta-oe tasks for tasks that are part of meta-oe.

Missing tasks

Some ideas:

  • Network management - add connman and plugins appropriate based on DISTRO_FEATURES / COMBINED_FEATURES. Should be overridable to networkmanager for those that prefer it with meta-oe.
  • Full-featured command-line utilities - for when the ones provided by busybox aren't sufficient. This may satisfy the requirement for a non-LSB specific version of task-core-basic...?
  • Web server - default to lighttpd, allow overriding to apache when a layer provides this