diff options
author | Marcin Juszkiewicz <hrw@koansoftware.com> | 2008-12-16 12:28:07 +0100 |
---|---|---|
committer | Marcin Juszkiewicz <hrw@koansoftware.com> | 2009-02-12 14:00:23 +0100 |
commit | 0c713936610b52b71b94c79add4196cb0becb64d (patch) | |
tree | 050000e43a01674cefea84a3d4f64bd791154fc5 /conf/distro | |
parent | b935d0e40c9bd24294d13bfbde0cbdcd14671e0c (diff) |
kaeilos: first attempt to make new Angstrom based distro
Diffstat (limited to 'conf/distro')
-rw-r--r-- | conf/distro/include/kaeilos.inc | 292 | ||||
-rw-r--r-- | conf/distro/kaeilos.conf | 184 |
2 files changed, 476 insertions, 0 deletions
diff --git a/conf/distro/include/kaeilos.inc b/conf/distro/include/kaeilos.inc new file mode 100644 index 0000000000..6d5ceb8da8 --- /dev/null +++ b/conf/distro/include/kaeilos.inc @@ -0,0 +1,292 @@ +#@TYPE: Distribution +#@NAME: KaeilOS +#@DESCRIPTION: Release independent distribution configuration for KaeilOS +#@MAINTAINER: Marco Cavallini <m.cavallini@koansoftware.com> +# KaeilOS is a registered trade mark of KOAN - Bergamo - Italia +# Product website : http://www.KaeilOS.com + +# Preserve original DISTRO value +USERDISTRO := "${DISTRO}" +DISTRO = "kaeilos" +DISTRO_NAME = "KaeilOS" + +TARGET_VENDOR = "-kaeilos" + +# Add FEED_ARCH to overrides +OVERRIDES .= ":${FEED_ARCH}" + +# Put links to sources in deploy/sources to make it easier for people to be GPL compliant +SRC_DIST_LOCAL ?= "symlink" +INHERIT += "src_distribute_local" + +# Can be "glibc", "eglibc" or "uclibc" +ANGSTROMLIBC ?= "glibc" +PSTAGE_EXTRAPATH = "${ANGSTROMLIBC}" + +CACHE = "${TMPDIR}/cache/${ANGSTROMLIBC}/${MACHINE}" +DEPLOY_DIR = "${TMPDIR}/deploy/${ANGSTROMLIBC}" +require conf/distro/include/angstrom-${ANGSTROMLIBC}.inc + +# ARM920T and up can use thumb mode to decrease binary size at the expense of speed +# (the complete story is a bit more nuanced due to cache starvation) +# KaeilOS turns on thumb for armv4t machine according to this RFC: +# http://lists.linuxtogo.org/pipermail/angstrom-distro-devel/2008-October/002714.html + +# We can't do ARM_INSTRUCTION_SET_armv4t since that will un-overridable in recipes like gcc +ANGSTROM_ARM_INSTRUCTION_SET ?= "arm" +ANGSTROM_ARM_INSTRUCTION_SET_armv4t = "thumb" +ANGSTROM_ARM_INSTRUCTION_SET_armv5te = "thumb" + + +ARM_INSTRUCTION_SET = "${ANGSTROM_ARM_INSTRUCTION_SET}" +# "arm" "thumb" +# The instruction set the compiler should use when generating application +# code. The kernel is always compiled with arm code at present. arm code +# is the original 32 bit ARM instruction set, thumb code is the 16 bit +# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size) +# but requires more instructions (140% for 70% smaller code) so may be +# slower. + +THUMB_INTERWORK = "yes" +# "yes" "no" +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows thumb code to be executed on a primarily +# arm system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. + + +#Use this variable in feeds and other parts that need a URI +ANGSTROM_URI ?= "http://www.angstrom-distribution.org" + +#Use this variable to select which recipe you want to use to get feed configs (/etc/ipkg/, /etc/apt/sources.list) +# usefull for derivative distros and local testing +# As this is runtime we can't and won't use virtual/feed-configs +ANGSTROM_FEED_CONFIGS ?= "angstrom-feed-configs" + +#Set the default maintainer to angstrom-dev +MAINTAINER = "KaeilOS Developers <info@koansoftware.com>" + +#use debian style naming +INHERIT += "debian" + +#activate config checker +INHERIT += "sanity" + +#make devshell available as task +INHERIT += "devshell" + +#use angstrom source mirrors to combat 404s +INHERIT += "angstrom-mirrors" + +#run QA tests on builds and packages and log them +INHERIT += "insane" +QA_LOG = "1" + +ANGSTROM_PKG_FORMAT ?= "ipk" +require conf/distro/include/angstrom-package-${ANGSTROM_PKG_FORMAT}.inc + +# We don't want to keep OABI compat +ARM_KEEP_OABI = "0" + +#Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable +PREFERRED_PROVIDER_qemu-native = "qemu-native" +ENABLE_BINARY_LOCALE_GENERATION ?= "1" + +# We only want to build UTF8 locales +LOCALE_UTF8_ONLY = "1" + +#qemu doesn't like armv6/eabi/vfp +ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0" + +#qemu has taken a dislike to armeb as well +ENABLE_BINARY_LOCALE_GENERATION_armeb = "0" + +#ARM EABI is softfloat by default, but let's make sure :) +#make it overridable for platforms with FPU, like ep93xx or i.mx31 +TARGET_FPU_arm ?= "soft" +TARGET_FPU_armeb ?= "soft" +TARGET_FPU_ixp4xx ?= "soft" +TARGET_FPU_ppc405 ?= "soft" + +TARGET_FPU_armv6 ?= "hard" +TARGET_FPU_armv6-novfp ?= "soft" +TARGET_FPU_armv7a ?= "hard" +TARGET_FPU_ppc603e ?= "hard" + +# webkit-gtk and cairo have alignment issues with double instructions on armv5 so +# disable them here +TARGET_CC_ARCH_pn-webkit-gtk_armv5te = "-march=armv4t" +TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t" + +#Set the right arch for the feeds +#Alphabetically sorted + +FEED_ARCH ?= "${TARGET_ARCH}" + +#blackfin machines +FEED_ARCH_bfin = "blackfin" + +#armv4t machines + +FEED_ARCH_acern30 = "armv4t" +FEED_ARCH_amsdelta = "armv4t" +FEED_ARCH_ep93xx = "armv4t" +FEED_ARCH_eteng500 = "armv4t" +FEED_ARCH_om-gta01 = "armv4t" +FEED_ARCH_om-gta02 = "armv4t" +FEED_ARCH_h1940 = "armv4t" +FEED_ARCH_h6300 = "armv4t" +FEED_ARCH_kb9202 = "armv4t" +FEED_ARCH_ks8695 = "armv4t" +FEED_ARCH_rx1950 = "armv4t" +FEED_ARCH_rx3000 = "armv4t" +FEED_ARCH_sarge-at91 = "armv4t" +FEED_ARCH_smdk2440 = "armv4t" +FEED_ARCH_smdk2443 = "armv4t" + +#armv5t machines + +FEED_ARCH_a1200 = "armv5te" +FEED_ARCH_a780 = "armv5te" +FEED_ARCH_akita = "armv5te" +FEED_ARCH_asus620 = "armv5te" +FEED_ARCH_asus730 = "armv5te" +FEED_ARCH_at91sam9263ek = "armv5te" +FEED_ARCH_aximx50 = "armv5te" +FEED_ARCH_aximx50v = "armv5te" +FEED_ARCH_c7x0 = "armv5te" +FEED_ARCH_compulab-pxa270 = "armv5te" +FEED_ARCH_davinci-dvevm = "armv5te" +FEED_ARCH_devkitidp-pxa255 = "armv5te" +FEED_ARCH_e680 = "armv5te" +FEED_ARCH_er0100 = "armv5te" +FEED_ARCH_gumstix = "armv5te" +FEED_ARCH_gumstix-verdex = "armv5te" +FEED_ARCH_gumstix-connex = "armv5te" +FEED_ARCH_h1910 = "armv5te" +FEED_ARCH_h2200 = "armv5te" +FEED_ARCH_h3900 = "armv5te" +FEED_ARCH_h4000 = "armv5te" +FEED_ARCH_h5000 = "armv5te" +FEED_ARCH_htcalpine = "armv5te" +FEED_ARCH_htcapache = "armv5te" +FEED_ARCH_htcblueangel = "armv5te" +FEED_ARCH_htchimalaya = "armv5te" +FEED_ARCH_htcsable = "armv5te" +FEED_ARCH_htctornado = "armv5te" +FEED_ARCH_htcuniversal = "armv5te" +FEED_ARCH_hx2000 = "armv5te" +FEED_ARCH_hx4700 = "armv5te" +FEED_ARCH_ixp4xxle = "armv5te" +FEED_ARCH_logicpd-pxa270 = "armv5te" +FEED_ARCH_looxc550 = "armv5te" +FEED_ARCH_lsarm = "armv5te" +FEED_ARCH_magician = "armv5te" +FEED_ARCH_mainstone = "armv5te" +FEED_ARCH_mnci = "armv5te" +FEED_ARCH_mtx-3 = "armv5te" +FEED_ARCH_mx21ads = "armv5te" +FEED_ARCH_n2100 = "armv5te" +FEED_ARCH_navman-icn330 = "armv5te" +FEED_ARCH_netbook-pro = "armv5te" +FEED_ARCH_nokia770 = "armv5te" +FEED_ARCH_rokre2 = "armv5te" +FEED_ARCH_nslu2le = "armv5te" +FEED_ARCH_omap1510inn = "armv5te" +FEED_ARCH_omap1610h2 = "armv5te" +FEED_ARCH_omap1710h3 = "armv5te" +FEED_ARCH_omap5912osk = "armv5te" +FEED_ARCH_palmld = "armv5te" +FEED_ARCH_palmt650 = "armv5te" +FEED_ARCH_palmt680 = "armv5te" +FEED_ARCH_palmtc = "armv5te" +FEED_ARCH_palmtt = "armv5te" +FEED_ARCH_palmtt3 = "armv5te" +FEED_ARCH_palmtt5 = "armv5te" +FEED_ARCH_palmtx = "armv5te" +FEED_ARCH_palmz31 = "armv5te" +FEED_ARCH_palmz71 = "armv5te" +FEED_ARCH_palmz72 = "armv5te" +FEED_ARCH_poodle = "armv5te" +FEED_ARCH_qemuarm = "armv5te" +FEED_ARCH_spitz = "armv5te" +FEED_ARCH_tosa = "armv5te" +FEED_ARCH_triton = "armv5te" + +FEED_ARCH_ixp4xxbe = "armv5teb" +FEED_ARCH_nslu2be = "armv5teb" + +# armv6 + +FEED_ARCH_mx31ads = "armv6" +FEED_ARCH_mx31moboard = "armv6" +FEED_ARCH_nokia800 = "armv6" +FEED_ARCH_omap2420h4 = "armv6" +FEED_ARCH_omap2430sdp = "armv6" + +#i486 machines +FEED_ARCH_geodegx = "i486" +FEED_ARCH_geodelx = "i486" +FEED_ARCH_netvista = "i486" +FEED_ARCH_wrap = "i486" +FEED_ARCH_x86 = "i486" + +#i586 machines +FEED_ARCH_epia = "i586" +FEED_ARCH_i586-generic = "i586" +FEED_ARCH_qemux86 = "i586" + +#i686 machines + +FEED_ARCH_alix = "i686" +FEED_ARCH_colinux = "i686" +FEED_ARCH_guinness = "i686" +FEED_ARCH_i686-generic = "i686" +FEED_ARCH_progear = "i686" + +#powerpc machines + +FEED_ARCH_dht-walnut = "ppc405" +FEED_ARCH_magicbox = "ppc405" +FEED_ARCH_xilinx-ml403 = "ppc405" +FEED_ARCH_xilinx-ml410 = "ppc405" +FEED_ARCH_sequoia = "ppc440e" +FEED_ARCH_efika = "ppc603e" +FEED_ARCH_lite5200 = "ppc603e" +FEED_ARCH_lsppchd = "ppc603e" +FEED_ARCH_lsppchg = "ppc603e" +FEED_ARCH_storcenter = "ppc603e" +FEED_ARCH_turbostation = "ppc603e" +FEED_ARCH_mpc8313e-rdb = "ppce300c3" +FEED_ARCH_mpc8323e-rdb = "ppce300c2" + + +#strongarm machines, no EABI + +FEED_ARCH_collie = "arm-oabi" +FEED_ARCH_h3600 = "arm-oabi" +FEED_ARCH_h3800 = "arm-oabi" +FEED_ARCH_htcwallaby = "arm-oabi" +FEED_ARCH_jornada56x = "arm-oabi" +FEED_ARCH_jornada7xx = "arm-oabi" +FEED_ARCH_shark = "arm-oabi" +FEED_ARCH_simpad = "arm-oabi" + + +#Tweak packaging for strongarm machines since they can't use EABI + +PACKAGE_EXTRA_ARCHS_collie = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3600 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3800 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_simpad = "arm-oabi" +PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi" + + +#Name the generated images in a sane way +IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${ANGSTROMLIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}" +DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}" + +# KaeilOS *always* has some form of release config, so error out if someone thinks he knows better +DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION if you really want to build an unversioned distro')}" + +# We want images supporting the following features (for task-base) diff --git a/conf/distro/kaeilos.conf b/conf/distro/kaeilos.conf new file mode 100644 index 0000000000..4f112d7b6e --- /dev/null +++ b/conf/distro/kaeilos.conf @@ -0,0 +1,184 @@ +#@-------------------------------------------------------------------- +#@TYPE: Distribution +#@NAME: KaeilOS +#@DESCRIPTION: KaeilOS Linux Distribution for Kernel 2.6 based devices +#@MAINTAINER: Marco Cavallini <m.cavallini@koansoftware.com> +#@-------------------------------------------------------------------- + +#DISTRO_VERSION = "2008.1" +DISTRO_VERSION = "2008.1-test-${DATE}" +DISTRO_REVISION = "1" +DISTRO_PR = ".1" + +#build staging from packages +INHERIT += "packaged-staging" + +require conf/distro/include/sane-srcdates.inc +require conf/distro/include/sane-srcrevs.inc +require conf/distro/include/angstrom-2008-preferred-versions.inc +require conf/distro/include/preferred-opie-versions-1.2.4.inc + +#Images built can have to modes: +# 'debug': empty rootpassword, strace included +# 'release' no root password, no strace and gdb by default +DISTRO_TYPE ?= "debug" +#DISTRO_TYPE = "release" + +# Ship just basic locale by default. Locales are big (~1Mb uncompr.), so +# shipping some adhoc subset will be still useless and size burden for +# users of all other languages/countries. Instead, worth to make it easy +# to install additional languages: installer/wizard + metapackages which +# will RRECOMMEND as much as possible content for a given language +# (locales, UI transalations, help, etc. - useless for pros, but really +# helpful for common users). +# Also, it appears that no locales fit in 16Mb for now. "C" locale rules! +IMAGE_LINGUAS = '${@base_less_or_equal("ROOT_FLASH_SIZE", "16", "", "en-us", d)}' + + +# set feed path variables +FEED_BASEPATH = "feeds/2008/${ANGSTROM_PKG_FORMAT}/${ANGSTROMLIBC}/" + + +#The angstrom-mirrors.bbclass should have everything, but we can use this as a fallback +CVS_TARBALL_STASH ?= "\ + http://www.angstrom-distribution.org/unstable/sources/ \ + " + +PCMCIA_MANAGER = "pcmciautils" + +#This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against +PREFERRED_VERSION_linux-libc-headers = "2.6.23" + +#Prefer glibc 2.6 and uclibc 0.9.30, these have had the most testing. +PREFERRED_VERSION_glibc ?= "2.6.1" +PREFERRED_VERSION_glibc-initial ?= "2.6.1" +PREFERRED_VERSION_uclibc ?= "0.9.30" +PREFERRED_VERSION_uclibc-initial ?= "0.9.30" + +PREFERRED_PROVIDER_avahi = "avahi" + +#Small machines prefer kdrive, but we might ship full Xorg in other images +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" +PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" + +#powerpc needs additional patches to gcc +ANGSTROM_GCC_VERSION_ppc405 ?= "4.1.1" +ANGSTROM_GCC_VERSION_xilinx-ml403 ?= "4.1.1" +ANGSTROM_GCC_VERSION_xilinx-ml403 ?= "4.1.1" + +# Blackfin has its own gcc +ANGSTROM_GCC_VERSION_bfin = "4.1.2" + +#for proper NEON support we need a CSL toolchain +#ANGSTROM_GCC_VERSION_armv7a = "4.2.1+csl-arm-2007q3-53" +ANGSTROM_GCC_VERSION_armv7a = "4.3.1" + +#Horrible workaround for armv7a follows: +# gcc 4.3.1 builds a kernel that oopses with a null-pointer in the rcu-update function +# gcc 4.2.1 (the one from *gasp* csl) builds a working kernel, but non-working userspace + +KERNEL_CCSUFFIX_armv7a= "-4.2.1+csl-arm-2007q3-53" + +#avr32 only has support for gcc 4.2.2 +ANGSTROM_GCC_VERSION_avr32 ?= "4.2.2" + +#Everybody else can just use this: +ANGSTROM_GCC_VERSION ?= "4.2.4" +PREFERRED_VERSION_binutils ?= "2.18.50.0.7" +PREFERRED_VERSION_binutils-cross ?= "2.18.50.0.7" +PREFERRED_VERSION_binutils-cross-sdk ?= "2.18.50.0.7" + +PREFERRED_VERSION_gcc ?= "${ANGSTROM_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross ?= "${ANGSTROM_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-sdk ?= "${ANGSTROM_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-initial ?= "${ANGSTROM_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-intermediate ?= "${ANGSTROM_GCC_VERSION}" + +#Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom +require conf/distro/include/preferred-e-versions.inc +require conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc +require conf/distro/include/preferred-xorg-versions-X11R7.4.inc + +#avr32 only has patches for binutils 2.17 in OE +PREFERRED_VERSION_binutils_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17" + +# Virtuals: +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" + +# hostap stuff, we prefer the in-kernel modules, but those don't work for all machines +PREFERRED_PROVIDER_hostap-conf ?= "hostap-conf" + +PREFERRED_PROVIDER_virtual/db ?= "db" +PREFERRED_PROVIDER_virtual/db-native ?= "db-native" +PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11" +PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" +PREFERRED_PROVIDER_virtual/libxine ?= "libxine-x11" +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" + +# Others: +PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" +PREFERRED_PROVIDER_dbus-glib = "dbus-glib" +PREFERRED_PROVIDER_esound ?= "pulseaudio" +PREFERRED_PROVIDER_gconf ?= "gconf-dbus" +PREFERRED_PROVIDER_gnome-vfs ?= "gnome-vfs" +PREFERRED_PROVIDER_gnome-vfs-plugin-file ?= "gnome-vfs" +PREFERRED_PROVIDER_tslib ?= "tslib" +PREFERRED_PROVIDER_tslib-conf ?= "tslib" +PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget" +PREFERRED_PROVIDER_ntp ?= "ntp" +PREFERRED_PROVIDER_hotplug = "udev" +PREFERRED_PROVIDER_libxss = "libxss" +PREFERRED_PROVIDER_bluez-utils-dbus = "bluez-utils" + +# we don't ship gtk-directfb by default +PREFERRED_PROVIDER_gtk+ ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-ani ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-bmpg ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-gif ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-ico ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-jpeg ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-pcx ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-png ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-pnm ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-ras ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-tga ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-wbmp ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-xbm ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-xpm ?= "gtk+" + +#Silence a warning during parsing +PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap" + +require conf/distro/include/kaeilos.inc + +# do some task-base stuff here + +# We want to ship extra debug utils in the rootfs when doing a debug build +DEBUG_APPS ?= "" +DEBUG_APPS += '${@base_conditional("DISTRO_TYPE", "release", "", "strace procps",d)}' + +# KaeilOS want to ship some extra stuff. This should be moved into task-base eventually +# contains ipkg specific stuff as well :( +DISTRO_EXTRA_RDEPENDS += "\ + update-modules \ + ${@base_contains("MACHINE_FEATURES", "screen", "psplash", "",d)} \ + kaeilos-version \ + opkg-nogpg opkg-collateral ${ANGSTROM_FEED_CONFIGS} \ + util-linux-ng-mount util-linux-ng-umount \ + ${DEBUG_APPS} angstrom-libc-fixup-hack \ + " + +DISTRO_EXTRA_RRECOMMENDS += " \ + kernel-module-vfat \ + kernel-module-ext2 \ + kernel-module-af-packet \ + avahi-daemon \ + avahi-autoipd \ + openssh-sftp-server \ + " |