Show a cover letter.

GET /api/covers/812824/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 812824,
    "url": "http://patchwork.ozlabs.org/api/covers/812824/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170912123744.14730-1-berrange@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170912123744.14730-1-berrange@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-12T12:37:32",
    "name": "[v5,00/12] Convert over to use keycodemapdb",
    "submitter": {
        "id": 2694,
        "url": "http://patchwork.ozlabs.org/api/people/2694/?format=api",
        "name": "Daniel P. Berrangé",
        "email": "berrange@redhat.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170912123744.14730-1-berrange@redhat.com/mbox/",
    "series": [
        {
            "id": 2692,
            "url": "http://patchwork.ozlabs.org/api/series/2692/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2692",
            "date": "2017-09-12T12:37:33",
            "name": "Convert over to use keycodemapdb",
            "version": 5,
            "mbox": "http://patchwork.ozlabs.org/series/2692/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/812824/comments/",
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=berrange@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xs4B01fbwz9t7q\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 22:39:24 +1000 (AEST)",
            "from localhost ([::1]:35572 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drkSl-0000fi-M4\n\tfor incoming@patchwork.ozlabs.org; Tue, 12 Sep 2017 08:38:47 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:48532)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <berrange@redhat.com>) id 1drkRz-0000d3-Kg\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 08:38:01 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <berrange@redhat.com>) id 1drkRu-0003Oh-V3\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 08:37:59 -0400",
            "from mx1.redhat.com ([209.132.183.28]:60120)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <berrange@redhat.com>) id 1drkRu-0003OL-M4\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 08:37:54 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 8E1B85AFC7\n\tfor <qemu-devel@nongnu.org>; Tue, 12 Sep 2017 12:37:53 +0000 (UTC)",
            "from localhost.localdomain.com (unknown [10.42.22.189])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id D010677D65;\n\tTue, 12 Sep 2017 12:37:50 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 8E1B85AFC7",
        "From": "\"Daniel P. Berrange\" <berrange@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Tue, 12 Sep 2017 13:37:32 +0100",
        "Message-Id": "<20170912123744.14730-1-berrange@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.12",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.39]);\n\tTue, 12 Sep 2017 12:37:53 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "Gerd Hoffmann <kraxel@redhat.com>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "An update of:\n\n  v1: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02047.html\n  v2: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02471.html\n  v3: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02517.html\n  v4: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02708.html\n\nThe keycodemap project[1] provides a database mapping between many different\nkeysym/keycode/scancode sets, along with a tool to generate mapping/lookup\ntables in various programming languages. It is already used by GTK-VNC,\nSPICE-GTK and libvirt.\n\nThis series enables its use in QEMU, thus fixing a great many bugs/ommissions\nin the 15+ key mapping tables people have manually written for QEMU.\n\nThe keycodemapdb code is designed to be used as a git sub-module, it is\nnot an external dependancy you need installed before use. In this version,\nhowever, the sub-module is not directly use. Instead all the generated\nfiles are checked into GIT. The downside to this is that we get an\nenourmous pile of errors from checkpatch.pl. The tool that generates the\nmapping files doesn't care about QEMU's coding style rules, because it is\na general purpose tool intended for use by many different projects.\n\nAs such I'm not very happy about the idea of checking the generated files into\nGIT, and would prefer to go back to generating the files from the submodule\non every build, as was done in v4. I did this this in v5 way to illustrate the\napproach, but on balance I think v4 approach was better. Using the v4 approach\nwould also means when updating the submodule later on, we don't have to post\nlargely meaningless patches of diffs to all the generated files.\n\nThis series converts all the front ends and all the input devices which are\nusing the new InputEvent framework. A handful of devices still use the\nlegacy kbd handler\n\n  $ git grep -l add_kbd_event_handler hw\n  hw/arm/musicpal.c\n  hw/arm/nseries.c\n  hw/arm/palm.c\n  hw/arm/spitz.c\n  hw/input/pxa2xx_keypad.c\n  hw/input/stellaris_input.c\n\nand could be usefully converted too.\n\nI've not done much realworld testing of this yet. I did however write code\nthat compared the mapping tables before and after conversion to identify what\nmapping changes have resulted in each frontend/backend.  What I still need to\ngo back and validate is the Print/Sysrq handling, because that is special\neverywhere and I'm not entirely sure I've done that correctly yet. The GTK\nfrontend should now work correctly when run on X11 servers on Win32 and OS-X,\nas well as when run on native Win32/OS-X display backends.\n\n[1] https://gitlab.com/keycodemap/keycodemapdb/\n\nChanged in v5:\n\n - Don't try to initialize git submodule at all\n - Store generate keymap files in GIT\n\nChanged in v4:\n\n - Run submodule update in source_dir for vpath builds (patchew)\n - Force submodule update in docker rules in case they\n   are run without configure (patchew)\n\nChanged in v3:\n\n - Ensure docker builds pull in keycodemapdb submodule (patchew)\n - Add compat with py26 for RHEL-6 in keycodemapdb tools (patchew)\n - Initialize submodule in configure script (patchew)\n\nChanged in v2:\n\n - Change filename pattern to 'ui/input-keymap-$SRC-to-$DST.c'\n   and map names 'qemu_input_map_$SRC_to_$DST'  (Eric)\n - Fix typos (Eric)\n - Drop changes to InputKeyEvent struct (Eric)\n - Fix VPATH build (patchew)\n - Fix code style errors (patchew)\n\n\nDaniel P. Berrange (12):\n  ui: add keycodemapdb repository as a GIT submodule\n  ui: convert common input code to keycodemapdb\n  ui: convert key events to QKeyCodes immediately\n  ui: don't export qemu_input_event_new_key\n  input: convert virtio-input-hid device to keycodemapdb\n  input: convert ps2 device to keycodemapdb\n  input: convert the adb device to keycodemapdb\n  char: convert the escc device to keycodemapdb\n  ui: convert cocoa frontend to keycodemapdb\n  ui: convert the SDL2 frontend to keycodemapdb\n  ui: convert GTK and SDL1 frontends to keycodemapdb\n  display: convert XenInput keyboard to keycodemapdb\n\n .gitmodules                            |   3 +\n hw/char/escc.c                         | 126 +--------\n hw/display/xenfb.c                     | 133 +++-------\n hw/input/adb.c                         | 124 +--------\n hw/input/ps2.c                         | 406 +----------------------------\n hw/input/virtio-input-hid.c            | 136 +---------\n include/hw/input/adb-keys.h            | 141 ----------\n include/ui/input.h                     |  57 +++-\n ui/Makefile.objs                       |  43 ++-\n ui/cocoa.m                             | 129 +--------\n ui/gtk.c                               | 205 +++++++++------\n ui/input-keymap-atset1-to-qcode.c      | 245 +++++++++++++++++\n ui/input-keymap-linux-to-qcode.c       | 463 +++++++++++++++++++++++++++++++++\n ui/input-keymap-osx-to-qcode.c         | 128 +++++++++\n ui/input-keymap-qcode-to-adb.c         | 156 +++++++++++\n ui/input-keymap-qcode-to-atset1.c      | 154 +++++++++++\n ui/input-keymap-qcode-to-atset2.c      | 142 ++++++++++\n ui/input-keymap-qcode-to-atset3.c      | 138 ++++++++++\n ui/input-keymap-qcode-to-linux.c       | 156 +++++++++++\n ui/input-keymap-qcode-to-qnum.c        | 154 +++++++++++\n ui/input-keymap-qnum-to-qcode.c        | 245 +++++++++++++++++\n ui/input-keymap-usb-to-qcode.c         | 177 +++++++++++++\n ui/input-keymap-win32-to-qcode.c       | 157 +++++++++++\n ui/input-keymap-x11-to-qcode.c         | 163 ++++++++++++\n ui/input-keymap-xorgevdev-to-qcode.c   | 463 +++++++++++++++++++++++++++++++++\n ui/input-keymap-xorgkbd-to-qcode.c     | 122 +++++++++\n ui/input-keymap-xorgxquartz-to-qcode.c | 128 +++++++++\n ui/input-keymap-xorgxwin-to-qcode.c    | 122 +++++++++\n ui/input-keymap.c                      | 341 +++---------------------\n ui/input.c                             |   8 +-\n ui/keycodemapdb                        |   1 +\n ui/sdl.c                               | 105 +++-----\n ui/sdl2-input.c                        |  16 +-\n ui/sdl2-keymap.h                       | 267 -------------------\n ui/trace-events                        |   9 +-\n ui/x_keymap.c                          | 250 +++++++-----------\n ui/x_keymap.h                          |   8 +-\n 37 files changed, 3774 insertions(+), 2047 deletions(-)\n delete mode 100644 include/hw/input/adb-keys.h\n create mode 100644 ui/input-keymap-atset1-to-qcode.c\n create mode 100644 ui/input-keymap-linux-to-qcode.c\n create mode 100644 ui/input-keymap-osx-to-qcode.c\n create mode 100644 ui/input-keymap-qcode-to-adb.c\n create mode 100644 ui/input-keymap-qcode-to-atset1.c\n create mode 100644 ui/input-keymap-qcode-to-atset2.c\n create mode 100644 ui/input-keymap-qcode-to-atset3.c\n create mode 100644 ui/input-keymap-qcode-to-linux.c\n create mode 100644 ui/input-keymap-qcode-to-qnum.c\n create mode 100644 ui/input-keymap-qnum-to-qcode.c\n create mode 100644 ui/input-keymap-usb-to-qcode.c\n create mode 100644 ui/input-keymap-win32-to-qcode.c\n create mode 100644 ui/input-keymap-x11-to-qcode.c\n create mode 100644 ui/input-keymap-xorgevdev-to-qcode.c\n create mode 100644 ui/input-keymap-xorgkbd-to-qcode.c\n create mode 100644 ui/input-keymap-xorgxquartz-to-qcode.c\n create mode 100644 ui/input-keymap-xorgxwin-to-qcode.c\n create mode 160000 ui/keycodemapdb\n delete mode 100644 ui/sdl2-keymap.h"
}