# Distribution definition for: poky-tiny
#
# Copyright (c) 2011, Intel Corporation.
# All rights reserved.
#
# This file is released under the MIT license as described in
# ../meta/COPYING.MIT.
#
# Poky-tiny is intended to define a tiny Linux system comprised of a
# Linux kernel tailored to support each specific MACHINE and busybox.
# Poky-tiny sets some basic policy to ensure a usable system while still
# keeping the rootfs and kernel image as small as possible.
#
# The policies defined are intended to meet the following goals:
# o Serial consoles only (no framebuffer or VGA console)
# o Basic support for IPV4 networking
# o Single user ash shell
# o Static images (no support for adding packages or libraries later)
# o Read-only or RAMFS root filesystem
# o Combined Linux kernel + rootfs in under 4MB
# o Allow the user to select between eglibc or uclibc with the TCLIBC variable
#
# This is currently a partial definition, the following tasks remain:
# [ ] Integrate linux-yocto-tiny ktype into linux-yocto
# [ ] Define linux-yocto-tiny configs for all supported BSPs
# [ ] Drop ldconfig from the installation
# [ ] Modify the runqemu scripts to work with ext2 parameter:
#     runqemu qemux86 qemuparams="-nographic" bootparams="console=ttyS0,115200 root=0800"
# [ ] Modify busybox to allow for DISTRO_FEATURES-like confiruration

require conf/distro/poky.conf
DISTRO = "poky-tiny"
TCLIBC = "musl"
# FIXME: consider adding a new "tiny" feature
#DISTRO_FEATURES_append = " tiny"

# Distro config is evaluated after the machine config, so we have to explicitly
# set the kernel provider to override a machine config.
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
PREFERRED_VERSION_linux-yocto-tiny ?= "4.4%"

# We can use packagegroup-core-boot, but in the future we may need a new packagegroup-core-tiny
#POKY_DEFAULT_EXTRA_RDEPENDS += "packagegroup-core-boot"
# Drop kernel-module-af-packet from RRECOMMENDS
POKY_DEFAULT_EXTRA_RRECOMMENDS = ""

# FIXME: what should we do with this?
TCLIBCAPPEND = ""

# Disable wide char support for ncurses as we don't include it in
# in the LIBC features below.
# Leave native enable to avoid build failures
ENABLE_WIDEC = "false"
ENABLE_WIDEC_class-native = "true"

# Drop native language support. This removes the
# eglibc->bash->gettext->libc-posix-clang-wchar dependency.
USE_NLS="no"

# Comment out any of the lines below to disable them in the build
# DISTRO_FEATURES options:
# alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci
DISTRO_FEATURES_TINY = "pci"
DISTRO_FEATURES_NET = "ipv4 ipv6"
DISTRO_FEATURES_USB = "usbhost"
#DISTRO_FEATURES_USBGADGET = "usbgadget"
#DISTRO_FEATURES_WIFI = "wifi"

DISTRO_FEATURES = "${DISTRO_FEATURES_TINY} \
                   ${DISTRO_FEATURES_NET} \
                   ${DISTRO_FEATURES_USB} \
                   ${DISTRO_FEATURES_USBGADGET} \
                   ${DISTRO_FEATURES_WIFI} \
                  "

# Enable LFS - see bug YOCTO #5865
DISTRO_FEATURES_append_libc-uclibc = " largefile"
DISTRO_FEATURES_append_libc-musl = " largefile"

DISTRO_FEATURES_class-native = "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"
DISTRO_FEATURES_class-nativesdk = "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"

# Use tmpdevfs and the busybox runtime services
VIRTUAL-RUNTIME_dev_manager = ""
VIRTUAL-RUNTIME_login_manager = ""
VIRTUAL-RUNTIME_init_manager = "tiny-init"
VIRTUAL-RUNTIME_keymaps = ""

# FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in
# packagegroup-core-base to select modutils-initscripts or not.  Similar with "net" and
# netbase.

# By default we only support initramfs. We don't build live as that
# pulls in a lot of dependencies for the live image and the installer, like
# udev, grub, etc.  These pull in gettext, which fails to build with wide
# character support.
IMAGE_FSTYPES = "cpio.gz"

# Drop v86d from qemu dependency list (we support serial)
# Drop grub from meta-intel BSPs
# FIXME: A different mechanism is needed here. We could define -tiny
#        variants of all compatible machines, but that leads to a lot
#        more machine configs to maintain long term.
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = ""

# The mtrace script included by eglibc is a perl script. This means the system
# will build perl in case this package is installed. Since we don't care about
# this script for the purposes of tiny, remove the dependency from here.
RDEPENDS_${PN}-mtrace_pn-eglibc = ""

PNBLACKLIST[build-appliance-image] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-base] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-clutter] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-directfb] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-full-cmdline] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-lsb] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-lsb-dev] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-lsb-sdk] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-rt] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-rt-sdk] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-sato] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-sato-dev] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-sato-sdk] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-x11] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-weston] = "not buildable with poky-tiny"

# Disable python usage in opkg-utils since it won't build with tiny config
PACKAGECONFIG_remove_pn-opkg-utils = "python"
