summaryrefslogtreecommitdiff
path: root/packages/qemu
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2006-11-05 23:29:09 +0000
committerRichard Purdie <rpurdie@rpsys.net>2006-11-05 23:29:09 +0000
commit5bb7ecf66ef4068e1b29f07e4be0c9f126b8eafa (patch)
tree0a28f1c82318b5c34f630ec40f20466d40793e5c /packages/qemu
parent83f47bd69f7ed257be72bec3fd524cf4128ed29a (diff)
qemu: Drop unused files
Diffstat (limited to 'packages/qemu')
-rw-r--r--packages/qemu/files/mouse_fix-r0.patch25
-rw-r--r--packages/qemu/files/nodocs_cvs.patch44
-rw-r--r--packages/qemu/files/qemu-usb-wacom.patch444
-rw-r--r--packages/qemu/files/qemu-x-no-sdl.patch630
-rw-r--r--packages/qemu/files/trunk_nodocs.patch41
5 files changed, 0 insertions, 1184 deletions
diff --git a/packages/qemu/files/mouse_fix-r0.patch b/packages/qemu/files/mouse_fix-r0.patch
deleted file mode 100644
index 8cc19f0392..0000000000
--- a/packages/qemu/files/mouse_fix-r0.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-If the cursor is hidden (SDL_ShowCursor(0)) and the input is grabbed
-(SDL_WM_GrabInput(SDL_GRAB_ON)), then the mouse will give relative motion
-events even when the cursor reaches the edge fo the screen. This is currently
-only implemented on Windows and Linux/Unix-a-likes.
-
-Index: qemu/sdl.c
-===================================================================
---- qemu.orig/sdl.c 2006-04-13 12:22:22.000000000 +0100
-+++ qemu/sdl.c 2006-05-25 00:28:25.000000000 +0100
-@@ -280,13 +280,13 @@
-
- static void sdl_hide_cursor(void)
- {
-- SDL_SetCursor(sdl_cursor_hidden);
-+ SDL_ShowCursor(0);
- }
-
- static void sdl_show_cursor(void)
- {
- if (!kbd_mouse_is_absolute()) {
-- SDL_SetCursor(sdl_cursor_normal);
-+ SDL_ShowCursor(1);
- }
- }
-
diff --git a/packages/qemu/files/nodocs_cvs.patch b/packages/qemu/files/nodocs_cvs.patch
deleted file mode 100644
index b52d860fb0..0000000000
--- a/packages/qemu/files/nodocs_cvs.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: qemu/Makefile
-===================================================================
---- qemu.orig/Makefile 2006-04-18 11:11:37.000000000 +0100
-+++ qemu/Makefile 2006-04-18 11:14:34.000000000 +0100
-@@ -11,7 +11,7 @@
- ifdef CONFIG_STATIC
- LDFLAGS+=-static
- endif
--DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
-+DOCS=
-
- all: dyngen$(EXESUF) $(TOOLS) $(DOCS)
- for d in $(TARGET_DIRS); do \
-@@ -51,11 +51,11 @@
- video.x proll.elf linux_boot.bin; do \
- $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
- done
-- mkdir -p "$(DESTDIR)$(docdir)"
-- $(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
-+# mkdir -p "$(DESTDIR)$(docdir)"
-+# $(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
- ifndef CONFIG_WIN32
-- mkdir -p "$(DESTDIR)$(mandir)/man1"
-- $(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
-+# mkdir -p "$(DESTDIR)$(mandir)/man1"
-+# $(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
- mkdir -p "$(DESTDIR)$(datadir)/keymaps"
- for x in $(KEYMAPS); do \
- $(INSTALL) -m 644 $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
-@@ -122,10 +122,10 @@
- $(datadir)/ppc_rom.bin \
- $(datadir)/video.x \
- $(datadir)/proll.elf \
-- $(datadir)/linux_boot.bin \
-- $(docdir)/qemu-doc.html \
-- $(docdir)/qemu-tech.html \
-- $(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
-+ $(datadir)/linux_boot.bin
-+# $(docdir)/qemu-doc.html \
-+# $(docdir)/qemu-tech.html \
-+# $(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
-
- ifneq ($(wildcard .depend),)
- include .depend
diff --git a/packages/qemu/files/qemu-usb-wacom.patch b/packages/qemu/files/qemu-usb-wacom.patch
deleted file mode 100644
index c1c39eccaf..0000000000
--- a/packages/qemu/files/qemu-usb-wacom.patch
+++ /dev/null
@@ -1,444 +0,0 @@
-diff -pNaur qemu-cvs-ts-orig/hw/usb-wacom.c qemu-cvs-ts/hw/usb-wacom.c
---- qemu-cvs-ts-orig/hw/usb-wacom.c 1970-01-01 01:00:00.000000000 +0100
-+++ qemu-cvs-ts/hw/usb-wacom.c 2006-09-22 20:44:26.000000000 +0200
-@@ -0,0 +1,407 @@
-+/*
-+ * Wacom PenPartner USB tablet emulation.
-+ *
-+ * Copyright (c) 2006 Openedhand Ltd.
-+ *
-+ * Author: Andrzej Zaborowski <balrog@zabor.org>
-+ *
-+ * Based on hw/usb-hid.c:
-+ * Copyright (c) 2005 Fabrice Bellard
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this software and associated documentation files (the "Software"), to deal
-+ * in the Software without restriction, including without limitation the rights
-+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-+ * copies of the Software, and to permit persons to whom the Software is
-+ * furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-+ * THE SOFTWARE.
-+ */
-+#include "vl.h"
-+
-+/* Interface requests */
-+#define WACOM_GET_REPORT 0x2101
-+#define WACOM_SET_REPORT 0x2109
-+
-+/* HID interface requests */
-+#define HID_GET_REPORT 0xa101
-+#define HID_GET_IDLE 0xa102
-+#define HID_GET_PROTOCOL 0xa103
-+#define HID_SET_IDLE 0x210a
-+#define HID_SET_PROTOCOL 0x210b
-+
-+#define WACOM_MODE_HID 1
-+#define WACOM_MODE_WACOM 2
-+
-+typedef struct USBWacomState {
-+ USBDevice dev;
-+ int dx, dy, dz, buttons_state;
-+ int x, y;
-+ int mouse_grabbed;
-+ int mode;
-+} USBWacomState;
-+
-+static const uint8_t qemu_wacom_dev_descriptor[] = {
-+ 0x12, /* u8 bLength; */
-+ 0x01, /* u8 bDescriptorType; Device */
-+ 0x10, 0x10, /* u16 bcdUSB; v1.10 */
-+
-+ 0x00, /* u8 bDeviceClass; */
-+ 0x00, /* u8 bDeviceSubClass; */
-+ 0x00, /* u8 bDeviceProtocol; [ low/full speeds only ] */
-+ 0x08, /* u8 bMaxPacketSize0; 8 Bytes */
-+
-+ 0x6a, 0x05, /* u16 idVendor; */
-+ 0x00, 0x00, /* u16 idProduct; */
-+ 0x10, 0x42, /* u16 bcdDevice */
-+
-+ 0x01, /* u8 iManufacturer; */
-+ 0x02, /* u8 iProduct; */
-+ 0x00, /* u8 iSerialNumber; */
-+ 0x01, /* u8 bNumConfigurations; */
-+};
-+
-+static const uint8_t qemu_wacom_config_descriptor[] = {
-+ /* one configuration */
-+ 0x09, /* u8 bLength; */
-+ 0x02, /* u8 bDescriptorType; Configuration */
-+ 0x22, 0x00, /* u16 wTotalLength; */
-+ 0x01, /* u8 bNumInterfaces; (1) */
-+ 0x01, /* u8 bConfigurationValue; */
-+ 0x00, /* u8 iConfiguration; */
-+ 0x80, /* u8 bmAttributes;
-+ Bit 7: must be set,
-+ 6: Self-powered,
-+ 5: Remote wakeup,
-+ 4..0: resvd */
-+ 40, /* u8 MaxPower; */
-+
-+ /* one interface */
-+ 0x09, /* u8 if_bLength; */
-+ 0x04, /* u8 if_bDescriptorType; Interface */
-+ 0x00, /* u8 if_bInterfaceNumber; */
-+ 0x00, /* u8 if_bAlternateSetting; */
-+ 0x01, /* u8 if_bNumEndpoints; */
-+ 0x03, /* u8 if_bInterfaceClass; HID */
-+ 0x01, /* u8 if_bInterfaceSubClass; Boot */
-+ 0x02, /* u8 if_bInterfaceProtocol; [usb1.1 or single tt] */
-+ 0x00, /* u8 if_iInterface; */
-+
-+ /* HID descriptor */
-+ 0x09, /* u8 bLength; */
-+ 0x21, /* u8 bDescriptorType; */
-+ 0x01, 0x10, /* u16 HID_class */
-+ 0x00, /* u8 country_code */
-+ 0x01, /* u8 num_descriptors */
-+ 0x22, /* u8 type; Report */
-+ 0x6e, 0x00, /* u16 len */
-+
-+ /* one endpoint (status change endpoint) */
-+ 0x07, /* u8 ep_bLength; */
-+ 0x05, /* u8 ep_bDescriptorType; Endpoint */
-+ 0x81, /* u8 ep_bEndpointAddress; IN Endpoint 1 */
-+ 0x03, /* u8 ep_bmAttributes; Interrupt */
-+ 0x08, 0x00, /* u16 ep_wMaxPacketSize; */
-+ 0x0a, /* u8 ep_bInterval; */
-+};
-+
-+static void usb_mouse_event(void *opaque,
-+ int dx1, int dy1, int dz1, int buttons_state)
-+{
-+ USBWacomState *s = opaque;
-+
-+ s->dx += dx1;
-+ s->dy += dy1;
-+ s->dz += dz1;
-+ s->buttons_state = buttons_state;
-+}
-+
-+static void usb_wacom_event(void *opaque,
-+ int x, int y, int dz, int buttons_state)
-+{
-+ USBWacomState *s = opaque;
-+
-+ s->x = x;
-+ s->y = y;
-+ s->dz += dz;
-+ s->buttons_state = buttons_state;
-+}
-+
-+static inline int int_clamp(int val, int vmin, int vmax)
-+{
-+ if (val < vmin)
-+ return vmin;
-+ else if (val > vmax)
-+ return vmax;
-+ else
-+ return val;
-+}
-+
-+static int usb_mouse_poll(USBWacomState *s, uint8_t *buf, int len)
-+{
-+ int dx, dy, dz, b, l;
-+
-+ if (!s->mouse_grabbed) {
-+ qemu_add_mouse_event_handler(usb_mouse_event, s, 1);
-+ s->mouse_grabbed = 1;
-+ }
-+
-+ dx = int_clamp(s->dx, -128, 127);
-+ dy = int_clamp(s->dy, -128, 127);
-+ dz = int_clamp(s->dz, -128, 127);
-+
-+ s->dx -= dx;
-+ s->dy -= dy;
-+ s->dz -= dz;
-+
-+ b = 0;
-+ if (s->buttons_state & MOUSE_EVENT_LBUTTON)
-+ b |= 0x01;
-+ if (s->buttons_state & MOUSE_EVENT_RBUTTON)
-+ b |= 0x02;
-+ if (s->buttons_state & MOUSE_EVENT_MBUTTON)
-+ b |= 0x04;
-+
-+ buf[0] = b;
-+ buf[1] = dx;
-+ buf[2] = dy;
-+ l = 3;
-+ if (len >= 4) {
-+ buf[3] = dz;
-+ l = 4;
-+ }
-+ return l;
-+}
-+
-+static int usb_wacom_poll(USBWacomState *s, uint8_t *buf, int len)
-+{
-+ int b;
-+
-+ if (!s->mouse_grabbed) {
-+ qemu_add_mouse_event_handler(usb_wacom_event, s, 1);
-+ s->mouse_grabbed = 1;
-+ }
-+
-+ b = 0;
-+ if (s->buttons_state & MOUSE_EVENT_LBUTTON)
-+ b |= 0x01;
-+ if (s->buttons_state & MOUSE_EVENT_RBUTTON)
-+ b |= 0x02;
-+ if (s->buttons_state & MOUSE_EVENT_MBUTTON)
-+ b |= 0x04;
-+
-+ if (len < 7)
-+ return 0;
-+
-+ buf[0] = s->mode;
-+ buf[1] = s->x & 0xff;
-+ buf[2] = s->x >> 8;
-+ buf[3] = s->y & 0xff;
-+ buf[4] = s->y >> 8;
-+ if (b) {
-+ buf[5] = 0x40;
-+ buf[6] = 0;
-+ } else {
-+ buf[5] = 0x00;
-+ buf[6] = (unsigned char) -120;
-+ }
-+
-+ return 7;
-+}
-+
-+static void usb_wacom_handle_reset(USBDevice *dev)
-+{
-+ USBWacomState *s = (USBWacomState *) dev;
-+
-+ s->dx = 0;
-+ s->dy = 0;
-+ s->dz = 0;
-+ s->x = 0;
-+ s->y = 0;
-+ s->buttons_state = 0;
-+ s->mode = WACOM_MODE_HID;
-+}
-+
-+static int usb_wacom_handle_control(USBDevice *dev, int request, int value,
-+ int index, int length, uint8_t *data)
-+{
-+ USBWacomState *s = (USBWacomState *) dev;
-+ int ret = 0;
-+
-+ switch (request) {
-+ case DeviceRequest | USB_REQ_GET_STATUS:
-+ data[0] = (1 << USB_DEVICE_SELF_POWERED) |
-+ (dev->remote_wakeup << USB_DEVICE_REMOTE_WAKEUP);
-+ data[1] = 0x00;
-+ ret = 2;
-+ break;
-+ case DeviceOutRequest | USB_REQ_CLEAR_FEATURE:
-+ if (value == USB_DEVICE_REMOTE_WAKEUP) {
-+ dev->remote_wakeup = 0;
-+ } else {
-+ goto fail;
-+ }
-+ ret = 0;
-+ break;
-+ case DeviceOutRequest | USB_REQ_SET_FEATURE:
-+ if (value == USB_DEVICE_REMOTE_WAKEUP) {
-+ dev->remote_wakeup = 1;
-+ } else {
-+ goto fail;
-+ }
-+ ret = 0;
-+ break;
-+ case DeviceOutRequest | USB_REQ_SET_ADDRESS:
-+ dev->addr = value;
-+ ret = 0;
-+ break;
-+ case DeviceRequest | USB_REQ_GET_DESCRIPTOR:
-+ switch (value >> 8) {
-+ case USB_DT_DEVICE:
-+ memcpy(data, qemu_wacom_dev_descriptor,
-+ sizeof(qemu_wacom_dev_descriptor));
-+ ret = sizeof(qemu_wacom_dev_descriptor);
-+ break;
-+ case USB_DT_CONFIG:
-+ memcpy(data, qemu_wacom_config_descriptor,
-+ sizeof(qemu_wacom_config_descriptor));
-+ ret = sizeof(qemu_wacom_config_descriptor);
-+ break;
-+ case USB_DT_STRING:
-+ switch (value & 0xff) {
-+ case 0:
-+ /* language ids */
-+ data[0] = 4;
-+ data[1] = 3;
-+ data[2] = 0x09;
-+ data[3] = 0x04;
-+ ret = 4;
-+ break;
-+ case 1:
-+ /* serial number */
-+ ret = set_usb_string(data, "1");
-+ break;
-+ case 2:
-+ ret = set_usb_string(data, "Wacom PenPartner");
-+ break;
-+ case 3:
-+ /* vendor description */
-+ ret = set_usb_string(data, "QEMU " QEMU_VERSION);
-+ break;
-+ case 4:
-+ ret = set_usb_string(data, "Wacom Tablet");
-+ break;
-+ case 5:
-+ ret = set_usb_string(data, "Endpoint1 Interrupt Pipe");
-+ break;
-+ default:
-+ goto fail;
-+ }
-+ break;
-+ default:
-+ goto fail;
-+ }
-+ break;
-+ case DeviceRequest | USB_REQ_GET_CONFIGURATION:
-+ data[0] = 1;
-+ ret = 1;
-+ break;
-+ case DeviceOutRequest | USB_REQ_SET_CONFIGURATION:
-+ ret = 0;
-+ break;
-+ case DeviceRequest | USB_REQ_GET_INTERFACE:
-+ data[0] = 0;
-+ ret = 1;
-+ break;
-+ case DeviceOutRequest | USB_REQ_SET_INTERFACE:
-+ ret = 0;
-+ break;
-+ case WACOM_SET_REPORT:
-+ qemu_add_mouse_event_handler(NULL, NULL, 0);
-+ s->mouse_grabbed = 0;
-+ s->mode = data[0];
-+ ret = 0;
-+ break;
-+ case WACOM_GET_REPORT:
-+ data[0] = 0;
-+ data[1] = s->mode;
-+ ret = 2;
-+ break;
-+ /* USB HID requests */
-+ case HID_GET_REPORT:
-+ if (s->mode == WACOM_MODE_HID)
-+ ret = usb_mouse_poll(s, data, length);
-+ else if (s->mode == WACOM_MODE_WACOM)
-+ ret = usb_wacom_poll(s, data, length);
-+ break;
-+ case HID_SET_IDLE:
-+ ret = 0;
-+ break;
-+ default:
-+ fail:
-+ ret = USB_RET_STALL;
-+ break;
-+ }
-+ return ret;
-+}
-+
-+static int usb_wacom_handle_data(USBDevice *dev, USBPacket *p)
-+{
-+ USBWacomState *s = (USBWacomState *) dev;
-+ int ret = 0;
-+
-+ switch (p->pid) {
-+ case USB_TOKEN_IN:
-+ if (p->devep == 1) {
-+ if (s->mode == WACOM_MODE_HID)
-+ ret = usb_mouse_poll(s, p->data, p->len);
-+ else if (s->mode == WACOM_MODE_WACOM)
-+ ret = usb_wacom_poll(s, p->data, p->len);
-+ break;
-+ }
-+ /* Fall through. */
-+ case USB_TOKEN_OUT:
-+ default:
-+ ret = USB_RET_STALL;
-+ break;
-+ }
-+ return ret;
-+}
-+
-+static void usb_wacom_handle_destroy(USBDevice *dev)
-+{
-+ USBWacomState *s = (USBWacomState *) dev;
-+
-+ qemu_add_mouse_event_handler(NULL, NULL, 0);
-+ qemu_free(s);
-+}
-+
-+USBDevice *usb_wacom_init(void)
-+{
-+ USBWacomState *s;
-+
-+ s = qemu_mallocz(sizeof(USBWacomState));
-+ if (!s)
-+ return NULL;
-+ s->dev.speed = USB_SPEED_FULL;
-+ s->dev.handle_packet = usb_generic_handle_packet;
-+
-+ s->dev.handle_reset = usb_wacom_handle_reset;
-+ s->dev.handle_control = usb_wacom_handle_control;
-+ s->dev.handle_data = usb_wacom_handle_data;
-+ s->dev.handle_destroy = usb_wacom_handle_destroy;
-+
-+ pstrcpy(s->dev.devname, sizeof(s->dev.devname),
-+ "QEMU PenPartner Tablet");
-+
-+ return (USBDevice *) s;
-+}
-diff -pNaur qemu-cvs-ts-orig/hw/usb.h qemu-cvs-ts/hw/usb.h
---- qemu-cvs-ts-orig/hw/usb.h 2006-08-12 03:04:27.000000000 +0200
-+++ qemu-cvs-ts/hw/usb.h 2006-09-21 01:40:40.000000000 +0200
-@@ -218,3 +218,6 @@ USBDevice *usb_tablet_init(void);
-
- /* usb-msd.c */
- USBDevice *usb_msd_init(const char *filename);
-+
-+/* usb-wacom.c */
-+USBDevice *usb_wacom_init(void);
-diff -pNaur qemu-cvs-ts-orig/vl.c qemu-cvs-ts/vl.c
---- qemu-cvs-ts-orig/vl.c 2006-09-10 16:39:54.000000000 +0200
-+++ qemu-cvs-ts/vl.c 2006-09-21 01:45:16.000000000 +0200
-@@ -3765,6 +3765,8 @@ static int usb_device_add(const char *de
- dev = usb_tablet_init();
- } else if (strstart(devname, "disk:", &p)) {
- dev = usb_msd_init(p);
-+ } else if (!strcmp(devname, "wacom-tablet")) {
-+ dev = usb_wacom_init();
- } else {
- return -1;
- }
-diff -pNaur qemu-cvs-ts-orig/Makefile.target qemu-cvs-ts/Makefile.target
---- qemu-cvs-ts-orig/Makefile.target 2006-09-18 03:15:29.000000000 +0200
-+++ qemu-cvs-ts/Makefile.target 2006-09-21 02:32:19.000000000 +0200
-@@ -330,6 +330,7 @@ VL_OBJS+= scsi-disk.o cdrom.o lsi53c895a
-
- # USB layer
- VL_OBJS+= usb.o usb-hub.o usb-linux.o usb-hid.o usb-ohci.o usb-msd.o
-+VL_OBJS+= usb-wacom.o
-
- # PCI network cards
- VL_OBJS+= ne2000.o rtl8139.o pcnet.o
diff --git a/packages/qemu/files/qemu-x-no-sdl.patch b/packages/qemu/files/qemu-x-no-sdl.patch
deleted file mode 100644
index eb00d9806b..0000000000
--- a/packages/qemu/files/qemu-x-no-sdl.patch
+++ /dev/null
@@ -1,630 +0,0 @@
-diff -urN qemu-0.8.2/configure qemu-0.8.2-x/configure
---- qemu-0.8.2/configure 2006-07-22 18:23:34.000000000 +0100
-+++ qemu-0.8.2-x/configure 2006-08-24 14:24:33.000000000 +0100
-@@ -492,6 +492,21 @@
- fi # cross compilation
- fi # -z $sdl
-
-+##########################################
-+# X Probe
-+
-+x11=no
-+if test -z "$sdl" || test "$sdl" = "no"; then
-+ x11=yes
-+fi
-+
-+if test "$x11" = "yes"; then
-+ x11=no
-+ if `pkg-config --exists x11 xext`; then
-+ x11=yes
-+ fi
-+fi
-+
- # Check if tools are available to build documentation.
- if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
- build_docs="yes"
-@@ -540,6 +555,7 @@
- if test "$sdl" != "no" ; then
- echo "SDL static link $sdl_static"
- fi
-+echo "X11 support $x11"
- echo "mingw32 support $mingw32"
- echo "Adlib support $adlib"
- echo "CoreAudio support $coreaudio"
-@@ -748,14 +764,14 @@
- fi
-
- if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
-- -a "$sdl" = "no" -a "$cocoa" = "no" ; then
-+ -a "$sdl" = "no" -a "$x11" = "no" -a "$cocoa" = "no" ; then
- echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
- echo "To build QEMU without graphical output configure with --disable-gfx-check"
- echo "Note that this will disable all output from the virtual graphics card."
- exit 1;
- fi
-
--#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
-+echo "Creating $config_mak, $config_h and $target_dir/Makefile"
-
- mkdir -p $target_dir
- mkdir -p $target_dir/fpu
-@@ -882,6 +898,14 @@
- fi
- fi
-
-+# x11
-+if test "$x11" = "yes"; then
-+ echo "#define CONFIG_X11 1" >> $config_h
-+ echo "CONFIG_X11=yes" >> $config_mak
-+ echo "X11_LIBS=`pkg-config --libs x11 xext`" >> $config_mak
-+ echo "X11_CFLAGS=`pkg-config --cflags x11 xext`" >> $config_mak
-+fi
-+
- if test "$cocoa" = "yes" ; then
- echo "#define CONFIG_COCOA 1" >> $config_h
- echo "CONFIG_COCOA=yes" >> $config_mak
-diff -urN qemu-0.8.2/Makefile.target qemu-0.8.2-x/Makefile.target
---- qemu-0.8.2/Makefile.target 2006-07-22 18:23:34.000000000 +0100
-+++ qemu-0.8.2-x/Makefile.target 2006-08-23 14:47:17.000000000 +0100
-@@ -376,6 +376,9 @@
- ifdef CONFIG_SDL
- VL_OBJS+=sdl.o
- endif
-+ifdef CONFIG_X11
-+VL_OBJS+=x.o
-+endif
- VL_OBJS+=vnc.o
- ifdef CONFIG_COCOA
- VL_OBJS+=cocoa.o
-@@ -426,7 +429,7 @@
- endif
-
- $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
-- $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS)
-+ $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(X11_LIBS) $(COCOA_LIBS) $(VL_LIBS)
-
- cocoa.o: cocoa.m
- $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
-@@ -434,6 +437,10 @@
- sdl.o: sdl.c keymaps.c sdl_keysym.h
- $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<
-
-+x.o: x.c keymaps.c
-+ $(CC) $(CFLAGS) $(DEFINES) $(X11_CFLAGS) -c -o $@ $<
-+
-+
- vnc.o: vnc.c keymaps.c sdl_keysym.h vnchextile.h
- $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
-
-diff -urN qemu-0.8.2/vl.c qemu-0.8.2-x/vl.c
---- qemu-0.8.2/vl.c 2006-07-22 18:23:34.000000000 +0100
-+++ qemu-0.8.2-x/vl.c 2006-09-29 18:58:26.000000000 +0100
-@@ -5217,6 +5217,9 @@
- #ifdef USE_CODE_COPY
- "-no-code-copy disable code copy acceleration\n"
- #endif
-+#if defined(CONFIG_X11)
-+ "-parent xid Use pre-existing window as qemu output window\n"
-+#endif
- #ifdef TARGET_I386
- "-std-vga simulate a standard VGA card with VESA Bochs Extensions\n"
- " (default is CL-GD5446 PCI VGA)\n"
-@@ -5302,6 +5305,8 @@
- QEMU_OPTION_smp,
- QEMU_OPTION_vnc,
- QEMU_OPTION_no_acpi,
-+
-+ QEMU_OPTION_parent_xid,
- };
-
- typedef struct QEMUOption {
-@@ -5361,6 +5366,9 @@
- #if defined(TARGET_PPC) || defined(TARGET_SPARC)
- { "g", 1, QEMU_OPTION_g },
- #endif
-+#if defined(CONFIG_X11)
-+ { "parent", HAS_ARG, QEMU_OPTION_parent_xid },
-+#endif
- { "localtime", 0, QEMU_OPTION_localtime },
- { "std-vga", 0, QEMU_OPTION_std_vga },
- { "monitor", 1, QEMU_OPTION_monitor },
-@@ -5608,6 +5616,10 @@
- char usb_devices[MAX_USB_CMDLINE][128];
- int usb_devices_index;
-
-+#if defined(CONFIG_X11)
-+ unsigned long parent_xid = 0;
-+#endif
-+
- LIST_INIT (&vm_change_state_head);
- #ifndef _WIN32
- {
-@@ -6021,6 +6033,11 @@
- case QEMU_OPTION_no_acpi:
- acpi_enabled = 0;
- break;
-+#if defined(CONFIG_X11)
-+ case QEMU_OPTION_parent_xid:
-+ parent_xid = strtol(optarg, NULL, 0);
-+ break;
-+#endif
- }
- }
- }
-@@ -6142,6 +6159,8 @@
- sdl_display_init(ds, full_screen);
- #elif defined(CONFIG_COCOA)
- cocoa_display_init(ds, full_screen);
-+#elif defined(CONFIG_X11)
-+ x_display_init(ds, full_screen, parent_xid);
- #else
- dumb_display_init(ds);
- #endif
-diff -urN qemu-0.8.2/vl.h qemu-0.8.2-x/vl.h
---- qemu-0.8.2/vl.h 2006-07-22 18:23:34.000000000 +0100
-+++ qemu-0.8.2-x/vl.h 2006-09-29 18:35:32.000000000 +0100
-@@ -767,6 +767,9 @@
- /* vnc.c */
- void vnc_display_init(DisplayState *ds, int display);
-
-+/* x.c */
-+void x_display_init(DisplayState *ds, int display, unsigned long parent_xid);
-+
- /* ide.c */
- #define MAX_DISKS 4
-
-diff -urN qemu-0.8.2/x.c qemu-0.8.2-x/x.c
---- qemu-0.8.2/x.c 1970-01-01 01:00:00.000000000 +0100
-+++ qemu-0.8.2-x/x.c 2006-09-29 18:35:02.000000000 +0100
-@@ -0,0 +1,451 @@
-+#include "vl.h"
-+
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+#include <X11/Xatom.h>
-+#include <X11/keysym.h>
-+#include <X11/extensions/XShm.h>
-+
-+#include <sys/ipc.h>
-+#include <sys/shm.h>
-+
-+typedef struct XHostScreen
-+{
-+ Display *xdpy;
-+ int xscreen;
-+ Visual *xvisual;
-+ Window xwin, xwinroot;
-+ GC xgc;
-+ int xdepth;
-+ XImage *ximg;
-+ int xwin_width, xwin_height;
-+ Bool use_fullscreen;
-+ Bool have_shm;
-+ unsigned char *fb_data;
-+ unsigned long cmap[256];
-+ XShmSegmentInfo shminfo;
-+}
-+XHostScreen;
-+
-+static XHostScreen *xscreen;
-+static int trapped_error_code = 0;
-+static int (*old_error_handler) (Display *d, XErrorEvent *e);
-+
-+static void
-+x_update(DisplayState *ds, int x, int y, int w, int h);
-+
-+static int
-+error_handler(Display *display,
-+ XErrorEvent *error)
-+{
-+ trapped_error_code = error->error_code;
-+ return 0;
-+}
-+
-+static void
-+x_errors_trap(void)
-+{
-+ trapped_error_code = 0;
-+ old_error_handler = XSetErrorHandler(error_handler);
-+}
-+
-+static int
-+x_errors_untrap(void)
-+{
-+ XSetErrorHandler(old_error_handler);
-+ return trapped_error_code;
-+}
-+
-+static void
-+x_update(DisplayState *ds, int x, int y, int w, int h)
-+{
-+ if (xscreen->have_shm)
-+ {
-+ XShmPutImage(xscreen->xdpy, xscreen->xwin, xscreen->xgc, xscreen->ximg,
-+ x, y, x, y, w, h, False);
-+ }
-+ else
-+ {
-+ XPutImage(xscreen->xdpy, xscreen->xwin, xscreen->xgc, xscreen->ximg,
-+ x, y, x, y, w, h);
-+ }
-+
-+ XSync(xscreen->xdpy, False);
-+}
-+
-+static void
-+x_resize(DisplayState *ds, int w, int h)
-+{
-+ Bool shm_success = False;
-+ int bitmap_pad;
-+ XSizeHints *size_hints;
-+
-+ if (xscreen->ximg != NULL)
-+ {
-+ if (xscreen->have_shm)
-+ {
-+ XShmDetach(xscreen->xdpy, &xscreen->shminfo);
-+ XDestroyImage (xscreen->ximg);
-+ shmdt(xscreen->shminfo.shmaddr);
-+ shmctl(xscreen->shminfo.shmid, IPC_RMID, 0);
-+ }
-+ else
-+ {
-+ if (xscreen->ximg->data)
-+ {
-+ free(xscreen->ximg->data);
-+ xscreen->ximg->data = NULL;
-+ }
-+
-+ XDestroyImage(xscreen->ximg);
-+ }
-+ }
-+
-+ if (xscreen->have_shm)
-+ {
-+ xscreen->ximg = XShmCreateImage(xscreen->xdpy,
-+ xscreen->xvisual,
-+ xscreen->xdepth,
-+ ZPixmap,
-+ NULL,
-+ &xscreen->shminfo,
-+ w, h );
-+
-+ xscreen->shminfo.shmid
-+ = shmget(IPC_PRIVATE,
-+ xscreen->ximg->bytes_per_line * h,
-+ IPC_CREAT|0777);
-+ xscreen->shminfo.shmaddr = xscreen->ximg->data
-+ = shmat(xscreen->shminfo.shmid, 0, 0);
-+
-+ if (xscreen->ximg->data == (char *)-1)
-+ {
-+ xscreen->have_shm = False;
-+ XDestroyImage(xscreen->ximg);
-+ shmctl(xscreen->shminfo.shmid, IPC_RMID, 0);
-+ }
-+ else
-+ {
-+ xscreen->shminfo.readOnly = False;
-+ XShmAttach(xscreen->xdpy, &xscreen->shminfo);
-+ shm_success = True;
-+ }
-+ }
-+
-+ if (!shm_success)
-+ {
-+ bitmap_pad = ( xscreen->xdepth > 16 ) ?
-+ 32 : (( xscreen->xdepth > 8 )? 16 : 8 );
-+
-+ xscreen->ximg = XCreateImage( xscreen->xdpy,
-+ xscreen->xvisual,
-+ xscreen->xdepth,
-+ ZPixmap, 0, 0,
-+ w,
-+ h,
-+ bitmap_pad,
-+ 0);
-+
-+ xscreen->ximg->data
-+ = malloc( xscreen->ximg->bytes_per_line * h );
-+ }
-+
-+ XResizeWindow(xscreen->xdpy, xscreen->xwin, w, h);
-+
-+ /* Ask the WM to keep our size static */
-+ size_hints = XAllocSizeHints();
-+ size_hints->max_width = size_hints->min_width = w;
-+ size_hints->max_height = size_hints->min_height = h;
-+ size_hints->flags = PMinSize|PMaxSize;
-+ XSetWMNormalHints(xscreen->xdpy, xscreen->xwin, size_hints);
-+ XFree(size_hints);
-+
-+ XMapWindow(xscreen->xdpy, xscreen->xwin);
-+
-+ XSync(xscreen->xdpy, False);
-+
-+ xscreen->xwin_width = w;
-+ xscreen->xwin_height = h;
-+
-+ if (1) // (ds->depth == xscreen->xdepth)
-+ {
-+ ds->data = xscreen->ximg->data;
-+ }
-+ else
-+ {
-+ xscreen->fb_data = malloc(w*h*(ds->depth>>3));
-+ ds->data = xscreen->fb_data;
-+ }
-+
-+ ds->linesize = xscreen->ximg->bytes_per_line;
-+ ds->depth = (xscreen->xdepth >= 24) ? 32 : xscreen->xdepth;
-+ ds->bgr = 0;
-+
-+#if 0
-+ if (ds->depth == 32 && screen->format->Rshift == 0) {
-+ ds->bgr = 1;
-+ } else {
-+ ds->bgr = 0;
-+ }
-+#endif
-+
-+ ds->width = w;
-+ ds->height = h;
-+
-+}
-+
-+static void
-+x_refresh(DisplayState *ds)
-+{
-+ vga_hw_update();
-+}
-+
-+static int
-+x_listen_poll(void *opaque)
-+{
-+ return XPending(xscreen->xdpy);
-+}
-+
-+static void
-+x_grab(void)
-+{
-+ static Bool grab = False;
-+
-+ if (!grab)
-+ {
-+ if (XGrabPointer (xscreen->xdpy, xscreen->xwin,
-+ True,
-+ NoEventMask,
-+ GrabModeAsync,
-+ GrabModeAsync,
-+ xscreen->xwin, None, CurrentTime) == 0
-+ && XGrabKeyboard (xscreen->xdpy, xscreen->xwin, True,
-+ GrabModeAsync,
-+ GrabModeAsync,
-+ CurrentTime) == 0)
-+ {
-+ grab = True;
-+ XStoreName(xscreen->xdpy, xscreen->xwin,
-+ "QEmu (ctrl+shift releases mouse and keyboard )");
-+ }
-+ }
-+ else
-+ {
-+ XUngrabPointer (xscreen->xdpy, CurrentTime);
-+ XUngrabKeyboard (xscreen->xdpy, CurrentTime);
-+ grab = False;
-+ XStoreName(xscreen->xdpy, xscreen->xwin,
-+ "QEmu (ctrl+shift grabs mouse and keyboard )");
-+ }
-+}
-+
-+static void
-+x_listen_read(void *opaque)
-+{
-+ XEvent xev;
-+ DisplayState *ds = opaque;
-+ Bool grabbed = False;
-+ static int last_x = 0, last_y = 0, button_state = 0, state;
-+
-+ if (XPending(xscreen->xdpy))
-+ {
-+ XNextEvent(xscreen->xdpy, &xev);
-+
-+ switch (xev.type)
-+ {
-+ case EnterNotify:
-+ case LeaveNotify:
-+ break;
-+ case FocusIn:
-+ if (!kbd_mouse_is_absolute())
-+ x_grab();
-+ break;
-+ case FocusOut:
-+ break;
-+ case Expose:
-+ while (XCheckTypedWindowEvent(xscreen->xdpy, xev.xexpose.window,
-+ Expose, &xev));
-+ x_update(ds, 0, 0,
-+ xscreen->xwin_width,
-+ xscreen->xwin_height);
-+ break;
-+ case KeyRelease:
-+ if ((XKeycodeToKeysym(xscreen->xdpy,
-+ xev.xkey.keycode,0) == XK_Shift_L
-+ || XKeycodeToKeysym(xscreen->xdpy,
-+ xev.xkey.keycode,0) == XK_Shift_R)
-+ && (xev.xkey.state & ControlMask))
-+ {
-+ x_grab();
-+ break;
-+ }
-+ case KeyPress:
-+ {
-+ int keycode = xev.xkey.keycode-8; /* X adds 8 to keycode */
-+
-+ /* FIXME: LUT needed here me thinks */
-+
-+ if (keycode & 0x80) /* Extended */
-+ kbd_put_keycode(0xe0);
-+
-+ if (xev.type == KeyPress)
-+ kbd_put_keycode(keycode & 0x7f);
-+ else
-+ kbd_put_keycode(keycode | 0x80);
-+ }
-+ break;
-+ case ButtonPress:
-+ case ButtonRelease:
-+ case MotionNotify:
-+ {
-+ int ev_state, ev_x, ev_y, dx, dy;
-+
-+ state = 0;
-+
-+ if (xev.type == MotionNotify)
-+ {
-+ ev_state = xev.xmotion.state;
-+ ev_x = xev.xmotion.x;
-+ ev_y = xev.xmotion.y;
-+
-+ if (ev_state & Button1Mask)
-+ state |= MOUSE_EVENT_LBUTTON;
-+ if (ev_state & Button2Mask)
-+ state |= MOUSE_EVENT_RBUTTON;
-+ if (ev_state & Button3Mask)
-+ state |= MOUSE_EVENT_MBUTTON;
-+
-+ /* Touchscreen dont send motion notifys */
-+ if (kbd_mouse_is_absolute() && state == 0)
-+ break;
-+ }
-+ else
-+ {
-+ ev_state = xev.xbutton.state;
-+ ev_x = xev.xbutton.x;
-+ ev_y = xev.xbutton.y;
-+
-+ if (xev.type == ButtonPress)
-+ {
-+ if (xev.xbutton.button == Button1)
-+ state |= MOUSE_EVENT_LBUTTON;
-+ if (xev.xbutton.state == Button1)
-+ state |= MOUSE_EVENT_RBUTTON;
-+ if (xev.xbutton.state & Button3)
-+ state |= MOUSE_EVENT_MBUTTON;
-+ }
-+ }
-+
-+ if (kbd_mouse_is_absolute())
-+ {
-+ dx = ev_x * 0x7FFF / xscreen->xwin_width;
-+ dy = ev_y * 0x7FFF / xscreen->xwin_height;
-+ }
-+ else
-+ {
-+ dx = ev_x - last_x;
-+ dy = ev_y - last_y;
-+ }
-+
-+ kbd_mouse_event(dx, dy, 0, state);
-+
-+ last_x = ev_x;
-+ last_y = ev_y;
-+ }
-+ break;
-+ default:
-+ break;
-+
-+ }
-+ }
-+ return;
-+}
-+
-+void
-+x_display_init(DisplayState *ds, int full_screen, unsigned long parent_xid)
-+{
-+ Cursor empty_cursor;
-+ Pixmap cursor_pxm;
-+ XColor col;
-+ XSetWindowAttributes attr;
-+
-+ xscreen = malloc(sizeof(XHostScreen));
-+ memset(xscreen, 0, sizeof(XHostScreen));
-+
-+ if ((xscreen->xdpy = XOpenDisplay(getenv("DISPLAY"))) == NULL)
-+ {
-+ fprintf(stderr, "\nqemu cannot open host display. Is DISPLAY set?\n");
-+ exit(-1);
-+ }
-+
-+ xscreen->xscreen = DefaultScreen(xscreen->xdpy);
-+ xscreen->xwinroot = RootWindow(xscreen->xdpy, xscreen->xscreen);
-+ xscreen->xgc = XCreateGC(xscreen->xdpy, xscreen->xwinroot, 0, NULL);
-+ xscreen->xdepth = DefaultDepth(xscreen->xdpy, xscreen->xscreen);
-+ xscreen->xvisual = DefaultVisual(xscreen->xdpy, xscreen->xscreen);
-+
-+ attr.event_mask = ButtonPressMask|ButtonReleaseMask|PointerMotionMask
-+ |KeyPressMask|KeyReleaseMask|ExposureMask
-+ |FocusChangeMask|EnterWindowMask|LeaveWindowMask;
-+
-+ xscreen->xwin = XCreateWindow(xscreen->xdpy,
-+ xscreen->xwinroot,
-+ 0,0,640,480,
-+ 0,
-+ CopyFromParent,
-+ CopyFromParent,
-+ CopyFromParent,
-+ CWEventMask,
-+ &attr);
-+
-+ xscreen->have_shm = True;
-+
-+ if (!XShmQueryExtension(xscreen->xdpy) || getenv("QEMU_X_NO_SHM"))
-+ {
-+ xscreen->have_shm = False;
-+ }
-+ else
-+ {
-+ XShmSegmentInfo shminfo;
-+
-+ shminfo.shmid=shmget(IPC_PRIVATE, 1, IPC_CREAT|0777);
-+ shminfo.shmaddr=shmat(shminfo.shmid,0,0);
-+ shminfo.readOnly=True;
-+
-+ x_errors_trap();
-+
-+ XShmAttach(xscreen->xdpy, &shminfo);
-+ XSync(xscreen->xdpy, False);
-+
-+ if (x_errors_untrap())
-+ {
-+ fprintf(stderr, "QEmu unable to use SHM XImages\n");
-+ xscreen->have_shm = False;
-+ }
-+
-+ shmdt(shminfo.shmaddr);
-+ shmctl(shminfo.shmid, IPC_RMID, 0);
-+ }
-+
-+ if (!kbd_mouse_is_absolute())
-+ {
-+ /* Only hide cursor if were not a touchscreen */
-+ cursor_pxm = XCreatePixmap (xscreen->xdpy, xscreen->xwinroot, 1, 1, 1);
-+ memset (&col, 0, sizeof (col));
-+ empty_cursor = XCreatePixmapCursor (xscreen->xdpy,
-+ cursor_pxm, cursor_pxm,
-+ &col, &col, 1, 1);
-+ XDefineCursor (xscreen->xdpy, xscreen->xwin, empty_cursor);
-+ XFreePixmap (xscreen->xdpy, cursor_pxm);
-+ }
-+
-+ ds->dpy_update = x_update;
-+ ds->dpy_resize = x_resize;
-+ ds->dpy_refresh = x_refresh;
-+
-+ if ((qemu_set_fd_handler2 (ConnectionNumber(xscreen->xdpy),
-+ x_listen_poll, x_listen_read, NULL, ds)) == -1)
-+ exit(-1);
-+
-+ x_resize(ds, 640, 480);
-+}
diff --git a/packages/qemu/files/trunk_nodocs.patch b/packages/qemu/files/trunk_nodocs.patch
deleted file mode 100644
index 0bf8fcb593..0000000000
--- a/packages/qemu/files/trunk_nodocs.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -Naur trunk_orig/Makefile trunk/Makefile
---- trunk_orig/Makefile 2006-06-06 10:09:03.000000000 +0300
-+++ trunk/Makefile 2006-06-06 17:18:59.000000000 +0300
-@@ -18,7 +18,8 @@
- LDFLAGS+=-static
- endif
- ifdef BUILD_DOCS
--DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
-+#DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
-+DOCS=
- else
- DOCS=
- endif
-@@ -58,10 +59,10 @@
-
- install-doc: $(DOCS)
- mkdir -p "$(DESTDIR)$(docdir)"
-- $(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
-+ #$(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
- ifndef CONFIG_WIN32
- mkdir -p "$(DESTDIR)$(mandir)/man1"
-- $(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
-+ #$(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
- endif
-
- install: all $(if $(BUILD_DOCS),install-doc)
-@@ -151,10 +152,10 @@
- $(datadir)/ppc_rom.bin \
- $(datadir)/video.x \
- $(datadir)/proll.elf \
-- $(datadir)/linux_boot.bin \
-- $(docdir)/qemu-doc.html \
-- $(docdir)/qemu-tech.html \
-- $(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
-+ $(datadir)/linux_boot.bin
-+# $(docdir)/qemu-doc.html \
-+# $(docdir)/qemu-tech.html \
-+# $(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
-
- ifneq ($(wildcard .depend),)
- include .depend