diff options
108 files changed, 12656 insertions, 34605 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 3c4411c4b7..2ad122350c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -56,10 +56,10 @@ Person: Graeme Gregory Mail: dp@xora.org.uk Website: http://www.xora.org.uk Interests: Multimedia in gpe and on fbdev, and gtk+ apps on PDA devices. -Interests: GNOME on PDA +Interests: GNOME on PDA Recipes: mplayer, xmms, xmms-mad, xmms-tremor, dillo, links, links-x11 -Recipes: epdfview, kismet, sylpheed-claws, sylpheed, gqview, tightvnc -Recipes: epdfview, gtk+_2.10.* +Recipes: epdfview, sylpheed-claws, sylpheed, gqview, tightvnc +Recipes: epdfview, gtk+_2.10.* Person: Holger Hans Peter Freyther Mail: zecke@selfish.org @@ -158,6 +158,14 @@ Machines: poodle, c7x0, spitz, nokia770, qemuarm, qemux86, hx2xxx Interests: Kernels, Bitbake, Core OE infrastructure, Zaurus 2.6 Recipes: linux-rp, udev, zaurusd, task-base +Person: Rick Farina +Mail: sidhayn@gmail.com +Website: http://zerochaos.aircrack-ng.org +Interests: wifi, packet injection, security +Distros: Angstrom +Machines: akita +Recipes: aircrack-ng, kismet, mdk2, rfakeap, void11 + Person: Rolf 'Laibsch' Leggewie Mail: OE-recipes@rolf.leggewie.biz Website: http://oz.leggewie.org diff --git a/classes/image.bbclass b/classes/image.bbclass index 69d7fb2e9b..5055b5b987 100644 --- a/classes/image.bbclass +++ b/classes/image.bbclass @@ -4,7 +4,7 @@ PACKAGES = "" # We need to recursively follow RDEPENDS and RRECOMMENDS for images BUILD_ALL_DEPS = "1" -do_rootfs[recrdeptask] = "do_package_write do_deploy" +do_rootfs[recrdeptask] = "do_package_write do_deploy do_populate_staging" # Images are generally built explicitly, do not need to be part of world. EXCLUDE_FROM_WORLD = "1" @@ -91,6 +91,10 @@ fakeroot do_rootfs () { else bbimage -n "${IMAGE_NAME}" -t "$type" -e "${FILE}" fi + + cd ${DEPLOY_DIR_IMAGE}/ + rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.* + ln -s ${IMAGE_NAME}.rootfs.$type ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.$type done ${IMAGE_POSTPROCESS_COMMAND} @@ -161,7 +165,14 @@ make_zimage_symlink_relative () { fi } +# Make login manager(s) enable automatic login. +# Useful for devices where we do not want to log in at all (e.g. phones) +set_image_autologin () { + sed -i 's%^AUTOLOGIN=\"false"%AUTOLOGIN="true"%g' ${IMAGE_ROOTFS}/etc/sysconfig/gpelogin +} + + # export the zap_root_password, create_etc_timestamp and remote_init_link -EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative +EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative set_image_autologin addtask rootfs before do_build after do_install diff --git a/classes/seppuku.bbclass b/classes/seppuku.bbclass new file mode 100644 index 0000000000..5757df7efb --- /dev/null +++ b/classes/seppuku.bbclass @@ -0,0 +1,243 @@ +# +# Small event handler to automatically open URLs and file +# bug reports at a bugzilla of your choiche +# +# This class requires python2.4 because of the urllib2 usage +# + + +def seppuku_login(opener, login, user, password): + """ + We need to post to query.cgi with the parameters + Bugzilla_login and Bugzilla_password and will scan + the resulting page then + + @param opened = cookie enabled urllib2 opener + @param login = http://bugzilla.openmoko.org/cgi-bin/bugzilla/query.cgi? + @param user = Your username + @param password = Your password + """ + import urllib + param = urllib.urlencode( {"GoAheadAndLogIn" : 1, "Bugzilla_login" : user, "Bugzilla_password" : password } ) + result = opener.open(login + param) + + if result.code != 200: + return False + txt = result.read() + if not '<a href="relogin.cgi">Log out</a>' in txt: + return False + + return True + +def seppuku_find_bug_report_old(): + from HTMLParser import HTMLParser + + class BugQueryExtractor(HTMLParser): + STATE_NONE = 0 + STATE_FOUND_TR = 1 + STATE_FOUND_NUMBER = 2 + STATE_FOUND_PRIO = 3 + STATE_FOUND_PRIO2 = 4 + STATE_FOUND_NAME = 5 + STATE_FOUND_PLATFORM = 6 + STATE_FOUND_STATUS = 7 + STATE_FOUND_WHATEVER = 8 # I don't know this field + STATE_FOUND_DESCRIPTION =9 + + def __init__(self): + HTMLParser.__init__(self) + self.state = self.STATE_NONE + self.bugs = [] + + def handle_starttag(self, tag, attr): + if self.state == self.STATE_NONE and tag.lower() == "tr": + if len(attr) == 1 and attr[0] == ('class', 'bz_normal bz_P2 '): + self.state = self.STATE_FOUND_TR + elif self.state == self.STATE_FOUND_TR and tag.lower() == "td": + self.state += 1 + + def handle_endtag(self, tag): + if tag.lower() == "tr": + if self.state != self.STATE_NONE: + self.bugs.append( (self.bug,self.status) ) + self.state = self.STATE_NONE + if self.state > 1 and tag.lower() == "td": + self.state += 1 + + def handle_data(self,data): + data = data.strip() + + # skip garbage + if len(data) == 0: + return + + if self.state == self.STATE_FOUND_NUMBER: + self.bug = data + elif self.state == self.STATE_FOUND_STATUS: + self.status = data + + def result(self): + return self.bugs + + return BugQueryExtractor() + + + +def seppuku_find_bug_report(opener, query, product, component, bugname): + """ + Find a bug report with the sane name and return the bug id + and the status. + + @param opener = urllib2 opener + @param query = e.g. https://bugzilla.openmoko.org/cgi-bin/bugzilla/query.cgi? + @param product = search for this product + @param component = search for this component + @param bugname = the bug to search for + + https://bugzilla.openmoko.org/cgi-bin/bugzilla/buglist.cgi?short_desc_type=substring&short_desc=manual+test+bug&product=OpenMoko&emailreporter2=1&emailtype2=substring&email2=freyther%40yahoo.com + but it does not support ctype=csv... + """ + result = opener.open("%(query)s?product=%(product)s&component=%(component)s&short_desc_type=substring&short_desc=%(bugname)s" % vars()) + if result.code != 200: + raise "Can not query the bugzilla at all" + txt = result.read() + scanner = seppuku_find_bug_report_old() + scanner.feed(txt) + if len(scanner.result()) == 0: + return (False,None) + else: # silently pick the first result + (number,status) = scanner.result()[0] + return (not status in ["CLOS", "RESO", "VERI"],number) + +def seppuku_reopen_bug(opener, file, product, component, bug_number, bugname, text) |
