From 899a2f3c8257f46a1f6255eb012efb37fce85321 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 17 Feb 2007 14:16:57 +0000 Subject: cups: fix packaging --- packages/cups/cups_1.2.7.bb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/cups/cups_1.2.7.bb b/packages/cups/cups_1.2.7.bb index acd735705c..22034f9a23 100644 --- a/packages/cups/cups_1.2.7.bb +++ b/packages/cups/cups_1.2.7.bb @@ -52,7 +52,15 @@ do_stage () { oe_libinstall -C filter -so libcupsimage ${STAGING_LIBDIR} } +FILES_${PN}-dbg += "${libdir}/cups/backend/.debug \ + ${libdir}/cups/cgi-bin/.debug \ + ${libdir}/cups/filter/.debug \ + ${libdir}/cups/monitor/.debug \ + ${libdir}/cups/notifier/.debug \ + ${libdir}/cups/daemon/.debug \ + " #package the html for the webgui inside the main packages (~1MB uncompressed) + FILES_${PN} += "${datadir}/doc/cups/images \ ${datadir}/doc/cups/*html \ ${datadir}/doc/cups/*.css \ -- cgit v1.2.3 From 2c80a367b73f10d9acb7f152f4f2bfb9d8a00678 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 17 Feb 2007 14:20:27 +0000 Subject: insane.bbclass: don't do bb.fatal is a .so is present in ${PN}, lots of application ship plugins with that extension (e.g. perl) --- classes/insane.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 2599348351..b091742ad0 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -52,7 +52,7 @@ def package_qa_check_devdbg(path, name,d): import bb if not "-dev" in name: if path[-3:] == ".so": - bb.fatal("QA Issue: non dev package contains .so: %s" % name) + bb.error("QA Issue: non dev package contains .so: %s" % name) if not "-dbg" in name: if '.debug' in path: -- cgit v1.2.3 From 551f41b3ea8bed3d1c1b2c7dc31a846b32ef36cc Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 17 Feb 2007 14:39:59 +0000 Subject: libgsmd: fix packaging --- packages/gsm/libgsmd_svn.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb index e43c19fc73..860adf3b0a 100644 --- a/packages/gsm/libgsmd_svn.bb +++ b/packages/gsm/libgsmd_svn.bb @@ -4,7 +4,7 @@ LICENSE = "GPL" SECTION = "libs/gsm" PROVIDES += "gsmd" PV = "0.0+svn${SRCDATE}" -PR = "r1" +PR = "r2" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http" S = "${WORKDIR}/gsm" @@ -17,7 +17,7 @@ do_stage() { PACKAGES =+ "${PN}-tools gsmd" RDEPENDS_${PN} = "gsmd" -FILES_${PN}-tools = "${bindir}" +FILES_${PN}-tools = "${bindir}/*" FILES_gsmd = "${sbindir}/gsmd" PACKAGES_DYNAMIC = "libgsmd* gsmd" -- cgit v1.2.3 From 6823aff57cf814dd8d30fbfac98332086ee6cc16 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 17 Feb 2007 15:05:08 +0000 Subject: gnome-vfs: fix #1881 --- packages/gnome/gnome-vfs_2.16.3.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/gnome/gnome-vfs_2.16.3.bb b/packages/gnome/gnome-vfs_2.16.3.bb index 0c6176428e..b1f634c0e9 100644 --- a/packages/gnome/gnome-vfs_2.16.3.bb +++ b/packages/gnome/gnome-vfs_2.16.3.bb @@ -17,7 +17,8 @@ EXTRA_OECONF = " \ --disable-openssl \ --enable-gnutls \ --enable-avahi \ - " + --with-samba-includes=${STAGING_INCDIR} \ + " FILES_${PN} += " ${libdir}/vfs" FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include" -- cgit v1.2.3 From 544e881e1fb5ae8f9a65effa4645d12ca1285a43 Mon Sep 17 00:00:00 2001 From: Matthias Hentges Date: Sat, 17 Feb 2007 16:27:47 +0000 Subject: altboot_wip.bb: Test commit --- packages/altboot/altboot_wip.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/altboot/altboot_wip.bb b/packages/altboot/altboot_wip.bb index 714a3d1d2b..2de4c812b9 100644 --- a/packages/altboot/altboot_wip.bb +++ b/packages/altboot/altboot_wip.bb @@ -9,7 +9,7 @@ DESCRIPTION = "The altboot bootmanager" MAINTAINER = "Matthias 'CoreDump' Hentges " HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" +LICENSE = "GPL" ###################################################################################### -- cgit v1.2.3 From 9c958b6657c39b3fd27c8869d1426aef94561837 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 17 Feb 2007 18:10:10 +0000 Subject: openmoko: add messages application --- packages/openmoko-apps/openmoko-messages_svn.bb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/openmoko-apps/openmoko-messages_svn.bb diff --git a/packages/openmoko-apps/openmoko-messages_svn.bb b/packages/openmoko-apps/openmoko-messages_svn.bb new file mode 100644 index 0000000000..d7a708b85c --- /dev/null +++ b/packages/openmoko-apps/openmoko-messages_svn.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "The OpenMoko Application Manager" +SECTION = "openmoko/applications" +DEPENDS += "ipkg" +PV = "0.0.1+svn${SRCDATE}" + +inherit openmoko + -- cgit v1.2.3 From 6ce2ec83390f0a1384c63254b31975ddcd8269f8 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 17 Feb 2007 19:28:57 +0000 Subject: gpe-session-scripts: clean up dependencies --- packages/gpe-session-scripts/gpe-session-scripts_0.67.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb b/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb index 85c6a2575a..583fe2f7e3 100644 --- a/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb +++ b/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb @@ -4,14 +4,14 @@ DESCRIPTION = "GPE session startup scripts" LICENSE = "GPL" SECTION = "gpe" PRIORITY = "optional" -RDEPENDS_${PN} = "matchbox-panel (>= 0.9.2-r12) matchbox-desktop (>= 0.9.1-r1) matchbox-common (>= 0.9.1-r2) gpe-session-starter gpe-bluetooth xstroke xtscal gpe-question gpe-clock matchbox-applet-inputmanager xrandr xmodmap xdpyinfo xserver-common" +RDEPENDS_${PN} = "matchbox-panel (>= 0.9.2-r12) matchbox-desktop (>= 0.9.1-r1) matchbox-common (>= 0.9.1-r2) gpe-session-starter xtscal gpe-question matchbox-applet-inputmanager xmodmap xdpyinfo xserver-common" # more rdepends: keylaunch ipaq-sleep apmd blueprobe -DEPENDS = "matchbox-wm matchbox-panel gpe-bluetooth xstroke xtscal gpe-question matchbox-applet-inputmanager gpe-clock xrandr xmodmap xdpyinfo xserver-common" +DEPENDS = "matchbox-wm matchbox-panel xtscal gpe-question matchbox-applet-inputmanager xmodmap xdpyinfo xserver-common" SRC_URI += "file://matchbox-session \ file://disable-composite.xsettings" -PR = "r5" +PR = "r6" #apply a patch to set the fontsize for bigdpi (200+) devices to 5 SRC_URI_append_hx4700 = " file://highdpifontfix.patch;patch=1" -- cgit v1.2.3 From 0d5be7e1dcb4b4222873ee5b5b25768efc6c2b0a Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sun, 18 Feb 2007 08:42:25 +0000 Subject: openmoko-panel-plugins: add gsm and mainmenu --- packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb | 7 +++++++ packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb | 5 +++++ 2 files changed, 12 insertions(+) create mode 100644 packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb create mode 100644 packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb diff --git a/packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb b/packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb new file mode 100644 index 0000000000..798e94e0c4 --- /dev/null +++ b/packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "Shows the current time in the OpenMoko panel" +PV = "0.0.1+svn${SRCDATE}" + +inherit openmoko-panel-plugin + +FILES_${PN} += "${bindir}/${PN}" + diff --git a/packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb b/packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb new file mode 100644 index 0000000000..389a6f2691 --- /dev/null +++ b/packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb @@ -0,0 +1,5 @@ +DESCRIPTION = "Shows the current time in the OpenMoko panel" +PV = "0.0.1+svn${SRCDATE}" + +inherit openmoko-panel-plugin + -- cgit v1.2.3 From 9c9415a87de6a1cf058b99d304b31c78e4f31438 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sun, 18 Feb 2007 08:49:29 +0000 Subject: task-openmoko: convert to matchbox-panel-2 and clean up a bit --- packages/tasks/task-openmoko.bb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/tasks/task-openmoko.bb b/packages/tasks/task-openmoko.bb index 08b3c80d07..7400fc679e 100644 --- a/packages/tasks/task-openmoko.bb +++ b/packages/tasks/task-openmoko.bb @@ -5,7 +5,7 @@ PACKAGE_ARCH = "all" LICENSE = "MIT" PROVIDES = "task-openmoko-everything" -PR = "r25" +PR = "r26" PACKAGES = "\ task-openmoko-linux \ @@ -80,7 +80,7 @@ RDEPENDS_task-openmoko-ui = "\ gtk+ \ matchbox-common \ matchbox-wm \ - matchbox-panel \ + matchbox-panel-2 \ xserver-kdrive-fbdev \ xserver-kdrive-common \ xserver-nodm-init \ @@ -101,9 +101,10 @@ RDEPENDS_task-openmoko-ui = "\ DESCRIPTION_task-openmoko-base = "OpenMoko: Main-Menu Launcher, Top Panel, and Footer" RDEPENDS_task-openmoko-base = "\ openmoko-mainmenu \ -# matchbox-panel-2 \ + matchbox-panel-2 \ openmoko-footer \ openmoko-taskmanager \ + openmoko-panel-mainmenu \ " # @@ -114,6 +115,7 @@ RDEPENDS_task-openmoko-phone = "\ gsmd \ libgsmd-tools \ openmoko-dialer \ + openmoko-panel-gsm \ # ppp \ " -- cgit v1.2.3 From 17b59827785d3f488a9b72d9c9a6d51ba5c933c4 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 09:09:12 +0000 Subject: linux-handhelds-2.6 2.6.19-hh11: Add new release. * Changes since -hh10 include: 1. aximx5 port revived - boots with LCD working. UDC known not to work. 2. aximx50 buttons driver. 3. Macine-independ touchscreen driver for ADS7846/TSC2046, first version so far, used for h4000 and works for hx4700 too. Still needs tweaking to support other devices well. 4. h4000: h4300_kbd driver revamped. 5. h5400: revamping started, OHCI support fixed. 6. htcalpine phone and soc drivers. 7. rx3000: Port clean up, drivers split to separate modules. Serial port driver added. 8. drivers/serial/pxa.c: Dynamic serial hook ports are supported (hooks can be installed/removed after serial driver is loaded). --- packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb diff --git a/packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb b/packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb new file mode 100644 index 0000000000..ec5844bfb5 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb @@ -0,0 +1,11 @@ +SECTION = "kernel" +DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices." +LICENSE = "GPL" +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \ + file://defconfig" + +require linux-handhelds-2.6.inc -- cgit v1.2.3 From 56cf5d44c949b7096bf8376787879f0705b7a052 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 09:31:07 +0000 Subject: linux-handhelds-2.6 2.6.19-hh12: Add new release. * Changes since -hh11 include: 1. rx1950 port added. 2. cpugreq fixes to support PCMCIA working over freq changes. 3. cpufreq support for htcmagician. 4. ads7846_adc_ssp fixes. 5. acx driver ESSID handling off-by-one fix. 6. ASoC upgraded to 0.13.4. --- packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb diff --git a/packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb b/packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb new file mode 100644 index 0000000000..ec5844bfb5 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb @@ -0,0 +1,11 @@ +SECTION = "kernel" +DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices." +LICENSE = "GPL" +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \ + file://defconfig" + +require linux-handhelds-2.6.inc -- cgit v1.2.3 From 8c7cf3fc473b8c65bc972028ae4ce581b7b4bce8 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sun, 18 Feb 2007 11:35:25 +0000 Subject: openmoko distro: add openmoko distro, slightly modified from openmoko svn --- conf/distro/include/openmoko.inc | 127 +++++++++++++++++++++ .../distro/include/preferred-openmoko-versions.inc | 60 ++++++++++ conf/distro/openmoko.conf | 28 +++++ 3 files changed, 215 insertions(+) create mode 100644 conf/distro/include/openmoko.inc create mode 100644 conf/distro/include/preferred-openmoko-versions.inc create mode 100644 conf/distro/openmoko.conf diff --git a/conf/distro/include/openmoko.inc b/conf/distro/include/openmoko.inc new file mode 100644 index 0000000000..0a86870b2c --- /dev/null +++ b/conf/distro/include/openmoko.inc @@ -0,0 +1,127 @@ +# +# Header +# +DISTRO_NAME = "OpenMoKo" + +# +# Naming schemes +# +PARALLEL_INSTALL_MODULES = "1" +INHERIT += "debian multimachine" + +# +# Packaging and output format +# +INHERIT += "package_ipk" +IMAGE_FSTYPES = "tar.gz ext2.gz jffs2" +IMAGE_FSTYPES_x86 = "tar.gz" +IMAGE_ROOTFS_SIZE_ext2 = "131072" + +# +# Binutils & Compiler +# +PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" +PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross" +PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross" + +# EABI stuff +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate" + +# +# Target OS & FPU system +# +TARGET_OS = "linux" +TARGET_FPU_arm = "soft" +TARGET_FPU_armeb = "soft" +PREFERRED_PROVIDER_virtual/libiconv = "glibc" +PREFERRED_PROVIDER_virtual/libintl = "glibc" +PREFERRED_VERSION_linux-libc-headers_x86 = "2.6.15.99" +PREFERRED_VERSION_linux-libc_headers = "2.6.18" +# +# Features +# +DISTRO_FEATURES = "alsa bluetooth ext2 ipsec nfs ppp smbfs usbgadget usbhost" + +# +# Bootstrap & Init +# +MACHINE_TASK_PROVIDER = "task-base" +require conf/distro/include/sane-srcdates.inc + +# +# Framebuffer & X +# +PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" +PREFERRED_PROVIDER_virtual/ecore ?= "ecore-x11" +PREFERRED_PROVIDER_virtual/evas ?= "evas-x11" +PREFERRED_PROVIDER_virtual/esmart ?= "esmart-x11" +PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11" +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" +PREFERRED_PROVIDER_tslib ?= "tslib" +PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" +require conf/distro/include/preferred-xorg-versions-X11R7.1.inc + +# +# Gnome +# +PREFERRED_PROVIDER_dbus-glib = "dbus-glib" +PREFERRED_PROVIDER_gconf = "gconf-dbus" +#new +#PREFERRED_PROVIDER_gnome-vfs = "gnome-vfs" +#old +PREFERRED_PROVIDER_gnome-vfs = "gnome-vfs-dbus" +PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive" +PREFERRED_PROVIDER_bluez-utils = "bluez-utils-dbus" + +PREFERRED_VERSION_dbus-native = "1.0.2" +PREFERRED_VERSION_dbus = "1.0.2" +PREFERRED_VERSION_dbus-glib-native = "0.71" +PREFERRED_VERSION_dbus-glib = "0.71" +PREFERRED_VERSION_atk = "1.9.0" +PREFERRED_VERSION_pango = "1.8.2" +PREFERRED_VERSION_glib-2.0 = "2.12.3" +PREFERRED_VERSION_gtk+ = "2.6.10" +PREFERRED_VERSION_gtk-engines = "2.6.5" +#PREFERRED_VERSION_gnome-vfs = "2.16.3" + +PREFERRED_VERSION_fontconfig = "2.4.1" + +# +# GPE +# +PREFERRED_PROVIDER_libgpewidget = "libgpewidget" + +# +# O-Hand +# +PREFERRED_VERSION_contacts = "0.1" +PREFERRED_VERSION_dates = "0.1" +# PREFERRED_VERSION_web = "???" + +# +# Development +# +PREFERRED_PROVIDER_qemu-native = "qemu-native" +PREFERRED_VERSION_qemu-native = "0.8.2+cvs${SRCDATE}" + +# +# Opie +# +QTE_VERSION = "2.3.10" +PALMTOP_USE_MULTITHREADED_QTE = "yes" +require conf/distro/include/preferred-opie-versions.inc + +# +# Enlightenment +# +require conf/distro/include/preferred-e-versions.inc + +# +# OpenMoko +# + +#We comment this out since external developers don't needs to use SRCDATE="now" as that generated unneed traffic +#require conf/distro/include/preferred-openmoko-versions.inc + diff --git a/conf/distro/include/preferred-openmoko-versions.inc b/conf/distro/include/preferred-openmoko-versions.inc new file mode 100644 index 0000000000..263406c90b --- /dev/null +++ b/conf/distro/include/preferred-openmoko-versions.inc @@ -0,0 +1,60 @@ +# +# Specify which versions of OpenMoko packages to build +# + +# +# Base +# + +SRCDATE_uboot = "now" +SRCDATE_uboot-gta01 = "now" +SRCDATE_kernel = "now" +SRCDATE_linux-gta01 = "now" +SRCDATE_linux-gta01-nobbt = "now" +SRCDATE_libgsmd = "now" +SRCDATE_openmoko-session = "now" +SRCDATE_openmoko-common = "now" +SRCDATE_openmoko-theme-standard = "now" +SRCDATE_openmoko-libs = "now" + +# +# Examples +# +SRCDATE_openmoko-stylus-demo = "now" +SRCDATE_openmoko-stylus-demo-simple = "now" +SRCDATE_openmoko-finger-demo = "now" +SRCDATE_openmoko-panel-demo = "now" +SRCDATE_openmoko-panel-demo-simple = "now" + +# +# PIM +# +SRCDATE_openmoko-contacts = "now" +SRCDATE_openmoko-dates = "now" + +# +# Applications +# +SRCDATE_openmoko-appmanager = "now" +SRCDATE_openmoko-chordmaster = "now" +SRCDATE_openmoko-dialer = "now" +SRCDATE_openmoko-footer = "now" +SRCDATE_openmoko-phone = "now" +SRCDATE_openmoko-mainmenu = "now" +SRCDATE_openmoko-taskmanager = "now" + +# +# Multimedia +# +SRCDATE_openmoko-simplemediaplayer = "now" + +# +# Panel Plugins +# +SRCDATE_openmoko-panel-clock = "now" +SRCDATE_openmoko-panel-battery = "now" +SRCDATE_openmoko-panel-mainmenu = "now" +SRCDATE_openmoko-panel-gsm = "now" +SRCDATE_openmoko-panel-gps = "now" +SRCDATE_openmoko-panel-bt = "now" +SRCDATE_openmoko-panel-usb = "now" diff --git a/conf/distro/openmoko.conf b/conf/distro/openmoko.conf new file mode 100644 index 0000000000..6e33867aa9 --- /dev/null +++ b/conf/distro/openmoko.conf @@ -0,0 +1,28 @@ +#----------------------------------------------------------------------------- +#@TYPE: Distribution +#@NAME: OpenMoKo +#@DESCRIPTION: Linux Distribution Configuration for the FIC GTA01 Project +#----------------------------------------------------------------------------- + +# +# Header +# +DISTRO_NAME = "OpenMoKo" +DISTRO_VERSION = ".dev-snapshot-${DATE}" +#DISTRO_TYPE = "release" +DISTRO_TYPE = "debug" + +require conf/distro/include/openmoko.inc + +# Toolchain +PREFERRED_VERSION_gcc ?= "4.1.1" +PREFERRED_VERSION_gcc-cross ?= "4.1.1" +PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1" +PREFERRED_VERSION_binutils ?= "2.17.50.0.5" +PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5" +PREFERRED_VERSION_linux-libc-headers ?= "2.6.18" +# 2.5 has less bugs, but crashes dropbear :/ +PREFERRED_VERSION_glibc ?= "2.4" +PREFERRED_VERSION_glibc-intermediate ?= "2.4" + +PREFERRED_VERSION_lmsensors-apps ?= "2.10.1" -- cgit v1.2.3 From ebdcad30d1ca7dedf4f9643ff233480ec82d437e Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sun, 18 Feb 2007 11:46:19 +0000 Subject: tslib: merge patch from openmoko: This patch adds support for "EVIOCGRAB" on the input device, which tells the kernel _not_ to deliver events of the touchscreen to /dev/input/mice. This is probably what most people want, since unprocessed raw touchscreen events should not be converted to emulated PS/2 mouse movements. Signed-off-by: Harald Welte --- packages/tslib/tslib-1.0/.mtn2git_empty | 0 packages/tslib/tslib-1.0/ts.conf | 25 +++++ .../tslib-1.0/tslib-input_raw-grab_events.patch | 120 +++++++++++++++++++++ packages/tslib/tslib_1.0.bb | 3 +- 4 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 packages/tslib/tslib-1.0/.mtn2git_empty create mode 100644 packages/tslib/tslib-1.0/ts.conf create mode 100644 packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch diff --git a/packages/tslib/tslib-1.0/.mtn2git_empty b/packages/tslib/tslib-1.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/tslib/tslib-1.0/ts.conf b/packages/tslib/tslib-1.0/ts.conf new file mode 100644 index 0000000000..82f712ef41 --- /dev/null +++ b/packages/tslib/tslib-1.0/ts.conf @@ -0,0 +1,25 @@ +# Uncomment if you wish to use the linux input layer event interface +module_raw input grab_events=1 + +# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d +# module_raw collie + +# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860 +# module_raw corgi + +# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface +# module_raw ucb1x00 + +# Uncomment if you're using an HP iPaq h3600 or similar +# module_raw h3600 + +# Uncomment if you're using a Hitachi Webpad +# module_raw mk712 + +# Uncomment if you're using an IBM Arctic II +# module_raw arctic2 + +module pthres pmin=1 +module variance delta=30 +module dejitter delta=100 +module linear diff --git a/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch b/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch new file mode 100644 index 0000000000..4bd0a05531 --- /dev/null +++ b/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch @@ -0,0 +1,120 @@ +This patch adds support for "EVIOCGRAB" on the input device, which +tells the kernel _not_ to deliver events of the touchscreen to +/dev/input/mice. + +This is probably what most people want, since unprocessed raw touchscreen +events should not be converted to emulated PS/2 mouse movements. + +Signed-off-by: Harald Welte + +Index: a/plugins/input-raw.c +=================================================================== +--- a/plugins/input-raw.c (revision 49) ++++ b/plugins/input-raw.c (working copy) +@@ -18,6 +18,7 @@ + + #include + #include ++#include + + #include + #ifdef HAVE_UNISTD_H +@@ -33,6 +34,9 @@ + + #include "tslib-private.h" + ++#define GRAB_EVENTS_WANTED 1 ++#define GRAB_EVENTS_ACTIVE 2 ++ + struct tslib_input { + struct tslib_module_info module; + +@@ -42,6 +46,7 @@ + + int sane_fd; + int using_syn; ++ int grab_events; + }; + + static int check_fd(struct tslib_input *i) +@@ -64,6 +69,14 @@ + + if (bit & (1 << EV_SYN)) + i->using_syn = 1; ++ ++ if (i->grab_events == GRAB_EVENTS_WANTED) { ++ if (ioctl(ts->fd, EVIOCGRAB, (void *)1)) { ++ fprintf(stderr, "Unable to grab selected input device\n"); ++ return -1; ++ } ++ i->grab_events = GRAB_EVENTS_ACTIVE; ++ } + + return 0; + } +@@ -222,6 +235,15 @@ + + static int ts_input_fini(struct tslib_module_info *inf) + { ++ struct tslib_input *i = (struct tslib_input *)inf; ++ struct tsdev *ts = inf->dev; ++ ++ if (i->grab_events == GRAB_EVENTS_ACTIVE) { ++ if (ioctl(ts->fd, EVIOCGRAB, (void *)0)) { ++ fprintf(stderr, "Unable to un-grab selected input device\n"); ++ } ++ } ++ + free(inf); + return 0; + } +@@ -231,6 +253,36 @@ + .fini = ts_input_fini, + }; + ++static int parse_raw_grab(struct tslib_module_info *inf, char *str, void *data) ++{ ++ struct tslib_input *i = (struct tslib_input *)inf; ++ unsigned long v; ++ int err = errno; ++ ++ v = strtoul(str, NULL, 0); ++ ++ if (v == ULONG_MAX && errno == ERANGE) ++ return -1; ++ ++ errno = err; ++ switch ((int)data) { ++ case 1: ++ if (v) ++ i->grab_events = GRAB_EVENTS_WANTED; ++ break; ++ default: ++ return -1; ++ } ++ return 0; ++} ++ ++static const struct tslib_vars raw_vars[] = ++{ ++ { "grab_events", (void *)1, parse_raw_grab }, ++}; ++ ++#define NR_VARS (sizeof(raw_vars) / sizeof(raw_vars[0])) ++ + TSAPI struct tslib_module_info *mod_init(struct tsdev *dev, const char *params) + { + struct tslib_input *i; +@@ -245,5 +297,12 @@ + i->current_p = 0; + i->sane_fd = 0; + i->using_syn = 0; ++ i->grab_events = 0; ++ ++ if (tslib_parse_vars(&i->module, raw_vars, NR_VARS, params)) { ++ free(i); ++ return NULL; ++ } ++ + return &(i->module); + } diff --git a/packages/tslib/tslib_1.0.bb b/packages/tslib/tslib_1.0.bb index 0ece5b0331..4ba53f0631 100644 --- a/packages/tslib/tslib_1.0.bb +++ b/packages/tslib/tslib_1.0.bb @@ -4,9 +4,10 @@ AUTHOR = "Russell King w/ plugins by Chris Larson et. al." SECTION = "base" LICENSE = "LGPL" -PR = "r7" +PR = "r8" SRC_URI = "http://download.berlios.de/tslib/tslib-1.0.tar.bz2 \ + file://tslib-input_raw-grab_events.patch;patch=1 \ file://ts.conf \ file://ts.conf-simpad-2.4 \ file://ts.conf-collie-2.4 \ -- cgit v1.2.3 From 986c1887923b2c61a0056ef82ce3d46399f8dfc4 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Sun, 18 Feb 2007 15:54:12 +0000 Subject: classes/insane.bbclass: Print the actual error, write a log file -Print all errors of the built packages and if we have printed any errors fail -Log the errors to a log file, so we can see them afterwards -Print the path (- the TMPDIR) of the package in question --- classes/insane.bbclass | 90 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 72 insertions(+), 18 deletions(-) diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 2599348351..bf75496cd0 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -24,6 +24,28 @@ inherit package PACKAGE_DEPENDS += "pax-utils-native" PACKAGEFUNCS += " do_package_qa " +def package_qa_clean_path(path,d): + import bb + return path.replace(bb.data.getVar('TMPDIR',d,True),"") + +def package_qa_write_error(error_class, name, path, d): + import bb, os + if not bb.data.getVar('QA_LOG', d): + return + + ERROR_NAMES =[ + "dev/dbg contains .so", + "package contains RPATH", + "package depends on debug package", + ] + + + log_path = os.path.join( bb.data.getVar('T', d, True), "log.qa_package" ) + f = file( log_path, "a+") + print >> f, "%s, %s, %s" % (ERROR_NAMES[error_class], name, package_qa_clean_path(path,d)) + f.close() + + def package_qa_check_rpath(file,name,d): """ Check for dangerous RPATHs @@ -32,16 +54,18 @@ def package_qa_check_rpath(file,name,d): scanelf = os.path.join(bb.data.getVar('STAGING_BINDIR_NATIVE',d,True),'scanelf') bad_dir = bb.data.getVar('TMPDIR', d, True) + "/work" if not os.path.exists(scanelf): - bb.note("Can not check RPATH scanelf not found") + bb.fatal("Can not check RPATH scanelf not found") if not bad_dir in bb.data.getVar('WORKDIR', d, True): bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check") output = os.popen("%s -Byr %s" % (scanelf,file)) txt = output.readline().rsplit() if bad_dir in txt: - bb.fatal("QA Issue package %s contains bad RPATH %s in file %s" % (name, txt, file)) + package_qa_write_error( 1, name, file, d) + bb.error("QA Issue package %s contains bad RPATH %s in file %s" % (name, txt, file)) + return False - pass + return True def package_qa_check_devdbg(path, name,d): """ @@ -50,50 +74,69 @@ def package_qa_check_devdbg(path, name,d): """ import bb + sane = True + if not "-dev" in name: if path[-3:] == ".so": - bb.fatal("QA Issue: non dev package contains .so: %s" % name) + package_qa_write_error( 0, name, path, d ) + bb.error("QA Issue: non dev package contains .so: %s path '%s'" % (name, package_qa_clean_path(path,d))) + sane = False if not "-dbg" in name: if '.debug' in path: - bb.fatal("QA Issue: non debug package contains .debug directory: %s" % name) + package_qa_write_error( 0, name, path, d ) + bb.error("QA Issue: non debug package contains .debug directory: %s path %s" % (name, package_qa_clean_path(path,d))) + sane = False + + return sane def package_qa_check_perm(path,name,d): """ Check the permission of files """ - pass + sane = True + return sane def package_qa_check_arch(path,name,d): """ Check if archs are compatible """ - pass + sane = True + return sane def package_qa_check_pcla(path,name,d): """ - .pc and .la files should not point + .pc and .la files should not point to the WORKDIR """ + sane = True + return sane def package_qa_check_staged(path,d): """ Check staged la and pc files for sanity -e.g. installed being false """ - pass + sane = True + return sane # Walk over all files in a directory and call func def package_qa_walk(path, funcs, package,d): import os + sane = True + for root, dirs, files in os.walk(path): for file in files: path = os.path.join(root,file) for func in funcs: - func(path, package,d) + if not func(path, package,d): + sane = False + + return sane def package_qa_check_rdepends(pkg, workdir, d): - import bb + import bb + sane = True if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg: # Copied from package_ipk.bbclass # boiler plate to update the data @@ -122,7 +165,11 @@ def package_qa_check_rdepends(pkg, workdir, d): # Now do the sanity check!!! for rdepend in rdepends: if "-dbg" in rdepend: - bb.fatal("QA issue, koen give us a better msg!!!") + package_qa_write_error( 2, name, rdepend, d ) + bb.error("QA issue, koen give us a better msg!!!") + sane = False + + return sane # The PACKAGE FUNC to scan each package python do_package_qa () { @@ -134,12 +181,19 @@ python do_package_qa () { if not packages: return + walk_sane = True + rdepends_sane = True for package in packages.split(): - bb.note("Package: %s" % package) + bb.note("Checking Package: %s" % package) path = "%s/install/%s" % (workdir, package) - package_qa_walk(path, [package_qa_check_rpath, package_qa_check_devdbg, package_qa_check_perm, package_qa_check_arch], package, d) - package_qa_check_rdepends(package, workdir, d) - + if not package_qa_walk(path, [package_qa_check_rpath, package_qa_check_devdbg, package_qa_check_perm, package_qa_check_arch], package, d): + walk_sane = False + if not package_qa_check_rdepends(package, workdir, d): + rdepends_sane = False + + if not walk_sane or not rdepends_sane: + bb.fatal("QA ran found fatal errors. Please consider fixing them") + bb.note("DONE with PACKAGE QA") } @@ -156,8 +210,8 @@ addtask qa_configure after do_configure before do_compile python do_qa_configure() { bb.note("Checking sanity of the config.log file") import os - for root, dirs, files in os.walk(bb.data.getVar('S', d, True)): + for root, dirs, files in os.walk(bb.data.getVar('WORKDIR', d, True)): if "config.log" in files: if os.system("grep 'CROSS COMPILE Badness:' %s > /dev/null" % (os.path.join(root,"config.log"))) == 0: - bb.fatal("This autoconf log indicates errors, it looked at host includes") + bb.fatal("This autoconf log indicates errors, it looked at host includes. Rerun configure task after fixing this. Path was '%s'", root) } -- cgit v1.2.3 From 80ed16db761962e949ef21ec10a9bc199c56cb61 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Sun, 18 Feb 2007 17:19:11 +0000 Subject: classes/insane.bbclass: Allow errors to be ignored Add a method to implement koen's skipping of errors of type .so in non dev package. This will turn into a list of known and acked issues which we decided to ignore. I do not yet know how to maintain such a list properly though Split the .so in non-dev package and the .debug in non-dbg package into two different packages --- classes/insane.bbclass | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/classes/insane.bbclass b/classes/insane.bbclass index bf75496cd0..d11d8ddd7e 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -24,19 +24,41 @@ inherit package PACKAGE_DEPENDS += "pax-utils-native" PACKAGEFUNCS += " do_package_qa " +# +# +# Known Error classes +# 0 - non dev contains .so +# 1 - package contains a dangerous RPATH +# 2 - package depends on debug package +# 3 - non dbg contains .so +# +# + def package_qa_clean_path(path,d): import bb return path.replace(bb.data.getVar('TMPDIR',d,True),"") +def package_qa_make_fatal_error(error_class, name, path,d): + """ + decide if an error is fatal + + TODO: Load a whitelist of known errors + """ + if error_class == 0: + return False + else: + return True + def package_qa_write_error(error_class, name, path, d): import bb, os if not bb.data.getVar('QA_LOG', d): return ERROR_NAMES =[ - "dev/dbg contains .so", + "non dev contains .so", "package contains RPATH", "package depends on debug package", + "non dbg contains .debug", ] @@ -80,13 +102,15 @@ def package_qa_check_devdbg(path, name,d): if path[-3:] == ".so": package_qa_write_error( 0, name, path, d ) bb.error("QA Issue: non dev package contains .so: %s path '%s'" % (name, package_qa_clean_path(path,d))) - sane = False + if package_qa_make_fatal_error( 0, name, path, d ): + sane = False if not "-dbg" in name: if '.debug' in path: - package_qa_write_error( 0, name, path, d ) + package_qa_write_error( 3, name, path, d ) bb.error("QA Issue: non debug package contains .debug directory: %s path %s" % (name, package_qa_clean_path(path,d))) - sane = False + if package_qa_make_fatal_error( 3, name, path, d ): + sane = False return sane @@ -167,7 +191,8 @@ def package_qa_check_rdepends(pkg, workdir, d): if "-dbg" in rdepend: package_qa_write_error( 2, name, rdepend, d ) bb.error("QA issue, koen give us a better msg!!!") - sane = False + if package_qa_make_fatal_error( 2, name, rdepend, d ): + sane = False return sane -- cgit v1.2.3 From 614c4bbaf31f91751763192acf657dc03668da1e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 17:48:27 +0000 Subject: angstrom-2007.1.conf: Ship just en-gb locale by default. * 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). * Approved by Koen Kooi --- conf/distro/angstrom-2007.1.conf | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf index 0fbe7d19cc..94d4b3f954 100644 --- a/conf/distro/angstrom-2007.1.conf +++ b/conf/distro/angstrom-2007.1.conf @@ -8,7 +8,7 @@ #DISTRO_VERSION = "2007.3" DISTRO_VERSION = "test-${DATE}" -DISTRO_REVISION = "32" +DISTRO_REVISION = "33" require conf/distro/include/angstrom.inc require conf/distro/include/sane-srcdates.inc @@ -16,6 +16,15 @@ require conf/distro/include/sane-srcdates.inc 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). +IMAGE_LINGUAS = "en-gb" + #Set the right arch for the feeds #Alphabetically sorted -- cgit v1.2.3 From 071a9b8f76a5c031cdf5a0b3b11278cf8fdce1d6 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 17:49:30 +0000 Subject: angstrom-2007.1.conf: Allow to set DISTRO_TYPE in local.conf. --- conf/distro/angstrom-2007.1.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf index 94d4b3f954..b367b3f142 100644 --- a/conf/distro/angstrom-2007.1.conf +++ b/conf/distro/angstrom-2007.1.conf @@ -13,7 +13,7 @@ DISTRO_REVISION = "33" require conf/distro/include/angstrom.inc require conf/distro/include/sane-srcdates.inc -DISTRO_TYPE = "debug" +DISTRO_TYPE ?= "debug" #DISTRO_TYPE = "release" # Ship just basic locale by default. Locales are big (~1Mb uncompr.), so -- cgit v1.2.3 From 4f8343ce4d85f0665cf909e241a0a7a235349cc3 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 18:38:21 +0000 Subject: task-base: Make "wifi" belong to COMBINED_FEATURES. * This is consistent with how "bluetooth" is handled already, and, assuming that distro supports wifi, essentially allows machine to decide if wifi packages go into rootfs or would be installed from feed. This is helpful for machines which don't have wifi and devoid of any means of external card extension, or for machines with very small ROM (like, for example, h3600 with its 16Mb, in which wifi packages simply don't fit, so h3600 users with CF sleeve and wifi card would need to install support manually, after deleting packages they can sacrifice for this). * Approved by Marcin Juszkiewicz --- packages/tasks/task-base.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb index b4266a0940..fdbf9f75d2 100644 --- a/packages/tasks/task-base.bb +++ b/packages/tasks/task-base.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Merge machine and distro options to create a basic machine task/package" -PR = "r16" +PR = "r17" PACKAGES = "task-base \ task-base-minimal \ @@ -62,10 +62,10 @@ RDEPENDS_task-base = "\ ${@base_contains("COMBINED_FEATURES", "pcmcia", "${task-base-pcmcia-rdepends}", "",d)} \ ${@base_contains("COMBINED_FEATURES", "usbhost", "${task-base-usbhost-rdepends}", "",d)} \ ${@base_contains("COMBINED_FEATURES", "bluetooth", "${task-base-bluetooth-rdepends}", "",d)} \ + ${@base_contains("COMBINED_FEATURES", "wifi", "${task-distro-wifi-rdepends}", "",d)} \ ${@base_contains("DISTRO_FEATURES", "nfs", "${task-distro-nfs-rdepends}", "",d)} \ ${@base_contains("DISTRO_FEATURES", "ipsec", "${task-distro-ipsec-rdepends}", "",d)} \ ${@base_contains("DISTRO_FEATURES", "ppp", "${task-distro-ppp-rdepends}", "",d)} \ - ${@base_contains("DISTRO_FEATURES", "wifi", "${task-distro-wifi-rdepends}", "",d)} \ ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ ${MACHINE_EXTRA_RDEPENDS} \ ${DISTRO_EXTRA_RDEPENDS}" -- cgit v1.2.3 From c7e9d91801258b73c621704a1f16715f6084f271 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 18:50:03 +0000 Subject: task-angstrom-x11: Remove dependency on detect-stylus. * detect-stylus is no longer used in OE, which adopted convention of having the touchscreen device at /dev/input/touchscreen0 (for all 2.6 devices being created by udev rule). --- packages/angstrom/task-angstrom-x11.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/angstrom/task-angstrom-x11.bb b/packages/angstrom/task-angstrom-x11.bb index 95fb0cf0c6..9644d4e527 100644 --- a/packages/angstrom/task-angstrom-x11.bb +++ b/packages/angstrom/task-angstrom-x11.bb @@ -42,7 +42,6 @@ RDEPENDS_angstrom-gpe-task-base := "\ gpe-autostarter \ ${@base_contains("MACHINE_FEATURES", "touchscreen", "libgtkstylus", "",d)} \ ${@base_contains("MACHINE_FEATURES", "keyboard", "", "libgtkinput",d)} \ - ${@base_contains("MACHINE_FEATURES", "touchscreen", "detect-stylus", "",d)} \ suspend-desktop \ teleport \ xauth \ -- cgit v1.2.3 From d26700b3505de269e1238bcb1ee2170d545058a0 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 18 Feb 2007 18:52:57 +0000 Subject: task-angstrom-x11: Bump PR for latest change. --- packages/angstrom/task-angstrom-x11.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angstrom/task-angstrom-x11.bb b/packages/angstrom/task-angstrom-x11.bb index 9644d4e527..36aa431d42 100644 --- a/packages/angstrom/task-angstrom-x11.bb +++ b/packages/angstrom/task-angstrom-x11.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Task packages for the Angstrom distribution" -PR = "r27" +PR = "r28" ALLOW_EMPTY = "1" PACKAGE_ARCH = "${MACHINE_ARCH}" -- cgit v1.2.3 From 4f9f17b0409566ed1f09f95341442d8554449c21 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Sun, 18 Feb 2007 23:12:19 +0000 Subject: classes/insane.bbclass: Add a small elf reader and check ABI,ARCH and Endian Add a small ELF parser and read OSABI, ABIVERSION, ENDIAN and MACHINE. This code compares TARGET_OS and TARGET_ARCH to a list of known versions. Currently we have values for linux and linux-uclibc for arm, armeb and powerpc. mips, i386, amd64, ia64 are missing. ABI wise ARM EABI is missing as well, but koen is likely to enter the values into the documented dict --- classes/insane.bbclass | 130 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/classes/insane.bbclass b/classes/insane.bbclass index d11d8ddd7e..54b6b3b2dc 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -24,6 +24,107 @@ inherit package PACKAGE_DEPENDS += "pax-utils-native" PACKAGEFUNCS += " do_package_qa " + +# +# dictionary for elf headers +# +# feel free to add and correct. the ARM EABI needs another column and we +# need mips, i386 and amd64 input (abi versions) +# +# TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian +def package_qa_get_machine_dict(): + return { + "linux" : { "arm" : (40, 97, 0, True), + "armeb": (40, 97, 0, False), + "powerpc": (20, 0, 0, False), + }, + "linux-uclibc" : { "arm" : (40, 97, 0, True), + "armeb": (40, 97, 0, False), + "powerpc": (20, 0, 0, False), + }, + } + +# factory for a class, embedded in a method +def package_qa_get_elf(path): + class ELFFile: + EI_NIDENT = 16 + + EI_CLASS = 4 + EI_DATA = 5 + EI_VERSION = 6 + EI_OSABI = 7 + EI_ABIVERSION = 8 + + # possible values for EI_CLASS + ELFCLASSNONE = 0 + ELFCLASS32 = 1 + ELFCLASS64 = 2 + + # possible value for EI_VERSION + EV_CURRENT = 1 + + # possible values for EI_DATA + ELFDATANONE = 0 + ELFDATA2LSB = 1 + ELFDATA2MSB = 2 + + def my_assert(expectation, result): + if not expectation == result: + print "'%x','%x'" % (ord(expectation), ord(result)) + raise "This does not work as expected" + my_assert = staticmethod(my_assert) + + def __init__(self, name): + self.name = name + + def open(self): + self.file = file(self.name, "r") + self.data = self.file.read(ELFFile.EI_NIDENT+4) + + ELFFile.my_assert(len(self.data), ELFFile.EI_NIDENT+4) + ELFFile.my_assert(self.data[0], chr(0x7f) ) + ELFFile.my_assert(self.data[1], 'E') + ELFFile.my_assert(self.data[2], 'L') + ELFFile.my_assert(self.data[3], 'F') + ELFFile.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32)) # only 32 bits + ELFFile.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) ) + + self.sex = self.data[ELFFile.EI_DATA] + if self.sex == chr(ELFFile.ELFDATANONE): + raise "Can't be" + elif self.sex == chr(ELFFile.ELFDATA2LSB): + print "little" + self.sex = "<" + elif self.sex == chr(ELFFile.ELFDATA2MSB): + print "big" + self.sex = ">" + else: + raise "Even more worse" + + def osAbi(self): + return ord(self.data[ELFFile.EI_OSABI]) + + def abiVersion(self): + return ord(self.data[ELFFile.EI_ABIVERSION]) + + def isLittleEndian(self): + return self.sex == "<" + + def isBigEngian(self): + return self.sex == ">" + + def machine(self): + """ + We know the sex stored in self.sex and we + know the position + """ + import struct + (a,) = struct.unpack(self.sex+"H", self.data[18:20]) + return a + + return ELFFile(path) + + # # # Known Error classes @@ -31,6 +132,7 @@ PACKAGEFUNCS += " do_package_qa " # 1 - package contains a dangerous RPATH # 2 - package depends on debug package # 3 - non dbg contains .so +# 4 - wrong architecture # # @@ -59,6 +161,7 @@ def package_qa_write_error(error_class, name, path, d): "package contains RPATH", "package depends on debug package", "non dbg contains .debug", + "wrong archutecture", ] @@ -125,7 +228,34 @@ def package_qa_check_arch(path,name,d): """ Check if archs are compatible """ + import bb + target_os = bb.data.getVar('TARGET_OS', d, True) + target_arch = bb.data.getVar('TARGET_ARCH', d, True) + + #this will throw an exception, then fix the dict above + (machine, osabi, abiversion, littleendian) = package_qa_get_machine_dict()[target_os][target_arch] + elf = package_qa_get_elf(path) + try: + elf.open() + except: + # just for debbugging to check the parser, remove once convinced... + bb.note("ELF reading failed on '%s'" % path) + return True + sane = True + if not machine == elf.machine(): + bb.error("Architecture did not match (%d to %d) on %s", (machine, elf.machine(), package_qa_clean_path(path,d))) + sane = package_qa_make_fatal_error( 4, name, path, d ) + elif not osabi == elf.osAbi(): + bb.error("OSABI did not match (%d to %d) on %s", (osabi, elf.osAbi(), package_qa_clean_path(path,d))) + sane = package_qa_make_fatal_error( 4, name, path, d ) + elif not abiversion == elf.abiVersion(): + bb.error("ABI version did not match (%d to %d) on %s", (abiversion, elf.abiVersion(), package_qa_clean_path(path,d))) + sane = package_qa_make_fatal_error( 4, name, path, d ) + elif not littleendian == elf.isLittleEndian(): + bb.error("Endiannes did not match (%d to %d) on %s", (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d))) + sane = package_qa_make_fatal_error( 4, name, path, d ) + return sane def package_qa_check_pcla(path,name,d): -- cgit v1.2.3 From a4cef58d43b3733a4a513e550b94d8713ee56401 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Sun, 18 Feb 2007 23:14:06 +0000 Subject: classes/insane.bbclass: Be less verbose --- classes/insane.bbclass | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 54b6b3b2dc..cda2ebc917 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -70,7 +70,7 @@ def package_qa_get_elf(path): def my_assert(expectation, result): if not expectation == result: - print "'%x','%x'" % (ord(expectation), ord(result)) + #print "'%x','%x'" % (ord(expectation), ord(result)) raise "This does not work as expected" my_assert = staticmethod(my_assert) @@ -93,10 +93,8 @@ def package_qa_get_elf(path): if self.sex == chr(ELFFile.ELFDATANONE): raise "Can't be" elif self.sex == chr(ELFFile.ELFDATA2LSB): - print "little" self.sex = "<" elif self.sex == chr(ELFFile.ELFDATA2MSB): - print "big" self.sex = ">" else: raise "Even more worse" @@ -239,7 +237,6 @@ def package_qa_check_arch(path,name,d): elf.open() except: # just for debbugging to check the parser, remove once convinced... - bb.note("ELF reading failed on '%s'" % path) return True sane = True -- cgit v1.2.3