diff -Nru systemd-204/debian/changelog systemd-204/debian/changelog --- systemd-204/debian/changelog 2014-05-09 02:32:07.000000000 +0300 +++ systemd-204/debian/changelog 2014-05-24 01:32:25.000000000 +0300 @@ -1,3 +1,10 @@ +systemd (204-5ubuntu20.3) trusty; urgency=medium + + * Added patch to allow keyboard keycodes in hwdb to be specified using + numeric values (decimal, octal and hex) (LP: #1247584) + + -- Mircea Miron Sat, 24 May 2014 01:11:48 +0300 + systemd (204-5ubuntu20.2) trusty; urgency=medium * Update Enable-all-cgroup-controllers-in-logind.patch to also include diff -Nru systemd-204/debian/patches/udev-numeric-keycodes.patch systemd-204/debian/patches/udev-numeric-keycodes.patch --- systemd-204/debian/patches/udev-numeric-keycodes.patch 1970-01-01 02:00:00.000000000 +0200 +++ systemd-204/debian/patches/udev-numeric-keycodes.patch 2014-05-23 23:33:37.000000000 +0300 @@ -0,0 +1,33 @@ +Description: patch to allow numeric values for keycodes + This patch fixes a regression in udev which was introduced with the migration + from udev rules to hwdb. Prior to the migration it was possible to enter + numeric values for keycodes when defining keyboard mappings. The values can be + entered in decimal, octal or hex. (LP: #1247584) + +Author: Mircea Miron +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1247584 + +--- systemd-204.orig/src/udev/udev-builtin-keyboard.c ++++ systemd-204/src/udev/udev-builtin-keyboard.c +@@ -82,6 +82,7 @@ static int builtin_keyboard(struct udev_ + char *endptr; + const char *keycode; + const struct key *k; ++ struct key shadow_k; + + key = udev_list_entry_get_name(entry); + if (!startswith(key, "KEYBOARD_KEY_")) +@@ -111,8 +112,11 @@ static int builtin_keyboard(struct udev_ + /* translate identifier to key code */ + k = keyboard_lookup_key(keycode, strlen(keycode)); + if (!k) { +- log_error("Error, unknown key identifier '%s'\n", keycode); +- continue; ++ shadow_k.id = strtoul(keycode, &endptr, 0); ++ if (endptr[0] !='\0') { ++ log_error("Error, unknown key identifier '%s'\n", keycode); ++ continue; ++ } else k = &shadow_k; + } + + map[map_count].scan = scancode; diff -Nru systemd-204/debian/patches/series systemd-204/debian/patches/series --- systemd-204/debian/patches/series 2014-05-07 15:59:51.000000000 +0300 +++ systemd-204/debian/patches/series 2014-05-23 23:25:47.000000000 +0300 @@ -26,3 +26,4 @@ add-cgmanager-support Advertise-hibernation-only-if-there-s-enough-free-sw.patch +udev-numeric-keycodes.patch