summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRolf Leggewie <oe-devel@rolf.leggewie.biz>2007-03-17 17:57:46 +0000
committerRolf Leggewie <oe-devel@rolf.leggewie.biz>2007-03-17 17:57:46 +0000
commit6142c77d5d691a59157f12d71bcb4f5c9e8837fd (patch)
treec6ca12b6f28200fdb87d17d0394369ebb5966871
parent09bb585ba70bc7c651d62c9aa9ac0e57595df31c (diff)
parenta828847f3281b8c4254cf89a551c9dcf3e0e4787 (diff)
merge of '13300dbb95259891ffdb187402ac66a12e7f43c7'
and 'c18417178fcb2dac2e3931442dc1d0cf1ba2e5c8'
-rw-r--r--classes/seppuku.bbclass19
-rw-r--r--conf/distro/foonas.conf7
-rw-r--r--conf/machine/n2100.conf9
-rw-r--r--conf/machine/turbostation.conf8
-rw-r--r--contrib/qa/bugzilla.py2050
-rw-r--r--packages/dfu-util/dfu-util-native_svn.bb3
-rw-r--r--packages/directfb/directfb_1.0.0.bb (renamed from packages/directfb/directfb_0.9.99+1.0.0rc3.bb)19
-rw-r--r--packages/directfb/files/fix-pkgconfig-specs.patch48
-rw-r--r--packages/fis/fis_1.0.bb13
-rw-r--r--packages/gnome/goffice_0.2.1.bb4
-rw-r--r--packages/gnome/goffice_0.3.2.bb4
-rw-r--r--packages/gspcav1/.mtn2git_empty0
-rw-r--r--packages/gspcav1/gspcav1-20070110/.mtn2git_empty0
-rw-r--r--packages/gspcav1/gspcav1-20070110/MS.patch29
-rw-r--r--packages/gspcav1/gspcav1-20070110/Makefile.patch11
-rw-r--r--packages/gspcav1/gspcav1_20070110.bb25
-rw-r--r--packages/gtk+/gtk+-1.2_1.2.10.bb4
-rw-r--r--packages/images/foonas-image.bb51
-rw-r--r--packages/iproute2/iproute2-2.6.20/.mtn2git_empty0
-rw-r--r--packages/iproute2/iproute2-2.6.20/ip6tunnel.patch10
-rw-r--r--packages/iproute2/iproute2-2.6.20/man-pages-fix.patch13
-rw-r--r--packages/iproute2/iproute2-2.6.20/new-flex-fix.patch83
-rw-r--r--packages/iproute2/iproute2-2.6.20/no-strip.patch36
-rw-r--r--packages/iproute2/iproute2.inc14
-rw-r--r--packages/iproute2/iproute2_2.6.16.bb6
-rw-r--r--packages/iproute2/iproute2_2.6.18.bb6
-rw-r--r--packages/libftdi/ftdi-eeprom-native_0.2.bb3
-rw-r--r--packages/libol/libol_0.3.18.bb7
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/.mtn2git_empty0
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch51
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/acinclude.m4332
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch2054
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/fixlibs-1.2.9.patch27
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch140
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/kill-stdc++-1.2.9.patch422
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch48
-rw-r--r--packages/libsdl/libsdl-qpe-1.2.9/pygame-1.2.9.patch191
-rw-r--r--packages/libsdl/libsdl-qpe_1.2.9.bb67
-rw-r--r--packages/lrzsz/lrzsz_0.12.20.bb20
-rw-r--r--packages/netatalk/.mtn2git_empty0
-rw-r--r--packages/netatalk/files/.mtn2git_empty0
-rwxr-xr-xpackages/netatalk/files/init111
-rw-r--r--packages/netatalk/netatalk-2.0.3/.mtn2git_empty0
-rw-r--r--packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-db43.patch32
-rw-r--r--packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-newerdb.patch28
-rw-r--r--packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-setXid.patch14
-rw-r--r--packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-xfs.patch22
-rw-r--r--packages/netatalk/netatalk_2.0.3.bb39
-rw-r--r--packages/netbase/netbase/slugos/.mtn2git_empty0
-rw-r--r--packages/netbase/netbase/slugos/if-down.d/.mtn2git_empty0
-rw-r--r--packages/netbase/netbase/slugos/if-post-down.d/.mtn2git_empty0
-rw-r--r--packages/netbase/netbase/slugos/if-pre-up.d/.mtn2git_empty0
-rw-r--r--packages/netbase/netbase/slugos/if-pre-up.d/udhcpc-fix12
-rw-r--r--packages/netbase/netbase/slugos/if-up.d/.mtn2git_empty0
-rw-r--r--packages/netbase/netbase_4.21.bb17
-rw-r--r--packages/tzcode/tzcode-native_2007c.bb9
-rw-r--r--packages/uboot-utils/uboot-utils_1.1.2.bb5
-rw-r--r--packages/uboot/u-boot.inc3
-rw-r--r--packages/webcam-server/.mtn2git_empty0
-rw-r--r--packages/webcam-server/webcam-server_0.50.bb23
-rw-r--r--packages/xserver-common/xserver-common_1.14.bb5
-rw-r--r--packages/xserver-common/xserver-common_1.15.bb5
62 files changed, 5561 insertions, 598 deletions
diff --git a/classes/seppuku.bbclass b/classes/seppuku.bbclass
index 8d5e234c49..4c0d4f9a82 100644
--- a/classes/seppuku.bbclass
+++ b/classes/seppuku.bbclass
@@ -15,6 +15,8 @@ def seppuku_spliturl(url):
param = {}
for par in query.split("&"):
(key,value) = urllib.splitvalue(par)
+ if not key or len(key) == 0 or not value:
+ continue
key = urllib.unquote(key)
value = urllib.unquote(value)
param[key] = value
@@ -65,10 +67,13 @@ def seppuku_find_bug_report_old():
HTMLParser.__init__(self)
self.state = self.STATE_NONE
self.bugs = []
+ self.bug = None
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 '):
+ if len(attr) == 1 and attr[0][0] == 'class' and \
+ ('bz_normal' in attr[0][1] or 'bz_blocker' in attr[0][1] or 'bz_enhancement' in attr[0][1] or 'bz_major' in attr[0][1] or 'bz_minor' in attr[0][1] or 'bz_trivial' in attr[0][1] or 'bz_critical' in attr[0][1] or 'bz_wishlist' in attr[0][1]) \
+ and 'bz_P' in attr[0][1]:
self.state = self.STATE_FOUND_TR
elif self.state == self.STATE_FOUND_TR and tag.lower() == "td":
self.state += 1
@@ -78,6 +83,7 @@ def seppuku_find_bug_report_old():
if self.state != self.STATE_NONE:
self.bugs.append( (self.bug,self.status) )
self.state = self.STATE_NONE
+ self.bug = None
if self.state > 1 and tag.lower() == "td":
self.state += 1
@@ -89,7 +95,11 @@ def seppuku_find_bug_report_old():
return
if self.state == self.STATE_FOUND_NUMBER:
- self.bug = data
+ """
+ #1995 in bugs.oe.org has [SEC] additionally to the number and we want to ignore it
+ """
+ if not self.bug:
+ self.bug = data
elif self.state == self.STATE_FOUND_STATUS:
self.status = data
@@ -281,6 +291,7 @@ python seppuku_eventhandler() {
else:
print "Logged into the box"
+ file = None
if name == "TaskFailed":
bugname = "%(package)s-%(pv)s-%(pr)s-%(task)s" % { "package" : bb.data.getVar("PN", data, True),
"pv" : bb.data.getVar("PV", data, True),
@@ -288,11 +299,11 @@ python seppuku_eventhandler() {
"task" : e.task }
log_file = glob.glob("%s/log.%s.*" % (bb.data.getVar('T', event.data, True), event.task))
text = "The package failed to build at %s" % bb.data.getVar('DATETIME', data, True)
- file = open(log_file[0], 'r')
+ if len(log_file) != 0:
+ file = open(log_file[0], 'r')
elif name == "NoProvider":
bugname = "noprovider for %s runtime: %s" % (event.getItem, event.getisRuntime)
text = "Please fix it"
- file = None
else:
assert False
diff --git a/conf/distro/foonas.conf b/conf/distro/foonas.conf
index bd2a0e4e5e..b0f47c6dc0 100644
--- a/conf/distro/foonas.conf
+++ b/conf/distro/foonas.conf
@@ -30,10 +30,12 @@ IMAGE_FSTYPES = "jffs2"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
PREFERRED_PROVIDER_virtual/arm-foonas-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-#PREFERRED_PROVIDER_virtual/armeb-foonas-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-#PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
PREFERRED_PROVIDER_virtual/powerpc-foonas-linux-libc-for-gcc = "glibc-intermediate"
+
+# not used yet
+#PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
+#PREFERRED_PROVIDER_virtual/armeb-foonas-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
#PREFERRED_PROVIDER_virtual/mipsel-foonas-linux-libc-for-gcc = "glibc-intermediate"
#PREFERRED_PROVIDER_virtual/sparc-foonas-linux-libc-for-gcc = "glibc-intermediate"
@@ -83,7 +85,6 @@ PREFERRED_VERSION_glibc-intermediate = "2.5"
PREFERRED_VERSION_glibc-initial = "2.5"
GLIBC_EXTRA_OECONF = "--with-tls"
-PREFERRED_VERSION_glib-2.0 = "2.12.10"
PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
GLIBC_ADDONS ?= "ports,nptl,libidn"
diff --git a/conf/machine/n2100.conf b/conf/machine/n2100.conf
index 619b0f4339..554157ca85 100644
--- a/conf/machine/n2100.conf
+++ b/conf/machine/n2100.conf
@@ -3,7 +3,6 @@ TARGET_OS = "linux"
TARGET_FPU = "soft"
PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
-# terminal specs - console, but no other ports
SERIAL_CONSOLE="115200 console"
USE_VT="0"
@@ -13,15 +12,15 @@ PREFERRED_PROVIDER_virtual/kernel = "linux"
PREFERRED_VERSION_linux = "2.6.20"
# Do we need any kernel modules?
-#N2100_KERNEL = ""
+FOONAS_KERNEL = "kernel-module-ext2 kernel-module-usb-storage"
+
+FOONAS_SUPPORT += "fis"
# We want udev support in the image
udevdir = "/dev"
-N2100_SUPPORT ?= "cpio udev"
BOOTSTRAP_EXTRA_RDEPENDS = "udev mdadm"
-EXTRA_IMAGECMD_jffs2 += " --little-endian"
-# Hardware stuff used in image generation
+EXTRA_IMAGECMD_jffs2 += " --little-endian"
ERASEBLOCK_SIZE = "0x20000"
JFFS2_ROOTFS_SIZE = "0xC80000"
KERNEL_IMAGE_SIZE = "0x280000"
diff --git a/conf/machine/turbostation.conf b/conf/machine/turbostation.conf
index 7f7d24c1e9..41dfd8d09e 100644
--- a/conf/machine/turbostation.conf
+++ b/conf/machine/turbostation.conf
@@ -11,16 +11,16 @@ USE_VT="0"
MODUTILS=26
MACHINE_FEATURES= "kernel26 usbhost"
PREFERRED_PROVIDER_virtual/kernel = "linux-turbostation"
-
-# Do we need any kernel modules?
-OPENTURBOSTATION_KERNEL = ""
+FOONAS_KERNEL = "kernel-module-ext3 kernel-module-minix \
+ kernel-module-usb-storage"
# We want udev support in the image
udevdir = "/dev"
-TURBOSTATION_SUPPORT ?= "cpio uboot-utils udev"
BOOTSTRAP_EXTRA_RDEPENDS = "udev mdadm"
+FOONAS_SUPPORT += "uboot-utils"
# Hardware stuff used in image generation
+EXTRA_IMAGECMD = "--big-endian"
ERASEBLOCK_SIZE = "0x20000"
JFFS2_ROOTFS_SIZE = "0xC80000"
KERNEL_IMAGE_SIZE = "0x280000"
diff --git a/contrib/qa/bugzilla.py b/contrib/qa/bugzilla.py
index 1bc0ce9949..17849552b0 100644
--- a/contrib/qa/bugzilla.py
+++ b/contrib/qa/bugzilla.py
@@ -25,11 +25,16 @@ class BugQueryExtractor(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.state = self.STATE_NONE
+ self.bug = 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 '):
+ # check for bz_normal and bz_P2 as indicator in buglist.cgi
+ # use 'all' and 'map' on python2.5
+ if len(attr) == 1 and attr[0][0] == 'class' and \
+ ('bz_normal' in attr[0][1] or 'bz_blocker' in attr[0][1] or 'bz_enhancement' in attr[0][1] or 'bz_major' in attr[0][1] or 'bz_minor' in attr[0][1] or 'bz_trivial' in attr[0][1] or 'bz_critical' in attr[0][1] or 'bz_wishlist' in attr[0][1]) \
+ and 'bz_P' in attr[0][1]:
print "Found tr %s %s" % (tag, attr)
self.state = self.STATE_FOUND_TR
elif self.state == self.STATE_FOUND_TR and tag.lower() == "td":
@@ -41,6 +46,7 @@ class BugQueryExtractor(HTMLParser):
if self.state != self.STATE_NONE:
self.bugs.append( (self.bug,self.status) )
self.state = self.STATE_NONE
+ self.bug = None
if self.state > 1 and tag.lower() == "td":
print "Next TD"
self.state += 1
@@ -51,11 +57,17 @@ class BugQueryExtractor(HTMLParser):
# skip garbage
if len(data) == 0:
return
-
+
if self.state == self.STATE_FOUND_NUMBER:
+ """
+ #1995 in bugs.oe.org has [SEC] additionally to the number and we want to ignore it
+ """
print "Bug Number '%s'" % data.strip()
+ if self.bug:
+ print "Ignoring bug data"
+ return
self.bug = data
-
+
elif self.state == self.STATE_FOUND_STATUS:
print "Status Name '%s'" % data.strip()
self.status = data
@@ -65,267 +77,7 @@ class BugQueryExtractor(HTMLParser):
return self.bugs
#
-site = """<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-
-
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Bug List</title>
-
-
-
-
-
- <link href="/style/style.css" rel="stylesheet" type="text/css" />
-
- <link href="/bugzilla/css/buglist.css" rel="stylesheet" type="text/css">
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
- <div id="header">
- <a href="http://bugzilla.openmoko.org/cgi-bin/bugzilla/" id="site_logo"><img src="/style/images/openmoko_logo.png" alt="openmoko.org" /></a>
-
- <div id="main_navigation">
- <ul>
- <li><a href="http://www.openmoko.org/" class="nav_home"><span>Home</span></a></li>
- <li><a href="http://wiki.openmoko.org/" class="nav_wiki"><span>Wiki</span></a></li>
- <li><a href="http://bugzilla.openmoko.org/" class="nav_bugzilla selected"><span>Bugzilla</span></a></li>
- <li><a href="http://planet.openmoko.org/" class="nav_planet"><span>Planet</span></a></li>
- <li><a href="http://projects.openmoko.org/" class="nav_projects"><span>Projects</span></a></li>
- <li><a href="http://lists.openmoko.org/" class="nav_lists"><span>Lists</span></a></li>
- </ul>
- </div>
- </div>
-
- <div class="page_title">
- <strong>Bug List</strong>
- </div>
-
- <div class="container">
-
-<div align="center">
- <b>Tue Mar 6 19:01:13 CET 2007</b><br>
-
-
- <a href="quips.cgi"><i>Free your problems
-</i></a>
-
-</div>
-
-
-<hr>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
- <colgroup>
- <col class="bz_id_column">
- <col class="bz_severity_column">
- <col class="bz_priority_column">
- <col class="bz_platform_column">
- <col class="bz_owner_column">
- <col class="bz_status_column">
- <col class="bz_resolution_column">
- <col class="bz_summary_column">
- </colgroup>
-
- <tr align="left">
- <th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.bug_id">ID</a>
- </th>
-
-<th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
- </th><th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.priority,bugs.bug_id">Pri</a>
- </th><th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
- </th><th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
- </th><th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.bug_status,bugs.bug_id">State</a>
- </th><th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.resolution,bugs.bug_id">Result</a>
- </th><th colspan="1">
- <a href="buglist.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
- </th>
-
-
- </tr>
-
- <tr class="bz_normal bz_P2 ">
-
- <td>
- <a href="show_bug.cgi?id=238">238</a>
- </td>
-
- <td><nobr>nor</nobr>
- </td>
- <td><nobr>P2</nobr>
- </td>
- <td><nobr>Mac</nobr>
- </td>
- <td><nobr>mickey@vanille-media.de</nobr>
- </td>
- <td><nobr>NEW</nobr>
- </td>
- <td><nobr></nobr>
- </td>
- <td>manual test bug
- </td>
-
- </tr>
-
-
- </table>
-
-
-
-
-
- One bug found.
-
-
-<br>
-
-
-
-
-
-
-
-
-
-
-
-
- <form method="post" action="long_list.cgi">
- <input type="hidden" name="buglist" value="238">
- <input type="submit" value="Long Format">
-
- <a href="query.cgi">Query Page</a> &nbsp;&nbsp;
- <a href="enter_bug.cgi">Enter New Bug</a> &nbsp;&nbsp;
- <a href="colchange.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds">Change Columns</a> &nbsp;&nbsp;
-
-
-
- <a href="query.cgi?short_desc_type=substring&amp;short_desc=manual+test+bug&amp;product=OpenMoko&amp;component=autobuilds">Edit this Query</a> &nbsp;&nbsp;
-
- </form>
-
-
-
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-</div>
-
-<div class="footer">
- <div class="group">This is <b>Bugzilla</b>: the Mozilla bug system. For more information about what Bugzilla is and what it can do, see <a href="http://www.bugzilla.org/">bugzilla.org</a>.</div>
- <!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <div class="group">
- <a href="enter_bug.cgi">New</a> | <a href="query.cgi">Query</a> | <input type="submit" value="Find"> bug # <input name="id" size="6"> | <a href="reports.cgi">Reports</a> | <a href="votes.cgi?action=show_user">My Votes</a>
- </div>
-
- <div class="group">
- Edit <a href="userprefs.cgi">prefs</a>
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;&nbsp;freyther@yahoo.com
- </div>
-
-
-
-
- <div class="group">
- Preset&nbsp;Queries:
-
- <a href="buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=freyther%40yahoo.com&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
-
- </div>
-</form>
-</div>
-
-</body>
-</html>
-"""
-
-all_bugs = """<!-- 1.0@bugzilla.org -->
+bugs_openmoko = """<!-- 1.0@bugzilla.org -->
@@ -390,10 +142,10 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
<div class="container">
<div align="center">
- <b>Tue Mar 6 20:23:16 CET 2007</b><br>
+ <b>Fri Mar 16 20:51:52 CET 2007</b><br>
- <a href="quips.cgi"><i>Free your problems
+ <a href="quips.cgi"><i>It was a time of great struggle and heroic deeds
</i></a>
</div>
@@ -405,7 +157,7 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
-228 bugs found.
+282 bugs found.
@@ -454,23 +206,23 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
<tr align="left">
<th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_id">ID</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">ID</a>
</th>
<th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
</th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.priority,bugs.bug_id">Pri</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.priority,bugs.bug_id">Pri</a>
</th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
</th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
</th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_status,bugs.bug_id">State</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_status,bugs.bug_id">State</a>
</th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.resolution,bugs.bug_id">Result</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.resolution,bugs.bug_id">Result</a>
</th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
</th>
@@ -535,6 +287,34 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
<tr class="bz_normal bz_P2 ">
<td>
+ <a href="show_bug.cgi?id=3">3</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>CLOS</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>Debug Board trying to control GSM_EN / FA_19
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
<a href="show_bug.cgi?id=4">4</a>
</td>
@@ -546,9 +326,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>laforge@openmoko.org</nobr>
</td>
- <td><nobr>ASSI</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>random crashes of gsmd
</td>
@@ -591,6 +371,34 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
<tr class="bz_normal bz_P2 ">
<td>
+ <a href="show_bug.cgi?id=6">6</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>GSM_EN should be called nGSM_EN
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
<a href="show_bug.cgi?id=7">7</a>
</td>
@@ -840,6 +648,62 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
+ <tr class="bz_blocker bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=16">16</a>
+ </td>
+
+ <td><nobr>blo</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>bluetooth pullup / pulldown resistors
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=17">17</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>microSD socket still has mechanical contact problems
+ </td>
+
+ </tr>
+
+
+
+
+
+
<tr class="bz_normal bz_P2 ">
<td>
@@ -1274,9 +1138,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>laforge@openmoko.org</nobr>
</td>
- <td><nobr>ASSI</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>incoming call status report causes gsmd to crash.
</td>
@@ -1302,9 +1166,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>laforge@openmoko.org</nobr>
</td>
- <td><nobr>ASSI</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>WORK</nobr>
</td>
<td>Need to decide if lgsm_handle is still valid.
</td>
@@ -2786,9 +2650,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>laforge@openmoko.org</nobr>
</td>
- <td><nobr>NEW</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>define and implement how headphone jack routing/signallin...
</td>
@@ -3160,9 +3024,45 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</tr>
+ </table>
+ <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
+ <colgroup>
+ <col class="bz_id_column">
+ <col class="bz_severity_column">
+ <col class="bz_priority_column">
+ <col class="bz_platform_column">
+ <col class="bz_owner_column">
+ <col class="bz_status_column">
+ <col class="bz_resolution_column">
+ <col class="bz_summary_column">
+ </colgroup>
+
+ <tr align="left">
+ <th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">ID</a>
+ </th>
+
+<th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.priority,bugs.bug_id">Pri</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_status,bugs.bug_id">State</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.resolution,bugs.bug_id">Result</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
+ </th>
+
+
+ </tr>
<tr class="bz_major bz_P2 ">
@@ -3272,45 +3172,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</tr>
- </table>
- <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
- <colgroup>
- <col class="bz_id_column">
- <col class="bz_severity_column">
- <col class="bz_priority_column">
- <col class="bz_platform_column">
- <col class="bz_owner_column">
- <col class="bz_status_column">
- <col class="bz_resolution_column">
- <col class="bz_summary_column">
- </colgroup>
-
- <tr align="left">
- <th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_id">ID</a>
- </th>
-
-<th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.priority,bugs.bug_id">Pri</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_status,bugs.bug_id">State</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.resolution,bugs.bug_id">Result</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
- </th>
-
-
- </tr>
<tr class="bz_enhancement bz_P2 ">
@@ -4304,7 +4168,7 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>Neo</nobr>
</td>
- <td><nobr>mickey@vanille-media.de</nobr>
+ <td><nobr>stefan@openmoko.org</nobr>
</td>
<td><nobr>NEW</nobr>
</td>
@@ -4698,9 +4562,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>sunzhiyong@fic-sh.com.cn</nobr>
</td>
- <td><nobr>ASSI</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>mainmenu crashes when clicking wheel the 2nd time
</td>
@@ -5723,6 +5587,34 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
<tr class="bz_enhancement bz_P2 ">
<td>
+ <a href="show_bug.cgi?id=191">191</a>
+ </td>
+
+ <td><nobr>enh</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>investigate if we can set CPU voltage to 1.8V on 200MHz o...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_enhancement bz_P2 ">
+
+ <td>
<a href="show_bug.cgi?id=192">192</a>
</td>
@@ -5748,6 +5640,34 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
+ <tr class="bz_enhancement bz_P3 ">
+
+ <td>
+ <a href="show_bug.cgi?id=193">193</a>
+ </td>
+
+ <td><nobr>enh</nobr>
+ </td>
+ <td><nobr>P3</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Information about current charging status when AC is online
+ </td>
+
+ </tr>
+
+
+
+
+
+
<tr class="bz_minor bz_P2 ">
<td>
@@ -5760,7 +5680,7 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>Neo</nobr>
</td>
- <td><nobr>laforge@openmoko.org</nobr>
+ <td><nobr>stefan@openmoko.org</nobr>
</td>
<td><nobr>NEW</nobr>
</td>
@@ -5940,9 +5860,45 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</tr>
+ </table>
+ <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
+ <colgroup>
+ <col class="bz_id_column">
+ <col class="bz_severity_column">
+ <col class="bz_priority_column">
+ <col class="bz_platform_column">
+ <col class="bz_owner_column">
+ <col class="bz_status_column">
+ <col class="bz_resolution_column">
+ <col class="bz_summary_column">
+ </colgroup>
+
+ <tr align="left">
+ <th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">ID</a>
+ </th>
+
+<th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.priority,bugs.bug_id">Pri</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_status,bugs.bug_id">State</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.resolution,bugs.bug_id">Result</a>
+ </th><th colspan="1">
+ <a href="buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
+ </th>
+
+
+ </tr>
<tr class="bz_normal bz_P2 ">
@@ -6000,6 +5956,62 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
+ <tr class="bz_major bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=203">203</a>
+ </td>
+
+ <td><nobr>maj</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>All</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>fix the web site: http://openmoko.com/
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_minor bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=204">204</a>
+ </td>
+
+ <td><nobr>min</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>All</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Fatal error in Special:Newimages
+ </td>
+
+ </tr>
+
+
+
+
+
+
<tr class="bz_minor bz_P2 ">
<td>
@@ -6108,45 +6120,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</tr>
- </table>
- <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
- <colgroup>
- <col class="bz_id_column">
- <col class="bz_severity_column">
- <col class="bz_priority_column">
- <col class="bz_platform_column">
- <col class="bz_owner_column">
- <col class="bz_status_column">
- <col class="bz_resolution_column">
- <col class="bz_summary_column">
- </colgroup>
-
- <tr align="left">
- <th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_id">ID</a>
- </th>
-
-<th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_severity,bugs.bug_id">Sev</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.priority,bugs.bug_id">Pri</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.rep_platform,bugs.bug_id">Plt</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=map_assigned_to.login_name,bugs.bug_id">Owner</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_status,bugs.bug_id">State</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.resolution,bugs.bug_id">Result</a>
- </th><th colspan="1">
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.short_desc,bugs.bug_id">Summary</a>
- </th>
-
-
- </tr>
<tr class="bz_normal bz_P2 ">
@@ -6235,6 +6211,34 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
<tr class="bz_normal bz_P2 ">
<td>
+ <a href="show_bug.cgi?id=212">212</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Oth</nobr>
+ </td>
+ <td><nobr>werner@openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Charging seems completely broken
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
<a href="show_bug.cgi?id=213">213</a>
</td>
@@ -6302,9 +6306,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>mickey@vanille-media.de</nobr>
</td>
- <td><nobr>NEW</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>fingerwheel crashes mainmenu when touching the black part
</td>
@@ -6694,9 +6698,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>davewu01@seed.net.tw</nobr>
</td>
- <td><nobr>ASSI</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>outgoing call/incoming call/talking status should be more...
</td>
@@ -6764,6 +6768,34 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=232">232</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Oth</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>n-plicate buglog mails
+ </td>
+
+ </tr>
+
+
+
+
+
+
<tr class="bz_critical bz_P2 ">
<td>
@@ -6778,9 +6810,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>werner@openmoko.org</nobr>
</td>
- <td><nobr>NEW</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>power-off timer should be halted in DFU mode
</td>
@@ -6832,11 +6864,11 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>PC</nobr>
</td>
- <td><nobr>mickey@vanille-media.de</nobr>
+ <td><nobr>laforge@openmoko.org</nobr>
</td>
- <td><nobr>NEW</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>Deploy openocd-native, not openocd, and make openocd-nati...
</td>
@@ -6890,9 +6922,9 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>mickey@vanille-media.de</nobr>
</td>
- <td><nobr>NEW</nobr>
+ <td><nobr>RESO</nobr>
</td>
- <td><nobr></nobr>
+ <td><nobr>FIXE</nobr>
</td>
<td>Fix remaining https urls in bitbake recipes.
</td>
@@ -6918,208 +6950,1254 @@ all_bugs = """<!-- 1.0@bugzilla.org -->
</td>
<td><nobr>mickey@vanille-media.de</nobr>
</td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>LATE</nobr>
+ </td>
+ <td>manual test bug
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=239">239</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>LATE</nobr>
+ </td>
+ <td>foo
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=240">240</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>INVA</nobr>
+ </td>
+ <td>broken-1.0-r0-do_fetch
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=241">241</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>CLOS</nobr>
+ </td>
+ <td><nobr>LATE</nobr>
+ </td>
+ <td>broken-1.0-r0-do_fetch
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=242">242</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>INVA</nobr>
+ </td>
+ <td>broken-1.0-r0-do_compile
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=243">243</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>INVA</nobr>
+ </td>
+ <td>broken-1.0-r0-do_configure
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_major bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=244">244</a>
+ </td>
+
+ <td><nobr>maj</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
<td><nobr>NEW</nobr>
</td>
<td><nobr></nobr>
</td>
- <td>manual test bug
+ <td>I can't build Xorg7.1 from MokoMakefile
</td>
</tr>
- </table>
+
+ <tr class="bz_normal bz_P2 ">
-228 bugs found.
+ <td>
+ <a href="show_bug.cgi?id=245">245</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>laforge@openmoko.org</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>Neo crashes when writing large amounts of data to SD
+ </td>
-<br>
+ </tr>
+
+
+ <tr class="bz_normal bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=246">246</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Debug board needs to be recognized by mainline linux kernel.
+ </td>
+ </tr>
+
+
+ <tr class="bz_major bz_P2 ">
- <form method="post" action="long_list.cgi">
- <input type="hidden" name="buglist" value="1,2,4,5,7,8,9,10,11,12,13,14,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,192,194,195,196,197,198,199,200,201,202,205,206,207,208,209,210,211,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,233,234,235,236,237,238">
- <input type="submit" value="Long Format">
+ <td>
+ <a href="show_bug.cgi?id=247">247</a>
+ </td>
- <a href="query.cgi">Query Page</a> &nbsp;&nbsp;
- <a href="enter_bug.cgi">Enter New Bug</a> &nbsp;&nbsp;
- <a href="colchange.cgi?product=OpenMoko">Change Columns</a> &nbsp;&nbsp;
+ <td><nobr>maj</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>thomas@openedhand.com</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-dates svn rev. 335 does no longer build
+ </td>
- <a href="buglist.cgi?product=OpenMoko&amp;order=bugs.bug_id&amp;tweak=1">Change Several
- Bugs at Once</a>
- &nbsp;&nbsp;
+ </tr>
- <a href="mailto:stefan@openmoko.org,sean_mosko@fic.com.tw,songcw@fic-sh.com.cn,buglog@lists.openmoko.org,henryk@ploetzli.ch,davewu01@seed.net.tw,thomas@openedhand.com,ken_zhao@fic-sh.com.cn,gordon_hsu@fic-sh.com.cn,teddy@fic-sh.com.cn,marcel@holtmann.org,cj_steven@fic-sh.com.cn,mickey@vanille-media.de,laforge@openmoko.org,tonyguan@fic-sh.com.cn,sean_chiang@fic.com.tw,werner@openmoko.org,sunzhiyong@fic-sh.com.cn,graeme.gregory@wolfsonmicro.com">Send Mail to Bug Owners</a> &nbsp;&nbsp;
+
- <a href="query.cgi?product=OpenMoko">Edit this Query</a> &nbsp;&nbsp;
- </form>
+
+ <tr class="bz_normal bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=248">248</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Buttons disappear under zoom
+ </td>
+ </tr>
+
-<!-- 1.0@bugzilla.org -->
+
+
+ <tr class="bz_enhancement bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=249">249</a>
+ </td>
+
+ <td><nobr>enh</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>All</nobr>
+ </td>
+ <td><nobr>laforge@openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>add command to print gsmd version number
+ </td>
+ </tr>
+
-</div>
-<div class="footer">
- <div class="group">This is <b>Bugzilla</b>: the Mozilla bug system. For more information about what Bugzilla is and what it can do, see <a href="http://www.bugzilla.org/">bugzilla.org</a>.</div>
- <!-- 1.0@bugzilla.org -->
+ <tr class="bz_normal bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=250">250</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>INVA</nobr>
+ </td>
+ <td>broken-1.0-r0-do_compile
+ </td>
+ </tr>
+
-<form method="get" action="show_bug.cgi">
- <div class="group">
- <a href="enter_bug.cgi">New</a> | <a href="query.cgi">Query</a> | <input type="submit" value="Find"> bug # <input name="id" size="6"> | <a href="reports.cgi">Reports</a> | <a href="votes.cgi?action=show_user">My Votes</a>
- </div>
-
- <div class="group">
- Edit <a href="userprefs.cgi">prefs</a>
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;&nbsp;freyther@yahoo.com
- </div>
+
-
-
-
- <div class="group">
- Preset&nbsp;Queries:
+ <tr class="bz_normal bz_P2 ">
- <a href="buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=freyther%40yahoo.com&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
+ <td>
+ <a href="show_bug.cgi?id=251">251</a>
+ </td>
- </div>
-</form>
-</div>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>INVA</nobr>
+ </td>
+ <td>broken-1.0-r0-do_compile
+ </td>
-</body>
-</html>
-"""
+ </tr>
-no_bugs = """<!-- 1.0@bugzilla.org -->
+
+
+ <tr class="bz_normal bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=252">252</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>REOP</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>openmoko-devel-image-1.0-r0-do_rootfs
+ </td>
+ </tr>
+
+
+ <tr class="bz_normal bz_P2 ">
-<!-- 1.0@bugzilla.org -->
+ <td>
+ <a href="show_bug.cgi?id=253">253</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Mount /tmp as tmpfs
+ </td>
+ </tr>
+
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Bug List</title>
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=254">254</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Oth</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>bug with &quot;patch&quot; on arklinux 2006.1??
+ </td>
+
+ </tr>
-
-
-
- <link href="/style/style.css" rel="stylesheet" type="text/css" />
-
- <link href="/bugzilla/css/buglist.css" rel="stylesheet" type="text/css">
- </head>
+
+
+ <tr class="bz_normal bz_P2 ">
- <body bgcolor="#FFFFFF" onload="">
+ <td>
+ <a href="show_bug.cgi?id=255">255</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>tony_tu@fiwin.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>battery voltage scale is not correct
+ </td>
-<!-- 1.0@bugzilla.org -->
+ </tr>
+
+
- <div id="header">
- <a href="http://bugzilla.openmoko.org/cgi-bin/bugzilla/" id="site_logo"><img src="/style/images/openmoko_logo.png" alt="openmoko.org" /></a>
-
- <div id="main_navigation">
- <ul>
- <li><a href="http://www.openmoko.org/" class="nav_home"><span>Home</span></a></li>
- <li><a href="http://wiki.openmoko.org/" class="nav_wiki"><span>Wiki</span></a></li>
- <li><a href="http://bugzilla.openmoko.org/" class="nav_bugzilla selected"><span>Bugzilla</span></a></li>
- <li><a href="http://planet.openmoko.org/" class="nav_planet"><span>Planet</span></a></li>
- <li><a href="http://projects.openmoko.org/" class="nav_projects"><span>Projects</span></a></li>
- <li><a href="http://lists.openmoko.org/" class="nav_lists"><span>Lists</span></a></li>
- </ul>
- </div>
- </div>
+ <tr class="bz_critical bz_P2 ">
- <div class="page_title">
- <strong>Bug List</strong>
- </div>
-
- <div class="container">
+ <td>
+ <a href="show_bug.cgi?id=256">256</a>
+ </td>
-<div align="center">
- <b>Tue Mar 6 20:13:26 CET 2007</b><br>
+ <td><nobr>cri</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>GSM Modem doesn't seem to work on some devices
+ </td>
+ </tr>
- <a href="quips.cgi"><i>GOT THE MESSAGE OF no match
-</i></a>
+
-</div>
+
-<hr>
+ <tr class="bz_normal bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=257">257</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Oth</nobr>
+ </td>
+ <td><nobr>sean_chiang@fic.com.tw</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>AUX button sticking
+ </td>
+ </tr>
+
+
+ <tr class="bz_major bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=258">258</a>
+ </td>
+ <td><nobr>maj</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>All</nobr>
+ </td>
+ <td><nobr>cj_steven@fic-sh.com.cn</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Main Menu needs to have Single Instance functionality
+ </td>
+ </tr>
+
+
+ <tr class="bz_normal bz_P2 ">
+ <td>
+ <a href="show_bug.cgi?id=259">259</a>
+ </td>
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>stefan@openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>implement 500mA charging in u-boot
+ </td>
-<!-- 1.0@bugzilla.org -->
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=260">260</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>stefan@openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>implement 100mA charging in Linux
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=261">261</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>stefan@openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Implement 500mA charging using wall-outlet charger
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_enhancement bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=262">262</a>
+ </td>
+
+ <td><nobr>enh</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>Indicate different charging mode in battery applet
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_blocker bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=263">263</a>
+ </td>
+
+ <td><nobr>blo</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>laforge@openmoko.org</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>gsmd doesn't receive AT reply from the modem properly.
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=264">264</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>package libelf-0.8.6-r0: task do_populate_staging: failed
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=265">265</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>MokoMakefile: perl-native fix
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=266">266</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>ftdi-eeprom-native missing confuse-native dependency
+ </td>
+
+ </tr>
+
+
+
+
+
+ <tr class="bz_enhancement bz_P4 ">
+
+ <td>
+ <a href="show_bug.cgi?id=267">267</a>
+ </td>
+
+ <td><nobr>enh</nobr>
+ </td>
+ <td><nobr>P4</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>internal function duplicates strstr(3)
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=268">268</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>openmoko-today crashes when one of the buttons is pressed
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=269">269</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703151745-do_unpack
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=270">270</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>does our xserver need security updates?
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=271">271</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>laforge@openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>It would be nice if ppp was supported by kernel
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=272">272</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703152250-do_unpack
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=273">273</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703160254-do_unpack
+ </td>
+
+ </tr>
+
+
- Zarro Boogs found.
- <p>
- <a href="query.cgi">Query Page</a>
- &nbsp;&nbsp;<a href="enter_bug.cgi">Enter New Bug</a>
- <a href="query.cgi?short_desc_type=substring&amp;short_desc=foo+test+bug&amp;product=OpenMoko&amp;component=autobuilds">Edit this query</a>
- </p>
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=274">274</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703160321-do_unpack
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=275">275</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703160350-do_unpack
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P3 ">
+
+ <td>
+ <a href="show_bug.cgi?id=276">276</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P3</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>songcw@fic-sh.com.cn</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>The open file window is too ugly
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=277">277</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703160712-do_unpack
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=278">278</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>mickey@vanille-media.de</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>openmoko-contacts-0.1+svnnow-r3_0_200703160805-do_unpack
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=279">279</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>RESO</nobr>
+ </td>
+ <td><nobr>FIXE</nobr>
+ </td>
+ <td>Appmanager crush when install packages
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=280">280</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>songcw@fic-sh.com.cn</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>openmoko-appmanager not refresh the packages list after r...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P3 ">
+
+ <td>
+ <a href="show_bug.cgi?id=281">281</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P3</nobr>
+ </td>
+ <td><nobr>PC</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>implicit declaration of function `strdup'
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_normal bz_P2 ">
+
+ <td>
+ <a href="show_bug.cgi?id=282">282</a>
+ </td>
+
+ <td><nobr>nor</nobr>
+ </td>
+ <td><nobr>P2</nobr>
+ </td>
+ <td><nobr>Neo</nobr>
+ </td>
+ <td><nobr>buglog@lists.openmoko.org</nobr>
+ </td>
+ <td><nobr>NEW</nobr>
+ </td>
+ <td><nobr></nobr>
+ </td>
+ <td>microSD Problem
+ </td>
+
+ </tr>
+
+
+ </table>
+
+
+
+
+282 bugs found.
<br>
@@ -7135,6 +8213,20 @@ no_bugs = """<!-- 1.0@bugzilla.org -->
+ <form method="post" action="long_list.cgi">
+ <input type="hidden" name="buglist" value="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282">
+ <input type="submit" value="Long Format">
+
+ <a href="query.cgi">Query Page</a> &nbsp;&nbsp;
+ <a href="enter_bug.cgi">Enter New Bug</a> &nbsp;&nbsp;
+ <a href="colchange.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Change Columns</a> &nbsp;&nbsp;
+
+
+
+ <a href="query.cgi?short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Edit this Query</a> &nbsp;&nbsp;
+
+ </form>
+
@@ -7150,8 +8242,8 @@ no_bugs = """<!-- 1.0@bugzilla.org -->
</div>
<div class="footer">
- <div class="group">This is <b>Bugzilla</b>: the Mozilla bug system. For more information about what Bugzilla is and what it can do, see <a href="http://www.bugzilla.org/">bugzilla.org</a>.</div>
- <!-- 1.0@bugzilla.org -->
+ <div class="group">This is <b>Bugzilla</b>: the Mozilla bug system. For more information about what Bugzilla is and what it can do, see <a href="http://www.bugzilla.org/">bugzilla.org</a>.</div>
+ <!-- 1.0@bugzilla.org -->
@@ -7159,24 +8251,13 @@ no_bugs = """<!-- 1.0@bugzilla.org -->
<form method="get" action="show_bug.cgi">
- <div class="group">
- <a href="enter_bug.cgi">New</a> | <a href="query.cgi">Query</a> | <input type="submit" value="Find"> bug # <input name="id" size="6"> | <a href="reports.cgi">Reports</a> | <a href="votes.cgi?action=show_user">My Votes</a>
- </div>
-
- <div class="group">
- Edit <a href="userprefs.cgi">prefs</a>
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;&nbsp;freyther@yahoo.com
- </div>
-
-
-
-
<div class="group">
- Preset&nbsp;Queries:
-
- <a href="buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=freyther%40yahoo.com&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
-
+ <a href="enter_bug.cgi">New</a> | <a href="query.cgi">Query</a> | <input type="submit" value="Find"> bug # <input name="id" size="6"> | <a href="reports.cgi">Reports</a>
</div>
+
+ <div>
+ <a href="createaccount.cgi">New&nbsp;Account</a> | <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
+ </div>
</form>
</div>
@@ -7185,7 +8266,14 @@ no_bugs = """<!-- 1.0@bugzilla.org -->
"""
bugfinder =BugQueryExtractor()
-#bugfinder.feed(site)
-bugfinder.feed(all_bugs)
-#bugfinder.feed(no_bugs)
+bugfinder.feed(bugs_openmoko)
print bugfinder.result()
+print len(bugfinder.result())
+
+seen_numbers = {}
+for (number,_) in bugfinder.result():
+ seen_numbers[number] = "Yes"
+
+for i in range(1,283):
+ if not seen_numbers.has_key(str(i)):
+ print "Not seen %d" % i
diff --git a/packages/dfu-util/dfu-util-native_svn.bb b/packages/dfu-util/dfu-util-native_svn.bb
index af6603ddd1..9bfe4bae2c 100644
--- a/packages/dfu-util/dfu-util-native_svn.bb
+++ b/packages/dfu-util/dfu-util-native_svn.bb
@@ -5,7 +5,8 @@ inherit native
DEPENDS = "libusb-native"
do_stage() {
- install -m 0755 src/dfu-util ${STAGING_BINDIR_NATIVE}
+ install -d ${STAGING_BINDIR_NATIVE}
+ install -m 0755 src/dfu-util ${STAGING_BINDIR_NATIVE}/
}
do_deploy() {
diff --git a/packages/directfb/directfb_0.9.99+1.0.0rc3.bb b/packages/directfb/directfb_1.0.0.bb
index 5bb6aa362e..2e5dcbd086 100644
--- a/packages/directfb/directfb_0.9.99+1.0.0rc3.bb
+++ b/packages/directfb/directfb_1.0.0.bb
@@ -10,24 +10,23 @@ DEPENDS = "jpeg libpng freetype zlib tslib"
PR = "r1"
RV = "1.0-0"
-SRC_URI = "http://www.directfb.org/download/DirectFB/DirectFB-1.0.0-rc3.tar.gz \
- file://fix-pkgconfig-specs.patch;patch=1 \
+SRC_URI = "http://www.directfb.org/download/DirectFB/DirectFB-${PV}.tar.gz \
+ file://fix-pkgconfig-cflags.patch;patch=1 \
file://mkdfiff.patch;patch=1"
-S = "${WORKDIR}/DirectFB-1.0.0-rc3"
+S = "${WORKDIR}/DirectFB-1.0.0"
LDFLAGS_append =" -lts -lm"
inherit autotools pkgconfig
-EXTRA_OECONF = "--with-gfxdrivers=none --enable-libmpeg3=no --enable-freetype=yes --enable-sdl=no"
-PARALLEL_MAKE = ""
+EXTRA_OECONF = "--with-gfxdrivers=none \
+ --enable-libmpeg3=no \
+ --enable-freetype=yes \
+ --enable-sdl=no \
+ "
do_stage() {
- autotools_stage_all
-}
-
-do_install() {
oe_runmake 'DESTDIR=${D}' install
}
@@ -45,5 +44,5 @@ FILES_directfb_append = " ${libdir}/directfb-${RV}/systems/*.so \
${libdir}/directfb-${RV}/inputdrivers/*.so \
${libdir}/directfb-${RV}/interfaces/*/*.so \
${libdir}/directfb-${RV}/wm/*.so \
- ${datadir}/directfb-1.0.0-rc3 \
+ ${datadir}/directfb-1.0.0 \
"
diff --git a/packages/directfb/files/fix-pkgconfig-specs.patch b/packages/directfb/files/fix-pkgconfig-specs.patch
index 401d7fa443..0273b58ec5 100644
--- a/packages/directfb/files/fix-pkgconfig-specs.patch
+++ b/packages/directfb/files/fix-pkgconfig-specs.patch
@@ -1,13 +1,45 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- DirectFB-0.9.25.1/directfb.pc.in~fix-pkgconfig-specs 2005-10-19 01:14:04.000000000 +0200
-+++ DirectFB-0.9.25.1/directfb.pc.in 2006-05-20 01:02:37.000000000 +0200
+diff -ur DirectFB-1.0.0~org/directfb-internal.pc.in DirectFB-1.0.0/directfb-internal.pc.in
+--- DirectFB-1.0.0~org/directfb-internal.pc.in 2003-07-04 13:30:22.000000000 -0400
++++ DirectFB-1.0.0/directfb-internal.pc.in 2007-03-16 22:34:17.000000000 -0400
+@@ -8,4 +8,4 @@
+ Description: Third party module support package for DirectFB.
+ Version: @VERSION@
+ Requires: directfb = @VERSION@
+-Cflags: @DFB_INTERNAL_CFLAGS@ -I@INTERNALINCLUDEDIR@
++Cflags: @DFB_INTERNAL_CFLAGS@ -I${includedir}
+diff -ur DirectFB-1.0.0~org/directfb.pc.in DirectFB-1.0.0/directfb.pc.in
+--- DirectFB-1.0.0~org/directfb.pc.in 2004-08-04 12:28:20.000000000 -0400
++++ DirectFB-1.0.0/directfb.pc.in 2007-03-16 22:31:33.000000000 -0400
@@ -8,4 +8,4 @@
Version: @VERSION@
Requires: fusion direct
Libs: -L${libdir} -ldirectfb @THREADLIB@ @DYNLIB@ @ZLIB_LIBS@ @OSX_LIBS@
-Cflags: @THREADFLAGS@ -I@INCLUDEDIR@
-+Cflags: @THREADFLAGS@ -I${includedir}/directfb
++Cflags: @THREADFLAGS@ -I${includedir}
+diff -ur DirectFB-1.0.0~org/lib/direct/direct.pc.in DirectFB-1.0.0/lib/direct/direct.pc.in
+--- DirectFB-1.0.0~org/lib/direct/direct.pc.in 2005-11-23 09:18:59.000000000 -0500
++++ DirectFB-1.0.0/lib/direct/direct.pc.in 2007-03-16 22:32:13.000000000 -0400
+@@ -7,4 +7,4 @@
+ Description: DirectFB base development library
+ Version: @VERSION@
+ Libs: -L${libdir} -ldirect @THREADLIB@ @DYNLIB@
+-Cflags: @THREADFLAGS@ -I@INCLUDEDIR@
++Cflags: @THREADFLAGS@ -I${includedir}
+diff -ur DirectFB-1.0.0~org/lib/fusion/fusion.pc.in DirectFB-1.0.0/lib/fusion/fusion.pc.in
+--- DirectFB-1.0.0~org/lib/fusion/fusion.pc.in 2004-05-19 07:30:56.000000000 -0400
++++ DirectFB-1.0.0/lib/fusion/fusion.pc.in 2007-03-16 22:32:34.000000000 -0400
+@@ -8,4 +8,4 @@
+ Version: @VERSION@
+ Requires: direct
+ Libs: -L${libdir} -lfusion
+-Cflags: -I@INCLUDEDIR@
++Cflags: -I${includedir}
+diff -ur DirectFB-1.0.0~org/lib/voodoo/voodoo.pc.in DirectFB-1.0.0/lib/voodoo/voodoo.pc.in
+--- DirectFB-1.0.0~org/lib/voodoo/voodoo.pc.in 2004-05-19 07:31:28.000000000 -0400
++++ DirectFB-1.0.0/lib/voodoo/voodoo.pc.in 2007-03-16 22:32:55.000000000 -0400
+@@ -8,4 +8,4 @@
+ Version: @VERSION@
+ Requires: direct
+ Libs: -L${libdir} -lvoodoo
+-Cflags: -I@INCLUDEDIR@
++Cflags: -I${includedir}
diff --git a/packages/fis/fis_1.0.bb b/packages/fis/fis_1.0.bb
index 404955cb75..ea4c0af6c8 100644
--- a/packages/fis/fis_1.0.bb
+++ b/packages/fis/fis_1.0.bb
@@ -1,4 +1,6 @@
DESCRIPTION = "Tool to edit the Redboot FIS partition layout from userspace"
+PR = "r1"
+DEPENDS = "boost"
SRC_URI = "http://svn.chezphil.org/utils/trunk/fis.cc \
svn://svn.chezphil.org/;module=libpbe;proto=http"
@@ -6,8 +8,11 @@ SRC_URI = "http://svn.chezphil.org/utils/trunk/fis.cc \
do_compile() {
${CXX} -Os -W -I${STAGING_INCDIR} -I${WORKDIR}/libpbe/trunk/include -o fis ${WORKDIR}/fis.cc \
${WORKDIR}/libpbe/trunk/src/Exception.cc ${WORKDIR}/libpbe/trunk/src/utils.cc
+}
+
+do_install() {
${STRIP} ${WORKDIR}/fis-${PV}/fis
-# ${CXX} -Os -W -static -I${STAGING_INCDIR} -I${WORKDIR}/libpbe/trunk/include -o fis-static ${WORKDIR}/fis.cc \
-# ${WORKDIR}/libpbe/trunk/src/Exception.cc ${WORKDIR}/libpbe/trunk/src/utils.cc
-# ${STRIP} ${WORKDIR}/fis-${PV}/fis-static
-} \ No newline at end of file
+
+ install -d ${D}/${sbindir}
+ install -m 755 ${WORKDIR}/fis-${PV}/fis ${D}/${sbindir}
+}
diff --git a/packages/gnome/goffice_0.2.1.bb b/packages/gnome/goffice_0.2.1.bb
index 59372fa5ec..2048cdd34d 100644
--- a/packages/gnome/goffice_0.2.1.bb
+++ b/packages/gnome/goffice_0.2.1.bb
@@ -1,9 +1,11 @@
DESCRIPTION="Gnome Office Library"
LICENSE="GPLv2"
-PR="r0"
+PR="r1"
DEPENDS="glib-2.0 gtk+ pango libgnomeprint libgsf libglade libxml2 libart-lgpl"
+FILES_${PN}-dbg += "${libdir}/goffice/${PV}/plugins/*/.debug"
+
inherit gnome pkgconfig
do_stage() {
diff --git a/packages/gnome/goffice_0.3.2.bb b/packages/gnome/goffice_0.3.2.bb
index 59503a7b43..a81f96910c 100644
--- a/packages/gnome/goffice_0.3.2.bb
+++ b/packages/gnome/goffice_0.3.2.bb
@@ -1,12 +1,12 @@
DESCRIPTION="Gnome Office Library"
LICENSE="GPLv2"
-PR="r0"
+PR="r1"
DEFAULT_PREFERENCE = "-1"
DEPENDS="glib-2.0 gtk+ pango cairo libgnomeprint libgsf libglade libxml2 libart-lgpl"
-FILES_${PN}-dbg += "${libdir}/goffice/0.2.1/plugins/*/.debug"
+FILES_${PN}-dbg += "${libdir}/goffice/${PV}/plugins/*/.debug"
inherit gnome pkgconfig
diff --git a/packages/gspcav1/.mtn2git_empty b/packages/gspcav1/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gspcav1/.mtn2git_empty
diff --git a/packages/gspcav1/gspcav1-20070110/.mtn2git_empty b/packages/gspcav1/gspcav1-20070110/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gspcav1/gspcav1-20070110/.mtn2git_empty
diff --git a/packages/gspcav1/gspcav1-20070110/MS.patch b/packages/gspcav1/gspcav1-20070110/MS.patch
new file mode 100644
index 0000000000..588a4bc3da
--- /dev/null
+++ b/packages/gspcav1/gspcav1-20070110/MS.patch
@@ -0,0 +1,29 @@
+--- gspcav1-20070110/gspca_core.c.orig 2007-03-16 23:24:37.000000000 +0000
++++ gspcav1-20070110/gspca_core.c 2007-03-16 23:24:43.000000000 +0000
+@@ -398,7 +398,7 @@
+ Sonyc002,
+ Vimicro0321,
+ Orbicam,
+- M$VX1000,
++ MSVX1000,
+ Trust610LCDPowerCamZoom,
+ Sonyc001,
+ LastCamera
+@@ -580,7 +580,7 @@
+ {Sonyc002,"Vc0321"},
+ {Vimicro0321,"Vc0321"},
+ {Orbicam,"Logitech Orbicam"},
+- {M$VX1000,"MicroSoft VX1000"},
++ {MSVX1000,"MicroSoft VX1000"},
+ {Trust610LCDPowerCamZoom, "Trust 610 LCD PowerC@m Zoom"},
+ {Sonyc001,"Sony Visual Communication VGP-VCC1"},
+ {-1, NULL}
+@@ -3124,7 +3124,7 @@
+ case 0x045e:
+ switch(product){
+ case 0x00f7:
+- spca50x->desc = M$VX1000;
++ spca50x->desc = MSVX1000;
+ spca50x->bridge = BRIDGE_SN9CXXX;
+ spca50x->sensor = SENSOR_OV7660;
+ spca50x->customid = SN9C105;
diff --git a/packages/gspcav1/gspcav1-20070110/Makefile.patch b/packages/gspcav1/gspcav1-20070110/Makefile.patch
new file mode 100644
index 0000000000..87262686cb
--- /dev/null
+++ b/packages/gspcav1/gspcav1-20070110/Makefile.patch
@@ -0,0 +1,11 @@
+--- gspcav1-20070110/Makefile.orig 2007-03-16 23:20:18.000000000 +0000
++++ gspcav1-20070110/Makefile 2007-03-16 23:20:44.000000000 +0000
+@@ -41,7 +41,7 @@
+ MODULE_INSTALLDIR2 = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/media/video/
+
+ default:
+- $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules
++ $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC="$(CC)" modules
+
+ install:
+ mkdir -p $(MODULE_INSTALLDIR)
diff --git a/packages/gspcav1/gspcav1_20070110.bb b/packages/gspcav1/gspcav1_20070110.bb
new file mode 100644
index 0000000000..86cb1010df
--- /dev/null
+++ b/packages/gspcav1/gspcav1_20070110.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "USB Webcam driver for spca5xx chipset family supporting \
+over 100 models of camera"
+PRIORITY = "optional"
+SECTION = "kernel/modules"
+LICENSE = "GPL"
+
+SRC_URI = "http://mxhaard.free.fr/spca50x/Download/${PN}-${PV}.tar.gz \
+ file://Makefile.patch;patch=1 \
+ file://MS.patch;patch=1"
+
+S = "${WORKDIR}/${PN}-${PV}"
+
+inherit module
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake 'KERNELDIR=${STAGING_KERNEL_DIR}' \
+ 'CC=${KERNEL_CC}' \
+ 'LD=${KERNEL_LD}'
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media
+ install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media
+}
diff --git a/packages/gtk+/gtk+-1.2_1.2.10.bb b/packages/gtk+/gtk+-1.2_1.2.10.bb
index 8025beb75c..b3d0a61bad 100644
--- a/packages/gtk+/gtk+-1.2_1.2.10.bb
+++ b/packages/gtk+/gtk+-1.2_1.2.10.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.gtk.org"
SECTION = "libs"
PRIORITY = "optional"
DEPENDS = "glib-1.2 jpeg libpng libxext"
-PR = "r2"
+PR = "r3"
SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-${PV}.tar.gz \
file://timezone-fix.patch;patch=1 \
@@ -48,7 +48,7 @@ do_stage () {
mkdir -p ${STAGING_LIBDIR}/gtk-1.2/include
install -m 0644 gtk.m4 ${STAGING_DATADIR}/aclocal/
- install -m 0755 gtk-config ${STAGING_BINDIR_CROSS}
+ install -m 0755 gtk-config ${STAGING_BINDIR_CROSS}/
}
do_install_append () {
diff --git a/packages/images/foonas-image.bb b/packages/images/foonas-image.bb
index 23059d9bca..3d2c621438 100644
--- a/packages/images/foonas-image.bb
+++ b/packages/images/foonas-image.bb
@@ -2,48 +2,21 @@ DESCRIPTION = "Foonas image"
LICENSE = "GPL"
PR = "r0"
-DEPENDS = "${MACHINE_TASK_PROVIDER}"
-EXTRA_IMAGECMD_turbostation = "--big-endian"
-EXTRA_IMAGECMD_n2100 = "--little-endian"
-EXTRA_IMAGECMD_jffs2 += " --eraseblock=${ERASEBLOCK_SIZE} -D ${SLUGOS_DEVICE_TABLE}"
-IMAGE_LINGUAS = ""
+inherit image
-# This is passed to the image command to build the correct /dev
-# directory (because only the image program can make actual
-# dev entries!)
-SLUGOS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-slugos.txt')}"
+DEPENDS = "${MACHINE_TASK_PROVIDER} makedevs-native mtd-utils-native"
+DEPENDS_n2100 += "openssl-native"
-# IMAGE_PREPROCESS_COMMAND is run before making the image.
-# We use this to do a few things:
-# . remove the uImage, which is in a separate part of the flash already.
-# . adjust the default run level (sysvinit is 5 by default, we like 3)
-# . set a default root password, which is no more secure than a blank one
-# (since it is documented, in case you were wondering)
-# . make the boot more verbose
-#
-IMAGE_PREPROCESS_COMMAND += "sed -i -es,^id:5:initdefault:,id:3:initdefault:, ${IMAGE_ROOTFS}/etc/inittab;"
-IMAGE_PREPROCESS_COMMAND += "sed -i -es,^root::0,root:BTMzOOAQfESg6:0, ${IMAGE_ROOTFS}/etc/passwd;"
-IMAGE_PREPROCESS_COMMAND += "sed -i -es,^VERBOSE=no,VERBOSE=very, ${IMAGE_ROOTFS}/etc/default/rcS;"
-# Always just make a new flash image.
-PACK_IMAGE = '${MACHINE}_pack_image;'
IMAGE_POSTPROCESS_COMMAND += "${PACK_IMAGE}"
PACK_IMAGE_DEPENDS = ""
-#EXTRA_IMAGEDEPENDS += "${PACK_IMAGE_DEPENDS}"
-
-# These depends define native utilities - they do not get put in the flash and
-# are not required to build the image.
-IMAGE_TOOLS = ""
-#EXTRA_IMAGEDEPENDS += "${IMAGE_TOOLS}"
-
-FOONAS_SUPPORT += "diffutils cpio findutils udev"
-FOONAS_SUPPORT_turbostation += "uboot-utils"
-
-# this gets /lib/modules made....
-FOONAS_KERNEL_turbostation = "kernel-module-ext3 kernel-module-minix \
- kernel-module-usb-storage"
-
-FOONAS_KERNEL_n2100 = "kernel-module-ext2 kernel-module-usb-storage"
+PACK_IMAGE = '${MACHINE}_pack_image;'
+IMAGE_PREPROCESS_COMMAND += "sed -i -es,^id:5:initdefault:,id:3:initdefault:, ${IMAGE_ROOTFS}/etc/inittab;"
+IMAGE_PREPROCESS_COMMAND += "sed -i -es,^root::0,root:BTMzOOAQfESg6:0, ${IMAGE_ROOTFS}/etc/passwd;"
+IMAGE_PREPROCESS_COMMAND += "sed -i -es,^VERBOSE=no,VERBOSE=very, ${IMAGE_ROOTFS}/etc/default/rcS;"
+FOONAS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-slugos.txt')}"
+EXTRA_IMAGECMD_jffs2 += " --eraseblock=${ERASEBLOCK_SIZE} -D ${FOONAS_DEVICE_TABLE}"
+IMAGE_LINGUAS = ""
RDEPENDS = " \
base-files base-passwd netbase \
@@ -51,7 +24,7 @@ RDEPENDS = " \
update-modules sysvinit tinylogin \
module-init-tools-depmod modutils-initscripts \
ipkg-collateral ipkg ipkg-link \
- libgcc1 \
+ libgcc1 diffutils cpio findutils\
portmap \
dropbear \
e2fsprogs-blkid \
@@ -64,8 +37,6 @@ RDEPENDS = " \
PACKAGE_INSTALL = "${RDEPENDS}"
-inherit image
-
# At this point you have to make a ${MACHINE}_pack_image for your machine.
turbostation_pack_image() {
diff --git a/packages/iproute2/iproute2-2.6.20/.mtn2git_empty b/packages/iproute2/iproute2-2.6.20/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/iproute2/iproute2-2.6.20/.mtn2git_empty
diff --git a/packages/iproute2/iproute2-2.6.20/ip6tunnel.patch b/packages/iproute2/iproute2-2.6.20/ip6tunnel.patch
new file mode 100644
index 0000000000..371de01c16
--- /dev/null
+++ b/packages/iproute2/iproute2-2.6.20/ip6tunnel.patch
@@ -0,0 +1,10 @@
+--- iproute-2.6.20-070313/ip/ip6tunnel.c 2007/03/17 03:44:27 1.1
++++ iproute-2.6.20-070313/ip/ip6tunnel.c 2007/03/17 03:43:14
+@@ -33,6 +33,7 @@
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
+ #include <sys/ioctl.h>
++#include <linux/types.h>
+ #include <linux/ip.h>
+ #include <linux/if.h>
+ #include <linux/if_arp.h>
diff --git a/packages/iproute2/iproute2-2.6.20/man-pages-fix.patch b/packages/iproute2/iproute2-2.6.20/man-pages-fix.patch
new file mode 100644
index 0000000000..924d0ed4dc
--- /dev/null
+++ b/packages/iproute2/iproute2-2.6.20/man-pages-fix.patch
@@ -0,0 +1,13 @@
+--- iproute-2.6.20-070313/Makefile 2007/03/17 04:24:45 1.1
++++ iproute-2.6.20-070313/Makefile 2007/03/17 04:27:39
+@@ -52,8 +52,8 @@
+ install -m 0644 $(shell find etc/iproute2 -maxdepth 1 -type f) $(DESTDIR)$(CONFDIR)
+ install -m 0755 -d $(DESTDIR)$(MANDIR)/man8
+ install -m 0644 $(shell find man/man8 -maxdepth 1 -type f) $(DESTDIR)$(MANDIR)/man8
+- ln -sf tc-pbfifo.8 $(DESTDIR)$(MANDIR)/man8/tc-bfifo.8
+- ln -sf tc-pbfifo.8 $(DESTDIR)$(MANDIR)/man8/tc-pfifo.8
++ ln -sf tc-bfifo.8 $(DESTDIR)$(MANDIR)/man8/tc-pfifo.8
++ ln -sf tc-bfifo.8 $(DESTDIR)$(MANDIR)/man8/tc-pbfifo.8
+ install -m 0755 -d $(DESTDIR)$(MANDIR)/man3
+ install -m 0644 $(shell find man/man3 -maxdepth 1 -type f) $(DESTDIR)$(MANDIR)/man3
+
diff --git a/packages/iproute2/iproute2-2.6.20/new-flex-fix.patch b/packages/iproute2/iproute2-2.6.20/new-flex-fix.patch
new file mode 100644
index 0000000000..af7272163e
--- /dev/null
+++ b/packages/iproute2/iproute2-2.6.20/new-flex-fix.patch
@@ -0,0 +1,83 @@
+The tc command was failing to build due to flex errors. These errors are
+caused by an incompatible change to flex in recent versions, including the
+version shipped with OE.
+
+This fix is as per the one used by opensure:
+
+ http://lists.opensuse.org/opensuse-commit/2006-04/msg00090.html
+
+and simple renames str to prevent it conflicting.
+
+--- iproute-2.6.20-070313/tc/emp_ematch.l 2007/03/17 02:52:20 1.1
++++ iproute-2.6.20-070313/tc/emp_ematch.l 2007/03/17 02:54:01
+@@ -63,7 +63,7 @@
+
+ %}
+
+-%x str
++%x STR
+
+ %option 8bit stack warn noyywrap prefix="ematch_"
+ %%
+@@ -78,17 +78,17 @@
+ }
+ strbuf_index = 0;
+
+- BEGIN(str);
++ BEGIN(STR);
+ }
+
+-<str>\" {
++<STR>\" {
+ BEGIN(INITIAL);
+ yylval.b = bstr_new(strbuf, strbuf_index);
+ yylval.b->quoted = 1;
+ return ATTRIBUTE;
+ }
+
+-<str>\\[0-7]{1,3} { /* octal escape sequence */
++<STR>\\[0-7]{1,3} { /* octal escape sequence */
+ int res;
+
+ sscanf(yytext + 1, "%o", &res);
+@@ -100,12 +100,12 @@
+ strbuf_append_char((unsigned char) res);
+ }
+
+-<str>\\[0-9]+ { /* catch wrong octal escape seq. */
++<STR>\\[0-9]+ { /* catch wrong octal escape seq. */
+ fprintf(stderr, "error: invalid octale escape sequence\n");
+ return ERROR;
+ }
+
+-<str>\\x[0-9a-fA-F]{1,2} {
++<STR>\\x[0-9a-fA-F]{1,2} {
+ int res;
+
+ sscanf(yytext + 2, "%x", &res);
+@@ -118,16 +118,16 @@
+ strbuf_append_char((unsigned char) res);
+ }
+
+-<str>\\n strbuf_append_char('\n');
+-<str>\\r strbuf_append_char('\r');
+-<str>\\t strbuf_append_char('\t');
+-<str>\\v strbuf_append_char('\v');
+-<str>\\b strbuf_append_char('\b');
+-<str>\\f strbuf_append_char('\f');
+-<str>\\a strbuf_append_char('\a');
++<STR>\\n strbuf_append_char('\n');
++<STR>\\r strbuf_append_char('\r');
++<STR>\\t strbuf_append_char('\t');
++<STR>\\v strbuf_append_char('\v');
++<STR>\\b strbuf_append_char('\b');
++<STR>\\f strbuf_append_char('\f');
++<STR>\\a strbuf_append_char('\a');
+
+-<str>\\(.|\n) strbuf_append_char(yytext[1]);
+-<str>[^\\\n\"]+ strbuf_append_charp(yytext);
++<STR>\\(.|\n) strbuf_append_char(yytext[1]);
++<STR>[^\\\n\"]+ strbuf_append_charp(yytext);
+
+ [aA][nN][dD] return AND;
+ [oO][rR] return OR;
diff --git a/packages/iproute2/iproute2-2.6.20/no-strip.patch b/packages/iproute2/iproute2-2.6.20/no-strip.patch
new file mode 100644
index 0000000000..6490dadb07
--- /dev/null
+++ b/packages/iproute2/iproute2-2.6.20/no-strip.patch
@@ -0,0 +1,36 @@
+--- iproute-2.6.20-070313/ip/Makefile 2007/03/17 05:17:30 1.1
++++ iproute-2.6.20-070313/ip/Makefile 2007/03/17 05:17:37
+@@ -16,7 +16,7 @@
+ rtmon: $(RTMONOBJ) $(LIBNETLINK)
+
+ install: all
+- install -m 0755 -s $(TARGETS) $(DESTDIR)$(SBINDIR)
++ install -m 0755 $(TARGETS) $(DESTDIR)$(SBINDIR)
+ install -m 0755 $(SCRIPTS) $(DESTDIR)$(SBINDIR)
+
+ clean:
+--- iproute-2.6.20-070313/misc/Makefile 2007/03/17 05:18:20 1.1
++++ iproute-2.6.20-070313/misc/Makefile 2007/03/17 05:18:26
+@@ -27,7 +27,7 @@
+ lnstat: $(LNSTATOBJ)
+
+ install: all
+- install -m 0755 -s $(TARGETS) $(DESTDIR)$(SBINDIR)
++ install -m 0755 $(TARGETS) $(DESTDIR)$(SBINDIR)
+ ln -sf lnstat $(DESTDIR)$(SBINDIR)/rtstat
+ ln -sf lnstat $(DESTDIR)$(SBINDIR)/ctstat
+
+--- iproute-2.6.20-070313/tc/Makefile 2007/03/17 05:17:42 1.1
++++ iproute-2.6.20-070313/tc/Makefile 2007/03/17 05:17:54
+@@ -70,9 +70,9 @@
+
+ install: all
+ mkdir -p $(DESTDIR)/usr/lib/tc
+- install -m 0755 -s tc $(DESTDIR)$(SBINDIR)
++ install -m 0755 tc $(DESTDIR)$(SBINDIR)
+ for i in $(TCSO); \
+- do install -m 755 -s $$i $(DESTDIR)/usr/lib/tc; \
++ do install -m 755 $$i $(DESTDIR)/usr/lib/tc; \
+ done
+
+ clean:
diff --git a/packages/iproute2/iproute2.inc b/packages/iproute2/iproute2.inc
index 006b27b60f..e14bfdeefe 100644
--- a/packages/iproute2/iproute2.inc
+++ b/packages/iproute2/iproute2.inc
@@ -3,12 +3,20 @@ SECTION = "base"
LICENSE = "GPL"
DEPENDS = "flex-native bison-native"
-# Set DATE in the .bb file
+# This changed from iproute2 to iproute with version 2.6.20, so set to
+# iproute in the recipe for 2.6.20 and newer versions.
+DIRNAME ?= "${PN}"
+
+# Set the DATE in the .bb file
SRC_URI = "http://developer.osdl.org/dev/iproute2/download/${P}-${DATE}.tar.gz"
-S = "${WORKDIR}/${P}-${DATE}"
+S = "${WORKDIR}/${DIRNAME}-${PV}-${DATE}"
-EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_KERNEL_DIR}/include DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip' SBINDIR=/sbin"
+EXTRA_OEMAKE = "CC='${CC}' \
+ KERNEL_INCLUDE=${STAGING_KERNEL_DIR}/include \
+ DOCDIR=${docdir}/iproute2 \
+ SUBDIRS='lib tc ip' \
+ SBINDIR=/sbin"
do_install () {
oe_runmake DESTDIR=${D} install
diff --git a/packages/iproute2/iproute2_2.6.16.bb b/packages/iproute2/iproute2_2.6.16.bb
index ddd5ef71dd..fc87b9e3b5 100644
--- a/packages/iproute2/iproute2_2.6.16.bb
+++ b/packages/iproute2/iproute2_2.6.16.bb
@@ -1,7 +1,7 @@
-PR = "r1"
+PR = "r2"
-SRC_URI += "file://iproute2-2.6.15_no_strip.diff;patch=1;pnum=0 \
- file://new-flex-fix.patch;patch=1"
+SRC_URI_append = " file://iproute2-2.6.15_no_strip.diff;patch=1;pnum=0 \
+ file://new-flex-fix.patch;patch=1"
require iproute2.inc
diff --git a/packages/iproute2/iproute2_2.6.18.bb b/packages/iproute2/iproute2_2.6.18.bb
index ee3ff29550..9d85126b68 100644
--- a/packages/iproute2/iproute2_2.6.18.bb
+++ b/packages/iproute2/iproute2_2.6.18.bb
@@ -1,7 +1,7 @@
-PR = "r0"
+PR = "r1"
-SRC_URI += "file://iproute2-2.6.15_no_strip.diff;patch=1;pnum=0 \
- file://new-flex-fix.patch;patch=1"
+SRC_URI_append = " file://iproute2-2.6.15_no_strip.diff;patch=1;pnum=0 \
+ file://new-flex-fix.patch;patch=1"
require iproute2.inc
diff --git a/packages/libftdi/ftdi-eeprom-native_0.2.bb b/packages/libftdi/ftdi-eeprom-native_0.2.bb
index 1b48bd08f7..56613969d9 100644
--- a/packages/libftdi/ftdi-eeprom-native_0.2.bb
+++ b/packages/libftdi/ftdi-eeprom-native_0.2.bb
@@ -3,6 +3,7 @@ require ftdi-eeprom_${PV}.bb
DEPENDS = "libftdi-native confuse-native"
do_stage() {
- install -m 0755 ftdi_eeprom/ftdi_eeprom ${STAGING_BINDIR_NATIVE}
+ install -d ${STAGING_BINDIR_NATIVE}
+ install -m 0755 ftdi_eeprom/ftdi_eeprom ${STAGING_BINDIR_NATIVE}/
}
diff --git a/packages/libol/libol_0.3.18.bb b/packages/libol/libol_0.3.18.bb
index 3ddaaa62a3..9484f8e99e 100644
--- a/packages/libol/libol_0.3.18.bb
+++ b/packages/libol/libol_0.3.18.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
SRC_URI = "http://www.balabit.com/downloads/libol/0.3/${P}.tar.gz"
@@ -7,9 +7,10 @@ S = "${WORKDIR}/${PN}-${PV}"
inherit autotools
do_stage() {
+ install -d ${STAGING_BINDIR_CROSS}
install -d ${STAGING_INCDIR}/libol
- install -m 0755 ${S}/libol-config ${STAGING_BINDIR_CROSS}
- install -m 0755 ${S}/src/.libs/libol.so.0.0.0 ${STAGING_LIBDIR}
+ install -m 0755 ${S}/libol-config ${STAGING_BINDIR_CROSS}/
+ install -m 0755 ${S}/src/.libs/libol.so.0.0.0 ${STAGING_LIBDIR}/
ln -fs ${STAGING_LIBDIR}/libol.so.0.0.0 ${STAGING_LIBDIR}/libol.so.0
install ${S}/src/*.h ${STAGING_INCDIR}/libol/
}
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/.mtn2git_empty b/packages/libsdl/libsdl-qpe-1.2.9/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/.mtn2git_empty
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch
new file mode 100644
index 0000000000..56ffe468e8
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/SDL-Akita-1.2.9.patch
@@ -0,0 +1,51 @@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:58:19.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:58:27.000000000 +0100
+@@ -109,6 +109,7 @@
+ MACHINE_SHARP_SLC760,
+ MACHINE_SHARP_SLC860,
+ MACHINE_SHARP_SL6000,
++ MACHINE_SHARP_SLC1000,
+ MACHINE_IPAQ,
+ MACHINE_MAX
+ } machine_t;
+@@ -123,6 +124,7 @@
+ { "Sharp", "SL-C760", 0 },
+ { "Sharp", "SL-C860", 0 },
+ { "Sharp", "SL-6000", 0 },
++ { "Sharp", "SL-C1000", 0 },
+ { "HP", "HP IPAQ", 0 },
+ };
+
+@@ -428,6 +430,8 @@
+ machine = MACHINE_SHARP_SLC760;
+ else if (strstr(buf, "SHARP Boxer") != NULL)
+ machine = MACHINE_SHARP_SLC860;
++ else if (strstr(buf, "SHARP Akita") != NULL)
++ machine = MACHINE_SHARP_SLC1000;
+ else if ( ODevice::inst ( )-> series ( ) == Model_iPAQ )
+ machine = MACHINE_IPAQ;
+ else
+@@ -522,17 +526,18 @@
+ if (machine == MACHINE_SHARP_SLC700 ||
+ machine == MACHINE_SHARP_SLC750 ||
+ machine == MACHINE_SHARP_SLC760 ||
+- machine == MACHINE_SHARP_SLC860 || // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
+- machine == MACHINE_SHARP_SL6000 ) { // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
++ machine == MACHINE_SHARP_SLC860 ||
++ machine == MACHINE_SHARP_SL6000 ||
++ machine == MACHINE_SHARP_SLC1000 ) {
+ is_VGA_machine = true;
+ }else {
+ is_VGA_machine = false;
+ }
+
+- // qte ¤Ç¤Î²óž³ÑÅÙ¤ò¼èÆÀ
++ // qte
+ QT_GetQteServerSpec(_this, &qteRotation, &isQteQvga);
+
+- // SL-C700 ¤Î¥¹¥¿¥¤¥ë
++ // SL-C700
+ bool isInputStyle = false;
+ if (is_VGA_machine) {
+ int status = system("/home/QtPalmtop/bin/chkhinge");
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/acinclude.m4 b/packages/libsdl/libsdl-qpe-1.2.9/acinclude.m4
new file mode 100644
index 0000000000..30597ccc45
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/acinclude.m4
@@ -0,0 +1,332 @@
+# Local macros for the SDL configure.in script
+
+dnl Function to link an architecture specific file
+dnl LINK_ARCH_SRC(source_dir, arch, source_file)
+AC_DEFUN([COPY_ARCH_SRC],
+[
+ old="$srcdir/$1/$2/$3"
+ new="$1/$3"
+ if test ! -d $1; then
+ echo "Creating directory $1"
+ mkdir -p $1
+ fi
+ echo "Copying $old -> $new"
+ cat >$new <<__EOF__
+/* WARNING: This file was automatically generated!
+ * Original: $old
+ */
+__EOF__
+ cat >>$new <$old
+])
+##############################################################################
+dnl Configure Paths for Alsa
+dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org>
+dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
+dnl Jaroslav Kysela <perex@suse.cz>
+dnl Last modification: alsa.m4,v 1.23 2004/01/16 18:14:22 tiwai Exp
+dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate.
+dnl enables arguments --with-alsa-prefix=
+dnl --with-alsa-enc-prefix=
+dnl --disable-alsatest
+dnl
+dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified,
+dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result.
+dnl
+AC_DEFUN([AM_PATH_ALSA],
+[dnl Save the original CFLAGS, LDFLAGS, and LIBS
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+dnl
+dnl Get the cflags and libraries for alsa
+dnl
+AC_ARG_WITH(alsa-prefix,
+[ --with-alsa-prefix=PFX Prefix where Alsa library is installed(optional)],
+[alsa_prefix="$withval"], [alsa_prefix=""])
+AC_ARG_WITH(alsa-inc-prefix,
+[ --with-alsa-inc-prefix=PFX Prefix where include libraries are (optional)],
+[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
+
+dnl FIXME: this is not yet implemented
+AC_ARG_ENABLE(alsatest,
+[ --disable-alsatest Do not try to compile and run a test Alsa program],
+[enable_alsatest="$enableval"],
+[enable_alsatest=yes])
+
+dnl Add any special include directories
+AC_MSG_CHECKING(for ALSA CFLAGS)
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+AC_MSG_RESULT($ALSA_CFLAGS)
+
+dnl add any special lib dirs
+AC_MSG_CHECKING(for ALSA LDFLAGS)
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+dnl add the alsa library
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/-lpthread//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+AC_MSG_RESULT($ALSA_LIBS)
+
+dnl Check for a working version of libasound that is of the right version.
+min_alsa_version=ifelse([$1], ,0.1.1,$1)
+AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+AC_LANG_SAVE
+AC_LANG_C
+AC_TRY_COMPILE([
+#include <alsa/asoundlib.h>
+], [
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+],
+ [AC_MSG_RESULT(found.)],
+ [AC_MSG_RESULT(not present.)
+ ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
+if test "x$enable_alsatest" = "xyes"; then
+AC_CHECK_LIB([asound], [snd_ctl_open],,
+ [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
+ alsa_found=no]
+)
+fi
+if test "x$alsa_found" = "xyes" ; then
+ ifelse([$2], , :, [$2])
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ ifelse([$3], , :, [$3])
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+dnl That should be it. Now just export out symbols:
+AC_SUBST(ALSA_CFLAGS)
+AC_SUBST(ALSA_LIBS)
+])
+
+#
+# --- esd.m4 ---
+#
+# Configure paths for ESD
+# Manish Singh 98-9-30
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
+dnl
+AC_DEFUN([AM_PATH_ESD],
+[dnl
+dnl Get the cflags and libraries from the esd-config script
+dnl
+AC_ARG_WITH(esd-prefix,[ --with-esd-prefix=PFX Prefix where ESD is installed (optional)],
+ esd_prefix="$withval", esd_prefix="")
+AC_ARG_WITH(esd-exec-prefix,[ --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
+ esd_exec_prefix="$withval", esd_exec_prefix="")
+AC_ARG_ENABLE(esdtest, [ --disable-esdtest Do not try to compile and run a test ESD program],
+ , enable_esdtest=yes)
+
+ if test x$esd_exec_prefix != x ; then
+ esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
+ if test x${ESD_CONFIG+set} != xset ; then
+ ESD_CONFIG=$esd_exec_prefix/bin/esd-config
+ fi
+ fi
+ if test x$esd_prefix != x ; then
+ esd_args="$esd_args --prefix=$esd_prefix"
+ if test x${ESD_CONFIG+set} != xset ; then
+ ESD_CONFIG=$esd_prefix/bin/esd-config
+ fi
+ fi
+
+ AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+ min_esd_version=ifelse([$1], ,0.2.7,$1)
+ AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
+ no_esd=""
+ if test "$ESD_CONFIG" = "no" ; then
+ no_esd=yes
+ else
+ ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
+ ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
+
+ esd_major_version=`$ESD_CONFIG $esd_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ esd_minor_version=`$ESD_CONFIG $esd_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_esdtest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $ESD_CFLAGS"
+ LIBS="$LIBS $ESD_LIBS"
+dnl
+dnl Now check if the installed ESD is sufficiently new. (Also sanity
+dnl checks the results of esd-config to some extent
+dnl
+ rm -f conf.esdtest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <esd.h>
+
+char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.esdtest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = my_strdup("$min_esd_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_esd_version");
+ exit(1);
+ }
+
+ if (($esd_major_version > major) ||
+ (($esd_major_version == major) && ($esd_minor_version > minor)) ||
+ (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
+ printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
+ printf("*** to point to the correct copy of esd-config, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_esd" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$ESD_CONFIG" = "no" ; then
+ echo "*** The esd-config script installed by ESD could not be found"
+ echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the ESD_CONFIG environment variable to the"
+ echo "*** full path to esd-config."
+ else
+ if test -f conf.esdtest ; then
+ :
+ else
+ echo "*** Could not run ESD test program, checking why..."
+ CFLAGS="$CFLAGS $ESD_CFLAGS"
+ LIBS="$LIBS $ESD_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <esd.h>
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding ESD or finding the wrong"
+ echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means ESD was incorrectly installed"
+ echo "*** or that you have moved ESD since it was installed. In the latter case, you"
+ echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ ESD_CFLAGS=""
+ ESD_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(ESD_CFLAGS)
+ AC_SUBST(ESD_LIBS)
+ rm -f conf.esdtest
+])
+
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch
new file mode 100644
index 0000000000..d7c561402f
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/agawa-piro-mickey-1.2.9.patch
@@ -0,0 +1,2054 @@
+diff -Naur SDL-1.2.9-orig/src/video/fbcon/SDL_fbevents.c SDL-1.2.9/src/video/fbcon/SDL_fbevents.c
+--- SDL-1.2.9-orig/src/video/fbcon/SDL_fbevents.c 2005-01-04 20:04:14.000000000 +0100
++++ SDL-1.2.9/src/video/fbcon/SDL_fbevents.c 2007-03-12 20:54:14.000000000 +0100
+@@ -60,7 +60,13 @@
+ #ifndef GPM_NODE_FIFO
+ #define GPM_NODE_FIFO "/dev/gpmdata"
+ #endif
++#define POINTERCAL "/etc/pointercal"
+
++static struct SDL_cal {
++ long ok;
++ long a, b, c, d, e, f, s;
++ long rotate;
++} cal = { 0 };
+
+ /* The translation tables from a console scancode to a SDL keysym */
+ #define NUM_VGAKEYMAPS (1<<KG_CAPSSHIFT)
+@@ -317,6 +323,7 @@
+ MOUSE_MS,
+ MOUSE_BM,
+ MOUSE_ELO,
++ TS_SLC7X0,
+ NUM_MOUSE_DRVS
+ } mouse_drv = MOUSE_NONE;
+
+@@ -500,6 +507,9 @@
+ mousedev = getenv("SDL_MOUSEDEV");
+ mouse_fd = -1;
+
++ const char *sdl_rot_flag;
++ sdl_rot_flag = getenv("SDL_FBROT");
++
+ /* ELO TOUCHSCREEN SUPPORT */
+
+ if( (mousedrv != NULL) && (strcmp(mousedrv, "ELO") == 0) ) {
+@@ -601,9 +611,39 @@
+ mouse_drv = MOUSE_MS;
+ }
+ }
++ /* Default to a SLC7X0 touch screen */
++ if ( mouse_fd < 0 ) {
++ mousedev = "/dev/ts";
++ mouse_fd = open(mousedev, O_RDONLY, 0);
++ if ( mouse_fd >= 0 ) {
++ FILE *pcal;
++ cal.ok = 0;
++ pcal = fopen(POINTERCAL, "r");
++ if(pcal == NULL){
++ fprintf(stderr, "Warning: cannot open " POINTERCAL ".\n");
++ }else{
++ int n;
++ n = fscanf(pcal, "%d %d %d %d %d %d %d",
++ &cal.a, &cal.b, &cal.c, &cal.d, &cal.e, &cal.f, &cal.s);
++ if(n != 7){
++ fprintf(stderr, "Warning: " POINTERCAL " is unknown format.\n");
++ }else{
++ cal.ok = 1;
++ }
++ fclose(pcal);
++ }
++ if ( sdl_rot_flag == NULL ) {
++ cal.rotate = 0;
++ } else {
++ cal.rotate = atoi(sdl_rot_flag);
++ }
++ mouse_drv = TS_SLC7X0;
++ }
++ }
+ if ( mouse_fd < 0 ) {
+ mouse_drv = MOUSE_NONE;
+ }
++
+ return(mouse_fd);
+ }
+
+@@ -678,6 +718,10 @@
+ packetsize = ELO_PACKET_SIZE;
+ relative = 0;
+ break;
++ case TS_SLC7X0:
++ packetsize = 8;
++ relative = 0;
++ break;
+ case NUM_MOUSE_DRVS:
+ /* Uh oh.. */
+ packetsize = 0;
+@@ -810,6 +854,25 @@
+ */
+
+ case MOUSE_ELO:
++ case TS_SLC7X0:
++ /* Get current mouse state */
++ button = ((mousebuf[i+1] << 8)+mousebuf[i])/500;
++ dx = (mousebuf[i+3] << 8)+mousebuf[i+2];
++ dy = (mousebuf[i+5] << 8)+mousebuf[i+4];
++ if(cal.ok){
++ long X, Y;
++ X = (cal.a * dx + cal.b * dy + cal.c) / cal.s;
++ Y = (cal.d * dx + cal.e * dy + cal.f) / cal.s;
++ dx = X;
++ dy = Y;
++ }
++ if(cal.rotate == 3){
++ int tmp;
++ tmp=dx;
++ dx = dy;
++ dy = 480-tmp;
++ }
++ break;
+ case NUM_MOUSE_DRVS:
+ /* Uh oh.. */
+ dx = 0;
+diff -Naur SDL-1.2.9-orig/src/video/fbcon/SDL_fbvideo.c SDL-1.2.9/src/video/fbcon/SDL_fbvideo.c
+--- SDL-1.2.9-orig/src/video/fbcon/SDL_fbvideo.c 2005-02-12 19:03:54.000000000 +0100
++++ SDL-1.2.9/src/video/fbcon/SDL_fbvideo.c 2007-03-12 20:54:14.000000000 +0100
+@@ -51,7 +51,7 @@
+ #include "SDL_fbmatrox.h"
+ #include "SDL_fbriva.h"
+
+-
++/* #define FBCON_DEBUG 1 */
+ #if defined(i386) && defined(FB_TYPE_VGA_PLANES)
+ #define VGA16_FBCON_SUPPORT
+ #ifndef FB_AUX_VGA_PLANES_VGA4
+@@ -76,9 +76,11 @@
+ { 0, 0, 720, 576 }, /* PAL */
+ { 0, 0, 720, 480 }, /* NTSC */
+ { 0, 0, 640, 480 }, /* 16 bpp: 0x111, or 273 */
++ { 0, 0, 480, 640 },
+ { 0, 0, 640, 400 }, /* 8 bpp: 0x100, or 256 */
+ { 0, 0, 512, 384 },
+ { 0, 0, 320, 240 },
++ { 0, 0, 240, 320 },
+ { 0, 0, 320, 200 }
+ };
+ static const struct {
+@@ -112,9 +114,11 @@
+ */
+ { 320, 200, 79440, 16, 16, 20, 4, 48, 1, 0, 2 }, /* 70 Hz */
+ { 320, 240, 63492, 16, 16, 16, 4, 48, 2, 0, 2 }, /* 72 Hz */
++ { 240, 320, 63492, 16, 16, 16, 4, 48, 3, 0, 2 }, /* 72 Hz */
+ { 512, 384, 49603, 48, 16, 16, 1, 64, 3, 0, 0 }, /* 78 Hz */
+ { 640, 400, 31746, 96, 32, 41, 1, 64, 3, 2, 0 }, /* 85 Hz */
+ { 640, 480, 31746, 120, 16, 16, 1, 64, 3, 0, 0 }, /* 75 Hz */
++ { 480, 640, 31746, 120, 16, 16, 1, 64, 4, 0, 0 }, /* 75 Hz */
+ { 768, 576, 26101, 144, 16, 28, 6, 112, 4, 0, 0 }, /* 60 Hz */
+ { 800, 600, 20000, 64, 56, 23, 37, 120, 6, 3, 0 }, /* 72 Hz */
+ { 960, 720, 17686, 144, 24, 28, 8, 112, 4, 0, 0 }, /* 60 Hz */
+@@ -152,6 +156,10 @@
+ struct fb_var_screeninfo *vinfo);
+ static void FB_RestorePalette(_THIS);
+
++static char *console_fd_buf;
++static char *mapped_mem_fb;
++static int rotation_flag;
++
+ /* FB driver bootstrap functions */
+
+ static int FB_Available(void)
+@@ -241,18 +249,30 @@
+
+ mode_okay = 0;
+ vinfo->bits_per_pixel = (index+1)*8;
+- vinfo->xres = *w;
+- vinfo->xres_virtual = *w;
+- vinfo->yres = *h;
+- vinfo->yres_virtual = *h;
++ if ((rotation_flag == 0) || (rotation_flag == 2)) {
++ vinfo->xres = *w;
++ vinfo->xres_virtual = *w;
++ vinfo->yres = *h;
++ vinfo->yres_virtual = *h;
++ } else {
++ vinfo->xres = *h;
++ vinfo->xres_virtual = *h;
++ vinfo->yres = *w;
++ vinfo->yres_virtual = *w;
++ }
+ vinfo->activate = FB_ACTIVATE_TEST;
+ if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, vinfo) == 0 ) {
+ #ifdef FBCON_DEBUG
+ fprintf(stderr, "Checked mode %dx%d at %d bpp, got mode %dx%d at %d bpp\n", *w, *h, (index+1)*8, vinfo->xres, vinfo->yres, vinfo->bits_per_pixel);
+ #endif
+ if ( (((vinfo->bits_per_pixel+7)/8)-1) == index ) {
+- *w = vinfo->xres;
+- *h = vinfo->yres;
++ if ((rotation_flag == 0) || (rotation_flag == 2)) {
++ *w = vinfo->xres;
++ *h = vinfo->yres;
++ } else {
++ *h = vinfo->xres;
++ *w = vinfo->yres;
++ }
+ mode_okay = 1;
+ }
+ }
+@@ -332,6 +352,7 @@
+ unsigned int current_w;
+ unsigned int current_h;
+ const char *SDL_fbdev;
++ const char *SDL_rot_flag;
+
+ /* Initialize the library */
+ SDL_fbdev = getenv("SDL_FBDEV");
+@@ -344,6 +365,14 @@
+ return(-1);
+ }
+
++ SDL_rot_flag = getenv("SDL_FBROT");
++ if ( SDL_rot_flag == NULL ) {
++ rotation_flag = 0;
++ } else {
++ rotation_flag = atoi(SDL_rot_flag);
++ }
++
++
+ #ifndef DISABLE_THREADS
+ /* Create the hardware surface lock mutex */
+ hw_lock = SDL_CreateMutex();
+@@ -407,13 +436,33 @@
+ mapped_offset = (((long)finfo.smem_start) -
+ (((long)finfo.smem_start)&~(PAGE_SIZE-1)));
+ mapped_memlen = finfo.smem_len+mapped_offset;
+- mapped_mem = mmap(NULL, mapped_memlen,
+- PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
+- if ( mapped_mem == (char *)-1 ) {
+- SDL_SetError("Unable to memory map the video hardware");
+- mapped_mem = NULL;
+- FB_VideoQuit(this);
+- return(-1);
++ if (rotation_flag == 0) {
++ mapped_mem = mmap(NULL, mapped_memlen,
++ PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
++ if ( mapped_mem == (char *)-1 ) {
++ SDL_SetError("Unable to memory map the video hardware");
++ mapped_mem = NULL;
++ FB_VideoQuit(this);
++ return(-1);
++ }
++ } else {
++
++ console_fd_buf = (char *)malloc(640*480*2);
++
++ if (console_fd_buf == NULL){
++ SDL_SetError("Unable to memory for buffer");
++ return(-1);
++ }
++
++ mapped_mem_fb = mmap(NULL, mapped_memlen,
++ PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
++ if ( mapped_mem_fb == (char *)-1 ) {
++ SDL_SetError("Unable to memory map the video hardware");
++ mapped_mem_fb = NULL;
++ FB_VideoQuit(this);
++ return(-1);
++ }
++ mapped_mem = console_fd_buf;
+ }
+
+ /* Determine the current screen depth */
+@@ -555,6 +604,7 @@
+
+ /* Various screen update functions available */
+ static void FB_DirectUpdate(_THIS, int numrects, SDL_Rect *rects);
++static void FB_RotationUpdate(_THIS, int numrects, SDL_Rect *rects);
+ #ifdef VGA16_FBCON_SUPPORT
+ static void FB_VGA16Update(_THIS, int numrects, SDL_Rect *rects);
+ #endif
+@@ -725,7 +775,7 @@
+ Uint32 Bmask;
+ char *surfaces_mem;
+ int surfaces_len;
+-
++
+ /* Set the terminal into graphics mode */
+ if ( FB_EnterGraphicsMode(this) < 0 ) {
+ return(NULL);
+@@ -734,6 +784,8 @@
+ /* Restore the original palette */
+ FB_RestorePalette(this);
+
++ flags &= ~SDL_DOUBLEBUF;
++
+ /* Set the video mode and get the final screen format */
+ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
+ SDL_SetError("Couldn't get console screen info");
+@@ -748,13 +800,24 @@
+ vinfo.activate = FB_ACTIVATE_NOW;
+ vinfo.accel_flags = 0;
+ vinfo.bits_per_pixel = bpp;
+- vinfo.xres = width;
+- vinfo.xres_virtual = width;
+- vinfo.yres = height;
+- if ( flags & SDL_DOUBLEBUF ) {
+- vinfo.yres_virtual = height*2;
++ if ((rotation_flag == 0) || (rotation_flag == 2)) {
++ vinfo.xres = width;
++ vinfo.xres_virtual = width;
++ vinfo.yres = height;
++ if ( flags & SDL_DOUBLEBUF ) {
++ vinfo.yres_virtual = height*2;
++ } else {
++ vinfo.yres_virtual = height;
++ }
+ } else {
+- vinfo.yres_virtual = height;
++ vinfo.xres = height;
++ vinfo.xres_virtual = height;
++ vinfo.yres = width;
++ if ( flags & SDL_DOUBLEBUF ) {
++ vinfo.yres_virtual = width*2;
++ } else {
++ vinfo.yres_virtual = width;
++ }
+ }
+ vinfo.xoffset = 0;
+ vinfo.yoffset = 0;
+@@ -776,6 +839,15 @@
+ return(NULL);
+ }
+ }
++ vinfo.xres = width;
++ vinfo.xres_virtual = width;
++ vinfo.yres = height;
++ if ( flags & SDL_DOUBLEBUF ) {
++ vinfo.yres_virtual = height*2;
++ } else {
++ vinfo.yres_virtual = height;
++ }
++
+ } else {
+ int maxheight;
+
+@@ -821,7 +893,9 @@
+ SDL_SetError("Couldn't get console hardware info");
+ return(NULL);
+ }
+-
++#ifdef FBCON_DEBUG
++ print_finfo(&finfo);
++#endif
+ /* Save hardware palette, if needed */
+ FB_SavePalette(this, &finfo, &vinfo);
+
+@@ -829,7 +903,11 @@
+ current->flags = (SDL_FULLSCREEN|SDL_HWSURFACE);
+ current->w = vinfo.xres;
+ current->h = vinfo.yres;
+- current->pitch = finfo.line_length;
++ if ((rotation_flag == 0) || (rotation_flag == 2) ) {
++ current->pitch = finfo.line_length;
++ } else {
++ current->pitch = vinfo.xres*2;
++ }
+ current->pixels = mapped_mem+mapped_offset;
+
+ /* Set up the information for hardware surfaces */
+@@ -863,7 +941,7 @@
+ }
+
+ /* Set the update rectangle function */
+- this->UpdateRects = FB_DirectUpdate;
++ this->UpdateRects = FB_RotationUpdate;
+
+ /* We're done */
+ return(current);
+@@ -1123,6 +1201,89 @@
+ return;
+ }
+
++static void FB_RotationUpdate(_THIS, int numrects, SDL_Rect *rects)
++{
++ unsigned short *pDst;
++ unsigned short *pSrc;
++ unsigned int width;
++ unsigned int height;
++ unsigned int srcYAdd;
++ unsigned int dstXAdd;
++ unsigned int dstYSub;
++ unsigned int i;
++ unsigned int dstH;
++ unsigned int dstW;
++
++#ifdef FBCON_DEBUG
++ fprintf(stderr,"rotation_flag = %d \n",rotation_flag);
++#endif
++ switch (rotation_flag) {
++ case 0:
++ break;
++ case 1:
++ memcpy(mapped_mem_fb,mapped_mem,640*480*2);
++ break;
++ case 2:
++ memcpy(mapped_mem_fb,mapped_mem,640*480*2);
++ break;
++ case 3:
++ dstW=cache_vinfo.xres;
++ dstH=cache_vinfo.yres;
++#ifdef FBCON_DEBUG
++ fprintf(stderr,"dstH = %d : dstW = %d : rects->x = %d : rects->y = %d\n",dstH,dstW);
++ fprintf(stderr,"rects->x = %d : rects->y = %d : rects->w = %d : rects->h = %d\n",rects->x,rects->y,rects->w,rects->h);
++#endif
++ while (numrects) {
++ if (rects->w != dstW || rects->h != dstH) {
++ pSrc = mapped_mem + (rects->x + rects->y * dstW)*2;
++ pDst = mapped_mem_fb + (dstH-1+rects->x * dstH - rects->y)*2;
++
++ width = rects->w;
++ height = rects->h;
++
++ srcYAdd = dstW - rects->w;
++ dstXAdd = dstH;
++ dstYSub = (dstH * rects->w) + 1;
++
++ while (height--) {
++ i = width;
++ while (i--) {
++ *pDst = *pSrc ++;
++ pDst += dstXAdd;
++ }
++ pSrc += srcYAdd;
++ pDst -= dstYSub;
++ }
++
++ } else {
++ pDst=mapped_mem_fb+dstH*2-2;
++ pSrc=mapped_mem;
++ height=dstH;
++ width=dstW;
++ dstXAdd=height;
++ dstYSub=dstW*dstH+1;
++
++ while (height--) {
++ i = width;
++ while (i--) {
++ *pDst = *pSrc ++;
++ pDst += dstXAdd;
++ }
++ pDst -= dstYSub;
++ }
++ }
++ numrects--;
++ rects++;
++ }
++ break;
++ default:
++ break;
++ }
++
++
++
++}
++
+ #ifdef VGA16_FBCON_SUPPORT
+ /* Code adapted with thanks from the XFree86 VGA16 driver! :) */
+ #define writeGr(index, value) \
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc SDL-1.2.9/src/video/qtopia/SDL_QWin.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:54:14.000000000 +0100
+@@ -1,3 +1,4 @@
++
+ /*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2004 Sam Lantinga
+@@ -27,15 +28,24 @@
+
+ #include "SDL_QWin.h"
+ #include <qapplication.h>
++#include <qpe/qpeapplication.h>
+ #include <qdirectpainter_qws.h>
+
++extern int fb_hwrot;
++extern int fb_direct;
++extern bool is_VGA_machine;
++static int mouse_button_mode=1;
++
+ screenRotationT screenRotation = SDL_QT_NO_ROTATION;
+
+ SDL_QWin::SDL_QWin(const QSize& size)
+ : QWidget(0, "SDL_main"), my_painter(0), my_image(0),
+ my_inhibit_resize(false), my_mouse_pos(-1,-1), my_flags(0),
+- my_has_fullscreen(false), my_locked(0)
++ my_has_fullscreen(false), my_locked(0),
++ rotation_(0), qteRotation_(0), keyRotation_(0), qteKeyRotation_(0),
++ isSLA300InputFix_(0)
+ {
++ for (int i = 0; i < 5; i++) curAxis_[i] = 0;
+ setBackgroundMode(NoBackground);
+ }
+
+@@ -84,6 +94,7 @@
+ }
+
+ void SDL_QWin::setMousePos(const QPoint &pos) {
++#if 0
+ if(my_image->width() == height()) {
+ if (screenRotation == SDL_QT_ROTATION_90)
+ my_mouse_pos = QPoint(height()-pos.y(), pos.x());
+@@ -92,6 +103,66 @@
+ } else {
+ my_mouse_pos = pos;
+ }
++#else
++ QPoint realPos;
++
++ if (is_VGA_machine) {
++ realPos = pos;
++ my_mouse_pos = realPos;
++ }else {
++ switch (qteRotation_) {
++ case 0:
++ realPos = pos;
++ break;
++ case 1:
++ realPos.setX(pos.y());
++ realPos.setY(fbSize_.height() - 1 - pos.x());
++ break;
++ case 2:
++ realPos.setX(fbSize_.width() - 1 - pos.x());
++ realPos.setY(fbSize_.height() - 1 - pos.y());
++ break;
++ case 3:
++ realPos.setX(fbSize_.width() - 1 - pos.y());
++ realPos.setY(pos.x());
++ break;
++ };
++
++ // fprintf(stderr, "setMousePos: realPos(%d, %d)\n", realPos.x(), realPos.y());
++
++ int borderWidth = (fbSize_.width() - my_image->width()) >> 1;
++ int borderHeight = (fbSize_.height() - my_image->height()) >> 1;
++ if ( rotation_ & 1 ){
++ borderWidth = (fbSize_.height() - my_image->width()) >> 1;
++ borderHeight = (fbSize_.width() - my_image->height()) >> 1;
++ }
++ realPos.setX(realPos.x() - borderWidth);
++ realPos.setY(realPos.y() - borderHeight);
++
++ fprintf(stderr, "setMousePos: realPos2(%d, %d)\n", realPos.x(), realPos.y());
++
++ switch (rotation_) {
++ case 0:
++ my_mouse_pos = realPos;
++ break;
++ case 1:
++ my_mouse_pos.setX(realPos.y());
++ my_mouse_pos.setY(my_image->height() - 1 - realPos.x());
++ break;
++ case 2:
++ my_mouse_pos.setX(my_image->width() - 1 - realPos.x());
++ my_mouse_pos.setY(my_image->height() - 1 - realPos.y());
++ break;
++ case 3:
++ my_mouse_pos.setX(realPos.y());//my_image->width() - 1 - realPos.y());
++ my_mouse_pos.setY(my_image->height() - realPos.x());
++ break;
++ }
++ }
++
++// fprintf(stderr, "setMousePos: mymousePos(%d, %d)\n", (short)my_mouse_pos.x(), (short)my_mouse_pos.y());
++
++#endif
+ }
+
+ void SDL_QWin::mouseMoveEvent(QMouseEvent *e) {
+@@ -113,269 +184,318 @@
+ void SDL_QWin::mousePressEvent(QMouseEvent *e) {
+ mouseMoveEvent(e);
+ Qt::ButtonState button = e->button();
+- SDL_PrivateMouseButton(SDL_PRESSED,
+- (button & Qt::LeftButton) ? 1 :
+- ((button & Qt::RightButton) ? 2 : 3),
++ SDL_PrivateMouseButton(SDL_PRESSED,mouse_button_mode,
+ my_mouse_pos.x(), my_mouse_pos.y());
+ }
+
+ void SDL_QWin::mouseReleaseEvent(QMouseEvent *e) {
+ setMousePos(e->pos());
+ Qt::ButtonState button = e->button();
+- SDL_PrivateMouseButton(SDL_RELEASED,
+- (button & Qt::LeftButton) ? 1 :
+- ((button & Qt::RightButton) ? 2 : 3),
++ SDL_PrivateMouseButton(SDL_RELEASED,mouse_button_mode,
+ my_mouse_pos.x(), my_mouse_pos.y());
+ my_mouse_pos = QPoint(-1, -1);
+ }
+
+-static inline void
+-gs_fastRotateBlit_3 ( unsigned short *fb,
+- unsigned short *bits,
+- const QRect& rect )
++#ifndef __i386__
++
++static void
++blitRotate3(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect);
++
++static void
++blitRotate0(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect)
+ {
+- // FIXME: this only works correctly for 240x320 displays
+- int startx, starty;
+- int width, height;
+-
+- startx = rect.left() >> 1;
+- starty = rect.top() >> 1;
+- width = ((rect.right() - rect.left()) >> 1) + 2;
+- height = ((rect.bottom() - rect.top()) >> 1) + 2;
+-
+- if((startx+width) > 120) {
+- width = 120 - startx; // avoid horizontal overflow
+- }
+- if((starty+height) > 160) {
+- height = 160 - starty; // avoid vertical overflow
+- }
+-
+- ulong *sp1, *sp2, *dp1, *dp2;
+- ulong stop, sbot, dtop, dbot;
+-
+- sp1 = (ulong*)bits + startx + starty*240;
+- sp2 = sp1 + 120;
+- dp1 = (ulong *)fb + (159 - starty) + startx*320;
+- dp2 = dp1 + 160;
+- int rowadd = (-320*width) - 1;
+- int rowadd2 = 240 - width;
+- // transfer in cells of 2x2 pixels in words
+- for (int y=0; y<height; y++) {
+- for (int x=0; x<width; x++) {
+- // read source pixels
+- stop = *sp1;
+- sbot = *sp2;
+- // rotate pixels
+- dtop = (sbot & 0xffff) + ((stop & 0xffff)<<16);
+- dbot = ((sbot & 0xffff0000)>>16) + (stop & 0xffff0000);
+- // write to framebuffer
+- *dp1 = dtop;
+- *dp2 = dbot;
+- // update source ptrs
+- sp1++; sp2++;
+- // update dest ptrs - 2 pix at a time
+- dp1 += 320;
+- dp2 += 320;
+- }
+- // adjust src ptrs - skip a row as we work in pairs
+- sp1 += rowadd2;
+- sp2 += rowadd2;
+- // adjust dest ptrs for rotation
+- dp1 += rowadd;
+- dp2 += rowadd;
++ srcBits += srcBlitRect.left() + srcBlitRect.top() * srcSize.width();
++ dstBits += ((dstSize.width() - srcSize.width()) >> 1)
++ + (((dstSize.height() - srcSize.height()) >> 1) * dstSize.width());
++ dstBits += srcBlitRect.left() + srcBlitRect.top() * dstSize.width();
++ int w = srcBlitRect.width() << 1;
++ int h = srcBlitRect.height();
++
++ while (h--) {
++ memcpy(dstBits, srcBits, w);
++ dstBits += dstSize.width();
++ srcBits += srcSize.width();
+ }
+ }
+
+-static inline void
+-gs_fastRotateBlit_1 ( unsigned short *fb,
+- unsigned short *bits,
+- const QRect& rect ) {
+- // FIXME: this only works correctly for 240x320 displays
+- int startx, starty;
+- int width, height;
+-
+- startx = rect.left() >> 1;
+- starty = rect.top() >> 1;
+- width = ((rect.right() - rect.left()) >> 1) + 2;
+- height = ((rect.bottom() - rect.top()) >> 1) + 2;
+-
+- if((startx+width) > 120) {
+- width = 120 - startx; // avoid horizontal overflow
+- }
+- if((starty+height) > 160) {
+- height = 160 - starty; // avoid vertical overflow
+- }
+-
+- ulong *sp1, *sp2, *dp1, *dp2;
+- ulong stop, sbot, dtop, dbot;
+- fb += 320*239; // Move "fb" to top left corner
+- sp1 = (ulong*)bits + startx + starty*240;
+- sp2 = sp1 + 120;
+- dp1 = (ulong*)fb - startx * 320 - starty;
+- dp2 = dp1 - 160;
+- int rowadd = (320*width) + 1;
+- int rowadd2 = 240 - width;
+- // transfer in cells of 2x2 pixels in words
+- for (int y=0; y<height; y++) {
+- for (int x=0; x<width; x++) {
+- // read
+- stop = *sp1;
+- sbot = *sp2;
+- // rotate
+- dtop = (stop & 0xffff) + ((sbot & 0xffff)<<16);
+- dbot = ((stop & 0xffff0000)>>16) + (sbot & 0xffff0000);
+- // write
+- *dp1 = dtop;
+- *dp2 = dbot;
+- // update source ptrs
+- sp1++; sp2++;
+- // update dest ptrs - 2 pix at a time
+- dp1 -= 320;
+- dp2 -= 320;
+- }
+- // adjust src ptrs - skip a row as we work in pairs
+- sp1 += rowadd2;
+- sp2 += rowadd2;
+- // adjust dest ptrs for rotation
+- dp1 += rowadd;
+- dp2 += rowadd;
+- }
++static void
++blitRotate1(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect)
++{
++// fprintf(stdout, "SDL_QT_ROTATION (1) is not implemented.\n");
++ blitRotate3(dstBits, dstSize, srcBits, srcSize, srcBlitRect);
+ }
+
+-// desktop, SL-A300 etc
+-bool SDL_QWin::repaintRotation0(const QRect& rect) {
+- if(my_image->width() == width()) {
+- uchar *fb = (uchar*)my_painter->frameBuffer();
+- uchar *buf = (uchar*)my_image->bits();
+- if(rect == my_image->rect()) {
+- memcpy(fb, buf, width()*height()*2);
+- } else {
+- int h = rect.height();
+- int wd = rect.width()<<1;
+- int fblineadd = my_painter->lineStep();
+- int buflineadd = my_image->bytesPerLine();
+- fb += (rect.left()<<1) + rect.top() * my_painter->lineStep();
+- buf += (rect.left()<<1) + rect.top() * my_image->bytesPerLine();
+- while(h--) {
+- memcpy(fb, buf, wd);
+- fb += fblineadd;
+- buf += buflineadd;
+- }
++static void
++blitRotate2(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ QRect srcBlitRect)
++{
++// if (srcBlitRect.left() & 1)
++// srcBlitRect.setLeft(srcBlitRect.left() - 1);
++// if (srcBlitRect.right() & 1)
++// srcBlitRect.setRight(srcBlitRect.right() - 1);
++
++ int dstBorderLeftRight = (dstSize.width() - srcSize.width()) >>1;
++ int dstBorderTopBottom = (dstSize.height() - srcSize.height()) >>1;
++ int dstStartOffsetX = dstSize.width() - dstBorderLeftRight - 2;
++ int dstStartOffsetY = dstSize.height() - dstBorderTopBottom - 1;
++ int left = srcBlitRect.left() & ~(int)1; // to be 32bit aligned
++ srcBits += left + srcBlitRect.top() * srcSize.width();
++ dstBits += dstStartOffsetY * dstSize.width() + dstStartOffsetX;
++ dstBits -= left;
++ dstBits -= srcBlitRect.top() * dstSize.width();
++
++ Uint32 *pSrc = (Uint32 *)srcBits;
++ Uint32 *pDst = (Uint32 *)dstBits;
++
++ int width = srcBlitRect.width(), width2 = srcBlitRect.width(), w;
++ if ( srcBlitRect.left() & 1 ){
++ width--; width2++;
++ }
++ if ( (srcBlitRect.left()+srcBlitRect.width()) & 1 ){
++ width--; width2++;
++ }
++ width >>= 1;
++ int height = srcBlitRect.height();
++ int srcYAdd = srcSize.width() - width2;
++ int dstYSub = dstSize.width() - width2;
++
++ while (height--) {
++ w = width;
++ if (srcBlitRect.left() & 1){
++ *((Uint16 *)pDst) = *(((Uint16 *)pSrc) + 1);
++ pDst--; pSrc++;
+ }
+- } else {
+- return false; // FIXME: Landscape
++ while (w--) {
++ *pDst-- = (*pSrc << 16) | (*pSrc >> 16);
++ ++pSrc;
++ }
++ if ((srcBlitRect.left()+srcBlitRect.width()) & 1){
++ *(((Uint16 *)pDst) + 1) = *((Uint16 *)pSrc);
++ pDst--; pSrc++;
++ }
++ pSrc += srcYAdd;
++ pDst -= dstYSub;
+ }
+-#ifdef __i386__
+- my_painter->fillRect( rect, QBrush( Qt::NoBrush ) );
+-#endif
+- return true;
+ }
+
+-
+-// Sharp Zaurus SL-5500 etc
+-bool SDL_QWin::repaintRotation3(const QRect& rect) {
+- if(my_image->width() == width()) {
+- ushort *fb = (ushort*)my_painter->frameBuffer();
+- ushort *buf = (ushort*)my_image->bits();
+- gs_fastRotateBlit_3(fb, buf, rect);
++#define BLIT_ROTATE_3_MOV32
++
++static void
++blitRotate3(Uint16 *dstBits, const QSize& dstSize,
++ const Uint16 *srcBits, const QSize& srcSize,
++ const QRect& srcBlitRect)
++{
++ if (srcBlitRect.width() != dstSize.height() ||
++ srcBlitRect.height() != dstSize.width()) {
++ // partial update
++ const Uint16 *pSrc = srcBits +
++ (srcBlitRect.left() + srcBlitRect.top() * srcSize.width());
++
++ int dstBorderLeftRight = (dstSize.width() - srcSize.height()) >>1;
++ int dstBorderTopBottom = (dstSize.height() - srcSize.width()) >>1;
++ int dstStartOffsetX = dstSize.width() - dstBorderLeftRight - 1;
++ int dstStartOffsetY = dstBorderTopBottom;
++ Uint16 *pDst = dstBits +
++ (dstStartOffsetY * dstSize.width() + dstStartOffsetX);
++ pDst += srcBlitRect.left() * dstSize.width();
++ pDst -= srcBlitRect.top();
++
++ int width = srcBlitRect.width(), height = srcBlitRect.height(), w;
++ int srcYAdd = srcSize.width() - srcBlitRect.width();
++ int dstXAdd = dstSize.width();
++ int dstYSub = (dstSize.width() * srcBlitRect.width()) + 1;
++
++#if 0
++ fprintf(stderr, "---- Blit begin\n");
++ fprintf(stderr, "srcSize.width: %d srcSize.height:%d\n",
++ srcSize.width(), srcSize.height());
++ fprintf(stderr, "srcBlitRect.left:%d srcBlitRect.right:%d srcBlitRect.top:%d srcBlitRect.bottom:%d srcBlitRect.width:%d srcBlitRect.height:%d\n",
++ srcBlitRect.left(), srcBlitRect.right(), srcBlitRect.top(), srcBlitRect.bottom(), srcBlitRect.width(), srcBlitRect.height());
++
++ fprintf(stderr, "dstSize.width: %d dstSize.height:%d\n",
++ dstSize.width(), dstSize.height());
++ fprintf(stderr, "dstBorderLeftRight:%d dstBorderTopBottom:%d dstStartOffsetX:%d dstStartOffsetY:%d\n",
++ dstBorderLeftRight, dstBorderTopBottom, dstStartOffsetX, dstStartOffsetY);
++ fprintf(stderr, "srcYAdd:%d dstXAdd:%d dstYSub:%d\n", srcYAdd, dstXAdd, dstYSub);
++#endif
++
++ while (height--) {
++ w = width;
++ while (w--) {
++ *pDst = *pSrc ++;
++ pDst += dstXAdd;
++ }
++ pSrc += srcYAdd;
++ pDst -= dstYSub;
++ }
++ // fprintf(stderr, "---- Blit end\n");
+ } else {
+- // landscape mode
+- if (screenRotation == SDL_QT_ROTATION_90) {
+- uchar *fb = (uchar*)my_painter->frameBuffer();
+- uchar *buf = (uchar*)my_image->bits();
+- if(rect == my_image->rect()) {
+- memcpy(fb, buf, width()*height()*2);
+- } else {
+- int h = rect.height();
+- int wd = rect.width()<<1;
+- int fblineadd = my_painter->lineStep();
+- int buflineadd = my_image->bytesPerLine();
+- fb += (rect.left()<<1) + rect.top() * my_painter->lineStep();
+- buf += (rect.left()<<1) + rect.top() * my_image->bytesPerLine();
+- while(h--) {
+- memcpy(fb, buf, wd);
+- fb += fblineadd;
+- buf += buflineadd;
+- }
++ // full update
++#if !defined(BLIT_ROTATE_3_MOV32)
++ const Uint16 *src = srcBits;
++ Uint16 *dst = dstBits + (dstSize.width() - 1);
++ int w = srcBlitRect.width();
++ int h = srcBlitRect.height();
++ int i, dstSub = dstSize.width() * w + 1;
++ int dstAdd = dstSize.width();
++
++ while (h--) {
++ i = w;
++ while (i--) {
++ *dst = *src ++;
++ dst += dstAdd;
+ }
+- } else if (screenRotation == SDL_QT_ROTATION_270) {
+- int h = rect.height();
+- int wd = rect.width();
+- int fblineadd = my_painter->lineStep() - (rect.width() << 1);
+- int buflineadd = my_image->bytesPerLine() - (rect.width() << 1);
+- int w;
+-
+- uchar *fb = (uchar*)my_painter->frameBuffer();
+- uchar *buf = (uchar*)my_image->bits();
+-
+- fb += ((my_painter->width() - (rect.top() + rect.height())) *
+- my_painter->lineStep()) + ((my_painter->height() - ((rect.left() +
+- rect.width()))) << 1);
+-
+- buf += my_image->bytesPerLine() * (rect.top() + rect.height()) -
+- (((my_image->width() - (rect.left() + rect.width())) << 1) + 2);
+-
+- while(h--) {
+- w = wd;
+- while(w--) *((unsigned short*)fb)++ = *((unsigned short*)buf)--;
+- fb += fblineadd;
+- buf -= buflineadd;
++ dst -= dstSub;
++ }
++#else // BLIT_ROTATE_3_MOV32
++ Uint32 *src1 = (Uint32 *)(srcBits);
++ Uint32 *src2 = (Uint32 *)(srcBits + srcSize.width());
++ Uint32 *dst1 = (Uint32 *)(dstBits + (dstSize.width() - 2));
++ Uint32 *dst2 = (Uint32 *)(dstBits + (dstSize.width() + dstSize.width() - 2));
++ int w = srcBlitRect.width() >> 3;
++ int h = srcBlitRect.height() >> 1;
++ int i, dstSub = ((dstSize.width() * srcBlitRect.width()) >> 1) + 1;
++ int dstAdd = dstSize.width();
++
++ Uint32 a, b;
++ while (h--) {
++ i = w;
++ while (i--) {
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
++
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
++
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
++
++ a = *src1 ++;
++ b = *src2 ++;
++ *dst1 = (a << 16) | (b & 0xFFFF);
++ *dst2 = (a & 0xFFFF0000) | (b >> 16);
++ dst1 += dstAdd;
++ dst2 += dstAdd;
+ }
++ src1 += srcSize.width() >> 1;
++ src2 += srcSize.width() >> 1;
++ dst1 -= dstSub;
++ dst2 -= dstSub;
+ }
++#endif // BLIT_ROTATE_3_MOV32
+ }
+- return true;
+ }
+
+-// ipaq 3800...
+-bool SDL_QWin::repaintRotation1(const QRect& rect) {
+- if(my_image->width() == width()) {
+- ushort *fb = (ushort*)my_painter->frameBuffer();
+- ushort *buf = (ushort*)my_image->bits();
+- gs_fastRotateBlit_1(fb, buf, rect);
+- } else {
+- return false; // FIXME: landscape mode
+- }
+- return true;
+-}
++#endif // __i386__
+
+ void SDL_QWin::repaintRect(const QRect& rect) {
+ if(!my_painter || !rect.width() || !rect.height()) {
+ return;
+ }
+-
+- if(QPixmap::defaultDepth() == 16) {
+- switch(my_painter->transformOrientation()) {
+- case 3:
+- if(repaintRotation3(rect)) { return; }
++#ifndef __i386__
++ if (QPixmap::defaultDepth() == 16 && my_painter->numRects() >= 0) {
++ Uint16 *fb = (Uint16*)my_painter->frameBuffer();
++ Uint16 *buf = (Uint16*)my_image->bits();
++ switch (rotation_) {
++ case 0:
++ blitRotate0(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
+ break;
+ case 1:
+- if(repaintRotation1(rect)) { return; }
++ blitRotate1(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
+ break;
+- case 0:
+- if(repaintRotation0(rect)) { return; }
++ case 2:
++ blitRotate2(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
++ break;
++ case 3:
++ blitRotate3(fb, fbSize_,
++ buf, QSize(my_image->width(), my_image->height()),
++ rect);
+ break;
+ }
+- }
+- my_painter->drawImage(rect.topLeft(), *my_image, rect);
++ } else {
++#endif // __i386__
++ QDirectPainter pp(this);
++ pp.drawImage(rect.topLeft(), *my_image, rect);
++// pp.end();
++#ifndef __i386__
++ }
++#endif // __i386__
+ }
+
+ // This paints the current buffer to the screen, when desired.
+ void SDL_QWin::paintEvent(QPaintEvent *ev) {
+- if(my_image) {
++ if(my_image && isVisible() && isActiveWindow()) {
++ // TODO: better handling
+ lockScreen(true);
+ repaintRect(ev->rect());
+ unlockScreen();
+ }
+ }
+
++int SDL_QWin::ApplyKeyRotation(int key)
++{
++ int c;
++ int sdlScancode[] = { SDLK_LEFT, SDLK_DOWN, SDLK_RIGHT, SDLK_UP };
++
++ switch (key) {
++ case Qt::Key_Left:
++ c = 0;
++ break;
++ case Qt::Key_Down:
++ c = 1;
++ break;
++ case Qt::Key_Right:
++ c = 2;
++ break;
++ case Qt::Key_Up:
++ c = 3;
++ break;
++ default:
++ return 0;
++ }
++
++// c = (c + qteKeyRotation_) & 3;
++// return sdlScancode[(c - keyRotation_) & 3];
++ return sdlScancode[(c + qteKeyRotation_ - keyRotation_) & 3];
++}
++
+ /* Function to translate a keyboard transition and queue the key event
+ * This should probably be a table although this method isn't exactly
+ * slow.
+ */
+ void SDL_QWin::QueueKey(QKeyEvent *e, int pressed)
+-{
++{
++ if (e->isAutoRepeat())
++ return;
++
+ SDL_keysym keysym;
+ int scancode = e->key();
++
+ /* Set the keysym information */
+ if(scancode >= 'A' && scancode <= 'Z') {
+ // Qt sends uppercase, SDL wants lowercase
+@@ -396,26 +516,12 @@
+ case Qt::Key_Home: scancode = SDLK_HOME; break;
+ case Qt::Key_End: scancode = SDLK_END; break;
+ // We want the control keys to rotate with the screen
+- case Qt::Key_Left:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_UP;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_DOWN;
+- else scancode = SDLK_LEFT;
+- break;
+- case Qt::Key_Up:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_RIGHT;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_LEFT;
+- else scancode = SDLK_UP;
+- break;
+- case Qt::Key_Right:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_DOWN;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_UP;
+- else scancode = SDLK_RIGHT;
+- break;
++ case Qt::Key_Left:
++ case Qt::Key_Up:
++ case Qt::Key_Right:
+ case Qt::Key_Down:
+- if (screenRotation == SDL_QT_ROTATION_90) scancode = SDLK_LEFT;
+- else if (screenRotation == SDL_QT_ROTATION_270) scancode = SDLK_RIGHT;
+- else scancode = SDLK_DOWN;
+- break;
++ scancode = ApplyKeyRotation(scancode);
++ break;
+ case Qt::Key_Prior: scancode = SDLK_PAGEUP; break;
+ case Qt::Key_Next: scancode = SDLK_PAGEDOWN; break;
+ case Qt::Key_Shift: scancode = SDLK_LSHIFT; break;
+@@ -434,9 +540,18 @@
+ case Qt::Key_F7: scancode = SDLK_F7; break;
+ case Qt::Key_F8: scancode = SDLK_F8; break;
+ case Qt::Key_F9: scancode = SDLK_F9; break;
+- case Qt::Key_F10: scancode = SDLK_F10; break;
+- case Qt::Key_F11: scancode = SDLK_F11; break;
+- case Qt::Key_F12: scancode = SDLK_F12; break;
++ case Qt::Key_F10:
++ scancode = SDLK_F10;
++ mouse_button_mode=1;
++ break;
++ case Qt::Key_F11:
++ scancode = SDLK_F11;
++ mouse_button_mode=3;
++ break;
++ case Qt::Key_F12:
++ scancode = SDLK_F12;
++ mouse_button_mode=2;
++ break;
+ case Qt::Key_F13: scancode = SDLK_F13; break;
+ case Qt::Key_F14: scancode = SDLK_F14; break;
+ case Qt::Key_F15: scancode = SDLK_F15; break;
+@@ -452,13 +567,14 @@
+ // david@hedbor.org
+ scancode = SDLK_RETURN;
+ break;
++
+ default:
+ scancode = SDLK_UNKNOWN;
+ break;
+ }
+- keysym.sym = static_cast<SDLKey>(scancode);
++ keysym.sym = static_cast<SDLKey>(scancode);
+ } else {
+- keysym.sym = static_cast<SDLKey>(scancode);
++ keysym.sym = static_cast<SDLKey>(scancode);
+ }
+ keysym.scancode = scancode;
+ keysym.mod = KMOD_NONE;
+@@ -478,11 +594,82 @@
+ // pressed = 1;
+ // }
+
++ if (isSLA300InputFix_ &&
++ (keysym.sym == SDLK_SPACE || (keysym.sym >= 273 && keysym.sym <= 276))) {
++ if (keysym.sym >= 273) curAxis_[keysym.sym-273] = pressed;
++ else curAxis_[4] = pressed;
++ }
++
+ /* Queue the key event */
+ if ( pressed ) {
+- SDL_PrivateKeyboard(SDL_PRESSED, &keysym);
++ /* fprintf(stderr, "press %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_PRESSED, &keysym);
++ if (isSLA300InputFix_ &&
++ (keysym.sym >= 273 && keysym.sym <= 276)) {
++ if (keysym.sym == SDLK_UP) {
++ if (curAxis_[1]) {
++ keysym.sym = SDLK_DOWN;
++ keysym.scancode = Qt::Key_Down;
++ curAxis_[1] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ else if (keysym.sym == SDLK_DOWN) {
++ if (curAxis_[0]) {
++ keysym.sym = SDLK_UP;
++ keysym.scancode = Qt::Key_Up;
++ curAxis_[0] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ else if (keysym.sym == SDLK_RIGHT) {
++ if (curAxis_[3]) {
++ keysym.sym = SDLK_LEFT;
++ keysym.scancode = Qt::Key_Left;
++ curAxis_[3] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ else if (keysym.sym == SDLK_LEFT) {
++ if (curAxis_[2]) {
++ keysym.sym = SDLK_RIGHT;
++ keysym.scancode = Qt::Key_Right;
++ curAxis_[2] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ }
+ } else {
+- SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ /* fprintf(stderr, "release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++
++ if (isSLA300InputFix_ &&
++ (keysym.sym == SDLK_SPACE ||
++ (keysym.sym >= 273 && keysym.sym <= 276))) {
++ for (int i = 0; i < 4; i++) {
++ if (curAxis_[i]) {
++ int sym = i+273;
++ keysym.sym = static_cast<SDLKey>(sym);
++ if (sym == SDLK_UP) keysym.scancode = Qt::Key_Up;
++ else if (sym == SDLK_RIGHT) keysym.scancode = Qt::Key_Right;
++ else if (sym == SDLK_DOWN) keysym.scancode = Qt::Key_Down;
++ else if (sym == SDLK_LEFT) keysym.scancode = Qt::Key_Left;
++ curAxis_[i] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
++ if (curAxis_[4]) {
++ keysym.scancode = keysym.sym = SDLK_SPACE;
++ curAxis_[4] = 0;
++ /* fprintf(stderr, "force release %d\n", keysym.sym); */
++ SDL_PrivateKeyboard(SDL_RELEASED, &keysym);
++ }
++ }
+ }
+ }
+
+@@ -524,7 +711,7 @@
+ my_locked--; // decrease lock refcount;
+ }
+ if(!my_locked && my_painter) {
+- my_painter->end();
++// my_painter->end();
+ delete my_painter;
+ my_painter = 0;
+ }
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.h SDL-1.2.9/src/video/qtopia/SDL_QWin.h
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.h 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.h 2007-03-12 20:54:14.000000000 +0100
+@@ -1,3 +1,4 @@
++
+ /*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2004 Sam Lantinga
+@@ -52,6 +53,7 @@
+ class SDL_QWin : public QWidget
+ {
+ void QueueKey(QKeyEvent *e, int pressed);
++ int ApplyKeyRotation(int key);
+ public:
+ SDL_QWin(const QSize& size);
+ virtual ~SDL_QWin();
+@@ -71,7 +73,7 @@
+ y = my_offset.y();
+ }
+ QImage *image(void) { return my_image; }
+-
++
+ void setWFlags(WFlags flags) {
+ QWidget::setWFlags(flags);
+ my_flags = flags;
+@@ -83,6 +85,15 @@
+ bool lockScreen(bool force=false);
+ void unlockScreen();
+ void repaintRect(const QRect& rect);
++ void setScreenRotation(int sdlr, int qter) {
++ rotation_ = sdlr; qteRotation_ = qter;
++ }
++ void setKeyRotation(int sdlr, int qter) {
++ keyRotation_ = sdlr; qteKeyRotation_ = qter;
++ }
++ void setFBSize(QSize& s) { fbSize_ = s; }
++// void setSLC700InputFix(bool isEnable) { isSLC700InputFix_ = isEnable; }
++ void setSLA300InputFix(bool isEnable) { isSLA300InputFix_ = isEnable; }
+ protected:
+ /* Handle resizing of the window */
+ virtual void resizeEvent(QResizeEvent *e);
+@@ -95,10 +106,8 @@
+ void paintEvent(QPaintEvent *ev);
+ void keyPressEvent(QKeyEvent *e) { QueueKey(e, 1); }
+ void keyReleaseEvent(QKeyEvent *e) { QueueKey(e, 0); }
++
+ private:
+- bool repaintRotation0(const QRect& rect);
+- bool repaintRotation1(const QRect& rect);
+- bool repaintRotation3(const QRect& rect);
+ void enableFullscreen();
+ QDirectPainter *my_painter;
+ QImage *my_image;
+@@ -108,6 +117,12 @@
+ WFlags my_flags;
+ WFlags my_has_fullscreen;
+ unsigned int my_locked;
++ int rotation_, qteRotation_;
++ int keyRotation_, qteKeyRotation_;
++ QSize fbSize_;
++// bool isSLC700InputFix_;
++ bool isSLA300InputFix_;
++ int curAxis_[5]; // 0: up, 1: down, 2: right, 3: left, 4: center
+ };
+
+ #endif /* _SDL_QWin_h */
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysmouse.cc SDL-1.2.9/src/video/qtopia/SDL_sysmouse.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysmouse.cc 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysmouse.cc 2007-03-12 20:54:14.000000000 +0100
+@@ -60,6 +60,7 @@
+ void QT_WarpWMCursor(_THIS, Uint16 x, Uint16 y)
+ {
+ SDL_Win->setMousePos(QPoint(x, y));
++ SDL_PrivateMouseMotion( 0, 0, x, y );
+ }
+
+ }; /* Extern C */
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2004-01-04 17:49:26.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:54:14.000000000 +0100
+@@ -1,3 +1,4 @@
++
+ /*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2004 Sam Lantinga
+@@ -29,17 +30,32 @@
+
+ #include <stdlib.h>
+ #include <string.h>
++#include <stdarg.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
+
+ #include <stdio.h>
+ #include <unistd.h>
++#include <sys/types.h>
++#include <sys/wait.h>
++#include <linux/fb.h>
++#include <sys/mman.h>
++#include <asm/page.h>
+
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
++#include <qpe/qcopenvelope_qws.h>
++#include <qgfx_qws.h>
++#include <qwindowsystem_qws.h>
++#include <qwidget.h>
++#include <qwidgetlist.h>
++#include <qdirectpainter_qws.h>
+
+ #include "SDL.h"
+ #include "SDL_timer.h"
+
+ #include "SDL_QWin.h"
++#include "SDL_sysvideo.h"
+
+ extern "C" {
+
+@@ -51,14 +67,67 @@
+ #include "SDL_lowvideo.h"
+
+ //#define QTOPIA_DEBUG
++#define QTOPIA_LOG
+ #define QT_HIDDEN_SIZE 32 /* starting hidden window size */
+
++#ifdef QTOPIA_LOG
++ static FILE *st_logfp = NULL;
++#endif
++ static inline void LOG(char *fmt, ...)
++ {
++#ifdef QTOPIA_LOG
++ va_list ap;
++
++ va_start(ap, fmt);
++ vfprintf(st_logfp, fmt, ap);
++ if (st_logfp != stderr) {
++ fflush(st_logfp);
++ vfprintf(stderr, fmt, ap);
++ }
++ va_end(ap);
++#endif
++ }
++
++ typedef struct machine_spec {
++ const char *manif;
++ const char *name;
++ int qpe_server_rotation;
++ int init_screen_rot;
++ int init_key_rot;
++ } machine_spec_t;
++
++ typedef enum {
++ MACHINE_SHARP_SL5000D,
++ MACHINE_SHARP_SL5500,
++ MACHINE_SHARP_SLA300,
++ MACHINE_SHARP_SLB500,
++ MACHINE_SHARP_SLC700,
++ MACHINE_SHARP_SLC750,
++ MACHINE_SHARP_SLC760,
++ MACHINE_SHARP_SLC860,
++ MACHINE_SHARP_SL6000,
++ MACHINE_MAX
++ } machine_t;
++
++ static const machine_spec_t st_machine_spec[] = {
++ { "Sharp", "SL-5000D", 0 },
++ { "Sharp", "SL-5500", 0 },
++ { "Sharp", "SL-A300", 0 },
++ { "Sharp", "SL-B500", 0 },
++ { "Sharp", "SL-C700", 0 },
++ { "Sharp", "SL-C750", 0 },
++ { "Sharp", "SL-C760", 0 },
++ { "Sharp", "SL-C860", 0 },
++ { "Sharp", "SL-6000", 0 },
++ };
++
+ /* Name of the environment variable used to invert the screen rotation or not:
+ Possible values:
+- !=0 : Screen is 270° rotated
+- 0: Screen is 90° rotated*/
+-#define SDL_QT_ROTATION_ENV_NAME "SDL_QT_INVERT_ROTATION"
+-
++ !=0 : Screen is 270- rotated
++ 0: Screen is 90- rotated*/
++#define SDL_QT_ROTATION_ENV_NAME "SDL_QT_ROTATION"
++#define SDL_QT_INVERT_ROTATION_ENV_NAME "SDL_QT_INVERT_ROTATION"
++
+ /* Initialization/Query functions */
+ static int QT_VideoInit(_THIS, SDL_PixelFormat *vformat);
+ static SDL_Rect **QT_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags);
+@@ -78,6 +147,20 @@
+ static int QT_IconifyWindow(_THIS);
+ static SDL_GrabMode QT_GrabInput(_THIS, SDL_GrabMode mode);
+
++ static int console_fd;
++ struct fb_var_screeninfo saved_vinfo;
++ int fb_hwrot;
++ int fb_direct;
++ static int isKHloaded;
++ bool is_VGA_machine;
++
++#define W100FB_CONFIG 0x57415200 /* WAL\00 */
++#define W100INIT_ITEM 0
++#define W100INIT_ALL 1
++#define W100INIT_ITEM_WITH_VAL 2
++#define W100FB_CONFIG_EX 0x57415202 /* WAL\02 */
++
++
+ /* FB driver bootstrap functions */
+
+ static int QT_Available(void)
+@@ -222,13 +305,34 @@
+
+ int QT_VideoInit(_THIS, SDL_PixelFormat *vformat)
+ {
+- /* Initialize the QPE Application */
++ const char *SDL_fbdev;
++ struct fb_var_screeninfo vinfo;
++
++ /* Initialize the QPE Application */
+ /* Determine the screen depth */
+ vformat->BitsPerPixel = QPixmap::defaultDepth();
+
+ // For now we hardcode the current depth because anything else
+ // might as well be emulated by SDL rather than by Qtopia.
+-
++
++ //frame buffer device open.
++ SDL_fbdev = getenv("SDL_FBDEV");
++ if ( SDL_fbdev == NULL ) {
++ SDL_fbdev = "/dev/fb0";
++ }
++ console_fd = open(SDL_fbdev, O_RDWR, 0);
++ if ( console_fd < 0 ) {
++ SDL_SetError("Unable to open %s", SDL_fbdev);
++ return(-1);
++ }
++
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(-1);
++ }
++ saved_vinfo = vinfo;
++
+ QSize desktop_size = qApp->desktop()->size();
+ QT_AddMode(_this, ((vformat->BitsPerPixel+7)/8)-1,
+ desktop_size.width(), desktop_size.height());
+@@ -241,7 +345,24 @@
+ /* Fill in some window manager capabilities */
+ _this->info.wm_available = 0;
+
+- /* We're done! */
++#ifdef QTOPIA_LOG
++ st_logfp = fopen("/tmp/sdl-qt-debug", "w");
++ if (!st_logfp)
++ st_logfp = stderr;
++#endif
++
++ QT_GrabInput(_this, SDL_GRAB_ON);
++/*
++ {
++ QCopEnvelope e("QPE/KeyHelper", "repeater(int)");
++ e << 2;
++ }
++*/
++ isKHloaded=(fopen("/home/zaurus/Settings/keyhelper_SDL.xml","r") != NULL) ? 1 : 0;
++ if (isKHloaded) {
++ system("qcop QPE/KeyHelper \"reload(QString)\" keyhelper_SDL.xml"); //QcopEnvelope can't use.
++ LOG("keyhelper_SDL.xml loaded\n");
++ }
+ return(0);
+ }
+
+@@ -264,6 +385,7 @@
+
+ /* Various screen update functions available */
+ static void QT_NormalUpdate(_THIS, int numrects, SDL_Rect *rects);
++ static void QT_DirectUpdate(_THIS, int numrects, SDL_Rect *rects);
+
+
+ static int QT_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen)
+@@ -276,47 +398,428 @@
+ return -1;
+ }
+
++ static machine_t QT_GetMachine(_THIS)
++ {
++ FILE *fp;
++ machine_t machine = MACHINE_SHARP_SL5000D;
++ char buf[1024];
++
++
++ fp = fopen("/proc/cpuinfo", "rb");
++ if (fp) {
++ if (fread(buf, 1, sizeof(buf), fp) > 0) {
++ LOG("QT_GetMachine: /proc/cpuinfo is %s\n", buf);
++ if (strstr(buf, "SHARP Tosa") != NULL)
++ machine = MACHINE_SHARP_SL6000;
++ else if (strstr(buf, "Collie") != NULL)
++ machine = MACHINE_SHARP_SL5500;
++ else if (strstr(buf, "SHARP Poodle") != NULL)
++ machine = MACHINE_SHARP_SLB500;
++ else if (strstr(buf, "SHARP Corgi") !=NULL)
++ machine = MACHINE_SHARP_SLC700;
++ else if (strstr(buf, "SHARP Shepherd") !=NULL)
++ machine = MACHINE_SHARP_SLC750;
++ else if (strstr(buf, "SHARP Husky") !=NULL)
++ machine = MACHINE_SHARP_SLC760;
++ else if (strstr(buf, "SHARP Boxer") != NULL)
++ machine = MACHINE_SHARP_SLC860;
++ }
++ fclose(fp);
++ } else {
++ LOG("QT_GetMachine: Couldn't read /proc/deviceinfo/product.\n");
++ LOG(" Now set machine variable to default (SL-5000D)\n");
++ }
++
++ LOG(" detected machine is '%s %s'\n",
++ st_machine_spec[machine].manif, st_machine_spec[machine].name);
++ return machine;
++ }
++
++ static void QT_GetQteServerSpec(_THIS, int *rotation, bool *isQvga)
++ {
++ const char *user;
++ char buf[FILENAME_MAX];
++ FILE *fp;
++ int rot = 0, is_qvga = 0;
++
++ user = getenv("USER");
++ snprintf(buf, sizeof(buf), "/tmp/qtembedded-%s/QtEmbedded-0.spec",
++ user ? user : "root");
++ LOG("QT_GetRotation: Read spec from '%s'\n", buf);
++
++ fp = fopen(buf, "rb");
++ if (fp) {
++ int size;
++ if ((size = fread(buf, 1, sizeof(buf) - 1, fp)) > 0) {
++ buf[size] = '\0';
++ LOG(" spec is '%s'\n", buf);
++ // get rotation value
++ if (strstr(buf, "Rot")) {
++ rot = atoi(strstr(buf, "Rot") + 3);
++ rot /= 90;
++ if (rot < 0 || rot > 3) {
++ rot = 0;
++ }
++ } else
++ rot = 0;
++
++ // get qvga mode in SL-C700
++ if (strstr(buf, "Qvga"))
++ is_qvga = 1;
++ }
++ fclose(fp);
++ }
++
++ LOG(" Rot=%d, Qvga=%d\n", rot, is_qvga);
++
++ if (rotation)
++ *rotation = rot;
++ if (isQvga)
++ *isQvga = is_qvga;
++ }
++
+ /* FIXME: check return values and cleanup here */
+ SDL_Surface *QT_SetVideoMode(_THIS, SDL_Surface *current,
+ int width, int height, int bpp, Uint32 flags)
+ {
+-
+ QImage *qimage;
+- QSize desktop_size = qApp->desktop()->size();
++ QSize qteSize = qApp->desktop()->size();
++ QSize fbSize;
++ QSize userSize;
++ int fb_xres;
++ int fb_yres;
++ struct fb_var_screeninfo vinfo;
++ struct fb_fix_screeninfo finfo;
++ int tmp_ioctl_data;
++ char fb_size_fix = ' ';
++ bool isW100patch_kernel = false;
++ int numFb_Size;
++
++ int mapped_memlen;
++ int mapped_offset;
++ void *mapped_mem;
++ int fb_offset;
++
++
++ machine_t machine = QT_GetMachine(_this);
++ machine_spec_t machineSpec = st_machine_spec[machine];
++ int qteRotation, userRotation, sdlRotation;
++ int qteKeyRotation, sdlKeyRotation;
++ bool isQteQvga;
++
++ if (machine == MACHINE_SHARP_SLC700 ||
++ machine == MACHINE_SHARP_SLC750 ||
++ machine == MACHINE_SHARP_SLC760 ||
++ machine == MACHINE_SHARP_SLC860 || // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
++ machine == MACHINE_SHARP_SL6000 ) { // ¾Ü¤·¤¤¤³¤È¤ï¤«¤é¤ó¤±¤É¤È¤ê¤¢¤¨¤º
++ is_VGA_machine = true;
++ }else {
++ is_VGA_machine = false;
++ }
++
++ // qte ¤Ç¤Î²óž³ÑÅÙ¤ò¼èÆÀ
++ QT_GetQteServerSpec(_this, &qteRotation, &isQteQvga);
++
++ // SL-C700 ¤Î¥¹¥¿¥¤¥ë
++ bool isInputStyle = false;
++ if (is_VGA_machine) {
++ int status = system("/home/QtPalmtop/bin/chkhinge");
++ if (WEXITSTATUS(status) != 2)
++ isInputStyle = true;
++ LOG("QT_SetVideoMode: SL-C700 Style is %s\n",
++ isInputStyle ? "Input style" : "View style");
++ }
+
+
+- current->flags = 0; //SDL_FULLSCREEN; // We always run fullscreen.
++ // specity screen setting
++ if (is_VGA_machine) {
++
++ // w100 rotation pached kernel check
++ isW100patch_kernel = (fopen("/proc/driver/w100/rotation","r") != NULL) ? true : false;
++ LOG("Your Kernel is %s\n",isW100patch_kernel ? "Special Kernel" : "Normal Kernel");
++
++ const char *envFb_Size = getenv("SDL_FB_SIZE");
++ if (envFb_Size !=NULL) {
++ numFb_Size=sscanf(envFb_Size,"%dx%d%c",&fb_xres,&fb_yres,&fb_size_fix);
++ } else {
++ numFb_Size=0;
++ }
+
+- if(width <= desktop_size.width()
+- && height <= desktop_size.height()) {
+- current->w = desktop_size.width();
+- current->h = desktop_size.height();
+- } else if(width <= desktop_size.height() && height <= desktop_size.width()) {
+- // Landscape mode
+- char * envString = getenv(SDL_QT_ROTATION_ENV_NAME);
+- int envValue = envString ? atoi(envString) : 0;
+- screenRotation = envValue ? SDL_QT_ROTATION_270 : SDL_QT_ROTATION_90;
+- current->h = desktop_size.width();
+- current->w = desktop_size.height();
++ if (numFb_Size >=2) {
++
++ // specity screen mode
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++
++ vinfo.xres = fb_xres;
++ vinfo.xres_virtual = fb_xres;
++ vinfo.yres = fb_yres;
++ vinfo.yres_virtual = fb_yres;
++
++ if (fb_size_fix == '@') {
++ width = fb_xres;
++ height = fb_yres;
++ }
++
++ if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't set console screen info");
++ return(NULL);
++ }
++
++
++ if (isW100patch_kernel) {
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=0;
++ }else if(vinfo.xres == 320){
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=2;
++ }else {
++ qteSize.setWidth(vinfo.yres);
++ qteSize.setHeight(vinfo.xres);
++ qteRotation=3;
++ }
++
++ if (isW100patch_kernel && (vinfo.xres == 320) && (vinfo.yres == 240)) {
++ tmp_ioctl_data=121;
++ ioctl(console_fd, W100FB_CONFIG_EX, &tmp_ioctl_data);
++ fb_hwrot=1;
++ }
++
++ LOG("FBVideoMode: %dx%d%c\n", vinfo.xres, vinfo.yres,fb_size_fix );
++
++ }else {
++
++ // auto screen mode
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++
++ if (isW100patch_kernel && (isInputStyle == false) && (vinfo.xres == 240) && (vinfo.yres == 320)) {
++ vinfo.xres = 240;
++ vinfo.xres_virtual = 240;
++ vinfo.yres = 320;
++ vinfo.yres_virtual = 320;
++ qteRotation=0;
++ }else if ((width <= 320) && (height <= 240)) {
++ vinfo.xres = 320;
++ vinfo.xres_virtual = 320;
++ vinfo.yres = 240;
++ vinfo.yres_virtual = 240;
++ }else if (isW100patch_kernel && (isInputStyle == true)){
++ vinfo.xres = 640;
++ vinfo.xres_virtual = 640;
++ vinfo.yres = 480;
++ vinfo.yres_virtual = 480;
++ qteRotation=0;
++ }else {
++ vinfo.xres = 480;
++ vinfo.xres_virtual = 480;
++ vinfo.yres = 640;
++ vinfo.yres_virtual = 640;
++ }
++
++ if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't set console screen info");
++ return(NULL);
++ }
++
++ if (isW100patch_kernel) {
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=0;
++ fb_direct=1;
++ }else if(vinfo.xres == 320){
++ qteSize.setWidth(vinfo.xres);
++ qteSize.setHeight(vinfo.yres);
++ qteRotation=2;
++ }else {
++ qteSize.setWidth(vinfo.yres);
++ qteSize.setHeight(vinfo.xres);
++ qteRotation=3;
++ }
++
++ if (isW100patch_kernel && (vinfo.xres == 320) && (vinfo.yres == 240)) {
++ tmp_ioctl_data=121;
++ ioctl(console_fd, W100FB_CONFIG_EX, &tmp_ioctl_data);
++ fb_hwrot=1;
++ qteRotation=0;
++ }
++
++ LOG("FBVideoMode: %dx%d%c\n", vinfo.xres, vinfo.yres,fb_size_fix );
++ }
++ }
++
++ // direct paint setting
++ const char *envFb_Direct = getenv("SDL_FB_DIRECT");
++ if (envFb_Direct !=NULL)
++ fb_direct = envFb_Direct ? atoi(envFb_Direct) : -1;
++
++ if (fb_direct == 1){
++ if ( ioctl(console_fd, FBIOGET_FSCREENINFO, &finfo) < 0 ) {
++ SDL_SetError("Couldn't get console hardware info");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++ if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
++ SDL_SetError("Couldn't get console pixel format");
++ QT_VideoQuit(_this);
++ return(NULL);
++ }
++ LOG("Direct paint mode\n");
++ }
++
++ // hack for SL-5500
++ if (machine == MACHINE_SHARP_SL5500)
++ qteRotation = 3;
++
++ // SL-B500 Íѥϥå¯(¤È¤ê¤¢¤¨¤º¡¢¤Í)
++ if (machine == MACHINE_SHARP_SLB500)
++ qteRotation = 3;
++
++ // À¸¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º¤òÆÀ¤ë
++ if (qteRotation & 1) {
++ fbSize.setWidth(qteSize.height());
++ fbSize.setHeight(qteSize.width());
++ } else {
++ fbSize = qteSize;
++ }
++
++ //
++ const char *envRotStr = getenv(SDL_QT_ROTATION_ENV_NAME);
++ userRotation = envRotStr ? atoi(envRotStr) : -1;
++ if ((userRotation >= 0 ? userRotation : qteRotation) & 1) {
++ userSize.setWidth(fbSize.height());
++ userSize.setHeight(fbSize.width());
++ } else {
++ userSize = fbSize;
++ }
++
++ if (width <= userSize.width() && height <= userSize.height()) {
++ // ´Ä¶­ÊÑ¿ô¤Ç²óž³ÑÅÙ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤òºÇÍ¥À褹¤ë
++ if (userRotation >= 0)
++ sdlRotation = userRotation;
++ else {
++ // ¤Ç¡¢¤½¤Î»ØÄ̵꤬¤¤¤Î¤Ç¤¢¤ì¤Ð qte ¤Î²óž³ÑÅ٤˹ç¤ï¤»¤ë¤À¤±
++ // ¤Ê¤ó¤À¤±¤É¡¢SL-C700 ¤Ç¤Ï¤Á¤ç¤¤Ê£»¨¡£
++ if (is_VGA_machine && (fbSize.width() == 320) && (fbSize.height() == 240)) {
++ if (isInputStyle)
++ sdlRotation = 2;
++ else
++ sdlRotation = qteRotation;
++ } else {
++ sdlRotation = qteRotation;
++ }
++ }
++ } else if (width <= fbSize.width() && height <= fbSize.height()) {
++ sdlRotation = 0;
++ if (is_VGA_machine && (fbSize.width() == 320) && (fbSize.height() == 240) && isInputStyle)
++ sdlRotation = 2;
++ } else if (width <= fbSize.height() && height <= fbSize.width()) {
++ sdlRotation = 1;
+ } else {
+ SDL_SetError("Unsupported resolution, %dx%d\n", width, height);
++ return NULL;
+ }
++
++ if (fb_hwrot == 1)
++ sdlRotation = 0;
++
++ if (getenv(SDL_QT_INVERT_ROTATION_ENV_NAME) != NULL) {
++ sdlRotation = (sdlRotation + 2) & 3;
++ }
++
++ LOG("QT_SetVideoMode: argSize=%dx%d\n", width, height);
++ LOG("QT_SetVideoMode: qteSize=%dx%d\n",
++ qteSize.width(), qteSize.height());
++ LOG("QT_SetVideoMode: fbSize=%dx%d\n",
++ fbSize.width(), fbSize.height());
++ LOG("QT_SetVideoMode: qteRotation=%d\n", qteRotation);
++ LOG("QT_SetVideoMode: userRotation=%d\n", userRotation);
++ LOG("QT_SetVideoMode: sdlRotation=%d\n", sdlRotation);
++
++ current->flags = 0;//SDL_FULLSCREEN; // We always run fullscreen.
++ current->w = width;
++ current->h = height;
++ SDL_Win->setScreenRotation(sdlRotation, qteRotation);
++ SDL_Win->setFBSize(fbSize);
++
++ if (machine == MACHINE_SHARP_SLA300)
++ SDL_Win->setSLA300InputFix(true);
++
++ // keyboard rotation
++ qteKeyRotation = qteRotation;
++// fprintf(stderr, "%d\n", (machine == MACHINE_SHARP_SLC700));
++// fprintf(stderr, "%d\n", isQteQvga);
++ if (isQteQvga && is_VGA_machine)
++ qteKeyRotation = 3;
++ else if (machine == MACHINE_SHARP_SLB500)
++ qteKeyRotation = 3;
++
++ if (isQteQvga && fb_hwrot == 1)
++ qteKeyRotation = 1;
++
++ sdlKeyRotation = sdlRotation;
++
++ SDL_Win->setKeyRotation(sdlKeyRotation, qteKeyRotation);
++
++ LOG("QT_SetVideoMode: qteKeyRotation=%d\n", qteKeyRotation);
++ LOG("QT_SetVideoMode: sdlKeyRotation=%d\n", sdlKeyRotation);
++
+ if ( flags & SDL_OPENGL ) {
+ SDL_SetError("OpenGL not supported");
+ return(NULL);
+- }
++ }
+ /* Create the QImage framebuffer */
+- qimage = new QImage(current->w, current->h, bpp);
+- if (qimage->isNull()) {
+- SDL_SetError("Couldn't create screen bitmap");
+- delete qimage;
+- return(NULL);
++
++ // frame buffer memory mapping
++ if (fb_direct == 1) {
++ current->pitch = finfo.line_length;
++ current->flags = (SDL_FULLSCREEN|SDL_HWSURFACE);
++ mapped_offset = (((long)finfo.smem_start) -
++ (((long)finfo.smem_start)&~(PAGE_SIZE-1)));
++ mapped_memlen = finfo.smem_len+mapped_offset;
++ if(console_fd >0 ) {
++ mapped_mem = mmap(NULL, mapped_memlen,PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
++ fb_offset=(vinfo.xres-width)+(vinfo.yres-height)*vinfo.xres;
++ current->pixels = (void *)((int )mapped_mem+fb_offset);
++ _this->UpdateRects = QT_DirectUpdate;
++ } else {
++ qimage = new QImage(current->w, current->h, bpp);
++ if (qimage->isNull()) {
++ SDL_SetError("Couldn't create screen bitmap");
++ delete qimage;
++ return(NULL);
++ }
++ current->pixels = (void *)qimage->bits();
++ _this->UpdateRects = QT_NormalUpdate;
++ SDL_Win->setImage(qimage);
++// SDL_Win->setFullscreen(true); //comment to non update taskbar
++ }
++ } else {
++ qimage = new QImage(current->w, current->h, bpp);
++ if (qimage->isNull()) {
++ SDL_SetError("Couldn't create screen bitmap");
++ delete qimage;
++ return(NULL);
++ }
++ current->pitch = qimage->bytesPerLine();
++ current->pixels = (void *)qimage->bits();
++ _this->UpdateRects = QT_NormalUpdate;
++ SDL_Win->setImage(qimage);
++// SDL_Win->setFullscreen(true); //comment to non update taskbar
++
+ }
+- current->pitch = qimage->bytesPerLine();
+- current->pixels = (void *)qimage->bits();
+- SDL_Win->setImage(qimage);
+- _this->UpdateRects = QT_NormalUpdate;
+- SDL_Win->setFullscreen(true);
++
++
++ // fprintf(stderr,"QT_SetVideoMode() qImage:%dx%d %d\n",
++ // qimage->width(), qimage->height(), qimage->bytesPerLine());
+ /* We're done */
+ return(current);
+ }
+@@ -361,13 +864,19 @@
+ {
+ if(SDL_Win->lockScreen()) {
+ for(int i=0; i<numrects; ++i ) {
+- QRect rect(rects[i].x, rects[i].y,
+- rects[i].w, rects[i].h);
+- SDL_Win->repaintRect(rect);
++ QRect rect(rects[i].x, rects[i].y,
++ rects[i].w, rects[i].h);
++ SDL_Win->repaintRect(rect);
+ }
+ SDL_Win->unlockScreen();
+ }
+ }
++
++ static void QT_DirectUpdate(_THIS, int numrects, SDL_Rect *rects)
++ {
++
++ }
++
+ /* Is the system palette settable? */
+ int QT_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
+ {
+@@ -383,10 +892,36 @@
+ // -- David Hedbor
+ // delete SDL_Win;
+ // SDL_Win = 0;
++
++ if ( console_fd > 0 ) {
++ /* Restore the original video mode and palette */
++ if (fb_hwrot == 1) {
++ int tmp_ioctl_data=120;
++ ioctl(console_fd, W100FB_CONFIG_EX, &tmp_ioctl_data);
++ }
++
++ ioctl(console_fd, FBIOPUT_VSCREENINFO, &saved_vinfo);
++
++ /* We're all done with the framebuffer */
++ close(console_fd);
++ console_fd = -1;
++ }
++
+ _this->screen->pixels = NULL;
+ QT_GrabInput(_this, SDL_GRAB_OFF);
++/*
++ {
++ QCopEnvelope e("QPE/KeyHelper", "repeater(int)");
++ e << 1;
++ }
++*/
++ if (isKHloaded)
++ system("qcop QPE/KeyHelper \"reload()\""); //QcopEnvelope can't use.
++
+ }
+
++
++
+ static int QT_IconifyWindow(_THIS) {
+ SDL_Win->hide();
+
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/fixlibs-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/fixlibs-1.2.9.patch
new file mode 100644
index 0000000000..ebc6ec7769
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/fixlibs-1.2.9.patch
@@ -0,0 +1,27 @@
+diff -Naur SDL-1.2.9-orig/configure.in SDL-1.2.9/configure.in
+--- SDL-1.2.9-orig/configure.in 2007-03-12 20:56:23.000000000 +0100
++++ SDL-1.2.9/configure.in 2007-03-12 20:59:28.000000000 +0100
+@@ -1593,8 +1593,8 @@
+ AC_MSG_RESULT($video_qtopia)
+ if test x$video_qtopia = xyes; then
+ CFLAGS="$CFLAGS -DENABLE_QTOPIA -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG -fno-rtti -fno-exceptions"
+- SDL_LIBS="$SDL_LIBS -L${QPEDIR}/lib -L${QTDIR}/lib/ -lqpe -lqte"
+- SDL_CFLAGS="$SDL_CFLAGS -DQWS"
++ SDL_LIBS="$SDL_LIBS -Wl,-rpath-link -Wl,${QPEDIR}/lib -Wl,-rpath-link -Wl,${QTDIR}/lib"
++ SYSTEM_LIBS="$SYSTEM_LIBS -L${QPEDIR}/lib -L${QTDIR}/lib/ -lqpe -lqte-mt"
+ VIDEO_SUBDIRS="$VIDEO_SUBDIRS qtopia"
+ VIDEO_DRIVERS="$VIDEO_DRIVERS qtopia/libvideo_qtopia.la"
+ else
+@@ -1908,12 +1908,6 @@
+ CheckAltivec
+ CheckLinuxVersion
+ CheckRPATH
+-
+- # Set up files for the main() stub
+- if test "x$video_qtopia" = "xyes"; then
+- SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
+-
+- fi
+ # Set up files for the audio library
+ # We use the OSS and ALSA API's, not the Sun audio API
+ #if test x$enable_audio = xyes; then
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch
new file mode 100644
index 0000000000..0ad182bae6
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/ipaq-1.2.9.patch
@@ -0,0 +1,140 @@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/Makefile.am SDL-1.2.9/src/video/qtopia/Makefile.am
+--- SDL-1.2.9-orig/src/video/qtopia/Makefile.am 2007-03-12 20:57:23.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/Makefile.am 2007-03-12 20:58:02.000000000 +0100
+@@ -22,4 +22,4 @@
+ # overwrite USER variables
+ CXXLD = $(CC)
+ CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+- $(AM_LDFLAGS) $(LDFLAGS) -o $@
++ $(AM_LDFLAGS) $(LDFLAGS) -lopiecore2 -o $@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc SDL-1.2.9/src/video/qtopia/SDL_QWin.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:57:00.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:58:02.000000000 +0100
+@@ -29,8 +29,11 @@
+ #include "SDL_QWin.h"
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
++#include <opie2/odevice.h>
+ #include <qdirectpainter_qws.h>
+
++using namespace Opie::Core;
++
+ extern int fb_hwrot;
+ extern int fb_direct;
+ extern bool is_VGA_machine;
+@@ -545,18 +548,32 @@
+ case Qt::Key_F7: scancode = SDLK_F7; break;
+ case Qt::Key_F8: scancode = SDLK_F8; break;
+ case Qt::Key_F9:
+- scancode = SDLK_F9;
+- mouse_button_mode=1;
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_y; }
++ else {
++ scancode = SDLK_F9;
++ mouse_button_mode=1; }
+ break;
+ case Qt::Key_F10:
+- scancode = SDLK_F10;
+- mouse_button_mode=2;
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_LALT; }
++ else {
++ scancode = SDLK_F10;
++ mouse_button_mode=2; }
+ break;
+ case Qt::Key_F11: scancode = SDLK_F11; break;
+- case Qt::Key_F12: scancode = SDLK_F12; break;
++ case Qt::Key_F12:
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_RETURN; }
++ else {
++ scancode = SDLK_F12; }
++ break;
+ case Qt::Key_F13:
+- scancode = SDLK_F13;
+- mouse_button_mode=3;
++ if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
++ scancode = SDLK_ESCAPE; }
++ else {
++ scancode = SDLK_F13;
++ mouse_button_mode=3; }
+ break;
+ case Qt::Key_F14: scancode = SDLK_F14; break;
+ case Qt::Key_F15: scancode = SDLK_F15; break;
+@@ -573,6 +590,9 @@
+ scancode = SDLK_RETURN;
+ break;
+
++ // To use record button on ipaq
++ case Qt::Key_F24: scancode = SDLK_LSHIFT; break;
++
+ default:
+ scancode = SDLK_UNKNOWN;
+ break;
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:55:07.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_sysvideo.cc 2007-03-12 20:58:02.000000000 +0100
+@@ -45,6 +45,7 @@
+ #include <qapplication.h>
+ #include <qpe/qpeapplication.h>
+ #include <qpe/qcopenvelope_qws.h>
++#include <opie2/odevice.h>
+ #include <qgfx_qws.h>
+ #include <qwindowsystem_qws.h>
+ #include <qwidget.h>
+@@ -66,6 +67,8 @@
+ #include "SDL_syswm_c.h"
+ #include "SDL_lowvideo.h"
+
++using namespace Opie::Core;
++
+ //#define QTOPIA_DEBUG
+ #define QTOPIA_LOG
+ #define QT_HIDDEN_SIZE 32 /* starting hidden window size */
+@@ -106,6 +109,7 @@
+ MACHINE_SHARP_SLC760,
+ MACHINE_SHARP_SLC860,
+ MACHINE_SHARP_SL6000,
++ MACHINE_IPAQ,
+ MACHINE_MAX
+ } machine_t;
+
+@@ -119,6 +123,7 @@
+ { "Sharp", "SL-C760", 0 },
+ { "Sharp", "SL-C860", 0 },
+ { "Sharp", "SL-6000", 0 },
++ { "HP", "HP IPAQ", 0 },
+ };
+
+ /* Name of the environment variable used to invert the screen rotation or not:
+@@ -423,6 +428,13 @@
+ machine = MACHINE_SHARP_SLC760;
+ else if (strstr(buf, "SHARP Boxer") != NULL)
+ machine = MACHINE_SHARP_SLC860;
++ else if ( ODevice::inst ( )-> series ( ) == Model_iPAQ )
++ machine = MACHINE_IPAQ;
++ else
++ {
++ machine = MACHINE_SHARP_SL5000D;
++ LOG("Can't detect machine defaulting to SL5000D");
++ }
+ }
+ fclose(fp);
+ } else {
+@@ -679,6 +691,15 @@
+ if (machine == MACHINE_SHARP_SL5500)
+ qteRotation = 3;
+
++ // HP IPaq
++ if ( ODevice::inst( )-> series ( ) == Model_iPAQ ) {
++ qteRotation = 3;
++ }
++ if ( ODevice::inst ( )-> model ( ) == Model_iPAQ_H38xx ) {
++ qteRotation = 1;
++ }
++
++
+ // SL-B500 Íѥϥå¯(¤È¤ê¤¢¤¨¤º¡¢¤Í)
+ if (machine == MACHINE_SHARP_SLB500)
+ qteRotation = 3;
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/kill-stdc++-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/kill-stdc++-1.2.9.patch
new file mode 100644
index 0000000000..884cb2191c
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/kill-stdc++-1.2.9.patch
@@ -0,0 +1,422 @@
+diff -Naur SDL-1.2.9-orig/acinclude.m4 SDL-1.2.9/acinclude.m4
+--- SDL-1.2.9-orig/acinclude.m4 2004-08-24 08:32:50.000000000 +0200
++++ SDL-1.2.9/acinclude.m4 2007-03-12 20:57:08.000000000 +0100
+@@ -1473,11 +1473,11 @@
+ case $host_os in
+ aix3*)
+ version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
++ library_names_spec='${libname}${release}${shrext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+- soname_spec='${libname}${release}${shared_ext}$major'
++ soname_spec='${libname}${release}${shrext}$major'
+ ;;
+
+ aix4* | aix5*)
+@@ -1487,7 +1487,7 @@
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
++ library_names_spec='${libname}${release}${shrext}$major ${libname}${release}${shrext}$versuffix $libname${shrext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+@@ -1513,12 +1513,12 @@
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ soname_spec='${libname}${release}${shrext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+@@ -1531,7 +1531,7 @@
+ ;;
+
+ beos*)
+- library_names_spec='${libname}${shared_ext}'
++ library_names_spec='${libname}${shrext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+@@ -1539,8 +1539,8 @@
+ bsdi[[45]]*)
+ version_type=linux
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+@@ -1573,14 +1573,14 @@
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+- #soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+- soname_spec='`echo ${libname} | sed -e 's/^lib//'`${shared_ext}'
++ #soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shrext}'
++ soname_spec='`echo ${libname} | sed -e 's/^lib//'`${shrext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+- #soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+- soname_spec='`echo ${libname} | sed -e 's/^lib//'`${shared_ext}'
++ #soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shrext}'
++ soname_spec='`echo ${libname} | sed -e 's/^lib//'`${shrext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH printed by
+@@ -1596,13 +1596,13 @@
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shrext}'
+ ;;
+ esac
+ ;;
+
+ *)
+- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shrext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+@@ -1615,8 +1615,8 @@
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+- soname_spec='${libname}${release}${major}$shared_ext'
++ library_names_spec='${libname}${release}${versuffix}$shrext ${libname}${release}${major}$shrext ${libname}$shrext'
++ soname_spec='${libname}${release}${major}$shrext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+@@ -1633,8 +1633,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname$shrext'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+@@ -1646,8 +1646,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major ${libname}${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+@@ -1659,12 +1659,12 @@
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext} $libname${shrext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
++ library_names_spec='${libname}${release}${shrext}$versuffix $libname${shrext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+@@ -1688,8 +1688,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}${major} ${libname}${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+@@ -1707,8 +1707,8 @@
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+@@ -1722,8 +1722,8 @@
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+@@ -1732,8 +1732,8 @@
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+@@ -1752,8 +1752,8 @@
+ esac
+ need_lib_prefix=no
+ need_version=no
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
++ soname_spec='${libname}${release}${shrext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major ${libname}${release}${shrext} $libname${shrext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+@@ -1787,8 +1787,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+@@ -1816,8 +1816,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major ${libname}${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+@@ -1829,12 +1829,12 @@
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${shrext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major ${libname}${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+@@ -1844,7 +1844,7 @@
+
+ newsos6)
+ version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+@@ -1853,8 +1853,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+@@ -1863,7 +1863,7 @@
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${shrext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+@@ -1884,7 +1884,7 @@
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+- library_names_spec='$libname${shared_ext} $libname.a'
++ library_names_spec='$libname${shrext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+@@ -1893,8 +1893,8 @@
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++ soname_spec='${libname}${release}${shrext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+@@ -1902,8 +1902,8 @@
+
+ sco3.2v5*)
+ version_type=osf
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++ soname_spec='${libname}${release}${shrext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+@@ -1911,8 +1911,8 @@
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+@@ -1922,7 +1922,7 @@
+
+ sunos4*)
+ version_type=sunos
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${shrext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+@@ -1934,8 +1934,8 @@
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+@@ -1959,16 +1959,16 @@
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+- soname_spec='$libname${shared_ext}.$major'
++ library_names_spec='$libname${shrext}.$versuffix $libname${shrext}.$major $libname${shrext}'
++ soname_spec='$libname${shrext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+ uts4*)
+ version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
++ library_names_spec='${libname}${release}${shrext}$versuffix ${libname}${release}${shrext}$major $libname${shrext}'
++ soname_spec='${libname}${release}${shrext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+@@ -3471,8 +3471,8 @@
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
++ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shrext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shrext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+@@ -3481,7 +3481,7 @@
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
++ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shrext 2>&1 | grep "ld"`; rm -f libconftest$shrext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+@@ -3585,7 +3585,7 @@
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
++ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shrext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+@@ -3645,7 +3645,7 @@
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
++ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shrext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+@@ -4596,7 +4596,7 @@
+ # Whether we need a single -rpath flag with a separated argument.
+ hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
++# Set to yes if using DIR/libNAME${shrext} during linking hardcodes DIR into the
+ # resulting binary.
+ hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+diff -Naur SDL-1.2.9-orig/src/main/Makefile.am SDL-1.2.9/src/main/Makefile.am
+--- SDL-1.2.9-orig/src/main/Makefile.am 2007-03-12 20:56:23.000000000 +0100
++++ SDL-1.2.9/src/main/Makefile.am 2007-03-12 20:57:08.000000000 +0100
+@@ -46,3 +46,9 @@
+ (cd $(distdir) && rm -f $(BUILT_SOURCES))
+ cp -rp $(ARCH_SUBDIRS) $(distdir)
+ (cd $(distdir) && rm -rf `find . -name CVS`)
++
++# overwrite USER variables
++CXXLD = $(CC)
++CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
++ $(AM_LDFLAGS) $(LDFLAGS) -o $@
++
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/Makefile.am SDL-1.2.9/src/video/qtopia/Makefile.am
+--- SDL-1.2.9-orig/src/video/qtopia/Makefile.am 2007-03-12 20:56:23.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/Makefile.am 2007-03-12 20:57:08.000000000 +0100
+@@ -17,3 +17,9 @@
+ SDL_sysevents.cc \
+ SDL_sysevents_c.h \
+ SDL_qmain.cc
++
++
++# overwrite USER variables
++CXXLD = $(CC)
++CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
++ $(AM_LDFLAGS) $(LDFLAGS) -o $@
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch
new file mode 100644
index 0000000000..7f88956d94
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/mouse-1.2.9.patch
@@ -0,0 +1,48 @@
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc SDL-1.2.9/src/video/qtopia/SDL_QWin.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:55:07.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_QWin.cc 2007-03-12 20:56:36.000000000 +0100
+@@ -169,7 +169,12 @@
+ Qt::ButtonState button = e->button();
+ int sdlstate = 0;
+ if( (button & Qt::LeftButton)) {
+- sdlstate |= SDL_BUTTON_LMASK;
++ if (mouse_button_mode == 3)
++ sdlstate |= SDL_BUTTON_RMASK;
++ else if (mouse_button_mode == 2)
++ sdlstate |= SDL_BUTTON_MMASK;
++ else
++ sdlstate |= SDL_BUTTON_LMASK;
+ }
+ if( (button & Qt::RightButton)) {
+ sdlstate |= SDL_BUTTON_RMASK;
+@@ -539,20 +544,20 @@
+ case Qt::Key_F6: scancode = SDLK_F6; break;
+ case Qt::Key_F7: scancode = SDLK_F7; break;
+ case Qt::Key_F8: scancode = SDLK_F8; break;
+- case Qt::Key_F9: scancode = SDLK_F9; break;
+- case Qt::Key_F10:
+- scancode = SDLK_F10;
++ case Qt::Key_F9:
++ scancode = SDLK_F9;
+ mouse_button_mode=1;
+ break;
+- case Qt::Key_F11:
+- scancode = SDLK_F11;
+- mouse_button_mode=3;
+- break;
+- case Qt::Key_F12:
+- scancode = SDLK_F12;
++ case Qt::Key_F10:
++ scancode = SDLK_F10;
+ mouse_button_mode=2;
+ break;
+- case Qt::Key_F13: scancode = SDLK_F13; break;
++ case Qt::Key_F11: scancode = SDLK_F11; break;
++ case Qt::Key_F12: scancode = SDLK_F12; break;
++ case Qt::Key_F13:
++ scancode = SDLK_F13;
++ mouse_button_mode=3;
++ break;
+ case Qt::Key_F14: scancode = SDLK_F14; break;
+ case Qt::Key_F15: scancode = SDLK_F15; break;
+ case Qt::Key_Super_L: scancode = SDLK_LSUPER; break;
diff --git a/packages/libsdl/libsdl-qpe-1.2.9/pygame-1.2.9.patch b/packages/libsdl/libsdl-qpe-1.2.9/pygame-1.2.9.patch
new file mode 100644
index 0000000000..4073de25bf
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe-1.2.9/pygame-1.2.9.patch
@@ -0,0 +1,191 @@
+diff -Naur SDL-1.2.9-orig/configure.in SDL-1.2.9/configure.in
+--- SDL-1.2.9-orig/configure.in 2005-08-28 08:31:18.000000000 +0200
++++ SDL-1.2.9/configure.in 2007-03-12 20:55:18.000000000 +0100
+@@ -1912,7 +1912,7 @@
+ # Set up files for the main() stub
+ if test "x$video_qtopia" = "xyes"; then
+ SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
+- SDL_LIBS="-lSDLmain $SDL_LIBS"
++
+ fi
+ # Set up files for the audio library
+ # We use the OSS and ALSA API's, not the Sun audio API
+diff -Naur SDL-1.2.9-orig/src/main/Makefile.am SDL-1.2.9/src/main/Makefile.am
+--- SDL-1.2.9-orig/src/main/Makefile.am 2004-02-12 07:21:13.000000000 +0100
++++ SDL-1.2.9/src/main/Makefile.am 2007-03-12 20:55:18.000000000 +0100
+@@ -21,11 +21,7 @@
+ if TARGET_MACOSX
+ MAINLIB_ARCH_SRCS = macosx/SDLMain.m macosx/SDLMain.h
+ else
+-if TARGET_QTOPIA
+-MAINLIB_ARCH_SRCS = qtopia/SDL_qtopia_main.cc
+-else
+ MAINLIB_ARCH_SRCS = dummy/SDL_dummy_main.c
+-endif # !TARGET_QTOPIA
+ endif # !TARGET_MACOSX
+ endif # !TARGET_WIN32
+ libSDLmain_a_SOURCES = $(MAINLIB_ARCH_SRCS)
+diff -Naur SDL-1.2.9-orig/src/main/qtopia/SDL_qtopia_main.cc SDL-1.2.9/src/main/qtopia/SDL_qtopia_main.cc
+--- SDL-1.2.9-orig/src/main/qtopia/SDL_qtopia_main.cc 2003-12-14 07:25:53.000000000 +0100
++++ SDL-1.2.9/src/main/qtopia/SDL_qtopia_main.cc 1970-01-01 01:00:00.000000000 +0100
+@@ -1,47 +0,0 @@
+-
+-/* Include the SDL main definition header */
+-#include "SDL_main.h"
+-#include <stdlib.h>
+-#include <unistd.h>
+-#ifdef main
+-#undef main
+-#endif
+-#ifdef QWS
+-#include <qpe/qpeapplication.h>
+-#include <qapplication.h>
+-#include <qpe/qpeapplication.h>
+-#include <stdlib.h>
+-
+-// Workaround for OPIE to remove taskbar icon. Also fixes
+-// some issues in Qtopia where there are left-over qcop files in /tmp/.
+-// I'm guessing this will also clean up the taskbar in the Sharp version
+-// of Qtopia.
+-static inline void cleanupQCop() {
+- QString appname(qApp->argv()[0]);
+- int slash = appname.findRev("/");
+- if(slash != -1) { appname = appname.mid(slash+1); }
+- QString cmd = QPEApplication::qpeDir() + "bin/qcop QPE/System 'closing(QString)' '"+appname+"'";
+- system(cmd.latin1());
+- cmd = "/tmp/qcop-msg-"+appname;
+- unlink(cmd.latin1());
+-}
+-
+-static QPEApplication *app;
+-#endif
+-
+-extern int SDL_main(int argc, char *argv[]);
+-
+-int main(int argc, char *argv[])
+-{
+-#ifdef QWS
+- // This initializes the Qtopia application. It needs to be done here
+- // because it parses command line options.
+- app = new QPEApplication(argc, argv);
+- QWidget dummy;
+- app->showMainWidget(&dummy);
+- atexit(cleanupQCop);
+-#endif
+- // Exit here because if return is used, the application
+- // doesn't seem to quit correctly.
+- exit(SDL_main(argc, argv));
+-}
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/Makefile.am SDL-1.2.9/src/video/qtopia/Makefile.am
+--- SDL-1.2.9-orig/src/video/qtopia/Makefile.am 2002-05-28 21:24:11.000000000 +0200
++++ SDL-1.2.9/src/video/qtopia/Makefile.am 2007-03-12 20:55:18.000000000 +0100
+@@ -15,4 +15,5 @@
+ SDL_syswm.cc \
+ SDL_syswm_c.h \
+ SDL_sysevents.cc \
+- SDL_sysevents_c.h
++ SDL_sysevents_c.h \
++ SDL_qmain.cc
+diff -Naur SDL-1.2.9-orig/src/video/qtopia/SDL_qmain.cc SDL-1.2.9/src/video/qtopia/SDL_qmain.cc
+--- SDL-1.2.9-orig/src/video/qtopia/SDL_qmain.cc 1970-01-01 01:00:00.000000000 +0100
++++ SDL-1.2.9/src/video/qtopia/SDL_qmain.cc 2007-03-12 20:55:18.000000000 +0100
+@@ -0,0 +1,99 @@
++/* Include the SDL main definition header */
++#include "SDL_main.h"
++#include <stdlib.h>
++
++#include <sys/types.h>
++#include <fcntl.h>
++#include <unistd.h>
++
++
++#ifdef QWS
++#include <qpe/qpeapplication.h>
++#include <stdlib.h>
++#include <string.h>
++
++
++
++static QWidget *dummyW = 0;
++static QPEApplication *theApp = 0;
++static char **cmdline= 0;
++static int size = 0;
++
++static void parse_cmd_line() {
++ /*
++ * find the number
++ */
++ char buf[1024];
++ int available = 0;
++ char *string_start = 0;
++ int fd = ::open( "/proc/self/cmdline", O_RDONLY );
++ if ( fd < 0 ) {
++ qWarning( "Error getting the cmdline, can't be" );
++ goto error_out;
++ }
++
++ available = ::read( fd, &buf, sizeof(buf) );
++ if ( available <= 0 )
++ goto error_out;
++
++ /*
++ * find out the number of arguments
++ */
++ size = 0;
++ for (int i = 0; i < available; ++i )
++ if ( buf[i] == '\0' )
++ ++size;
++
++ /* now create a the cmdline */
++ cmdline = new char*[size+1];
++ cmdline[size] = '\0'; // parnoid...
++
++ string_start = &buf[0];
++ for ( int i = 0; i < size; ++i ) {
++ /*
++ * find the end of the string
++ */
++ size_t sz = ::strlen(string_start);
++ cmdline[i] = new char[sz+1];
++ memcpy( cmdline[i], string_start, sz+1 );
++ string_start += (sz+1); // +1 for '\0' +1 to set it beyond
++ }
++
++ ::close(fd);
++
++ return;
++
++/* error code */
++error_out:
++ cmdline = new char*[2];
++ cmdline[0] = "unknown_app";
++ cmdline[1] = '\0';
++ size = 1;
++}
++
++static void free_cmd_line() {
++ /*
++ * free each string and then free the array
++ */
++ for ( int i = 0; i < size; ++i )
++ delete [] cmdline[i];
++
++ delete [] cmdline;
++}
++
++static void __attribute__((constructor)) initialize_qpe_app() {
++ parse_cmd_line();
++
++ theApp = new QPEApplication( size, cmdline );
++ dummyW = new QWidget;
++ theApp->showMainWidget(dummyW);
++}
++
++static void __attribute__((destructor)) deinitialize_qpe_app() {
++ free_cmd_line();
++ delete dummyW;
++ delete theApp;
++}
++
++
++#endif
diff --git a/packages/libsdl/libsdl-qpe_1.2.9.bb b/packages/libsdl/libsdl-qpe_1.2.9.bb
new file mode 100644
index 0000000000..eaca6b88aa
--- /dev/null
+++ b/packages/libsdl/libsdl-qpe_1.2.9.bb
@@ -0,0 +1,67 @@
+DESCRIPTION = "Simple DirectMedia Layer - QtE-based Palmtop Environments Edition"
+SECTION = "opie/libs"
+PRIORITY = "optional"
+DEPENDS = "virtual/libqpe1 libopie2"
+PROVIDES = "virtual/libsdl"
+LICENSE = "LGPL"
+
+# NOTE: make sure to keep PR in sync with libsdl-x11
+PR = "r0"
+
+SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
+ file://agawa-piro-mickey-1.2.9.patch;patch=1 \
+ file://pygame-1.2.9.patch;patch=1 \
+ file://mouse-1.2.9.patch;patch=1 \
+ file://kill-stdc++-1.2.9.patch;patch=1 \
+ file://ipaq-1.2.9.patch;patch=1 \
+ file://SDL-Akita-1.2.9.patch;patch=1 \
+ file://fixlibs-1.2.9.patch;patch=1 \
+ file://acinclude.m4"
+S = "${WORKDIR}/SDL-${PV}"
+
+inherit autotools binconfig
+
+EXTRA_OECONF = "--disable-static --disable-debug --enable-cdrom --enable-threads --enable-timers --enable-endian \
+ --enable-file --enable-oss --disable-alsa --disable-esd --disable-arts \
+ --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \
+ --disable-mintaudio --disable-nasm --disable-video-x11 --disable-video-dga \
+ --disable-video-fbcon --disable-video-directfb --disable-video-ps2gs \
+ --disable-video-xbios --disable-video-gem --disable-video-dummy \
+ --disable-video-opengl --enable-input-events --enable-pthreads \
+ --disable-video-picogui --enable-video-qtopia --enable-dlopen"
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${bindir}/*config"
+
+do_compile_prepend() {
+ rm -f ${S}/acinclude.m4
+ cp ${WORKDIR}/acinclude.m4 ${S}/
+ if [ "${PALMTOP_USE_MULTITHREADED_QT}" == "yes" ]
+ then
+ sed -i s,-lqte,-lqte-mt, src/Makefile
+ fi
+}
+
+do_configure_append () {
+ cd ${S}
+
+ # prevent libtool from linking libs against libstdc++, libgcc, ...
+ cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp
+ mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool
+}
+
+do_stage() {
+ oe_libinstall -so -C src libSDL ${STAGING_LIBDIR}
+ rm ${STAGING_LIBDIR}/libSDL.la
+ ln -sf libSDL.so ${STAGING_LIBDIR}/libSDL-1.2.so
+ install -m 0655 src/main/libSDLmain.a src/main/.libs/
+ oe_libinstall -a -C src/main libSDLmain ${STAGING_LIBDIR}
+
+ install -d ${STAGING_INCDIR}/SDL
+ for f in include/*.h
+ do
+ install -m 0644 $f ${STAGING_INCDIR}/SDL/
+ done
+
+ install -m 0644 *.m4 ${STAGING_DATADIR}/aclocal/
+}
diff --git a/packages/lrzsz/lrzsz_0.12.20.bb b/packages/lrzsz/lrzsz_0.12.20.bb
index 8110661ac1..0a194f9a05 100644
--- a/packages/lrzsz/lrzsz_0.12.20.bb
+++ b/packages/lrzsz/lrzsz_0.12.20.bb
@@ -3,7 +3,7 @@ SECTION = "console/network"
PRIORITY = "standard"
DESCRIPTION = "Tools for zmodem/xmodem/ymodem file transfer"
DEPENDS = ""
-PR = "r2"
+PR = "r3"
SRC_URI = "http://www.ohse.de/uwe/releases/lrzsz-${PV}.tar.gz \
file://autotools.patch;patch=1 \
@@ -15,10 +15,16 @@ inherit autotools gettext
do_install() {
install -d ${D}${bindir}/
install -m 0755 src/lrz src/lsz ${D}${bindir}/
- ln -sf ./lrz ${D}${bindir}/rz
- ln -sf ./lrz ${D}${bindir}/rx
- ln -sf ./lrz ${D}${bindir}/rb
- ln -sf ./lsz ${D}${bindir}/sz
- ln -sf ./lsz ${D}${bindir}/sx
- ln -sf ./lsz ${D}${bindir}/sb
}
+
+pkg_postinst() {
+ for util in rz rx rb sz sx sb; do
+ update-alternatives --install ${bindir}/$util $util lrz 100
+ done
+}
+
+pkg_postrm() {
+ for util in rz rx rb sz sx sb; do
+ update-alternatives --remove $util ${bindir}/lrz
+ done
+} \ No newline at end of file
diff --git a/packages/netatalk/.mtn2git_empty b/packages/netatalk/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netatalk/.mtn2git_empty
diff --git a/packages/netatalk/files/.mtn2git_empty b/packages/netatalk/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netatalk/files/.mtn2git_empty
diff --git a/packages/netatalk/files/init b/packages/netatalk/files/init
new file mode 100755
index 0000000000..926f9bbb1e
--- /dev/null
+++ b/packages/netatalk/files/init
@@ -0,0 +1,111 @@
+#!/sbin/runscript
+
+# AppleTalk daemons. Make sure not to start atalkd in the background:
+# its data structures must have time to stablize before running the
+# other processes.
+
+depend() {
+ need net
+ use logger dns
+}
+
+atalk_startup () {
+# . /etc/netatalk/netatalk.conf
+
+ if [ "${ATALKD_RUN}" != "no" ]; then
+ ebegin "Starting atalkd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/atalkd
+ eend $?
+
+ for reg in \
+ "${ATALK_NAME}:Workstation${ATALK_ZONE}" \
+ "${ATALK_NAME}:netatalk${ATALK_ZONE}"
+ do
+ ebegin " Registering $reg"
+ /usr/bin/nbprgstr "$reg"
+ eend $?
+ done
+
+ if [ "${PAPD_RUN}" = "yes" ]; then
+ ebegin " Starting papd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/papd
+ eend $?
+ fi
+
+ fi
+
+ if [ "${CNID_METAD_RUN}" = "yes" ] ; then
+ ebegin "Starting cnid_metad"
+ start-stop-daemon --start --quiet --exec /usr/sbin/cnid_metad
+ eend $?
+ fi
+
+
+ if [ "${AFPD_RUN}" = "yes" ]; then
+ ebegin "Starting afpd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/afpd -- \
+ ${AFPD_UAMLIST} -g ${AFPD_GUEST} -c ${AFPD_MAX_CLIENTS} \
+ -n "${ATALK_NAME}${ATALK_ZONE}"
+ eend $?
+ fi
+
+ if [ "${TIMELORD_RUN}" = "yes" ]; then
+ ebegin "Starting timelord"
+ start-stop-daemon --start --quiet --exec /usr/sbin/timelord
+ eend $?
+ fi
+}
+
+start () {
+ . /etc/netatalk/netatalk.conf
+
+ if [ x"${ATALK_BGROUND}" = x"yes" ]; then
+ echo "Starting netatalk in the background ... "
+ atalk_startup >& /dev/null &
+ else
+ atalk_startup
+ fi
+}
+
+stop () {
+ . /etc/netatalk/netatalk.conf
+
+ if [ "${AFPD_RUN}" = "yes" ]; then
+ ebegin "Stopping afpd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/afpd
+ eend $?
+ fi
+
+ if [ "${TIMELORD_RUN}" = "yes" ]; then
+ ebegin "Stopping timelord"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/timelord
+ eend $?
+ fi
+
+ if [ "${ATALKD_RUN}" != "no" ]; then
+ if [ "${PAPD_RUN}" = "yes" ]; then
+ ebegin "Stopping papd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/papd
+ eend $?
+ fi
+
+ for reg in \
+ "${ATALK_NAME}:Workstation${ATALK_ZONE}" \
+ "${ATALK_NAME}:netatalk${ATALK_ZONE}"
+ do
+ ebegin "Unregistering $reg"
+ /usr/bin/nbpunrgstr "$reg"
+ eend $?
+ done
+
+ ebegin "Stopping atalkd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/atalkd
+ eend $?
+ fi
+
+ if [ "${CNID_METAD_RUN}" = "yes" ] ; then
+ ebegin "Stopping cnid_metad"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/cnid_metad
+ eend $?
+ fi
+}
diff --git a/packages/netatalk/netatalk-2.0.3/.mtn2git_empty b/packages/netatalk/netatalk-2.0.3/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netatalk/netatalk-2.0.3/.mtn2git_empty
diff --git a/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-db43.patch b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-db43.patch
new file mode 100644
index 0000000000..93d3e4b9ea
--- /dev/null
+++ b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-db43.patch
@@ -0,0 +1,32 @@
+Index: netatalk-2.0.3/bin/cnid/cnid_index.c
+===================================================================
+--- netatalk-2.0.3.orig/bin/cnid/cnid_index.c
++++ netatalk-2.0.3/bin/cnid/cnid_index.c
+@@ -274,7 +274,11 @@ static int dbif_count(const int dbi, u_i
+ DB_BTREE_STAT *sp;
+ DB *db = db_table[dbi].db;
+
++#if DB_VERSION_MAJOR > 4 || ( DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3 )
++ ret = db->stat(db, db_txn, &sp, 0);
++#else
+ ret = db->stat(db, &sp, 0);
++#endif
+
+ if (ret) {
+ LOG(log_error, logtype_cnid, "error getting stat infotmation on database: %s", db_strerror(errno));
+Index: netatalk-2.0.3/etc/cnid_dbd/dbif.c
+===================================================================
+--- netatalk-2.0.3.orig/etc/cnid_dbd/dbif.c
++++ netatalk-2.0.3/etc/cnid_dbd/dbif.c
+@@ -514,7 +514,11 @@ int dbif_count(const int dbi, u_int32_t
+ DB_BTREE_STAT *sp;
+ DB *db = db_table[dbi].db;
+
++#if DB_VERSION_MAJOR > 4 || ( DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3 )
++ ret = db->stat(db, db_txn, &sp, 0);
++#else
+ ret = db->stat(db, &sp, 0);
++#endif
+
+ if (ret) {
+ LOG(log_error, logtype_cnid, "error getting stat infotmation on database: %s", db_strerror(errno));
diff --git a/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-newerdb.patch b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-newerdb.patch
new file mode 100644
index 0000000000..f64c8cf5eb
--- /dev/null
+++ b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-newerdb.patch
@@ -0,0 +1,28 @@
+Index: netatalk-2.0.3/macros/db3-check.m4
+===================================================================
+--- netatalk-2.0.3.orig/macros/db3-check.m4
++++ netatalk-2.0.3/macros/db3-check.m4
+@@ -115,6 +115,14 @@ int main(void) {
+ AC_DEFUN([NETATALK_BERKELEY_LINK],
+ [
+ atalk_cv_lib_db=no
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_4,[-ldb-4.4])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db44,[-ldb44])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db_44,[-ldb-44])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_4,[-ldb-4-4])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_3,[-ldb-4.3])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db43,[-ldb43])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db_43,[-ldb-43])
++NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_3,[-ldb-4-3])
+ NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_2,[-ldb-4.2])
+ NETATALK_BDB_LINK_TRY(atalk_cv_db_db42,[-ldb42])
+ NETATALK_BDB_LINK_TRY(atalk_cv_db_db_42,[-ldb-42])
+@@ -134,7 +142,7 @@ AC_DEFUN([AC_PATH_BDB],
+ trybdbdir=""
+ dobdbsearch=yes
+ bdb_search_dirs="/usr/local/include /usr/include"
+- search_subdirs="/db4.2 /db42 /db4.1 /db41 /db4 /"
++ search_subdirs="/db4.4 /db44 /db4.3 /db43 /db4.2 /db42 /db4.1 /db41 /db4 /"
+
+ dnl required BDB version
+ DB_MAJOR_REQ=4
diff --git a/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-setXid.patch b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-setXid.patch
new file mode 100644
index 0000000000..70170c134d
--- /dev/null
+++ b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-setXid.patch
@@ -0,0 +1,14 @@
+Index: netatalk-2.0.3/bin/afppasswd/Makefile.am
+===================================================================
+--- netatalk-2.0.3.orig/bin/afppasswd/Makefile.am
++++ netatalk-2.0.3/bin/afppasswd/Makefile.am
+@@ -12,7 +12,8 @@ afppasswd_SOURCES = afppasswd.c
+ afppasswd_LDADD = $(top_builddir)/libatalk/libatalk.la @SSL_LIBS@
+
+ CFLAGS = @CFLAGS@ @SSL_CFLAGS@ -I$(top_srcdir)/sys \
+- -D_PATH_AFPDPWFILE=\"$(pkgconfdir)/afppasswd\"
++ -D_PATH_AFPDPWFILE=\"$(pkgconfdir)/afppasswd\" \
++ @BINDNOW_FLAGS@
+
+ install-exec-hook:
+ if USE_DHX
diff --git a/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-xfs.patch b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-xfs.patch
new file mode 100644
index 0000000000..e91ebcebd2
--- /dev/null
+++ b/packages/netatalk/netatalk-2.0.3/netatalk-2.0.3-xfs.patch
@@ -0,0 +1,22 @@
+Index: netatalk-2.0.3/configure.in
+===================================================================
+--- netatalk-2.0.3.orig/configure.in
++++ netatalk-2.0.3/configure.in
+@@ -694,12 +694,16 @@ fi
+ # AC_MSG_RESULT([enabling quotactl wrapper])
+ # )
+
++AC_ARG_WITH([xfs],
++ AS_HELP_STRING([--without-xfs], [Build without XFS filesystem quota support]))
++
++if test "x$with_xfs" != "xno"; then
+ # For quotas on Linux XFS filesystems
+ AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h)
+ AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)
+ # For linux > 2.5.56
+ AC_CHECK_HEADERS(linux/dqblk_xfs.h)
+-
++fi
+
+ dnl ----- as far as I can tell, dbtob always does the wrong thing
+ dnl ----- on every single version of linux I've ever played with.
diff --git a/packages/netatalk/netatalk_2.0.3.bb b/packages/netatalk/netatalk_2.0.3.bb
new file mode 100644
index 0000000000..74cfd84042
--- /dev/null
+++ b/packages/netatalk/netatalk_2.0.3.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Appletalk protocol suite"
+SECTION = "net"
+PR = "r0"
+LICENSE = "GPL"
+
+DEPENDS = "cups db openssl libpam"
+
+SRC_URI = "http://ovh.dl.sourceforge.net/sourceforge/netatalk/netatalk-${PV}.tar.gz \
+ file://netatalk-2.0.3-db43.patch;patch=1 \
+ file://netatalk-2.0.3-newerdb.patch;patch=1 \
+ file://netatalk-2.0.3-xfs.patch;patch=1 \
+ file://init \
+ "
+INITSCRIPT_NAME = "atalk"
+INITSCRIPT_PARAMS = "defaults 65"
+
+inherit autotools update-rc.d
+
+do_configure () {
+ autoreconf
+ ac_cv_header_rpcsvc_rquota_h=no LDFLAGS="-lpthread -L${STAGING_DIR}/${TARGET_SYS}/lib" ./configure \
+ --build=${BUILD_SYS} \
+ --host=${HOST_SYS} \
+ --target=${TARGET_SYS} \
+ --prefix=${prefix} \
+ --with-bdb=${STAGING_DIR}/${TARGET_SYS} \
+ --with-ssl-dir=${STAGING_DIR}/${TARGET_SYS} \
+ --without-shadow \
+ --sysconfdir=${sysconfdir} \
+ --disable-nls \
+ --disable-static \
+ --with-pam \
+ --mandir=${mandir}
+ cp ${STAGING_DIR}/${BUILD_SYS}/bin/${TARGET_SYS}-libtool ./${TARGET_SYS}-libtool
+}
+
+do_install_append() {
+ install -D -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/atalk
+}
diff --git a/packages/netbase/netbase/slugos/.mtn2git_empty b/packages/netbase/netbase/slugos/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netbase/netbase/slugos/.mtn2git_empty
diff --git a/packages/netbase/netbase/slugos/if-down.d/.mtn2git_empty b/packages/netbase/netbase/slugos/if-down.d/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netbase/netbase/slugos/if-down.d/.mtn2git_empty
diff --git a/packages/netbase/netbase/slugos/if-post-down.d/.mtn2git_empty b/packages/netbase/netbase/slugos/if-post-down.d/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netbase/netbase/slugos/if-post-down.d/.mtn2git_empty
diff --git a/packages/netbase/netbase/slugos/if-pre-up.d/.mtn2git_empty b/packages/netbase/netbase/slugos/if-pre-up.d/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netbase/netbase/slugos/if-pre-up.d/.mtn2git_empty
diff --git a/packages/netbase/netbase/slugos/if-pre-up.d/udhcpc-fix b/packages/netbase/netbase/slugos/if-pre-up.d/udhcpc-fix
new file mode 100644
index 0000000000..7d2e9705ea
--- /dev/null
+++ b/packages/netbase/netbase/slugos/if-pre-up.d/udhcpc-fix
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# This works around a problem where udhcpc times out w/o getting a lease
+# due to slow auto-negotiate.
+
+if test "$IFACE" = "eth0" -a "$METHOD" = "dhcp"
+then
+ echo -n "[sleeping 5s]..."
+ ifconfig eth0 up
+ sleep 5
+fi
+
diff --git a/packages/netbase/netbase/slugos/if-up.d/.mtn2git_empty b/packages/netbase/netbase/slugos/if-up.d/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netbase/netbase/slugos/if-up.d/.mtn2git_empty
diff --git a/packages/netbase/netbase_4.21.bb b/packages/netbase/netbase_4.21.bb
index 265da46360..f97d8986aa 100644
--- a/packages/netbase/netbase_4.21.bb
+++ b/packages/netbase/netbase_4.21.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "This package provides the necessary \
infrastructure for basic TCP/IP based networking."
SECTION = "base"
LICENSE = "GPL"
-PR = "r14"
+PR = "r15"
inherit update-rc.d
@@ -18,7 +18,11 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/netbase/netbase_${PV}.tar.gz \
file://options \
file://init \
file://hosts \
- file://interfaces"
+ file://interfaces \
+ file://if-pre-up.d \
+ file://if-up.d \
+ file://if-down.d \
+ file://if-post-down.d"
do_install () {
install -d ${D}${sysconfdir}/init.d \
@@ -28,6 +32,15 @@ do_install () {
${D}${sysconfdir}/network/if-up.d \
${D}${sysconfdir}/network/if-down.d \
${D}${sysconfdir}/network/if-post-down.d
+
+ for dir in if-pre-up.d if-up.d if-down.d if-post-down.d
+ do
+ for script in `ls -1 "${WORKDIR}/${dir}"`
+ do
+ install -m 0755 "${WORKDIR}/${dir}/${script}" "${D}${sysconfdir}/network/${dir}"
+ done
+ done
+
install -m 0644 ${WORKDIR}/options ${D}${sysconfdir}/network/options
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/networking
install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts
diff --git a/packages/tzcode/tzcode-native_2007c.bb b/packages/tzcode/tzcode-native_2007c.bb
index 126658bd39..aed4253e81 100644
--- a/packages/tzcode/tzcode-native_2007c.bb
+++ b/packages/tzcode/tzcode-native_2007c.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "tzcode, timezone zoneinfo utils -- zic, zdump, tzselect"
-PR = "r1"
+PR = "r2"
SRC_URI = "ftp://elsie.nci.nih.gov/pub/tzcode${PV}.tar.gz \
ftp://elsie.nci.nih.gov/pub/tzdata${PV}.tar.gz"
@@ -10,9 +10,10 @@ S = "${WORKDIR}"
inherit native
do_stage () {
- install -m 755 zic ${STAGING_BINDIR_NATIVE}
- install -m 755 zdump ${STAGING_BINDIR_NATIVE}
- install -m 755 tzselect ${STAGING_BINDIR_NATIVE}
+ install -d ${STAGING_BINDIR_NATIVE}
+ install -m 755 zic ${STAGING_BINDIR_NATIVE}/
+ install -m 755 zdump ${STAGING_BINDIR_NATIVE}/
+ install -m 755 tzselect ${STAGING_BINDIR_NATIVE}/
}
do_install () {
diff --git a/packages/uboot-utils/uboot-utils_1.1.2.bb b/packages/uboot-utils/uboot-utils_1.1.2.bb
index 292c97f134..621a55c964 100644
--- a/packages/uboot-utils/uboot-utils_1.1.2.bb
+++ b/packages/uboot-utils/uboot-utils_1.1.2.bb
@@ -3,7 +3,7 @@ SECTION = "bootloaders"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "mtd-utils"
-PR = "r3"
+PR = "r4"
SRC_URI = "${SOURCEFORGE_MIRROR}/u-boot/u-boot-${PV}.tar.bz2 \
file://fw_env.c.patch;patch=1 \
@@ -30,7 +30,8 @@ do_compile () {
# install mkimage for the kernel makefile
do_stage() {
- install -m 755 ${S}/tools/mkimage ${STAGING_BINDIR_NATIVE}
+ install -d ${STAGING_BINDIR_NATIVE}
+ install -m 755 ${S}/tools/mkimage ${STAGING_BINDIR_NATIVE}/
}
do_install () {
diff --git a/packages/uboot/u-boot.inc b/packages/uboot/u-boot.inc
index 3b26e55f1b..d9b2f7b7c9 100644
--- a/packages/uboot/u-boot.inc
+++ b/packages/uboot/u-boot.inc
@@ -26,5 +26,6 @@ do_deploy[dirs] = "${S}"
addtask deploy before do_build after do_compile
do_stage() {
- install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}
+ install -d ${STAGING_BINDIR_NATIVE}
+ install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}/
}
diff --git a/packages/webcam-server/.mtn2git_empty b/packages/webcam-server/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/webcam-server/.mtn2git_empty
diff --git a/packages/webcam-server/webcam-server_0.50.bb b/packages/webcam-server/webcam-server_0.50.bb
new file mode 100644
index 0000000000..737ef75977
--- /dev/null
+++ b/packages/webcam-server/webcam-server_0.50.bb
@@ -0,0 +1,23 @@
+#! /bin/sh
+#
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2007
+# License: MIT (see http://www.opensource.org/licenses/mit-license.php
+# for a copy of the license)
+#
+# Filename: Untitled
+# Date: 20070317 (YMD)
+
+DESCRIPTION = "webcam_server is a program that allows others to view your webcam from a web browser."
+MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>"
+HOMEPAGE = "http://webcamserver.sourceforge.net/"
+LICENSE = "GPL"
+
+######################################################################################
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/webcamserver/webcam_server-${PV}.tar.gz"
+
+S = "${WORKDIR}/webcam_server-${PV}"
+
+######################################################################################
+
+inherit autotools
diff --git a/packages/xserver-common/xserver-common_1.14.bb b/packages/xserver-common/xserver-common_1.14.bb
index d608231348..48320ba006 100644
--- a/packages/xserver-common/xserver-common_1.14.bb
+++ b/packages/xserver-common/xserver-common_1.14.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts and support files"
LICENSE = "GPL"
SECTION = "x11"
RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo"
-PR = "r1"
+PR = "r2"
PACKAGE_ARCH = "all"
@@ -10,7 +10,8 @@ PACKAGE_ARCH = "all"
inherit gpe
SRC_URI_append = " file://setDPI.sh \
- file://xserver-imageon.patch;patch=1"
+ file://xserver-imageon.patch;patch=1 \
+ file://calibrate-only-if-ts.patch;patch=1"
do_install_append() {
install -m 0755 "${WORKDIR}/setDPI.sh" "${D}/etc/X11/Xinit.d/50setdpi"
diff --git a/packages/xserver-common/xserver-common_1.15.bb b/packages/xserver-common/xserver-common_1.15.bb
index d608231348..48320ba006 100644
--- a/packages/xserver-common/xserver-common_1.15.bb
+++ b/packages/xserver-common/xserver-common_1.15.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts and support files"
LICENSE = "GPL"
SECTION = "x11"
RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo"
-PR = "r1"
+PR = "r2"
PACKAGE_ARCH = "all"
@@ -10,7 +10,8 @@ PACKAGE_ARCH = "all"
inherit gpe
SRC_URI_append = " file://setDPI.sh \
- file://xserver-imageon.patch;patch=1"
+ file://xserver-imageon.patch;patch=1 \
+ file://calibrate-only-if-ts.patch;patch=1"
do_install_append() {
install -m 0755 "${WORKDIR}/setDPI.sh" "${D}/etc/X11/Xinit.d/50setdpi"