diff options
author | Paul Sokolovsky <pmiscml@gmail.com> | 2007-02-18 18:43:10 +0000 |
---|---|---|
committer | Paul Sokolovsky <pmiscml@gmail.com> | 2007-02-18 18:43:10 +0000 |
commit | 78ffedd1f0bf9141f12df951553776703d73f07e (patch) | |
tree | cf9be521597fcc96c3547b592f77af6bf64a6207 | |
parent | 4f8343ce4d85f0665cf909e241a0a7a235349cc3 (diff) | |
parent | fe20002f8dd30c2b76f9ae62bb80f0dba968bbf6 (diff) |
merge of '342f792566944087c0c655f774603539975ed2fb'
and '65f577e27ac9b76dcfa25b8c34d8446d8191a934'
-rw-r--r-- | classes/insane.bbclass | 115 | ||||
-rw-r--r-- | conf/distro/include/openmoko.inc | 127 | ||||
-rw-r--r-- | conf/distro/include/preferred-openmoko-versions.inc | 60 | ||||
-rw-r--r-- | conf/distro/openmoko.conf | 28 | ||||
-rw-r--r-- | packages/tslib/tslib-1.0/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/tslib/tslib-1.0/ts.conf | 25 | ||||
-rw-r--r-- | packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch | 120 | ||||
-rw-r--r-- | packages/tslib/tslib_1.0.bb | 3 |
8 files changed, 459 insertions, 19 deletions
diff --git a/classes/insane.bbclass b/classes/insane.bbclass index b091742ad0..d11d8ddd7e 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -24,6 +24,50 @@ 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 =[ + "non dev contains .so", + "package contains RPATH", + "package depends on debug package", + "non dbg contains .debug", + ] + + + 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 +76,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 +96,71 @@ def package_qa_check_devdbg(path, name,d): """ import bb + sane = True + if not "-dev" in name: if path[-3:] == ".so": - bb.error("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))) + if package_qa_make_fatal_error( 0, name, 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( 3, name, path, d ) + bb.error("QA Issue: non debug package contains .debug directory: %s path %s" % (name, package_qa_clean_path(path,d))) + if package_qa_make_fatal_error( 3, name, 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 +189,12 @@ 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!!!") + if package_qa_make_fatal_error( 2, name, rdepend, d ): + sane = False + + return sane # The PACKAGE FUNC to scan each package python do_package_qa () { @@ -134,12 +206,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 +235,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) } 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" 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 --- /dev/null +++ b/packages/tslib/tslib-1.0/.mtn2git_empty 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 <laforge@openmoko.org> + +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 <errno.h> + #include <stdio.h> ++#include <limits.h> + + #include <stdlib.h> + #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 \ |